1.2 三菱FX小型机简介
FX系列PLC是由三菱公司近年来推出的高性能小型PLC,如图1-1所示,以逐步替代三菱公司原F1、F2系列PLC产品。其中,FX2是1991年推出的产品,FX0是在FX2之后推出的超小型PLC,近几年又连续推出了将众多功能凝集在超小型机壳内的FX0S、FX1S、FX0N、FX1N、FX2N、FX2NC、FX3U、FX3UC等系列PLC,具有较高的性能价格比,应用广泛。它们采用整体式和模块式相结合的叠装式结构。
图1-1 三菱FX2N PLC
1.2.1 三菱FX系列型号的含义
FX系列PLC型号的含义如下:
其中系列名称:如0、2、0S、1S、0N、1N、2N、2NC等。
单元类型:M——基本单元;
E——输入/输出混合扩展单元;
EX——扩展输入模块;
EY——扩展输出模块。
输出方式:R——继电器输出;
S——晶闸管输出;
T——晶体管输出。
特殊品种:D——DC电源,DC输出;
UA1/UL——AC电源,AC(AC100~120V)输入或AC输出模块;
H——大电流输出扩展模块;
V——立式端子排的扩展模块;
C——接插口输入/输出方式;
F——输入滤波时间常数为1ms的扩展模块。
如果特殊品种一项无符号,为AC电源、DC输入、横式端子排、标准输出。
例如FX2N—32MT—D表示FX2N系列,32个I/O点基本单位,晶体管输出,使用直流电源,24V直流输出型。
1.2.2 三菱FX系列PLC的技术指标
FX系列PLC的一般技术指标包括基本性能指标、输入技术指标及输出技术指标,其具体规定见表1-1、表1-2及表1-3。
表1-1 FX系PLC的基本性能指标列
表1-2 三菱FX系列PLC的输入技术指标
表1-3 FX系列PLC的输出技术指标
1.2.3 三菱FX系列PLC的硬件系统
1.硬件系统构成
PLC硬件主要由中央处理单元、存储器、输入单元、输出单元、电源单元、编程器、扩展接口、编程器接口和存储器接口组成,其结构框图如图1-2所示。
图1-2 FX系列PLC的结构框图
三菱FX系列PLC输入、输出接口电路如图1-3、图1-4所示。
图1-3 FX PLC输入接口电路
a)输入接口电路b)输入接口电路的等效回路
FX系列PLC输出电路共有三种类型:继电器型、晶体管型、晶闸管型,如图1-5所示。其中,继电器型可用于交、直流输出;晶体管型用于直流输出;晶闸管型用于交流输出。
2.硬件模块种类
(1)FX2N系列的基本单元FX2N系列是FX家族中最常用的PLC系列。
图1-4 FX PLC输出接口电路
a)输出接口电路b)输出接口电路的等效回路
图1-5 FX系列PLC继电器、晶体管、晶闸管输出接负载电路
a)继电器输出b)晶体管输出c)晶闸管输出
FX2N基本单位有16/32/48/64/80/128点,6个基本FX2N单元中的每一个单元都可以通过I/O扩展单元扩充为256 I/O点,其基本单元见表1-4。
表1-4 FX2N系列的基本单元
FX2N具有丰富的元件资源,有3072点辅助继电器。提供了多种特殊功能模块,可实现过程控制位置控制。有多种RS-232C/RS-422/RS-485串行通信模块或功能扩展板支持网络通信。FX2N具有较强的数学指令集,使用32位处理浮点数。具有方根和三角几何指令,满足数学功能要求很高的数据处理。
(2)FX2N的I/O扩展FX2N子系列的扩展单元见表1-5。FX2N子系列的扩展模块见表1-6。
表1-5 FX2N子系列扩展单元
表1-6 FX2N子系列的扩展模块
此外,FX系列还可将一块功能扩展板安装在基本单元内,无需外部的安装空间。例如:FX1N-4EX-BD就是可用来扩展4个输入点的扩展板。
(3)FX系列的特殊功能模块
1)模拟量输入/输出模块。
①模拟量输入/输出模块FX0N-3A。该模块具有2路模拟量输入(0~10V直流或4~20mA直流)通道和1路模拟量输出通道。其输入通道数字分辨率为8位,A-D的转换时间为100μs,在模拟与数字信号之间采用光电隔离,适用于FX1N、FX2N、FX2NC子系列,占用8个I/O点。
②模拟量输入模块FX2N-2AD。该模块为2路电压输入(DC 0~10V,DC 0~5V)或电流输入(DC 4~20mA),12位高精度分辨率,转换的速度为2.5ms/通道。这个模块占用8个I/O点,适用于FX1N、FX2N、FX2NC子系列。
③模拟量输入模块FX2N-4AD。该模块有4个输入通道,其分辨率为12位。可选择电流或电压输入,选择通过用户接线来实现。可选模拟值范围为DC±10V(分辨率位5mV)或4~20mA、-20~20mA(分辨率位20μA)。转换的速度最高为6ms/通道。FX2N-4AD占用8个I/O点。
④模拟量输出模块FX2N-2DA。该模块用于将12位的数字量转换成2点模拟输出。输出的形式可为电压,也可为电流。其选择取决于接线不同。电压输出时,两个模拟输出通道输出信号为DC 0~10V,DC 0~5V;电流输出时为DC 4~20mA。分辨率为2.5mV(DC 0~10V)和4μA(4~20mA)。数字到模拟的转换特性可进行调整。转换速度为4ms/通道。本模块需占用8个I/O点。适用于FX1N、FX2N、FX2N子系列。
⑤模拟量输出模块FX2N-4DA。该模块有4个输出通道。提供了12位高精度分辨率的数字输入。转换速度为2.1ms/4通道,使用的通道数变化不会改变转换速度。其他的性能与FX2N-2DA相似。
⑥模拟量输入模块FX2N-4AD-PT。该模块与PT100型温度传感器匹配,将来自4个箔温度传感器(PT100,3线,100Ω)的输入信号放大,并将数据转换成12位可读数据,存储在主机单元中。摄氏度和华氏度数据都可读取。它内部有温度变送器和模拟量输入电路,可以矫正传感器的非线性。读分辨率为0.2~0.3℃。转换速度为15ms/每通道。所有的数据传送和参数设置都可以通过FX2N-4AD-PT的软件组态完成,由FX2N的TO/FROM应用指令来实现。FX2N-4AD-PT占用8个I/O点,可用于FX1N、FX2N、FX2NC子系统,为温控系统提供了方便。
⑦模拟量输入模块FX2N-4AD-TC。该模块与热电耦型温度传感器匹配,将来自4个热电耦传感器的输入信号放大,并将数据转换成12位的可读数据,存储在主单元中,摄氏和华氏数据均可读取,读分辨率在类型为K时为0.2℃;类型为J时为0.3℃,可与K型(-100~1200℃)和J型(-100~600℃)热电耦配套使用,4个通道分别使用K型或J型,转换速度为240ms/通道。所有的数据传输和参数设置都可以通过FX2N-4AD-TC的软件组态完成,占用8个I/O点。
2)PID过程控制模块。FX2N-2LC温度调节模块是用在温度控制系统中。该模块配有2通道的温度输入和2通道晶体管输出,即一块能组成两个温度调节系统。模块提供了自调节的PID控制和PI控制,控制的运行周期为500ms,占用8个I/O点数,可用于FX1N、FX2N、FX2NC子系列。
3)定位控制模块。在机械工作运行过程中,工作的速度与精度往往存在矛盾,为提高机械效率而提高速度时,停车控制上便出现了问题。所以进行定位控制是十分必要的。举一个简单的例子,电动机带动的机械由启动位置返回原位,如以最快的速度返回,由于高速停车惯性大,则在返回原位时偏差必然较大,因此先减速便可保证定位的准确性。
在位置控制系统中常会采用伺服电动机和步进电动机作为驱动装置。即可采用开环控制,也可采用闭环控制。对于步进电动机,我们可以采用调节发送脉冲速度改变机械的工作速度。使用FX系列PLC,通过脉冲输出形式的定位单元或模块,即可实现一点或多点的定位。下面介绍FX2N系列的脉冲输出模块和定位控制模块。
①脉冲输出模块FX2N-1PG。FX2N-1PG脉冲发生器单元可以完成一个对独立轴的定位,这是通过向伺服或步进电动机的驱动放大器提供指定数量的脉冲来实现的。FX2N-1PG只用于FX2N子系列,用FROM/TO指令设定各种参数,读出定位值和运行速度。该模块占用8个I/O点。输出最高为100kHz的脉冲串。
②定位控制器FX2N-10GM。FX2N-10GM为脉冲序列输出单元,它是单轴定位单元,不仅能处理单速定位和中断定位,而且能处理复杂的控制,如多速操作。FX2N-10GM最多可有8个连接在FX2N系列PLC上,最大输出脉冲为200kHz。
③定位控制器FX2N-20GM。一个FX2N-20GM可控制两个轴。可执行直线插补、圆弧插补或独立的两轴定位控制,最大输出脉冲串为200kHz(在插补期间,最大为100kHz)。FX2N-10GM、FX2N-20GM均具有流程图的编程软件可使程序的开发具有可视性。
④可编程凸轮开关FX2N-1RM-E-SET。在机械传动控制中经常要对角位置检测。在不同的角度位置时发出不同的导通、关断信号。过去采用机械凸轮开关。机械式开关虽精度高但易磨损。FX2N-1RM-SET可编程凸轮开关可用来取代机械凸轮开关实现高精度角度位置检测。配套的转角传感器电缆长度最长可达100m。应用时与其他可编程凸轮开关主体、无刷分解器等一起可进行高精度的动作角度设定和监控,其内部有EEPROM,无需电池。可储存8种不同的程序。FX2N-1RM-SET可接在FX2N上,也可单独使用。FX2N最多可接3块。它在程序中占用PLC 8个I/O点。
4)数据通信模块。PLC的通信模块是用来完成与别的PLC、其他智能控制设备或计算机之间的通信。以下将简单介绍FX系列通信用功能扩展板、适配器及通信模块。
①通信扩展板FX2N-232-BD。FX2N-232-BD是以RS-232C传输标准连接PLC与其他设备的接口板,如图1-6所示。诸如个人计算机、条码阅读器或打印机等。可安装在FX2N内部。其最大传输距离为15m,最高波特率为19200bit/s,利用专用软件可实现对PLC运行状态监控,也可方便地由个人计算机向PLC传送程序。
图1-6 通信扩展板FX2N-232-BD
②通信接口模块FX2N-232IF。FX2N-232IF连接到FX2N系列PLC上,可实现与其他
配有RS-232C接口的设备进行全双工串行通信。例如个人计算机、打印机、条形码读出器等。在FX2N系列上最多可连接8块FX2N-232IF模块。用FROM/TO指令收发数据。最大传输距离为15m,最高波特率为19200bit/s,占用8个I/O点。数据长度、串行通信波特率等都可由特殊数据寄存器设置。
③通信扩展板FX2N-485-BD。FX2N-485-BD用于RS-485通信方式。它可以应用于无协议的数据传送。FX2N-485-BD在原协议通信方式时,利用RS指令在个人计算机、条码阅读器、打印机之间进行数据传送。传送的最大传输距离为50m,最高波特率也为19200bit/s。每一台FX2N系列PLC可安装一块FX2N-485-BD通信板。除利用此通信板实现与计算机的通信外,还可以用它实现两台FX2N系列PLC之间的并联。
④通信扩展板FX2N-422-BD。FX2N-422-BD应用于RS-422通信。可连接FX2N系列的PLC,并作为编程或控制工具的一个端口。可用此接口在PLC上连接PLC的外部设备、数据存储单元和人机界面。利用FX2N-422-BD可连接两个数据存储单元(DU)或一个DU系列单元和一个编程工具,但一次只能连接一个编程工具。每一个基本单元只能连接一个FX2N-422-BD,且不能与FX2N-485-BD或FX2N-232-BD一起使用。
⑤接口模块MSLSECNET/MINI。采用MSLSECNET/MINI接口模块,FX系列PLC可用作A系列PLC的就地控制站,构成集散控制系统。
以上仅对FX系列通信模块做了简单的介绍,具体的应用在以后的章节中再做详述。
5)高速计数模块。PLC中普通的计数器由于受到扫描周期的限制,其最高的工作频率不高,一般仅有几十kHz,而在工业应用中有时超过这个工作频率。高速计数模块就是为了满足这一要求,它可达到对几十k以上,甚至MHz的脉冲计数。FX2N内部设有高速计数器,系统还配有FX2N-1HC高速计数器模块,可作为2相50kHz一通道的高速计数,通过PLC的指令或外部输入可进行计数器的复位或启动,其技术指标见表1-7。
表1-7 FX2N-1HC高速计数器模块技术指标
1.2.4 三菱FX系列PLC的软件系统
PLC是一种工业计算机,不光要有硬件,软件也是必不可少的。
1.FX系列PLC的工作模式
PLC有运行(RUN)与停止(STOP)两种基本的工作模式。当系统断电或运行开关拨到STOP状态时,PLC停止工作。PLC工作过程分为以下几个阶段:
1)内部处理阶段;
2)通信服务阶段;
3)输入处理阶段;
4)程序处理阶段;
5)输出处理阶段。
用户程序的运行过程为循环扫描方式,PLC扫描输入、程序运算、实时输出如此循环工作。PLC完成一个工作周期所需时间称为扫描时间,如图1-7所示。
循环扫描的工作方式是PLC的一大特点,也可以说PLC是“串行”工作的,这和传统的继电器控制系统“并行”工作有质的区别,PLC的串行工作方式避免了继电器控制系统中触点竞争和时序失配的问题。
2.PLC的软元件概述
PLC内部有许多具有不同功能的软元件,实际上这些元件是由电子电路和存储器组成的。
图1-7 PLC的扫描工作过程
FX系列PLC中几种常用型号PLC的内部软继电器及编号见表1-8。FX系列PLC编程元件的编号由字母和数字组成,其中输入继电器和输出继电器用八进制数字编号,其他均采用十进制数字编号。为了能全面地了解FX系列PLC的内部软继电器,本节以FX2N为背景进行介绍。
表1-8 FX系列PLC的内部软继电器及编号
(续)
(1)输入继电器(X)输入继电器与输入端相连,它是专门用来接收PLC外部开关信号的元件。PLC通过输入接口将外部输入信号状态(接通时为“1”,断开时为“0”)读入并存储在输入映象寄存器中。如图1-3b所示为输入继电器X的等效电路。
输入继电器必须由外部信号驱动,不能用程序驱动,所以在程序中不可能出现其线圈。由于输入继电器(X)为输入映象寄存器中的状态,所以其触点的使用次数不限。
FX系列PLC的输入继电器以八进制进行编号,FX2N输入继电器的编号范围为X000~X267(184点)。注意,基本单元输入继电器的编号是固定的,扩展单元和扩展模块是按与基本单元最靠近开始,顺序进行编号。例如:基本单元FX2N-64M的输入继电器编号为X000~X037(32点),如果接有扩展单元或扩展模块,则扩展的输入继电器从X040开始编号。
(2)输出继电器(Y)输出继电器是用来将PLC内部信号输出传送给外部负载(用户输出设备)。输出继电器线圈是由PLC内部程序的指令驱动,其线圈状态传送给输出单元,再由输出单元对应的硬触点来驱动外部负载。如图1-4b所示为输出继电器Y的等效电路。
每个输出继电器在输出单元中都对应有唯一一个常开硬触点,但在程序中供编程的输出继电器,不管是常开还是常闭触点,都可以无数次地使用。
FX系列PLC的输出继电器也是八进制编号,其中FX2N编号范围为Y000~Y267(184点)。与输入继电器一样,基本单元的输出继电器编号是固定的,扩展单元和扩展模块的编号也是按与基本单元最靠近开始,顺序进行编号。
在实际使用中,输入/输出继电器的数量,要看具体系统的配置情况。
(3)辅助继电器(M)辅助继电器是PLC中数量最多的一种继电器,一般的辅助继电器与继电器控制系统中的中间继电器相似。
辅助继电器不能直接驱动外部负载,负载只能由输出继电器的外部触点驱动。辅助继电器的常开与常闭触点在PLC内部编程时可无限次地使用。
辅助继电器采用M与十进制数共同组成编号(只有输入/输出继电器才用八进制数)。
1)通用辅助继电器(M0~M499)。FX2N系列共有500点通用辅助继电器。通用辅助继电器在PLC运行时,如果电源突然断电,则全部线圈均“OFF”。当电源再次接通时,除了因外部输入信号而变为“ON”的以外,其余的仍将保持“OFF”状态,它们没有断电保护功能。通用辅助继电器常在逻辑运算中作为辅助运算、状态暂存、移位等。
根据需要可通过程序设定,将M0~M499变为断电保持辅助继电器。
2)断电保持辅助继电器(M500~M3071)。FX2N系列有M500~M3071共2572个断电保持辅助继电器。它与普通辅助继电器不同的是具有断电保护功能,即能记忆电源中断瞬时的状态,并在重新通电后再现其状态。它之所以能在电源断电时保持其原有的状态,是因为电源中断时用PLC中的锂电池保持它们映像寄存器中的内容。其中M500~M1023可由软件将其设定为通用辅助继电器。
3)特殊辅助继电器。PLC内有大量的特殊辅助继电器,它们都有各自的特殊功能。FX2N系列中有256个特殊辅助继电器,可分成触点型和线圈型两大类
①触点型。其线圈由PLC自动驱动,用户只可使用其触点。例如:
M8000:运行监视器(在PLC运行中接通),M8001与M8000相反逻辑。
M8002:初始脉冲(仅在运行开始时瞬间接通),M8003与M8002相反逻辑。
M8011、M8012、M8013和M8014分别是产生10ms、100ms、1s和1min时钟脉冲的特殊辅助继电器。
②线圈型。由用户程序驱动线圈后PLC执行特定的动作。例如:
M8033:若使其线圈得电,则PLC停止时保持输出映象存储器和数据寄存器内容。
M8034:若使其线圈得电,则将PLC的输出全部禁止。
M8039:若使其线圈得电,则PLC按D8039中指定的扫描时间工作。
(4)状态器(S)状态器用来纪录系统运行中的状态,是编制顺序控制程序的重要编程元件,它与后述的步进顺控指令STL配合应用。
状态器有五种类型:初始状态器S0~S9共10点;回零状态器S10~S19共10点;通用状态器S20~S499共480点;具有状态断电保持的状态器有S500~S899共400点;供报警用的状态器(可用作外部故障诊断输出)S900~S999共100点。
在使用状态器时应注意:
1)状态器与辅助继电器一样有无数的常开和常闭触点;
2)状态器不与步进顺控指令STL配合使用时,可作为辅助继电器M使用;
3)FX2N系列PLC可通过程序设定将S0~S499设置为有断电保持功能的状态器。
(5)定时器(T)PLC中的定时器(T)相当于继电器控制系统中的通电型时间继电器。它可以提供无限对常开常闭延时触点。定时器中有一个设定值寄存器(一个字长)、一个当前值寄存器(一个字长)和一个用来存储其输出触点的映象寄存器(一个二进制位),这3个量使用同一地址编号。但使用场合不一样,意义也不同。
FX2N系列中定时器可分为通用定时器、积算定时器两种。它们是通过对一定周期的时钟脉冲进行累计而实现定时的,时钟脉冲周期有1ms、10ms、100ms三种,当所计数达到设定值时触点动作。设定值可用常数K或数据寄存器D的内容来设置。
1)通用定时器。通用定时器的特点是不具备断电的保持功能,即当输入电路断开或停电时定时器复位。通用定时器有100ms和10ms通用定时器两种。
①100ms通用定时器(T0~T199)。共200点,其中T192~T199为子程序和中断服务程序专用定时器。这类定时器是对100ms时钟累积计数,设定值为1~32767,所以其定时范围为0.1~3276.7s。
②10ms通用定时器(T200~T245)。共46点。这类定时器是对10ms时钟累积计数,设定值为1~32767,所以其定时范围为0.01~327.67s。
2)积算定时器。积算定时器具有计数累积的功能。在定时过程中如果断电或定时器线圈“OFF”,积算定时器将保持当前的计数值(当前值),通电或定时器线圈“ON”后继续累积,即其当前值具有保持功能,只有将积算定时器复位,当前值才变为0。
①1ms积算定时器(T246~T249)。共4点,是对1ms时钟脉冲进行累积计数的,定时的时间范围为0.001~32.767s。
②100ms积算定时器(T250~T255)。共6点,是对100ms时钟脉冲进行累积计数的,定时的时间范围为0.1~3276.7s。
(6)计数器(C)FX2N系列计数器分为内部计数器和高速计数器两类。
1)内部计数器。内部计数器是在执行扫描操作时对内部信号(如X、Y、M、S、T等)进行计数。内部输入信号的接通和断开时间应比PLC的扫描周期稍长。
①16位增计数器(C0~C199)。共200点,其中C0~C99为通用型,C100~C199共100点为断电保持型(断电保持型即断电后能保持当前值待通电后继续计数)。这类计数器为递加计数,应用前先对其设置一设定值,当输入信号(上升沿)个数累加到设定值时,计数器动作,其常开触点闭合、常闭触点断开。计数器的设定值为1~32767(16位二进制),设定值除了用常数K设定外,还可间接通过指定数据寄存器设定。
②32位增/减计数器(C200~C234)。共有35点32位加/减计数器,其中C200~C219(共20点)为通用型,C220~C234(共15点)为断电保持型。这类计数器与16位增计数器除位数不同外,还在于它能通过控制实现加/减双向计数。设定值范围均为-214783648~+214783647(32位)。
C200~C234是增计数还是减计数,分别由特殊辅助继电器M8200~M8234设定。对应的特殊辅助继电器被置为“ON”时为减计数,置为“OFF”时为增计数。
计数器的设定值与16位计数器一样,可直接用常数K或间接用数据寄存器D的内容作为设定值。在间接设定时,要用编号紧连在一起的两个数据计数器。
2)高速计数器(C235~C255)。高速计数器与内部计数器相比除允许输入频率高之外,应用也更为灵活。高速计数器均有断电保持功能,通过参数设定也可变成非断电保持。FX2N有C235~C255共21点高速计数器。适合用来做高速计数器输入的PLC输入端口有X0~X7。X0~X7不能重复使用,即某一个输入端已被某个高速计数器占用,它就不能再用于其他高速计数器,也不能用作它用。各高速计数器对应的输入端见表1-9。
高速计数器可分为三类:
①单相单计数输入高速计数器(C235~C245)。其触点动作与32位增/减计数器相同,可进行增或减计数(取决于M8235~M8245的状态)。
表1-9 高速计数器对应的输入端
(续)
表1-9中:U表示加计数输入,D为减计数输入,B表示B相输入,A为A相输入,R为复位输入,S为启动输入。X6、X7只能用作启动信号,而不能用作计数信号。
②单相双计数输入高速计数器(C246~C250)。这类高速计数器具有两个输入端,一个为增计数输入端,另一个为减计数输入端。利用M8246~M8250的“ON/OFF”动作可监控C246~C250的增记数/减计数动作。
③双相高速计数器(C251~C255)。A相和B相信号决定计数器是增计数还是减计数。当A相为“ON”时,B相由“OFF”到“ON”,则为增计数;当A相为“ON”时,若B相由“ON”到“OFF”,则为减计数。
注意:高速计数器的计数频率较高,它们的输入信号的频率受两方面的限制。一是全部高速计数器的处理时间。因它们采用中断方式,所以计数器用的越少,则可计数频率就越高;二是输入端的响应速度,其中X0、X2、X3最高频率为10kHz,X1、X4、X5最高频率为7 kHz。
(7)数据寄存器(D)PLC在进行输入/输出处理、模拟量控制、位置控制时,需要许多数据寄存器存储数据和参数。数据寄存器为16位,最高位为符号位。可用两个数据寄存器来存储32位数据,最高位仍为符号位。数据寄存器有以下几种类型:
1)通用数据寄存器(D0~D199)。共200点。当M8033为“ON”时,D0~D199有断电保护功能;当M8033为“OFF”时,则它们无断电保护,在这种情况下PLC由“RUN”→“STOP”,或停电时,数据全部清零。
2)断电保持数据寄存器(D200~D7999)。共7800点,其中D200~D511(共12点)有断电保持功能,可以利用外部设备的参数设定改变通用数据寄存器与有断电保持功能数据寄存器的分配;D490~D509供通信用;D512~D7999的断电保持功能不能用软件改变,但可用指令清除它们的内容。根据参数设定可以将D1000以上作为文件寄存器。
3)特殊数据寄存器(D8000~D8255)。共256点。特殊数据寄存器的作用是用来监控PLC的运行状态。如扫描时间、电池电压等。未加定义的特殊数据寄存器,用户不能使用。具体可参见用户手册。
4)变址寄存器(V/Z)。FX2N系列PLC有V0~V7和Z0~Z7共16个变址寄存器,它们都是16位的寄存器。变址寄存器V/Z实际上是一种特殊用途的数据寄存器,其作用相当于微机中的变址寄存器,用于改变元件的编号(变址),例如V0=5,则执行D20V0时,被执行的编号为D25(D20+5)。变址寄存器可以像其他数据寄存器一样进行读写,需要进行32位操作时,可将V、Z串联使用(Z为低位,V为高位),如图1-8所示。
图1-8 变址寄存器应用实例
(8)指针(P、I)在FX系列中,指针用来指示分支指令的跳转目标和中断程序的入口标号。分为分支用指针、输入中断指针及定时中断指针和记数中断指针。
1)分支用指针(P0~P127)。FX2N有P0~P127共128点分支用指针。分支指针用来指示跳转指令(CJ)的跳转目标或子程序调用指令(CALL)调用子程序的入口地址。
2)中断指针(I0□□~I8□□)。
中断指针是用来指示某一中断程序的入口位置。执行中断后遇到IRET(中断返回)指令,则返回主程序。中断用指针有以下三种类型:
①输入中断用指针(I00□~I50□)。共6点。它是用来指示由特定输入端的输入信号而产生中断的中断服务程序的入口位置,这类中断不受PLC扫描周期的影响,可以及时处理外界信息。输入中断用指针的编号格式如下:
例如:I101为当输入X1从“OFF→ON”变化时,执行以I101为标号后面的中断程序,并根据IRET指令返回。
②定时器中断用指针(I6□□~I8□□)。共3点。它是用来指示周期定时中断的中断服务程序的入口位置,这类中断的作用是PLC以指定的周期定时执行中断服务程序,定时循环处理某些任务。处理的时间也不受PLC扫描周期的限制。□□表示定时范围,可在10~99ms中选取。
③计数器中断用指针(I010~I060)。共6点。它用在PLC内置的高速计数器中。根据高速计数器的计数当前值与计数设定值之关系确定是否执行中断服务程序。它常用于利用高速计数器优先处理计数结果的场合。
(9)常数(K、H)K是表示十进制整数的符号,主要用来指定定时器或计数器的设定值及应用功能指令操作数中的数值。H是表示十六进制数,主要用来表示应用功能指令的操作数值。例如20用十进制表示为K20,用十六进制则表示为H14。
3.三菱FX2N系列PLC指令系统简介
FX2N系列PLC有基本逻辑指令27条、步进指令2条、功能指令100多条,其中包含了有些子系列PLC的20条基本逻辑指令。
第一部分:逻辑指令27条
(1)取指令与输出指令(LD/LDI/LDP/LDF/OUT)
1)LD(取指令)。一个常开触点与左母线连接的指令,每一个以常开触点开始的逻辑行都用此指令。
2)LDI(取反指令)。一个常闭触点与左母线连接指令,每一个以常闭触点开始的逻辑行都用此指令。
3)LDP(取上升沿指令)。与左母线连接的常开触点的上升沿检测指令,仅在指定位元件的上升沿(由“OFF→ON”)时接通一个扫描周期。
4)LDF(取下降沿指令)。与左母线连接的常闭触点的下降沿检测指令。
5)OUT(输出指令)。对线圈进行驱动的指令,也称为输出指令。
取指令与输出指令的使用说明:
①LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算。
②LDP、LDF指令仅在对应元件有效时维持一个扫描周期的接通。
③LD、LDI、LDP、LDF指令的目标元件为X、Y、M、T、C、S。
④OUT指令可以连续使用若干次(相当于线圈并联),对于定时器和计数器,在OUT指令之后应设置常数K或数据寄存器。
⑤OUT指令目标元件为Y、M、T、C和S,但不能用于X。
(2)触点串联指令(AND/ANI/ANDP/ANDF)
1)AND(与指令)。一个常开触点串联连接指令,完成逻辑“与”运算。
2)ANI(与反指令)。一个常闭触点串联连接指令,完成逻辑“与非”运算。
3)ANDP。上升沿检测串联连接指令。
4)ANDF。下降沿检测串联连接指令。
触点串联指令的使用说明:
①AND、ANI、ANDP、ANDF都是指单个触点串联的指令,串联次数没有限制,可反复使用。
②AND、ANI、ANDP、ANDF的目标元件为X、Y、M、T、C和S。
(3)触点并联指令(OR/ORI/ORP/ORF)
1)OR(或指令)。用于单个常开触点的并联,实现逻辑“或”运算。
2)ORI(或非指令)。用于单个常闭触点的并联,实现逻辑“或非”运算。
3)ORP。上升沿检测并联连接指令。
4)ORF。下降沿检测并联连接指令。
触点并联指令的使用说明:
①OR、ORI、ORP、ORF指令都是指单个触点的并联,并联触点的左端接到LD、LDI、LDP或LPF处,右端与前一条指令对应触点的右端相连。触点并联指令连续使用的次数不限。
②OR、ORI、ORP、ORF指令的目标元件为X、Y、M、T、C、S。
(4)块操作指令(ORB/ANB)
1)ORB(块或指令)。用于两个或两个以上的触点串联连接的电路之间的并联。
ORB指令的使用说明:
①几个串联电路块并联连接时,每个串联电路块开始时应该用LD或LDI指令。
②有多个电路块并联回路,如对每个电路块使用ORB指令,则并联的电路块数量没有限制。
③ORB指令也可以连续使用,但这种程序写法不推荐使用,LD或LDI指令的使用次数不得超过8次,也就是ORB只能连续使用8次以下。
2)ANB(块与指令)。用于两个或两个以上触点并联连接的电路之间的串联。
ANB指令的使用说明:
①并联电路块串联连接时,并联电路块的开始均用LD或LDI指令。
②多个并联回路块连接按顺序和前面的回路串联时,ANB指令的使用次数没有限制。也可连续使用ANB,但与ORB一样,使用次数在8次以下。
(5)置位与复位指令(SET/RST)
1)SET(置位指令)。它的作用是使被操作的目标元件置位并保持。
2)RST(复位指令)。使被操作的目标元件复位并保持清零状态。
SET、RST指令的使用说明:
①SET指令的目标元件为Y、M、S,RST指令的目标元件为Y、M、S、T、C、D、V、Z。RST指令常被用来对D、Z、V的内容清零,还用来复位积算定时器和计数器。
②对于同一目标元件,SET、RST可多次使用,顺序也可随意,但最后执行者有效。
(6)微分指令(PLS/PLF)
1)PLS(上升沿微分指令)。在输入信号上升沿产生一个扫描周期的脉冲输出。
2)PLF(下降沿微分指令)。在输入信号下降沿产生一个扫描周期的脉冲输出。
PLS、PLF指令的使用说明:
①PLS、PLF指令的目标元件为Y和M。
②使用PLS时,仅在驱动输入为“ON”后的一个扫描周期内目标元件为“ON”;使用PLF指令时只是利用输入信号的下降沿驱动,其他与PLS相同。
(7)主控指令(MC/MCR)
1)MC(主控指令)。用于公共串联触点的连接。执行MC后,左母线移到MC触点的后面。
2)MCR(主控复位指令)。它是MC指令的复位指令,即利用MCR指令恢复原左母线的位置。
在编程时常会出现这样的情况,多个线圈同时受一个或一组触点的控制,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,使用主控指令就可以解决这一问题。
MC、MCR指令的使用说明:
①MC、MCR指令的目标元件为Y和M,但不能用特殊辅助继电器。MC占3个程序步,MCR占两个程序步。
②主控触点在梯形图中与一般触点垂直,主控触点是与左母线相连的常开触点,是控制一组电路的总开关。与主控触点相连的触点必须用LD或LDI指令。
③MC指令的输入触点断开时,在MC和MCR之内的积算定时器、计数器、用复位/置位指令驱动的元件保持其之前的状态不变。非积算定时器和计数器,用OUT指令驱动的元件将复位。
④在一个MC指令区内若再使用MC指令称为嵌套。嵌套级数最多为8级,编号按N0→N1→N2→N3→N4→N5→N6→N7顺序增大,每级的返回用对应的MCR指令,从编号大的嵌套级开始复位。
(8)堆栈指令(MPS/MRD/MPP)堆栈指令是FX系列中新增的基本指令,用于多重输出电路,为编程带来便利。在FX系列PLC中有11个存储单元,它们专门用来存储程序运算的中间结果,被称为栈存储器。
1)MPS(进栈指令)。将运算结果送入栈存储器的第一段,同时将先前送入的数据依次移到栈的下一段。
2)MRD(读栈指令)。将栈存储器的第一段数据(最后进栈的数据)读出且该数据继续保存在栈存储器的第一段,栈内的数据不发生移动。
3)MPP(出栈指令)。将栈存储器的第一段数据(最后进栈的数据)读出且该数据从栈中消失,同时将栈中其他数据依次上移。
堆栈指令的使用说明:
①堆栈指令没有目标元件。
②MPS和MPP必须配对使用。
③由于栈存储单元只有11个,所以栈的层次最多为11层。
(9)逻辑反、空操作与结束指令(INV/NOP/END)
1)INV(逻辑反指令)。执行该指令后将原来的运算结果取反。
2)NOP(空操作指令)。不执行操作,但占一个程序步。执行NOP时并不做任何事,有时可用NOP指令短接某些触点或用NOP指令将不要的指令覆盖。当PLC执行了清除用户存储器操作后,用户存储器的内容全部变为空操作指令。
3)END(结束指令)。表示程序结束。若程序的最后不写END指令,则PLC不管实际用户程序多长,都从用户程序存储器的第一步执行到最后一步;若有END指令,当扫描到END时,则结束执行程序,这样可以缩短扫描周期。在调试程序时,可在程序中插入若干END指令,将程序划分成若干段,在确定前面程序段无误后,依次删除END指令,直至调试结束。
第二部分:步进指令
(1)步进指令(STL/RET) 步进指令是专为顺序控制而设计的指令。在工业控制领域里,许多的控制过程都可用顺序控制的方式来实现,使用步进指令实现顺序控制既方便实现又便于阅读、修改。
FX2N中有两条步进指令:STL(步进触点指令)和RET(步进返回指令)。
STL和RET指令只有与状态器S配合才能具有步进功能。如STL S200表示状态常开触点,称为STL触点,它在梯形图中的符号为,它没有常闭触点。我们用每个状态器S记录一个工步,例STL S200有效(为“ON”),则进入S200表示的一步(类似于本步的总开关),开始执行本阶段该做的工作,并判断进入下一步的条件是否满足。一旦结束本步信号为“ON”,则关断S200进入下一步,如S201步。RET指令是用来复位STL指令的。执行RET后将重回母线,退出步进状态。
(2)状态转移图 一个顺序控制过程可分为若干个阶段,也称为步或状态,每个状态都有不同的动作。当相邻两状态之间的转换条件得到满足时,就将实现转换,即由上一个状态转换到下一个状态执行。我们常用状态转移图(功能表图)描述这种顺序控制过程。
状态转移图中的每一步包含3个内容:本步驱动的内容、转移条件及指令的转换目标。
步进指令的使用说明:
1)STL触点是与左侧母线相连的常开触点,某STL触点接通,则对应的状态为活动步。
2)与STL触点相连的触点应用LD或LDI指令,只有执行完RET后才返回左侧母线。
3)STL触点可直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈。
4)由于PLC只执行活动步对应的电路块,所以使用STL指令时允许双线圈输出(顺控程序在不同的步可多次驱动同一线圈)。
5)STL触点驱动的电路块中不能使用MC和MCR指令,但可以用CJ指令。
6)在中断程序和子程序内,不能使用STL指令。
第三部分:功能指令
本章以FX2N为例,介绍功能指令的应用。
(1)功能指令分类表
功能指令分类表见表1-10。
表1-10 功能指令分类表
(2)功能指令的基本规则
1)功能指令的表示形式(见图1-9)。
图1-9 功能指令示例
[S.]叫做源操作数,其内容不随指令执行而变化,在可利用变址修改软元件的情况下,用加“.”符号的[S.]表示,源的数量多时,用[S1.]、[S2.]等表示。
[D.]叫做目标操作数,其内容随指令执行而改变,如果需要变址操作时,用加“.”符号的[D.]表示,目标的数量多时,用[D1.]、[D2.]等表示。
[n.]叫做其他操作数,既不作源操作数,又不作目标操作数,常用来表示常数或者作为源操作数或目标操作数的补充说明。可用十进制的K、十六进制的H和数据寄存器D来表示。在需要表示多个这类操作数时,可用[n1]、[n2]等表示,若具有变址功能,则用加“.”符号的[n.]表示。此外其他操作数还可用[m]来表示。
2)数据长度和指令类型。
①数据长度。功能指令可处理16位数据和32位数据,如1-10所示。
图1-10 功能指令示例
②指令类型。FX系列PLC的功能指令有连续执行型和脉冲执行型两种形式。连续执行型功能指令如图1-11所示。
图1-11 连续执行型功能指令
脉冲执行型功能指令如图1-12所示。
图1-12 脉冲执行型功能指令
3)操作数。操作数按功能分为源操作数、目标操作数和其他操作数;按组成形式分为位元件、字元件和常数。
①软元件
位软元件:只处理开关(“ON/OFF”)信息的元件,如X、Y、M、S;
字软元件:处理数据的元件,如D。
②位软元件的组合
位软元件组合表示数据:4个位元件一组,代表4位BCD码,也表示1位十进制数;用KnMm表示,K为十进制,n为十进制位数,也是位元件的组数,M为位元件,m为位元件的首地址。
(3)功能指令介绍
1)程序流程指令。程序流程指令是与程序流程控制相关的指令,程序流程指令见表1-11。
表1-11程序流程指令
2)传送与比较指令。传送与比较指令见表1-12。
表1-12 传送与比较指令
3)算术与逻辑运算指令。算术与逻辑运算指令包括算术运算和逻辑运算,共有10条指令,见表1-13。
表1-13 算术与逻辑运算指令
4)循环与移位指令。循环与移位指令是使字数据、位组合的字数据向指定方向循环、移位的指令,见表1-14。
表1-14循环与移位指令
5)数据处理指令。数据处理指令是可以进行复杂的数据处理和实现特殊用途的指令,见表1-15。
表1-15 数据处理指令
6)高速处理指令。高速处理指令能充分利用PLC的高速处理能力进行中断处理,达到利用最新的输入/输出信息进行控制。高速处理指令见表1-16。
表1-16 高速处理指令
7)方便指令。方便指令是利用最简单的指令完成较为复杂的控制指令,见表1-17。
表1-17 方便指令
8)外部设备I/O指令(见表1-18)。
表1-18 外部设备I/O指令
9)外部设备SER指令。在本小节中仅介绍RS、ASCI、HEX、CCD、PID指令。外部设备SER指令见表1-19。
表1-19 外部设备SER指令
10)触点比较指令。它使用LD、AND、OR与关系运算符组合而成,是通过对两个数值的关系运算来实现触点通和断的指令,总共有18个,见表1-20。
表1-20 触点比较指令