MODBUS从站通讯应用
更新时间:2024-01-15 21:25:01 阅读量: 教育文库 文档下载
- modbus从站地址推荐度:
- 相关推荐
MODBUS从站通讯应用
有些工业应用中,PLC作为工业自动化系统的一部分,要接受自动化控制网络的监控,典型的上位机如DCS、运行组态软件的工业PC等,作为监控主机,以MODBUS主站协议与PLC等设备进行通讯,此时PLC的通讯口需要以MODBUS从站协议与上位机通讯。TH系列PLC内置有MODBUS-RTU从站协议和MODBUS-ASCII从站协议,并且只有com2口可以支持该协议运行。 MODBUS从站协议的相关寄存器
PLC程序中,将上述几个寄存器配置完毕,当相应通讯口有MODBUS主站发送给本机地址的通讯帧时,PLC系统程序即会根据通讯要求,自动组织MODBUS
通讯帧进行应答,无需用户程序的参与。 MODBUS从站支持的操作
TH系列plc作为MODBUS从站时,支持MODBUS的0x01,0x03,0x05,0x06,0x 0f,0x10等通讯操作命令;通过这些命令,可读写PLC的线圈有M,S,T,C,X(只读),Y等变量;寄存器变量有D,T,C。 MODBUS通讯主机在访问(读取或改写)PLC从机的内部变量时,必须遵循如下的通讯命令帧定义,以及变量地址索引方法,才能进行正常的通讯操作。
1.1命令码0x01(01):读线圈
请求帧格式:从机地址+0x01+线圈起始地址+线圈数量+CRC检验 序号 1 2 3 4 5 数据(字节)意义 从机地址 0x01(命令码) 线圈起始地址 线圈数量 CRC校验 字节数量 1个字节 1个字节 2个字节 2个字节 2个字节 说明 取值1~247,由D8121设定 读线圈 高位在前,低位在后,见线圈编址 高位在前,低位在后( N) 高位在前,低位在后 响应帧格式:从机地址+0x01+字节数+线圈状态+CRC检验 序号 数据(字节)意义 字节数量 1 2 3 4 5 从机地址 1个字节 说明 取值1~247,由D8121设定 读线圈 值:[(N+7)/8] 0x01(命令码) 1个字节 字节数 线圈状态 CRC校验 1个字节 每8个线圈合为一个字节,最后一个若不足8位,[(N+7)/8]未定义部分填0。前8个线圈在第一个字节,最地个字节 址最小的线圈在最低位。0为OFF,256为ON. 2个字节 高位在前,低位在后 错误响应:见错误响应帧
1.2命令码0x03(03):读寄存器
请求帧格式:从机地址+0x03+寄存器起始地址+寄存器数量+CRC检验
序号 1 2 3 4 5 数据(字节)意义 字节数量 从机地址 1个字节 0x03(命令码) 1个字节 寄存器起始地址 2个字节 寄存器数量 2个字节 CRC校验 2个字节 说明 取值1~247,由D8121设定 读寄存器 高位在前,低位在后,见寄存器编址 高位在前,低位在后(N) 高位在前,低位在后 响应帧格式:从机地址+0x03+字节数+寄存器值+CRC检验 序号 1 2 3 4 5 数据(字节)意义 从机地址 0x03(命令码) 字节数 寄存器值 CRC校验 字节数量 说明 1个字节 取值1~247,由D8121设定 1个字节 读寄存器 1个字节 值:N*2 N*2个字节 每两字节表示一个寄存器值,高位在前低位在后。寄存器地址小的排在前面 2个字节 高位在前,低位在后 错误响应:见错误响应帧
1.3 命令码0x05(05):写单线圈
请求帧格式:从机地址+0x05+线圈地址+线圈状态+CRC检验 序号 1 2 3 4 5 数据(字节)意义 从机地址 0x05(命令码) 线圈地址 线圈状态 CRC校验 字节数量 1个字节 1个字节 2个字节 2个字节 2个字节 说明 取值1~247,由D8121设定 写单线圈 高位在前,低位在后,见线圈编址 高位在前,低位在后。0为OFF,-256为ON 高位在前,低位在后 响应帧格式:从机地址+0x05+线圈地址+线圈状态+CRC检验 序号 1 2 3 4 5 数据(字节)意义 从机地址 0x05(命令码) 线圈地址 线圈状态 CRC校验 字节数量 1个字节 1个字节 2个字节 2个字节 2个字节 说明 取值1~247,由D8121设定 写单线圈 高位在前,低位在后,见线圈编址 高位在前,低位在后。0为OFF,-256为ON 高位在前,低位在后 错误响应:见错误响应帧
1.4 命令码0x06(06):写单个寄存器
请求帧格式:从机地址+0x06+寄存器地址+寄存器值+CRC检验 序号 1 2 3 4 5 数据(字节)意义 从机地址 0x06(命令码) 寄存器地址 寄存器值 CRC校验 字节数量 1个字节 1个字节 2个字节 2个字节 2个字节 说明 取值1~247,由D8121设定 写单寄存器 高位在前,低位在后,见寄存器值编址 高位在前,低位在后。 高位在前,低位在后 响应帧格式:从机地址+0x06+寄存器地址+寄存器值+CRC检验。 序号 1 2 3 4 5 数据(字节)意义 字节数量 说明 从机地址 1个字节 取值1~247,由D8121设定 0x06(命令码) 1个字节 写单寄存器 寄存器地址 2个字节 高位在前,低位在后,见寄存器编址 寄存器值 2个字节 高位在前,低位在后。 CRC校验 2个字节 高位在前,低位在后 错误响应:见错误响应帧。
1.5 命令码0x 0f(15):写多个线圈
请求帧格式:从机地址+0x 0f+线圈起始地址+线圈数量+字节数+线圈状态+CRC检验。
> 序号 数据(字节)意义 1 从机地址 2 0x 0f(命令码) 3 线圈起始地址 4 线圈数量 5 字节数 说明 取值1~247,由D8121设定 写多个单线圈 高位在前,低位在后,见线圈编址 高位在前,低位在后。N,最大为1968 值:值:[(N+7)/8] 每8个线圈合为一个字节,最后一个若不足8位,[(N+7)/8]6 线圈状态 未定义部分填0。前8个线圈在第一个字节,最地个字节 址最小的线圈在最低位。依次类推 7 CRC校验 2个字节 高位在前,低位在后 >响应帧格式:从机地址+0x 0f +线圈起始地址+线圈数量+CRC检验 序号 数据(字节)意义 字节数量 说明 1 从机地址 1个字节 取值1~247,由D8121设定 2 0x 0f(命令码) 1个字节 写多个单线圈 3 线圈起始地址 2个字节 高位在前,低位在后,见线圈编址 4 线圈数量 2个字节 高位在前,低位在后。 字节数量 1个字节 1个字节 2个字节 2个字节 1个字节 序号 数据(字节)意义 字节数量 说明 5 CRC校验 2个字节 高位在前,低位在后 错误响应:见错误响应帧。
1.6 命令码0x10(16):写多个寄存器
请求帧格式:从机地址+0x10+寄存器起始地址+寄存器数量+字节数+寄存器值+CRC检验。 序号 数据(字节)意义 字节数量 说明 1 从机地址 1个字节 取值1~247,由D8121设定 2 0x10(命令码) 1个字节 写多个寄存器 3 寄存器起始地址 2个字节 高位在前,低位在后,见寄存器编址 4 寄存器数量 2个字节 高位在前,低位在后。N,最大为120 5 字节数 1个字节 值:N*2 6 寄存器值 N*2(N*4) 7 CRC校验 2个字节 高位在前,低位在后 响应帧格式:从机地址+0x10+寄存器起始地址+寄存器数量+CRC检验。 序号 1 2 3 4 5 数据(字节)意义 从机地址 0x10(命令码) 寄存器起始地址 寄存器数量 CRC校验 字节数量 1个字节 1个字节 2个字节 2个字节 2个字节 说明 取值1~247,由D8121设定 写多个寄存器 高位在前,低位在后,见寄存器编址 高位在前,低位在后。N,最大为120 高位在前,低位在后 错误响应:见错误响应帧。 1.7 错误响应帧
错误响应:从机地址+(命令码+0x80)+错误码+CRC校验。
序号 1 2 3 4 数据(字节)意义 从机地址 命令码+0x80 错误码 CRC校验 字节数量 1个字节 1个字节 1个字节 2个字节 说明 取值1~247,由D8121设定 错误命令码 1~4 高位在前,低位在后 2.1 线圈编址
线圈:指位变量,只有两种状态0和1。在本PLC中包含M,S,T,C,X,Y等变量。
变量名称 M0~3071 起始地址 0(0) 线圈数量 说明 3072 变量名称 M8000~M8256 S0~S999 T0~T256 C0~C255 X0~X255 Y0~Y255 2.2 寄存器编址
起始地址 线圈数量 说明 0x 1F40(8000) 256 0xE000(57344) 1000 0xF000(61440) 256 0xF400(62464) 256 0xF800(63488) 256 0xFC00(64512) 256 寄存器:指16位(字)或32位(双字)变量,在本PLC中,16位变量包
含D,T,C0~199;32位变量为C200~255。
变量名称 D0~D8255 T0~T255 C0~C199 C200~C255 起始地址 寄存器数量 说明 0(0) 8256 0xF000(61440) 256 0xF400(62464) 200 0xF700(63232) 56 32位寄存器 说明:通过MODBUS访问C200~C255段32位寄存器时,一个寄存器作两寄
存器看待,一个32位寄存器占用两个16寄存器空间。比如用户要读或写
C205~C208这4个寄存器,MODBUS地址为0xF 70A(0xF700+10),寄存器数量8(4*2)。
32位寄存器不支持写单个寄存器(0x06)命令码。
变量名称 M8000~M8256 S0~S999 T0~T256 C0~C255 X0~X255 Y0~Y255 2.2 寄存器编址
起始地址 线圈数量 说明 0x 1F40(8000) 256 0xE000(57344) 1000 0xF000(61440) 256 0xF400(62464) 256 0xF800(63488) 256 0xFC00(64512) 256 寄存器:指16位(字)或32位(双字)变量,在本PLC中,16位变量包
含D,T,C0~199;32位变量为C200~255。
变量名称 D0~D8255 T0~T255 C0~C199 C200~C255 起始地址 寄存器数量 说明 0(0) 8256 0xF000(61440) 256 0xF400(62464) 200 0xF700(63232) 56 32位寄存器 说明:通过MODBUS访问C200~C255段32位寄存器时,一个寄存器作两寄
存器看待,一个32位寄存器占用两个16寄存器空间。比如用户要读或写
C205~C208这4个寄存器,MODBUS地址为0xF 70A(0xF700+10),寄存器数量8(4*2)。
32位寄存器不支持写单个寄存器(0x06)命令码。
正在阅读:
MODBUS从站通讯应用01-15
2017-2018苏教版一年级数学下学期测试题 - 图文10-11
上海工程技术大学本专科毕业生推荐表(请贴好照片、A3纸打印、一05-12
实验3:QoS流量监管与整形04-09
游禹王洞记作文500字06-25
海盗分宝石01-12
三下科学期末试卷12-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 通讯
- 应用
- MODBUS