万泉河
WX:ZHO6371995,欢迎+
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 246 点
下载积分: 831 分
在线时间: 11(小时)
注册时间: 2021-06-11
最后登录: 2024-11-07
查看万泉河的 主题 / 回贴
楼主  发表于: 2022-08-19 21:40
0819 【万泉河】PLC的OB1循环周期时间有多重要?

本行业的特征技术点, 除了双线圈之外, 还有一个OB1的循环时间。

即,程序中所有指令的运行时间累加在一起, 形成了一个OB1循环周期内的循环时间。

与高级语言编程中循环都是自己编程实现的不同, PLC中内置了OB1或者叫做MAIN,会在设备运行期间不断周而复始循环运行。 那么这个周期值就比较重要,因为它代表了系统的运行负载轻重程度。

前几天,写了一篇文章《0815 【万泉河】一种在PLC程序中比较优雅地使用全局变量M的方法》,简单说, 就是通过在程序中增加一部分代码,我称之为前处理和后处理,可以实现程序中M量的使用比较优雅, 不怕使用冲突, 也不需要整个程序范围内的交叉索引查找故障。

然后有一些版主专家就提出了反对意见, 指出程序使用M执行速度快,用V区转储浪费了OB1周期,加重了系统负担, 甚至还有人指责我这样子大手大脚使用CPU计算资源, 是因为有钱,所以不会过日子。 而他们都是要节俭持家的, 绝不会这样铺张浪费。

然后,我就不乐意了。 既然要算经济账, 那咱就从经济账的角度算一下,使用我前文的方法做程序,到底是省钱还是费钱。

那么我们来计算一下增加的前处理后处理的代码, 会增加CPU多少运行时间。
写一个空程序,只包含前处理后处理这两段代码,那么它的运行时间就会是将来正式程序中使用的时候,所增加的增量。


程序下载到CPU中,然而因为计算量太小,根本统计不出来。CPU的OB1周期保持在1ms。
于是做了个循环,通过增大循环量来得到其运行耗时。



然后:

当循环次数为10000时,SMW22=204ms, 即每个周期增加的时间是0.02ms
我不知道所有同行每次调试时都非常在意系统的OB1时间,会不会在调试完成后记录存储OB1时间到调试记录中交接归档。 但总的来说, 一台CPU的周期在50ms-60ms上下是正常的,健康的。 甚至,在S5的时代, OB1的循环周期往往是100ms的数量级,证明, 你即便把程序做到了100ms, 从设计角度来说, 选型有些失误,但系统整体也还算可以运行, 没有彻底瘫痪。

我们就取60ms的正常值,假设1200元买得一台CPU,那么做个除法,每个ms的花费为20元。 当然这个算法比较简单粗暴,你花出去的钱买到的不仅仅是循环周期, 还有系统更多的功能。

即便按20元/ms来计算,一段代码增加的算力对应的费用为0.4元。

我所给出的代码, 只是在系统模块化基础上给每个POU增加,通常对于SMART 200这样的小PLC来说,能带的系统规模,模块单元20个POU就算多的了。 那么折算下来,0.4ms,8元。

就是说,假设你的系统计算算力紧张拮据到极致, 每一句代码都要非常在乎,都要尽量精简的时候,前处理后处理程序所对应的成本也不过区区8元。

而如果没有达到极致, 60ms和60.4ms的程序有什么区别吗?

没有区别,你买的PLC是一样的,PLC带动的生产线的生产效率是一样的。

完全一样,区别为0!

这里还有一个比较有意思的故事。

大约十多年前,曾经在论坛里,也是讨论到相似话题的时候, 有一个网友跟我抬杠,大致意思就是CPU运行效率提高,就会带来生产效率提高。 我为了确认, 还举例子问他,假设一条汽车生产线, 你选用一台PLC系统运行周期50MS, 然后再换一台更高级点的, 运行周期40ms, 效率提高了20%,那么产线的产能就会提高20%,会多生产20%的汽车?甚至运行周期到25ms, 效率提高一倍,汽车产量能翻倍吗?他非常笃信地回复, 是的呀!然后我就笑了。

如果那样的话,提高CPU性能就能带来几百亿的收入增加,那就是不惜代价花费过亿来单买一台性能顶级的PLC,也是值得的啊!

很显然不是这样的嘛!通常的控制系统,产能与PLC的运行效率都不要说什么几乎无差别了, 而是根本没有差别。

近20年, CPU的性能逐渐提高, 主频越来越快,计算能力持续增加, 一些以前不能实现的功能,比如多轴同步等等,现在可以实现了。 以前需要特殊算法和特殊工艺处理才能实现的功能,现在只需要CPU直接计算驱动就可以实现, 最终设计者的设计效率得到提高了,仅此而已。

我所给出的程序处理方法, 根本的目的是在于提高工程师的工作效率。 可以不需要耗费太多的时间来规划变量使用。 假设带来的效率提高为10%。

10%的数字对传统行业来看相当大,而对编程方法来说, 很小意思了。这里只是一个细节。 完整的烟台方法架构,对效率的提高可以达到300%-500%, 如果要感觉惊讶, 把下巴留给烟台方法吧!我做的80系列例子, 每一个平台, 每一个版本, 花费时间不超过20分钟。 大家可以印证下按自己传统的编程方法,需要多长时间。

一个平常的工程师的身价月薪1W很正常, 专家级别2W也不为过。 咱们就按1W来算, 效率提高10%, 相当于每月节省1000元。

比较一下,每台PLC 8元(还不一定存在)和每月1000元(以后还可以持续改进提高),哪一个账比较合算?

这个数学账算的值得吗?


本帖最近评分记录:
  • 下载积分:+1(hsiung) 好贴好贴!
    zhaode2888
    级别: 工控侠客
    精华主题: 0
    发帖数量: 276 个
    工控威望: 3617 点
    下载积分: 53114 分
    在线时间: 793(小时)
    注册时间: 2009-04-17
    最后登录: 2024-12-22
    查看zhaode2888的 主题 / 回贴
    1楼  发表于: 2022-08-22 13:30
    我感觉我是时候和老板谈下换电脑了   
    fgx9306
    Engineer-X
    级别: 家园常客
    精华主题: 0
    发帖数量: 733 个
    工控威望: 837 点
    下载积分: 18218 分
    在线时间: 152(小时)
    注册时间: 2015-06-08
    最后登录: 2024-12-20
    查看fgx9306的 主题 / 回贴
    2楼  发表于: 2022-08-22 17:58
    这和汽车产线差不多,电气速度提高了,设备的交付又是也不会提前甚至准时