恭喜,你发布的帖子
发布于 2022-03-04 22:55:42
13楼
由通信引起的循环负载的示例
下面是通信如何影响循环负载的两个示例。
无额外异步事件时由通信引起的循环负载的示例
将因通信引起的循环负载设置为 50% 时,OB 1 循环时间可增加一倍。
同时,OB 1 循环时间也受异步事件(如硬件中断或循环中断)的影响。 从统计观点来看,OB1 循环内会发生更多异步事件,因为循环时间因通信而延长。 这样就进一步延长了 OB 1 循环时间。 延长的时间取决于每个 OB 1 循环中发生的事件数以及事件处理时间长度。
有额外异步事件时由通信引起的循环负载的示例
假如 CPU 始终有足够的通信作业要处理,纯 OB 1 循环时间为 500 ms 时,50% 的通信负载会使实际循环时间高达 1000 ms。 与此同时,如果每隔 100 ms 执行一次处理时间为 20 ms 的循环中断,在没有通信负载时该循环中断将使循环时间延长共 5 * 20 ms = 100 ms。 即,实际循环时间将为 600 ms。由于循环中断也会中断通信,因此在 50% 的通信负载下,它会使循环时间增加 10 * 20 ms。 即,此时的实际循环时间将达到 1200 ms,而不是 1000 ms。
说明
请检查在系统运行期间更改“由通信引起的循环负载”(Cycle load due to communication) 参数的值所产生的影响。
设置最小循环时间时必须考虑通信负载;否则,将发生时间错误。
……
你所说的是这个?
首先,你举的例子有些夸张,我项目做到现在也没遇见过,我做项目选的CPU扫描周期一般以20毫秒为限。所以,无论是实时还是非实时通信,我觉得都可以按你给的数据小1到2个数量级来讨论。
其次,你举得例子,没看出来对于说明实时与非实时通信的区别有什么帮助,对楼主的议题有什么辅助作用,我觉得恰恰相反,你夸张的例子还会吓到楼主。
第三,我说你错,是因为一个搞自动化的人居然会说出一力降十会的话,那直接上人就是了,人多力量大嘛。
第四,追求绝对的快也必然不是最佳的解决方案,有管理的“快”才是真正的快
请填写推广理由:
分享
只看
楼主