3.5 FX2N系列PLC的软元件
PLC可编程序控制器是以微处理器为核心,以运行程序的方式完成控制功能。其内部拥有各种软元件,如输入/输出继电器、定时器、计数器、状态寄存器、数据寄存器等。用户利用这些软元件,实现各种逻辑控制功能,通过编程来表达各软元件间的逻辑关系。在PLC内,每个软元件都分配了一个地址号,也叫软元件编号。软元件的表达方式为:“表示元件类型的英文字母+编号(地址号)”,如M100、X15、Y30等。现将软元件分类并进行分述如下:
1.输入继电器(X)和输出继电器(Y)
PLC主机上有许多标有输入地址号和输出地址号的接线端子,分别叫做输入端子和输出端子。输入端子是可编程序控制器从外部开关接收信号的窗口。输出端子是可编程序控制器向外部负载发送信号的窗口。
输入继电器接受来自PLC外部输入设备(按钮、选择开关、限位开关等)提供的信号。换句话说,是外部设备提供的信号通过输入端子来驱动输入继电器的线圈,从而使输入继电器的触点动作(触点的ON/OFF状态发生改变)。输入继电器有无数的常开和常闭触点供用户编程时使用。如图3-25所示,当按下按钮时,输入信号通过X000输入端子,驱动X000输入继电器的线圈(线圈得电),输入继电器的常开触点闭合,常闭触点断开。
输出继电器是将PLC运算的结果(输出信号)通过输出端子送给外部负载(如接触器、电磁阀、指示灯等)。如图3-25右边所示,输出继电器只有一个硬元件输出触点与输出端子相连,输出继电器的线圈被驱动后,该输出触点动作(触点闭合),它直接驱动负载。而输出继电器有无数对软常开和常闭触点供用户编程时使用。输出继电器的线圈(如Y000)由PLC内的各软元件的触点驱动。
图3-25 输入/输出继电器信号图
输入/输出继电器的地址编号是以八进制数表示。FX2N PLC最大输入或输出点为256点。其基本单元为
输入:X000~X007、X010~X017、X020~X027、X030~X037、X040~X047、X050~X057、X060~X067、X070~X077、X100~X107…
输出:Y000~Y007、Y010~Y017、Y020~Y027、Y030~Y037、Y040~Y047、Y050~Y057、Y060~Y067、Y070~Y077、Y100~Y107…
扩展单元和扩展模块的输入/输出地址号,从与之相连的基本单元的地址号之后顺序分配。如:FX2N-48M基本单元配FX2N-32E扩展单元。
基本单元I/O编号为X000~X007、X010~X017、X020~X027;
Y000~Y007、Y010~Y017、Y020~Y027。
扩展单元I/O编号为X030~X037、X040~Y047;
Y030~Y037、Y040~Y047。
注:虽然输入、输出各有256点,但是包含扩展点数在内总点数不能超过256点。
2.辅助继电器(M)
PLC内拥有许多的辅助继电器(M),辅助继电器的线圈与输出继电器一样,由PLC内各软元件的触点驱动。这些继电器在PLC内部只起传递信号的作用,不与PLC外部发生联系。辅助继电器有无数的常开和常闭触点供用户编程时使用。该触点不能驱动外部负载,外部负载的驱动必须由输出继电器驱动。
辅助继电器(M)的地址编号是按十进制数分配的。编号及属性见表3-4。
表3-4 辅助继电器(M)的编号及属性
图3-26 特殊M用途示例
(1)停电保持用辅助继电器
停电保持用辅助继电器实际可分为两类,其中M500~M1023虽然为停电保持性,但可以通过程序改变为非停电保持型。M1024~M3071不可以通过程序改变为非停电性。如图3-26所示为非停电保持型M的用途示例。图中当X000触点接通后,M1024线圈得电,M1024触点闭合。这时X000再断开,M1024能保持闭合状态;若PLC掉电后再上电(X000是断开的),而停电保持继电器M1024则能保持掉电前的闭合状态。
(2)特殊用途的辅助继电器按其使用效能分为PLC状态、时钟、标志、PLC的方式、步进专用等,现将常用的特殊辅助继电器列于表3-5~表3-7中。
表3-5 特殊辅助继电器用法(PLC状态、时钟、标志)
(续)
注:1.用户程序不能驱动标有※记号的元件。
2.如要产生输出周期为1s不停闪烁的指示灯,建议用M8013,但要特别注意不能使用M8011或8012。因为会引起输出继电器Y的硬触点烧坏。
表3-6 特殊辅助继电器用法(PLC方式)
注:当PLC由RUN→STOP时,标有∗1的M继电器关断。
表3-7 特殊辅助继电器用法(步进顺控)
注:1.PLC由RUN→STOP时标有“∗”的M关断。
2.执行END指令时所有与STL状态相连的数据寄存器都被刷新。
3.定时器(T)
PLC内拥有许多的定时器,属于字元件,定时器的地址编号用十进制表示。定时器的作用相当于一个时间继电器。有设定值和当前值,有无数个常开/常闭触点供用户编程时使用。当定时器的线圈被驱动时,定时器以增计数方式对PLC内的时钟脉冲(1ms、10ms、100ms)进行累积,当累积时间达到设定值时,其触点动作。
定时器可用常数K作为设定值,也可用数据寄存器(D)的内容作为设定值。
FX系列PLC的定时器特性见表3-8。
表3-8 FX系列PLC的定时器特性
(1)普通定时器
当PLC停电后,定时器当前值数据清零,再上电后定时器从当0开始计时直到设定值。100ms定时器示例如图3-27所示,T1、T2是100ms(0.1s)普通定时器。10ms定时器示例如图3-28所示,T200是10ms(0.01s)普通定时器。
图3-27 定时器应用实例2
图3-28 10ms(0.01s)普通定时器使用参考程序、时序图
(2)积算定时器
积算定时器指的是PLC停电后,定时器当前值数据会被保持,再上电后定时器从当前值开始计时直到设定值。积算定时器的使用如图3-29所示,当X000为“ON”时,积算定时器线圈被驱动,定时器T255以0.1s为单位增计时方式计时,当计时值等于设定值25.6s(K256×0.1s)时,定时器的触点动作(常开触点闭合/常闭触点断开)。在计时过程中,若X000断开(或停电),定时器T255停止计时,X000再次为“ON”(或再上电)时,积算定时器T255会继续累积计时到设定值25.6s,之后定时器的触点动作。若复位输入X001为“ON”时,定时器复位,其触点也复位。
图3-29 100ms(0.1s)积算定时器T255的程序及时序图
定时器在使用时必须有一个设定值,运行过程中有其经过值,如图3-30的程序所示表明各值的意义。
图3-30 定时器相关值说明程序
4.状态寄存器(S)
PLC内拥有许多状态寄存器,按十进制编号分配,属于位元件。状态寄存器在PLC内提供了无数的常开/常闭触点供用户编程使用。通常情况下,状态寄存器与步进控制指令配合使用,完成对某一工序的步进顺序动作的控制。
当状态寄存器不用于步进控制指令时,可当做辅助继电器(M)使用,功能同M一样,参考程序如图3-31所示。停电保持型状态寄存器在使用时加复位程序如图3-32所示。状态寄存器作信号报警器参考使用程序如图3-33所示。当与步进指令配合使用时遵守表3-9的规定。
有关状态寄存器(S)作步进控制状态软元件使用,请参考后文章节中相关内容。
表3-9 状态寄存器(S)性能
5.计数器(C)
PLC的计数器是按十进制编号分配的,属于字元件,计数器可用常数K作为设定值,也可用数据寄存器(D)的内容作为设定值。计数器拥有无数对常开/常闭触点供用户编程时使用,当计数器的线圈被驱动时,计数器以增或减计数方式计数,当计数值达到设定值时,计数器触点动作。按信号频率分为内部计数器和高速计数器。
图3-31 作辅助继电器用参考程序
图3-32 停电保持型复位程序
图3-33 信号报警器参考使用程序
(1)内部信号计数器
内部信号计数器是对PLC的软元件X、Y、M、S、T、C等的触点周期性动作进行计数。比如:X000由OFF→ON变化时,计数器计一次数,当X000再由OFF→ON变化一次时,计数器再计一次数。X0的ON和OFF持续时间必须比PLC的扫描时间要长。计数输入信号的频率一般小于10Hz。计数器有16位和32位计数器,16位和32位计数器的性能比较见表3-10。
表3-10 16位计数器和32位计数器的性能
1)16位增计数器的工作过程及工作原理:图3-34所示为16位普通型计数器C0的程序及时序图,当复位输入X001为OFF时,计数输入X002每接通一次,C0计数器计数一次,即当前计数值增加1。计数当前值等于设定值5时,计数器C0的触点动作(常开触点闭合/常闭触点断开)。此时即使仍然有计数输入,计数器的当前值也不改变。当复位输入X001为ON时,计数器C0的当前值被复位为0,其触点状态也被复位。
16位增计数器在计数过程中,切断电源时,普通型计数器的计数当前值被清除,计数器触点状态复位;而停电保持型计数器的计数当前值、触点状态被保持。若PLC再通电,停电保持型计数器的计数值从停电前计数值开始继续计数,触点为停电前状态,直到计数当前值等于设定值。
当复位输入X001为ON时,计数器不能计数或者计数器当前值清零,触点状态复位。
图3-34 16位普通型计数器C0的程序及时序图
2)32位增/减计数器:32位增/减计数器在计数过程中,当前值在-2147483648~+2147483647间循环变化。即从-2147483648变化到+2147483647,然后再从+2147483647变化到-2147483648。当计数器的当前值等于设定值时,计数器的触点动作,但计数器仍在计数,计数器的当前值仍在变化,直到执行了复位指令时,计数器的当前值才为0。换句话说,计数器当前值的增/减与其触点的动作无关。
32位增/减计数器由特殊辅助继电器M8200~M8234设定对应计数器C200~C234的计数方式是增计数方式还是减计数方式。
若M82□□为ON状态,则C2□□以减计数方式计数。如M8200为ON,则C200为减计数。
若M82□□为OFF状态,则C2□□以增计数方式计数。如M8230为off,则C230为增计数。
32位增/减计数器计数过程中,当切断电源时,普通型计数器的计数当前值被清除,计数器触点状态复位;而停电保持型计数器的计数当前值和触点状态被保持。若PLC再通电,停电保持型计数器的计数值从停电前的计数值继续计数,触点状态为停电前状态。
例:32位增/减计数器C210的工作过程。
图3-35所示为32位普通型增/减计数器C210的程序及时序图。
复位输入X021为OFF时,计数输入X022每接通一次,计数器C210计一次数。
当X020为OFF,即M8210为“OFF”时,C210以增计数方式计数,C210每计数一次,当前值加1。当计数器的当前值由-4增加到-3时,C210触点接通(置1)。
当X020为ON,即M8210为“ON”时,C210为减计数方式,C210每计数一次,当前值减1。当计数器的当前值由-3减少到-4时,C210触点置0(假设C210触点原来为“1”状态)。
复位输入X021为ON时,计数器被复位,当前值为0,计数器触点也复位。
图3-35 32位普通型计数器C210的程序及时序图
3)计数器的设定值设定方法如图3-36和图3-37所示。
图3-36 直接设定计数器的设定值参考程序
图3-37 间接设定计数器的设定值参考程序
4)计数器的使用注意事项:在使用计数器时一定要注意计数器的16位和32位区别,如图3-38所示。
图3-38 计数器使用注意事项
(2)高速计数器
高速计数器是32位停电保持型增/减计数器,它可以对频率高于10Hz计数输入信号进行计数。它对特定输入端子(输入继电器X000~X007)的OFF→ON的动作进行计数(因为高速脉冲信号只能接入X000~X007端)。它采用中断方式进行计数处理,不受PLC扫描周期的影响。其计数范围为-2147483648~+2147483647(十进制常数),地址编号是C235~C255,最高响应频率为60kHz。
高速计数器可由程序实现复位或计数开始;也可由中断输入来实现中断复位或复位输入端子复位。特定输入端子X000~X007不能重复使用,即当某个输入端子被计数器使用后,其他计数器或输入不能再使用该输入端子。高速计数器的特定输入端子号与高速计数器的地址编号分配见表3-11,从表中可看出,计数器的地址号选定后,带有启动或复位的中断输入也相应被指定。
表3-11 高速计数器的特定输入端子号与地址编号的分配
注:U:加计数器输入;D:减计数输入;R:复位输入;S:启动输入;A:A相输入;B:B相输入。
图3-39 单相单计数输入高速计数器信号输入形式
1)单相单计数输入高速计数器235~C245:单相单计数输入高速计数器计数的增/减方式由M8235~M8245的状态决定。其信号输入形式如图3-39所示。若M82□□为OFF状态,则C2□□以增计数方式计数。该计数器线圈被驱动后,只对一路计数信号计数。也有的计数器(如C244),当计数器线圈被驱动后,还需启动输入(X006)为“ON”时,才对计数输入计数。单相单计数输入高速计数器C244的工作过程示例如图3-40所示。
图3-40 单相单计数输入高速计数器C244的工作过程
2)单相双计数输入高速计数器C246~C250:单相双计数输入高速计数器的计数增/减方式是根据计数输入端子不同,自动进行增/减计数。利用M8246~M8250特殊辅助继电器对计数器C246~C250的增/减计数方向进行监视,其信号输入形式如图3-41所示。单相双计数输入高速计数器C249的工作过程,如图3-42所示,当X011接通时,若输入X006接通,则C249立即开始计数,当计数输入为X000时,计数器做增计数,当计数输入为X001时,计数器做减计数。X010为ON时,计数器复位(程序复位)。如果X002闭合,计数器立即复位(与程序无关的复位)。
图3-41 单相双计数输入高速计数器信号输入形式
图3-42 单相双计数输入高速计数器C249的使用
3)双相双计数输入高速计数器C251~C255:双相双计数输入高速计数器有A、B两个计数输入(它们在相位上相差90°)。其信号输入形式如图3-43所示,通常高速计数器是1倍频计数(图3-43a),但是程序中若驱动了M8198或M8199,则以4倍频计数(图3-43b)。计数方向见表3-12,可利用M8251~M8255特殊辅助继电器对计数器C251~C255进行增/减计数方向监视。由此可见,双相双计数输入高速计数器的计数由两路计数输入信号控制完成。也有的计数器(如C254),当计数器线圈被驱动后,还需启动输入(如X006)为“ON”时,才对计数输入计数。
图3-43 双相双计数输入高速计数器信号输入形式
表3-12 双相双计数输入高速计数器计数方向
双相双计数输入高速计数器C251和C254的工作过程,分别如图3-44和图3-45所示。
(3)使用高速计数器的注意下列事项
1)输入端子的使用问题:输入X0~X7可以用于高速计数器、输入中断、脉冲捕捉以及SPD、DSZR、DVIT、ZRN指令和通用输入,但是不能重复使用输入端子。
图3-44 双相双计数输入高速计数器C251的工作过程
图3-45 双相双计数输入高速计数器C254的工作过程
如使用C251时,由于X0和X1均被占用,所以计数器(C235、C236、C241、C244、C246、C247、C249、C251、C252、C254)、输入中断(I00□、I01□)、脉冲捕捉用触点(M8170、M8171)和适用输入的SPD指令都不能使用。
2)有关值的问题:高速计数器线圈驱动用的触点,在使用时要一直保持为ON。
所有的高速成计数器在当前值等于设定值的时候,即使执行指令时,只要没有计数输入脉冲,输出的触点都不会动作。
在主程序中通过高速计数器的输出线圈(OUT C□□□)的ON/OFF,可以使计数开始或停止。但是在步进梯形图内和子程序中、中断子程序内使用这种线圈编程时,执行步进梯形图和子程序前,都不可以执行计数或停止。
3)高速计数器响应速度的问题:高速计数器是停电保持型,其经过值和设定值都是32位,经过值及触点状态都会记忆停电之前的状态。作为高速计数器的输入信号,建议使用电子开关信号,如果是机械触点,由于振荡会产生计数误码差。高速计数器是对定的输入端子作中断处理进行计数,而与PLC的扫描周期无关。
计数器对可编程序控制器的内部信号X、Y、M、C、S等触点状态的动作进行循环扫描并计数。但作为计数器的输入信号,其接通的时间,必须比PLC的扫描时间长(通常数值在毫秒级以上)。对于比扫描周期短(通常在毫秒级以下)的计数器输入信号,必须要用高速计数器来计数,高速计数器对特定的输入作中断处理进行计数,而与扫描周期无关。
(4)有关响应频率范围的问题
高速计数器按照使用不同分为硬件计数器和软件计数器。硬件计数器就是硬件计数器,所以能与综合频率无关进行计数。
软件计数器:C235、C236、C246和C251在使用功能指令【FNC53(DHSCS)、FN(DHSCR)、FNC55(DHSZ)】,硬件计数功能被解除而转换成软件计数器;C237~C245,C247~C250,C252~C255都是软件计数器。
硬件计数器:C235、C236、C246和C251作硬件计数器时,C235、C236和C246最高响应频率为60kHz,C251为30kHz。
C237~C245,C247~C250最高响应频率为10kHz,C252~C255最高响应频率为5kHz。
6.数据寄存器(D)
数据寄存器是PLC中用来存储数据的字软元件。地址按十进制数分配。供数据传送、比较和运算等操作使用。每一个数据寄存器的字长为16位,最高位为符号位(1为负,0为正)。16位数据寄存器存储的数值范围是-32768~+32767。如图3-46所示。
图3-46 16位数据寄存器结构
两个地址号相邻的数据寄存器组合可用于处理32位数据,通常指定低位,高位自动占有。例如指定了D20,则高位自动分配为D21。考虑到编程习惯和外部设备的监控功能,建议在构成32位数据时低位用偶数地址编号。32位数据寄存器存储的数值范围是-2147483648~+2147483647。32位数据寄存器结构如图3-47所示。
图3-47 32位数据寄存器结构
程序运行时,只要不对数据寄存器写入新数据,数据寄存器中的内容就不会变化。通常可通过程序的方式或通过外部设备对数据寄存器的内容进行读/写。数据寄存器分类及属性见表3-13。
表3-13 数据寄存器分类及属性
有关数据寄存器的应用如图3-48所示。
另外:文件寄存器(R)是扩展数据寄存器的软元件,文件寄存器中的内容也可保存在扩展文件寄存器(ER)中,但是只有使用了存储器盒的情况下,才可以使用扩展文件寄存器。
文件寄存器编号是R0~R32767,扩展文件寄存器编号是ER0~ER32767。
图3-48 寄存器的应用示例
7.变址寄存器(V、Z)
变址寄存器是字长为16位的数据寄存器,与通用数据寄存器一样可进行数据的读写。把V与Z组合使用,可用于处理32位数据,并规定Z为低16位。变址寄存器编号为V0~V7、Z0~Z7。
如下是应用变址寄存器(V、Z)改变软元件的地址。
(1)修饰十进制数软元件
可修饰M、S、T、C、D、R、KnM、KnS、P、K。
例:V0=K8,执行D20V0时,对应的软元件软元件编号则为D28(20+8)。
例:V1=K8,执行K30V1时,被执行指令是作为十进制的数值K38(30+8)。
例:利用变址寄存器编写显示定时器T当前值的程序,如图3-49所示。
图3-49 变址寄存器修饰定时器
(2)修饰八进制软元件。对软元件编号为八进制数的软元件进行变址修饰时,V、Z的内容也会被换算成八进制后进行加法运算。可修饰X、Y、KnX、KnY。
例:Z1=K10,执行X0Z1时,对象软元件编号被指定为X12,请注意此时不是X10。
例:Z1=K8,执行X0Z1时,对象软元件编号被指定为X10,请注意此时不是X8。
例:用外接数字开关通过X000~X003设置定时器地址,定时当前值由Y010~Y017输出驱动外接七段数码管进行显示。如图3-50所示程序中对应Z=0~9,T0Z=T0~T9。
图3-50 修饰八进制软元件参考示例
(3)修饰十六进制数值:H
例:V2=K30,指定常数H30V2时,则常数H30V2为H4E(H30+K30)。
例:V1=H30,指定常数H30V1时,则常数H30V1为H60(30H+30H)。
8.指针(P)、(I)
在PLC的程序执行过程中,当某条件满足时,需要跳过一段不需要执行的程序或者调用一个子程序或者执行指定的中断程序,这时需要用一“操作标记”来标明所操作的程序段,这一“操作标记”就是指针。
(1)分支用指针(P)
分支指针以十进制进行编号,对于FX2N系列PLC编号是:P0~P127,共计128点,其中P63指向END步,是不能在程序中使用的(注:如果是FX3U系列PLC可用的指针编号为P0~P62和P64~P4095共4095点)。
当分支指针(P)用于跳转指令(CJ)时,用来指定跳转的起始位置和终点位置,如图3-51所示。当分支指针(P)用于子程序调用指令(CALL)时,用来指定被调用的子程序和子程序的位置,如图3-52所示。分支指针不能对P63进行编程,如图3-53所示。
图3-51 分支指针(P)用于跳转指令(CJ)
图3-52 分支指针(P)用于子程序调用指令示例
图3-53 分支指针不能对P63进行编程说明程序
(2)中断指针(I)中断指针作为标号用于指定中断程序的起点。中断程序是从指针标号开始,执行IRET指令时结束。中断类型有三种:输入中断、定时器中断、高速计数器中断。它与应用指令IRET(中断返回)、DI(禁止中断)、EI(允许中断)一起使用。
1)输入中断:输入中断是指不受可编程序控制器扫描周期的影响下,指接收来自特定的输入地址号(X000~X005)的输入信号,该输入信号被触发时,执行输入中断用指针标识的中断子程序。输入信号ON或OFF的脉宽必须大于5μs。输入中断源见表3-14。
由于输入中断可以处理比扫描周期更短的信号,因此可在顺控过程中作为需要优先处理或者短时间脉冲处理控制时使用。
同时要注意输入端子不能重复使用。输入X0~X7用于高速计数器、输入中断、脉冲捕捉,还用于SPD、DVIT、ZRN指令和通用输入,因此作为中断输入的地址号(X000~X005)不能再作为其他输入信号重复使用。
表3-14 输入中断源
例如,使用输入中断指针I001时,由于X0被占用,所以不能使用C235、C241、C246、C247、C249、C251、C252、C254、脉冲捕捉用触点M8170和该输入的SPD的指令。
中断指针中的“□”为1时表示上升沿中断,为0时表示下降沿中断。例如:指针I201,表示输入X002从OFF→ON变化时,执行标号I201之后的中断程序,并由IRET指令结束该中断程序。采用输入中断编程结构程序如图3-54所示。
图3-54 输入中断编程结构程序
2)定时器中断:定时器中断共3点,每隔指定的中断循环时间(10~99ms),执行中断子程序。用于与可编程序控制器的扫描周期不同的需要循环中断处理的控制中。定时器中断源使用说明见表3-15。
表3-15 定时器中断源说明
定时器中断时间设定在9ms以下时,以下两种情况有可能出现不能按照正确的周期处理定时器中断,所以定时器的中断时间建议设定在10ms以上。
①中断程序处理时间较长的情况;
②主程序内使用了处理时间较长的应用指令的情况。
采用定时器中断源编程程序结构如图3-55所示。
图3-55 采用定时器中断源编程程序结构
3)高速计数器中断:高速计数器中断共6点,表示由高速计数器引起的中断。编号分别为I010、I020、I030、I040、I050、I060。这些中断源的禁止标志为M8059。
例:表示当高速计数器C255的当前值为2010时,执行标号I010后面的中断程序。执行完中断程序后,返回到发生中断时程序位置。参考程序如图3-56所示。
图3-56 高速计数器中断参考程序
当有多个中断源的时候,优先执行中断标号小的子程序。实际上也是硬件中断源优先于软件中断源。如输入中断源就是硬件中断,同时其标号也较小,所以优先执行。
以上通过对FX2N系列PLC软元件的学习,了解了PLC为用户提供的可使用的资源,为进一步学习FX2N系列PLC的指令及其编程打下了基础。