暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PLC代码执行时间和影响因素的测试

Lizzy的倍福园地 2021-07-13
1011

保持对技术的好奇心,拓宽知识的边界,提高认识的分辨率 


适用范围:

程序开发过程中,发现CPU利用率太高,希望优化PLC代码,找出到底是哪些PLC代码浪费了时间,能否优化,这是编程人员需要考虑的问题。TwinCATPLCTcUtinity.lib中提供了功能块GETCPUCOUNTER,可以在同一个PLC周期内多次调用,实时获取CPU时间。同一周期内两次获取的时间之差值,就是两次FB调用之间的代码执行时间。利用这个功能,不仅可以优化代码,还可以对多种PLC指令的执行时间,对相对代码在不同CPU上的执行时间做相对准确的数字对比。对于TcpIp通讯、ADS通讯、LoginDisplay Flowcontrol等操作的影响CPU执行的程序,都可以做定量的分析。


测试出的3个现象:

  • 指令执行时间的分析

MEMCPY耗时为普通赋值语句的3倍。

值、取反再赋值、判断的运算时间相当,都是PLC基本指令时间。

I7虚拟机执行速度大约是CX10204

整数加减运算是赋值语句的2-2.5

整数乘除运行是赋值语句的1.5-2

*其它运算:打开文件、读文件、写文件这种可能会耗时的语句,用户可以自己测试,方法见附件。

 

  • Display Flow ControlCPU执行时间的影响

当前高亮显示的代码行,会增加CPU执行时间。不高亮显示的代码行不受影响。

SystemTaskInfoArr看出,把高亮显示代码行的窗体最小化后,LastExecTime恢复正常。

影响的程度:LAN连接的影响最大,本地虚拟机影响小10倍,虽然用ping指令响应都<1ms.

只有Display Flow Control才会影响代码执行,并且影响的程度与PLC周期无关

 

  • Login的影响指令执行时间的分析

PLC Control对程序的Login,不会影响代码执行。只有DisplayFlow Control才会。

与不带IO映射且直接Login801查看结果相比,PLC执行时间没有区别。

*CPU利用率可能有区别,因为消耗的是IO处理的时间,不是CPU运算的时间。

 

附件包括示例程序及其测试过程的记录和含截图详细说明。


本公众号附加文件总的总链接是:

https://pan.baidu.com/s/1miXeCe0

本文附件的路径为:

/个人公众号附加文档/PLC代码执行时间分析


适用范围:1

测试出3个现象:... 1

分析工具:2

测试记录... 3

1.     指令执行时间的分析... 3

2.     Display Flow ControlCPU执行时间的影响... 5

3.     Login的影响指令执行时间的分析... 11


(******************************)

喜欢本文?识别二维码,可关注公众号


-技术区


前人趟过的雷

Lizzy Chen的系列教材

TwinCAT与Step 7编程异同

数字输入输出电路

倍福系统的CAN 2.0通讯解决方案

关于EtherCAT和TSN的对比

PageFault,不得不说的故事

TwinCAT运动控制的位置反馈

TwinCAT程序更新之九重天

TwinCAT DB Server:从PLC直接操作数据库

ADS加不上路由的若干可能性(第3版)

使用倍福系统做项目开发的检查清单



文章转载自Lizzy的倍福园地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论