【发布时间】:2019-07-08 18:41:50
【问题描述】:
我正在关注有关使用 CIP 进行控制器数据访问的 Allen-Bradley 文档,特别是读取标签服务、写入标签服务以及有关读取/写入整个 UDT 的详细信息:https://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm020_-en-p.pdf。我正在使用 EIP 库来执行读/写标签服务和多服务请求。
我想澄清的是读取或写入整个 UDT 是否是原子操作(使用手册中概述的方法在一个服务请求中执行读取/写入并了解元数据以解压缩它)?即,当整个成功读/写时,PLC 或软件端是否永远不会看到部分更新的 UDT 值?
一个相关的问题是:如果我想通过在一个多服务请求中发送多个读/写标签服务请求来读/写多个标签,我对这组标签的同步读/写有任何保证吗?我认为不是,但我似乎无法找到有关该主题的任何明确文档。特别是如果请求被分成多个 CIP 数据包。
【问题讨论】:
-
你解决了这个问题吗?
-
好的,谢谢。我刚刚发布了一个答案。我的问题可能还不清楚,但我更感兴趣的是从 PLC 的角度来看,读/写是否是原子的(即 PLC 看到的是一致的数据而不是部分更新的数据)。服务请求确实成功,但我发现它不会自动与 PLC 同步,因此如果数组/UDT 需要同步,我可以为此添加标志或互斥锁。再次感谢!
标签: plc