可编程控制器原理与实践(三菱FX2N系列)-第2章指令.ppt

上传人:za****8 文档编号:15869255 上传时间:2020-09-11 格式:PPT 页数:152 大小:1.38MB
返回 下载 相关 举报
可编程控制器原理与实践(三菱FX2N系列)-第2章指令.ppt_第1页
第1页 / 共152页
可编程控制器原理与实践(三菱FX2N系列)-第2章指令.ppt_第2页
第2页 / 共152页
可编程控制器原理与实践(三菱FX2N系列)-第2章指令.ppt_第3页
第3页 / 共152页
点击查看更多>>
资源描述
第3章 三菱FX2N指令系统计,教学提示:本章概述了三菱FX2N系列的内部组件,主要介绍三菱FX2N系列的23条基本指令以及实际应用。介绍了步进指令及其编程方法,简要阐述了单流程SFC的结构流程,有关状态转移的编制方法将在第4章详细阐述。同时PLC还有强大的功能指令,本章还将对常用功能指令的格式、类型以及每条功能指令的使用要素进行介绍 。 教学目标:通过本章的学习,要求能应用基本指令解决一般的继电接触控制问题;能熟练设计步进梯形图并应用步进指令解决复杂问题;掌握各类功能指令及运用功能指令编程的方法 。,3.1 概 述,3.2 FX2N系列PLC内部组件,3.3 三菱FX系列基本指令,3.5 三菱FX系列功能指令,3.4 步进指令与状态编程,3.1 概述,三菱公司是日本生产PLC的主要厂家之一。先后推出的PLC系列有F(F1、F2)、FX(FX0、FX0N、FX2、FX2C、FX1S、FX1N、FX2N、FX2NC、FX3U、FX3G)、A(A1、A2、A3)和Q等系列。F系列现已停产,取而代之的是FX系列。其中FX2N是有代表性的小型PLC,在小型化、高速度、高性能等方面都是FX系列中较高档次的小型可编程序控制器。而目前FX3U、FX3G也已面市。FX2N的运行控制方法是通过储存的程序周期运转,I/O控制方法是当执行END指令时批次处理方法(I/O指令可以刷新)。 FX2N基本指令的运转处理时间是0.08S/指令,应用指令的运转处理时间是1.52至几百S/指令。FX2N的编程语言是逻辑梯形图和指令清单(使用步进梯形图能生成SFC类型程序)。FX2N的程序容量是8000步内置(使用附加寄存器盒可扩展到16000步)。FX2N可用的指令数目分别是基本指令27条,步进梯形指令2条,应用指令128条(最大可用298条)。其I/O配置按用户的选择最大硬体I/O配置点256,最大软件可设定地址输入256、输出256。,FX2N基本性能: 如下表所示,3.2 FX2N系列PLC内部组件,FX2N系列产品,它内部的编程元件,也就是支持该机型编程语言的软元件,按通俗叫法分别称为继电器、定时器、计数器等,但它们与真实元件有很大的差别,一般称它们为“软继电器”。这些编程用的继电器,它的工作线圈没有工作电压等级、功耗大小和电磁惯性等问题;触点没有数量限制、没有机械磨损和电蚀等问题。它在不同的指令操作下,其工作状态可以无记忆,也可以有记忆,还可以作脉冲数字元件使用。一般情况下,X代表输入继电器,Y代表输出继电器,M代表辅助继电器,SPM代表专用辅助继电器,T代表定时器,C代表计数器,S代表状态继电器,D代表数据寄存器, MOV代表传输等。,1. 输入继电器X(X0X177) PLC的输入端子是从外部开关接受信号的窗口,PLC内部与输入端子连接的输入继电器X是用光电隔离的电子继电器,它们的编号与接线端子编号一致(按八进制编号),最多为128个点,线圈的吸合或释放只取决于PLC外部触点的状态。内部有常开/常闭两种触点供编程时随时使用,且使用次数不限。输入电路的时间常数一般小于10ms。各基本单元都是八进制输入的地址,输入为X000X007,X010X017,X020X027,。它们一般位于机器的上端。,图3.1 输入、输出继电器等效电路图,2. 输出继电器Y(Y0Y177) PLC的输出端子是向外部负载输出信号的窗口。输出继电器的线圈由程序控制,输出继电器的外部输出主触点接到PLC的输出端子上供外部负载使用,其余常开/常闭触点供内部程序使用。输出继电器的电子常开/常闭触点使用次数不限。输出电路的时间常数是固定的。PLC的输出继电器是无源的,因此需要外接电源。FX2N系列的输出继电器也是采用八进制,输出为Y000Y007,Y010Y017,Y020Y027,最多为128点。它们一般位于机器的下端。 需要注意的是,FX系列PLC中除了输入/输出继电器采用八进制地址外,其余软组件都是采用十进制地址。另外,输出继电器的初始状态为断开状态。,3. 辅助继电器M PLC内有很多的辅助继电器,其线圈与输出继电器一样,由PLC内各软元件的触点驱动。作用相当于继电器控制系统中的中间继电器,用于状态暂存、辅助一位运算及特殊功能等。辅助继电器没有向外的任何联系,只供内部编程使用。它的电子常开/常闭触点使用次数不受限制。但是,这些触点不能直接驱动外部负载,外部负载的驱动必须通过输出继电器来实现。如图3.2中的M300,它只起到一个自锁的功能。,图3.2 辅助继电器的使用,辅助继电器的地址编号是采用十进制的,共分为三类:通用型辅助继电器、断电保持型辅助继电器和特殊用途型辅助继电器。其中通用型从M0M499共500点;断电保持型分为可修改和专用,可修改从M500M1023共524点,专用从M1024M3071共2048点;特殊用途型从M8000M8255共256点。 (1) 通用型辅助继电器(M0M499) 共有500点通用辅助继电器,用作状态暂存、中间过渡等。特点是线圈通电,触点动作,线圈断电,触点复位,没有断电保持功能。如果在PLC运行时突然断电,这些继电器将全部变为OFF状态。若再次通电之后,除了因外部输入信号而变为ON状态的以外,其余的仍将保持为OFF状态。,(2) 断电保持型辅助继电器(M500M3071) 不少控制系统要求继电器能够保持断电瞬间的状态。断电保持辅助继电器就是用于这种场合的,断电保持由PLC内装锂电池支持。FX2N系列有M500M1023共524个断电保持辅助继电器。当PLC断电并再次通电之后,这些继电器会保持断电之前的状态。其他特性与通用辅助继电器完全一样。 此外,还有M1024M3071共2048个断电保持专用辅助继电器,它与断电保持辅助继电器的区别是断电保持辅助继电器可用参数来设定,可变更非断电保持区域。而断电保持专用辅助继电器的断电保持特性无法用参数来改变。,(3) 特殊功能辅助继电器(M8000M8255) 从M8000到M8255这256个辅助继电器区间是不连续的,也就是说有一些辅助继电器是根本不存在的,对这些没有定义的继电器无法进行有意义的操作。有定义的特殊功能辅助继电器可分为两大类。 触点利用型 这类是反映PLC的工作状态,接点的通或断的状态直接由PLC自动驱动。在编制用户程序时,用户只能使用其接点,不能对其驱动。 例如,M8000:为运行监控用,PLC运行时,M8000始终被接通。这样在运行过程中,其常开触点始终“闭合”,常闭触点始终“断开”。用户在编制用户程序时,可以根据不同的需要,使用M8000的常开触点或常闭触点。,M8002:仅在PLC投入运行开始瞬间接通一个扫描周期的初始脉冲。 M8013:每秒发出一个脉冲信号,即自动地每秒ON一次。 M8020:加减运算结果为零时状态为ON,否则为OFF。 M8060:F0地址出错时置位(ON)。例如对不存在的X或Y进行了操作。 线圈驱动型 这类是可控制的特殊功能辅助继电器,驱动这些继电器之后,PLC将做一些特定的操作。例如,M8034: ON时禁止所有输出。 M8030: ON时熄灭电池欠电压指示灯。 M8050: ON时禁止I0中断。,4. 状态组件S 状态组件是构成状态转移图的重要器件,与步进顺控指令配合使用。常开常闭触点的使用次数不受限制。不用于步进顺控指令时,状态组件也可以作为辅助继电器使用。FX2N系列共有1000点状态组件,地址号和功能见表3.9 。,5. 定时器T(T0T255) 定时器相当于继电器系统中的时间继电器,可在程序中用于延时控制,PLC里的定时器都是通电延时型。定时器工作是将PLC内的1ms、10ms、100ms等时钟脉冲相加,当它的当前值等于设定值时,定时器的输出触点(常开或常闭)动作,即常开触点接通,常闭触点断开。定时器触点使用次数不限。定时器的设定值可由常数(K)或数据寄存器(D)中的数值设定。使用数据寄存器设定定时器设定值时,一般使用具有掉电保持功能的数据寄存器,这样在断电时不会丢失数据。定时器按工作方式不同可分为普通定时器和积算定时器两类 。定时器的地址号及设定时间范围如下: 100ms普通定时器T0T199,共200点,设定值:0.13276.7s。 10ms普通定时器T200TT245,共46点,设定值:0.01327.67s。 1ms积算定时器 T246T249,共4点,执行中断保持,设定值:0.00132.767s。 100ms积算定时器T250T255,共6点,定时中断保持,设定值:0.13276.7s。,(1) 普通定时器(T0T245) 普通定时器在梯形图中的使用和动作时序如图3.3(a)所示:,(a) 普通定时器 (b) 积算定时器 图3.3 定时器的使用及动作时序,当X000接通时,T0线圈被驱动,T0的当前值计数器对100ms的时钟脉冲进行累积计数,当前值与设定值K12相等时,定时器的输出接点动作,即输出触点是在驱动线圈后的1.2秒(100ms12=1.2s)时才动作,当T0触点吸合后,Y000就有输出。当输入X000断开或发生停电时,定时器就复位,输出触点也复位。,(2) 积算定时器(T246T255) 积算定时器在梯形图中的使用和动作时序如图3.3(b)所示。定时器线圈T250的驱动输入X001接通时,T250的当前值计数器对100ms的时钟脉冲进行累积计数,当该值与设定值K345相等时,定时器的输出触点动作。计数中途即使X1断开或断电,T250线圈失电,当前值也能保持。输入X001再次接通或复电时,计数继续进行,直到累计延时到34.5s(100ms345=34.5s)时触点动作。任何时刻只要复位输入X002接通,定时器就复位,输出触点也复位。一般情况下,从定时条件采样输入到定时器延时输出控制,其延时最大误差为2TC,TC为一个程序扫描周期。,6. 计数器C(C0C255) 计数器在程序中用作计数控制,FX2N系列提供了256个计数器。当计数器的当前值和设定值相等时,触点动作。计数器的触点可以无限次使用。根据计数方式和工作特点可分为内部信号计数器和高速计数器。,(1) 内部信号计数器 在执行扫描操作时,对内部器件X、Y、M、S、T和C的信号(通/断)进行计数。其接通时间和断开时间应比PLC的扫描周期稍长。内部信号计数器按工作方式有可分为以下几种类型。 16位增计数器 FX2N中的16位增计数器,是16位二进制加法计数器,它是在计数信号的上升沿进行计数,计数设定值为K1K32767,设定值K0和K1的含义相同,均在第一次计数时,其输出触点就动作。计数器又分通用型和断电保持型,其中C0C99共100点是通用型16位加法计数器,C100C199共100点是断电保持型16位加法计数器。当切断PLC的电源时,普通型计数器当前值自动清除,而断电保持型计数器则可存储停电前的计数器数值,当再次通电时,计数器可按上一次数值累积计数。图3.4是加法计数器的动作过程。,图3.4 16位增计数器的动作过程,X1是计数器输入信号,每接通一次,计数器C0当前值加1,当前值与设定值相等时,即当前值为8时,计数器输出触点动作,即常开触点接通,常闭触点断开。当C0触点吸合后,Y000就有输出。之后即使X1再接通,计数器的当前值保持不变。当复位输入X0接通时,执行RST复位指令,计数器C0被复位,当前值变为0,输出触点断开。 计数器的设定值除了用常数K设定外,也可由数据寄存器来指定,这要用到后述的功能指令MOV。, 32位增/减双向计数器 32位增/减双向计数器的计数设定值为- 2147483648+2147483647。双向计数器也有两种类型,即通用型C200C219共20点,断电保持型C220C234共15点。增/减计数由特殊辅助继电器M8200M8234设定。对应的特殊辅助继电器接通(ON)时,为减计数;反之为加计数。32位增/减双向计数器对应切换的特殊辅助继电器见表3.10。,与16位计数器一样,可直接用常数K或间接用数据寄存器D的内容作为设定值,设定值可正、可负。间接设定时,数据寄存器将连号的内容变为一对,作为32位双向计数器的设定值。如在指定D0时,D1与D0两项作为32位设定值处理。 图3.5是32位双向计数器的动作过程。其中X12为计数方向设定信号,X13为计数器复位信号,X14为计数器输入信号。在计数器的当前值由-4到-3增加时,输出触点接通(置ON),由-3到-4减小时,输出触点断开(复位)。当复位输入X13接通时,计数器的当前值就为0,输出触点也复位。若计数器从+2147483647起再进行加计数,当前值就变成-2147483648,同样从-2147483648再减,当前值就变成+2147483647,称为循环计数。,图3.5 32位双向计数器的动作过程,(2) 高速计数器 高速计数器是对外部输入的高速脉冲信号(周期小于扫描周期)进行计数,可以执行数千赫的计数。高速计数器共21点,其地址号为C235C255。适用于高速计数器输入端只有6点,X000X005,即高速脉冲信号只允许从这6个端子上引入,其它端子不能对高速脉冲进行处理。高速计数器的计数频率较高,它们的输入信号的频率受二方面的限制。一是输入端的响应速度。二是全部高速计数器的处理时间。因它们采用中断方式,所以计数器用的越少,则可计数频率就越高。单独使用单相C235、C236、C246最高可以对60kHz高速脉冲进行计数;C251(双相)最高频率为30kHz。当多个高速计数、脉冲输出同时使用时,频率会降低,不超过一定的总计频率数。X006和X007也是高速输入,但只能用作启动信号而不能用于高速计数。,高速计数器的选择并不是任意的,它取决于所需高速计数器的类型及高速输入端子。高速计数器的类型可分为: (1) 1相无启动/复位高速计数器C235C240; (2) 1相带启动/复位高速计数器C241C245; (3) 1相2输入(双向)高速计数器C246C250; (4) 2相输入(A-B相型)高速计数器C251C255。具体见表3.11。,7. 数据寄存器D 数据寄存器是计算机必不可少的元件,用于存放各种数据。FX2N中每一个数据寄存器都是16bit(最高位为正、负符号位),也可用两个数据寄存器合并起来存储32bit数据(最高位为正、负符号位)。 (1) 通用数据寄存器D 通道分配:D0D199,共200点。 只要不写入其他数据,已写入的数据不会变化。但是,由RUNSTOP时,全部数据均清零。(若特殊辅助继电器M8033已被驱动,则数据不被清零)。,(2) 停电保持用寄存器 通道分配:D200D511,共312点,或D200D999,共800点(由机器的具体型号定)。 功能基本与通用数据寄存器相同。除非改写,否则原有数据不会丢失,不论电源接通与否,PLC运行与否,其内容也不变化。然而在二台PLC作点对点的通信时,D490D509被用作通信操作。 (3) 文件寄存器 通道分配:D1000D2999,共2000点。 文件寄存器是在用户程序存储器(RAM、EEPROM、EPROM)内的一个存储区,以500点为一个单位,最多可在参数设置时到2000点。用外部设备口进行写入操作。在PLC运行时,可用BMOV指令读到通用数据寄存器中,但是不能用指令将数据写入文件寄存器。用BMOV将数据写入RAM后,再从RAM中读出。将数据写入EEPROM盒时,需要花费一定的时间,务必请注意。,(4) RAM文件寄存器 通道分配:D6000D7999,共2000点。 驱动特殊辅助继电器M8074,由于采用扫描被禁止,上述的数据寄存器可作为文件寄存器处理,用BMOV指令传送数据(写入或读出)。 (5) 特殊用寄存器 通道分配:D8000D8255,共256点。 是写入特定目的的数据或已经写入数据寄存器,其内容在电源接通时,写入初始化值(一般先清零,然后由系统ROM来写入)。,8. 指针P/I (1) 分支指令用指针 P标号共有128点,从P0P62,P64P127,P63结束跳转用,不能随意指定,P63相当于END。用来指定跳转指令CJ或子程序调用指令CALL等分支指令的跳转目标。P标号在整个程序中只允许出现一次,但可以多次引用。 P标号用在跳转指令中,使用格式:CJ P0 CJ P62 P标号用在子程序调用指令中,使用格式: CALL P0 CALL P63 (2) 中断用指针 标号专用于中断服务程序的入口地址,有15点,其中I000I500共六点用于外中断,由输入继电器X0X5引起中断。I600I800共三点用于插入计数。余下的六点, I010I060用于计数器中断。,9. 常数K/H 常数也作为器件对待,它在存储器中占有一定的空间,PLC最常用的是两种常数K、H。K表示十进制,如:K30表示十进制的30。H表示十六进制,如:H64就是对应十进制的100。常数一般用于定时器、计数器的设定值或数据操作。,3.3 三菱FX系列基本指令,3.3.1 LD、LDI、OUT指令,3.3.2 AND、ANI指令,3.3.3 OR、ORI指令,3.3.4 LDP、LDF、ANDP、ANDF、ORP、ORF指令,3.3.5 串联电路块并联指令ORB和并联电路块串联指令ANB,3.3.6 MPS、MRD、MPP指令,3.3.10基本指令应用举例,3.3.7 置位指令SET和复位指令RST,3.3.8 取反指令INV,3.3.9 空操作指令NOP和结束指令END,3.3.1 LD、LDI、OUT指令 LD(Load)取指令。用于将常开触点接到母线上。另外,与后述的ANB、ORB指令组合,在分支起点处也可使用。 LDI(Load Inverse)取反指令。与LD的用法相同,只是LDI是对常闭触点。 OUT(Out)输出指令,也叫线圈驱动指令。是对输出继电器、辅助继电器、状态继电器、定时器、计数器的线圈驱动,对于输入继电器不能使用。OUT指令用于并行输出,在梯形图中相当于线圈是并联的。OUT指令能连续使用多次,不能串联使用。 LD、LDI、OUT三条指令的指令说明见表3.12。,表3.12 指令说明,LD、LDI是一个程序步指令,一个程序步即是一个字;OUT是多程序步指令,要视目标元件而定。当对定时器T、计数器C使用OUT指令时,必须设置常数K,K值设定范围与步数值如表3.13。,表3.13 常数K的设定范围与步数值,图3.8 LD、LDI、OUT指令的使用,3.3.2 AND、ANI指令 AND(And)与指令。用于单个常开触点的串联。 ANI(And Inverse)与非指令。用于单个常闭触点的串联。 AND、ANI的指令说明见表3.14。,表3.14 AND、ANI指令说明,AND、ANI都是一个程序步指令,串联触点个数没有限制,该指令可以连续多次使用。如果有两个以上的触点并联连接,并将这种并联回路与其他回路串联连接时,要采用后述的ANB指令。OUT指令后,通过触点对其他线圈使用OUT指令实现纵接输出时,如图3.9中的OUT Y2,如果顺序不错,可以重复连续使用。,图3.9 AND、ANI指令的使用,3.3.3 OR、ORI指令 OR(Or)或指令。用于单个常开触点的并串联。 ORI(Or Inverse)或非指令。用于单个常闭触点的并联。 OR、ORI的指令说明见表3.15。,表3.15 OR、ORI指令说明,OR、ORI都是一个程序步指令,并联触点个数没有限制,该指令可以连续多次使用。如果有两个以上的触点串联连接,并将这种串联回路与其他回路并联连接时,要采用后述的ORB指令。指令使用如图3.11。,图3.11 OR、ORI指令的使用,3.3.4 LDP、LDF、ANDP、ANDF、ORP、ORF指令 LDP取脉冲上升沿指令。用来作上升沿检测,在输入信号的上升沿接通一个扫描周期。 LDF取脉冲下降沿指令。用来作下降沿检测,在输入信号的下降沿接通一个扫描周期。 ANDP与脉冲上升沿指令。用来作上升沿检测。 ANDF与脉冲下降沿指令。用来作下降沿检测。 ORP或脉冲上升沿指令。用来作上升沿检测。 ORF或脉冲下降沿指令。用来作下降沿检测。 指令说明如表3.16。,表3.16 指令说明,这是一组与LD、AND、OR指令相对应的脉冲式触点指令。指令中P对应上升沿脉冲,F对应下降沿脉冲。指令中的触点仅在操作元件有上升沿/下降沿时导通一个扫描周期。LDP、LDF的使用如图3.12所示,使用LDP指令,Y0仅在X0的上升沿时接通一个扫描周期。使用LDF指令,Y1仅在X1的下降沿时接通一个扫描周期。,图3.12 LDP、LDF指令的使用,ANDP、ANDF指令的使用如图3.13所示,使用ANDP指令,在X2接通后,M0仅在X3的上升沿时接通一个扫描周期。使用ANDF指令,在X4接通后,Y2仅在X5的下降沿时接通一个扫描周期。,图3.13 ANDP、ANDF指令的使用,ORP、ORF指令的使用如图3.14所示,使用ORP指令, M1仅在X10或X11的上升沿时接通一个扫描周期。使用ORF指令,Y3仅在X12或X13的下降沿时接通一个扫描周期。,图3.14 ORP、ORF指令的使用,3.3.5 串联电路块并联指令ORB和并联电路块串联指令ANB ORB串联电路块或。将两个或两个以上串联电路块并联连接的指令。 ANB并联电路块与。将并联电路块的始端与前面电路串联连接的指令。 ORB、ANB的指令说明见表3.17。,表3.17 ORB、ANB指令说明,两个或两个以上的触点串联连接的电路叫串联电路块。串联电路块并联连接时,分支开始用LD、LDI指令,分支结束用ORB指令。ORB指令不带操作元件,其后不跟任何软组件编号。使用时如果有多个串联电路块按顺序与前面的电路并联时,对每个电路块使用ORB,指令如图3.15(b),则对并联的回路个数没有限制。如果集中使用ORB指令并联连接多个串联电路块时,如图3.15(c),由于LD、LDI指令的重复次数限制在8次以下,因此这种电路块并联的的个数限制在8个以下。一般不推荐集中使用ORB指令的方式。使用举例如图3.15。,图3.15 ORB指令的使用,两个或两个以上触点并联的电路称为并联电路块。并联电路块串联连接时,分支的起点用LD、LDI指令,并联电路块结束后用ANB指令与前面电路串联。ANB指令不带操作元件,其后不跟任何软组件编号。若有多个并联电路块按顺序与前面的电路串联时,对每个电路块使用ANB指令,则对串联的回路个数没有限制。而若成批集中使用ANB指令串联连接多个并联电路块时,由于LD、LDI指令的重复次数限制在8次以下,因此这种电路块串联的的个数限制在8个以下。ANB指令使用如图3.16。,图3.16 ANB指令的使用,3.3.6 MPS、MRD、MPP指令 MPS(Push)进栈指令。 MRD(Read)读栈指令。 MPP(Pop)出栈指令。 这三条指令都是无目标元件指令,都为一个程序步长,这组指令多用于多输出电路。 指令说明见表3.18。,表3.18 MPP、MRD、MPP指令说明,PLC中有11个存储中间运算结果的存储区域被称为栈存储器。栈存储器采用先进后出的数据存取方式。如图3.17。,图3.17 栈操作示意,使用一次MPS指令就将此时的运算结果送入栈存储器的第一层进行存储。再使用MPS指令,又将此时的运算结果送入栈存储器的第一层进行存储,而将原先存入的数据依次移到栈存储器的下一层。 MRD是读出最上层所存的最新数据的专用指令。读出时,栈内数据不发生移动,仍然保持在栈内的位置不变。 使用MPP指令,各层数据依次向上移动,将最上端的数据读出后,该数据就从栈存储器中消失。 MPS指令用于存储电路中有分支处的逻辑运算结果。MPS、MPP必须成对使用,连续使用的次数应小于11。MRD可以多次使用,但最终输出回路必须采用MPP指令,从而在读出存储数据的同时将它复位。 MPS、MRD、MPP指令的使用如图3.18一层堆栈,图3.19二层堆栈。图3.20是一个四层堆栈梯形图,如改为图3.21,则不必使用MPS指令,编程也方便。,图3.18 一层堆栈梯形图,图3.19 二层堆栈梯形图,图3.20 四层堆栈梯形图,图3.21 不用MPS指令的图3.20等效梯形图,3.3.7 置位指令SET和复位指令RST SET置位指令。使动作保持。 RST复位指令。消除动作保持,当前值及寄存器清零。 SET指令的操作目标元件为Y,M,S,而RST指令的操作元件为Y、M、S、T、C、D、V、Z。这两条指令是13程序步。指令说明见表3.19。,表3.19 SET、RST指令说明,SET和RST指令的使用没有顺序限制,也可以多次使用,并且SET和RST之间可以插入别的程序,但最后执行的一条有效。具体使用如图3.22。,图3.22 SET、RST的使用,RST指令的操作元件除了与SET指令相同的Y,M,S外,还有T,C,D。即对数据寄存器D和变址寄存器V、Z的清零操作,以及对定时器T(包括累计定时器)和计数器C的复位,使它们的当前计时值和计数值清零。如图3.23,C0对X1的上升沿次数进行增计数,当达到设定值K10时,输出触点C0动作。此后,X1即使再有上升沿的变化,计数器的当前值不变,输出触点仍保持动作。为了将此清除,让X0接通,对计数器复位,使输出触点复位。,图3.23 对计数器的复位使用,3.3.8 取反指令INV INV指令是将INV指令执行之前的运算结果取反的指令,即执行INV指令前的运算结果为OFF,执行INV指令后的运算为ON。该指令不能直接与母线连接,也不能单独使用。该指令是一个无操作元件指令,占一个程序步。指令说明见表3.20。,表3.20 INV指令说明,INV的使用如图3.24所示,当X0断开时,Y0为ON,如果X0接通,则Y0为OFF。,图3.24 INV指令的使用,3.3.9 空操作指令NOP和结束指令END NOP空操作指令。空一条指令(或用于删除一条指令)。 END程序结束指令。 指令说明见表3.21。,表3.21 NOP、END指令说明,在普通的指令加入NOP指令,对程序执行结果没有影响。但是将已写入的指令换成NOP,则被换的程序被删除,程序发生变化。所以可用NOP指令对程序进行编辑。比如,AND和ANI指令改为NOP,相当于串联接点被短路。OR和ORI指令改为NOP,相当于并连接点被开路。变化见图3.25。如用NOP指令修改后的电路不合理,梯形图将出错。执行程序全清操作后,全部步指令都变为NOP。,图3.25 NOP指令的使用,END是程序结束指令,在程序的最后写入END指令,则END以后的程序不再执行。如果程序结束不用END,在程序执行时会扫描完整个用户存储器,延长程序的执行时间,有时PLC会提示程序出错,程序不能运行。在程序调试阶段,在各程序段插入END指令,可依次检查各程序段的动作,确认前面的程序动作无误后,依次删去END指令,有助于程序的调试。,3.3.10 基本指令应用举例 综合以上所学的基本指令,本节将举例说明基本指令的应用。 1. 保持电路 如图3.27所示,将输入信号加以保持记忆。当X000接通,辅助继电器M0接通并保持,Y000有输出。X000断开后,Y000仍有输出.只有当X001接通,其常闭触点断开,才能使M0断开,使Y000无输出。,图3.27 保持电路,2. 延时断开电路 如图3.28所示,当X000接通,Y000有输出且触点自锁保持,当X000断开后,启动内部定时器T0,定时5s后,定时器常闭触点断开,输出Y000断开。,图3.28 延时断开电路,(a) 梯形图,(b) 指令表,(c) 时序图,3. 振荡电路 如图3.29所示,当X000接通,输出Y000闪烁,接通与断开交替运行,接通时间为1s由定时器T0设定,断开时间为2s由定时器T1设定。,图3.29 振荡电路,3.4 步进指令与状态编程,在编程中对于一个复杂的控制系统,尤其是顺序控制系统,由于内部的联锁、互动关系极其复杂,其梯形图往往长达数百行,编制的难度较大,而且这类程序的可读性也大大降低。运用SFC语言编制复杂的顺控程序,初学者可以很容易掌握。另外也为调试、试运行带来方便。SFC语言是一种通用的流程图语言,三菱PLC在基本逻辑指令之外增加了两条简单的步进顺控指令(STL,意为Step Ladder),同时辅之以大量状态元件,就可以用类似于SFC语言的状态转移图方式编程。,3.4.1 步进指令STL、RET,3.4.2 单流程SFC与步进梯形图编程,3.4.3 单流程状态转移图(步进梯形图)的编程举例,3.4.1 步进指令STL、RET PLC有专门用于编制顺序控制程序的步进指令及编程元件。STL和RET是一对步进指令,STL是步进开始指令,后面的操作元件只能是状态组件S,在梯形图中直接与母线相连,表示每一步的开始。RET是步进结束指令,后面没有操作数,是指状态流程结束,用于返回主程序(母线)。指令说明见表3.22。,表3.22 步进指令说明,STL只能与状态组件S配合时才具有步进功能。FX2N系列的状态组件中有900点(S0S899)可用于构成状态转移图,其中S0S9用于初始步,S10S19用于返回原点。使用STL指令的状态组件的常开触点称为STL触点,用符号 表示,没有常闭的STL触点。 指令使用如图3.30所示。,图3.30 STL指令使用,从图中可以看出状态转移图与梯形图之间的关系。在梯形图中引入步进接点和步进返回指令后,就可以从状态转移图转换成相应的步进梯形图和指令表。对应图3.32(a)的状态转移图的步进梯形图和指令表如图3.30(b)(c)。状态组件代表状态转移图各步,每一步都具有三种功能:负载的驱动处理、指定转换条件和指定转换目标。 STL指令的执行过程为:当步S20为活动步时,S20的STL触点接通,负载Y0有输出。如果转换条件X0满足,后续步S21被置位变成活动步,同时前级步S20自动断开变成不活动步,输出Y0断开。 STL指令的使用特点: (1) 使用STL指令使新的状态置位,前一状态自动复位。当STL触点接通后,与此相连的电路被执行;当STL触点断开时,与此相连的电路停止执行。若要保持普通线圈的输出,可使用具有自保持功能的SET和RST指令。,(2) STL触点与左母线相连,与STL触点右侧相连的触点要使用LD、LDI指令。也就是说,步进指令STL有建立子母线的功能,当某个状态被激活时,步进梯形图上的母线就移到子母线上,所有操作均在子母线上进行。 (3) 使用RET指令使LD、LDI点返回左母线。 (4) 同一状态组件的STL触点只能使用一次(单流程状态转移)。 (5) 梯形图中同一元件的线圈可以被不同的STL触点驱动,也就是说使用STL指令时允许双线圈输出。 (6) STL触点可以直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈和功能指令。 (7) STL指令后不能直接使用入栈(MPS)指令。在STL和RET指令之间不能使用MC、MCR指令。 (8) STL指令仅对状态组件有效,当状态组件不作为STL指令的目标元件时,就具有一般辅助继电器的功能。,3.4.2 单流程SFC与步进梯形图编程,1. 单流程SFC 单流程SFC是状态转移图中的最基本的结构流程。如图3.31所示就是一个单流程的结构。是由顺序排列、依次有效的状态序列组成,每个状态的后面只跟一个转移条件,每个转移条件后面也只连接一个状态。,图3.31 单流程的SFC流程,图中,当状态S20有效时,若转移条件X001接通,状态将从S20转移到S21,一旦转移完成,S20同时复位。同样,当状态S21有效时,若转移条件X002接通,状态将从S21转移到S22,一旦转移完成,S21同时复位。以此类推,直至流程中的最后一个状态。 2. 状态编程的特点 (1) 状态转移图和步进梯形图表达的都是同一个程序,优点是让用户每次只考虑一个状态,而不必考虑其他的状态,从而使编程更容易,而且还可以减少指令的程序步数。 (2) 状态转移图中的一个状态表示顺序控制过程中的一个工步,因此步进梯形图也特别适用于时间和位移等顺序的控制过程,也能形象、直观地表示顺控过程。 (3) 状态编程开始时,必须用STL指令使STL接点接通,从而使主母线与子母线接通,连在子母线上的状态电路才能执行,这时状态就被激活。,(4) 状态的三个功能是在子母线上实现的,所以只有STL接点接通,该状态的负载驱动和状态转移才能被扫描执行。反之,STL接点断开,对应状态就未被激活,则负载驱动和状态转移就不可能执行,该电路将不被扫描而跳过。因此,除初始状态外,其他所有状态只有在转移条件成立时才能被前一状态置位而激活,一旦下一状态激活,前一状态就自动关闭。基于这一特点,使各状态之间的关系十分清晰单纯,不相邻状态间的连锁关系将不复存在,只需集中考虑实现本状态的三大功能即可。 (5) 使程序的可读性更好、更便于理解,也使程序的调试、故障排除变得相对简单。 (6) 状态编程的最后,必须使用步进返回指RET,从子母线返回主母线。若没有RET指令,会将后面的所有程序还看成是当前状态中的指令,由于PLC程序是循环扫描的,也包括了最开始处的指令,这就会引起程序出错而不能运行。,3. 状态编程的规则 从图3.32状态转移图中S20的状态来看,每个状态具有驱动负载、指定转移方向和指定转移条件三个功能。其中指定转移方向和指定转移条件是必不可少的,而负载驱动则视具体情况,没有负载的状态就不必进行负载驱动。在图中当STL接点接通,S20状态有效时,先是用OUT指令驱动输出线圈Y0,然后才是用“SET S21”指令决定转移方向,转向下一相邻状态S21。单流程中的其他状态的编程就参照此模板进行。状态编程的规则如下。 (1) 初始状态的编程。初始状态一般是指一个顺控工艺过程最开始的状态。状态转移图起始位置的状态就是初始状态,初始状态编程必须在其他状态之前。状态组件中S0S9共10个状态组件专用作初始状态。程序首次开始运行时,初始状态必须用其他方法预先驱动,使它处于工作状态,否则状态流程就不可能进行,一般利用系统的初始条件实现如可由PLC从STOPRUN切换瞬间的初始脉冲使特殊辅助继电器接通来驱动初始状态,如图3.32就是用这一方法来驱动初始状态S0,使其置1。开始运行后,初始状态可由其他状态来驱动。,每一个初始状态下面的分支数总和不能超过16个,这是对总分支数的限制,而对总状态数则没有限制。从每一个分支点上引出的分支不能超过8个,所以超过8个的分支不能集中在一个分支点上引出。初始状态编程也可用后面的IST指令。 (2) 一般状态的编程。除了初始状态外,一般状态组件必须在其他状态后加入STL指令来进行驱动,也就是说不能用除状态组件之外的其他方式驱动。一般状态编程时,必须先负载驱动,后转移处理。状态组件不可重复使用。 (3) 相邻的两个状态中不能使用同一个定时器,否则会导致定时器没有复位机会,而引起混乱。在非相邻的状态中可以使用同一个定时器。 (4) 连续转移用SET,非连续转移用OUT。若状态向相邻的下一状态连续转移使用SET指令,但若向非相邻的状态转移,则应改用OUT指令。 (5) 在STL与RET指令之间不能使用MC、MCR等指令。MPS指令也不能紧接着STL后使用。在子程序或中断服务程序中,不能使用STL。,图3.32 初始状态S0的驱动梯形图,3.4.3 单流程状态转移图(步进梯形图)的编程举例,例3.2 图3.33是自动台车控制示意图,台车在启动前位于导轨的中部。一个工作周期的控制工艺如下: 1) 按下启动按钮SB,台车电动机M正转,台车前进,碰到限位开关SQ1后,台车电动机M反转,台车后退。 2) 台车后退碰到限位开关SQ2后,台车电动机M停转,台车停车,停5s,第二次前进,碰到限位开关SQ3,再次后退。 3) 当后退再次碰到限位开关SQ2时,台车停止。 为设计本控制系统的梯形图,先安排输入、输出口及机内器件。台车由电动机M驱动,正转(前进)由PLC的输出点Y1控制,反转(后退)由Y2控制。为了解决延时5s,选用定时器T0。启动按钮SB及限位开关SQ1、SQ2、SQ3分别接到X0、X1、X2、X3。,状态转移图解决顺控问题的方法步骤如下: (1) 将整个控制系统过程按任务要求分解,台车自动往返控制系统流程图见图3.34。 从图3.34可以看出该图的特点: 将复杂的任务或过程分解成若干个工序(状态)。无论多么复杂的过程均能分化为小的工序,这非常有利于程序的结构化设计。,图3.33 自动台车示意图, 相对于某一具体的工序来说,控制任务实现了简化,给局部程序的编制带来了方便。 整体程序是局部程序的综合,只要弄清各工序成立的条件、工序转移的条件和转移的方向,就可进行这类图形的设计。 状态转移流程图可读性强、容易理解,能清晰地反映工艺控制全过程。 将图中的“工序”更换为“状态”,“准备”更换为“初始状态”,就得到了状态转移图。状态转移图是状态编程的重要工具。状态编程的一般思想为:将一个复杂的控制过程分解为若干个工作状态,弄清各状态的工作内容(状态的功能、转移条件和转移方向),根据总的控制顺序要求,将各独立状态联系起来,形成状态转移图,进行绘制梯形图程序,写出语句表。,(2) 分配、确定状态器元件,弄清每个被分配状态器的功能,见表3.23。 需注意的是S20与S23、S21与S24功能相同,但它们是状态转移图中的不同工序,也就是不同状态,故编号也不相同。,图3.34 台车自动往返状态转换流程图,表3.23 工序与状态器及功能对应表,(3) 找出每个状态的转移条件。状态转移图就是状态和状态转移条件及转移方向构成的流程图,所以弄清转移条件是十分必要的。本例中各状态的转移条件是: S20转移条件SB (X0) S21转移条件SQ1 (X1) S22转移条件SQ2 (X2) S23转移条件定时器(T0) S24转移条件SQ3 (X3) (4) 由以上分析,可以得到台车往返控制的顺控状态转移图,见图3.35(a)。 (5) 与SFC对应的步进梯形图,见图3.35(b)。 (6) 根据状态转移图和梯形图写出指令语句表,见图3.35(c)。,【例2】设计三只彩灯(HL1、HL2、HL3)自动闪烁的程序,并写出指令语句表。 控制工艺要求: 1) HL1亮1s后,HL2亮,同时HL1灭;HL2亮1s后,HL3亮,同时HL2灭;HL3亮1s后,三只灯一齐亮1s,灭1s,再一齐亮1s,回到起始点。 2) 用一只点动按钮SB控制三彩灯闪烁。 (1) PLC控制的I/O端口分配见表3.24。,表3.24 彩灯自动闪烁控制I/O分配表,(2) 彩灯自动闪烁状态转移图如图3.36。 (3) 步进梯形图如图3.37。 (4) 指令表如图3.38。,(a) 状态转移图,(b) 梯形图,(c) 指令表,图3.35 台车自动往返控制,(a) 状态转移图,图3.36 彩灯自动闪烁状态转移图,图3.37 彩灯自动闪烁步进梯形图,图3.38 彩灯自动闪烁指令表,3.5 三菱FX系列功能指令,PLC的基本指令是基于继电器、定时器、计数器类等软元件,主要用于逻辑处理的指令。作为工业控制计算机,PLC仅有基本指令是远远不够的。现代工业控制在许多场合需要数据处理,因而PLC制造商在PLC中引入应用指令,也称功能指令。 FX系列PLC除了基本指令、步进指令外,还有200多条功能指令。可分为程序流向控制、数据传送与比较、算术与逻辑运算、数据移位与循环、数据处理、高速处理、方便指令、外部设备通信(I/O模块、功能模块)、浮点运算、定位运算、时钟运算、触点比较等几大类。功能指令实际上就是许多功能不同的子程序。,图3.39 功能指令格式,图3.39这条程序的意思是:当X0为ON时,把常数K123送到数据寄存器D20中去。其中X0是执行条件,MOV是传送功能指令,K123是源操作数,D20是目标操作数。,3.5.1 指令的基本规则,3.5.2 传送指令MOV,3.5.3 移位传送指令SMOV,3.5.4 取反传送指令CML,3.5.5 传送指令BMOV,3.5.6 多点传送指令FMOV,3.5.7 数据交换指令XCH,3.5.8 比较指令CMP,3.5.9 间比较指令ZCP,3.5.10 二进制码转换指令BIN,3.5.11 BCD码转换指令,3.5.12 BIN加1指令INC,3.5.13 BIN减1指令DEC,3.5.14 区间复位指令ZRST,3.5.15 七段解码指令SEGD,3.5.16 位右移指令SFTR,3.5.17 位左移指令SFTL,3.5.1 功能指令的基本规则 1. 功能指令的表示方法 功能指令由指令助记符、功能号、操作数等组成。在简易编程器中,输入功能指令时以功能号输入功能指令;在编程软件中,输入功能指令时以指令助记符输入功能指令。功能指令的表式形式见表3.25。,表3.25 功能指令的表示形式,说明如下: (1) 每一条功能指令有一个功能号和一个助记符,两者严格对应。由表3.25可见,助记符MEAN(求平均值)对应的功能号为FNC45。 (2) 操作数(或称操作元件) 有些功能指令只有助记符而无操作数,但大多数功能指令在助记符之后还必须有15个操作数。组成部分有: S表示源操作数,若使用变址寄存器,表示为S,多个源操作数用S1S2或者S1S2 表示。 D表示目标操作数,若使用变址寄存器,表示为D,多个目标操作数用D1D2或者D1D2 表示。 n表示其他操作数,常用于表示常数或对S和D的补充说明。有多个时用n1、n2表示。表示常数时,K表示十进制数,H表示十六进制数。,(3) 程序步。在程序中,每条功能指令占用一定的程序步数,功能号和助记符占一步,每个操作数占2步或4步(16位操作数是2步,32位操作数是4步)。 (4) 功能指令助记符前加D,表示处理32位数据;指令前不加D,表示处理16位数据。 2. 功能指令的执行方式 功能指令执行方式有连续执行和脉冲执行两种方式。由表3.25可见,在指令的助记符后加符号(P)表示脉冲执行方式。助记符后不加(P)则为连续执行方式。如图3.40所示,在X0从OFFON变化时,该指令执行一次。当执行条件X1为ON时,每个扫描周期都要执行一次。,对某些功能指令如INC、DEC等,用连续执行方式在实用中可能会带来问题。如图4.41所示,是一条INC指令,是对目标组件D10进行加1操作的。假设该指令以连续方式工作的话,那么只要X000是接通的,则每个扫描周期都会对目标组件加1,而这在许多实际的控制中是不允许的。为了解决这类问题,在指令助记符的后面加符号(P),设置了指令的脉冲执行方式。,图3.40 指令执行形式,INC(P)指令的含义:每当X000从断开变为接通时,目标组件就被加1一次。也就是说,每当X000来了一个上升沿,才会执行加1。而在其他情况下,即使X000始终是接通的,都不会执行加1指令。 由此可见,在不需要每个扫描周期都执行指令时,可以采用脉冲执行方式的指令,这样还能缩短程序的执行时间。,图3.41 脉冲执行方式的INC 指令,3. 位元件 只处理ON/OFF两种状态,用一个二进制位表达的元件称位元件。如X、Y、M、S都是位元件。位元件可以组合起来进行数字处理,方法是将多个位组件按4位一组的原则来组合,即用4位BCD码来表示1位十进制数,这样就能在程序中使用十进制数据了。 组合方法的助记符是:Kn+最低位位组件号。如KnX、KnY、KnM、即是位组件组合,其中“K”表示后面跟的是十进制数,“n”表示4位一组的组数,16位数据用K1K4,32位数据用K1K8。数据中的最高位是符号位。如K2M0表示由M0M3和M4M7两位组件组成一个8位数据,其中M7是最高位,M0是最低位。同样,K4M10表示由M10M25四位位组件组成一个16位数据,其中M25是最高位,M10是最低位。 当一个16位数据传送到目标组件K1M0K3M0时,由于目标组件不到16位,所以将只传送16位数据中的相应低位数据,相应高位数据将不传送。32位数据传送也一样。 在作16位数据操作时,参与操作的位元件由K1K4指定。若仅有K1K3时,不足16位的高位均作0处理。这样最高位的符号位必然是0,也就是说只能是正数(符号位的判别是:正0负1)。如执行图3.42所示指令时,数据源只有12位,而目标寄存器D20是16位的,传送结果D20的高4位自动添0,如图3.43所示。,被组合的位元件的最低位位组件号习惯上采用以0结尾的元件,例如K2X0、K4Y10、K3M0、K4S20等。,图3.42 源数据不足16位,图3.43 高4位自动添0,4. 字元件与双字元件 (1) 字元件:处理数据的元件称字元件,如T、C、D等。字元件是FX2系列PLC数据类组件的基本结构,1个字元件是由16位的存储单元构成,其最高位(第15位)为符号位,第014位为数值位。符号位的判别是:正数0,负数1。图3.44所示为16位数据寄存器D0。,图3.44 字元件,(2) 双字元件:可以使用两个字元件组成双字元件,以组成32位数据操作数。双字元件是由相邻的寄存器组成,如图3.45中由D11和D10组成。,图3.45 双字元件,由图可见,低位组件D10中存储了32位数据的低16位,高位组件D11中存储了32位数据的高16位,也就是说,存放原则是:“低对低,高对高”。双字元件中第31位为符号位,第030位为数值位。要注意,在指令中使用双字元件时,一般只用其低位地址表示这个组件,但高位组件也将同时被指令使用。虽然取奇数或偶数地址作为双字元件的低位是任意的,但为了减少组件安排上的错误,建议用偶数作为双字元件的地址。功能指令中的操作数是指操作数本身或操作数的地址。功能指令能够处理16位或32位的数据。,5. 功能指令中的数据长度 因为几乎所有寄存器的二进制位数都是16位,所以功能指令中16位的数据都是以默认形式给出的。如图3.46所示为一条16位MOV指令。,图3.46 16位MOV指令,上述指令含义:当X000接通时,将十进制数100传送到16位的数据寄存器D10中去。当X000断开时,该指令被跳过不执行,源和目的内容都不变。,功能指令除了可以处理16位数据,也可以处理32位数据。只要在助记符前加符号(D),例如在传送指令MOV前加(D)符号时,表示该指令处理32位数据,如图3.47所示。,图3.47 32位MOV指令,该指令含义:当X000接通时,将由D11和D10组成的32位源数据传送到由D13和D12组成的目标地址中去。当X000为断开时,该指令被跳过不执行,源和目的内容都不变。从这里可以看出,32位数据是由两个相邻寄存器构成的,但在指令中写出的是低位地址,高位地址被隐藏了,源和目都是这样表达的。指令中源地址是由D11和D10组成,但只写出低位地址D10,而目标地址由D12和D11组成,但只写出低位地址D12。因此,在32位数据指令中应避免出现如图3.48的错误。所以建议32位双字元件的首地址都用偶地址就是这个道理。,图3.48 错误的32位MOV指令,特别指出32位计数器C200C255不能用作指令的16位操作数。,6. 变址寄存器(V、Z) 变址寄存器V和Z是两个16位的寄存器,除了和通用数据寄存器一样用作数值数据读、写之外,主要还用于运算操作数地址的修改。在传送、比较等指令中用来改变操作对象的组件地址,变址方法是将V、Z放在各种寄存器的后面,充当操作数地址的偏移量。操作数的实际地址就是寄存器的当前值与V或Z内容相加后的和。如图3.49所示。,图3.47 32位MOV指令,当各逻辑行满足条件时,K10送到V,K20送到Z,所以V、Z的内容分别为10、20。当执行ADD加法指令,即执行(D5V)+(D15Z)(D40Z)时,此时D5
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!