西门子S7-1200 PLC编程与应用(第2版)
上QQ阅读APP看书,第一时间看更新

第3章 S7-1200 PLC编程基础

3.1 S7-1200 PLC的工作原理

3.1.1 PLC的基本工作原理

PLC采用循环执行用户程序的方式,称为循环扫描工作方式,其运行模式下的扫描过程如图3-1所示。可以看出,当PLC上电或者从停止模式转为运行模式时,CPU执行启动操作,消除没有保持功能的位存储器、定时器和计数器,清除中断堆栈和块堆栈的内容,复位保存的硬件中断等;此外,还要执行用户可以编写程序的启动组织块,即启动程序,完成用户设定的初始化操作;然后,进入周期性循环运行。一个扫描过程周期可分为输入采样、程序执行及输出刷新三个阶段。

(1)输入采样阶段

此阶段PLC依次读入所有输入信号的状态和数据,并将它们存入I/O映像区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映像区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。

图3-1 PLC循环扫描工作过程

(2)程序执行阶段

PLC按照从左到右、从上至下的顺序对用户程序进行扫描,并分别从输入映像区和输出映像区中获得所需的数据,进行运算、处理后,再将程序执行的结果写入寄存执行结果的输出映像区中保存。这个结果在程序执行期间可能发生变化,但在整个程序未执行完毕之前不会送到输出端口。

(3)输出刷新阶段

在执行完用户所有程序后,PLC将输出映像区中的内容送到寄存输出状态的输出锁存器中,这一过程称为输出刷新。输出电路要把输出锁存器的信息传送给输出点,再去驱动实际设备。

由上可以看出PLC的工作特点如下。

1)所有输入信号在程序处理前统一读入,并在程序处理过程中不再变化,而程序处理的结果也是在扫描周期的最后时段统一输出,将一个连续的过程分解成若干静止的状态,便于面向对象的思维。

2)PLC仅在扫描周期的起始时段读取外部输入状态,该时段相对较短,对输入信号的抗干扰极为有利。

3)PLC循环扫描执行输入采样、程序执行、输出刷新“串行”工作方式,这样既可避免继电器、接触器控制系统因“并行”工作方式存在的触点竞争,又可提高PLC的运算速度,这是PLC系统可靠性高、响应快的原因。但是,对于高速变化的过程可能漏掉变化的信号,也会带来系统响应的滞后。为克服上述问题,可利用立即输入输出、脉冲捕获、高速计数器或中断技术等。

图3-1所示的工作过程是简化的过程,实际的PLC工作流程还要复杂些。除了I/O刷新及运行用户程序外,还要做些公共处理工作,如循环时间监控、外设服务及通信处理等。

PLC一个扫描周期的时间是指操作系统执行一次如图3-1所示的循环操作所需的时间,包括执行OB1中的程序和中断该程序的系统操作时间。循环扫描周期时间与用户程序的长度、指令的种类和CPU执行指令的速度有关系。当用户程序比较大时,指令执行时间在循环时间中占相当大的比例。

在PLC处于运行模式时,利用编程软件的监控功能,在“在线和诊断”数据中,可以获得CPU运行的最大循环时间、最小循环时间和上一次的循环时间等。循环时间会由于以下事件而延长:中断处理、诊断和故障处理、测试和调试功能、通信、传送和删除块、压缩用户程序存储器、读/写微存储器卡MMC等。

结合PLC的循环扫描工作方式分析图3-2所示的梯形图程序,I0.1代表外部的按钮,可知当按钮动作后,图3-2a的程序只需要一个扫描周期就可完成对M0.4的刷新,而图3-2b的程序要经过4个扫描周期才能完成对M0.4的刷新。

图3-2 梯形图程序例子

对于图3-3所示的双线圈输出程序,结合PLC循环扫描工作方式分析可知,当I0.0按下时,扫描程序段1时Q0.0为1,扫描程序段2时Q0.0又被写为0,最终输出Q0.0是0;当I0.1按下时,扫描程序段1时Q0.0为0,扫描程序段2时Q0.0又被写为1,最终输出Q0.0为1。若希望I0.0和I0.1分别按下时,Q0.0都为1,则应该编写程序如图3-4所示。注意:图3-3和图3-4中,“%I0.0”表示绝对地址,其下面的“Tag_1”为其符号名称,而图3-2中只显示了绝对地址名称。

图3-3 双线圈输出程序

图3-4 程序例子

3.1.2 S7-1200 CPU的工作模式

S7-1200的CPU有以下3种工作模式:STOP(停止)模式、STARTUP(启动)模式和RUN(运行)模式。CPU的状态LED指示当前工作模式。

在STOP模式下,CPU处理所有通信请求(如果有的话)并执行自诊断,但不执行用户程序,过程映像也不会自动更新。只有在CPU处于STOP模式时,才能下载项目。

在STARTUP模式下,执行一次启动组织块(如果存在的话)。在RUN模式的启动阶段,不处理任何中断事件。

在RUN模式下,重复执行扫描周期,即重复执行程序循环组织块OB1。中断事件可能会在程序循环阶段的任何点发生并进行处理。处于RUN模式下时,无法下载任何项目。

CPU支持通过暖启动进入RUN模式。在暖启动时,所有非保持性系统及用户数据都将被复位为来自装载存储器的初始值,保留保持性用户数据。

可以使用编程软件在项目视图项目树中CPU下的“设备配置”属性对话框的“启动”项中,指定CPU的上电模式及重启动方法等,如图3-5所示。通电后,CPU将执行一系列上电诊断检查和系统初始化操作,然后CPU进入适当的上电模式。检测到的某些错误将阻止CPU进入RUN模式。CPU支持以下启动模式。

1)不重新启动模式:CPU保持在停止模式。

2)暖启动-RUN模式:CPU暖启动后进入运行模式。

3)暖启动-断电前的工作模式:CPU暖启动后进入断电前的模式。

使用编程软件在线工具“CPU操作面板”上的“STOP”或“RUN”命令,如图3-6所示,可以更改当前工作模式;也可在程序中使用“STP”指令将CPU切换到STOP模式,即可以根据程序逻辑停止程序的执行。

图3-5 设置CPU的启动模式

图3-6 CPU操作面板

存储器复位“MRES”将清除所有工作存储器、保持性及非保持性存储区,并将装载存储器复制到工作存储器。存储器复位不会清除诊断缓冲区,也不会清除永久保存的IP地址值。

S7-1200 PLC的运行模式示意图如图3-7所示。

图3-7 S7-1200 PLC的运行模式示意图

启动过程中,CPU依次执行步骤:A清除输入映像存储器,B使用上一个值或替换值对输出执行初始化,C执行启动组织块,D将物理输入的状态复制到输入映像存储器,F启用将输出映像存储器的值写入到物理输出,同时E将所有中断事件存储到要在RUN模式下处理的队列中。

运行时,依次执行以下步骤。

① 将输出映像存储器写入物理输出。

② 将物理输入的状态复制到输入映像存储器。

③ 执行程序循环组织块。

④ 执行自检诊断。

注意:运行时在扫描周期的任何阶段都可以处理中断和通信。