n
描述
CP 卡的 TC_RECV 功能总是返回全部过程映像。为了了解哪些数值最近已经被 OPC 客户端修改了而引入一个标志数组“新接收的 TC 数据”,其表明过程映像区中的哪些数值被写入。标志数组“新接收的 TC 数据”可以通过 S7-1200 CPU 读取数据记录索引 8455 功能被读取并被保存在 CPU 的 DB 块中。n
对于 OPC 客户端发送不固定的数值而不是 CP 卡的全部过程映像的应用,此功能非常有用。n
图. 01n
接下来介绍如何工作:n
- OPC 客户端通过远程控制服务器发送写命令到 CP 卡。n
- CP 卡将数据写入它的过程映像并且标记改变的字节为 FF。n
- CPU 通过 TC_RECV 接收数据。n
- CPU 通过 RDREC 读出变化。n
- 新数据可以通过 TC_RECV 接收。
注意
重要的是,TC_RECV 处于完成状态时,RDREC 才能读出变化。n
要求
CP 1242-7的固件版本1.3.3或以上。n
指令
按照以下步骤使用该功能:
序号. | 步骤 |
1 |
在 CPU 程序中创建一个具有如下声明变量的 DB 块:n
|
2 | 在 OB1 中使用以下参数循环调用 RDREC: n
REQ = 当 TC_RECV 的 DONE 位为 TRUE 时,将该位置为 TRUE 以传输数据记录。 (请注意 TC_RECV 块的参数状态只在一个周期有效,您可以把 DONE 参数的状态保存到其他变量,这样您就可以读出其状态了)
|
3 | 为了测试该功能,在 OPC 客户端远程控制服务器设置一个数值。在这个例子中,设置变量log_tmr_preset 的偏移量为 100.0 。 |
4 | 检查 TC_RECV 的 DONE 参数的状态。 |
5 | 当 TC_RECV 的 DONE 参数为 TRUE 时,设置 RDREC 的 REQ 参数为 TRUE 。 |
6 | 将 DB 块在线并使用“监视所有变量”功能读取变量“ReadDataChanges”的数值。RECORD所指的区域中被改变的数据将被标识为 FF ,没有被改变的数据用 00 表示。以此可以区别如果 0 作为初始值或者被远程控制服务器写入数值 0 。
|
表 01
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc329167.html