PLC资料123剖析.docx
《PLC资料123剖析.docx》由会员分享,可在线阅读,更多相关《PLC资料123剖析.docx(25页珍藏版)》请在冰豆网上搜索。
![PLC资料123剖析.docx](https://file1.bdocx.com/fileroot1/2023-6/4/d6da4a55-d31c-46d6-b8cd-96ce8ac5d36e/d6da4a55-d31c-46d6-b8cd-96ce8ac5d36e1.gif)
PLC资料123剖析
位指令
1.一次启动(ONS)
ONS属输入指令。
当程序中ONS指令所在梯级条件由假到真变化时,它的指令逻辑为真,但只保持一个扫描周期。
使用ONS指令可启动由按钮触发的事件,如从拨盘开关上取值。
ONS指令中有一个位地址参数,此地址可以是位文件或整数文件地址(如B3:
0/3,N7:
0/0等)。
该位自动存储了ONS指令所在梯级条件(为真则存储1,为假则存储0)。
ONS的功能相当于限制所在梯级的输出。
当输入条件由假变真时,它使输出为1且只保持一个扫描周期,在以后连续的扫描中输出为0。
直到输入再次由假到真跳变。
2.上升沿一次响应(OSR)
OSR属输出指令。
当OSR指令所在梯级条件由假到真变化时,在输出位(OutputBit)产生一个周期正脉冲(即“上升沿动作类型”)。
存储位(StorageBit)中自动存储了OSR指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。
3.下降沿一次响应(OSF)
OSF属输出指令。
当OSF指令所在梯级条件由真到假变化时,在输出位(OutputBit)产生一个周期正脉冲(即“下降沿动作类型”)。
存储位(StorageBit)中自动存储了OSF指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。
下面我们通过具体的梯形图来进一步理解这三条指令:
例2:
讨论改变以下开关状态时,灯的变化情况。
1)RUNG0和RUNG1中,当I:
0/4闭合时(即产生一个上升沿信号),ONS指令的梯级条件由假到真变化,它的指令逻辑变为真,使O:
4/0和O:
4/1两灯都亮。
到下一个扫描周期时ONS指令逻辑不再为真,O:
4/1灭,O:
4/0由于锁存仍为亮。
B3:
0/0位存储了ONS指令的梯级条件。
即I:
0/4闭合,B3:
0/0为1,O:
4/3亮,I:
0/4断开,B3:
0/0为0,O:
4/3灭。
只要I:
0/4闭合,O:
4/2就锁存为亮,直到I:
0/9解锁。
2)RUNG2、RUNG3和RUNG4中,当I:
0/6闭合时(即产生一个上升沿信号),OSR指令的梯级条件由假到真变化,使在输出位B3:
0/2产生一个周期正脉冲,使O:
4/5和O:
4/6两灯都亮。
到下一个扫描周期时,输出位B3:
0/2不再有正脉冲,O:
4/6灭,O:
4/5由于锁存仍为亮。
B3:
0/1位存储了OSR指令的梯级条件。
同上步的分析,I:
0/6闭合,B3:
0/1为1,O:
4/4亮,I:
0/6断开,B3:
0/1为0,O:
4/4灭。
3)RUNG5、RUNG6和RUNG7中,当I:
0/8断开时(即产生一个下降沿信号),OSF指令的梯级条件由真到假变化,使在输出位B3:
0/4产生一个周期正脉冲,使O:
4/8和O:
4/9两灯都亮。
到下一个扫描周期时,输出位B3:
0/4不再有正脉冲,O:
4/9灭,O:
4/8由于锁存仍为亮。
B3:
0/3位存储了OSF指令的梯级条件。
分析同上。
4)RUNG8中,I:
0/9用于为上面锁存的小灯解锁。
`
计时器和计数器指令
计时器和计数器指令属输出指令,用于控制基于时间和事件记数的操作,包括:
1.延时导通计时器(TON)
2.延时断开计时器(TOF)
3.保持型计时器(RTO)
4.加计数(CTU)
5.减计数(CTD)
6.计时器/计数器复位(RES)
下面逐个加以介绍。
1.延时导通计时器(TON)
延时导通计时器(TON)的功能是梯级条件变真后经过一段延时时间对输出动作。
它相当于继电器控制系统中的通电延时继电器。
TON是否启动由它前面的输入指令控制,而通电延时继电器是由硬触点控制。
TON的延时时间可任意设定,而通电延时继电器是由它的物理结构决定,不能够任意改动。
因此TON指令更加方便灵活。
使用TON指令时需要提供以下参数:
1)计时器(Timer):
指明所使用的计时器元素(如T4:
0)。
2)时基(Timebase):
计时器每次计时的递增值。
Micrologix1500系列可选择1S、0.01S和0.001S三种,共可累计32767个时基间隔。
它决定了计时器的精度。
3)预置值(Preset):
用于设定延时时间,可设为整数-32768~32767。
4)累计值(Accum):
是一个动态值,表明了到目前计时器已经延时的数值。
当梯级条件变真时,TON开始计时,直到下列条件中的任何一个发生为止:
累计值=预置值;
梯级变假;
复位计时器。
不论计时器是否计到时,梯级变假时计时器复位累计值(把累计值清0)。
TON的状态位可用作对输出的控制信号。
正确灵活的应用这些状态位是掌握TON编程的关键。
TON的状态位及它们的变化情况如下:
状态位
置位条件
保持置位直到下列情况发生
DN
累计值>=预置值
梯级变为假
TT
梯级为真且累计值<预置值
梯级变为假或被DN置位
EN
梯级为真
梯级变为假
注意TT位和EN位的区别。
例5:
某交通要道,南北方向车流量大,东西方向车流量小。
南北方向绿灯亮15秒,东西方向绿灯亮10秒。
试编一程序模拟交通灯变化。
分析:
I:
3/0为启动按钮,I:
3/1为停止按钮,它们都为点动按钮。
灯O:
4/0为南北绿灯,O:
4/2为南北红灯,O:
4/6为东西绿灯,O:
4/8为东西红灯。
当触发I:
3/0,使能ONS指令,灯O:
4/0、O:
4/8亮,O:
4/2、O:
4/6灭,B3:
0/1置位为1,T4:
0开始工作。
T4:
0计时15S后动作,T4:
0/DN闭合,O:
4/0、O:
4/8灭,O:
4/2、O:
4/6亮,T4:
1开始工作。
T4:
1计时10S后动作,T4:
1/DN闭合,其XIC(检查断开)逻辑变为假,T4:
0被复位,T4:
0/DN变为0,所以T4:
1也被复位,其XIC逻辑又变为真,灯O:
4/0、O:
4/8亮,O:
4/2、O:
4/6灭,T4:
0又开始工作。
除非触发停止按钮I:
3/1使它们停止和复位,程序将一直循环执行,这样就实现了交通灯交替亮灭。
2.延时断开计时器(TOF)
延时断开计时器(TOF)的功能是梯级条件变假后经过一段延时时间对输出动作。
它相当于继电器控制系统中的断电延时继电器。
TOF指令各参数的含义与TON相同。
当梯级条件变假时,TOF开始计时,直到下列条件中的任何一个发生为止:
累计值=预置值;
梯级变真。
不论计时器是否计到时,梯级变真时计时器复位累计值。
TOF指令的状态位变化情况如下,注意它们和TON的区别。
状态位
置位条件
保持置位直到下列情况发生
DN
梯级为真
梯级变为假且累计值>=预置值
TT
梯级为假且累计值<预置值
梯级变为真或DN被复位
EN
梯级为真
梯级变为假
无论任何情况都不要用RES指令对TOF复位。
因为RES总是清零状态位及累计值,若对TOF复位,则DN,TT,EN被清零,可能会使指令逻辑陷于混乱,发生不可预知的结果。
3.加计数(CTU)
CTU指令在-32768~32767范围内向上计数。
每一次梯级条件由假变真时CTU累计值加1。
当梯级再次变为假时累计值保持不变。
当累计值等于或超过预置值时,CTU指令置位完成位DN。
编程时可以用CTU指令计数某些动作来引发事件,比如通过计数一个存储位的变化或一个外设的导通关断变化次数来让另一外设动作。
CTU指令的状态位及变化情况为:
状态位
置位条件
保持置位直到下列情况发生
OV
累计值返回到-32768(即从32767继续计数)
相应的RES指令使能或者用CTD指令使累计值<=32767
DN
累计值>=预置值
累计值<预置值
CU
梯级为真
梯级变为假或相应的RES指令使能
CTU工作的时序图为:
图3.22CTU时序图
例7:
试编一个自动增计数器。
分析:
I:
0/4为保持式按钮,I:
0/9为点动式按钮。
在RUNG0中,当I:
0/4使能,启动T4:
0工作。
延时1S后动作,T4:
0/DN置位,其常闭断开T4:
0被复位,T4:
0/DN清0,其常闭闭合又启动T4:
0工作。
如此循环执行。
相当于每1S,T4:
0/DN位产生一个正脉冲。
这样RUNG0构成了一个1S脉冲发生器,向RUNG1中每1S提供一个正脉冲,每来一个正脉冲C5:
0的累计值就增1,这样就实现了自动增计数器。
只要I:
0/9使能,C5:
0的累计值就立即复位为0。
4.减计数(CTD)
CTD指令在-32768~32767范围内向下计数。
每一次梯级条件由假变真时CTU累计值减1。
当梯级再次变为假时累计值保持不变。
当累计值等于或超过预置值时,CTU指令置位完成位DN。
编程时可以用它计数某些动作来引发其它事件,比如通过计数一个存储位的变化或一个外设的导通关断变化来控制另一外设动作。
状态位
置位条件
保持置位直到下列情况发生
UN
累计值返回到32767(即从-32768继续计数)
相应的RES指令使能或者用CTD指令使累计值>=-32767
DN
累计值>=预置值
累计值<预置值
CD
梯级为真
梯级变为假或相应的RES指令使能
5.计时器/计数器复位(RES)
RES指令用于复位计时器(除TOF) 和计数器。
当梯级条件为真时RES指令复位相同寻址位的计时器或计数器(把状态位和累计值清0)。
无论任何情况RES指令优先执行。
比较指令
比较指令属输入指令,用于比较两值作为逻辑梯级连续的条件。
例如,小于(LES)指令有两个操作数,如果第一个小于第二个,那么LES指令为真。
比较指令共包括:
1.等于(EQU)
2.不等于(NEQ)
3.小于(LES)
4.小于或等于(LEQ)
5.大于(GRT)
6.大于或等于(GEQ)
7.相等屏蔽比较(MEQ)
8.极限比较(LIM)
它们的用法大致相同,掌握了一个也就掌握了其它的。
下面逐个加以介绍。
1.等于(EQU)
使用EQU指令比较二值是否相等。
如果源A的值和源B的值相等,指令逻辑为真,否则为假。
操作数为两个数的比较指令(比如有源A和源B两个操作数的EQU指令)一般要求的数据寻址方式为:
源A必须为地址,源B可为常数或地址。
例1:
读程序分析结果。
分析:
上面程序即为EQU指令的一个简单应用。
RUNG0中,SourceA与SourceB的值相等,小灯O:
4/0亮。
RUNG1中,SourceA与SourceB的值不等,小灯O:
4/1灭。
2.不等于(NEQ)
使用NEQ指令比较二值是否不相等。
如果源A的值和源B的值不相等,指令逻辑为真,否则为假。
3.小于(LES)
使用LES指令比较一个值是否小于另一个值。
如果源A的值小于源B的值,指令逻辑为真,否则为假。
4.小于或等于(LEQ)
使用LEQ指令比较一个值是否小于或等于另一个值。
如果源A的值小于或等于源B的值,指令逻辑为真,否则为假。
5.大于(GRT)
使用GRT指令比较一个值是否大于另一个值。
如果源A的值大于源B的值,指令逻辑为真,否则为假。
6.大于或等于(GEQ)
使用GEQ指令比较一个值是否大于或等于另一个值。
如果源A的值大于或等于源B的值,指令逻辑为真,否则为假。
7.相等屏蔽比较(MEQ)
使用MEQ指令比较源地址中的数据和比较地址中的数据,允许被一个独立字屏蔽。
MEQ相当于把源值和比较值的数据分别与屏蔽字作位与位的逻辑与操作,然后比较两个所得结果。
如果相等,指令逻辑为真,否则为假。
可看作屏蔽字中复位的位屏蔽数据,置位的位通过数据。
因此只比较源值和比较值的在屏蔽字中的相应位为1的那些位。
例如:
上面程序中,屏蔽字设为了00FFh,所以只比较B:
3/0和B:
3/1的低八位,而屏蔽掉了高八位。
只要低八位相等,指令逻辑就为真,小灯O:
4/0亮。
算术指令
算术指令属输出指令,当梯级条件为真时,执行指定的算术运算,输出结果存放到一个指定的存储单元。
并根据结果自动设置状态位。
例如,加和减指令都是取两个输入值,进行加或减运算,运算结果存放到指定的目的地址内。
并根据结果自动设置了状态位。
算术指令包括:
1.加指令(ADD)
2.减指令(SUB)
3.乘指令(MUL)
4.除指令(DIV)
5.平方根(SQR)
6.取反指令(NEG)
7.整数转换成BCD码(TOD)
8.从BCD码转换成整数(FRD)
9.线性转换(SCP)
它们的用法也大致相同,下面逐个加以介绍。
1.加指令(ADD)
ADD指令使源A和源B的值相加,结果存放到目的地址内。
例1:
读程序分析结果。
分析:
上面程序为ADD指令的一个简单应用。
ADD指令把SourceA和SourceB的值相加,结果存入Dest中(4+9,结果13存入N7:
2)。
2.减指令(SUB)
SUB指令使源A的值减去源B的值,结果存放到目的地址内。
3.整数转换成BCD码(TOD)
BCD指令把16-位整数值转换成BCD码。
如果输入的整数是负数,则转换其绝对值。
例:
试编制一个6位数的自动计数器,用BCD码分别在N7:
0和N:
1上表示。
分析:
MicroLogix1500中,计数器向上计数只能计到32767,在计数范围较大的场合常感到不够用,但是如果采用多个数据进位的关系来表达,几乎可以计到无限。
我们可以先用一个计数器来表示六位计数器的低四位,用另一个计数器来模拟六位计数器的高两位。
本程序中,RUNG0产生计数脉冲,RUNG1用一个计数器来表示六位计数器的低四位,RUNG2用另一个计数器来表示六位计数器的高两位。
RUNG3两位计数器一旦完成计数(即六位计数器已完成999999),两位计数器清0复位并输出信号。
RUNG4和RUNG5用TOD指令把两个计数器的累计值变为BCD码在整数文件中显示,N7:
0显示低四位,N7:
1显示高两位。
4.从BCD码转换成整数(FRD)
FRD指令把BCD码转换成16-位整数值。
如果源数据不符合BCD码格式则发生处理器出错。
传送和逻辑指令
传送和逻辑指令属输出指令,当梯级条件为真时,执行相应的传送或逻辑操作。
指令执行后,并根据结果自动设置状态位。
传送和逻辑指令包括:
1.传送(MOV)
2.屏蔽传送(MVM)
下面逐个加以介绍。
1.传送(MOV)
MOV指令将数据从源地址传送到目的地址。
只要梯级保持为真,每次扫描指令都重新传送数据。
2.屏蔽传送(MVM)
MVM指令将数据从源地址传送到目的地址,并且允许部分目的数据被一个独立的字屏蔽。
只要梯级条件保持为真,每次扫描该指令都重新传送数据。
上面程序中,数据传送的方式为:
屏蔽字中位为0时,源值相应位的数据不传送,相当于源值和目的值的相应位数据保持不变。
屏蔽字中位为1时,源值相应位的数据传送到目的地址的相应位,相当于MOV指令。
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B3:
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
Mask
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B3:
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
移位和顺序进出指令
移位和顺序进出指令属输出指令。
每一次梯级条件由假变真时,移位指令把指定地址内的所有位都移动一个位的位置,顺序进出指令完成一次顺序进出或比较操作。
移位和顺序进出指令包括:
1.位左移(BSL)
2.位右移(BSR)
3.顺序器装入(SQL)
4.顺序器比较(SQC)
5.顺序器输出(SQO)
下面逐个加以介绍。
1.位左移(BSL)
当梯级条件由假变真时,BSL指令对File文件指定的数据向左(向高位)移动一位。
由BitAddress指定的一位被移入最右位(最低位)。
MicroLogix1500中Length的设定范围为0~2048,含义为文件中参与移位的数据块的位数。
但是实际上只能移位整数个字的所有位。
参与移位的字数为对Length除以16,再向上取整。
如上例,当Length的值为1~16时,实际上都是移动N7:
0的16位。
2.位右移(BSR)
当梯级条件由假变真时,BSR指令对File文件指定的数据向右(向低位)移动一位。
由BitAddress指定的一位被移入最左位(最高位)。
Length的含义与BSL中的相同。
例1:
O:
0.0的预置状态为1111000000000000。
试编一程序,其前20S,按每秒一次的速度进行左移位;后20S,按每秒一次的速度进行右移位。
循环进行。
分析:
本程序借鉴了前面的交通灯设计的思想。
RUNG1和RUNG2即为交通灯交替亮的实现方式。
只不过这里让它使B3:
1/0和B3:
1/1交替置1。
RUNG0为1S脉冲发生器。
RUNG3和RUNG4中,B3:
1/0、B3:
1/1和T4:
2/DN共同作为移位控制信号,实现了循环左右移位的要求。
下面的顺序器指令一般用来控制具有连续和重复操作特性的自动化生产线。
顺序器指令包括:
顺序器装入指令SQL、顺序器比较指令SQC、顺序器输出指令SQO。
我们结合下面的程序来体会这三条指令。
3.顺序器装入(SQL)
4.顺序器比较(SQC)
5.顺序器输出(SQO)
例2:
读程序分析结果。
分析:
RUNG0为3S脉冲发生器。
为RUNG1~RUNG3提供脉冲信号。
RUNG1中,#FileN9:
0为顺序器装入文件,SourceN7:
0为数据源。
当梯级条件由假到真变化时,SQL指令从数据源读入16位数据,把它存入顺序器装入文件。
当梯级条件再由假到真变化时,SQL指令再从数据源读入16位数据,把它存入顺序器装入文件的下一步(字)。
如此执行Length次(这里为10)。
所以上例RUNG1的执行结果为每3S从N7:
0读一次数据,然后把它们顺序装入N9:
0、N9:
1、N9:
2、一直到N9:
9,共执行了10次。
这时就可以轻松的读懂RUNG3了。
只不过它还可以设置独立的屏蔽字。
每3S从顺序器文件读出一个数据(第1次读N10:
0,第2次读N10:
1,依次类推)。
经过屏蔽后都送到N11:
0。
屏蔽位为1的可以通过数据,屏蔽位为0的不能通过数据。
这里屏蔽字设为了0FFFFH,数据都可以通过。
RUNG2为顺序器比较指令SQC。
它的执行结果为:
每3S从顺序器文件N12:
0顺序读入一个数据,经过屏蔽后和源数据相比较,如果相等则FD位被置1,否则被置0。
例3:
每2S从I:
0.0读入一个数据,共读9次,完成顺序器装载。
然后将顺序器文件按每2S一次的速度依次传到O:
0.0显示。
分析:
上面程序为顺序器输入输出的一个简单应用。
需注意它们需使用不同的控制字。
否则将处以混乱状态。
两台电动机顺序起动、顺序停止电路(组图)
两台电动机顺序起动、顺序停止电路原理图
工作过程:
1、合上开关QF使线路的电源引入。
2、按辅助设备控制按钮SB2,接触器KM1线圈得电吸合,主触点闭合辅助设备运行,并且KM1辅助常开触点闭合实现自保。
3、按主设备控制按钮SB4,接触器KM2线圈得电吸合,主触点闭合主电机开始运行,并且KM2的辅助常开触点闭合实现自保。
4、KM2的另一个辅助常开触点将SB1短接,使SB1失去控制作用,无法先停止辅助设备KM1。
5、停止时只有先按SB3按钮,使KM2线圈失电辅助触点复位(触点断开),SB1按钮才起作用。
6、主电机的过流保护由FR2热继电器来完成。
7、辅助设备的过流保护由FR1热继电器来完成,但FR1动作后控制电路全断电,主、辅设备全停止运行。