跟我学:PLC 指令
§1 基本指令系统特点
PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同与一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能兼容的编程语言。如三菱公司的产品有它自己的编程语言,OMRON公司的产品也有它自己的语言。但不管什么型号的PLC,其编程语言都具有以下特点:
1. 图形式指令结构:程序由图形方式表达,指令由不同的图形符号组成,易于理解和记忆。系统的软件开发者已把工业控制中所需的独立运算功能编制成象征性图形,用户根据自己的需要把这些图形进行组合,并填入适当的参数。在逻辑运算部分,几乎所有的厂家都采用类似于继电器控制电路的梯形图,很容易接受。如西门子公司还采用控制系统流程图来表示,它沿用二进制逻辑元件图形符号来表达控制关系,很直观易懂。较复杂的算术运算、定时计数等,一般也参照梯形图或逻辑元件图给予表示,虽然象征性不如逻辑运算部分,也受用户欢迎
2. 明确的变量常数:图形符相当于操作码,规定了运算功能,操作数由用户填人,如:K400,T120等。PLC中的变量和常数以及其取值范围有明确规定,由产品型号决定,可查阅产品目录手册。
3. 简化的程序结构:PLC的程序结构通常很简单,典型的为块式结构,不同块完成不同的功能,使程序的调试者对整个程序的控制功能和控制顺序有清晰的概念。
4. 简化应用软件生成过程:使用汇编语言和高级语言编写程序,要完成编辑、编译和连接三个过程,而使用编程语言,只需要编辑一个过程,其余由系统软件自动完成,整个编辑过程都在人机对话下进行的,不要求用户有高深的软件设计能力。
5. 强化调试手段:无论是汇编程序,还是高级语言程序调试,都是令编辑人员头疼的事,而PLC的程序调试提供了完备的条件,使用编程器,利用PLC和编程器上的按键、显示和内部编辑、调试、监控等,并在软件支持下,诊断和调试操作都很简单。
总之,PLC的编程语言是面向用户的,对使用者不要求具备高深的知识、不需要长时间的专门训练。
§2 编程语言的形式
本教材采用最常用的两种编程语言,一是梯形图,二是助记符语言表。采用梯形图编程,因为它直观易懂,但需要一台个人计算机及相应的编程软件;采用助记符形式便于实验,因为它只需要一台简易编程器,而不必用昂贵的图形编程器或计算机来编程。
虽然一些高档的PLC还具有与计算机兼容的C语言、BASIC语言、专用的高级语言(如西门子公司的GRAPH5、三菱公司的MELSAP),还有用布尔逻辑语言、通用计算机兼容的汇编语言等。不管怎么样,各厂家的编程语言都只能适用于本厂的产品。
l 编程指令:指令是PLC被告知要做什么,以及怎样去做的代码或符号。从本质上讲,指令只是一些二进制代码,这点PLC与普通的计算机是完全相同的。同时PLC也有编译系统,它可以把一些文字符号或图形符号编译成机器码,所以用户看到的PLC指令一般不是机器码而是文字代码,或图形符号。常用的助记符语句用英文文字(可用多国文字)的缩写及数字代表各相应指令。常用的图形符号即梯形图,它类似于电气原理图是符号,易为电气工作人员所接受。
l 指令系统:一个PLC所具有的指令的全体称为该PLC的指令系统。它包含着指令的多少,各指令都能干什么事,代表着PLC的功能和性能。一般讲,功能强、性能好的PLC,其指令系统必然丰富,所能干的事也就多。我们在编程之前必须弄清PLC的指令系统
l 程序:PLC指令的有序集合,PLC运行它,可进行相应的工作,当然,这里的程序是指PLC的用户程序。用户程序一般由用户设计,PLC的厂家或代销商不提供。用语句表达的程序不大直观,可读性差,特别是较复杂的程序,更难读,所以多数程序用梯形图表达。
l 梯形图:梯形图是通过连线把PLC指令的梯形图符号连接在一起的连通图,用以表达所使用的PLC指令及其前后顺序,它与电气原理图很相似。它的连线有两种:一为母线,另一为内部横竖线。内部横竖线把一个个梯形图符号指令连成一个指令组,这个指令组一般总是从装载(LD)指令开始,必要时再继以若干个输入指令(含LD指令),以建立逻辑条件。最后为输出类指令,实现输出控制,或为数据控制、流程控制、通讯处理、监控工作等指令,以进行相应的工作。母线是用来连接指令组的。下图是三菱公司的FX2N系列产品的最简单的梯形图例:
X000 X001 Y000
X010
它有两组,第一组用以实现启动、停止控制。第二组仅一个END指令,用以 结束程序。
l 梯形图与助记符的对应关系: 助记符指令与梯形图指令有严格的对应关系,而梯形图的连线又可把指令的顺序予以体现。一般讲,其顺序为:先输入,后输出(含其他处理);先上,后下;先左,后右。有了梯形图就可将其翻译成助记符程序。上图的助记符程序为:
地址 指令 变量
0000 LD X000
0001 OR X010
0002 AND NOT X001
0003 OUT Y000
0004 END
反之根据助记符,也可画出与其对应的梯形图。
l 梯形图与电气原理图的关系:如果仅考虑逻辑控制,梯形图与电气原理图也可建立起一定的对应关系。如梯形图的输出(OUT)指令,对应于继电器的线圈,而输入指令(如LD,AND,OR)对应于接点,互锁指令(IL、ILC)可看成总开关,等等。这样,原有的继电控制逻辑,经转换即可变成梯形图,再进一步转换,即可变成语句表程序。
有了这个对应关系,用PLC程序代表继电逻辑是很容易的。这也是PLC技术对传统继电控制技术的继承。
§3 编程器件
下面我们着重介绍三菱公司的FX2N系列产品的一些编程元件及其功能。
FX系列产品,它内部的编程元件,也就是支持该机型编程语言的软元件,按通俗叫法分别称为继电器、定时器、计数器等,但它们与真实元件有很大的差别,一般称它们为"软继电器"。这些编程用的继电器,它的工作线圈没有工作电压等级、功耗大小和电磁惯性等问题;触点没有数量限制、没有机械磨损和电蚀等问题。它在不同的指令操作下,其工作状态可以无记忆,也可以有记忆,还可以作脉冲数字元件使用。一般情况下,X代表输入继电器,Y代表输出继电器,M代表辅助继电器,SPM代表专用辅助继电器,T代表定时器,C代表计数器,S代表状态继电器,D代表数据寄存器,MOV代表传输等。
一、 输入继电器 (X)
PLC的输入端子是从外部开关接受信号的窗口,PLC 内部与输入端子连接的输入继电器X是用光电隔离的电子继电器,它们的编号与接线端子编号一致(按八进制输入),线圈的吸合或释放只取决于PLC外部触点的状态。内部有常开/常闭两种触点供编程时随时使用,且使用次数不限。输入电路的时间常数一般小于10ms。各基本单元都是八进制输入的地址,输入为X000 ~ X007,X010 ~X017,X020 ~X027 。它们一般位于机器的上端。
二、 输出继电器(Y)
PLC的输出端子是向外部负载输出信号的窗口。输出继电器的线圈由程序控制,输出继电器的外部输出主触点接到PLC的输出端子上供外部负载使用,其余常开/常闭触点供内部程序使用。输出继电器的电子常开/常闭触点使用次数不限。输出电路的时间常数是固定的 。各基本单元都是八进制输出,输出为Y000 ~Y007,Y010~Y017,Y020~Y027 。它们一般位于机器的下端。
三、 辅助继电器(M)
PLC内有很多的辅助继电器,其线圈与输出继电器一样,由PLC内各软元件的触点驱动。辅助继电器也称中间继电器,它没有向外的任何联系,只供内部编程使用。它的电子常开/常闭触点使用次数不受限制。但是,这些触点不能直接驱动外部负载,外部负载的驱动必须通过输出继电器来实现。如下图中的M300,它只起到一个自锁的功能。在FX2N中普遍途采用M0~M499,共500点辅助继电器,其地址号按十进制编号。辅助继电器中还有一些特殊的辅助继电器,如掉电继电器、保持继电器等,在这里就不一一介绍了。
X000 X001 M300
M300
四、定时器(T)
在PLC内的定时器是根据时钟脉冲的累积形式,当所计时间达到设定值时,其输出触点动作,时钟脉冲有1ms、10ms、100ms。定时器可以用用户程序存储器内的常数K作为设定值,也可以用数据寄存器(D)的内容作为设定值。在后一种情况下,一般使用有掉电保护功能的数据寄存器。即使如此,若备用电池电压降低时,定时器或计数器往往会发生误动作。
定时器通道范围如下:
100 ms定时器T0~T199, 共200点,设定值:0.1~ 3276.7秒;
10 ms定时器T200~TT245,共46点,设定值:0.01~327.67秒;
1 ms积算定时器 T245~T249,共4点,设定值:0.001~32.767秒;
100 ms积算定时器T250~T255,共6点,设定值:0.1~3276.7秒;
定时器指令符号及应用如下图所示:
X000
K123 设定值(累积)
T200 Y000
当定时器线圈T200的驱动输入X000接通时,T200的当前值计数器对10 ms的时钟脉冲进行累积计数,当前值与设定值K123相等时,定时器的输出接点动作,即输出触点是在驱动线圈后的1.23秒(10 * 123ms = 1.23s)时才动作,当T200触点吸合后,Y000就有输出。当驱动输入X000断开或发生停电时,定时器就复位,输出触点也复位。
每个定时器只有一个输入,它与常规定时器一样,线圈通电时,开始计时;断电时,自动复位,不保存中间数值。定时器有两个数据寄存器,一个为设定值寄存器,另一个是现时值寄存器,编程时,由用户设定累积值。
如果是积算定时器,它的符号接线如下图所示:
X001
K345
X002
定时器线圈T250的驱动输入X001接通时,T250的当前值计数器对100 ms的时钟脉冲进行累积计数,当该值与设定值K345相等时,定时器的输出触点动作。在计数过程中,即使输入X001在接通或复电时,计数继续进行,其累积时间为34.5s(100 ms*345=34.5s)时触点动作。当复位输入X002接通 ,定时器就复位,输出触点也复位。
五、 计数器(C)
FX2N中的16位增计数器,是16位二进制加法计数器,它是在计数信号的上升沿进行计数,它有两个输入,一个用于复位,一个用于计数。每一个计数脉冲上升沿使原来的数值减1,当现时值减到零时停止计数,同时触点闭合。直到复位控制信号的上升沿输入时,触点才断开,设定值又写入,再又进入计数状态。
其设定值在K1~K32767范围内有效。
设定值K0与K1含义相同,即在第一次计数时,其输出触点就动作。
通用计数器的通道号:C0 ~C99,共100点。
保持用计数器的通道号:C100~C199,共100点。
通用与掉电保持用的计数器点数分配,可由参数设置而随意更改。
举个例子:
X010
X011
K 计数器
C 0
由计数输入X011每次驱动C0线圈时,计数器的当前值加1。当第10次执行线圈指令时,计数器C0的输出触点即动作。之后即使计数器输入X011再动作,计数器的当前值保持不变。
l 当复位输入X010接通(ON)时,执行RST指令,计数器的当前值为0,输出接点也复位。
l 应注意的是, 计数器C100~C199,即使发生停电,当前值与输出触点的动作状态或复位状态也能保持。
六、 数据寄存器
数据寄存器是计算机必不可少的元件,用于存放各种数据。FX2N中每一个数据寄存器都是16bit(最高位为正、负符号位),也可用两个数据寄存器合并起来存储32 bit数据(最高位为正、负符号位)。
1) 通用数据寄存器D 通道分配 D 0~D199,共200点。
只要不写入其他数据,已写入的数据不会变化。但是,由RUN→STOP时, 全部数据均清零。(若特殊辅助继电器M8033已被驱动,则数据不被清零)。
2) 停电保持用寄存器 通道分配 D200~D511,共312点,或D200~D999,共800点(由机器的具体型号定)。
基本上同通用数据寄存器。除非改写,否则原有数据不会丢失,不论电源接通与否,PLC运行与否,其内容也不变化。然而在二台PLC作点对的通信时, D490~D509被用作通信操作。
3) 文件寄存器 通道分配 D1000~D2999,共2000点。
文件寄存器是在用户程序存储器(RAM、EEPROM、EPROM)内的一个存储区,以500点为一个单位,最多可在参数设置时到2000点。用外部设备口进行写入操作。在PLC运行时,可用BMOV指令读到通用数据寄存器中,但是不能用指令将数据写入文件寄存器。用BMOV将 数据写入RAM后,再从RAM中读出。将数据写入EEPROM盒时,需要花费一定的时间,务必请注意。
4) RAM文件寄存器 通道分配 D6000~D7999,共2000点。
驱动特殊辅助继电器M8074,由于采用扫描被禁止,上述的数据寄存 器可作为文件寄存器处理,用BMOV指令传送数据(写入或读出)。
5)特殊用寄存器 通道分配 D8000~D8255,共256点。
是写入特定目的的数据或已经写入数据寄存器,其内容在电源接通时,写入初始化值(一般先清零,然后由系统ROM来写入)。
§4 FX2N系列的基本逻辑指令
基本逻辑指令是PLC中最基本的编程语言,掌握了它也就初步掌握了PLC的使用方法,各种型号的PLC的基本逻辑指令都大台大同小异,现在我们针对FX2N系列,逐条学习其指令的功能和使用方法,。每条指令及其应用实例都以梯形图和语句表两种编程语言对照说明。
一、 输入输出指令(LD/LDI/OUT)
下面把LD/LDI/OUT三条指令的功能、梯形图表示形式、操作元件以列表的形式加以说明:
符号 功 能 梯形图表示 操作元件
LD(取) 常开触点与母线相连 X,Y,M,T,C,S
LDI(取反) 常闭触点与母线相连 X,Y,M,T,C,S
OUT(输出) 线圈驱动 Y,M,T,C,S,F
LD与LDI指令用于与母线相连的接点,此外还可用于分支电路的起点。
OUT 指令是线圈的驱动指令,可用于输出继电器、辅助继电器、定时器、计数器、状态寄存器等,但不能用于输入继电器。输出指令用于并行输出,能连续使用多次。
X000 Y000 地址 指令 数据
0000 LD X000
0001 OUT Y000
二、触点串连指令(AND/ANDI)、并联指令(OR/ORI)
符号(名称) 功 能 梯形图表示 操作元件
AND(与) 常开触点串联连接 X,Y,M,T,C,S
ANDI(与非) 常闭触点串联连接 X,Y,M,T,C,S
OR(或) 常开触点并联连接 X,Y,M,T,C,S
ORI ( 或非) 常闭触点并联连接 X,Y,M,T,C,S
AND、ANDI指令用于一个触点的串联,但串联触点的数量不限,这两个指令可连续使用。
OR、ORI是用于一个触点的并联连接指令。
X001 X002 Y001 地址 指令 数据
0002 LD X001
X003 0003 ANDI X002
0004 OR X003
0005 OUT Y001
三、电路块的并联和串联指令(ORB、ANB)
符号(名称) 功 能 梯形图表示 操作元件
ORB(块或) 电路块并联连接 无
ANB(块与) 电路块串联连接 无
含有两个以上触点串联连接的电路称为"串联连接块",串联电路块并联连接时,支路的起点以LD或LDNOT指令开始,而支路的终点要用ORB指令。ORB指令是一种独立指令,其后不带操作元件号,因此,ORB指令不表示触点,可以看成电路块之间的一段连接线。如需要将多个电路块并联连接,应在每个并联电路块之后使用一个ORB指令,用这种方法编程时并联电路块的个数没有限制;也可将所有要并联的电路块依次写出,然后在这些电路块的末尾集中写出ORB的指令,但这时ORB指令最多使用7次。
将分支电路(并联电路块)与前面的电路串联连接时使用ANB指令,各并联电路块的起点,使用LD或LDNOT指令;与ORB指令一样,ANB指令也不带操作元件,如需要将多个电路块串联连接,应在每个串联电路块之后使用一个ANB指令,用这种方法编程时串联电路块的个数没有限制,若集中使用ANB指令,最多使用7次。
ANB
X000 X002 X003 Y006
X001 X004 X005
ORB
X006
X003
地 址 指 令 数 据
0000 LD X000
0001 OR X001
0002 LD X002
0003 AND X003
0004 LDI X004
0005 AND X005
0006 OR X006
0007 ORB
0008 ANB
0009 OR X003
0010 OUT Y006
四、程序结束指令(END)
符号(名称) 功 能 梯形图表示 操作元件
END(结束) 程序结束 无
在程序结束处写上END指令,PLC只执行第一步至END之间的程序,并立即输出处理。若不写END指令,PLC将以用户存贮器的第一步执行到最后一步,因此,使用END指令可缩短扫描周期。另外。在调试程序时,可以将END指令插在各程序段之后,分段检查各程序段的动作,确认无误后,再依次删去插入的END指令。
其他的一些指令,如置位复位、脉冲输出、清除、移位、主控触点、空操作、跳转指令等,同学们可以参考一些课外书,在这里我们不详细介绍了。
下面同学们可练习由梯形图写出与之对应的助记符形式的指令。并由后面的GPP软件传输到PLC中,实时运行。
1)
X000 X001 X002 X003 Y000
X004
X005
2)
X000 X001 X004 X005 Y000
X002 X003 X006 X007
3)
X000 X001 X002 Y000
X003 X004 X005
X006 X007
文章版权归西部工控xbgk所有,未经许可不得转载。