PLC在RUN模式下处理扫描周期

2019年1月14日15:20:33 发表评论 538 阅读

在每个扫描周期中,CPU 都会写入输出、读取输入、执行用户程序、更新通信模块以及响应用户中断事件和通信请 求。 在扫描期间会定期处理通信请求。

以上操作(用户中断事件除外)按先后顺序定期进行处理。 对于已启用的用户中断事件,将根据优先级按其发生顺序进行处理。 对于中断事件,如果适用的话,CPU 将读取输入、执行 OB,然后使用关联的过程映像分区 (PIP) 写入输出。

系统要保证扫描周期在一定的时间段内(即最大循环时间)完成;否则将生成时间错误事 件。

  • 在每个扫描周期的开始,从过程映像重新获取数字量及模拟量输出的当前值,然后将 其写入到CPU、SB和 SM 模块上组态为自动 I/O 更新(默认组态)的物理输出。 通过指令访问物理输出时,输出过程映像和物理输出本身都将被更新。
  • 随后在该扫描周期中,将读取CPU、SB和 SM 模块上组态为自动 I/O 更新(默认组态)的数字量及模拟量输入的当前值,然后将这些值写入过程映像。 通过指令访问物理输入时,指令将访问物理输入的值,但输入过程映像不会更新。
  • 读取输入后,系统将从第一条指令开始执行用户程序,一直执行到最后一条指令。 其中包括所有的程序循环OB及其所有关联的 FC 和 FB。 程序循环 OB 根据 OB 编号依次执行,OB 编号最小的先执行。

在扫描期间会定期处理通信请求,这可能会中断用户程序的执行。 自诊断检查包括定期检查系统和检查 I/O 模块的状态。

中断可能发生在扫描周期的任何阶段,并且由事件驱动。 事件发生时,CPU 将中断扫描循环,并调用被组态用于处理该事件的 OB。 OB 处理完该事件后,CPU 从中断点继续执行用户程序。

weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: