7.3 PLC的编程语言及指令系统

7.3.3 基本编程指令

  PLC的基本编程指令是编程中应用最频繁的指令。不同厂家生产的PLC,指令系统有较大差别,不仅指令数有多有少,而且指令代码也不尽相同。尽管如此,但基本指令的功能是一致的。基本指令包括:

输入、输出指令 逻辑指令:AND、ANDNOR、ORNORLDANDLD 移位寄存器指令
程序结束指令 线圈设定指令 主控指令 定时器指令 计数器指令

  1. 输入、输出指令

  输入、输出指令包括 LDLDNOUT。其中:LD是动合触点开始指令,用于与母线连接的动合触点;LDN是动断触点开始指令,用于与母线连接的动断触点;OUT是输出指令,用于驱动输出继电器(Q)、辅助继电器(M),但不能用于输入继电器。

  图7.14是这三条指令的使用举例。

  注:有些PLC系统也可用OUT指令驱动定时器和计数器,对定时器和计数器使用OUT指令后,必须设定常数K,常数K的设定也作为一条指令。

  2. 逻辑与指令

  AND、ANDN 都是逻辑与指令。其中:AND是动合触点串联连接指令,ANDN是动断触点串联连接指令;这两条指令用于一个触点与左面触点的串联。

  编程元件包括I、Q、M、T、C。要注意这两个指令都可以连续使用,即多个触点进行逻辑“与”操作。

  图7.15是AND、ANDN的使用举例。

  注:在图7.15中,OUT M101指令后,经过T451触点,再利用OUT指令驱动Q434,称为连续输出。由于编程的顺序规定由上到下、从左至右,因而不允许使用图7.16的电路。

  3. 逻辑或指令

  ORORN 都是逻辑或指令。其中:OR用于动合触点并联,ORN用于动断触点的并联。

  编程元件包括I、Q、M、T、C。

  这两个指令也可以连续使用,即多个触点进行逻辑“或”操作。

  图7.17是OR、ORN指令的使用举例。

  4. 块或指令

  ORLD 是电路块并联指令,用于两个以上触点串联的支路与上面接点支路并联连接的情况。使用该指令的原则是:

  1)先组块后并联;

  2)各个支路的起点应使用LD或LDN指令。

  对图7.18的梯形图有两种编程方式。方法一:每写一条并联支路后紧跟一条ORLD指令,则并联支路的条数没有限制,这种编程方式较好。方法二:先集中写完全部并联支路,在最后集中写若干个ORLD,但这种编程方式并联支路不能超过8条,是不好的编程方式。

 方法1的语句   方法2的语句
 LD     I400
 AND   I401
 LD     I402
 AND   I403
 ORLD
 LD     I404
 AND   I405
 ORLD
 OUT   Q436
LD     I400
AND   I401
LD     I402
AND   I403
LD     I404
AND   I405
0RLD
ORLD

OUT   Q436

  5. 块与指令

  ANDLD 是电路块串连指令,用于并联电路块与前面接点电路或并联电路块的串联。使用该指令的原则是:

  1)先组块后串联;

  2)在每一电路块开始时,必须使用LD或LDN指令。

  对图7.19的梯形图有两种编程方法。方法一:每写完一个电路块的指令后,紧跟一个ANDLD指令,这种方法串联的电路块数不受限制。方法二:在所有的电路块组成以后,再集中写若干条ANDLD指令,但这种写法串联电路块数不能超过8个,这是不好的编程方式。

 方法1的语句   方法2的语句
 LD    I400
 OR    I401
 LD    I402
 OR    I403
 ANDLD
 LD    I404
 OR    I405
 ANDLD
 OUT   Q433
LD    I400
OR    I401
LD    I402
OR    I403
LD    I404
OR    I405
ANDLD
ANDLD

OUT   Q433

  6. 移位寄存器操作指令

  移位寄存器操作指令包括 SET RST 。其中:指令SET 的作用是使数据在移位寄存器中从左向右依次移动一位;指令RST 的作用是使组成寄存器的各辅助继电器全部置0。

  图7.20是—个8位移位寄存器。OUT M120对移位寄存器的第一位输入,SET M120使移位寄存器每一位的状态逐位向右移一位,RST M120使M121~M127全部置0(复位)。

  注意:移位指令SET也有用SR或其它字母作助记符的,取决于具体的PLC系统。

  7. 程序结束指令

  END 指令用于结束程序,即表示程序终了。用户程序运行时,PLC扫描到END指令便自动返回。

  在有效程序结束后写一条 END 指令,可缩短演算周期。例如一个用户程序的总程序步是890步,若不写 END 指令,控制器将从000步一直查询到890步才算完成一个演算周期,转入下一个工作周期。如有 END 指令,则查询到 END 后,就结束该周期而开始下一周期。

  显然,如果将 END 指令插入各程序段之后,可方便地调试检查各段程序的动作,各段动作确认无误后,再依次清除 END 指令即可。

  8. 线圈设定指令

  线圈设定指令包括 SET、RST。

  指令SET (或S等) 用于使线圈置位(使其接通)并保持其置位状态,因此又称为置位保持指令;指令RST (或R等) 用于使线圈复位(使其断开)并保持其复位状态,因此又称为复位保持指令。一旦设定,即使条件已发生变化,线圈的状态也不会改变。这两条指令都只能用于输出继电器、移位寄存器和辅助继电器。

  图7.21是SET、RST指令的使用举例。

  注意:SET、RST指令之间是可以插入别的程序段的,若I401和I402同时出现,将优先执行RST指令。

  9. 主控指令

  主控指令又称为主控母线指令、分支指令。

  逻辑电路中经常会遇到几个线圈同时受一个触点或一组触点的控制即受到公共逻辑条件的控制,PLC编程中称之为主控。如果在每个线圈的逻辑中都编入公共逻辑条件势必增加许多接点,使程序步数增多,也浪费存储器。使用主控指令则既节省了存储空间,也简化了程序。

  主控指令包括开始和结束两条指令,两个指令必须成对出现。其中:MLS 为主控开始指令,该指令引出一条分支母线;MLR 为主控结束指令,该指令使分支母线结束并回到上一级母线。主控指令可多次使用,可嵌套,但最多不能超过8次。图7.22 和 图7.23是主控指令及其嵌套的应用例。

  10. 定时器指令

  定时器指令 TMR 的作用是指定一个定时器,定时条件满足时开始计时,到达设定时间其触点动作,不满足时自行复位。

  注意:指定定时器后必须设定定时常数K,常数K的设定也作为一条指令。

  图7.24的工作原理是:继电器I400闭合时定时器T100开始计时,达到设定的时间值10s(0.1s×100)时,T100的动合触点接通,输出继电器Q305得电。

  11. 计数器指令

  指令 CNT 用于指定一个单向(加或减)定时器;UNCNT 用于指定一个可逆定时器。

  图7.25是由计数器C460组成的60s定时器。运行中,继电器I402得电时,其常开触点闭合、常闭触点断开经M700引入的0.1s的时钟脉冲使计数器C460计数,当计数值达到设定值600(即0.1s×600=60s)时,触点C460闭合使Q530接通。输入继电器I402断电时,其常闭触点闭合,计数器C460复位清0,输出触点C460打开从而使Q530断电。利用该电路可用计数器构成长延时定时器。

  若要在电源断开以后,计数器不复位,可将I402的常闭触点改为常开触点。这样,如在运行中因断电引起计数器中断计数,在电源再次接通后,计数器将在此值上继续计数,总共计数600次,计数器输出触点接通。