Modbus与第三方仪表通讯

MODBUS通讯中的功能码
  • 0x01:读线圈寄存器 (PLC的Q)
  • 0x02:读离散输入寄存器(PLC的I)
  • 0x03:读保持寄存器 (PLC的V、M区)
  • 0x04:读输入寄存器 (PLC的AIW16)
  • 0x05:写单个线圈寄存器
  • 0x06:写单个保持寄存器
  • 0x0f:写多个线圈寄存器
  • 0x10:写多个保持寄存器

0x01、0x02、0x03、0x04所谓的读就是读取仪表的数据,读取从站的数据;

0x05、0x05、0x0f、0x10所谓的写就是向仪表写入数据,写到从站的数据;

例如:从站是PLC读取这个从站PLC的Q、I、V数据。

电表通讯说明书:

操作电表仪表设置BUS----通讯-----ADDR-----设站地址,波特率等信息。

找到说明书的地址表

功能码 16进制(报文)从站的仪表 10进制(PLC编程时)主站的PLC
03 0000H 40001~49999或400001~465535
04 0000H 30001~39999

例如: 03 时 0002H 也就是2 + 40001 = 40003;

03 时 1000H 也就是4096 + 40001 = 44097;

MODSCAN软件做为主站来读取或写入仪表数。

查看电脑中的COM端口

MODSCAN软件的连接信息配置

从仪表读数据的操作:MODSCAN软件中的使用与PLC作为主站中的填写是一样的,地址写成40098。

发送区:

01(站地址)03功能码0061(仪表手册中寄存器地址是61H) 0001(读取仪表数据个数) D5D4(CRC校验自动生成)

写完16进制的 01 03 00 61 00 01后点校验后生成 01 03 00 61 00 01 D5 D4

接收区:

01(站地址)03功能码02(2个字节即一个word) 091D(仪表的电压值) D5D4(CRC校验自动生成)

总结:根据仪表手册保留小数点个数,如果保留2位小数则读出的结果要除以100;

向仪表写数据的操作:

实现多台仪表的轮询读取

转载请注明出处:  https://www.cntworld.cn
智能工控 » Modbus与第三方仪表通讯

发表回复

提供最优质的资源集合

立即查看 了解详情