PLC是在继电器控制线路的基础上发展起来的,继电器控制线路有时间继电器、中间继电器等,而PLC内部也有类似的器件,由于这些器件以软件形式存在,故称为软元件。 PLC程序由指令和软元件组成,指令的功能是发出命令,软元件是指令的执行对象。 比如,SET为置1指令,Y000是PLC的一种软元件(输出继电器),“SET Y000”就是命令PLC的输出继电器Y000的状态变为1。由此可见,编写PLC程序必须了解PLC的指令和软元件。
PLC的软元件很多,主要有输入继电器、输出继电器、辅助继电器、定时器、计数器、数据寄存器和常数等。三菱FX系列PLC分很多子系列,越高档的子系列,其支持指令和软元件数量越多。
输入继电器用于接收PLC输入端子送入的外部开关信号,它与PLC的输入端子有关联, 其表示符号为X,按八进制方式编号,输入继电器与外部对应的输入端子编号是相同的。三菱FX 3U -48M型PLC外部有24个输入端子,其编号为X000~X007、X010~X017、X020~X027,相应内部有24个相同编号的输入继电器来接收这些端子输入的开关信号。
一个输入继电器可以有无数个编号相同的常闭触点和常开触点, 当某个输入端子(如X000)外接开关闭合时,PLC内部相同编号的输入继电器(X000)状态变为ON,那么程序中相同编号的常开触点闭合,常闭触点断开。
输出继电器(常称输出线圈)用于将PLC内部开关信号送出,它与PLC输出端子有关联, 其表示符号为Y,也按八进制方式编号,输出继电器与外部对应的输出端子编号是相同的。三菱FX 3U -48M型PLC外部有24个输出端子,其编号为Y000~Y007、Y010~Y017、Y020~Y027,相应内部有24个相同编号的输出继电器,这些输出继电器的状态由相同编号的外部输出端子送出。
一个输出继电器只有一个与输出端子关联的硬件常开触点(又称物理触点),但在编程时可使用无数个编号相同的软件常开触点和常闭触点。 当某个输出继电器(如Y000)状态为ON时,它除了会使相同编号的输出端子内部的硬件常开触点闭合外,还会使程序中相同编号的软件常开触点闭合、常闭触点断开。
三菱FX系列PLC支持的输入继电器、输出继电器如表2-8所示。
表2-8 三菱FX系列PLC支持的输入继电器、输出继电器
辅助继电器是PLC内部继电器,它与输入、输出继电器不同,不能接收输入端子送来的信号,也不能驱动输出端子。 辅助继电器表示符号为M,按十进制方式编号,如M0~M499、M500~M1023等。 一个辅助继电器可以有无数个编号相同的常闭触点和常开触点。
辅助继电器分为四类:一般型、停电保持型、停电保持专用型和特殊用途型。 三菱FX系列PLC支持的辅助继电器如表2-9所示。
表2-9 三菱FX系列PLC支持的辅助继电器
(续表)
一般型(又称通用型)辅助继电器在PLC运行时,如果电源突然停电,则全部线圈状态均变为OFF; 当电源再次接通时,除了因其他信号而变为ON的以外,其余的仍将保持OFF状态,它们没有停电保持功能。
三菱FX 3U 系列PLC的一般型辅助继电器点数默认为M0~M499,也可以用编程软件将一般型设为停电保持型。 软元件停电保持(锁存)点数设置如图2-20所示,在三菱PLC编程软件GX Developer的工程列表区双击参数项中的“PLC参数”,弹出“FX参数设置”对话框,切换到“软元件”选项卡,从辅助继电器一栏可以看出,系统默认M500(起始)~M1023(结束)范围内的辅助继电器具有锁存(停电保持)功能。如果将起始值改为550,结束值仍为1023,那么M0~M550范围内的都是一般型辅助继电器。
图2-20 软元件停电保持(锁存)点数设置
从图2-20所示对话框中不难看出,不但可以设置辅助继电器停电保持点数,还可以设置状态继电器、定时器、计数器和数据寄存器的停电保持点数。编程时选择的PLC类型不同,该对话框的内容也会有所不同。
停电保持型辅助继电器与一般型辅助继电器的区别主要在于,前者具有停电保持功能,即能记忆停电前的状态,并在重新通电后保持停电前的状态。 FX 3U 系列PLC的停电保持型辅助继电器可分为停电保持型(M500~M1023)和停电保持专用型(M1024~M7679), 停电保持专用型辅助继电器无法设成一般型。
下面以图2-21来说明一般型和停电保持型辅助继电器的区别。
图2-21 一般型和停电保持型辅助继电器的区别说明
图2-21(a)所示程序采用了一般型辅助继电器,在通电时,如果X000常开触点闭合,辅助继电器M0状态变为ON(或称M0线圈得电),M0常开触点闭合,在X000触点断开后锁住M0继电器的状态值。如果PLC停电,M0继电器状态值将变为OFF,在PLC重新恢复供电时,M0继电器状态仍为OFF,M0常开触点断开。
图2-21(b)所示程序采用了停电保持型辅助继电器,在通电时,如果X000常开触点闭合,辅助继电器M600状态变为ON,M600常开触点闭合。如果PLC停电,M600继电器状态值保持为ON,在PLC重新恢复供电时,M600继电器状态仍为ON,M600常开触点仍闭合。若重新供电时X001触点处于开路状态,则M600继电器状态为OFF。
FX 3U 系列有512个特殊用途型辅助继电器,可分成触点型和线圈型两大类。
(1)触点型特殊用途辅助继电器
触点型特殊用途辅助继电器的线圈由PLC自动驱动,用户只可使用其触点,即在编写程序时,只能使用这种继电器的触点,不能使用其线圈。 常用的触点型特殊用途辅助继电器如下。
M8000:运行监视a触点(常开触点),在PLC运行中,M8000触点始终处于接通状态。
M8001:运行监视b触点(常闭触点),它与M8000的逻辑相反,在PLC运行时,M8001触点始终断开。
M8002:初始脉冲a触点,该触点仅在PLC运行开始的一个扫描周期内接通,以后周期断开。
M8003:初始脉冲b触点,它与M8002的逻辑相反。
M8011~M8014:分别是产生10ms、100ms、1s和1min时钟脉冲的特殊用途型辅助继电器。
M8000、M8002、M8012的时序关系如图2-22所示。从图中可以看出,在PLC运行(RUN)时,M8000触点始终是闭合的(图中用高电平表示),而M8002触点仅闭合一个扫描周期,M8012闭合50ms、接通50ms,并且不断重复。
图2-22 M8000、M8002、M8012的时序关系
(2)线圈型特殊用途辅助继电器
线圈型特殊用途辅助继电器由用户程序驱动其线圈,使PLC执行特定的动作。 常用的线圈型特殊用途辅助继电器如下。
M8030:电池LED熄灯。当M8030线圈得电(M8030继电器状态为ON)时,电池电压降低,发光二极管熄灭。
M8033:存储器保持停止。若M8033线圈得电(M8033继电器状态值为ON),在PLC由RUN→STOP时,输出映像存储器(即输出继电器)和数据寄存器的内容仍保持RUN状态时的值。
M8034:所有输出禁止。若M8034线圈得电(即M8034继电器状态为ON),PLC的输出全部禁止。以图2-23所示的程序为例,当X000常开触点断开时,M8034辅助继电器状态为OFF,X001~X003常闭触点闭合使Y000~Y002线圈均得电。如果X000常开触点闭合,M8034辅助继电器状态变为ON,PLC马上让所有的输出线圈失电,故Y000~Y002线圈都失电,即使X001~X003常闭触点仍处于闭合状态。
图2-23 线圈型特殊用途辅助继电器的使用举例
M8039:恒定扫描模式。若M8039线圈得电(即M8039继电器状态为ON),则PLC按数据寄存器D8039中指定的扫描时间工作。
更多特殊用途型辅助继电器的功能可查阅三菱FX系列PLC的编程手册。
状态继电器是编制步进程序的重要软元件,与辅助继电器一样,可以有无数个常开触点和常闭触点, 其表示符号为S,按十进制方式编号,如S0~S9、S10~S19、S20~S499等。
状态继电器可分为初始状态型、一般型和报警用途型。 对于未在步进程序中使用的状态继电器,可以当成辅助继电器一样使用,如图2-24所示,当X001触点闭合时,S10线圈得电(即S10继电器状态为ON),S10常开触点闭合。状态继电器主要用在步进顺序程序中。
图2-24 未使用的状态继电器可以当成辅助继电器一样使用
三菱FX系列PLC支持的状态继电器如表2-10所示。
表2-10 三菱FX系列PLC支持的状态继电器
定时器又称计时器,是用于计算时间的继电器,它可以有无数个常开触点和常闭触点,其定时单位有1ms、10ms、100ms三种。 定时器表示符号为T,也按十进制方式编号。 定时器分为普通型定时器(又称一般型)和停电保持型定时器(又称累计型或积算型定时器)。
三菱FX系列PLC支持的定时器如表2-11所示。
表2-11 三菱FX系列PLC支持的定时器
(续表)
普通型定时器和停电保持型定时器的区别说明如图2-25所示。
图2-25 普通型定时器和停电保持型定时器的区别说明
图2-25(a)所示梯形图中的定时器T0为100ms普通型定时器,其设定计时值为123(123×0.1s=12.3s)。当X000触点闭合时,T0定时器输入为ON,开始计时,如果当前计时值未到123时T0定时器输入变为OFF(X000触点断开),定时器T0马上停止计时,并且当前计时值复位为0;当X000触点再闭合时,T0定时器重新开始计时,当计时值到达123时,定时器T0的状态值变为ON,T0常开触点闭合,Y000线圈得电。普通型定时器的计时值到达设定值时,如果其输入仍为ON,则定时器的计时值保持设定值不变;当输入变为OFF时,其状态值变为OFF,同时当前计时值变为0。
图2-25(b)所示梯形图中的定时器T250为100ms停电保持型定时器,其设定计时值为123(123×0.1s=12.3s)。当X000触点闭合时,T250定时器开始计时,如果当前计时值未到123时出现X000触点断开或PLC断电,则定时器T250停止计时,但当前计时值保持;当X000触点再闭合或PLC恢复供电时,定时器T250在先前保持的计时值基础上继续计时,直到累计计时值到达123时,定时器T250的状态值变为ON,T250常开触点闭合,Y000线圈得电。停电保持型定时器的计时值到达设定值时,不管其输入是否为ON,其状态值仍保持为ON,当前计时值也保持设定值不变,直到用RST指令对其进行复位,状态值才变为OFF,当前计时值才复位为0。
计数器是一种具有计数功能的继电器,它可以有无数个常开触点和常闭触点。计数器可分为加计数器和加/减双向计数器。 计数器表示符号为C,按十进制方式编号。 计数器可分为普通型计数器和停电保持型计数器。
三菱FX系列PLC支持的计数器如表2-12所示。
表2-12 三菱FX系列PLC支持的计数器
加计数器的使用如图2-26所示,C0是一个普通型的16位加计数器。当X010触点闭合时,RST指令将C0计数器复位(状态值变为OFF,当前计数值变为0),X010触点断开后,X011触点每闭合、断开一次(产生一个脉冲),计数器C0的当前计数值就递增1,X011触点第10次闭合时,C0计数器的当前计数值达到设定计数值10,其状态值马上变为ON,C0常开触点闭合,Y000线圈得电。当计数器的计数值达到设定值后,即使再输入脉冲,其状态值和当前计数值也保持不变,直到用RST指令将计数器复位。
图2-26 加计数器的使用
停电保持型计数器的使用方法与普通型计数器基本相似,两者的区别主要在于,普通型计数器在PLC停电时状态值和当前计数值会被复位,上电后重新开始计数,而停电保持型计数器在PLC停电时会保持停电前的状态值和计数值,上电后会在先前保持的计数值基础上继续计数。
三菱FX系列PLC的C200~C234为加/减计数器,这些计数器既可以加计数,又可以减计数,进行何种计数方式分别受特殊辅助继电器M8200~M8234的控制。 比如,C200计数器的计数方式受M8200辅助继电器控制,M8200=1(M8200状态为ON)时,C200计数器进行减计数;M8200=0时,C200计数器进行加计数。
加/减计数器在计数值达到设定值后,如果仍有脉冲输入,其计数值会继续增大或减小,在加计数达到最大值2147483647时,再来一个脉冲,计数值会变为最小值−2147483648;在减计数达到最小值−2147483648时,再来一个脉冲,计数值会变为最大值2147483647,所以加/减计数器是环形计数器。 在计数时,不管加/减计数器进行的是加计数还是减计数,只要其当前计数值小于设定计数值,计数器的状态就为OFF;若当前计数值大于或等于设定计数值,则计数器的状态为ON。
加/减计数器的使用如图2-27所示。
图2-27 加/减计数器的使用
当X012触点闭合时,M8200继电器状态为ON,C200计数器工作方式为减计数,X012触点断开时,M8200继电器状态为OFF,C200计数器工作方式为加计数。当X013触点闭合时,RST指令对C200计数器进行复位,其状态变为OFF,当前计数值也变为0。
C200计数器复位后,将X013触点断开,X014触点每通断一次(产生一个脉冲),C200计数器的计数值就加1或减1。进行加计数,当C200计数器的当前计数值达到设定值(图中由−6增到−5)时,其状态变为ON;进行减计数,当C200计数器的当前计数值减到小于设定值(图中由−5减到−6)时,其状态变为OFF。
计数器的计数值可以直接用常数设定(直接设定),也可以将数据寄存器中的数值设为计数值(间接设定)。 计数器的计数值设定如图2-28所示。
16位计数器的计数值设定如图2-28(a)所示,C0计数器的计数值采用直接设定方式,直接将常数6设为计数值;C1计数器的计数值采用间接设定方式,先用MOV指令将常数10传送到数据寄存器D5中,然后将D5中的值指定为计数值。
32位计数器的计数值设定如图2-28(b)所示,C200计数器的计数值采用直接设定方式,直接将常数43210设为计数值;C201计数器的计数值采用间接设定方式,由于计数值为32位,故需要先用DMOV指令(32位数据传送指令)将常数68000传送到两个16位数据寄存器D6、D5(两个)中,然后将D6、D5中的值指定为计数值,在编程时只需输入低编号数据寄存器,相邻高编号数据寄存器会自动占用。
图2-28 计数器的计数值设定
前面介绍的普通计数器的计数速度较慢,它与PLC的扫描周期有关,一个扫描周期内最多只能增1或减1,如果一个扫描周期内有多个脉冲输入,也只能计1,这样会出现计数不准确,为此PLC内部专门设置了与扫描周期无关的高速计数器(HSC),用于对高速脉冲进行计数。三菱FX 3U/3UC 型PLC最高可对100kHz高速脉冲进行计数,其他型号PLC最高计数频率也可达60kHz。
三菱FX系列PLC有C235~C255共21个高速计数器(均为32位加/减环形计数器),这些计数器使用X000~X007共8个端子作为计数输入或控制端子,这些端子对不同的高速计数器有不同的功能定义,一个端子不能被多个计数器同时使用。 三菱FX系列PLC的高速计数器及使用端子的功能定义见表2-13。 当使用某个高速计数器时,会自动占用相应的输入端子用于指定的功能。
表2-13 三菱FX系列PLC的高速计数器及使用端子的功能定义
(续表)
注:U/D—加计数输入/减计数输入;R—复位输入;S—启动输入;A—A相输入;B—B相输入。
(1)单相单输入高速计数器(C235~C245)
单相单输入高速计数器可分为无启动/复位控制功能的计数器(C235~C240)和有启动/复位控制功能的计数器(C241~C245)。 C235~C245计数器的加、减计数方式分别由M8235~M8245特殊辅助继电器的状态决定,状态为ON时计数器进行减计数,状态为OFF时计数器进行加计数。
单相单输入高速计数器的使用举例如图2-29所示。
图2-29 单相单输入高速计数器的使用举例
在计数器C235输入为ON(X012触点闭合)期间,C235对X000端子(程序中不出现)输入的脉冲进行计数;如果辅助继电器M8235状态为OFF(X010触点断开),C235进行加计数,若M8235状态为ON(X010触点闭合),C235进行减计数。在计数时,不管C235进行加计数还是减计数,如果当前计数值小于设定计数值−5,C235的状态值就为OFF,如果当前计数值大于或等于−5,C235的状态值就为ON;如果X011触点闭合,RST指令会将C235复位,C235当前值变为0,状态值变为OFF。
从图2-29(a)所示程序可以看出,计数器C244采用与C235相同的触点控制,但C244属于有专门启动/复位控制的计数器,当X012触点闭合时,C235计数器输入为ON马上开始计数,而同时C244计数器输入也为ON但不会开始计数,只有X006端子(C244的启动控制端)输入为ON时,C244才开始计数,数据寄存器D1、D0中的值被指定为C244的设定计数值。高速计数器是32位计数器,其设定值占用两个数据寄存器,编程时只要输入低位寄存器即可。对C244计数器复位有两种方法,一是执行RST指令(让X011触点闭合),二是让X001端子(C244的复位控制端)输入为ON。
(2)单相双输入高速计数器(C246~C250)
单相双输入高速计数器有两个计数输入端,一个为加计数输入端,一个为减计数输入端,当加计数端输入上升沿时进行加计数,当减计数端输入上升沿时进行减计数。 C246~C250高速计数器当前的计数方式可通过分别查看M8246~M8250的状态来了解,状态为ON表示正在进行减计数,状态为OFF表示正在进行加计数。
单相双输入高速计数器的使用举例如图2-30所示。当X012触点闭合时,C246计数器启动计数,若X000端子输入脉冲,C246进行加计数,若X001端子输入脉冲,C246进行减计数。只有在X012触点闭合并且X006端子(C249的启动控制端)输入为ON时,C249才开始计数,X000端子输入脉冲时C249进行加计数,X001端子输入脉冲时C249进行减计数。C246计数器可使用RST指令复位,C249既可使用RST指令复位,又可通过让X002端子(C249的复位控制端)输入为ON来复位。
图2-30 单相双输入高速计数器的使用举例
(3)双相双输入高速计数器(C251~C255)
双相双输入高速计数器有两个计数输入端,一个为A相输入端,一个为B相输入端,在A相输入为ON时,B相输入上升沿进行加计数,B相输入下降沿进行减计数。 C251~C255的计数方式分别由M8251~M8255来监控。比如,M8251=1时,C251当前进行减计数;M8251=0时,C251当前进行加计数。
双相双输入高速计数器的使用举例如图2-31所示。
当C251计数器输入为ON(X012触点闭合)时,启动计数,在A相脉冲(由X000端子输入)为ON时对B相脉冲(由X001端子输入)进行计数,B相脉冲上升沿来时进行加计数,B相脉冲下降沿来时进行减计数。如果A、B相脉冲由两相旋转编码器提供,则编码器正转时产生的A相脉冲相位超前B相脉冲,在A相脉冲为ON时B相脉冲只会出现上升沿,如图2-31(b)所示,即编码器正转时进行加计数;在编码器反转时产生的A相脉冲相位落后B相脉冲,在A相脉冲为ON时B相脉冲只会出现下降沿,即编码器反转时进行减计数。
C251计数器进行减计数时,M8251继电器状态为ON,M8251常开触点闭合,Y003线圈得电。在计数时,若C251计数器的当前计数值大于或等于设定计数值,C251状态为ON,C251常开触点闭合,Y002线圈得电。C251计数器可用RST指令复位,其状态变为OFF,将当前计数值清0。
图2-31 双相双输入高速计数器的使用举例
C254计数器的计数方式与C251基本类似,但启动C254计数除要求X012触点闭合(让C254输入为ON)外,还须X006端子(C254的启动控制端)输入为ON。C254计数器既可使用RST指令复位,又可通过让X002端子(C254的复位控制端)输入为ON来复位。
数据寄存器是用来存放数据的软元件,其表示符号为D,按十进制方式编号。一个数据寄存器可以存放16位二进制数,其最高位为符号位(符号位:0—正数,1—负数),一个数据寄存器可存放−32768~+32767范围的数据。 16位数据寄存器的结构如图2-32所示。
图2-32 16位数据寄存器的结构
两个相邻的数据寄存器组合起来可以构成一个32位数据寄存器,能存放32位二进制数,其最高位为符号位(0—正数;1—负数),两个数据寄存器组合构成的32位数据寄存器可存放−2147483648~+2147483647范围的数据。 32位数据寄存器的结构如图2-33所示。
图2-33 32位数据寄存器的结构
三菱FX系列PLC的数据寄存器可分为一般型、停电保持型、文件型和特殊型数据寄存器。 三菱FX系列PLC支持的数据寄存器点数如表2-14所示。
表2-14 三菱FX系列PLC支持的数据寄存器点数
(1)一般型数据寄存器
当PLC从RUN模式进入STOP模式时,所有一般型数据寄存器的数据均全部清0。如果特殊辅助继电器M8033为ON,则PLC从RUN模式进入STOP模式时,一般型数据寄存器的值保持不变。程序中未用的定时器和计数器可以作为数据寄存器使用。
(2)停电保持型数据寄存器
停电保持型数据寄存器具有停电保持功能,当PLC从RUN模式进入STOP模式时,停电保持型数据寄存器的值保持不变。在编程软件中可以设置停电保持型数据寄存器的范围。
(3)文件型数据寄存器
文件型数据寄存器用来设置具有相同软元件编号的数据寄存器的初始值。PLC 上电时和由STOP转换至RUN模式时,文件型数据寄存器中的数据被传送到系统的RAM数据寄存器区。在GX Developer软件的“FX参数设置”对话框中,如图2-20所示,切换到“内存容量设置”选项卡,从中可以设置文件寄存器容量(以块为单位,每块500点)。
(4)特殊型数据寄存器
特殊型数据寄存器的作用是控制和监视PLC内部的各种工作方式和软元件,如扫描时间、电池电压等。在PLC上电和由STOP转换至RUN模式时,这些数据寄存器会被写入默认值。更多特殊型数据寄存器的功能可查阅三菱FX系列PLC的编程手册。
扩展寄存器和扩展文件寄存器是扩展数据寄存器的软元件,只有FX 3GA 、FX 3G 、FX 3GE 、FX 3GC 、FX 3U 和FX 3UC 系列PLC才有这两种寄存器。
对于FX 3GA 、FX 3G 、FX 3GE 、FX 3GC 系列PLC,扩展寄存器有R0~R23999共24000个(位于内置RAM中),扩展文件寄存器有ER0~ER23999共24000个(位于内置EEPROM或安装存储盒的EEPROM中)。对于FX 3U 、FX 3UC 系列PLC,扩展寄存器有R0~R32767共32768个(位于内置电池保持的RAM区域),扩展文件寄存器有ER0~ER32767共32768个(位于安装存储盒的EEPROM中)。
扩展寄存器、扩展文件寄存器与数据寄存器一样,都是16位,相邻的两个寄存器可组成32位。扩展寄存器可用普通指令访问,扩展文件寄存器需要用专用指令访问。
三菱FX系列PLC有V0~V7和Z0~Z7共16个变址寄存器,它们都是16位寄存器。 变址寄存器V、Z实际上是一种特殊用途的数据寄存器,其作用是改变元件的编号(变址)。 例如,V0=5,若执行D20V0,则实际被执行的元件为D25(D20+5)。变址寄存器可以像其他数据寄存器一样进行读/写,需要进行32位操作时,可将V、Z串联使用(Z为低位,V为高位)。
三菱FX系列PLC的常数主要有三种类型:十进制常数、十六进制常数和实数常数。
十进制常数表示符号为K,如K234表示十进制数234,数值范围为:−32768~+32767(16位),−2147483648~+2147483647(32位)。
十六进制常数表示符号为H,如H2C4表示十六进制数2C4,数值范围为:H0~HFFFF(16位),H0~HFFFFFFFF(32位)。
实数常数表示符号为E,如E1.234、E1.234+2分别表示实数1.234和1.234×10 2 ,数值范围为:−1.0×2 128 ~−1.0×2 −126 、0、1.0×2 −126 ~1.0×2 128 。