扫描引擎是可编程逻辑控制器 (PLC) 的核心组件,它负责执行 PLC 程序并更新 PLC 的状态。
扫描引擎的工作原理
扫描引擎通过以下步骤工作:
- 读取输入:扫描引擎从 PLC 的输入模块读取输入值。
- 执行程序:扫描引擎执行 PLC 程序中的指令。这些指令可以包括逻辑运算、算术运算、数据传送和控制流指令。
- 更新输出:扫描引擎将执行结果写到 PLC 的输出模块,以更新 PLC 的输出状态。
扫描引擎以循环方式运行,不断重复这些步骤。这种持续的扫描过程确保 PLC 程序及时响应输入的变化并更新PLC 的状态。
扫描引擎的类型
有两种主要的扫描引擎类型:
- 循环扫描引擎:这种类型的扫描引擎以固定的时间间隔执行 PLC 程序。它简单可靠,但速度相对较慢。
- 事件驱动扫描引擎:这种类型的扫描引擎在发生特定事件时才执行 PLC 程序。它比循环扫描引擎更快,但需要更复杂的编程。
扫描引擎的优化
可以通过以下技术优化扫描引擎的性能:
- 使用高效的指令:使用执行速度快的指令,例如算术指令而不是逻辑指令。
- 减少程序规模:编写简洁且高效的 PLC 程序。
- 使用数据块:将经常使用的变量存储在数据块中,以减少程序执行时间。
- 优化扫描顺序:安排 PLC 程序中的指令,以便扫描引擎可以最有效地执行它们。
结论
扫描引擎对于 PLC 的正确操作至关重要。了解其工作原理、类型和优化技术可以帮助您编写高效且可靠的 PLC 程序。
PLC的工作方式采用不断循环的顺序扫描工作方式。 每一次扫描所用的时间称为扫描周期或工作周期。 CPU从第一条指令执行开始,按顺序逐条地执行用户程序直到用户程序结束,然后返回第一条指令开始新的一轮扫描。 PLC就是这样周而复始地重复上述循环扫描的。 PLC工作的全过程可用图7.9所示的运行框图来表示。 整个过程可分为以下几个部分:第一部分是上电处理。 PLC上电后对系统进行一次初始化,包括硬件初始化和软件初始化,停电保持范围设定及其他初始化处理等。 第二部分是自诊断处理。 PLC每扫描一次,执行—次自诊断检查,确定PLC自身的动作是否正常。 如CPU、电池电压、程序存储器、I/O和通讯等是否异常或出错,如检查出异常时,CPU面板上的LED及异常继电器会接通,在特殊寄存器中会存入出错代码。 当出现致命错误时,CPU被强制为STOP方式,所有的扫描便停止。 图7.9 PLC运行框图第三部分是通讯服务。 PLC自诊断处理完成以后进入通讯服务过程。 首先检查有无通讯任务,如有则调用相应进程,完成与其他设备的通讯处理,并对通讯数据作相应处理;然后进行时钟、特殊寄存器更新处理等工作。 第四部分是程序扫描过程。 PLC在上电处理、自诊断和通讯服务完成以后,如果工作选择开关在RUN位置,则进人程序扫描工作阶段。 先完成输入处理,即把输入端子的状态读入输入映像寄存器中,然后执行用户程序,最后把输出处理结果刷新到输出锁存器中。 在上述几个部分中,通讯服务和程序扫描过程是PLC工作的主要部分,其工作周期称为扫描周期。 可以看出扫描周期直接影响控制信号的实时性和正确性,为了确保控制能正确实时地进行,在每个扫描周期中,通讯任务的作业时间必须被控制在一定范围内。 PLC运行正常时,程序扫描周期的长短与CPU的运算速度、与I/O点的情况、与用户应用程序的长短及编程情况等有关。 通常用PLC执行l KB指令所需时间来说明其扫描速度,一般为零点几ms到上百ms。 值得注意的是,不同指令其执行时间是不同的,从零点几μs到上百μs不等,故选用不同指令所用的扫描时间将会不同。 而对于一些需要高速处理的信号,则需要特殊的软、硬件措施来处理。 当PLC处于正常运行时,它将不断重复扫描过程。 分析上述扫描过程,如果对远程I/O、特殊模块和其他通讯服务暂不考虑,这样扫描过程就只剩下“输入采样”、“程序执行”和“输出刷新”三个阶段了。 这三个阶段是PLC工作过程的中心内容,理解透PLC工作过程的这三个阶段是学习好PLC的基础。 下面就对这三个阶段进行详细的分析。 (1) 输入采样阶段PLC在输入采样阶段,首先扫描所有输人端点,并将各输入状态存入相对应的输入映像寄存器中。 此时,输入映像寄存器被刷新。 接着,进入程序执行阶段和输出刷新阶段,在此阶段输入映像寄存器与外界隔离,无论输入情况如何变化,其内容保持不变,直到下一个扫描周期的输人采样阶段,才重新写入输入端的新内容。 所以一般来说,输人信号的宽度要大于一个扫描周期,否则很可能造成信号的丢失。 由此可见,输入映像寄存器的数据完全取决于输入端子上各输入点在上一刷新期间的接通和断开状态。 (2) 程序执行阶段根据PLC梯形图程序扫描原则,一般来说,PLC按从左到右、从上到下的步骤顺序执行程序。 当指令中涉及输入、输出状态时,PLC就从输入映像寄存器中“读入”采集到的对应输入端子状态,从元件映像寄存器“读入”对应元件(“软继电器”)的当前状态。 然后,进行相应的运算,运算结果再存入元件映像寄存器中。 对元件映像寄存器来说,每一个元件(“软继电器”)的状态会随着程序执行过程而变化。 (3) 输出刷新阶段在所有指令执行完毕后,元件映像寄存器中所有输出继电器的状态(接通/断开)在输出刷新阶段转存到输出锁存器中,通过输出端子和外部电源,驱动外部负载。 由此可见,输出映像寄存器的数据取决于输出指令的执行结果,输出锁存器中的数据由上一次输出刷新期间输出映像寄存器中的数据决定,而输出端子的接通和断开状态,完全由输出锁存器决定。
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论