恭喜,你发布的帖子
发布于 2016-03-23 17:13:46
2楼
这个是要配合nc一起使用的相当于nc与plc之间的一个应答,保证数据可靠性看下面的图。
当plc要读取一个变量$A_DBB[xx]时对应的$A_DBB[186]置1(IVAR2为186),plc读取$A_DBB[xx]中的值 ,读取完成后再将$A_DBB[186]置0整个工作结束,如果以上动作错误fc21中的ErrCode接口报警。
这是nc程序中需要编写的应答程序,按西门子标准进行。
下面是我在资料中摘录的描述该功能的作用。
通过 NCK 和 PLC 进行访问时,若未采取额外的编程技术措施,则只能确保 1 字节和 2 字
节访问的数据一致性。 2 字节一致性也仅针对 WORD 或 INT 数据类型,而不适用于
BYTE。
在使用较大的数据类型或传输数组时,必须在参数 IVAR2 中设定一个信号量字节,这样
FC 21 便可通过该字节识别数据块的有效性或一致性。 此操作必须由 NC 支持,即在零件
程序中写入或删除信号量字节。 信号量字节和原始的有效数据位于相同的数据区域。
IVAR2 中 0 至 4095 的值即为信号量字节。
PLC 中通过 FC 21 在用于传输有效数据的调用中读取和写入信号量字节。 PLC 编程人员
只需提供信号量变量。 由 NC 通过零件程序访问时,必须按照下面的流程图通过单个指令
编写信号量机制。 读取或写入变量时须采用不用的流程。
信号量机制仅支持单个变量或 ARRAY。 其结构传输必须划分为单个任务执行。 此时为确
保该结构的数据一致性,其本身也须启用由用户编写的信号量机制。
若设置 IVAR2 = -1,那么数据传输将不启用信号量。
这是本人理解的相信大大们理解的比我透彻,有地方改正请指出。
请填写推广理由:
分享
只看
楼主