二十四小时服务热线:

158-8937-4679

方案与应用
解决方案

首页 > 解决方案

MODBUS rtu组态王攻略

modbus RTU通信协议由于其免费授权使用,得到了众多厂家的支持,现在市场上的大多数PLC以及组态软件都内置支持Modbus RTU通信协议,而市场上大多数基于RS-485串口通信的智能设备都是基于Modbus RTU通信协议实现数据交换,但是由于各家的PLC以及组态软件和各个智能设备厂家各自的一些定义(比如寄存器地址)有些不同,在设置使用过程中还是会有些问题,在此我们给出我们的一些心得与大家分享,在此我们介绍组态王软件应用ModbusRTU设备的案例。

组态王软件(kingview)由北京亚控科技发展有限公司针对低端自动化市场以及应用开发的一款软件,由于其丰富的设备驱动程序和灵活的组态方式,数据链接功能得到了广泛的应用。而智能设备我们选择深圳市汉韬科技有限公司MA7008型模块,其支持八通道0-20mA电流信号输入,支持十二位分辨率,内置Modbus RTU通信协议。

首先,打开组态王软件,新建工程或者打开工程,进入工程浏览器窗口,选择"设备"项目,然后在右边选择"新建"图标,在“设备驱动”里面选择"PLC"->"莫迪康"->"Modbus RTU"->"COM",然后选择下一步。给设备取名,在此我们使用默认的“新IO设备”,然后选择下一步,选择COM口,在此,我们使用的是"COM1",地址码我们按照模块地址来设置,在此ma7108模块默认地址是“01”,在此设置为“1”。然后下一步直至完成。
然后双击"设备"->"COM1",弹出COM1的串口参数设置,按照模块的串口通信参数进行设置,注意:由于组态王里面的COM1的默认参数,校验位偶校验,而大多数串口设备则多为无校验,这里必须要修改过来,否则会通信失败,通信模式为RS-485。
选择"数据库"->"数据词典"之后点击右边的"新建",按照图示填写相应参数,变量名以及变量描述依据自己的定义填写,由于我们采集的是模拟量信号,数值为一个寄存器,两个字节表示,在此变量类型我们设定为"I/O实数",灵敏度按照自己的模块来设定,我们在此为0.001,注意:“最大值的设定必须是要你实际数值的1000倍,比如我们最大电流值为20mA,在此最大原始值必须为20000,否则读取的数值就会总是最大值,比如我们开始设定的为20,其后读取的数值一直为20。在此一定要特别留意。”然后就是连接设备就是"新IO设备",寄存器"40002"的意思是,由于我们采用的是功能码"03",在此对应的是"4"和"只读",后面的"0002"表示的是寄存器地址,ma7108的第一个模拟量输入通道寄存器地址是"0001",由于ma7108的寄存器地址是从"0000"开始,而组态王的寄存器地址则默认从"0001"开始,所以需要在寄存器表地址上+1,由于没有正负数,数据类型我们设置为"ushort"。