如题,在某个项目中,需要用一个HMI程序实现多种硬件配置的切换。一个 HMI主机,带1或2或4个终端采集箱,主机与采集箱之间用串口MODBUS RTU通讯。当采集箱数量少时,想关闭多余的采集箱的通讯。HMI使用昆仑通态MCGS的7072GT,使用串口2与采集箱中的采集器通讯。
经查询资料,昆仑通态MCGS的策略程序中,有函数可以控制通讯设备的启停并可以修改通讯周期,但不能修改通讯地址等其他参数。此函数介绍如下:
!SetDevice(DevName,DevOp,CmdStr)
函数意义: 按照设备名字对设备进行操作
返 回 值: 浮点数
= 0,调用正常
= -1,失败
= -2,超时
= 1,当DevOp等于3时,表示设备启动状态
= 0,当DevOp等于3时,表示设备停止状态
参 数: DevName,字符串,设备名
DevOp,浮点数,设备操作码
CmdStr,字符串,设备命令,只有当DevOp=6时CmdStr才有意义
DevOp取值范围及相应含义:
= 1,启动设备开始工作
= 2,停止设备的工作
= 3,测试设备的工作状态
= 4,启动设备工作一次
= 5,改变设备的工作周期,CmdStr包含新的工作周期,单位ms
= 6,执行指定的设备命令,CmdStr中包含指定命令的格式
实 例: !SetDevice(OmronPLC,1,"" ),启动设备构件“OmronPLC”开始工作
1、实时数据库中创建变量。
在实时数据库中创建用于切换配置的参数变量,设定好默认数值,勾选“变化时自动保存初值”。设置界面如下:
2、创建硬件设备
设备窗口中创建父设备,设定好通讯参数并设置为自动启动。创建串口通讯子设备,设置好设备名称、最小采集周期、设备地址等参数,子设备设定为默认停止。父子设备设置参数如下:
3、添加启动策略,实现设备配置切换。
在启动策略中,根据参数值切换各通讯子设备的启停。下图代码中采集周期、存盘周期、通讯使能等变量用于程序中其他功能的切换。