PLC的工作原理
与其它计算机系统一样,PLC的CPU以分时操作方式处理各项任务,程序要按指令逐条执行,PLC的输入、输出就有时差。整个PLC的程序执行时问有多长?输入 / 输出的响应时间有多大?我们要很好地应用PLC,就必须对这些有清楚的认识。
PLC的工作过程
PLC是采用循环扫描方式工作的,图2-6为一般PLC的工作流程框图:
其循环Τ涛: ①内部处理 ②通迅服务
③输入刷新 ④执行用户程序
⑤输出刷新。
1.内部处理:
CPU对PLC内部的硬件作故障检查,复位WDT等。
2.通信服务:
与外围设备、编程器、网络设备等进行通信。
3.输入刷新:
将接在输入端子上传感器、开关、按钮等输入元件状态读入,并保存在“输入状态表” (I/O>像存储器)中,给本扫描周期用户程序运行时提供最新的输入信号。
4.执行用户程序:
CPU逐条解释并执行用户程序。根据I/O状态表(属数据表状态存储器)中ON / OFF信息,按用户程序给定的逻辑关系运算,将运算结果写入I/O状态表。
注意:“I/O状态表”这个概念,用户程序中的部分输入、输出“元件”是它,但它当前的状态值和与它对应I/O端子上的元件之状态不一定相同。(这点在学过I/O响应时间之后就明白了)。
5.输出刷新
将“输出状态表” (I/O映像存储器)中的o容输出到接口电路,以驱动输出端子上的输出元件,实现控制。“输出状态表”中的内容是本次扫描周期用户程序运行的结果。
现举例说明如下。若程序经前一扫描周期的运行的I/O点状态被刷新成如图2-7中所示。
输入信号X00点的状态在后续的5个扫描周期中分别被刷新为1,1,0,0,0,试分析输出点Y00—Y02的输出状况情况:
分析:已知,第0扫描周期中:I/O点状态被刷新为
X00(0)—0 Y00(0)—0 Y01(0)—0 Y02(0)—0
在每一扫描周期内,用户程序是按梯形图,从头开始由左→右,由上→下,逐条执行,直至程序结束。根据梯形图逻辑
每个周期程序执行的结果是:
表2-1 状态表
I/O
周期号
|
X00
|
Y00
|
Y01
|
Y02
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
2
|
1
|
1
|
1
|
1
|
3
|
0
|
1
|
0
|
0
|
4
|
0
|
0
|
0
|
0
|
5
|
0
|
0
|
0
|
0
|
Y00(N)=Y01(N-1) Y01(N)=X00(N) Y02(N)=Y01(N)
已知: X00(0)=1 X00(1)=1 X00(2)=1
X00(3)、(4)、(5)=0
所以:第一周期的结果是
Y00(1)—0 Y01(1)—1 Y02(1)—1
( Y00(1)=Y01(0)=0; Y01(1)=X00(1)=1; Y02(1)=Y01(1)=1)
同理可得:第2--5周期的输出结果是:
Y00(2)=1 Y01(2)=1 Y02(2)=1
Y00(3)=1 Y01(3)=0 Y02(3)=0
Y00(4)=0 Y01(4)=0 Y02(4)=0
Y00(5)=0 Y01(5)=0 Y02(5)=0
用状态表列出(见表2-1)。
扫描周期的计算方法
扫描周期的长短,对PLC系统的性能有一定的影响,例如较长的扫描时间对I/O响应时间,对系统运行的精确性均会产生不利的影响。见表2-2。
表2-2 PLC扫描时间对内部功能的影响
扫描时间ms
|
产生的不利影响
|
>10
|
内部0.01s时钟脉冲不起作用
|
>100
|
内部0.1s时钟脉冲不起作用
|
>200
|
内部0.2s时钟脉冲不起作用
|
>6500
|
超过WDT定时值,迫使CPU停机
|
扫描周期(T)的计算公式是:
扫描周期(T)= 内部处理时间 + 通信服务时间 + 输入刷新时间
+ 用户程序时间 + 输出刷新时间
其中:
①内部处理时间:是固定的(例OMRON C200H为2.6ms)
②通信服务时间:若系统安装了外设、网络通信等模块,则有固定的时间(例OMRON C200H为0.8ms(max) 、8ms(max)),否则为0。
③输入刷新时间:将接在输入端子上元件的状态读入,并保存在“输入状态表” (I/O映像存储器)中所耗费的时间。(例OMRON C200H输入0.07ms/8点,三菱FX2N输入50μs/8点)。
④用户程序执行时间:取决于程序的长度和指令的种类,一般PLC均提供各指令的执行时间表。(例OMRON C200H LD、OUT指令,其执行时间分别为0.75、1.13μs;三菱FX2N基本指令0.08μs/条,应用指令1.52 ~ 数100μs/条)
⑤输出刷新时间:将“输出状态表” (I/O映像存储器)中的内容输出到接口电路中所耗费的时间。(例OMRON C200H输出0.04ms/8点)