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