MODBUS从站通讯应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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检验

响应帧格式:从机地址+0x01+字节数+线圈状态+CRC检验

错误响应:见错误响应帧

1.2命令码0x03(03):读寄存器

请求帧格式:从机地址+0x03+寄存器起始地址+寄存器数量+CRC检验

响应帧格式:从机地址+0x03+字节数+寄存器值+CRC检验

错误响应:见错误响应帧

1.3 命令码0x05(05):写单线圈

请求帧格式:从机地址+0x05+线圈地址+线圈状态+CRC检验

响应帧格式:从机地址+0x05+线圈地址+线圈状态+CRC检验

错误响应:见错误响应帧

1.4 命令码0x06(06):写单个寄存器

请求帧格式:从机地址+0x06+寄存器地址+寄存器值+CRC检验

响应帧格式:从机地址+0x06+寄存器地址+寄存器值+CRC检验。

1.5 命令码0x 0f(15):写多个线圈

请求帧格式:从机地址+0x 0f+线圈起始地址+线圈数量+字节数+线圈状态+CRC 检验。

1.6 命令码0x10(16):写多个寄存器

请求帧格式:从机地址+0x10+寄存器起始地址+寄存器数量+字节数+寄存器值

响应帧格式:从机地址+0x10+寄存器起始地址+寄存器数量+CRC检验。

错误响应:见错误响应帧。

1.7 错误响应帧

错误响应:从机地址+(命令码+0x80)+错误码+CRC校验。

2.1 线圈编址

线圈:指位变量,只有两种状态0和1。在本PLC中包含M,S,T,C,X,Y等变量。

2.2 寄存器编址

寄存器:指16位(字)或32位(双字)变量,在本PLC中,16位变量包含D,T,C0~199;32位变量为C200~255。

说明:通过MODBUS访问C200~C255段32位寄存器时,一个寄存器作两寄存器看待,一个32位寄存器占用两个16寄存器空间。比如用户要读或写

C205~C208这4个寄存器,MODBUS地址为0xF 70A(0xF700+10),寄存器数量8(4*2)。

32位寄存器不支持写单个寄存器(0x06)命令码。

相关文档
最新文档