1.3 理解西门子PLC的工作原理
实例3:加电输出禁止程序
实例说明
在实际控制工程中,可能遇到突发停电情况,在复电时,控制环境可能仍处于原先得电工作状态,从而会使相应的设备立即恢复工作,这极易引发设备动作逻辑错乱,甚至发生严重事故。为了避免这种情况的发生,PLC控制程序中需要对一些关键设备的控制端口(PLC输出端口)做复电输出禁止控制。
实例实现
加电输出禁止程序运用了西门子PLC的特殊标志位存储器SM0.3, SM0.3为加电接通一个扫描周期,使M1.0置位为“1”, Q1.0和Q1.1无论在I2.0、I2.1处于什么状态,均无输出,该程序如图1-14所示。
图1-14 加电输出禁止程序
实例分析
普通继电器控制电路的工作原理告诉我们继电器控制电路梯形图中各行是并列执行的,加电输出禁止程序反映了 PLC 程序(用户程序)执行时不是并列执行的,而是按先后顺序执行的。
普通继电器控制电路的工作原理告诉我们继电器控制电路梯形图中各行是并列执行。那么PLC程序是如何执行的呢?要回答这个问题就需要先理解PLC的工作原理,这对于正确编制PLC控制程序是至关重要的。
1.3.1 PLC的工作原理
PLC的工作原理可以简单地表述为在系统程序的管理下,通过运行应用程序,对控制要求进行处理判断,并通过执行用户程序来实现控制任务。这个过程实质上是按顺序循环扫描的过程实现的。执行一个循环扫描过程所需的时间称为一个扫描周期。也就是说,在时间上PLC 执行的任务是按串行方式进行的,其具体的运行方式与继电器-接触器控制系统及计算机控制系统都有着一定的差异。
1.循环扫描的工作原理
PLC的一个工作过程一般有5个阶段:内部处理阶段、通信处理阶段、输入采样阶段、程序执行阶段和输出刷新阶段。当PLC开始运行时,首先清除I/O映像区的内容,其次进行自诊断,然后与外部设备进行通信连接,确认正常后开始扫描。对每个用户程序,CPU从第一条指令开始执行,按指令步序号做周期性的程序循环扫描,如果无跳转指令,则从第一条指令开始逐条执行用户程序,直至遇到结束符后又返回第一条指令,如此周而复始不断循环。因此,PLC的工作方式是一种串行循环工作方式,如图1-15所示。
图1-15 PLC的循环扫描过程
(1)内部处理阶段
在这一阶段,CPU执行监测主机硬件、用户程序存储器、I/O模块的状态并清除I/O映像区的内容等工作,即PLC进行各种错误检测(自诊断功能),若自诊断正常,继续向下扫描。
(2)通信处理阶段
在通信处理阶段,CPU自动监测并处理各种通信端口接收到的任何信息,即检查是否有编程器、计算机或上位PLC等通信请求,若有则进行相应处理,完成数据通信任务。譬如:PLC接收编程器送来的程序、命令和各种数据,并把要显示的状态、数据、出错信息发送给编程器进行显示,这称为“监视服务”,一般在程序执行之后进行。
(3)输入采样阶段
在输入采样阶段,PLC首先扫描所有的输入端子,按顺序将所有输入端的输入信号状态(0或1,表现为在接线端上是否在承受外加电压)读入输入映像寄存区。这个过程称为对输入信号的采样,或称输入刷新阶段。完成输入端刷新工作后,将关闭输入端子,转入下一步工作过程,即程序执行阶段。在程序执行期间即使输入端状态发生变化,输入状态寄存器的内容也不会发生改变,而这些变化必须等到下一个工作周期的输入刷新阶段才能被读入。
(4)程序执行阶段
程序执行阶段又称程序处理阶段,是PLC对程序按顺序执行的过程,对于常用的梯形图程序来说就是按从上到下、从左到右的顺序,依次执行各个程序指令。
在程序执行阶段,PLC根据用户输入的控制程序,从第一条指令开始逐条执行,并将相应的逻辑运算结果存入对应的内部辅助寄存器(输入映像寄存器)和输出状态寄存器(输出映像寄存器)。在这个过程中,只有输入映像寄存区存放的输入采样值不会发生改变,其他各种数据,如在输出映像寄存器区或系统RAM存储区内的状态和数据,都有可能随着程序的执行随时发生改变。同时前面程序执行的结果可能被后面的程序所用到,从而影响后面程序的执行结果;而后面程序执行的结果不可能改变前面程序的扫描结果,只有到了下一个扫描周期再次扫描前面程序的时候才有可能起作用。但是,在扫描过程中如果遇到程序跳转指令,就会根据跳转条件是否满足来决定程序的跳转地址。当指令中涉及输入、输出状态时, PLC从输入映像寄存器中“读入”上一阶段存入的对应输入端子状态,从输出映像寄存器“读入”对应输出映像寄存器的当前状态。然后,进行相应的运算,运算结果再存入元件映像寄存器中。对于元件映像寄存器来说,每一个元件(输出软继电器的状态)都会随着程序执行过程而变化。当最后一条控制程序执行完毕后,即转入输出刷新阶段。
(5)输出刷新阶段
当程序中所有指令执行完毕后,PLC将输出状态寄存器中所有输出继电器的状态,依次送到输出锁存电路,并通过一定输出方式输出,驱动外部负载,这就形成了PLC的实际输出。
在上述5个阶段中,输入采样、程序执行和输出刷新是PLC执行用户程序的3个主要阶段。这3个阶段构成PLC一个工作周期,并循环执行,这就是PLC循环扫描工作方式的由来。由此可以总结出PLC在扫描过程中信号的处理规则。
2.PLC的信号处理规则
(1)输入映像区中的数据,取决于本扫描周期输入采样阶段所处的状态。在程序执行和输出刷新阶段,输入映像区中的数据不会因为有新的输入信号而发生改变。
(2)输出映像区中的数据由程序中输出指令的执行结果决定。在输入采样和输出刷新阶段,输出映像区的数据不会发生改变。
(3)输出端子直接与外部负载连接,其状态由输出状态寄存器中的数据来确定。
3.PLC的工作模式
西门子S7-200 PLC有3种工作模式,即运行(RUN)模式、暂停(STOP)模式和条件运行(TERM)模式。
(1)运行(RUN)模式
运行模式是执行应用程序的状态,此时不能向PLC写入程序。PLC置于运行模式时,加电后,PLC自动运行,反复执行反映控制要求的用户程序来实现控制功能直至PLC停机或切换到其他工作状态。PLC处于运行(RUN)模式时,共完成PLC一个工作过程的5个阶段的操作。
(2)暂停(STOP)模式
暂停模式使PLC处于暂停状态,此时PLC仍将进行内部处理和通信处理两阶段内容, PLC检查CPU模块内部的硬件是否正常,将监控定时器复位,以及完成一些其他内部工作,同时处理各种编程器的通信请求并显示相关内容。此模式一般用于程序的编制与修改。
(3)条件运行(TERM)模式
在此模式下,PLC上的工作模式(STOP或RUN)可由编程装置通过通信方式来改变。此种模式多数用于联网的PLC网络或现场调试时使用。
4.扫描周期和响应时间
PLC在运行状态时,执行一次扫描操作(即5个阶段的工作过程)所需的时间称为扫描周期,它是PLC的重要指标之一,其典型值为0.5~100 ms。
扫描周期 T=(输入一点时间×输入端子数)+(指令执行速度×指令条数)+(输出一点时间×输出端子数)+故障诊断时间+通信时间
可见,扫描周期的长短主要取决于以下几个因素:CPU执行指令的速度;执行每条指令占用的时间;程序中指令条数的多少。指令执行所需的时间与用户程序的长短、指令的种类和CPU执行速度有很大关系,一般来说,一个扫描过程中,故障诊断时间、通信时间、输入采样和输出刷新所占时间较少,执行指令的时间占了绝大部分。
PLC 的响应时间是指从 PLC 外部输入信号发生变化的时刻起至由它控制的有关外部输出信号发生变化的时刻之间的间隔,也称为滞后时间(通常滞后时间为几十毫秒)。它由输入电路的时间常数、输出电路的时间常数、用户语句的安排和指令的使用、PLC的循环扫描方式及PLC对I/O的刷新方式等部分组成。这种现象称为I/O延迟响应或滞后现象。
由于PLC的这种周期循环扫描工作方式,决定了响应时间的长短与收到输入信号的时刻有关。响应时间可以分为最短响应时间和最长响应时间。
(1)最短响应时间
如果在一个扫描周期刚结束之前收到一个输入信号,在下一个扫描周期之前进入输入采样阶段,这个输入信号就被采样,使输入更新,这时响应时间最短。
(2)最长响应时间
如果收到一个输入信号经输入延迟后,刚好错过I/O刷新的时间,在该扫描周期内这个输入信号无效,要到下一个扫描周期输入采样阶段才被读入,使输入更新,这时响应时间最长。
由于PLC采用循环扫描的工作方式,即对信息串行处理方式,必定导致输入、输出延迟响应,产生滞后现象。对于一般工业控制要求,这种滞后现象是允许的。但是对那些要求响应时间小于扫描周期的控制系统则不能满足,这时可以使用智能 I/O 单元(如快速响应 I/O模块)或专门的指令(如立即I/O指令),通过与扫描周期脱离的方式来解决。
1.3.2 用户程序的执行过程
在PLC复电进入RUN状态后,PLC在自检及通信处理后,进行输入采样,而后按用户梯形图程序指令的要求,对于输出线圈按照从上到下的顺序执行,对于同一线圈按照从左到右的顺序依次执行,动作不可逆转(使用跳转指令的情况除外),最后输出刷新,之后循环往复执行,直至停止。对用户程序的执行过程的理解是设计PLC用户程序的关键,下面以实例3加电输出禁止程序为例,介绍用户程序的具体执行过程:
PLC加电输出禁止程序循环扫描执行过程如图1-16所示。PLC加电进入RUN状态后, SM0.3接通一个扫描周期,使M1.0置位为“1”, M1.0的常闭触点断开,从而切断了输出线圈Q1.0、Q1.1的控制逻辑,达到了输出被禁止的目的。当Q1.0、Q1.1所控制的设备准备好之后,譬如进入第2个循环时,可以转换I1.0的状态,使其为“1”,则M1.0被复位为“0”,对输出Q1.0、Q1.1的控制解除,并将控制权转移给I2.0、I2.1,此时若I2.0、I2.1为“1”, Q1.0、Q1.1置位为“1”。这样就避免了PLC复电后倘若I2.0、I2.1均处于ON状态导致Q1.0、Q1.1直接输出。
图1-16 PLC加电输出禁止程序循环扫描执行过程
复电输出禁止程序在工程实际中经常能用到,本实例可以根据工程具体情况,稍加改造就可应用。