零点起飞学西门子S7-1200 PLC编程
上QQ阅读APP看书,第一时间看更新

2.5 PLC的工作原理与逻辑运算

S7-1200 PLC操作系统与逻辑运算,CPU的工作模式及工作模式的切换,冷启动与暖启动的作用,RUN模式CPU的操作等,这些是了解PLC的工作原理与逻辑运算时必须掌握的知识重点。

2.5.1 PLC的工作原理

下面从5个方面讲述PLC的工作原理。

1. 操作系统与用户程序

CPU的操作系统用来实现与具体的控制任务无关的PLC的基本功能。操作系统的任务包括处理暖启动,刷新过程映像输入/输出,调用用户程序,检测中断事件和调用中断组织块,检测和处理错误,管理存储器,以及处理通信任务等。

用户程序包含处理具体的自动化任务必需的所有功能。用户程序由用户编写并下载到PLC,用户程序的任务包括:

  • □ 检查是否满足暖启动需要的条件,如限位开关是否在正确位置。
  • □ 处理过程数据,如用数字量信号来控制数字量输出信号,读取和处理模拟量输入信号,输出模拟量控制信号。
  • □ 用组织块(OB)中的程序对中断事件作出反应,如在诊断错误中断组织块OB82中发出报警信号,以及编写处理错误的程序。
2. CPU的工作模式

CPU有以下3种工作模式:STOP模式、STARTUP模式和RUN模式。CPU前面的状态LED指示当前工作模式。

  • □ 在STOP模式下,CPU不执行程序。可以下载项目。
  • □ 在STARTUP模式下,执行一次启动OB(如果存在)。在启动模式下,CPU不会处理中断事件。
  • □ 在RUN模式,程序循环OB重复执行。可能发生中断事件,并在RUN模式中的任意点执行相应的中断事件OB。可在RUN模式下下载项目的某些部分。

CPU支持通过暖启动进入RUN模式。暖启动不包括储存器复位。执行暖启动时,CPU会初始化所有的非保持性系统和用户数据,并保留所有保持性用户数据值。存储器复位将清除所有工作存储器、保持性及非保持性存储区、将装载存储器复制到工作存储器并将输出设置为组态的“对CPU STOP的响应”(Reaction to CPU STOP)。存储器复位不会清除诊断缓冲区,也不会清除永久保存的IP地址值。

可组态CPU中“上电后启动”(Startup after POWER ON)设置如图2-9所示。该组态项出现在CPU“设备组态”(Device Configuration)的“启动”(Startup)下。通电后,CPU将执行一系列上电诊断检查和系统初始化操作。在系统初始化过程中,CPU将删除所有非保持性位(M)存储器,并将所有非保持性DB的内容复位为装载存储器的初始值。CPU将保留保持性位(M)存储器和保持性DB的内容,然后进入相应的工作模式。检测到的某些错误会阻止CPU进入RUN模式。CPU支持以下组态选项。

图2-9 CPU上电启动设置

  • □ 不重新启动(保持为STOP模式)。
  • □ 暖启动- RUN模式。
  • □ 暖启动-断电前的模式。

注意:可修复故障可使CPU进入STOP模式。CPU因可修复故障或临时故障可能会进入STOP模式,前者如可替换信号模块故障,后者如电力线干扰或不稳定上电事件。这种情况可导致财产损失。如果已将CPU组态为“暖启动-断电前的模式”(Warm restart - mode prior to POWER OFF),CPU则进入在掉电或发生故障前的工作模式。如果在发生掉电或故障时,CPU处于STOP模式,则CPU将在上电时进入STOP模式并保持STOP模式,直至收到进入RUN模式的命令。如果在发生掉电或故障时,CPU处于RUN模式,则在未检测到可禁止CPU进入RUN模式的条件下,CPU将在下次上电时进入RUN模式。

要使CPU在下一次循环上电时返回到RUN模式,可将欲独立于STEP 7连接而运行的CPU组态设置为“暖启动- RUN”(Warm restart - RUN)。

  • □ 在STOP模式下,CPU处理所有通信请求(如果适用)并执行自诊断。CPU不执行用户程序,过程映像也不会自动更新。
  • □ 在STARTUP和RUN模式下,CPU执行如图2-10所示的任务。

图2-10 启动与运行过程示意图

1)STARTUP模式

CPU执行如图2-10左图所示的任务。

  • □ 阶段A:清除I(映像)存储区。
  • □ 阶段B:根据组态情况将Q输出(映像)存储区初始化为零、上一值或替换值,并将PB(PROFIBUS)、PN(PROFINET)和AS-i(Actuator Sensor Interface)输出设为零。
  • □ 阶段C:将非保持性M存储器和数据块初始化为其初始值,并启用组态的循环中断事件和时钟事件。执行启动OB。
  • □ 阶段D:将物理输入的状态复制到I存储器。
  • □ 阶段E:将所有中断事件存储到要在进入RUN模式后处理的队列中。
  • □ 阶段F:启用Q,存储器到物理输出的写入操作。

2)RUN模式

CPU执行如图2-10右图所示的任务。

  • □ 阶段①:将Q存储器写入物理输出。
  • □ 阶段②:将物理输入的状态复制到I存储器。
  • □ 阶段③:执行程序循环OB。
  • □ 阶段④:执行自检诊断。
  • □ 阶段⑤:在扫描周期的任何阶段处理中断和通信。
3. 工作模式的切换

可以使用编程软件在线工具中的STOP或RUN命令更改当前工作模式。也可在程序中包含STP指令,以使CPU切换到STOP模式。这样就可以根据程序逻辑停止程序的执行。

4. 冷启动与暖启动

下载了用户程序的块和硬件组态后,再一次切换到RUN模式时,CPU执行冷启动。冷启动时,复位输入,初始化输出;复位存储器,即清除工作存储器、非保持性存储区和保持性存储区,并将装载存储器的内容复制到工作存储器。存储器复位不会清除诊断缓冲区,也不会清除永久保存的IP地址。

冷启动之后,在下一次下载之前的STOP到RUN模式的切换均为暖启动。暖启动时,所有非保持的系统数据和用户数据被初始化,不会清除保持性存储区。

暖启动不对存储器复位,可以用在线与诊断视图的“CPU操作面板”上的MRES按钮来复位存储器。

S7-1200 CPU之间通过开放式用户通信进行数据交换只能在RUN模式下进行。

移除或插入中央模块将导致CPU进入STOP模式。

5. RUN模式CPU的操作

在RUN模式下,每个扫描周期,CPU都会写入输出、读取输入、执行用户程序、更新通信模块以及响应用户中断事件和通信请求。在扫描期间会定期处理通信请求。以上操作(用户中断事件除外)按先后顺序定期进行处理。对于已启用的用户中断事件,将根据优先级按其发生顺序进行处理。对于中断事件,如果适用的话,CPU将读取输入、执行OB,然后使用关联的过程映像分区(PIP)写入输出。

1)写外设输出

在每个扫描周期的开始,从过程映像重新获取数字量及模拟量输出的当前值,然后将其写入到CPU、SB和SM模块上组态为自动输入/输出更新(默认组态)的物理输出。通过指令访问物理输出时,输出过程映像和物理输出本身都将被更新。

2)读外设输入

在该扫描周期中,将读取CPU、SB和SM模块上组态为自动输入/输出更新(默认组态)的数字量及模拟量输入的当前值,然后将这些值写入过程映像。通过指令访问物理输入时,指令将访问物理输入的值,但输入过程映像不会更新。

3)执行用户程序

读取输入后,系统将从第一条指令开始执行用户程序,一直执行到最后一条指令。其中包括所有的程序循环OB及其所有关联的FC和FB。程序循环OB根据OB编号依次执行,OB编号最小的先执行。

4)通信处理与自诊断

在扫描循环的通信处理和自诊断阶段,处理接收到的报文,在适当的时候将报文发送给通信的请求方。此外,还要周期性地检查固件、用户程序和输入/输出模块的状态。

5)中断处理

事件驱动的中断可以在扫描循环的任意阶段发生。在有事件出现时,CPU中断扫描循环,通过调用组态给该事件的OB。OB处理完事件后,CPU在中断点恢复用户程序的执行。中断功能可以提高PLC对事件的响应速度。

2.5.2 逻辑运算

在数字量(或称开关量)控制系统中,变量仅有两种相反的工作状态,如高电平和低电平、继电器线圈的通电或断电,可以分别用逻辑代数中的1和0表示这些状态。在波形图中,用高电平表示1状态,用低电平表示0状态。

使用数字电路或PLC的梯形图都可以实现数字量逻辑运算。用继电器或梯形图可以实现基本的逻辑运算,触点的串联可以实现“与”运算,触点的并联可以实现“或”运算,用常闭触点控制线圈可以实现“非”运算。多个触点的串、并联电路可以实现复杂的逻辑运算。如图2-11所示,其中的I0.0-I0.4为数字量输入变量,Q0.0-Q0.2为数字量输出变量。

图2-11 基本逻辑运算

如图2-11所示的基本逻辑运算之间的“或”“与”“非”逻辑运算关系如表2-4所示。表中的0和1分别表示输入点的常开触点的断开和接通、输出点线圈的断电与通电。

表2-4 逻辑运算关系表

PLC采用基本逻辑运算可以实现电动机的连续运行和点动控制,PLC的梯形图如图2-12所示。

图2-12 能实现连续运行与点动控制的PLC梯形图

如图2-12所示,I0.0为启动按钮,I0.1为连续/点动运行开关,I0.2为停止按钮,I0.3为热继电器常闭触点,Q0.0为电动机运行控制。当需要点动时,断开连续运行开关,按下启动按钮,输出Q0.0为1状态,电动机运行,松开按钮,输出Q0.0为0状态,电动机停止运行;当需要连续运行时,闭合连续运行开关,按下启动按钮,Q0.0为1状态,其常开触点闭合,实现自锁,电动机连续运行,直到按下停止按钮(I0.2)。当电动机过热时,为保护电动机断开输出Q0.0,电动机停止运行。