Kingview是北京亚洲控制技术的SCADA产品,是国内知名度非常好的产品。

这里我不谈产品本身,而是谈谈在组态王中,通过modbus的方式与PLC或者第三方设备通讯时,如果浮点数需要对其存储器进行字或者字节交换的问题。

首先,做过PLC项目或者是DCS项目,也或者是搞系统维护等的自动化工控人都知道,PLC系统与现场设备或者是第三方PLC系统通过modbus进行数据交换,在进行数据交换时,特别是浮点数可能数据不能直接对上,需要对地址进行字节或者是字进行交换,两个数据才能完全吻合。下面我来讲讲组态王是如何实现的。

一、实验工具

SCADA:组态王6.55版本

PLC或者第三方:用modsim来模拟

二、实现步骤

1、启动modsin模拟器,通过modbus tcp的方式连接,IP地址:127.0.0.1,端口号:502,设备地址:1,寄存器地址:40001,40002,40003,40004,40005,40006,如下图所示:

图1 modsim仿真页面

2、启动组态王管理器,并打开测试的项目,如图所示

图2 组态工程浏览器窗口

3、配置设备通讯接口,本文采用莫迪康的MODBUS TCP方式。在工程浏览器窗口左侧的设备---板卡---双击新建---PLC---莫迪康----modbus TCP---下一步。如下图所示

图3 通讯接口配置1

在上图中下一步之后,填上逻辑名称,然后下一步,然后接着选择连接的串口号,这里的串口,必须选择一个没有使用的串口号,如COM15,然后下一步进入下一个配置窗口,如图所示

图4 通讯接口配置2

在上图点击下一步后,进入设备地址填写界面,地址为:127.0.0.1:502 1/10,地址组成为:设备IP地址+:+端口号+空格+设备地址+/+超时时间。如图所示

图5 通讯接口配置3

上图单击下一步,直至完成。这样新建的设备就创建完成,如图所示

图6 通讯接口配置4

4、组态王中,浮点数需要寄存器做字或者字节交换以及寄存器说明,如图所示

图6 浮点数交换的官方说明1

图7 浮点数交换的官方说明2

图8 浮点数交换的官方说明3

不知道各位读者看到官方说明,是否已经理解了,应该如何实现,说实话,我是看了很久都是没有明白具体如何在组态王中如何建点,如何填写各项,最后通过不断的实验才获得正确的实现方法,不信我们往下看。

5、建点三个I/O实型点,每个点占用2个字的modbus地址,如图所示

图9 变量建立说明1

图10 新建的三个变量

6、本步骤比较重要,要充分理解组态王地址交换,这里需要建一个I/O整型的变量,寄存器选择:连接设备:选择组态王连接的设备,寄存器选择:SwapF0,记住这里是SwapF0,不是SwapF,数据类型选择:BYTE,读写属性选择:读写,如图

图11 新建的SWAPF测试变量窗口

说明:如果在通讯时从1地址读取的四个十六进制值为 HV1,HV2, HV3, HV4则:

当SWAP测试变量 = 0时,转换后浮点数对应的内存值为: HV4 HV3 HV2 HV1。

当SWAP测试变量 = 1时,转换后浮点数对应的内存值为: HV3 HV4 HV1 HV2。

当SWAP测试变量 = 2时,转换后浮点数对应的内存值为: HV1 HV2 HV3 HV4。

当SWAP测试变量 = 3时,转换后浮点数对应的内存值为: HV2 HV1 HV4 HV3。

7、新建一个测试画面,并在画面中建立三个变量的显示,如图所示

图12 画面动态连接图

8、新建一个SWAP测试变量的动态显示以及值得切换按钮,如图所示

图13 SWPF测试变量的动态连接

9、运行画面,并通过切换SWAPF测试变量的值,查看变量的数据变化。如下图所示:

图14 Modsim寄存器的当前值

图15 SWAP测试变量值不同,组态王动态显示值对比图

本文就写到这里了,希望读者们喜欢,不足之处还希望读者们多多指正。

知识分享是一种精神,不需要打上什么特殊的标签,欢迎读者们来阅读!

1.《组态王怎么关联打印机看这里!组态王通过modbus与第三方设备通讯,如何实现字节或字的交换?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《组态王怎么关联打印机看这里!组态王通过modbus与第三方设备通讯,如何实现字节或字的交换?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3025563.html