博途:计算PLC的扫描周期——RunTime指令的原理及用法

1、RunTime指令

RunTime( “测量程序运行时间”指令)用于测量整个程序、单个块或命令序列的运行时间。

1.1 计算PLC的扫描周期

最常见的用法是用来计算PLC的扫描周期。以下代码即可计算出扫描周期,存储在DbTime.PreCycleTime中,单位ms(注意:RUNTIME指令本身,返回的时间单位是s,以下代码做了一点转化)。

图1.1 PLC扫描周期计算

1.2 曲线分析

图1.2 曲线:扫描周期

图1.2是上述代码执行后的时序图。每个点的值表示对应扫描周期内的值,为方便表达,各变量名作以下简化:

  1. PCT:PreCycleTime,即扫描周期,单位ms。
  2. CT: CycleTime_us,指令RUNTIME的返回值,即以us为单位的扫描周期;
  3. TR:TimeRemain,上个扫描周期的“小数部分”。
  4. 用数字下标表示相邻两个周期的值,PCT1表示上一个周期,PCT2表示本周期的值,CT、TR类似。

根据图1.1的逻辑,PLC的扫描周期PCT的计算过程如下:

  1. 首先得到上个循环时,扫描周期的“剩余值”TR1,即小数部分;
  2. 通过RUNTIME指令,得到本周期的CT2值,单位为us;
  3. PCT2=(CT2+TR1)*1000.0,向下取整,舍去小数部分。
  4. 步骤3中舍去的小数部分,写到TR2中。用于下一个循环时步骤1来使用。

计算结果如图1.2,结果与曲线一致。

1.3 拓展思考

如图1.3所示,PCT2计算结果为0,即扫描周期为0ms。有兴趣的朋友,可以思考一下是否正确,为什么呢?

图1.3 曲线:扫描周期

2、RunTime指令的本质

RunTime指令实际上时执行两次,第一次执行时,用于标定计时的起点;第二次执行时,用于标定计时的终点。两次执行之间,PLC通过内部的高速计数器,来计算两条指令之间的运行时间。

RunTime指令第三次执行时,会将第二次执行标定为计时起点,本次执行标定为计时终点,执行的结果,反映的是第二次与第三次之间的时间。

如图2.1所示代码,当Enable=1时,RunTime执行一次后,马上令Enable=0。仅当Enable再次为1时,RunTime再执行一次,Enable再次复位为0。这样,可实现RunTime的单步执行,方便理解RunTime的执行逻辑。

图2.1 RunTime指令

如图2.2所示,为上述代码的执行结果,模拟了Runtime的单步执行逻辑。

  1. 当PLC运行后,Enable=0,RunTime未执行;
  2. 令Enable=1,即Enable第一次为1,RunTime第一次执行, RT暂时无值。
  3. 第二次令Enable=1,即Enable第二次为1,RunTime第二次执行,RT有值,该值为两次RunTime之间的时间差。

如图2.3所示,为时序图。

图2.2 RunTime的指令逻辑

图2.3 RunTime单步执行时序

西门子精简面板和精智面板与S7-1200/1500PLC时间同步功能

西门子精智面板Sm@rtServer功能的使用

在STEP 7 (TIA Portal) 中,如何实现流量累积功能?

如果你会WINCC却不懂WinCC Audit审计追踪

WINCC与PLCSIM Advanced仿真的S7-1500通信

WinCC Professional 使用C脚本读写变量

西门子WINCC8.0VBS脚本学习讲解

博途WinCC Professional 获取通信状态(脚本)

西门子标准 CPU 与 S7-1500R/H 冗余系统进行S7通信

西门子S7-1200加入MRP 环网用法

西门子WINCC和400H实现通讯的无扰切换

WinCC V7.5和Allen-Bradley ControlLogix5500 通讯

MES访问WinCC V7.5/8.0 REST API

西门子博途WinCC Professional 脚本C声音报警

建立SIMATIC NET OPC服务器与200SMART的连接

博途WinCC Professional VBS脚本更改对象属性

西门子博途WinCC Advanced 项目下载

西门子WINCC8.0带确认的输入/输出域

WINCC8.0条形图对象(3D棒图对象)

西门子WinCC Professional 脚本控制画面层的显示/隐藏

WinCC Advanced/Professional/Unified PC区别扫盲

SIMATIC WinCC 离散量报警组态

博途WinCC Professional 与 S7-1200/1500通信

博途TIA中数据块如何实现清零?

西门子博途结构数据类型(Struct)

西门子PCS7版本V9.1系统安装

西门子WINCC画面显示系统时间

工控人加入PLC工业自动化精英社群

西门子WINCC提示缺少Audit RC/RT授权

西门子S7-400H MODBUS通讯

经典版wincc、SQLserver数据库和Excel表格的数据交互

基于FactoryTalk View Studio和AB_CompactLogix中型PLC无线通讯方案

巨控GRM230自带IO液位远程联动水泵行业应用

基于巨控GRM230酒店高位水箱远程监控系统

基于巨控GRM560西门子1200PLC发邮件

AB PLC和西门子PLC之间需要交换数据

基于INTOUCH和巨控GRM530的PLC无线通讯方案

巨控GRM530模块在污水泵站中的应用

WINCC 本地连接 巨控GRM300网关连接PLC和仪表

巨控GRM530实现PLC远程下载远程维护

巨控GRM530杀菌信息云存储及云检视技术创新改善

广州巨控远程模块在新能源生产项目的应用

记录一个巨控GRM532跨国沙特远程调试西门子1200PLC案例

罗克韦尔AB的PLC如何实现远程上下载手机APP远程监控IOT联网通讯

AB1756PLC通过协议网关巨控GRM300读取多个MODBUS 仪表

西门子S7-1500双冗余巨控GRM530实现工业联网通讯

西门子1500PLC连接64个仪表巨控GRM300网关数据交互

三菱Q系列PLC如何实现远程上下载手机APP远程监控IOT联网通讯

石化工厂100个485仪表10KM通讯上位机组态IFIX

巨控GRM600通过OPCUA客户端协议访问WINCC7.5OPCUA服务器

巨控GRM600系列标准OPCUAserver协议链接UaExpert

巨控GRM560系列标准OPCUA客户端协议访问西门子1200PLC

巨控GRM230在辽油工区电锅炉远程平台的应用

intouch的报警怎么发到短信/微信上

巨控GRM530在制药企业质量管理中的应用

工控人加入PLC工业自动化精英社群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值