在实际的应用中,有一些现场值无法从设备中直接取得,需要通过手工录入的方式将数据上传,在上传的过程中需要有一种反馈机制来确认操作是否成功。原理如图1
图1
具体过程如下:在人工录入机上建立2个数字I/O点。当操作工录入完数据选择提交后,前置机点Data.pv会接收到随时间变化点Send.pv 的数值,然后Data.pv又将数值传给Recv.pv,最后人工录入机判断Send.pv和Recv.pv的数值是否相等,如果相等说明回路畅通,人工录入的数据能够传递到前置机上,否则人工录入的数据不能传递到前置机上。
一。建立数字I/O点
在人工录入机上定义远程数据源:如图2
图2
(1) 在公共-〉数据源下增加远程数据源,在“数据源定义”对话框内选择“远程节点”并填写远程计算机的IP地址,这里的IP地址为前置机地址。
(2)在人工录入机上建立数字I/O点:Z_Send.pv和Z_Recv.pv,指定Z_Recv.pv的外部连接为上面定义的远程数据源。
(3)在前置机上定义远程数据源:一般已经定义。
(4)在前置机上定义数字I/O点:Z_Data.pv,指定该点的外部连接为人工录入机的远程数据源。
二。增加提交脚本
双击人工录入工程中的“提交”按钮,可以看见一文本框,在该文本框的最后增加以下内容:
//////////////////////////////
1Z_SEND.PV = $SYSTEM.LONGTIME;
2delay(1000);
3if Z_RECV.PV == Z_SEND.PV then
4msgbox("提交成功!");
5Display("储一光明录入目录");
6else
7msgbox("提交失败,请重新提交!");
8endif;
注释:第一行表示将当前时间距离1970年1月1日的时间赋值给Z_SEND.PV;第二行延时1秒,给数据传输预留时间;第三行判断传出的值和接收的值是否相同;第四行,数值相同提示成功;第五行,返回到登陆界面;第六行如果数值不同;第七行,弹出失败提示。