您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页三菱编程资料

三菱编程资料

来源:化拓教育网
第三章 FX系列可编程控制器及指令系统

第一节 FX系列PLC硬件配置及性能指标

FX系列PLC是由三菱公司近年来推出的高性能小型可编程控制器,以逐步替代三菱公司原F、F1、F2系列PLC产品。其中FX2是1991年推出的产品,FX0 是在FX2之后推出的超小型PLC,近几年来又连续推出了将众多功能凝集在超小型机壳内的FX0S、FX1S、FX0N、FX1N、FX2N、FX2NC等系列PLC,具有较高的性能价格比,应用广泛。它们采用整体式和模块式相结合的叠装式结构。

一、FX系列PLC型号的说明 FX系列PLC型号的含义如下:

FX □ ─ □ □ □ ─ □ 系列名称 输入输出总点数 特殊品种 单元类型 输出方式 其中系列名称:如0、2、0S、1S、ON、1N、2N、2NC等

单元类型:M ──基本单元

E ──输入输出混合扩展单元 Ex ──扩展输入模块 EY ──扩展输出模块

输出方式:R ──继电器输出

S ──晶闸管输出

T ──晶体管输出

特殊品种:D ──DC电源,DC输出

A1 ──AC电源,AC(AC100~120V)输入或AC输出模块 H ──大电流输出扩展模块 V ──立式端子排的扩展模块 C ──接插口输入输出方式

F ──输入滤波时间常数为1ms的扩展模块

如果特殊品种一项无符号,为AC电源、DC输入、横式端子排、标准输出。

例如FX2N-32MT-D表示FX2N系列,32个I/O点基本单位,晶体管输出,使用直流电源,24V直流输出型。

二、FX系列PLC硬件配置

FX系列PLC的硬件包括基本单元、扩展单元、扩展模块、模拟量输入输出模块、各种

特殊功能模块及外部设备等。

(一)FX系列PLC的基本单元

基本单元是构成PLC系统的核心部件,内有CPU、存储器、I/O模块、通信接口和扩展接口等。由于FX系列PLC有众多的子系列,现以FX0S,FX0N,FX2N三个子系列为例加以介绍。

1. FX0S系列的基本单元

FX0S系列的功能简单,价格便宜,适用于小型开关量控制系统,它只有基本单元,没有扩展单元。其基本单元如表3-1所示。

表3-1 FX0S系列的基本单元 型 号 AC电源100~240v 继电器输出 FX0s-10MR-001 FX0s-14MR-001 FX0s-20MR-001 FX0s-30MR-001 晶体管输出 FX0s-10MT FX0s-14MT FX0s-20MT FX0s-30MT DC电源24v 继电器输出 FX0s-10MR-D FX0s-14MR-D FX0s-20MR-D FX0s-30MR-D FX0s-14MR-D12 FX0s-30MR-D12 继电器输出 FX0s-10MT-D FX0s-14MT-D FX0s-20MT-D FX0s-30MT-D 输入 点数 6 8 12 16 8 16 输出 点数 4 6 8 14 6 14 FX0S容量为800步,有20条基本指令,两条步进指令,35种50条功能指令。FX0S编程元件包括500多点辅助继电器,点状态寄存器,56点定时器和一个模拟定时器,有16个16位的计数器及4点1相7KHZ或1点2相32位高速加/减计数器,61点16位数据寄存器,还有点转移用跳步指针及4点中断指针。

2.FX0N系列的基本单元

FX0N的基本单元共有12种,最大的I/O点数为60,它可带3种扩展单元,7种扩展模块,可组成24~128个I/O点的系统。其基本单元如表3-2所示。

表3-2 FX0N系列的基本单元 型号 AC电源100~240V 继电器输出 FX0n-24MR-001 FX0n-40MR-001 晶体管输出 FX0n-24MT FX0n-40MT DC电源24V 继电器输出 继电器输出 14 24 36 10 16 24 输入 点数 输出 扩展模点数 块可用点数 32 32 32 FX0n-24MR-D FX0n-24MT-D FX0n-40MR-D FX0n-40MT-D FX0n-60MR-001 FX0n-600MT FX0n-60MR-D FX0n-60MT-D FX0N的EEPROM用户存储器容量为2000步。基本指令有20条,步进指令2条,应用指令36种51条。FX0N有500多点的辅助继电器,128点状态寄存器,95个定时器和45个

计数器(其中高速计数器13个)还有大量的数据寄存器,76点指针用于跳转,中断和嵌套。FX0N有较强的通信功能,可与内置RS-232C通信接口的设备通信,如使用FX0N-485APP模块,可与计算机实现1:N(最多8台)的通信。FX0N还备有8位模拟量输入输出模块(2路输入,1路输出)用以实现模拟量的控制。由于FX0N体积小,功能强,使用灵活,特别适用于由于安装尺寸的而难以采用其他PLC的机械设备上。

3.FX2N系列的基本单元

FX2N系列是FX家族中最先进的PLC系列。

FX2N基本单位有16/32/48/65/80/128点,六个基本FX2N单元中的每一个单元都可以通过I/O扩展单元扩充为256I/O点,其基本单元如表3-3所示。

表3-3 FX2N系列的基本单元

型号 继电器输出 FX2n-16MR-001 FX2n-32MR-001 FX2n-48MR-001 FX2n-MR-001 FX2n-80MR-001 FX2n-128MR-001 可控硅输出 FX2n-16MS FX2n-32MS FX2n-48MS FX2n-MS FX2n-80MS 晶体管输出 FX2n-16MT FX2n-32MT FX2n-48MT FX2n-MT FX2n-80MT FX2n-128MT 输入 点数 8 16 24 32 40 输出 点数 8 16 24 32 40 扩展模块可用点数 24~32 24~32 48~ 48~ 48~ 48~ FX2N具有丰富的元件资源,有3072点辅助继电器。提供了多种特殊功能模块,可实现过程控制位置控制。有多种RS—232C/RS—422/RS—485串行通信模块或功能扩展板支持网络通信。FX2N具有较强的数学指令集,使用32位处理浮点数。具有方根和三角几何指令满足数学功能要求很高数据处理。

(二)FX系列的I/O扩展单元和扩展模块

FX系列具有较为灵活的I/O扩展功能,可利用扩展单元及扩展模块实现I/O扩展。 1.FX0N的I/O扩展

FX0N系列共有三种扩展单元,如表3-4所示。FX0N的扩展模块如表3-5所示。

表3-4 FX0N系列的扩展单元

型号 FX0n-40ER FX0n-40ET FX0n-40ER-D 总I/O数目 40 40 40 输入 数目 24 24 24 电压 24V直流 24V直流 24V直流

类型 漏型 漏型 漏型 数目 16 16 16 输出 类型 继电器 晶体管 继电器(直流)

表3-5 FX0N系列的扩展模块

型号 FX0n-8ER FX0n-8EX FX0n-16EX FX0n-8EYR FX0n-8EYT FX0n-16EYR FX0n-16EYT 总I/O数目 8 8 16 8 8 16 16 输入 数目 4 8 16 电压 24V直流 24V直流 24V直流 类型 漏型 漏型 漏型 数目 4 8 8 16 16 输出 类型 继电器 继电器 晶体管 继电器 晶体管 注:FX0N的扩展模块也可在FX2N等子系列上应用。 2.FX2N的I/O扩展

FX2N系列的扩展单元如表3-6所示。FX2N系列的扩展模块如表3-7所示。

表3-6 FX2N子系列扩展单元

型号 FX2n-32ER FX2n-32ET FX2n-48ER FX2n-48ET 总I/O数目 32 32 48 48 输入 数目 16 16 24 24 24 24 电压 24V直流 24V直流 24V直流 24V直流 24V直流 24V直流 类型 漏型 漏型 漏型 漏型 漏型 漏型 输出 数目 16 16 24 24 24 24 类型 继电器 晶体管 继电器 晶体管 继电器(直流) 继电器(直流) FX2n-48ER-D 48 FX2n-48ET-D 48 表3-7 FX2N子系列的扩展模块

型号 总I/O数目 数目 FX2n-16EX FX2n-16EYT FX2n-16EYR 16 16 16 16 输入 电压 24V直流 类型 漏型 数目 16 16 输出 类型 晶体管 继电器 此外,FX系列还可将一块功能扩展板安装在基本单元内,无需外部的安装空间。例如:FX1N—4EX—BD就是可用来扩展4个输入点的扩展板。

(三)FX系列的特殊功能模块 1.模拟量输入输出模块

(1)模拟量输入输出模块FX0N-3A 该模块具有2路模拟量输入(0~10V直流或4~

20mA直流)通道和1路模拟量输出通道。其输入通道数字分辨率为8位,A/D的转换时间为100µs,在模拟与数字信号之间采用光电隔离,适用于FX1N、FX2N、FX2NC子系列,占用8个I/O点。

(2)模拟量输入模块FX2N-2AD 该模块为2路电压输入(0~10V DC,0~5V DC)或电流输入(4~20mA DC),12位高精度分辨率,转换的速度为2.5ms/通道。这个模块占用8个I/O点,适用于FX1N、FX2N、FX2NC子系列。

(3)模拟量输入模块FX2N-4AD 该模块有4个输入通道,其分辨率为12位。可选择电流或电压输入,选择通过用户接线来实现。可选为模拟值范围为±10VDC(分辨率位5mV)或4~20mA、-20~20mA(分辨率位20µA)。转换的速度最高位6ms/通道。FX2N-4AD占用8个I/O点。

(4)模拟量输出模块FX2N-2DA 该模块用于将12位的数字量转换成2点模拟输出。输出的形式可为电压,也可为电流。其选择取决于接线不同。电压输出时,两个模拟输出通道输出信号为0~10V DC,0~5V DC;电流输出时为4~20mA DC。分辨率为2.5mV(0~10V DC)和4µA(4~20mA)。数字到模拟的转换特性可进行调整。转换速度为4ms/通道。本模块需占用8个I/O点。适用于FX1N、FX2N、FX2N子系列。

(5)模拟量输出模块FX2N-4DA 该模块有4个输出通道。提供了12位高精度分辨率的数字输入。转换速度为2.1ms/4通道,使用的通道数变化不会改变转换速度。其他的性能与FX2N-2DA相似。

(6)模拟量输入模块FX2N-4AD-PT 该模块与PT100型温度传感器匹配,将来自四个箔温度传感器(PT100,3线,100Ω)的输入信号放大,并将数据转换成12位可读数据,存储在主机单元中。摄氏度和华氏度数据都可读取。它内部有温度变送器和模拟量输入电路,可以矫正传感器的非线性。读分辨率为0.2℃~0.3℃。转换速度为15ms/每通道。所有的数据传送和参数设置都可以通过FX2N-4AD-PT的软件组态完成,由FX2N的TO/FROM应用指令来实现。FX2N-4AD-PT占用8个I/O点,可用于FX1N、FX2N、FX2NC子系统,为温控系统提供了方便。

(7)模拟量输入模块FX2N-4AD-TC 该模块与热电耦型温度传感器匹配,将来自四个热电耦传感器的输入信号放大,并将数据转换成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.定位控制模块

在机械工作运行过程中工作的速度与精度往往存在矛盾,为提高机械效率而提高速度时,停车控制上便出现了问题。所以进行定位控制是十分必要的。举一个简单的例子,电机带动的机械由启动位置返回原位,如以最快的速度返回,由于高速停车惯性大,则在返回原位时偏差必然较大,如图3-1a所示;若采用如图3-1a所示的方式先减速便可保证定位的准确性。

图3-1 定位控制模块

在位置控制系统中常会采用伺服电机和步进电机作为驱动装置。即可采用开环控制,也可采用闭环控制。对于步进电机,我们可以采用调节发送脉冲的速度改变机械的工作速度。使用FX系列PLC,通过脉冲输出形式的定位单元或模块,即可实现一点或多点的定位。下面介绍FX2N系列的脉冲输出模块和定位控制模块。

(1)脉冲输出模块FX2N-1PG FX2N-1PG脉冲发生器单元可以完成一个对轴的定位,这是通过向伺服或步进马达的驱动放大器提供指定数量的脉冲来实现的。FX2N-1PG只用于FX2N子系列,用FROM/TO指令设定各种参数,读出定位值和运行速度。该模块占用8个I/O点。输出最高为100KHZ的脉冲串。

(2)定位控制器FX2N-10GM FX2N-10GM为脉冲序列输出单元,它是单轴定位单元,不仅能处理单速定位和中断定位,而且能处理复杂的控制。如多速操作。FX2N-10GM最多可有8个连接在FX2N系列PLC上。最大输出脉冲为200KHZ。

(3)定位控制器FX2N-20GM 一个FX2N-20GM可控制两个轴。可执行直线插补、圆弧插补或的两轴定位控制,最大输出脉冲串为200KHZ(在插补期间,最大为100KHZ)。FX2N-10GM、FX2N-20GM均具用流程图的编程软件可使程序的开发具有可视性。

(4)可编程凸轮开关FX2N-1RM-E-SET 在机械传动控制中经常要对角位置检测。在不同的角度位置时发出不同的导通、关断信号。过去采用机械凸轮开关。机械式开关虽精度高但易磨损。FX2N-1RM-SET可编程凸轮开关可用来取代机械凸轮开关实现高精度角度位置检测。配套的转角传感器电缆长度最长可达100m。应用时与其他可编程凸轮开关主体、无刷分解器等一起可进行高精度的动作角度设定和监控,其内部有EEPROM,无需电池。可储存8种不同的程序。FX2N-1RM-SET可接在FX2N上,也可单独使用。FX2N最多可接3块。它在程序中占用PLC8个I/O点。

4.数据通信模块

PLC的通信模块是用来完成与别的PLC,其他智能控制设备或计算机之间的通信。以下简单介绍FX系列通信用功能扩展板、适配器及通信模块。

(1)通信扩展板FX2N-232-BD FX2N-232-BD是以RS-232C传输标准连接PLC与其他设备的接口板。诸如个人计算机、条码阅读器或打印机等。可安装在FX2N内部。其最大

传输距离为15米,最高波特率为19200bit/s,利用专用软件可实现对PLC运行状态监控,也可方便的由个人计算机向PLC传送程序。

(2)通信接口模块FX2N-232IF FX2N-232IF连接到FX2N系列PLC上,可实现与其它配有RS232C接口的设备进行全双工串行通信。例如个人计算机,打印机,条形码读出器等。在FX2N系列上最多可连接8块FX2N-232IF模块。用FROM/TO指令收发数据。最大传输距离为15米,最高波特率为19200bit/s,占用8个I/O点。数据长度、串行通信波特率等都可由特殊数据寄存器设置。

(3)通信扩展板FX2N-485-BD FX2N-485-BD-用于RS-485通信方式。它可以应用于无协议的数据传送。FX2N-485-BD在原协议通信方式时,利用RS指令在个人计算机、条码阅读器、打印机之间进行数据传送。传送的最大传输距离为50米,最高波特率也为19200bit/s。每一台FX2N系列PLC可安装一块FX2N-485-BD通信板。除利用此通信板实现与计算机的通信外,还可以用它实现两台FX2N系列PLC之间的并联。

(4)通信扩展板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一起使用。

(5)接口模块MSLSECNET/MINI

采用MSLSECNET/MINI接口模块,FX系列PLC可用作为A系列PLC的就地控制站,构成集散控制系统。

以上仅FX系列通信模块作了简单的介绍,具体的应用在以后的章节中再做详述。 5.高速计数模块

PLC中普通的计数器由于受到扫描周期的,其最高的工作频率不高,一般仅有几十KHZ,而在工业应用中有时超过这个工作频率。高速计数模块就是为了满足这一要求,它可达到对几十K以上,甚至MHZ的脉冲计数。FX2N内部设有高速计数器,系统还配有FX2N-1HC高速计数器模块,可作为2相50KHZ一通道的高速计数,通过PLC的指令或外部输入可进行计数器的复位或启动,其技术指标如表3-8所示。

表3-8 FX2N-1HC高速计数器模块技术指标

项目 信号等级 频率 描述 5V12V和24V依赖于连接端子。线驱动器输出型连接到5V端子上 单相单输入:不超过50KHZ 单相双输入:每个不超过50KHZ 双相双输入:不超过50KHZ(1倍数);不超过25KHZ(2倍数); 不超过12.5KHZ(4倍数) 计数器范围 32位二进制计数器:-21474838至+21474837 16位二进制计数器;0至65535 计数方式 自动时向上/向下(单相双输入或双相双输入);当工作在单相单输入方式时,向上/向下由一个PLC或外部输入端子确定。 比较类型 YH:直接输出,通过硬件比较器处理。 YS:软件比较器处理后输出,最大延迟时间300ms。 输出类型 辅助功能 NPN开路输出2点5到24V直流每点0.5A 可以通过PLC的参数来设置模式和比较结果。 可以监测当前值、比较结果和误差状态。 占用的I/O点数 基本单元提供的电源 适用的控制器 尺寸(宽)×(厚)×(高) 质量(重量) 这个块占用8输入或输出点(输入或输出均可) 5V、90mA直流(主单元提供的内部电源或电源扩展单元) FX1N/FX2N/FX2NC(需要FX2NC-CNV-IF) 55×87×90mm(2.71×3.43×3.54英寸) 0.3Kg(0.66Ibs) (四)FX系列PLC的编程器及其他外部设备 1.FX系列编程器

编程器是PLC的一个重要外围设备,用它将用户程序写入PLC用户程序存储器。它一方面对PLC进行编程,另一方面又能对PLC的工作状态进行监控。随着PLC技术的发展,编程语言的多样化,编程器的功能也不断增加。

(1)简易编程器 FX型PLC的简易编程器也较多,最常用的是FX-10P-E和FX-20P-E手持型简易编程器。他们具有体积小、重量轻、价格便宜、功能强的特点。有在线编程和离线编程两种方式。显示采用液晶显示屏,分别显示2行和4行字符,配有ROM写入器接口、存储器卡盒接口。编程器可用指令表的形式读出、写入、插入和删除指令,进行用户程序的输入和编辑。可监视位编程元件的ON/OFF状态和字编程元件中的数据。如计数器、定时器的当前值及设定值、内部数据寄存器的值以及PLC内部的其他信息。有关编程器的使用详见第八章。

(2)PC机+编程开发软件 FX系列还有一些编程开发软件,如GX开发器。它可以用于生成涵盖所有三菱PLC设备软件包,使用该软件可以为FX、A等系列PLC生成程序。他在Windows操作平台上运行,便于操作和维护,可以用梯形图,语句表等进行编程,程序兼容性强。FX-PCS/WIN-E-C编程软件包也是一个专门用来开发FX系列PLC程序的软件包。可用梯形图、指令表和顺序功能图来写入和编辑程序,并能进行各种编程方式的互换。它运用于Windows操作系统,这对于调试操作和维护操作来说可以提高工作效率,并具有较强的兼容性。

2.其他外部设备

在一个PLC控制系统中,人机界面也非常重要。还有一些辅助设备,如:打印机、EPROM写入器外存模块等。

(五)FX系列PLC各单元模块的连接

FX系列PLC吸取了整体式和模块式PLC的优点,各单元间采用叠装式连接,即PLC的基本单元、扩展单元和扩展模块深度及高度均相同,连接时不用基板,仅用扁平电缆连接,构成一个整齐的长方体。使用FRON/TO指令的特殊功能模块,如模拟量输入和输出模块、高速计数模块等,可直接连接到FX系列的基本单元,或连到其它扩展单元、扩展模块的右边。根据它们与基本单元的距离,对每个模块按0~7的顺序编号,最多可连接8个特殊功能模块。

三、FX系列PLC的性能指标

在使用FX系列PLC之前,需对其的主要性能指标进行认真查阅,只有选择了符合要求的产品才能达到既可靠又经济的要求。

1.FX系列PLC性能比较

以上我们已对FX系列PLC的基本单元、扩充单元及特殊功能模块等做了介绍,尽管FX系列中FXOS、FX1S、FX1N、FX2N等在外形尺寸上相差不多,但在性能上有较大的差别,其中FX2N和FX2NC子系列,在FX系列PLC中功能最强、性能最好。FX系列PLC主要产品的性能比较如表3-9所示。

表3-9 FX系列PLC主要产品的性能比较

型号 FX0S FX0N FX1N FX2N I/0点数 10~30 24~128 14~128 16~256 基本指令执行时间 1.6~3.6μs 1.6~3.6μs 0.55~0.7μs 0.08μs 功能指令 50 55 177 298 模拟模块量 无 有 有 有 通信 无 较强 较强 强 2.FX系列PLC的环境指标

F X系列PLC的环境指标要求如表3-10所示。

表3-10 F X系列PLC的环境指标

环境温度 环境湿度 防震性能 使用温度0~550C,储存温度-20~700C 使用时35%~85%RH(无凝露) JISC0911标准,10~55HZ,0.5㎜(最大2G),3轴方向各2次(但用DIN导轨安装时为0.5G) 抗冲击性能 JISC0912标准,10G,3轴方向各3次 抗噪声能力 用噪声模拟器产生电压为1000伏(峰-峰值)、脉宽1цs、30~100Hz的噪声 绝缘耐压 绝缘电阻 AC1500V,1min(接地端与其他端子间) 5MΏ以上(DC500V兆欧表测量,接地端与其他端子间) 接地电阻 使用环境 第三种接地,如接地有困难,可以不接 无腐蚀性气体,无尘埃。 3.F X系列PLC的输入技术指标

FX系列PLC对输入信号的技术要求如表3-11所示。

表3-11 FX系列PLC的输入技术指标

输入端 项目 X0~X3(FX0S) X4~X17(FX0S) X0~X7(FX0N、1S、1N、2N) 输入电压 输入电流 输入阻抗 输入ON电流 输入OFF电流 输入响应时间 8.5mA 2.7kΩ DC24V±10% 7mA 3.3 kΩ 5mA 4.3 kΩ 3.5mA以上 1.5mA以下 9mA 1 kΩ DC12V±10% 10mA 1.2 kΩ X10~ (FX0N、 1S、1N、2N) X0~X3(FX0S) X4~X17(FX0S) 4.5mA以上 4.5mA以上 1.5mA以下 1.5mA以下 4.5mA以上 4.5mA以上 1.5mA以下 1.5mA以下 约10ms, 其中:FX0S、FX1N的X0~X17和FX0N的X0~X7为0~15ms可变,FX2N的X0~X17为0~60ms可变 输入信号形式 电路隔离 输入状态显示 无电压触点,或NPN集电极开路晶体管 光电耦合器隔离 输入ON时LED灯亮 4.FX系列PLC的输出技术指标

FX系列PLC对输出信号的技术要求如表3-12所示。

表3-12 FX系列PLC的输出技术指标

项目 外部电源 继电器输入 AC250V或DC30V以下 晶闸管输出 AC85~240V 晶体管输出 DC5V~30V 0.5A/1点、0.8A/4点 最大电阻负载 2A/1点、8A/4点、8A/8点 0.3A/点、0.8A/4点 (1A/1点2A/4点) (0.1A/1点、0.4A/4点) (1A/1点、2A/4点) (0.3A/1点、1.6A/16点) 最大感性负载 最大灯负载 80VA 100W 15VA/AC100V、 30VA/AC200 V 30W 1.5W/DC24V 12W/DC24V 开路漏电流 ─ 1mA/AC100V 2mA/AC200v ON:1ms,OFF:10ms 光电晶闸管隔离 输出ON时LED亮 0.1mA以下 ON:<0.2ms、OFF:<0.2ms 大电流OFF为0.4ms以下 光电耦合器隔离 响应时间 电路隔离 输出动作显示

约10ms 继电器隔离 第二节 FX系列PLC的编程元件

不同厂家、不同系列的PLC,其内部软继电器(编程元件)的功能和编号也不相同,因此用户在编制程序时,必须熟悉所选用PLC的每条指令涉及编程元件的功能和编号。

FX系列中几种常用型号PLC的编程元件及编号如表3-13所示。FX系列PLC编程元件的编号由字母和数字组成,其中输入继电器和输出继电器用八进制数字编号,其它均采用十进制数字编号。为了能全面了解FX系列PLC的内部软继电器,本节以FX2N为背景进行介绍的。

表3-13 FX系列PLC的内部软继电器及编号

PLC型号 编程元件种类 输入继电器X (按8进制编号) FX0S X0~X17 (不可扩展) Y0~Y15 (不可扩展) M0~M495 FX1S X0~X17 (不可扩展) FX0N X0~X43 (可扩展) FX1N X0~X43 (可扩展) FX2N (FX2NC) X0~X77 (可扩展) 输出继电器Y (按8进制编号) Y0~Y15 (不可扩展) M0~M383 ~Y0~Y27 (可扩展) Y0~Y27 (可扩展) Y0~Y77 (可扩展) 辅助 普通用 M0~M383 M0~M383 M384M511 ~M384M1535 ~M0~M499 M500M3071 ~继电器 保持用 M 特殊用 状态 M496~M511 M384M511 M8000~M8255(具体见使用手册) S0~S9 - S0~S9 - S0~S9 - S0~S9 S10~S19 S20~S499 S500~S9 S900~S999 T0~T199 初始状态用 S0~S9 返回原点用 - S10~S63 - - T0~T49 T24~T49 - - 寄存器 普通用 S 保持用 信号报警用 100ms 10ms S10~S127 S10~S127 S10~S999 S0~S127 - T0~T62 T32~T62 T63 S0~S127 - T0~T62 S0~S999 - T0~T199 T32~T62 T200~T245 T200~T245 T63 - - - 定时器 1ms T 1ms累积 T246~T249 T246~T249 100ms累积 16位增计数(普通) 16位增计数(保持) C - C0~C13 - C0~C15 - C0~C15 T250~T255 T250~T255 C0~C15 C0~C99 C14、C15 C16~C31 C16~C31 C16~C199 C100~C199 计数器 32位可逆计数(普通) 32位可逆计数(保持) 高速计数器 数据 寄存器 D - - - C200~C219 C200~C219 - - - C220~C234 C220~C234 C235~C255(具体见使用手册) D0~D127 D128D255 ~D0~D127 D128D255 ~D0~D127 D128D7999 ~D0~D199 D200~D7999 16位普通用 D0~D29 16位保持用 D30、D31 16位特殊用 D8000~D8069 D8000~D8255 D8000~D8255 D8000~D8255 D8000~D8195 16位变址用 V Z V0~V7 Z0~Z7 N0~N7 P0~P63 I00*~I50* 定时器中断 计数器中断 - - - - V Z N0~N7 P0~P63 I00*~I30* - - - - I6**~I8** I010~I060 V0~V7 Z0~Z7 N0~N7 P0~P127 V0~V7 Z0~Z7 N0~N7 P0~P127 指针 嵌套用 跳转用 N0~N7 P0~P63 I00*~I30* N、P、I 输入中断用 I00*~I50* I00*~I50* 常数 K、H 16位 32位 K:-32,768~32,767 H:0000~FFFFH K:-2,147,483,8~2,147,483,7 H:00000000~FFFFFFFF 一、输入继电器(X)

输入继电器与输入端相连,它是专门用来接受PLC外部开关信号的元件。PLC通过输入接口将外部输入信号状态(接通时为“1”,断开时为“0”)读入并存储在输入映象寄存器中。如图3-2所示为输入继电器X1的等效电路。

图3-2 输入继电器的等效电路

输入继电器必须由外部信号驱动,不能用程序驱动,所以在程序中不可能出现其线圈。由于输入继电器(X)为输入映象寄存器中的状态,所以其触点的使用次数不限。

FX系列PLC的输入继电器以八进制进行编号,FX2N输入继电器的编号范围为X000~X267(184点)。注意,基本单元输入继电器的编号是固定的,扩展单元和扩展模块是按与基本单元最靠近开始,顺序进行编号。例如:基本单元FX2N-M的输入继电器编号为X000~X037(32点),如果接有扩展单元或扩展模块,则扩展的输入继电器从X040开始编号。

二、输出继电器(Y)

输出继电器是用来将PLC内部信号输出传送给外部负载(用户输出设备)。输出继电器线圈是由PLC内部程序的指令驱动,其线圈状态传送给输出单元,再由输出单元对应的硬触点来驱动外部负载。如图3-3所示为输出继电器Y0的等效电路。

图3-3 输出继电器的等效电路

每个输出继电器在输出单元中都对应有维一一个常开硬触点,但在程序中供编程的输出继电器,不管是常开还是常闭触点,都可以无数次使用。

FX系列PLC的输出继电器也是八进制编号其中FX2N编号范围为Y000~Y267(184点)。与输入继电器一样,基本单元的输出继电器编号是固定的,扩展单元和扩展模块的编号也是按与基本单元最靠近开始,顺序进行编号。

在实际使用中,输入、输出继电器的数量,要看具体系统的配置情况。 三、辅助继电器(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-4所示。

图3-4 断电保持辅助继电器的作用

小车的正反向运动中,用M600、M601控制输出继电器驱动小车运动。X1、X0为限位输入信号。运行的过程是X0= ON→M600=ON→Y0=ON→小车右行→停电→小车中途停止→上电(M600=ON→Y0=ON)再右行→X1=ON→M600=OFF、M601=ON→Y1=ON(左行)。可见由于M600和M601具有断电保持,所以在小车中途因停电停止后,一旦电源恢复,M600或M601仍记忆原来的状态,将由它们控制相应输出继电器,小车继续原方向运动。若不用断电保护辅助继电器当小车中途断电后,再次得电小车也不能运动。

3.特殊辅助继电器

PLC内有大量的特殊辅助继电器,它们都有各自的特殊功能。FX2N系列中有256个特殊辅助继电器,可分成触点型和线圈型两大类

(1)触点型 其线圈由PLC自动驱动,用户只可使用其触点。例如: M8000:运行监视器(在PLC运行中接通),M8001与M8000相反逻辑。 M8002:初始脉冲(仅在运行开始时瞬间接通),M8003与M8002相反逻辑。

M8011、M8012、M8013和M8014分别是产生10ms、100ms 、1s和1min时钟脉冲的特殊辅助继电器。

M8000、M8002、M8012的波形图如图3-5所示。

图3-5 M8000、M8002、M8012波形图

(2)线圈型 由用户程序驱动线圈后PLC执行特定的动作。例如:

M8033:若使其线圈得电,则PLC停止时保持输出映象存储器和数据寄存器内容。 M8034:若使其线圈得电,则将PLC的输出全部禁止。

M8039:若使其线圈得电,则PLC按D8039中指定的扫描时间工作。 四、状态器(S)

状态器用来纪录系统运行中的状态。是编制顺序控制程序的重要编程元件,它与后述的步进顺控指令STL配合应用。

如图3-6所示,我们用机械手动作简单介绍状态器S的作用。当启动信号X0有效时,机械手下降,到下降限位X1开始夹紧工件,加紧到位信号X2为ON时,机械手上升到上限X3则停止。整个过程可分为三步,每一步都用一个状态器S20、S21、S22记录。每个状态器都有各自的置位和复位信号(如S21由X1置位,X2复位),并有各自要做的操作(驱动

Y0、Y1、Y2)。从启动开始由上至下随着状态动作的转移,下一状态动作则上面状态自动返回原状。这样使每一步的工作互不干扰,不必考虑不同步之间元件的互锁,使设计清晰简洁。

图3-6 状态器(S)的作用

状态器有五种类型:初始状态器S0~S9共10点;回零状态器S10~S19共10点;通用状态器S20~S499共480点;具有状态断电保持的状态器有S500~S9,共400点;供报警用的状态器(可用作外部故障诊断输出)S900~S999共100点。

在使用用状态器时应注意:

1)状态器与辅助继电器一样有无数的常开和常闭触点;

2)状态器不与步进顺控指令STL配合使用时,可作为辅助继电器M使用; 3)FX2N系列PLC可通过程序设定将S0~S499设置为有断电保持功能的状态器。 五、定时器(T)

PLC中的定时器(T)相当于继电器控制系统中的通电型时间继电器。它可以提供无限对常开常闭延时触点。定时器中有一个设定值寄存器(一个字长),一个当前值寄存器(一个字长)和一个用来存储其输出触点的映象寄存器(一个二进制位),这三个量使用同一地址编号。但使用场合不一样,意义也不同。

FX2N系列中定时器时可分为通用定时器、积算定时器二种。它们是通过对一定周期的时钟脉冲的进行累计而实现定时的,时钟脉冲有周期为1ms、10ms、100ms三种,当所计数达到设定值时触点动作。设定值可用常数K或数据寄存器D的内容来设置。

1.通用定时器

通用定时器的特点是不具备断电的保持功能,即当输入电路断开或停电时定时器复位。通用定时器有100ms和10ms通用定时器两种。

(1)100ms通用定时器(T0~T199) 共200点,其中T192~T199为子程序和中断服务程序专用定时器。这类定时器是对100ms时钟累积计数,设定值为1~32767,所以其定时范围为0.1~3276.7s。

(2)10ms通用定时器(T200~T245) 共46点。这类定时器是对10ms时钟累积计数,设定值为1~32767,所以其定时范围为0.01~327.67s。

下面举例说明通用定时器的工作原理。如图3-7所示,当输入X0接通时,定时器T200从0开始对10ms时钟脉冲进行累积计数,当计数值与设定值K123相等时,定时器的常开接通Y0,经过的时间为123×0.01s=1.23s。当X0断开后定时器复位,计数值变为0,其常开触点断开,Y0也随之OFF。若外部电源断电,定时器也将复位。

图3-7 通用定时器工作原理

2.积算定时器

积算定时器具有计数累积的功能。在定时过程中如果断电或定时器线圈OFF,积算定时器将保持当前的计数值(当前值),通电或定时器线圈ON后继续累积,即其当前值具有保持功能,只有将积算定时器复位,当前值才变为0。

(1)1ms积算定时器(T246~T249) 共4点,是对1ms时钟脉冲进行累积计数的,定时的时间范围为0.001~32.767s。

(2)100ms积算定时器(T250~T255)共6点,是对100ms时钟脉冲进行累积计数的定时的时间范围为0.1~3276.7s。

以下举例说明积算定时器的工作原理。如图3-8所示,当X0接通时,T253当前值计数数器开始累积100ms的时钟脉冲的个数。当X0经t0后断开,而T253尚未计数到设定值K345,其计数的当前值保留。当X0再次接通,T253从保留的当前值开始继续累积,经过t1时间,当前值达到K345时,定时器的触点动作。累积的时间为t0+t1=0.1×345=34.5s。当复位输入X1接通时,定时器才复位,当前值变为0,触点也跟随复位。

图3-8 积算定时器工作原理

六、计数器(C)

FX2N系列计数器分为内部计数器和高速计数器两类。 1.内部计数器

内部计数器是在执行扫描操作时对内部信号(如X、Y、M、S、T等)进行计数。内部输入信号的接通和断开时间应比PLC的扫描周期稍长。

(1)16位增计数器(C0~C199) 共200点,其中C0~C99为通用型,C100~C199共100点为断电保持型(断电保持型即断电后能保持当前值待通电后继续计数)。这类计数器为递加计数,应用前先对其设置一设定值,当输入信号(上升沿)个数累加到设定值时,计数器动作,其常开触点闭合、常闭触点断开。计数器的设定值为1~32767(16位二进制),设定值除了用常数K设定外,还可间接通过指定数据寄存器设定。

下面举例说明通用型16位增计数器的工作原理。如图3-9所示,X10为复位信号,当X10为ON时C0复位。X11是计数输入,每当X11接通一次计数器当前值增加1(注意X10断开,计数器不会复位)。当计数器计数当前值为设定值10时,计数器C0的输出触点动作,Y0被接通。此后既使输入X11再接通,计数器的当前值也保持不变。当复位输入X10接通时,执行RST复位指令,计数器复位,输出触点也复位,Y0被断开。

图3-9 通用型16位增计数器

(2)32位增/减计数器(C200~C234) 共有35点32位加/减计数器,其中C200~C219(共20点)为通用型,C220~C234(共15点)为断电保持型。这类计数器与16位增计数器除位数不同外,还在于它能通过控制实现加/减双向计数。设定值范围均为-2147838~-+2147837(32位)。

C200~C234是增计数还是减计数,分别由特殊辅助继电器M8200~M8234设定。对应的特殊辅助继电器被置为ON时为减计数,置为OFF时为增计数。

计数器的设定值与16位计数器一样,可直接用常数K或间接用数据寄存器D的内容作为设定值。在间接设定时,要用编号紧连在一起的两个数据计数器。

如图3-10所示,X10用来控制M8200,X10闭合时为减计数方式。X12为计数输入,C200的设定值为5(可正、可负)。设C200置为增计数方式(M8200为OFF),当X12计数输入累加由4→5时,计数器的输出触点动作。当前值大于5时计数器仍为ON状态。只有当前值由5→4时,计数器才变为OFF。只要当前值小于4,则输出则保持为OFF状态。复位输入X11接通时,计数器的当前值为0,输出触点也随之复位。

图3-10 32位增/减计数器

2.高速计数器(C235~C255)

高速计数器与内部计数器相比除允许输入频率高之外,应用也更为灵活,高速计数器均有断电保持功能,通过参数设定也可变成非断电保持。FX2N有C235~C255共21点高速计数器。适合用来做为高速计数器输入的PLC输入端口有X0~X7。X0~X7不能重复使用,即某一个输入端已被某个高速计数器占用,它就不能再用于其它高速计数器,也不能用做它用。各高速计数器对应的输入端如表3-14所示。

高速计数器可分为四类:

(1)单相单计数输入高速计数器(C235~C245) 其触点动作与32位增/减计数器相同,可进行增或减计数(取决于M8235~M8245的状态)。

如图3-11a所示为无启动/复位端单相单计数输入高速计数器的应用。当X10断开,M8235为OFF,此时C235为增计数方式(反之为减计数)。由X12选中C235,从表3-14中可知其输入信号来自于X0,C235对X0信号增计数,当前值达到1234时,C235常开接通,Y0得电。X11为复位信号,当X11接通时,C235复位。

如图3-11b所示为带启动/复位端单相单计数输入高速计数器的应用。由表3-14可知,X1和X6分别为复位输入端和启动输入端。利用X10通过M8244可设定其增/减计数方式。当X12为接通,且X6也接通时,则开始计数,计数的输入信号来自于X0,C244的设定值

由D0和D1指定。除了可用X1立即复位外,也可用梯形图中的X11复位。

图3-11 单相单计数输入高速计数器 a)无启动/复位端 b) 带启动/复位端

表3-14 高速计数器简表

输入 计数器 C235 C236 C237 单相 单计 数输 入 C238 C239 C240 C241 C242 C243 C244 C245 单相 双计 数输 入 C246 C247 C248 C249 C250 C251 双相 C252 C253 C254 C255 X0 U/D U/D U/D U U U A A A X1 U/D R R D D D B B B X2 U/D U/D U/D R R R R X3 U/D R U/D R U U A A X4 U/D R D D B B X5 U/D R R R R X6 S S S X7 S S S 表中:U表示加计数输入,D为减计数输入,B表示B相输入,A为A相输入,R为复位输入,S为启动输入。X6、X7只能用作启动信号,而不能用作计数信号。

(2)单相双计数输入高速计数器(C246~C250) 这类高速计数器具有二个输入端,

一个为增计数输入端,另一个为减计数输入端。利用M8246~M8250的ON/OFF动作可监控C246~C250的增记数/减计数动作。

如图3-12所示,X10为复位信号,其有效(ON)则C248复位。由表3-14可知,也可利用X5对其复位。当X11接通时,选中C248,输入来自X3和 X4。

图3-12 单相双计数输入高速计数器

(3)双相高速计数器(C251~C255) A相和B相信号决定计数器是增计数还是减计数。当A相为ON时,B相由OFF到ON,则为增计数;当A相为ON时,若B相由ON到OFF,则为减计数,如图3-13a所示。

图3-13 双相高速计数器

如图3-13b所示,当X12接通时,C251计数开始。由表3-14可知,其输入来自X0(A相)和X1(B相)。只有当计数使当前值超过设定值,则Y2为ON。如果X11接通,则计数器复位。根据不同的计数方向,Y3为ON(增计数)或为OFF(减计数),即用M8251~M8255,可监视C251~C255的加/减计数状态。

注意:高速计数器的计数频率较高,它们的输入信号的频率受二方面的。一是全部高速计数器的处理时间。因它们采用中断方式,所以计数器用的越少,则可计数频率就越高;二是输入端的响应速度,其中X0、X2、X3最高频率为10KHZ,X1、X4、X5最高频率为7KHZ。

七、数据寄存器(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为高位)。

八、指针(P、I)

在FX系列中,指针用来指示分支指令的跳转目标和中断程序的入口标号。分为分支用指针、输入中断指针及定时中断指针和记数中断指针。

1.分支用指针(P0~P127)

FX2N有P0~P127共128点分支用指针。分支指针用来指示跳转指令(CJ)的跳转目标或子程序调用指令(CALL)调用子程序的入口地址。

如图3-14所示,当X1常开接通时,执行跳转指令CJ P0,PLC跳到标号为P0处之后的程序去执行。

图3-14 分支用指针

2.中断指针(I0□□~I8□□)

中断指针是用来指示某一中断程序的入口位置。执行中断后遇到IRET(中断返回)指令,则返回主程序。中断用指针有以下三种类型:

(1)输入中断用指针(I00□~I50□) 共6点,它是用来指示由特定输入端的输入信号而产生中断的中断服务程序的入口位置,这类中断不受PLC扫描周期的影响,可以及时处理外界信息。输入中断用指针的编号格式如下:

I□ O□

0:下降沿中断 1:上升沿中断

输入号(0~5),对应输入X0~X5且每个只能用一次

例如:I101为当输入X1从OFF→ON变化时,执行以I101为标号后面的中断程序,并根据IRET指令返回。

(2)定时器中断用指针(I6□□~I8□□) 共3点,是用来指示周期定时中断的中断服务程序的入口位置,这类中断的作用是PLC以指定的周期定时执行中断服务程序,定时循环处理某些任务。处理的时间也不受PLC扫描周期的。□□表示定时范围,可在10~99ms

中选取。

(3)计数器中断用指针(I010~I060) 共6点,它们用在PLC内置的高速计数器中。根据高速计数器的计数当前值与计数设定值之关系确定是否执行中断服务程序。它常用于利用高速计数器优先处理计数结果的场合。 九、常数(K、H)

K是表示十进制整数的符号,主要用来指定定时器或计数器的设定值及应用功能指令操作数中的数值;H是表示十六进制数,主要用来表示应用功能指令的操作数值。 例如20用十进制表示为K20,用十六进制则表示为H14。

第三节 FX系列PLC的基本指令

FX系列PLC有基本逻辑指令20或27条、步进指令2条、功能指令100多条(不同系列有所不同)。本节以FX2N为例,介绍其基本逻辑指令和步进指令及其应用。

一、FX系列PLC的基本逻辑指令

FX2N的共有27条基本逻辑指令,其中包含了有些子系列PLC的20条基本逻辑指令。 1.取指令与输出指令(LD/LDI/LDP/LDF/OUT)

(1)LD(取指令) 一个常开触点与左母线连接的指令,每一个以常开触点开始的逻辑行都用此指令。

(2)LDI(取反指令) 一个常闭触点与左母线连接指令,每一个以常闭触点开始的逻辑行都用此指令。

(3)LDP(取上升沿指令) 与左母线连接的常开触点的上升沿检测指令,仅在指定位元件的上升沿(由OFF→ON)时接通一个扫描周期。

(4)LDF(取下降沿指令) 与左母线连接的常闭触点的下降沿检测指令。 (5)OUT(输出指令) 对线圈进行驱动的指令,也称为输出指令。 取指令与输出指令的使用如图3-15所示。

图3-15 取指令与输出指令的使用

取指令与输出指令的使用说明:

1)LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算;

2)LDP、LDF指令仅在对应元件有效时维持一个扫描周期的接通。图3-15中,当M1有一个下降沿时,则Y3只有一个扫描周期为ON。

3)LD、LDI、LDP、LDF指令的目标元件为X 、Y 、M 、T、C、S;

4)OUT指令可以连续使用若干次(相当于线圈并联),对于定时器和计数器,在OUT指令之后应设置常数K或数据寄存器。

5)OUT指令目标元件为Y、M、T、C和S,但不能用于X。 2.触点串联指令(AND/ANI/ANDP/ANDF)

(1)AND(与指令) 一个常开触点串联连接指令,完成逻辑“与”运算。 (2)ANI(与反指令) 一个常闭触点串联连接指令,完成逻辑“与非”运算。 (3)ANDP 上升沿检测串联连接指令。 (4)ANDF 下降沿检测串联连接指令。 触点串联指令的使用如图3-16所示。

图3-16 触点串联指令的使用

触点串联指令的使用的使用说明:

1)AND、ANI、ANDP、ANDF都指是单个触点串联连接的指令,串联次数没有,可反复使用。

2)AND、ANI、ANDP、ANDF的目标元元件为X、Y、M、T、C和S。 3)图3-16中OUT M101指令之后通过T1的触点去驱动Y4称为连续输出。 3.触点并联指令(OR/ORI/ORP/ORF)

(1)OR(或指令) 用于单个常开触点的并联,实现逻辑“或”运算。 (2)ORI(或非指令) 用于单个常闭触点的并联,实现逻辑“或非”运算。 (3)ORP 上升沿检测并联连接指令。 (4)ORF 下降沿检测并联连接指令。 触点并联指令的使用如图3-17所示。

图3-17 触点并联指令的使用

触点并联指令的使用说明:

1)OR、ORI、ORP、ORF指令都是指单个触点的并联,并联触点的左端接到LD、LDI、LDP或LPF处(例图4-4的左母线),右端与前一条指令对应触点的右端相连。触点并联指令连续使用的次数不限;

2)OR、ORI、ORP、ORF指令的目标元件为X、Y、M、T、C、S。 4.块操作指令(ORB / ANB)

(1)ORB(块或指令) 用于两个或两个以上的触点串联连接的电路之间的并联。ORB

指令的使用如图3-18所示。

图3-18 ORB指令的使用

ORB指令的使用说明:

1)几个串联电路块并联连接时,每个串联电路块开始时应该用LD或LDI指令; 2)有多个电路块并联回路,如对每个电路块使用ORB指令,则并联的电路块数量没有;

3)ORB指令也可以连续使用,但这种程序写法不推荐使用,LD或LDI指令的使用次数不得超过8次,也就是ORB只能连续使用8次以下。

(2)ANB(块与指令) 用于两个或两个以上触点并联连接的电路之间的串联。ANB指令的使用说明如图3-19所示。

图3-19 ANB指令的使用

ANB指令的使用说明:

1)并联电路块串联连接时,并联电路块的开始均用LD或LDI指令;

2)多个并联回路块连接按顺序和前面的回路串联时,ANB指令的使用次数没有。也可连续使用ANB,但与ORB一样,使用次数在8次以下

5.置位与复位指令(SET/RST)

(1)SET(置位指令) 它的作用是使被操作的目标元件置位并保持。 (2)RST(复位指令) 使被操作的目标元件复位并保持清零状态。

SET、RST指令的使用如图3-20所示。当X0常开接通时,Y0变为ON状态并一直保持该状态,即使X0断开Y0的ON状态仍维持不变;只有当X1的常开闭合时,Y0才变为OFF状态并保持,即使X1常开断开,Y0也仍为OFF状态。

图3-20 置位与复位指令的使用

SET 、RST指令的使用说明:

1)SET指令的目标元件为Y、M、S,RST指令的目标元件为Y、M、S、T、C、D、V 、Z。RST指令常被用来对D、Z、V的内容清零,还用来复位积算定时器和计数器。

2)对于同一目标元件,SET、RST可多次使用,顺序也可随意,但最后执行者有效。

6.微分指令(PLS/PLF)

(1)PLS(上升沿微分指令) 在输入信号上升沿产生一个扫描周期的脉冲输出。 (2)PLF(下降沿微分指令) 在输入信号下降沿产生一个扫描周期的脉冲输出。 微分指令的使用如图3-21所示,利用微分指令检测到信号的边沿,通过置位和复位命令控制Y0的状态。

图3-21 微分指令的使用

PLS、PLF指令的使用说明:

1)PLS、PLF指令的目标元件为Y和M;

2)使用PLS时,仅在驱动输入为ON后的一个扫描周期内目标元件ON,如图3-21所示,M0仅在X0的常开触点由断到通时的一个扫描周期内为ON;使用PLF指令时只是利用输入信号的下降沿驱动,其它与PLS相同。

7.主控指令(MC/MCR)

(1)MC(主控指令) 用于公共串联触点的连接。执行MC后,左母线移到MC触点的后面。

(2)MCR(主控复位指令) 它是MC指令的复位指令,即利用MCR指令恢复原左母线的位置。

在编程时常会出现这样的情况,多个线圈同时受一个或一组触点控制,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,使用主控指令就可以解决这一问题。MC、MCR指令的使用如图3-22所示,利用MC N0 M100实现左母线右移,使Y0、Y1都在X0的控制之下,其中N0表示嵌套等级,在无嵌套结构中N0的使用次数无;利用MCR N0恢复到原左母线状态。如果X0断开则会跳过MC、MCR之间的指令向下执行。

图3-22 主控指令的使用

MC、MCR指令的使用说明:

1)MC、MCR指令的目标元件为Y和M,但不能用特殊辅助继电器。MC占3个程序步,MCR占2个程序步;

2)主控触点在梯形图中与一般触点垂直(如图3-22中的M100)。主控触点是与左母线相连的常开触点,是控制一组电路的总开关。与主控触点相连的触点必须用LD或LDI指令。

3)MC指令的输入触点断开时,在MC和MCR之内的积算定时器、计数器、用复位/置位指令驱动的元件保持其之前的状态不变。非积算定时器和计数器,用OUT指令驱动的

元件将复位,如图3-22中当X0断开,Y0和Y1即变为OFF。

4)在一个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(出栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据从栈中消失,同时将栈中其它数据依次上移。

堆栈指令的使用如图3-23所示,其中图3-23a为一层栈,进栈后的信息可无限使用,最后一次使用MPP指令弹出信号;图3-23b为二层栈,它用了二个栈单元。

图3-23 堆栈指令的使用 a) 一层栈 b) 二层栈

堆栈指令的使用说明: 1)堆栈指令没有目标元件; 2)MPS和MPP必须配对使用;

3)由于栈存储单元只有11个,所以栈的层次最多11层。 9.逻辑反、空操作与结束指令(INV/NOP/END)

(1)INV(反指令) 执行该指令后将原来的运算结果取反。反指令的使用如图3-24所示,如果X0断开,则Y0为ON,否则Y0为OFF。使用时应注意INV不能象指令表的LD、LDI、LDP、LDF那样与母线连接,也不能象指令表中的OR、ORI、ORP、ORF指令那样单独使用。

图3-24 反指令的使用

(2)NOP(空操作指令) 不执行操作,但占一个程序步。执行NOP时并不做任何事,有时可用NOP指令短接某些触点或用NOP指令将不要的指令覆盖。当PLC执行了清除用户

存储器操作后,用户存储器的内容全部变为空操作指令。

(3)END(结束指令) 表示程序结束。若程序的最后不写END指令,则PLC不管实际用户程序多长,都从用户程序存储器的第一步执行到最后一步;若有END指令,当扫描到END时,则结束执行程序,这样可以缩短扫描周期。在程序调试时,可在程序中插入若干END指令,将程序划分若干段,在确定前面程序段无误后,依次删除END指令,直至调试结束。

二、FX系列PLC的步进指令 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-25所示,用状态器S记录每个状态,X为转换条件。如当X1为ON时,则系统由S20状态转为S21状态。

图3-25 状态转移图与步进指令

状态转移图中的每一步包含三个内容:本步驱动的内容,转移条件及指令的转换目标。如图3-25中S20步驱动Y0,当X1有效为ON时,则系统由S20状态转为S21状态,X1即为转换条件,转换的目标为S21步。状态转移图与梯形图的对称关系也显示在图4-14中。

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指令。

第四节 FX系列PLC的功能指令

早期的PLC大多用于开关量控制,基本指令和步进指令已经能满足控制要求。为适应控制系统的其它控制要求(如模拟量控制等),从20世纪80年代开始,PLC生产厂家就在小型PLC上增设了大量的功能指令(也称应用指令),功能指令的出现大大拓宽了PLC的应用范围,也给用户编制程序带来了极大方便。FX系列PLC有多达100多条功能指令(见附录A),由于篇幅的,本节仅对比较常用的功能指令作详细介绍,其余的指令只作简介,读者可参阅FX系列PLC编程手册。

一、概述

(一)功能指令的表示格式

功能指令表示格式与基本指令不同。功能指令用编号FNC00~FNC294表示,并给出对应的助记符(大多用英文名称或缩写表示)。例如FNC45的助记符是MEAN(平均),若使用简易编程器时键入FNC45,若采用智能编程器或在计算机上编程时也可键入助记符MEAN。

有的功能指令没有操作数,而大多数功能指令有1至4个操作数。如图3-26所示为一个计算平均值指令,它有三个操作数,[S]表示源操作数,[D]表示目标操作数,如果使用变址功能,则可表示为[S·]和[D·]。当源或目标不止一个时,用[S1·]、[S2·]、[D1·]、[D2·]表示。用n和m表示其它操作数,它们常用来表示常数K和H,或作为源和目标操作数的补充说明,当这样的操作数多时可用n1、n2和m1、m2等来表示。

图3-26 功能指令表示格式

图3-26中源操作数为D0、D1、D2,目标操作数为D4Z0(Z0为变址寄存器),K3表示有3个数,当X0接通时,执行的操作为[(D0)+(D1)+(D2)]÷3→(D4Z0),如果Z0的内容为20,则运算结果送入D24中。

功能指令的指令段通常占1个程序步,16位操作数占2步,32位操作数占4步。 (二)功能指令的执行方式与数据长度 1.连续执行与脉冲执行

功能指令有连续执行和脉冲执行两种类型。如图3-27所示,指令助记符MOV后面有“P”表示脉冲执行,即该指令仅在X1接通(由OFF到ON)时执行(将D10中的数据送到D12中)一次;如果没有“P”则表示连续执行,即该在X1接通(ON)的每一个扫描周期指令都要被

执行。

图3-27 功能指令的执行方式与数据长度的表示

2.数据长度

功能指令可处理16位数据或32位数据。处理32位数据的指令是在助记符前加“D”标志,无此标志即为处理16位数据的指令。注意32位计数器(C200~C255)的一个软元件为32位,不可作为处理16位数据指令的操作数使用。如图3-27所示,若MOV指令前面带“D”,则当X1接通时,执行D11D10→D13D12(32位)。在使用32位数据时建议使用首编号为偶数的操作数,不容易出错。

(三)功能指令的数据格式 1.位元件与字元件

象X、Y、M、S等只处理ON/OFF信息的软元件称为位元件;而象T、C、D等处理数值的软元件则称为字元件,一个字元件由16位二进制数组成。

位元件可以通过组合使用,4个位元件为一个单元,通用表示方法是由Kn加起始的软元件号组成,n为单元数。例如K2 M0表示M0~M7组成两个位元件组(K2表示2个单元),它是一个8位数据,M0为最低位。如果将16位数据传送到不足16位的位元件组合(n<4)时,只传送低位数据,多出的高位数据不传送,32位数据传送也一样。在作16位数操作时,参与操作的位元件不足16位时,高位的不足部分均作0处理,这意味着只能处理正数(符号位为0),在作32位数处理时也一样。被组合的元件首位元件可以任意选择,但为避免混乱,建议采用编号以0结尾的元件,如S10,X0,X20等。

2.数据格式

在FX系列PLC内部,数据是以二进制(BIN)补码的形式存储,所有的四则运算都使用二进制数。二进制补码的最高位为符号位,正数的符号位为0,负数的符号位为1。FX系列PLC可实现二进制码与BCD码的相互转换。

为更精确地进行运算,可采用浮点数运算。在FX系列PLC中提供了二进制浮点运算和十进制浮点运算,设有将二进制浮点数与十进制浮点数相互转换的指令。二进制浮点数采用编号连续的一对数据寄存器表示,例D11和D10组成的32位寄存器中,D10的16位加上D11的低7位共23位为浮点数的尾数,而D11中除最高位的前8位是阶位,最高位是尾数的符号位(0为正,1是负)。10进制的浮点数也用一对数据寄存器表示,编号小数据寄存器为尾数段,编号大的为指数段,例如使用数据寄存器(D1,D0)时,表示数为

10进制浮点数=〔尾数D0〕×10

其中:D0,D1的最高位是正负符号位。 二、FX系列PLC功能指令介绍

FX2N系列PLC有丰富的功能指令,共有程序流向控制、传送与比较、算术与逻辑运算、循环与移位等19类功能指令。

〔指数D1〕

(一)程序流向控制类指令(FNC00~FN09) 1.条件跳转指令

条件跳转指令CJ(P)的编号为FNC00,操作数为指针标号P0~P127,其中P63为END所在步序,不需标记。指针标号允许用变址寄存器修改。CJ和CJP都占3个程序步,指针标号占1步。

如图3-28所示,当X20接通时,则由CJ P9指令跳到标号为P9的指令处开始执行,跳过了程序的一部分,减少了扫描周期。如果X20断开,跳转不会执行,则程序按原顺序执行。

图3-28 跳转指令的使用

使用跳转指令时应注意:

1)CJP指令表示为脉冲执行方式;

2)在一个程序中一个标号只能出现一次,否则将出错;

3)在跳转执行期间,即使被跳过程序的驱动条件改变,但其线圈(或结果)仍保持跳转前的状态,因为跳转期间根本没有执行这段程序。

4)如果在跳转开始时定时器和计数器已在工作,则在跳转执行期间它们将停止工作,到跳转条件不满足后又继续工作。但对于正在工作的定时器T192~T199和高速计数器C235~C255不管有无跳转仍连续工作。

5)若积算定时器和计数器的复位(RST)指令在跳转区外,即使它们的线圈被跳转,但对它们的复位仍然有效。

2.子程序调用与子程序返回指令

子程序调用指令CALL的编号为FNC01。操作数为P0~P127,此指令占用3个程序步。

子程序返回指令SRET的编号为FNC02。无操作数,占用1个程序步。

如图3-29所示,如果X0接通,则转到标号P10处去执行子程序。当执行SRET指令时,返回到CALL指令的下一步执行。

图3-29 子程序调用与返回指令的使用

使用子程序调用与返回指令时应注意:

1)转移标号不能重复,也不可与跳转指令的标号重复; 2)子程序可以嵌套调用,最多可5级嵌套。 3.与中断有关的指令

与中断有关的三条功能指令是:中断返回指令IRET,编号为FNCO3;中断允许指令EI,编号为FNCO4;中断禁止DI,编号为FNC05。它们均无操作数,占用1个程序步。

PLC通常处于禁止中断状态,由EI和DI指令组成允许中断范围。在执行到该区间,如有中断源产生中断,CPU将暂停主程序执行转而执行中断服务程序。当遇到IRET时返回断点继续执行主程序。如图3-30所示,允许中断范围中若中断源X0有一个下降沿,则转入I000为标号的中断服务程序,但X0可否引起中断还受M8050控制,当X20有效时则M8050控制X0无法中断。

图3-30 中断指令的使用

使用中断相关指令时应注意:

1)中断的优先级排队如下,如果多个中断依次发生,则以发生先后为序,即发生越早级别越高,如果多个中断源同时发出信号,则中断指针号越小优先级越高;

2)当M8050~M8058为ON时,禁止执行相应I0□□~I8□□的中断,M8059为ON时则禁止所有计数器中断;

3)无需中断禁止时,可只用EI指令,不必用DI指令;

4)执行一个中断服务程序时,如果在中断服务程序中有EI和DI,可实现二级中断嵌套,否则禁止其它中断。

4.主程序结束指令

主程序结束指令FEND的编号为FNC06,无操作数,占用1个程序步。FEND表示主程序结束,当执行到FEND时,PLC进行输入/输出处理,监视定时器刷新,完成后返回启始步。

使用FEND指令时应注意:

1)子程序和中断服务程序应放在FEND之后;

2)子程序和中断服务程序必须写在FEND和END之间,否则出错。 5.监视定时器指令

监视定时器指令WDT(P)编号为FNC07,没有操作数,占有1个程序步。WDT指令的功能是对PLC的监视定时器进行刷新。

FX系列PLC的监视定时器缺省值为200ms(可用D8000来设定),正常情况下PLC扫描周期小于此定时时间。如果由于有外界干扰或程序本身的原因使扫描周期大于监视定时器的设定值,使PLC的CPU出错灯亮并停止工作,可通过在适当位置加WDT指令复位监视定时器,以使程序能继续执行到END。

如图3-31所示,利用一个WDT指令将一个240ms的程序一分为二,使它们都小于200ms,则不再会出现报警停机。

图3-31 监控定时器指令的使用

使用WDT指令时应注意:

1)如果在后续的FOR-NEXT循环中,执行时间可能超过监控定时器的定时时间,可将WDT插入循环程序中。

2)当与条件跳转指令CJ对应的指针标号在CJ指令之前时(即程序往回跳)就有可能连续反复跳步使它们之间的程序反复执行,使执行时间超过监控时间,可在CJ指令与对应标号之间插入WDT指令。

6.循环指令

循环指令共有两条:循环区起点指令FOR,编号为FNC08,占3个程序步;循环结束指令NEXT,编号为FNC09,占用1个程序步,无操作数。

在程序运行时,位于FOR~NEXT间的程序反复执行n次(由操作数决定)后再继续执行后续程序。循环的次数n=1~32767。如果N=-32767~0之间,则当作n=1处理。

如图3-32所示为一个二重嵌套循环,外层执行5次。如果D0Z中的数为6,则外层A每执行一次则内层B将执行6次。

图3-32 循环指令的使用

使用循环指令时应注意:

1) FOR和NEXT必须成对使用; 2)FX2N系列PLC可循环嵌套5层;

3)在循环中可利用CJ指令在循环没结束时跳出循环体;

4)FOR应放在NEXT之前,NEXT应在FEND和END之前,否则均会出错。 (二)传送与比较类指令(FNC10~FNC19) 1.比较指令

比较指令包括CMP(比较)和ZCP(区间比较)二条。

(1)比较指令CMP (D)CMP(P)指令的编号为FNC10,是将源操作数[S1.]和源操作数[S2.]的数据进行比较,比较结果用目标元件[D.]的状态来表示。如图3-33所示,当X1为接通时,把常数100与C20的当前值进行比较,比较的结果送入M0~M2中。X1为OFF时不执行,M0~M2的状态也保持不变。

图3-33 比较指令的使用

(2)区间比较指令ZCP (D)ZCP(P)指令的编号为FNC11,指令执行时源操作数[S.]与[S1.]和[S2.]的内容进行比较,并比较结果送到目标操作数[D.]中。如图3-34所示,当X0为ON时,把C30当前值与K100和K120相比较,将结果送M3、M4、M5中。X0为OFF,则ZCP不执行,M3、M4、M5不变。

图3-34 区间比较指令的使用

使用比较指令CMP/ZCP时应注意:

1)[S1.]、[S2.]可取任意数据格式,目标操作数[D.]可取Y、M和S。 2)使用ZCP时,[S2.]的数值不能小于[S1.] 3) 所有的源数据都被看成二进制值处理; 2.传送类指令

(1)传送指令MOV (D)MOV(P)指令的编号为FNC12,该指令的功能是将源数据传送到指定的目标。如图3-35所示,当X0为ON时,则将[S.]中的数据K100传送到目标操作元件[D.]即D10中。在指令执行时,常数K100会自动转换成二进制数。当X0为OFF时,则指令不执行,数据保持不变。

图3-35 传送指令的使用

使用应用MOV指令时应注意:

1)源操作数可取所有数据类型,标操作数可以是KnY、KnM、KnS、T、C、D、V、Z。 2)16位运算时占5个程序步,32位运算时则占9个程序步。

(2)移位传送指令SMOV SMOV(P)指令的编号为FNC13。该指令的功能是将源数据(二进制)自动转换成4位BCD码,再进行移位传送,传送后的目标操作数元件的BCD码自动转换成二进制数。如图3-36所示,当X1为ON时,将D1中右起第4位(m1=4)开始的2位(m2=2) BCD码移到目标操作数D2的右起第3位(n=3)和第2位。然后D2中的BCD码会自动转换为二进制数,而D2中的第1位和第4位BCD码不变。

图3-36 移位传送指令的使用

使用移位传送指令时应该注意:

1)源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z。

2)SMOV指令只有16位运算,占11个程序步。

(3)取反传送指令CML (D)CML(P)指令的编号为FNC14。它是将源操作数元件的数据逐位取反并传送到指定目标。如图3-37所示,当X0为ON时,执行CML,将D0的低4位取反向后传送到Y3~Y0中。

图3-37 取反传送指令的使用

使用取反传送指令CML时应注意:

1)源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z.,若源数据为常数K,则该数据会自动转换为二进制数。

2)16位运算占5个程序步,32位运算占9个程序步。

(4)块传送指令BMOV BMOV(P)指令的ALCE编号为FNC15,是将源操作数指定元件开始的n个数据组成数据块传送到指定的目标。如图3-38所示,传送顺序既可从高元件号开始,也可从低元件号开始,传送顺序自动决定。若用到需要指定位数的位元件,则源操作数和目标操作数的指定位数应相同。

图3-38 块传送指令的使用

使用块传送指令时应注意:

1)源操作数可取KnX、 KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可取. KnT、KnM、KnS、T、C和D;

2)只有16位操作,占7个程序步;

3)如果元件号超出允许范围,数据则仅传送到允许范围的元件。

(5)多点传送指令FMOV (D)FMOV(P)指令的编号为FNC16。它的功能是将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同。如图3-39所示,当X0为ON时,把K0传送到D0~D9中。

图3-39 多点传送指令应用

使用多点传送指令FMOV时应注意:

1)源操作数可取所有的数据类型,目标操作数可取KnX、KnM、KnS、T、C、和D,n小等于512;

2)16位操作占7的程序步,32位操作则占13个程序步; 3)如果元件号超出允许范围,数据仅送到允许范围的元件中。 3.数据交换指令

数据交换指令(D)XCH(P)的编号为FNC17,它是将数据在指定的目标元件之间交换。如图3-40所示,当X0为ON时,将D1和D19中的数据相互交换。

图3-40 数据交换指令的使用

使用数据交换指令应该注意:

1)操作数的元件可取KnY、KnM、KnS、T、C、D、V和Z.。

2)交换指令一般采用脉冲执行方式,否则在每一次扫描周期都要交换一次。 3)16位运算时占5个程序步,32位运算时占9个程序步。 4.数据变换指令

(1)BCD变换指令BCD (D)BCD(P)指令的ALCE编号为FNC18。它是将源元件中的二进制数转换成BCD码送到目标元件中,如图3-41所示。

如果指令进行16位操作时,执行结果超出0~9999范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也将出错。PLC中内部的运算为二进制运算,可用BCD指令将二进制数变换为BCD码输出到七段显示器。

(2)BIN变换指令BIN (D)BIN(P)指令的编号为FNC19。它是将源元件中的BCD数据转换成二进制数据送到目标元件中,如图3-41所示。常数K不能作为本指令的操作元件,因为在任何处理之前它们都会被转换成二进制数。

图3-41 数据变换指令的使用

使用BCD/BIN指令时应注意:

1)源操作数可取KnK、KnY、KnM、KnS、T、C、D、V和Z,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z;

2)16位运算占5个程序步,32位运算占9个程序步。 (三)算术和逻辑运算类指令(FNC20~FNC29)

1.算术运算指令

(1)加法指令ADD (D)ADD(P)指令的编号为FNC20。它是将指定的源元件中的二进制数相加结果送到指定的目标元件中去。如图3-42所示,当X0为ON时,执行(D10)+(D12)

→(D14)。

图3-42 加法指令的使用

(2)减法指令SUB (D)SUB(P)指令的编号为FNC21。它是将[S1.]指定元件中的内容以二进制形式减去[S2.]指定元件的内容,其结果存入由[D.]指定的元件中。如图3-43所示,当X0为ON时,执行(D10)—(D12)→(D14)。

图3-43 减法指令的使用

使用加法和减法指令时应该注意:

1) 操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z.。 2) 16位运算占7个程序步,32位运算占13个程序步。 3)数据为有符号二进制数,最高位为符号位(0为正,1为负)。

4)加法指令有三个标志:零标志(M8020)、借位标志(M8021)和进位标志(M8022)。当运算结果超过32767(16位运算)或21474837(32位运算)则进位标志置1;当运算结果小于-32767(16位运算)或-21474837(32位运算),借位标志就会置1。

(3)乘法指令MUL (D) MUL (P)指令的编号为FNC22。数据均为有符号数。如图3-44所示,当X0为ON时,将二进制16位数[S1.]、[S2.]相乘,结果送[D.]中。D为32位,即(D0)×(D2)→(D5,D4)(16位乘法);当X1为ON时,(D1,D0)×(D3,D2)→(D7,D6,D5,D4)(32位乘法)。

图3-44 乘法指令的使用

(4)除法指令DIV (D) DIV (P)指令的编号为为FNC23。其功能是将[S1.]指定为被除数,[S2.]指定为除数,将除得的结果送到[D.]指定的目标元件中,余数送到[D.]的下一个元件中。如图3-45所示,当X0为ON时(D0)÷(D2)→(D4)商,(D5)余数(16位除法);当X1为ON时(D1,D0)÷(D3,D2)→(D5,D4)商,(D7,D6)余数(32位除法)。

图3-45 除法指令的使用

使用乘法和除法指令时应注意:

1)源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z.,要注意Z只有16位乘法时能用,32位不可用。

2)16位运算占7程序步,32位运算为13程序步。

3)32位乘法运算中,如用位元件作目标,则只能得到乘积的低32位,高32位将丢失,这种情况下应先将数据移入字元件再运算;除法运算中将位元件指定为[D.],则无法得到余数,除数为0时发生运算错误。

4)积、商和余数的最高位为符号位。

(5)加1和减1指令 加1指令(D) INC (P)的编号为FNC24;减1指令 (D) DEC (P)的编号为FNC25。INC和DEC指令分别是当条件满足则将指定元件的内容加1或减1。如图3-46所示,当X0为ON时,(D10)+1→(D10);当X1为ON时,(D11)+1→(D11)。若指令是连续指令,则每个扫描周期均作一次加1或减1运算。

图3-46 加1和减1指令的使用

使用加1和减1指令时应注意:

1)指令的操作数可为KnY、KnM、KnS、T、C、D、V、Z;。 2)当进行16位操作时为3个程序步,32位操作时为5个程序步。

3)在INC运算时,如数据为16位,则由+32767再加1变为-32768,但标志不置位;同样,32位运算由+21474837再加1就变为-21474838时,标志也不置位。

4)在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-21474838减1变为=21474837,标志也不置位。

2.逻辑辑运算类指令

(1)逻辑与指令WAND (D)WAND(P)指令的编号为FNC26。是将两个源操作数按位进行与操作,结果送指定元件。

(2)逻辑或指令WOR (D) WOR (P)指令的编号为FNC27。它是对二个源操作数按位进行或运算,结果送指定元件。如图4-48所示,当X1有效时,(D10)∨(D12)→(D14)

(3)逻辑异或指令WXOR (D) WXOR (P)指令的编号为FNC28。它是对源操作数位进行逻辑异或运算。

(4)求补指令NEG (D) NEG (P)指令的编号为FNC29。其功能是将[D.]指定的元件内容的各位先取反再加1,将其结果再存入原来的元件中。 WAND、WOR、WXOR和NEG指令的使用如图3-47所示。

图3-47 逻辑运算指令的使用

使用逻辑运算指令时应该注意:

1)WAND、WOR和WXOR指令的[S1.]和[S2.]均可取所有的数据类型,而目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。

2)NEG指令只有目标操作数,其可取KnY、KnM、KnS、T、C、D、V和Z。 3)WAND、WOR、WXOR指令16位运算占7个程序步,32位为13个程序步,而NEG分别占3步和5步。

(四)循环与移位类指令(FNC30~FNC39) 1.循环移位指令

右、左循环移位指令(D)ROR(P)和(D)ROL(P)编号分别为FNC30和FNC31。执行这两条指令时,各位数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中,如图3-48所示。

图3-48 右、左循环移位指令的使用

2.带进位的循环移位指令

带进位的循环右、左移位指令(D) RCR(P)和(D) RCL(P)编号分别为FNC32和FNC33。执行这两条指令时,各位数据连同进位(M8022)向右(或向左)循环移动n位,如图3-49所示。

图3-49 带进位右、左循环移位指令的使用

使用ROR/ROL/RCR/RCL指令时应该注意:

1)目标操作数可取KnY,KnM,KnS,T,C,D,V和Z,目标元件中指定位元件的组合只有在K4(16位)和K8(32位指令)时有效。

2)16位指令占5个程序步,32位指令占9个程序步。 3)用连续指令执行时,循环移位操作每个周期执行一次。 3.位右移和位左移指令

位右、左移指令SFTR(P)和SFTL(P)的编号分别为FNC34和FNC35。它们使位元件中的状态成组地向右(或向左)移动。n1指定位元件的长度,n2指定移位位数,n1和n2的关系及范围因机型不同而有差异,一般为n2≤n1≤1024。位右移指令使用如图3-50所示。

图3-50 位右移指令的使用

使用位右移和位左移指令时应注意:

1)源操作数可取X、Y、M、S,目标操作数可取Y、M、S。 2)只有16位操作,占9个程序步。 4.字右移和字左移指令

字右移和字左移指令WSFR(P)和WSFL(P)指令编号分别为FNC36和FNC37。字右移和字左移指令以字为单位,其工作的过程与位移位相似,是将n1个字右移或左移n2个字。

使用字右移和字左移指令时应注意:

1)源操作数可取KnX、KnY、KnM、KnS、T、C和D,目标操作数可取KnY、KnM、KnS、T、C和D。

2)字移位指令只有16位操作,占用9个程序步. 3)n1和n2的关系为n2≤n1≤512。 5.先入先出写入和读出指令

先入先出写入指令和先入先出写入读出指令SFWR(P)和SFRD(P)的编号分别为FNC38和FNC39。

先入先出写入指令SFWR的使用如图3-51所示, 当X0由OFF变为ON时,SFWR执行, D0中的数据写入D2,而D1变成指针,其值为1(D1必须先清0);当X0再次由OFF变为ON时,D0中的数据写入D3,D1变为2,依次类推,D0中的数据依次写入数据寄存器。D0中的数据从右边的D2顺序存入,源数据写入的次数放在D1中,当D1中的数达到n-1后不再执行上述操作,同时进位标志M8022置1。

图3-51 先入先出写入指令的使用

先入先出读出指令SFRD的使用如图3-70所示,当X0由OFF变为ON时,D2中的数据送到D20,同时指针D1的值减1,D3~D9的数据向右移一个字,数据总是从D2读出,指针D1为0时,不再执行上述操作且M8020置1。

图3-52 先入先出读出指令的使用

使用SFWR和SFRD指令时应注意:

1)目标操作数可取KnY、KnM、KnS、T、C和D,源操数可取所有的数据类型。 2)指令只有16位运算,占7个程序步。

(五)数据处理指令(FNC40~FNC49) 1.区间复位指令

区间复位指令ZRST(P)的编号为FNC40。它是将指定范围内的同类元件成批复位。如图3-53所示,当M8002由OFF→ON时,位元件M500~M599成批复位,字元件C235~C255也成批复位。

图3-53 区间复位指令的使用

使用区间复位指令时应注意:

1)[D1.]和[D2.]可取Y、M、S、T、C、D,且应为同类元件,同时[D1]的元件号应小于[D2]指定的元件号,若[D1]的元件号大于[D2]元件号,则只有[D1]指定元件被复位。

2)ZRST指令只有16位处理,占5个程序步,但[D1.][D2.]也可以指定32位计数器。 2.译码和编码指令

(1)译码指令DECO DECO(P) 指令的编号为FNC41。如图3-54所示,n=3 则表示[S.]源操作数为3位,即为X0、X1、X2。其状态为二进制数,当值为011时相当于十进制3,则由目标操作数M7~M0组成的8位二进制数的第三位M3被置1,其余各位为0。如果为000则M0被置1。用译码指令可通过[D.]中的数值来控制元件的ON/OFF。

图3-54 译码指令的使用

使用译码指令时应注意:

1)位源操作数可取X、T、M和S,位目标操作数可取Y、M和S,字源操作数可取K,H,T,C,D,V和Z,字目标操作数可取T,C和D。

2)若[D.]指定的目标元件是字元件T、C、D,则n≦4;若是位元件Y、M、S,则n=1~8。译码指令为16位指令,占7个程序步。

(2)编码指令ENCO ENCO(P)指令的编号为FNC42。如图3-55所示,当X1有效时执行编码指令,将[S.]中最高位的1(M3)所在位数(4)放入目标元件D10中,即把011放入D10的低3位。

图3-55 编码指令的使用

使用编码指令时应注意:

1)源操作数是字元件时,可以是T、C、D、V和Z;源操作数是位元件,可以是X、Y、M和S。目标元件可取T、C、D、V和Z。编码指令为16位指令,占7个程序步。

2)操作数为字元件时应使用n≦4,为位元件时则n=1~8,n=0时不作处理。 3)若指定源操作数中有多个1,则只有最高位的1有效。 3. ON位数统计和ON位判别指令

(1)ON位数统计指令SUM (D)SUM(P)指令的编号为FNC43。该指令是用来统计指定元件中1的个数。如图3-56所示,当X0有效时执行SUM指令,将源操作数D0中1的个数送入目标操作数[D2中,若D0中没有1,则零标志M8020将置1。

图3-56 ON位数统计和ON位判别指令的使用

使用SUM指令时应注意:

1)源操作数可取所有数据类型,目标操作数可取KnY,KnM,KnS,T,C,D,V和Z。 2)16位运算时占5个程序步,32位运算则占9个程序步。

(2)ON位判别指令BON (D)BON(P)指令的编号为FNC44。它的功能是检测指定元件中的指定位是否为1。如图3-56所示,当X1为有效时,执行BON指令,由K4决定检测的是源操作数D10的第4位,当检测结果为1时,则目标操作数M0=1,否则M0=0。

使用BON指令时应注意:

1)源操作数可取所有数据类型,目标操作数可取Y、M和S。

2)进行16位运算,占7程序步,n=0~15;32位运算时则占13个程序步,n=0~31。 4.平均值指令

平均值指令(D)MEAN(P)的编号为FNC45。其作用是将n个源数据的平均值送到指定目标(余数省略),若程序中指定的n值超出1~的范围将会出错。

5.报警器置位与复位指令

报警器置位指令ANS(P)和报警器复位指令ANR(P)的编号分别为FNC46 和FNC47。如图3-57所示,若X0和X1同时为ON时超过1S,则S900置1;当X0或X1变为OFF,虽定时器复位,但S900仍保持1不变;若在1S内X0或X1再次变为OFF则定时器复位。当X2接通时,则将S900~S999之间被置1的报警器复位。若有多于1个的报警器被置1,则元件号最低的那个报警器被复位。

图3-57 报警器置位与复位指令的使用

使用报警器置位与复位指令时应注意:

1)ANS指令的源操作数为T0~T199,目标操作数为S900~S999,n=1~32767’; ANR指令无操作数。

2)ANS为16位运算指令,占7的程序步;ANR指令为16位运算指令,占1个程序步。 3)ANR指令如果用连续执行,则会按扫描周期依次逐个将报警器复位。 6.二进制平方根指令

二进制平方根指令(D)SQR(P)的编号为FNC48。如图3-58所示,当X0有效时,则将存放在D45中的数开平方,结果存放在D123中(结果只取整数)。

图3-58 二进制平方根指令的使用

使用SQR指令时应注意:

1)源操作数可取K、H、D,数据需大于0,目标操作数为D。 2)16位运算占5个程序步,32位运算占9个程序步。 7.二进制整数→二进制浮点数转换指令

二进制整数→二进制浮点数转换指令(D)FLT(P)的编号为FNC49。如图3-59所示,当X1有效时,将存入D10中的数据转换成浮点数并存入D12中。

图3-59 二进制整数→二进制浮点数转换指令的使用

使用FLT指令时应注意: 1)源和目标操作数均为D。

2)16位操作占5个程序步,32位占9个程序步。 (六)高速处理指令(FNC50~FNC59) 1.和输入输出有关的指令

(1)输入输出刷新指令REF REF(P)指令的编号为FNC50。FX系列PLC采用集中输入输出的方式。如果需要最新的输入信息以及希望立即输出结果则必须使用该指令。如图3-60所示,当X0接通时,X10~X17共8点将被刷新;当X1接通时,则Y0~Y7、Y10~Y17、共16点输出将被刷新。

图3-60 输入输出刷新指令的使用

使用REF指令时应注意:

1)目标操作数为元件编号个位为0的X和Y,n应为8的整倍数。 2)指令只要进行16位运算,占5个程序步。

(2)滤波调整指令REFF REFF(P)指令的编号为FNC51。在FX系列PLC中X0~X17使用了数字滤波器,用REFF指令可调节其滤波时间,范围为0~60ms(实际上由于输入端有RL滤波,所以最小滤波时间为50μs)。如图3-61所示,当X0接通时,执行REFF指令,滤波时间常数被设定为1ms。

图3-81滤波调整指令说明

使用REFF指令时应注意:

1)REFF为16位运算指令,占7个程序步。

2)当X0~X7用作高速计数输入时或使用FNC56速度检测指令以及中断输入时,输入滤波器的滤波时间自动设置为50ms。

(3)矩阵输入指令MTR MTR指令的编号为FNC52。利用MTR可以构成连续排列的8点输入与n点输出组成的8列n行的输入矩阵。如图3-62所示,由[S]指定的输入X0~X7共8点与n点输出Y0、Y1、Y2(n=3)组成一个输入矩阵。PLC在运行时执行MTR指令,当Y0为ON时,读入第一行的输入数据,存入M30~M37中;Y1为ON时读入第二行的输入状态,存入M40~M47。其余类推,反复执行。

图3-62 矩阵输入指令的使用

使用MTR指令时应注意:

1)源操作数[S]是元件编号个位为0的X,目标操作数[D1] 是元件编号个位为0的Y,目标操作数[D2] 是元件编号个位为0的Y、M和S,n的取值范围是2~8。

2)考虑到输入滤波应答延迟为10ms,对于每一个输出按20ms顺序中断,立即执行。 3)利用本指令通过8点晶体管输出获得点输入,但读一次点输入所许时间为20ms×8=160ms,不适应高速输入操作。

4)该指令只有16位运算,占9个程序步。 2.高速计数器指令

(1)高速计数器置位指令HSCS DHSCS指令的编号为FNC53。它应用于高速计数器的置位,使计数器的当前值达到预置值时,计数器的输出触点立即动作。它采用了中断方式使置位和输出立即执行而与扫描周期无关。如图3-63所示,[S1.]为设定值(100),当高速计数器C255的当前值由99变100或由101变为100时,Y0都将立即置1。

图3-63 高速计数器指令的使用

(2)高速计速器比较复位指令HSCR DHSCR指令的编号为FNC54。如图3-63所示,C254的当前值由199变为200或由201变为200时,则用中断的方式使Y10立即复位。

使用HSCS和HSCR时应注意:

1)源操作数[S1.]可取所有数据类型,[S2.]为C235~C255,目标操作数可取Y、M和S。 2)只有32位运算,占13个程序步。

(3)高速计速器区间比较指令HSZ DHSZ指令的编号为FNC55。如图3-63所示,目标操作数为Y20、Y21和Y22。如果C251的当前值K1200时,Y22为ON。

使用高速计速器区间比较指令时应注意:

1)操作数[S1.] 、[S2.]可取所有数据类型,[S .]为C235~C255,目标操作数[D.]可取Y、M、S。

2)指令为32位操作,占17个程序步。 2.速度检测指令

速度检测指令SPD的编号为FNC56。它的功能是用来检测给定时间内从编码器输入的脉冲个数,并计算出速度。如图4-所示,[D. ]占三个目标元件。当X12为ON时,用D1对X0的输入上升沿计数,100ms后计数结果送入D0,D1复位,D1重新开始对X0计数。D2在计数结束后计算剩余时间。

图4- 速度检测指令的使用

使用速度检测指令时应注意:

1)[S1.]为X0~X5,[S2.]可取所有的数据类型,[D.]可以是T、C、D、V和Z。 2)指令只有16位操作,占7个程序步。 3.脉冲输出指令

脉冲输出指令(D)PLSY的编号为FNC57。它用来产生指定数量的脉冲。如图3-65所示,[S1.]用来指定脉冲频率(2~20000Hz),[S2.]指定脉冲的个数(16位指令的范围为1~32767, 32位指令则为1~21474837)。如果指定脉冲数为0,则产生无穷多个脉冲。[D .]用来指定脉冲输出元件号。脉冲的占空比为50%,脉冲以中断方式输出。指定脉冲输出完后,完成标志M8029置1。X10由ON变为OFF时,M8029复位,停止输出脉冲。若X10再次变为ON则脉冲从头开始输出。

图3-65 脉冲输出指令的使用

使用脉冲输出指令时应注意:

1)[S1.]、[S2.]可取所有的数据类型,[D.]为Y1和Y2。

2)该指令可进行16和32位操作,分别占用7个和13个程序步。 3)本指令在程序中只能使用一次。 5.脉宽调制指令

脉宽调制指令PWM的编号为FNC58。它的功能是用来产生指定脉冲宽度和周期的脉冲串。如图3-66所示,[S1.] 用来指定脉冲的宽度,[S2.]用来指定脉冲的周期,[D.]用来指定输出脉冲的元件号(Y0或Y1),输出的ON/OFF状态由中断方式控制。

图3-66 脉宽调制指令的使用

使用脉宽调制指令时应注意:

1)操作数的类型与PLSY相同;该指令只有16位操作,需7个程序步。 2)[S1.]应小于[S2.]。 6.可调速脉冲输出指令

可调速脉冲输出指令该指令(D)PLSR的编号为FNC59。该指令可以对输出脉冲进行加速,

也可进行减速调整。源操作数和目标操作数的类型和PLSY指令相同,只能用于晶体管PLC的Y0和Y1,可进行16位操作也可进行32位操作,分别占9个和17个程序步。该指令只能用一次。

(七)其它功能指令

1.方便指令(FNC60~FNC69)

FX系列共有10条方便指令:初始化指令IST(FNC60)、数据搜索指令SER(FNC61)、绝对值式凸轮顺控指令ABSD(FNC62)、增量式凸轮顺控指令INCD(FNC63)、示教定时指令TIMR(FNC)、特殊定时器指令STMR(FNC65)、交替输出指令ALT(FNC66)、斜坡信号指令RAMP(FNC67)、旋转工作台控制指令ROTC(FNC68)和数据排序指令SORT(FNC69)。以下仅对其中部分指令加以介绍。

(1)凸轮顺控指令 凸轮顺控指令有绝对值式凸轮顺控指令ABSD(FNC62)和增量式凸轮顺控指令INCD(FNC63)两条。

绝对值式凸轮顺控指令ABSD是用来产生一组对应于计数值在3600范围内变化的输出波形,输出点的个数由n决定,如图3-67a所示。图中n为4,表明[D.]由M0~M3共4点输出。预先通过MOV指令将对应的数据写入D300~D307中,开通点数据写入偶数元件,关断点

数据放入奇数元件,如表3-15所示。当执行条件X0由OFF变ON时,M0~M3将得到如图3-67b所示的波形,通过改变D300~D307的数据可改变波形。若X0为OFF,则各输出点状态不变。这一指令只能使用一次。

图3-67 绝绝对值式凸轮顺控指令的使用 a) 绝绝对值式凸轮顺控指令 b) 输出波形 表3-15 旋转台旋转周期M0~M3状态 开通点 D300=40 D302=100 D304=160 D306=240 关断点 D301=140 D303=200 D305=60 D307=280 输出 M0 M1 M2 M3 增量式凸轮顺控指令INCD也是用来产生一组对应于计数值变化的输出波形。如图3-68所示,n=4,说明有4个输出,分别为M0~M3,它们的ON/OFF状态受凸轮提供的脉冲个数控制。使M0~M3为ON状态的脉冲个数分别存放在D300~D303中(用MOV指令写入)。图中波形是D300~D303分别为20、30、10和40时的输出。当计数器C0的当前值依次达到D300~D303的设定值时将自动复位。C1用来计复位的次数,M0~M3根据C1的值依次动作。由n指定的最后一段完成后,标志M8029置1,以后周期性重复。若X0为OFF,则C0、C1均复位,同时M0~M3变为OFF,当X0再接通后重新开始工作。

图3-68 增量式凸轮顺控指令的使用

凸轮顺控指令源操作数[S1.]可取KnX、KnY、KnM、KnS、T、C和D,[S2.]为C,目标操作数可取Y、M和S。为16位操作指令,占9个程序步。

(2)定时器指令 定时器指令有示教定时器指令TTMR(FNC)和特殊定时器指令STMR(FNC65)两条。

使用示教定时器指令TTMR,可用一个按钮来调整定时器的设定时间。如图3-69所示,当X10为ON时,执行TTMR指令,X10按下的时间由M301记录,该时间乘以10后存入D300。如果按钮按下时间为t存入D300的值为10×t 。X10为OFF时,D301复位,D300保持不变。TTMR为16位指令,占5个程序步。

n

n

图3-69 示教定时器指令说明

特殊定时器指令STMR是用来产生延时断开定时器、单脉冲定时器和闪动定时器。如图3-70所示,m=1~32767,用来指定定时器的设定值;[S.]源操作数取T0~T199(100ms定时器)。T10的设定值为100ms×100=10s,M0是延时断开定时器,M1为单脉冲定时器,M2,M3为闪动而设。

图3-70 特殊定时器指令的使用

(3)交替输出指令 交替输出指令ALT(P)的编号为FNC66,用于实现由一个按钮控制负载的启动和停止。如图3- 71所示,当X0由OFF到ON时,Y0的状态将改变一次。若用连续的ALT指令则每个扫描周期Y0均改变一次状态。 [D.]可取Y、M和S。ALT为16为运算指令,占3个程序步。

图3-71 交替输出指令的使用

2.外部I/0设备指令(FNC70~FNC79)

外部I/0设备指令是FX系列与外设传递信息的指令,共有10条。分别是10键输入指令TKY(FNC70)、16键输入指令HKY(FNC71)、数字开关输入指令DSW(FNC72)、七段译码指令SEGD(FNC73)、带锁存的七段显示指令SEGL(FNC74)、方向开关指令ARWS(FNC75)、ASCII码转换指令ASC(FNC76)、ASCII打印指令PR(FNC77)、特殊功能模块读指令FROM(FNC78)和特殊功能模块写指令T0(FNC79)。

(1)数据输入指令 数据输入指令有10键输入指令TKY(FNC70)、16键输入指令HKY(FNC71)和数字开关输入指令DSW(FNC72)。

10键输入指令(D)TKY的使用如图3-72所示。源操作数[S.]用X0为首元件,10个键X0~X11分别为对应数字0~9。X30接通时执行TKY指令,如果以X2(2)、X9(8)、X3(3)、X0(0)的顺序按键,则[D1.]中存入数据为2830,实现了将按键变成十进制的数字量。当送入的数大于9999,则高位溢出并丢失。使用32位指令DTKY时,D1和D2组合使用,高位大于99999999则高位溢出。

图3-72 10键输入指令的使用

当按下X2后,M12置1并保持至另一键被按下,其它键也一样。M10~M19动作对应于X0~X11。任一键按下,键信号置1直到该键放开。当两个或更多的键被按下时,则首先按下的键有效。X30变为OFF时,D0中的数据保持不变,但M10~M20全部为OFF。此指令的源操作数可取X、Y、M、和S,目标操作数[D.]可取KnY、KnM、KnS、T、C、D、V和Z,[D2.]可取Y、M、S。16位运算占7个程序步,32运算时占13个程序步。该指令在程序中只能使用一次。

16键输入指令(D)HKY的作用是通过对键盘上的数字键和功能键输入的内容实现输入的复合运算。如图3-73所示,[S.]指定4个输入元件,[D1.]指定4个扫描输出点,[D2.]为键输入的存储元件。[D3.]指示读出元件。十六键中0~9为数字键,A~F为功能键,HKY指令输入的数字范围为0~9999,以二进制的方式存放在D0中,如果大于9999则溢出。DHKY指令可在D0和D1中存放最大为99999999的数据。功能键A~F与M0~M5对应,按下A键,M0置1并保持。按下D键M0置0,M3置1并保持。其余类推。如果同时按下多个键则先按下的有效。

图3-73 16键输入指令的使用

该指令源操作数为X,目标操作数[D1.]为Y。[D2]可以取T、C、D、V和Z,[D3.]可取Y、M和S。16位运算时占9个程序步,32位运算时为占17个程序步。扫描全部16键需8个扫描周期。HKY指令在程序中只能使用一次。

数字开关指令DSW的功能是读入1组或2组4位数字开关的设置值。如图3-74所示,源操作数[S]为X,用来指定输入点。[D1]为目标操作数为Y,用来指定选通点。[D2]指定数据存储单元,它可取T、C、D、V和Z。[n]指定数字开关组数。该指令只有16位运算,占9个程序步,可使用两次。图中,n=1指有1组BCD码数字开关。输入开关为X10~X13,按Y10~Y13的顺序选通读入。数据以二进制数的形式存放在D0中。若n=2,则有2组开关,第2组开关接到X14~X17上,仍由Y10~Y13顺序选通读入,数据以二进制的形式存放在D1中,第2组数据只有在n=2时才有效。当X1保持为ON时,Y10~Y13依次为ON。一个周期完成后标志位M8029置1。

图3-74 数字开关指令的使用

(2)数字译码输出指令 数字译码输出指令有七段译码指令SEGD(FNC73)和带锁存的七段显示指令SEGL(FNC74)两条。

七段译码指令SEGD(P) 如图3-75所示,将[S.]指定元件的低4位所确定的十六进制数

(0~F)经译码后存于[D.]指定的元件中,以驱动七段显示器,[D.]的高8位保持不变。如果要显示0,则应在D0中放入数据为3FH。

图3-75 七段译码指令的使用

带锁存的7段显示指令SEGL的作用是用12个扫描周期的时间来控制一组或两组带锁存的七段译码显示。

(3)方向开关指令 方向开关指令ARWS(FNC75)是用于方向开关的输入和显示。如图3-76所示,该指令有四个参数,源操作数[S]可选X、Y、M、S。图中选择X10开始的4个按钮,位左移键和右移键用来指定输入的位,增加键和减少键用来设定指定位的数值。X0接通时指定的是最高位,按一次右移键或左移键可移动一位。指定位的数据可由增加键和减少键来修改,其值可显示在7段显示器上。目标操作数[D1]为输入的数据,由7段显示器监视其中的值(操作数可用T、C、D、V、和Z),[D2]只能用Y做操作数,n=0~3其确定的方法与SEGL指令相同。ARWS指令只能使用一次,而且必须用晶体管输出型的PLC。

图3-76 方向开关指令的使用

(4)ASEII码转换指令 ASCII码转换指令ASC(FNC76)的功能是将字符变换成ASCII码,并存放在指定的元件中。如图3-77所示,当X3有效时,则将FX2A变成ASCII码并送入D300和D301中。源操作数是8个字节以下的字母或数字,目标操作数为T,C,D。它只有16位运算,占11个程序步。

图 3-77 ASEII码转换指令说明

特殊功能模块读指令FROM(FNC78)和特殊功能模块写指令T0(FNC79)将在第6章中介绍。

3. 外围设备(SER)指令(FNC80~FNC)

外围设备(SER)指令包括串行通信指令RS(FNC80)、八进制数据传送指令PRUN(FNC81)、HEX→ASCII转换指令ASCI(FNC82)、ASCII→HEX转换指令HEX(FNC83)、校验码指令CCD(FNC84)、模拟量输入指令VRRD(FNC85)、模拟量开关设定指令VRSC(FNC86)和PID运算指令PID(FNC88)指令。

(1)八进制数据传送指令 八进制数据传送指令(D)PRUN(P)(FNC81)是用于八进制

数的传送。如图3-78所示,当X10为ON时,将X0~X17内容送至M0~M7和M10~M17(因为X为八进制,故M9和M8的内容不变)。当X11为ON时,则将M0~M7送Y0~Y7,M10~M17送Y10~Y17。源操作数可取KnX、KnM,目标操作数取KnY、KnM,n=1~8,16位和32位运算分别占5个和9个程序步。

图 3-78 八进制数据传送指令的使用

(2)16进制数与ASCII码转换指令 有HEX→ASCII转换指令ASCI(FNC82)、ASCII→HEX转换指令HEX(FNC83)两条指令

HEX→ASCII转换指令ASCI(P)的功能是将源操作数[S.]中的内容(十六进制数)转换成ASCII码放入目标操作数[D.]中。如图3- 79所示,n表示要转换的字符数(n=1~256)。M8161控制采用16位模式还是8位模式。16位模式时每4个HEX占用1个数据寄存器,转换后每两个ASCII码占用一个数据寄存器;8位模式时,转换结果传送到[D.]低8位,其高8位为0。PLC运行时M8000为ON,M8161为OFF,此时为16位模式。当X0为ON则执行ASCI。如果放在D100中的4个字符为OABCH则执行后将其转换为ASCII码送入D200和D201中,D200高位放A的ASCII码41H,低位放0的ASCII码30H,D201则放BC的ASCII码,C放在高位。该指令的源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C和D。只有16位运算,占用7个程序步。

图 3-79 HEX→ASCII码转换指令的使用

ASCII→HEX指令HEX(P)的功能与ASCI指令相反,是将ASCII码表示的信息转换成16进制的信息。如图3-80所示,将源操作数D200~D203中放的ASCII码转换成16进制放入目标操作数D100和D101中。只有16位运算,占7个程序步。源操作数为K、H、KnX、 KnY、KnM、KnS、T、C和D,目标操作数为 KnY、KnM、KnS、T、C、D、V和Z。

图3-80 ASCII→HEX指令的使用

(4)校验码指令 校验码指令CCD(P)(FNC84)的功能是对一组数据寄存器中的16进制数进行总校验和奇偶校验。如图3-81所示,是将源操作数[S.]指定的D100~D102共6个字节的8位二进制数求和并“异或”,结果分别放在目标操作数D0和D1中。通信过程中可将数据和、“异或”结果随同发送,对方接收到信息后,先将传送的数据求和并“异或”,

再与收到的和及“异或”结果比较,以此判断传送信号的正确与否。源操作数可取KnX、 KnY、KnM、KnS、T、C和D,目标操作数可取KnM、KnS、T、C和D,n可用K、H或D,n=1~256。为16位运算指令,占7个程序步。

图 3-81 校验码指令的使用

以上PRUN、ASCI、HEX、CCD常应用于串行通信中,配合RS指令。

(5)模拟量输入指令 模拟量输入指令VRRD(P)(FNC85)是用来对FX2N-8AV-BD模拟量功能扩展板中的电位器数值进行读操作。如图3-82所示,当X0为ON时,读出FX2N-8AV-BD中0号模拟量的值(由K0决定),将其送入D0作为T0的设定值。源操作数可取K、H,它用来指定模拟量口的编号,取值范围为0~7;目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。该指令只有16位运算,占5个程序步。

图3-82 模拟量输入指令的使用

(6)模拟量开关设定指令 模拟量开关设定指令VRSC(P)(FNC86)的作用是将FX-8AV中电位器读出的数四舍五入整量化后以0~10之间的整数值存放在目标操作数中。它的源操作数[S.]可取K和H,用来指定模拟量口的编号,取值范围为0~7;目标操作数[D.]的类型与VRRD指令相同。该指令为16位运算,占9个程序步。

4.浮点运算指令

浮点数运算指令包括浮点数的比较、四则运算、开方运算和三角函数等功能。它们分布在指令编号为FNC110~FNC119、FNC120~FNC129、FNC130~FNC139之中。

(1)二进制浮点数比较指令ECMP(FNC110) DECMP(P)指令的使用如图3-83所示,将两个源操作数进行比较,比较结果反映在目标操作数中。如果操作数为常数则自动转换成二进制浮点值处理。该指令源操作数可取K、H和D,目标操作数可用Y、M和S。为32位运算指令,占17个程序步。

图3-83 二进制浮点数比较指令的使用

(2)二进制浮点数区间比较指令EZCP(FNC111) EZCP(P)指令的功能是将源操作数的内容与用二进制浮点值指定的上下二点的范围比较,对应的结果用ON/OFF反映在目标操作数上,如图3-84所示。该指令为32位运算指令,占17个程序步。源操作数可以是K,H

和D;目标操作数为Y、M和S。[S1.]应小于[S2.],操作数为常数时将被自动转换成二进制浮点值处理。

图3-84 二进制浮点数区间比较指令的使用

(3)二进制浮点数的四则运算指令 浮点数的四则运算指令有加法指令EADD (FNC120)、减法指令ESUB(FNC121)、乘法指令EMVL(FNC122)和除法指令EDIV(FNC123)四条指令。四则运算指令的使用说明如图3-85所示,它们都是将两个源操作数中的浮点数进行运算后送入目标操作数。当除数为0时出现运算错误,不执行指令。此类指令只有32位运算,占13个程序步。运算结果影响标志位M8020(零标志)、M8021(借位标志)、M8022(进位标志)。源操作数可取K、H和D,目标操作数为D。如有常数参与运算则自动转化为浮点数。

图3-85 二进制浮点数四则运算指令的使用

二进制的浮点运算还有开平方、三角函数运算等指令,在此不一一说明。 5.时钟运算指令(FNC160~FNC169)

共有七条时钟运算类指令,指令的编号分布在FNC160~FNC169之间。时钟运算类指令是对时钟数据进行运算和比较,对PLC内置实时时钟进行时间校准和时钟数据格式化操作。

(1)时钟数据比较指令TCMP(FNC160) TCMP(P)它的功能是用来比较指定时刻与时钟数据的大小。如图3- 86所示,将源操作数[S1.]、[S2.]、[S3.]中的时间与[S.]起始的3点时间数据比较,根据它们的比较结果决定目标操作数[D.]中起始的3点单元中取ON或OFF的状态。该指令只有16位运算,占11个程序步。它的源操作数可取T、C和D,目标操作数可以是Y、M和S。

图3-86 时钟数据比较指令的使用

(2)时钟数据加法运算指令TADD(FNC162) TADD(P)指令的功能是将两个源操作数的内容相加结果送入目标操作数。源操作数和目标操作数均可取T,C和D。TADD为16位运算,占7个程序步。如图3-87所示,将[S1.]指定的D10~D12和D20~D22中所放的时、分、秒相加,把结果送入[D.]指定的D30~D32中。当运算结果超过24小时时,进位标志位变为ON,将进行加法运算的结果减去24小时后作为结果进行保存。

图3-87 时钟数据加法运算指令的使用

(3)时钟数据读取指令TRD(FNC166) TRD(P)指令为16位运算,占7个程序步。[D.]可取T,C和D。它的功能是读出内置的实时时钟的数据放入由[D.]开始的7个字内。如图3-87所示,当X1为ON时,将实时时钟(它们以年、月、日、时、分、秒、星期的顺序存放在特殊辅助寄存器D8013~8019之中)传送到D10~D16之中。

图3-88 时钟数据读取指令的使用

6.格雷码转换及模拟量模块专用指令

(1)格雷码转换和逆转换指令 这类指令有2条:GRY (FNC170)和GBIN (FNC171),常用于处理光电码盘编码盘的数据。(D)GRN(P)指令的功能是将二进制数转换为格雷码,(D)GBIN(P)指令则是GRY的逆变换。如图3-所示,GRY指令是将源操作数[S.]中的二进制数变成格雷码放入目标操作数[D.]中,而GBIN指令与其相反。它们的源操作数可取任意数据格式,目标操作数为KnY、KnM、KnS、T、C、D、V和Z。、16位操作时占5个程序步,32位操作时占9个程序步。

图 3- 格雷码转换和逆转换指令的使用

(2)模拟量模块读写指令 这类指令有2条:RD3A (FNC176)和WR3A (FNC177),其功能是对FXON-3A模拟量模块输入值读取和对模块写入数字值。如图3-90所示,[m1.]为特殊模块号K0~K7,[m2.]为模拟量输入通道K1或K2,[D.]为保存读取的数据,[S.]为指定写入模拟量模块的数字值。指令均为16位操作,占7个程序步。

图 3-90 模拟量模块读写指令的使用

7.触点比较指令(FNC224~FNC246) 触点比较指令共有1

(1)LD触点比较指令 该类指令的助记符、代码、功能如表3-17所示。

表3-17 LD触点比较指令

功能指令代码 FNC224 FNC225 FNC226 FNC228 FNC229 FNC230 助记符 (D)LD= (D)LD> (D)LD< (D)LD<> (D)LD≤ (D)LD≥ 导通条件 [S1.]=[S2.] [S1 ]>[S2.] [S1.]< [S2.] [S1.]≠[S2.] [S1.]≤[S2.] [S1.]≥[S2.] 非导通条件 [S1.]≠[S2.] [S1.]≤[S2.] [S1.]≥[S2.] [S1.]=[S2.] [S1.]>[S2.] [S1.]<[S2.] 如图3-91所示为LD=指令的使用,当计数器C10的当前值为200时驱动Y10。其它LD触点比较指令不在此一一说明。

图3-91 LD=指令的使用

(2)AND触点比较指令 该类指令的的助记符、代码、功能如表3-18所示。

表3-18 AND触点比较指令

功能指令代码 FNC232 FNC233 FNC234 FNC236 FNC237 FNC238 助记符 (D)AND= (D)AND> (D)AND< (D)AND<> (D)AND≤ (D)AND≥ 导通条件 [S1.]=[S2.] [S1 ]>[S2.] [S1.]< [S2.] [S1.]≠[S2.] [S1.]≤[S2.] [S1.]≥[S2.] 非导通条件 [S1.]≠[S2.] [S1.]≤[S2.] [S1.]≥[S2.] [S1.]=[S2.] [S1.]>[S2.] [S1.]<[S2.] 如图3-92所示为AND=指令的使用,当X0为ON且计数器C10的当前值为200时,驱动Y10。

图3-92 AND=指令的使用

(3)OR触点比较指令

该类指令的的助记符、代码、功能列于下表3-19中。

表3-19 OR触点比较指令

功能指令代码 FNC240 FNC241 助记符 (D)OR= (D)OR> 导通条件 [S1.]=[S2.] [S1 ]>[S2.] 非导通条件 [S1.]≠[S2.] [S1.]≤[S2.] FNC242 FNC244 FNC245 FNC246

(D)OR< (D)OR<> (D)OR≤ (D)OR≥ [S1.]< [S2.] [S1.]≠[S2.] [S1.]≤[S2.] [S1.]≥[S2.] [S1.]≥[S2.] [S1.]=[S2.] [S1.]>[S2.] [S1.]<[S2.] OR=指令的使用如图3-93所示,当X1处于ON或计数器的当前值为200时,驱动Y0。

图3-93 OR=指令的使用

触点比较指令源操作数可取任意数据格式。16位运算占5个程序步,32位运算占9个程序步。

习 题

3-1 FX系列PLC型号命名格式中各符号代表什么?

3-2 FX系列PLC的基本单元、扩展单元和扩展模块三者有何区别?主要作用是什么? 3-3 FX系列PLC主要有哪些特殊功能模块?

3-4 FX2N系列PLC定时器有几种类型?它们各自的特点?

3-5 FX2N系列PLC定时器有几种类型?计数器C200~C234的记数方向如何确定? 3-6 FX2N系列高速计速器有几种类型?哪些输入端可作为其计数输入? 3-6 PLC的主要技术指标有哪些?

3-7 FX2N共有几条基本指令?各条的含义如何?

3-8 FX2N系列PLC的步进指令有几条?其主要用途是什么?

3-9 FX2N系列PLC的功能指令共有哪几种类型?其表达形式应包含那些内容? 3-10 功能指令中何为连续执行?何为脉冲执行? 3-11 写出如图3-94所示梯形图的语句表。

图3-94 题11图

3-12 写出如图3-95所示梯形图的语句表。

图3-95 题12图

3-13 用栈存储器指令写出如图3-96所示梯形图的语句表。

图3-96 题13图

3-14 用栈存储器指令写出图3-97所示梯形图的语句表。

图3-97 题14图

3-15 写出图3-98所示梯形图的语句表。

图3-98 题15图

3-16 画出下列指令表程序对应的梯形图。

(1) LD X1

AND X2

OR X3

ANI X4 OR M1 LD X5 AND X6 OR M2 ANB ORI M3 OUT Y2 (2)LD X0

MPS LD X1 OR X2 ANB OUT Y0 MRD LD X3 AND X4

LD X5 AND X6 ORB ANB OUT Y1 MPP AND X7 OUT Y2 LD X10 OR X11 ANB OUT Y3

3-17 画出图3-99中M120和Y3波形。

图3-99 题17图

3-18 用SET、RST指令和微分指令设计满足如图3-100所示的梯形图。

图3-100 题18图

3-19 当输入条件X0满足时,将C8的当前值转换成BCD码送到输出元件K4Y0中,画出梯形图。

3-20 计算D5、D7、D9之和并放入D20中,求以上三个数的平均值,将其放入D30。 3-21 当X1为ON时,用定时器中断,每99ms将Y10~Y13组成的位元件组K1Y10加1,设计主程序和中断子程序。

3-22 路灯定时接通、断开控制要求是19:00开灯,6:00关灯,用时钟运算指令控制,设计出梯形图。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务