2.2.2 A系列PLC的主要硬件资源
2.2.2.1 A2N系列PLC的编程器件
A系列PLC的机型很多,各种机型的CPU种类、存储器容量的大小、I/O点数以及功能范围等都各不相同,但其软元件的编号方式和系统指令都基本相似。限于篇幅,也为了条理清楚,本节仅以功能较强、应用较广的A2N系列模块式PLC为背景机进行介绍,对A系列的其他机型可参考A2N系列进行学习。
(1)输入继电器(X)和输出继电器(Y)
输入继电器(又称输入软元件)和输出继电器(又称输出软元件)用于PLC的CPU和外部用户设备之间的数据传送。
对A系列PLC,可用于控制I/O模块和特殊功能模块的I/O地址号为X0、Y0至1FFH(H表示16进制),输入(X)、输出(Y)的总点数为512点。其输入、输出地址的具体分配方法详见下述。
①输入继电器(X) 输入继电器是PLC与外部用户设备连接的接口,用来接受用户输入设备(例如按钮、选择开关、限位开关、数字开关等)发来的输入信号。
输入继电器的线圈与PLC的输入端子相连。从用户输入设备送到输入模块的数据,使输入继电器的线圈(软线圈)处于ON/OFF状态,输入继电器的触点(常开和常闭)供编程使用。在程序中,输入继电器的常开触点和常闭触点的使用次数没有限制。
例如,图2-9表示编号为X0的输入继电器的等效电路。其线圈由外部按钮输入信号驱动,X0的常开触点和常闭触点供编程使用。编程时值得注意的是:输入继电器只能由外部信号驱动,不能在程序内部用指令来驱动,其触点也不能直接带动负载。
图2-9 输入继电器电路
②输出继电器(Y) 输出继电器用于将程序运算的结果经过输出模块送到用户输出设备(如接触器、电磁阀、指示灯等)。
输出继电器的线圈由程序执行结果所驱动(激励),它只有一个触点(即外部触点)输出,用来直接带动负载。这个外部触点的状态对应于输出刷新阶段的输出锁存器中的输出状态。同时,它还有无数对常开触点和常闭触点(内部触点)供编程使用。这些内部触点的状态对应于输出元素映像寄存器中该元件的状态。图2-10是输出继电器Y020的等效电路。
图2-10 输出继电器电路
(2)辅助继电器(M/L/S)
辅助继电器的线圈和输出继电器一样,只能由程序驱动。每个辅助继电器也有无数对常开触点和常闭触点,但这些触点只能在PLC内部供编程使用,不能直接输出驱动外部负载。也就是说,辅助继电器不能输出到外部器件上。
辅助继电器有内部继电器(M)、锁存继电器(L)和步进继电器(S)三种。其中,内部继电器(M)和步进继电器(S)无断电保持功能,即当切断PLC的电源,或对PLC进行复位时,全部内部继电器和步进继电器均断开。而锁存继电器(L)则具有断电保持功能(断电时用锂电池作后备电源),即当PLC上电或复位时,其操作结果被保持;当清除锁存时,才将锁存继电器全部断开。
辅助继电器(M/L/S)的总点数为2048点,其默认设置为:内部继电器占1000点(M0~M999)、锁存继电器占1048点(L1000~L2047)、步进继电器(S)占0点。但它们(M/L/S)各自所占的点数比例并不是固定不变的,可以通过参数来改变其设置。需要说明的是,无论内部继电器(M)、锁存继电器(L)和步进继电器(S)三者之间的点数比例怎样改变,它们的总点数始终为2048点,且三种继电器的地址总是连续编号的。
(3)通信继电器(B)
通信继电器是用于数据通信系统中的内部继电器,其元件编号为B0~B3FF,共1024点。
在数据通信系统中,通信继电器的通/断数据可以通过在授权站(主站或就地站)如同控制线圈那样控制通信继电器的通/断,在非授权站(主站或就地站)将它们当作触点。这样,就可以在主站和就地站之间通过通信继电器传送通/断数据。但远程I/O站不能使用通信继电器。
在每个站中用作线圈的通信继电器,必须由主站先进行设置。对没有被设置为通信用的通信继电器,在每个站中可当作内部继电器使用。
在程序中,通信继电器的常开触点和常闭触点的使用次数没有限制。
通信继电器的通/断状态必须通过输出模块才能输出到外部器件。
(4)定时器(T)
PLC中的定时器T相当于继电器控制系统中的时间继电器,它采用增计数方式进行计时。当定时器的线圈接通时,定时器开始计时,当计时的当前值与定时器的设定值相等时(定时时间到),定时器的常开触点闭合、常闭触点断开;当定时器的线圈断开时,当前值变为0,其触点恢复常态。定时器可提供无限对常开、常闭触点供编程使用。
①定时器的元件编号和设定时间 100ms定时器:T0~T199(共200点)。
10ms定时器:T200~T255(共56点)。
图2-11是定时器的梯形图和工作时序。图中,当X1接通时,定时器T2的线圈接通,其当前值开始计时,当当前值计到与设定值5s(50ms×100=5s,因T2为100ms定时器)相等时,定时器T2的常开触点闭合,Y020接通。当X1断开时,计时器T2的线圈断开,其常开触点立即断开(恢复常态)。
图2-11 定时器的梯形图和工作时序
②定时器的工作过程 当定时器的线圈接通时,定时器的当前值被不断刷新,当定时时间到时,定时器的触点动作(常开触点闭合、常闭触点断开)。反之,当定时器的线圈断开时,定时器复位,其当前值为0,触点立即复位(常开触点断开、常闭触点闭合)。
定时器T也可用复位指令来复位。当执行复位指令(RST T□)时,对应定时器的当前值就复位为0,其触点也立即复位。
定时器线圈的通/断是靠执行OUT T□指令来进行的。如果在定时器的线圈接通后,由于使用跳转指令CJ而跳过了OUTT□指令,则定时器线圈仍保持接通状态,并进行计时。当定时器的计时时间到时,即使不执行OUT T□指令,定时器的当前值照样被刷新。如图2-12所示。
图2-12 定时器遇到跳转指令时的处理
(5)计数器(C)
A2N系列PLC CPU采用增(加法)计数方式。当计数器的计数值增加到与设定值相等时,程序中计数器的常开触点闭合、常闭触点断开。计数器可提供无限对常开、常闭触点供编程使用。计数器的计数次数是由设定值决定的。计数器的元件编号为C0~C255,共256点。
①计数器的工作过程 图2-13为一计数梯形图。图中的增计数器C0对输入X5的上升沿计数,当计数输入X5每接通一次,就计一次数,计数器C0的当前值加1,当当前值增加到与C0的设定值6相等时,计数器C0的常开触点闭合、常闭触点断开。其工作时序如图2-14所示。
图2-13 计数梯形图
图2-14 计数器时序图
由于每个计数器均有断电保持功能(用锂电池供电),因此当计数器在计数时电源中断,计数器停止计数并保持计数当前值;当电源再次接通后,计数器在当前值的基础上继续计数。所以,当不需要在电源中断时保存计数数据时,可用初始化脉冲M9038(详见特殊辅助继电器)作为计数器的复位信号,当PLC一投入运行时,就对计数器C0复位,则计数器复位为0。图2-13中,X006为外加的复位条件,当复位输入X6接通时,计数器的当前值复位为0,其常开触点断开、常闭触点闭合。
②中断计数器 当计数器在中断程序中使用时,即为中断计数器。其工作过程与在顺控程序中使用的普通计数器基本相同,也是当计数器的当前值增加到与设定值相等时,计数器的触点动作。在中断程序中,通过执行指令OUT C□,使中断程序中的计数器线圈得电/失电,执行中断返回指令IRET后,计数器的当前值被刷新,其触点动作。
只有当指令OUT C□的输入条件从断开状态改变到接通状态时,才执行计数;如果输入状态保持在接通(或断开),不执行计数。
计数器的线圈失电时,其计数当前值并不被清零。用指令RST C□使计数器的当前值清零,且使它的触点恢复常态。
例如在图2-15中,当计数输入X15每从断开状态改变到接通状态一次,计数器C254的当前值就加1,当C254的计数当前值与其设定值2相等时,计数器C254的常开触点闭合、常闭触点断开。当复位输入X16接通时,计数器C254的当前值被复位到0,其常开触点断开、常闭触点闭合。
图2-15 中断计数梯形图
(6)数据寄存器(D)
数据寄存器的元件编号为D0~D1023(共1024点),它用来存储PLC内部的数值型数据(-32768~32767或8000H~7FFFH)。每个数据寄存器的字长为16位,其结构如图2-16所示。
图2-16 数据寄存器
用两个数据寄存器可以处理32位的数据。32位指令指定的数据寄存器存放低16位数据,其地址+1的那个数据寄存器存放高16位数据。如图2-17所示。图中,DMOV是32位数据传送指令,该指令指定的数据寄存器D0存放低16位数据,而数据寄存器D1(因为地址D+1=1)则用来存放高16位数据。也就是将数据500000存放在D0和D1两个数据寄存器中。
图2-17 用两个数据寄存器处理32位的数据
当用程序(指令)将数据存入数据寄存器时,数据寄存器中内容一直保持,直到新数据送入后才刷新(改变)。
(7)通信寄存器(W)
通信寄存器的元件编号为W0~WFF(共1024点),它用来存放数据通信用的数据。每个通信寄存器的字长为16位,是进行数据读写操作的基本单位。将图2-16中的D换成W,即为通信寄存器的结构图。
同数据寄存器一样,用两个通信寄存器也可处理32位数据。用32位指令指定存放低16位的通信寄存器的地址号(比如W0),高16位数据存放在指定地址号加1(0+1)的通信寄存器(W1)中。将图2-17中的D0和D1分别换成W0和W1,即为用两个通信寄存器(W0和W1)存放32位的数据(500000)的情况。
利用通信寄存器可以实现主站与就地站或两个就地站之间的数据通信。比如,在一个站(主站或就地站)写入的数据,可以在其他站(就地站或主站)读出和使用。
为了在数据通信中使用通信寄存器,需要在主站对各个站所使用的通信寄存器进行设置。凡是没有设置在各站中使用的通信寄存器,均可作为数据寄存器。也就是说,对在数据通信中要使用的通信寄存器,必须先在主站进行设置,设置为通信用的通信寄存器,不能再用作数据寄存器。
注意:当通信寄存器用于通信系统时,通信寄存器中的数据不能在远程I/O站中使用。
(8)文件寄存器(R)
文件寄存器用作数据寄存器的一个扩展存储区,存储卡内的用户存储空间可供设置文件寄存器存储区用。通过参数设置,文件寄存器可达1K~4K点。
文件寄存器的字长为16位,是进行数据读写操作的基本单位。将图2-16中的D换成R,即为文件寄存器的结构图。
同数据寄存器一样,用两个文件寄存器也可处理32位数据。32位指令所指定的地址(比如R0)为存放低16位的文件寄存器的地址号,而高16位数据,则存放在指定地址号加1的文件寄存器(R1)中。将图2-17中的D0和D1分别换成R0和R1,即为用两个文件寄存器(R0和R1)存放32位的数据(500000)的情况。
文件寄存器中存放的数据在电源接通时是不能清除的,即使将开关SET扳至“RESET”或“LATCH CLEAR”时,也不能清除。要清除文件寄存器中的内容,需用FMOV(P)指令将“0”写入到文件寄存器中,如图2-18所示。其中,“R0”表示起始地址,“K1024”表示清零的点数。
图2-18 清除文件寄存器中内容的方法
(9)累加器
累加器的元件编号为A0、A1(共2点),它用来存放基本指令和应用指令的操作结果。每个累加器的字长为16位,是进行数据读写操作的基本单位。将图2-16中的D换成A,即为累加器的结构图。
同数据寄存器一样,用两个累加器可处理32位数据。使用32位指令时,累加器A0存放低16位,累加器A1存放高16位。将图2-17中的D0和D1分别换成A0和A1,即为用两个累加器(A0和A1)存放32位数据(500000)的情况。
(10)变址寄存器(Z、V)
在使用基本指令和应用指令时,可以采用变址寄存器来间接指定软元件(X、Y、M、L、B、T、C、D、W、R等)的地址。A2N系列PLC提供两个变址寄存器,即Z和V。每个变址寄存器由16位组成,16位是进行数据读写的基本单位。
当使用32位指令时,用变址寄存器Z存放低16位数据,V存放高16位数据。且注意,在编程中使用32位指令时,不能指定V作为操作数。
将图2-17中的D0和D1分别换成Z和V,即为用两个变址寄存器(Z和V)存放32位的数据(500000)的情况。
变址寄存器不能对以触点或线圈为单位的位软元件(X、Y、M、L、B、T、C等)进行间接指定,只有用这些位软元件构成以16位为单位时,才能使用变址操作。如图2-19所示。
图2-19 变址寄存器的应用
值得说明的是,在执行中断程序之前,A2N系列PLC不能保存变址寄存器中的数据。在执行中断程序期间,变址寄存器中的数据已经有了变化,而在中断程序执行完成时,又想将变址寄存器中的数据恢复到执行中断程序之前的状态,则必须编写一段如图2-20所示的程序。
图2-20 保存和恢复变址寄存器中数据
(11)嵌套软元件(N)
嵌套软元件的编号为N0~N7,共8级。嵌套软元件与主控指令一起使用。编程时,指定最低的嵌套级N0为起点,最高的嵌套级为终点。
主控指令用于打开和关闭母线,使梯形图的切换执行得更有效。每个主控指令均以MC指令开始,以MCR指令结束。
(12)指针(P)
指针的软元件的编号为P0~P255,共256点。当它与跳步指令(CJ、SCJ、JMP)联用时,用来指定跳步的转移目标和目标起点(标号),如图2-21所示。当指针与子程序调用指令(CALL、CALLP)联用时,用来指定子程序的调用目标和子程序起点(标号),如图2-22所示。
图2-21 指针在跳步指令中的用法
图2-22 指针在子程序调用指令中的用法
在使用指针P255时,要注意以下三点:
①P255与CJ、SCJ或JMP指令一起使用时,用作跳步到END;
②P255不能作标号;
③P255不能与软元件一起使用于CALL或CALLP指令。
(13)中断指针(I)
中断指针的软元件编号为I0~I31,共32点。它作为标号,用于中断程序的起点。每个中断程序均以一个中断指针标号作为开始,以IRET指令作为结束。
(14)常用特殊辅助继电器
特殊继电器是在PLC中具有某些特殊功能的继电器,特殊继电器的软元件编号M9000~M9255,共256点,这里仅介绍常用的特殊继电器,其他特殊继电器可参阅有关资料。
①M9005——AC电源掉电检测M9005用来检测CPU模块中,20ms或20ms以下的瞬间电源故障。当发生在20ms或不到20ms的瞬间掉电时,M9005接通;当电源正常时M9005复位(为OFF)。
②M9020~M9024——0~4号用户定时时钟M9020~M9024特殊辅助继电器按预定的间隔反复通断。用脉冲再生指令(DUTY)指定通/断的间隔,如图2-23所示,在n1个扫描周期内接通(为ON),在n2个扫描周期内断开(为OFF)。
图2-23 用户定时时钟的用法及时序
在上电或复位后(初始状态),用户定时时钟从0开始,即在初始状态,时钟处于断开状态。
由图2-23可见,当n1=0时,定时脉冲为OFF;当n1>0,n2=0时,定时脉冲保持为ON。
为了帮助理解,下面举一个M9020~M9024应用的具体例子,如图2-24所示。当X1接通时,定时脉冲M9022的两个扫描周期为ON,四个扫描周期为OFF。
图2-24 M9020-M9024的应用实例
注意:由DUTY指令产生定时脉冲后,即使定时脉冲启动输入信号(X1)断开,所产生的定时脉冲也不会停止。因此,若要停止所产生的定时脉冲,可将图2-24中的n1设为0,即将定时脉冲为ON的扫描次数设置为0,当然还用一个定时脉冲停止输入信号。
比如,要停止图2-24(a)所产生的定时脉冲,可用图(c)所示的梯形图来实现。当定时脉冲停止输入信号X2接通时,定时脉冲M9022即停止。
③M9030~M9034——用于指定时间间隔运行的时钟当PLC运行时,M9030~M9034产生周期分别为0.1s、0.2s、0.5s、1s、1min的时钟信号。
例如M9033为1s时钟脉冲,当PLC投入运行时,M9033产生周期为1s(ON/OFF=0.5秒/0.5秒)的脉冲信号。如图2-25所示。
图2-25 M90331s时钟脉冲波形图
④M9036——恒ON标志 当PLC的电源接通时,M9036恒处于ON状态。它可用于开发一个电源接通后一直执行的程序。
⑤M9037——恒OFF标志 当PLC的电源接通时,M9037恒处于OFF状态。它可用于在调试或其他情况下暂停程序执行。
⑥M9038——初始化脉冲继电器 在PLC运行时,M9038接通一个扫描周期。其时序如图2-26(a)所示。
图2-26 M9038/M9039的时序
⑦M9039——运行标志继电器 在PLC运行时,M9039断开一个扫描周期。其时序如图2-26(b)所示。
(15)信号报警器(F)
信号报警器(F)可在故障检测程序中使用,其软元件编号为F0~F255,共256点。
2.2.2.2 A2N系列PLC的I/O地址分配
对于A2N系列PLC,在分配其I/O地址时应遵循以下几点。
(1)主基板上I/O模块的地址分配方法
A2N系列PLC的I/O地址的编号是由主基板的第0号槽(即CPU模块的右侧)开始,向右展开。输入模块的地址为X□□□,输出模块的地址为Y□□□(I/O地址用三位16进制数表示),输入(X)和输出(Y)地址是连续编号的,如图2-27所示。
图2-27 主基板I/O地址的分配方法
(2)扩展基板上I/O模块的地址分配方法
使用扩展基板时,第一块扩展基板的首地址顺接主基板的末地址。扩展基板的地址编号取决于扩展基板所设置的级号的顺序,而与扩展电缆的连接顺序无关,如图2-28所示。
图2-28 扩展基板I/O地址的分配方法
图2-28中,假设各槽均为16点,则主基板(图中的“①”)从0号槽到7号槽的地址编号为以000~07F。在两块扩展基板中,尽管上面那块扩展基板(图中的“②”)的扩展电缆与主基板直接相连,但由于下面那块扩展基板(图中的“③”)的级号被设置为1级,而上面那块扩展基板的级号被设置为2级,因此,③号扩展基板的I/O首地址编号(“080”)应顺接主基板的末地址(“07F”),而②号扩展基板的I/O首地址(“100”)应顺接③号扩展基板的末地址(“0FF”),以此类推,直至最后一级扩展基板。
(3)插槽所占用的I/O点数
各个插槽所占用的I/O点数,等于插在该插槽上的模块自身的I/O点数。而对于没有插装I/O模块或特殊功能模块的空槽,其所占用的I/O地址应作16点处理,如图2-29所示。
图2-29 插槽的I/O地址点数
例如,在主基板的第0号槽上,假设插了一个32点的输入模块,则该插槽所占用的I/O地址为X000~X01F(共32点)。而在1号槽上,由于插的是一个16点的输入模块,因此1号槽的I/O地址编号为X020~X02F(共16点)。
对于主基板上的2号槽和3号槽,由于没有插装模块(为空槽),则其所占用的I/O地址按16点处理。这样顺序排下去,则4号槽(假设插的是32点输出模块)的I/O地址编号应为Y050~Y06F(共32点)。
(4)基板的槽数
在对I/O地址进行编号时,各种主基板和扩展基板均应作8个槽处理。
例如,在一块有5个槽的主基板上,对I/O模块编号应作8个处理(主基板的第5、6、7槽也要占用I/O地址),其后的扩展基板的首地址(Y080)应顺接主基板的末地址(07F),如图2-30所示。
图2-30 基板的槽数
(5)级号设置跳跃的扩展基板的I/O地址分配
如果扩展基板的级号设置不连续(级号设置跳跃),那么这些被跳过的扩展级所占用的I/O点数等于“跳过的级数×(槽)8×16(点)”。
在图2-31中,由于主基板所连接的扩展基板的级号被设置为第2级(跳过了第1级),因此,扩展基板的I/O首地址应从100(假设各槽均为16点)开始,即跳过了“1(级)×(槽)8×16(点)=128点”。
图2-31 级号设置跳跃的扩展基板的I/O地址分配