分享

西门子 S7-1200PLC的RUNTIME指令怎么测量程序?

 PLC发烧友 2024-04-25 发布于广东

SIMATIC S7-1200的RUNTIME指令  

在STEP 7(TIA Portal)中,"RUNTIME"指令可用于测量S7-1200 CPU整套程序执行周期或独立块的运行时间,还能度量信号的激活或间歇时长。"RUNTIME"指令位于"基本指令>程序控制指令>运行时控制"菜单项下,如图1所示。此指令自TIA Portal V13版本起得到支持,且不受CPU固件版本的任何限制。


图1. RUNTIME 指令


主要内容和实验环境

在这个应用示例中,我们将主要介绍如何使用RUNTIME指令来测量S7-1200程序的执行周期、特定程序块的执行时间,以及测量某个信号点的接通或间隔时间。以下是测试环境的具体内容:
- 使用STEP 7(TIA Portal)作为编程软件
- 使用S7-1200 CPU进行编程和测试
- 借助RUNTIME指令来实现上述功能
- 在测试环境中设置相关程序和信号点,用于演示RUNTIME指令的使用和效果
通过这个应用示例,我们可以清楚地展示如何利用RUNTIME指令实现对程序执行周期、程序块执行时间以及信号点接通或间隔时间的测量和监控。

软件:TIA V16 Professional Update 3

硬件:CPU1217C DC/DC/DC 6ES7217-1AG40-0XB0 V4.4

0

示例程序

示例1: 用 "RUNTIME" 指令测量 S7-1200 程序的执行周期

在OB1中,可以通过调用RUNTIME指令来测量整个程序的执行周期。首次调用时开始测量,第二次调用后,RET_VAL将返回上一周期的时间,以此类推,每次返回的值即为上一周期的执行时间。测量的运行时间包括程序执行过程中可能运行的所有CPU进程,比如由高级别事件或通信引起的中断。

通过TRACE功能,可以监控每个周期的时间,这与CPU在线诊断中统计的时间基本一致。

以上内容降重后更注重表达清晰和简洁。

图2. 测量程序

图3. 测量执行周期

示例2:用 "RUNTIME" 指令测量 S7-1200 某一程序块的执行时间

为了测量特定程序块的运行时间,需要使用三个独立的程序段。首先,在首次调用RUNTIME指令之前,需要初始化一个MEM变量,这样就可以确定时间测量的起点。接下来,在第二个程序段中,调用需要测量的程序块。然后,在第三个程序段中,再次调用RUNTIME指令,并将MEM变量与第一次调用时的参数分配保持一致。第三次调用RUNTIME指令时,它会比较第一次调用和第二次调用之间的内部计数器值,以此来计算两个指令执行之间的间隔时间,即所测程序块的执行时间。

图4. 测量程序块

示例3:用 "RUNTIME" 指令测量某一信号点的接通或间隔时间

为了测量某个信号的接通时间,如图 2 所示,可以按照以下步骤进行操作:         
1. 在信号的上升沿和下降沿各执行一次RUNTIME指令,检测上升沿后初始化MEM变量,记录起始测量点。
2. 检测下降沿后再次执行RUNTIME指令,通过两次执行指令得出内部计数器之间的差值,即信号的接通时间。
3. 对于两个信号间隔时间的测量,也需要在每个信号处执行RUNTIME指令,并记录两个信号之间的时间间隔。

如果担心OB1周期的影响,可以将程序放在硬件中断或循环中断中执行,以确保测量的准确性。以上就是测量信号接通时间和间隔时间的基本步骤和注意事项。

图5. 测量信号程序

章来源:

章来源:技成培训网原创,作者:胡志豪;未经授权禁止转载,违者必究!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多