当PLC作为主机时,只支持MODBUS的以下功能:
03号功能:读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值 范围1-32个
04号功能:在一个或多个输入寄存器中取得当前的二进制值 ,范围1-32个
06号功能:把具体二进值装入一个保持寄存器(写寄存器),范围1个
16号功能:预置多寄存器 把具体的二进制值装入一串连续的保持寄存器(写多个寄存器),范围1-32个
读取从机数据指令示例:RD3A K1 H0 D0
RD3A原来是模拟量模块读取指令,原指令功能不能使用。RD3A指令对应Modbus的03号功能,读取(4X类型)寄存器。指令中K1是代表被读从机设备的站号,范围1-247;H0是代表被读数据在从机设备中的地址编号0000(十六进制数表示);D0里的值是代表读取的寄存器个数,范围1-32,被读取的数据依次保存在D1,D2,D3……里。
写数据到从机指令示例:WR3A K1 H0 D0
WR3A原来是模拟量模块写入指令,原指令功能不能使用。WR3A指令对应Modbus的16号功能,写数据到从机设备的各个(4×类型) 寄存器;如果只写1个寄存器,WR3A指令对应Modbus的06号功能,写1个数据到从机设备的1个(4×类型) 寄存器。指令中K1是代表被写从机设备的站号,范围1-247;H0是代表被写寄存器在从机设备中的首地址编号0000(十六进制数表示);D0里的值是代表被写的寄存器个数,范围1-32,被写出的源数据依次保存在D1,D2,D3……里。
D8129(M8129)超时时间寄存器:范围0-32767,单位10ms。
当接收超时或接收错误时,M8129=ON,
M8123一次通信完成标志
当完成一次通信时,M8123=ON,不管是否成功完成。
当RD3A或WR3A不被执行时,不影响M8129和M8123;当指令被执行时,如果正在通信中,则M8129和M8123都被系统自动置OFF;如果通信完成则M8123和M8129输出相应的状态。
多次编程
RD3A或WR3A可以在梯形图中多次编程,因通信是一个长时间的过程,所以通信中要保持执行,不能用脉冲形式。在有多个指令同时需要通信时,系统会依次轮流分时通信,使用M8123的上延可以方便地检出本通信指令本次的执行状况。
D8063(M8063)通信错误信息
M8063的上延可以方便地检出本通信指令本次通信的错误信息。
D8063的值分别代表各自的错误信息
6315:Modbus从站号超范围 〉255
6316:Modbus读写寄存器个数超范围,正常是1-32。
6317:Modbus接收超时
6318:得到回应的站号不一致
6319:回应非法
6320:回应的LCR校验错
6321:保存数据的地址非法
6322:回应的CRC校验错
6323:回应的数据格式非法
6324:本机未设为Modbus主机
6325:地址超范围
6326:Modbus发送超时