前注:这主要是一个基于编程的站点,虽然您的问题在编程的上下文中确实有答案,但我碰巧知道在您的工业应用中,循环与非循环的重要性往往是非常特定于硬件/协议的,并且这实际上更像是一个网络问题而不是编程问题。
循环数据不仅仅是“连续”数据。在工业中,它指的是按有保证(或至少高度可预测)的时间表交付的数据。如果数据流违反计划,可能会造成灾难性后果(VFD 在几分之一秒内错过关机命令,您会失去手臂!)。
非循环数据对于机器控制仍然是可靠的,只是以不太确定的方式传递(大约毫秒,有时长达几秒)。使用单个 PLC 访问单个 VFD 时,您可能永远不会注意到这种突发行为,事实上,您可能会感觉到数据传输更流畅、更快。从硬件接口的角度来看,非循环数据传输不能保证一台机器是否或何时会响应另一台机器的请求。
这两种形式的数据传输都以比人类处理速度快得多的速度传输数据,但在某些应用程序中,它们各有各的后果。
循环网络通常必须采用主/从的形式,一次只允许一个设备说话,并且总是返回答案,即使只是为了确认消息已被接收。循环网络通常不允许在同一条线路上使用尽可能多的设备,而且它们通常会以较慢的速率传递大量数据。
非循环网络可能被认为有点混乱,但由于它们跳过了握手形式,它们通常可以欺骗更多设备进入网络并同时获得更高的速度。这是以偶尔的数据冲突/瓶颈为代价的,有时甚至会简单地忽略/丢失对关键数据的请求,而没有迹象表明目标失败或成功(在这种情况下,发送者可能会坐下来拼命等待消息它不会得到,然后经常触发将关闭系统的进程看门狗)。
从程序员的角度来看,这两种传输类型之间没有太大区别。
通常会决定一种情况,
- 有多少设备在线路上运行(有时这会立即强制回答)
- 他们想要共享的数据有多敏感/易变(如果消息晚了一点,消息会有多大用处)
- 在任何给定时间他们可能需要发送多少数据(如果您没有提前看到它,就很难预测/避免已经产生竞争条件的网络的需求变化)。
希望有帮助:)