PLC工作原理

目录

CPU启动过程

CPU的循环执行过程

CPU的循环时间


CPU启动过程


当CPU从STOP切换到RUN模式时,会按照下列步骤执行启动:

1.清除输入映像区。

2.输出执行初始化。根据输出模块的组态使用上一个值或替换值对输出模块初始化。

3.执行启动组织块。在输入输出完成初始化后,将执行启动组织块OB,按照启动OB的编号一次执行,每个启动OB仅执行一次。

4.读取输入映像区PII。将外设输入模块通道的物理状态复制到PII。

5.写入输出映像区PIQ。将PIQ的状态复制到物理输出。

这样,CPU就完成了启动过程,之后将执行程序循环组织块,进入正常运行状态。


CPU的循环执行过程


一个完整的循环过程,从循环开始到结束主要有以下几个步骤:

1.将输出映像区PIQ写入输出模块,保证上个周期程序的结果进行输出。

2.将输入模块当前的通道状态复制到输入映像区PII中,为程序运行做准备。

3.运行循环组织块,一般是OB1主程序;当然在运行过程中可能被高优先级事件中断,进入相应的组织块OB中执行任务程序,而后再返回主循环中继续顺序执行。

4.运行操作系统中包含的系统自检和诊断。

CPU的循环时间

CPU循环时间是其完成循环执行过程所消耗的时间。这个时间并不是一个固定值,在CPU的属性中我们可以组态最小循环时间和最大循环时间。当循环时间没有达到最小循环时间时,循环组织块结束后会等待,直到达到最小循环时间才继续执行;而循环时间并不会等待达到最大循环时间再执行,即最大循环时间不会影响循环时间。

最大循环时间是循环程序运行时间的可组态上限。当循环时间超过最大循环时间一次时,CPU报错;当连续超过2次时,CPU会进入STOP模式。


造成循环时间不固定主要有几个原因:

1.每个周期用户程序的执行时间不同。如程序运行过程中,可能会有某些程序或程序段不调用,或调用次数不同,都会改变循环时间的长短。

2.中断程序导致的时间延长。如在OB1执行过程中发生了诊断中断事件,而硬件中断又中断了诊断中断事件的运行。这些中断时间都包含在OB1的循环时间内,导致了循环时间的增加。

3.过程映像区的更新时间。它取决于集中式和分布式IO的模块的数据量。

可以根据下面公式计算:

过程映像更新的基本负载

+过程映像中的字数*集中式I/O的复制时间

+过程映像中通过DP传输的字数*PROFIBUS I/O的复制时间

+过程映像中通过PROFINET传输的字数*PROFINET I/O的复制时间

=过程映像分区的更新时间


我们可以采用下列方式读取CPU循环时间:

1.通过TIA Protal Step7中的在线任务下的读取循环时间,可以读到最小循环时间,上周期循环时间及最大循环时间。

2.调用程序块RT_INFO读取OB循环时间,读到上周期循环时间。

3.直接读取OB1的系统参数,获取最小循环时间,上周期循环时间及最大循环时间。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值