哈喽,你好啊,我是雷工!
在SCADA项目中,有些要求在界面上实时显示SCADA系统与设备的实时通讯状态,来及时了解PLC或其他设备与SCADA系统的通讯状态是否正常,以及简单的通讯异常分析,在KingSCADA中该如何实现通讯状态的文本显示呢?
接下来用简单的样例介绍KingSCADA如何实现文本显示设备的实时通讯状态,以下为案例记录。

(一)效果演示
当用ModbusSlave模拟的设备与KingSCADA通讯正常时,文本状态反馈显示:设备正常;故障代码反馈显示:0;
当手动停掉ModbusSlave模拟设备时,与KingSCADA系统的通讯异常,文本状态反馈显示:设备故障,通讯故障,初始化失败;故障代码显示:2;

以下为演示效果:
(二)测试软件
1、KingSCADA3.7;
2、KingIOServer3.8;
3、ModbusSlave工具;
(三)实现思路1、设备系统变量
在每个KingIOServer中每个设备对应有两个系统变量,“$DeviceStatusOfs”和“$DeviceControlOfs”。
$DeviceStatusOfs:代表设备状态的变量,为只读变量,代表该设备的通讯状态,其值包含“0,1,2”三个数值;其中0表示设备通讯正常;1表示通过$DeviceControlOfs变量停止设备,2表示设备故障,通讯异常,初始化失败。
$DeviceControlOfs:设备控制变量,支持异步写,可写入值为0和1,写入0时,控制设备停止;写入1时,控制设备运行。
2、KingSCADA连接KingIOServer的系统变量
设备具有设备状态变量,只要在KingSCADA中调用该变量,即可实现状态展示。
(四)实现步骤
1、KingIOServer与ModbusSlave建立通讯
通讯的建立可以参考《【SCADA】测试KingIOServer连接ModbusTCP设备》。
2、KingSCADA与KingIOServer建立连接
连接的建立可以参考《【KingSCADA】如何建立硬件系统及相关变量》。
3、创建变量
在KingSCADA的数据词典新建“设备通讯”变量,连接KingIOServer的设备状态变量。
4、添加页面变量
在创建的界面中添加界面变量“通讯文本”。
5、运行脚本
通过界面存在时脚本,为通讯文本变量赋值,当设备通讯为不同状态时为通讯文本赋值对应的文本显示。
6、界面组态
根据需要在界面布置文本显示,其中文本状态反馈和故障代码反馈分别连接对应的变量
7、运行测试
点击运行按钮,将测试样例运行起来,通过开关ModbusSlave调试工具,可以观察KingSCADA界面是否能正确显示当前通讯状态及对应的通讯文本信息。
(五)后记
以上为如何实现文本显示设备实时通讯状态的小样例,有需要的小伙伴可以参考。
其实各个组态软件大同小异,只要具备设备通讯的系统变量,都可以用同样的方式展示通讯异常提示信息。像昆仑通态等触摸屏也类似。
大家有什么更好的实现方式或者在项目开发中遇到了什么问题,欢迎评论或私信一起集思广益。