首页 百科知识 执行子程序时主程序还扫描么

执行子程序时主程序还扫描么

时间:2024-10-16 百科知识 版权反馈
【摘要】:PLC采用循环扫描的工作方式,在PLC执行用户程序时,CPU对梯形图自上而下、自左向右地逐次进行扫描,程序的执行是按语句排列的先后顺序进行的。PLC采用循环扫描的工作方式,它可以看成是一种由系统软件支持的扫描设备,不论用户程序运行与否,都周而复始地进行循环扫描,并执行系统程序规定的任务。如果属于严重故障,则停止PLC的运行。

1.4.1 PLC的工作原理

在继电器控制电路中,当继电器、接触器同时满足条件时,这些继电器、接触器会同时得电工作,它是一种并行工作方式。PLC采用循环扫描的工作方式,在PLC执行用户程序时,CPU对梯形图自上而下、自左向右地逐次进行扫描,程序的执行是按语句排列的先后顺序进行的。这样PLC各线圈状态的变化在时间上是串行的,不会出现多个线圈同时改变状态的情况,这是PLC控制与继电器控制最主要的区别。

PLC采用循环扫描的工作方式,它可以看成是一种由系统软件支持的扫描设备,不论用户程序运行与否,都周而复始地进行循环扫描,并执行系统程序规定的任务。每一个循环所经历的时间称为一个扫描周期。每个扫描周期又分为几个工作阶段,每个工作阶段完成不同的任务。

PLC上电后首先进行初始化,然后进入循环扫描工作过程。一次循环扫描过程可归纳为五个工作阶段,各阶段完成的任务如下:

1.自诊阶段

在每一次扫描开始之前,CPU都要进行复位监视定时、硬件检查、用户内存检查等操作。如果有异常情况,除了故障显示灯亮以外,还要判断并显示故障的性质。如果属于一般性故障,则只需报警不停机,等待处理。如果属于严重故障,则停止PLC的运行。公共处理阶段所用的时间一般是固定的,但在使用不同机型的PLC时有所差异。

2.输入采样阶段

在这个阶段,CPU从输入电路中读取各输入点的状态,并将此状态写入输入映像寄存器中。自此输入映像寄存器就与外界隔离,输入映像寄存器的内容保持不变,一直到下一个扫描周期的I/O刷新阶段,才会写进新内容。

3.程序执行阶段

在程序执行阶段,CPU对用户程序按先左后右、先上后下的顺序逐条地进行解释和执行。CPU从输入映像寄存器和元件映像寄存器中读取各继电器当前的状态,根据用户程序给出的逻辑关系进行逻辑运算,运算结果写入元件映像寄存器中。

执行用户程序阶段的扫描时间不是固定的,其原因主要取决于以下几方面的因素:

(1)用户程序中所用语句数的多少。用户程序的语句数多少不同,所用的扫描时间必然不同。因此,为了减少扫描时间,应使所编写的程序尽量简洁。

(2)每条指令的执行时间不同。对同一种控制功能若选用不同的指令进行编程,扫描时间会有很大的差异。因为有的指令执行时间只有几个微秒,而有的则多达上百个微秒。所以在实现同样控制功能的情况下,应选择那些执行时间短的指令来编写程序。

(3)程序中有改变程序流向的指令。例如,有的用户程序中安排了跳转指令,当条件满足时某段程序被扫描并执行,否则不对其扫描并且跳过该段程序去执行下面的程序;有的用户程序使用了子程序调用指令,当条件满足时就停止执行当前程序而去执行预先编排的子程序,当条件不满足时就不扫描子程序;有的用户程序安排了中断控制程序,当有中断申请信号时就转去执行中断处理子程序,否则就不扫描中断处理子程序等等。

可见,执行用户程序的扫描时间是影响扫描周期时间长短的主要因素。而且,在不同时段执行用户程序的扫描时间也不尽相同。

4.输出刷新阶段

在输出刷新阶段,PLC将所有输出继电器的元件映像寄存器的状态传送到相应的输出锁存电路中,再经输出电路的隔离和功率放大传送到PLC的输出端,驱动外部执行元件动作。

输入采样和输出刷新阶段的时间长短取决于PLC的I/O点数。

5.通信处理阶段

在这个阶段里,CPU完成与外设端口连接的外围设备的通信处理。

PLC在完成上述各阶段的处理后,又返回公共处理阶段,周而复始地进行扫描。

图1-4描述了信号从输入端子到输出端子的传递过程。在I/O刷新阶段,CPU从输入电路的输入端读出各输入点的状态,并将其写入输入映像寄存器中。在紧接着是用户程序执行阶段,CPU从输入映像寄存器和元件映像寄存器中读出各继电器的状态,并根据此状态执行用户程序,再将执行结果写入元件映像寄存器中。在I/O刷新阶段,将输出映像寄存器的状态写入输出锁存电路,再经输出电路传递到输出端子。

img5

图1-4 PLC的工作过程

在执行用户程序阶段,要注意所使用的输入和输出数据。设输入数据为X,输出数据为Y。在第n次扫描执行用户程序时,所依据的输入数据是第n-l次扫描I/O刷新阶段读取的输入数据X n ;在执行用户程序过程中,元件映像寄存器中的数据既有第n-l次扫描存入的输出数据Y n-1 ,也有本次执行程序的中间结果。第n次扫描的I/O刷新时输出的数据是Y n 。这就是PLC的I/O滞后现象。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈