FX系列PLC的功能指令FXFX系列系列系列系列PLCPLC的功能指令的功能指令的功能指令的功能指令n又称高级又称高级/ /应用指令实际上是调用一个个功能不同的子应用指令实际上是调用一个个功能不同的子程序,既能简化程序设计,又能完成复杂的数据传送、程序,既能简化程序设计,又能完成复杂的数据传送、运算、变换和程序控制等高难度控制运算、变换和程序控制等高难度控制n三菱三菱FX2FX2的功能指令有的功能指令有8787条,条,FX2N FX2N 有有128128条,各指令用功条,各指令用功能号能号FNCFNC□□□□表示;每一指令有与之对应的助记符表示其表示;每一指令有与之对应的助记符表示其功能意义如功能意义如FNC00(CJ)FNC00(CJ)表示条件跳转表示条件跳转n功能指令可分为以下几类:程序流程指令、传送与比较、功能指令可分为以下几类:程序流程指令、传送与比较、算术与逻辑运算、循环与移位、数据处理、高速处理、算术与逻辑运算、循环与移位、数据处理、高速处理、方便指令等方便指令等一、功能指令的格式一、功能指令的格式一、功能指令的格式一、功能指令的格式①①功能代号功能代号②②助记符:助记符:ADDADD加法加法③③数数据据长长度度::数数据据以以字字长长表表示示,,有有1616位位、、3232位位之之分分。
有有(D)(D)为为3232位④④脉脉冲冲/ /连连续续执执行行指指令令标标志志(P): (P): 有有(P)(P)为为脉脉冲冲指指令令,,即即仅仅在在条条件件由由OFFOFF到到ONON时时执执行行一一个个扫扫描描周周期期;;无无(P)(P)为为连连续续执执行行指指令令,,条条件件满满足足时时每每个个扫扫描描周周期期执执行行一一次次FXONFXON无无脉脉冲指令⑤⑤某某些些特特殊殊指指令令连连续续执执行行的的符符号号::引引起起特特别别注注意意图图示示电电路路: :每个扫描周期源的数据都发生变化每个扫描周期源的数据都发生变化⑥⑥操作数操作数:(:(有的没有操作数)有的没有操作数)a.a.源源操操作作数数::指指令令执执行行后后不不改改变变内内容容的的操操作作数数以以S S,,S1S1,,S2S2表示b.b.目目的的操操作作数数::指指令令执执行行后后改改变变内内容容的的操操作作数数,, 以以D D,,D1D1,,D2 D2 表示c.c.其其它它操操作作数数::既既非非源源操操作作数数也也非非目目的的操操作作数数的的操操作作数数常常为为常常数数,,以以m m,,n n 表表示示,,多多个个操操作作数数表表示示为为::m1m1,,m2m2,,n1n1,,n2.n2. 若若为为间间接接操操作作数数,,即即通通过过变变址址取取得得数数据据,,表表示示为为[S1.],, [S2.],, [D1.],, [D2.]。
d.操作数的形式:操作数的形式:位软元件:只处理位软元件:只处理ON/OFFON/OFF信息的元件,信息的元件,X X,,Y Y,,M M,,S S常常数数K K、、H H或或指指针针P: P: PP00--PP6633、、I000-I501I000-I501、、 I610-I899 、、I010-I060、、 N0-N7N0-N7字字软软元元件件TT//CC//DD//VV//ZZ::1166位位 ((TT//CC表表示示当当前值寄存器)前值寄存器)由位软元件组成的位组合元件:由位软元件组成的位组合元件:由位软元件组成的位组合元件:由位软元件组成的位组合元件:l连连续续排排列列的的44个个位位元元件件为为一一个个单单元元,,由由Kn加加首首元元件件号号表表示示n为单元数(组数),常用为单元数(组数),常用KnX,,KnY,,KnM,,KnS表示表示l例:例:K1M0 表示表示 M3M2M1M0 K2X0 表示表示X7~X0 K8M100 表示表示M131~M100组成的组成的32位数l16位操作数时表示为:K1~K4l32位操作数时表示为:K1~K8l注注::被被组组合合的的位位元元件件的的首首元元件件号号可可以以是是任任意意的的,,但但为为避避免免混乱,建议采用以混乱,建议采用以“0”为结尾的元件。
为结尾的元件 二、不同数据长度间数据的传送二、不同数据长度间数据的传送二、不同数据长度间数据的传送二、不同数据长度间数据的传送n当一个16位的数据传送到K1M0,K2M0,K3M0时,只传送相应的低位数据,目的数据的高位数据保持不变n反过来,高位数据全部为0三、变址寄存器三、变址寄存器三、变址寄存器三、变址寄存器V V和和和和Z Z的处理的处理的处理的处理nV和Z 是16位保持用寄存器,在数据传送、比较指令中用来修改操作对象的元件号,即简化编程nV作为高位,Z作为低位,可进行32位数据运算只须制定Z,即代表了VZnFXON中只有V0和Z0 D8028中保存Z0的值,D8029中保存V0的值(只读)nFX2N中只有V0-V7和Z0-Z7D8028中保存Z0的值,D8029中保存V0的值(只读)其余分别保存在D8182-D8195中程序执行:程序执行:X0=1,V=K0;x2=1, K500 (D0)X0=0,V=K10;X2=1;K500 (D10) (D0V=D0+10=D10)举例:举例:Z=4K2X000Z= K1Y0Z=D5Z=K100Z= C7Z=K2X4K1Y4D9K104C11 四、操作数目标软元件的表示四、操作数目标软元件的表示四、操作数目标软元件的表示四、操作数目标软元件的表示表示:表示:KnY~Z可作为目标软元件,可作为目标软元件,“.”表示可加变址寄存器。
表示可加变址寄存器五、功能指令介绍五、功能指令介绍五、功能指令介绍五、功能指令介绍(一)、程序流程类指令(一)、程序流程类指令(一)、程序流程类指令(一)、程序流程类指令分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1SFX1NFX2NFX2NC程序流程00CJ条件跳转01CALL子程序调用02SRET子程序返回03IRET中断返回04EI开中断05DI关中断06FEND主程序结束07WDT监视定时器刷新08FOR循环的起点与次数09NEXT循环的终点1 1、条件跳转指令(、条件跳转指令(、条件跳转指令(、条件跳转指令(FNC00FNC00))))CJCJ指令名称指令名称 助记符助记符 指令代码、位指令代码、位数数 操作数范围操作数范围 程序步程序步 [D.] [D.] 条件跳转条件跳转 CJ CJ FNC00(16) FNC00(16) P0~P63 P63 P63 即即 END END CJ CJ ~3 步步 标号标号 P~1 步步 P63为END指令所在步序,不需标记,不可用作跳转标号。
有条件跳转无条件跳转去掉LD X0LD X0CJ P8CJ P8……LD 8000LD 8000CJ P8CJ P8……P8P8LD X2LD X2OUT Y10OUT Y10LD X3LD X3OUT Y11OUT Y11……(P63)(P63)ENDEND用法示例:用法示例:n当 X0 置 1 ,跳转指令 CJ P8 执行条件满足,程序将从 CJ P8 指令处跳至标号 P8 处,仅执行该梯形图中P8后面的程序——称为条件跳转n若用辅助继电器 M8000 作为跳转指令的工作条件,跳转就成为无条件跳转n跳转指令执行的意义为:在满足跳转条件之后的各个扫描周期中, PLC 将不再扫描执行跳转指令与跳转指针 P □□间的程序,即跳到以指针 P□□为入口的程序段中执行直到跳转的条件不再满足,跳转停止进行程序执行说明:程序执行说明: 使用跳转指令应注意:使用跳转指令应注意: 标号一般设在相关的跳转指令之后,也可以设在跳转指令之前一个标号只能出现一次,超过一次会出错;但可以有多条跳转指令使用同一标号 编程时标号占一行,对有意向END步跳转的指针P63编程时,程序中不要对P63编程。
在跳转执行期间,即使被跳过的程序的驱动条件发生改变,但其线圈(或结果)仍保持跳转前的状态,因这段程序未被执行2 2、子程序调用、子程序调用、子程序调用、子程序调用FNC01FNC01与返回与返回与返回与返回FNC02FNC02指令指令名称名称 助记符助记符 指令代码位数指令代码位数 操作数范围操作数范围 程序步程序步 D D (( . . )) 子程序调用子程序调用 CALL CALL CALL(P) CALL(P) FNC01 FNC01 (16) (16) 指针指针 P0~P62 嵌套嵌套 5 5 级级 3 3 步,步,( (指令指令标号标号) 1 ) 1 步步 子程序返回子程序返回 SRET SRET FNC02 FNC02 无无 1 1 步步 n子程序是为了一些特定的控制目的编制的相对独立的子程序是为了一些特定的控制目的编制的相对独立的程序为了区别于主程序,规定在程序编排时,将主程序为了区别于主程序,规定在程序编排时,将主程序排在前边,子程序排在后边,并以主程序结束指程序排在前边,子程序排在后边,并以主程序结束指令令 FEND FEND (( FNC06 FNC06 )将这两部分分隔开。
将这两部分分隔开应用举例应用举例应用举例应用举例1 1::::n X0 X0 是子程序执行的条件,当是子程序执行的条件,当 X0 X0 置置 1 1 时标号为时标号为 P10 P10 的子的子程序得以执行程序得以执行n子程序子程序 P10 P10 安排在主程序结安排在主程序结束指令束指令 FEND FEND 之后,之后,ENDEND之前n标号标号 P10 P10 和子程序返回指令和子程序返回指令 SRET SRET 间的程序构成了间的程序构成了 P10 P10 子子程序的内容程序的内容n当主程序带有多个子程序时,当主程序带有多个子程序时,子程序可依次列在主程序结束子程序可依次列在主程序结束之后并以不同的标号相区别并以不同的标号相区别应用举例应用举例应用举例应用举例2 2::::子程序可嵌套使用,最多5级使用子程序调用与返回指令时应注意:使用子程序调用与返回指令时应注意:使用子程序调用与返回指令时应注意:使用子程序调用与返回指令时应注意:n转移标号不能重复,也不可与跳转指令的标号重复;n子程序可以嵌套调用,最多可5级嵌套nCALL指令必须和FEND、SRET一起使用。
子程序标号要写在FEND后3 3、中断返回指令、中断返回指令、中断返回指令、中断返回指令(FNC03)IRET (FNC03)IRET 4 4、允许中断、允许中断、允许中断、允许中断 ((((FNC04) EIFNC04) EI5 5、禁止中断、禁止中断、禁止中断、禁止中断 (FNC05) DI (FNC05) DI指令名称指令名称 助记符助记符 指令代码位数指令代码位数 操作数范围操作数范围 程序步程序步 D D((.) .) 中断返回指令中断返回指令IRET IRET FNC03 FNC03 无无 1 1 步步 允许中断指令允许中断指令 EI EI FNC04 FNC04 无无 1 1 步步 禁止中断指令禁止中断指令 DI DI FNC05 FNC05 无无 1 1 步步中断返回指令中断返回指令中断返回指令中断返回指令(FNC03) IRET(FNC03) IRET无无操作数操作数u主程序执行过程中,X0由OFF ON时,程序跳转到I001标志的子程序处,执行到IRET时,返回到原来的主程序u当有多个依次发出的中断信号,优先级按发生的先后为序,发生得越早优先级越高;若同时发生多个中断信号,标号越小,优先级越高。
u中断过程中,不执行其它中断(其它中断为等待状态)中断处理:中断处理:中断处理标号:中断处理标号:外部输入中断:外部输入中断:中断处理标号:中断处理标号:中断处理标号:中断处理标号:定时器中断:定时器中断:高速计数器中断:高速计数器中断:M8050 I000/1禁止禁止M8051 I100/1禁止禁止M8052 I200/1 禁止禁止M8053 I300/1 禁止禁止M8054 I400/1 禁止禁止M8055 I500/1 禁止禁止无无操作数操作数允许中断允许中断允许中断允许中断 (FNC04) EI (FNC04) EI禁止中断禁止中断禁止中断禁止中断 (FNC05) DI (FNC05) DInPLC平时处于禁止中断的状态平时处于禁止中断的状态n由由EI-DI组成中断允许范围,执行到该区间时,若中断源产组成中断允许范围,执行到该区间时,若中断源产生中断请求,则转到中断标号处,执行中断服务程序,执行生中断请求,则转到中断标号处,执行中断服务程序,执行到到IRET时,返回到断点处继续主程序时,返回到断点处继续主程序n在中断允许范围内,若特殊辅助继电器在中断允许范围内,若特殊辅助继电器M8050~M8053被驱被驱动,则相应中断不执行。
例:当动,则相应中断不执行例:当M8050=1时,不执行时,不执行I001,,I000的中断n在中断禁止区(在中断禁止区(DI-EI)发生中断请求时,则存储这个中断请发生中断请求时,则存储这个中断请求,然后在执行求,然后在执行EI后才响应中断后才响应中断n若在程序全范围内允许中断,可只用若在程序全范围内允许中断,可只用EI,不用,不用DI指令有关中断的说明:有关中断的说明:6 6、主程序结束、主程序结束、主程序结束、主程序结束(FNC06) FEND(FNC06) FEND无无操作数操作数7 7、监视定时器指令、监视定时器指令、监视定时器指令、监视定时器指令 ■监视定时器指令监视定时器指令监视定时器指令监视定时器指令WDTWDTWDTWDT((((P P P P)))) 编号为编号为FNC07FNC07,,没有操作数,占没有操作数,占1 1个程序步个程序步 WDTWDT指指令令是是对对PLCPLC的的监监视视定定时时器器进进行行刷刷新新,,FX2NFX2N系系列列PLCPLC的的监监视视定定时时器器缺缺省省值值为为200ms200ms((可可用用D8000D8000来来设设定定))。
FX2NFX2N为为100ms100ms监视定时器指令 注意:注意:注意:注意:1 1)如果在后续的)如果在后续的FOR-NEXTFOR-NEXT循环中,执行时间可能超过循环中,执行时间可能超过监控定时器的定时时间,可将监控定时器的定时时间,可将WDTWDT插入循环程序中插入循环程序中 2 2)当与条件跳转指令)当与条件跳转指令CJCJ对应的指针标号在对应的指针标号在CJCJ指令之前指令之前时(即程序往回跳)就有可能连续反复跳步使它们之时(即程序往回跳)就有可能连续反复跳步使它们之间的程序反复执行,使执行时间超过监控时间,可在间的程序反复执行,使执行时间超过监控时间,可在CJCJ指令与对应标号之间插入指令与对应标号之间插入WDTWDT指令指令 8 8、、、、9 9、循环指令、循环指令、循环指令、循环指令FOR-NEXTFOR-NEXT循环区起点 (FNC08) FOR循环区终点:(FNC09) NEXT (无操作数)使用举例:使用举例:若DOZ0=4,则共执行B 4*5=20次说明:说明:说明:说明:nFOR-NEXT成对使用nFOR-NEXT间程序循环执行N次;N<32767n最多嵌套5次n下列情况出错: NEXT在FOR前 缺少NEXT NEXT在END、FEND之后 NEXT与FOR数目不一致( (二二二二) )、比较与传送指令(、比较与传送指令(、比较与传送指令(、比较与传送指令(FUNC10-19)FUNC10-19)分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0N FX1S FX1NFX2NFX2NC传送与比较10CMP数据比较11ZCP区间比较12MOV数据传送13SMOV位传送14CML取反传送15BMOV成批传送16FMOV多点传送17XCH交换18BCD二进制转换成BCD码19BINBCD码转换成二进制1010、数据比较指令(、数据比较指令(、数据比较指令(、数据比较指令(FNC10)CMPFNC10)CMPFNC 10(D)CMP(P) nCMP 、 CMPP…7 步 nDCMP 、 DCMPP…13 步 n比较指令 CMP 是将源操作数 [S1.] 和 [S2.] 的数据进行比较,结果送到目标操作数 [D.] 中。
程序举例程序举例程序举例程序举例K100>C10当前值,当前值,M0为为ONK100=C10当前值,当前值,M1为为ONK100S2S>S2,,M5=ONM5=ON区间指定要求:区间指定要求:S1.S1.的内容不得大于的内容不得大于S2.S2.的的内容。
内容例:当例:当S1.=K100S1.=K100,,S2.=K90S2.=K90时,把时,把S2.S2.当成当成K100K100进行计算进行计算指令举例:指令举例:指令举例:指令举例:ZCPZCP1212、数据传送指令(、数据传送指令(、数据传送指令(、数据传送指令(FNC12)MOVFNC12)MOVlMOV 、、 MOVP… 5步步 lDMOV 、、 DMOVP… 9步步l传送指令传送指令 MOV 指令是将源操作数内的数据传送到指指令是将源操作数内的数据传送到指定的目标操作数内,即定的目标操作数内,即 [S.] → [D.] 指令举例指令举例指令举例指令举例1 1::::1 1、当、当 X0=ON X0=ON 时,源操作数时,源操作数 [S.] [S.] 中的常数中的常数 K100 K100 传送传送到目标操作元件到目标操作元件 D10 D10 中中 当指令执行时,常数当指令执行时,常数 K100 K100 自动转换成二进制数。
自动转换成二进制数 2 2、当、当 X0 X0 断开时,指令不执行,数据保持不变断开时,指令不执行,数据保持不变指令举例指令举例指令举例指令举例2 2::::指令举例指令举例指令举例指令举例3 3::::1414、取反传送指令、取反传送指令、取反传送指令、取反传送指令CML (D)CML(P)CML (D)CML(P) 指令编号为指令编号为FNC14 它是将源操作数元件的数据逐位它是将源操作数元件的数据逐位 取反并传送到指定目标取反并传送到指定目标Complement Compare) 使用取反传送指令使用取反传送指令CML时应注意:时应注意: 1))源源操操作作数数可可取取所所有有数数据据类类型型,,目目标标操操作作数数可可为为KnY、、KnM、、KnS、、T、、C、、D、、V、、Z.,,若若源源数数据据为为常常数数K,,则则该数据会自动转换为二进制数该数据会自动转换为二进制数 2))16位运算占位运算占5个程序步,个程序步,32位运算占位运算占9个程序步个程序步 1515、批传送(、批传送(、批传送(、批传送(FNC15)BMOVFNC15)BMOVlBMOV、、BMOVP…7 步步l将以源指定的软元件为开头的将以源指定的软元件为开头的n点数据向以目标指定点数据向以目标指定的软元件为开头的的软元件为开头的n点软元件成批传送。
点软元件成批传送n<=512BMOVBMOV举例举例举例举例使用块传送指令时应注意:使用块传送指令时应注意:使用块传送指令时应注意:使用块传送指令时应注意:1)源操作数可取KnX、 KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可取,KnY、KnM、 KnS、T、C和D .2)只有16位操作,占7个程序步; 3)利用BMOV可读出文件寄存器(D1000-D2999)中的数据3)如果元件号超出允许范围,数据则仅传送到允许范围的元件 1616、多点传送指令、多点传送指令、多点传送指令、多点传送指令FMOV FMOV (((( FNC16 FNC16))))n将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同 ()n(D)FMOV(P)使用多点传送指令使用多点传送指令使用多点传送指令使用多点传送指令FMOVFMOV时应注意:时应注意:时应注意:时应注意:1)源操作数可取所有的数据类型,目标操作数可取KnY、KnM、KnS、T、C、和D,n小等于512; 2)16位操作占7的程序步,32位操作则占13个程序步 3)如果元件号超出允许范围,数据仅送到允许范围的元件中。
1717、数据交换指令、数据交换指令、数据交换指令、数据交换指令(D)XCH(P) (D)XCH(P) ((((FNC17FNC17))))n是将数据在指定的目标元件之间交换n使用数据交换指令应该注意:1)操作数的元件可取KnY、KnM、KnS、T、C、D、V和Z2)一般采用脉冲执行方式,否则在每个扫描周期都要交换一次3)16位运算时占5个程序步,32位运算时占9个 1818、、、、BCDBCD变换指令变换指令变换指令变换指令BCDBCDn(D)BCD(P),指令编号为FNC18n将源元件中的二进制数转换成BCD码送到目标元件中n 如果指令进行16位操作时,执行结果超出0~9999范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也将出错1919、、、、BINBIN变换指令变换指令变换指令变换指令BINBINn(D)BIN(P),指令的编号为FNC19n将源元件中的BCD数据转换成二进制数据送到目标元件中 使用BCD/BIN指令时应注意:1)源操作数为KnX、KnY、KnM、KnS、T、C、D、V和Z目标操作数可取KnY、KnM、KnS、T、C、D、V和Z 2)16位运算占5个程序步,32位运算占9个程序步。
BCDBCD输入输出的操作输入输出的操作输入输出的操作输入输出的操作四则运算与增量指令、减量指令等的运算都用BIN码进行因此PLC获得BCD的数字开关信息时要使用FNC19(BCD-BIN)转换传送指令,另外向BCD的七段显示器输出使用FNC19(BIN-BCD)转换传送指令(三)、算术与逻辑运算类指令((三)、算术与逻辑运算类指令((三)、算术与逻辑运算类指令((三)、算术与逻辑运算类指令(FNC20FNC20~~~~FN29FN29))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0S FX0N FX1SFX1NFX2NFX2NC算术与逻辑运算20ADD二进制加法运算21SUB二进制减法运算22MUL二进制乘法运算23DIV二进制除法运算24INC二进制加1运算25DEC二进制减1运算26WAND字逻辑与27WOR字逻辑或28WXOR字逻辑异或29NEG求二进制补码2020、二进制加法、二进制加法、二进制加法、二进制加法FNC20 ADDFNC20 ADD如图所示,当X0为ON时,执行(D10)+(D12)→(D14)。
2121、二进制减法、二进制减法、二进制减法、二进制减法FNC21 SUBFNC21 SUB使用加法和减法指令时应该注意:使用加法和减法指令时应该注意:使用加法和减法指令时应该注意:使用加法和减法指令时应该注意:n操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z.n16位运算占7个程序步,32位运算占13个程序步n数据为有符号二进制数,最高位为符号位(0为正,1为负)n加减法指令有三个标志:零标志(M8020)、借位标志(M8021)和进位标志(M8022)如果运算结果为0,则零标志M8020置1;当运算结果超过32767(16位运算)或2147483647(32位运算)则进位标志置1;当运算结果小于-32767(16位运算)或-2147483647(32位运算),借位标志就会置1n当源和目标采用相同的元件号,且采用连续执行的ADD和SUB时,每个扫描周期结果都回变 2222、二进制乘法(、二进制乘法(、二进制乘法(、二进制乘法(FNC22FNC22)))) MUL MUL2323、二进制除法、二进制除法、二进制除法、二进制除法FNC23 DIVFNC23 DIV使用乘法和除法指令时应注意:使用乘法和除法指令时应注意:使用乘法和除法指令时应注意:使用乘法和除法指令时应注意:n源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z.,要注意Z只有16位乘法时能用,32位不可用。
n16位运算占7程序步,32位运算为13程序步n32位乘法运算中,如用位元件作目标,则只能得到乘积的低32位,高32位将丢失,这种情况下应先将数据移入字元件再运算;除法运算中将位元件指定为[D.],则无法得到余数,除数为0时发生运算错误n积、商和余数的最高位为符号位2424、增一指令、增一指令、增一指令、增一指令(FNC24) INC(FNC24) INC2525、减一指令、减一指令、减一指令、减一指令(FNC25) DEC(FNC25) DEC使用加使用加使用加使用加1 1和减和减和减和减1 1指令时应注意:指令时应注意:指令时应注意:指令时应注意:n指令的操作数可为KnY、KnM、KnS、T、C、D、V、Z;n当进行16位操作时为3个程序步,32位操作时为5个程序步n在INC运算时,如数据为16位,则由+32767再加1变为-32768,但标志不置位;同样,32位运算由+2147483647再加1就变为-2147483648时,标志也不置位n在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-2147483648减1变为=2147483647,标志也不置位。
2626、、、、2727、、、、2828、逻辑运算指令、逻辑运算指令、逻辑运算指令、逻辑运算指令FNC26 逻辑与FNC27 逻辑或FNC28 逻辑异或32位运算式变成位运算式变成DAND,,DOR,,DXOR使用逻辑运算指令时应该注意:使用逻辑运算指令时应该注意:使用逻辑运算指令时应该注意:使用逻辑运算指令时应该注意:nWAND、WOR和WXOR指令的[S1.]和[S2.]均可取所有的数据类型,而目标操作数可取KnY、KnM、KnS、T、C、D、V和ZnNEG指令只有目标操作数,其可取KnY、KnM、KnS、T、C、D、V和ZnWAND、WOR、WXOR指令16位运算占7个程序步,32位为13个程序步,而NEG分别占3步和5步(四)、循环与移位类指令((四)、循环与移位类指令((四)、循环与移位类指令((四)、循环与移位类指令(FNC30FNC30~~~~FN39FN39))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0N FX1S FX1NFX2NFX2NC循环与移位30ROR循环右移31ROL循环左移32RCR带进位右移33RCL带进位左移34SFTR位右移35SFTL位左移36WSFR字右移37WSFL字左移38SFWRFIFO(先入先出)写入39SFRDFIFO(先入先出)读出3030、、、、3131、循环移位指令(、循环移位指令(、循环移位指令(、循环移位指令(Rotation Right/LeftRotation Right/Left)))) n右、左循环移位指令(D)ROR(P)和(D)ROL(P),编号分别为FNC30和FNC31。
n执行这两条指令时,各位数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中,如图所示3232、、、、3333、带进位的循环移位指令、带进位的循环移位指令、带进位的循环移位指令、带进位的循环移位指令 n带进位的循环右、左移位指令(D) RCR(P)和(D) RCL(P)编号分别为FNC32和FNC33n执行这两条指令时,各位数据连同进位(M8022)向右(或向左)循环移动n位,如图所示 使用使用使用使用ROR/ROL/RCR/RCLROR/ROL/RCR/RCL指令时应该注意:指令时应该注意:指令时应该注意:指令时应该注意:n目标操作数可取KnY,KnM,KnS,T,C,D,V和Z,目标元件中指定位元件的组合只有在K4(16位)和K8(32位指令)时有效n16位指令占5个程序步,32位指令占9个程序步n用连续指令执行时,循环移位操作每个周期执行一次(五)、数据处理类指令((五)、数据处理类指令((五)、数据处理类指令((五)、数据处理类指令(FNC40FNC40~~~~FN49FN49))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0N FX1S FX1NFX2NFX2NC数据处理40ZRST区间复位41DECO解码42ENCO编码43SUM统计ON位数44BON查询位某状态45MEAN求平均值46ANS报警器置位47ANR报警器复位48SQR求平方根49FLT整数与浮点数转换4040、区间复位指令、区间复位指令、区间复位指令、区间复位指令ZRST(P)ZRST(P)n将指定范围内的同类元件成批复位。
如图所示,当 X0由OFF→ON时,位元件M500~M599成批复位,字元件C235~C255也成批复位使用区间复位指令时应注意:使用区间复位指令时应注意:使用区间复位指令时应注意:使用区间复位指令时应注意:n[D1.]和[D2.]可取Y、M、S、T、C、D,且应为同类元件,同时[D1]的元件号应小于[D2]指定的元件号,若[D1]的元件号大于[D2]元件号,则只有[D1]指定元件被复位nZRST指令只有16位处理,占5个程序步,但[D1.][D2.]也可以指定32位计数器 4343、、、、4444、、、、ONON位数统计位数统计位数统计位数统计SUMSUM和和和和ONON位判别指令位判别指令位判别指令位判别指令BONBONnON位数统计指令SUM (D)SUM(P),指令编号为FNC43n该指令是用来统计指定元件中1的个数如图所示,当X0有效时执行SUM指令,将源操作数D0中1的个数送入目标操作数[D2]中,若D0中没有1,则零标志M8020将置1使用使用使用使用SUMSUM指令时应注意:指令时应注意:指令时应注意:指令时应注意:n源操作数和目标操作数可取KnY,KnM,KnS,T,C,D,V和Z。
n16位运算时占5个程序步,32位运算则占9个程序步4444、、、、ONON位判别指令位判别指令位判别指令位判别指令BON (D)BON(P)BON (D)BON(P)nON位判别指令BON (D)BON(P)指令的编号为FNC44n检测指定元件中的指定位是否为1如图所示,当X1为有效时,执行BON指令,由K4决定检测的是源操作数D10的第4位,当检测结果为1时,则目标操作数M0=1,否则M0=0使用使用使用使用BONBON指令时应注意:指令时应注意:指令时应注意:指令时应注意:n源操作数可取所有数据类型,目标操作数可取Y、M和Sn进行16位运算,占7程序步,n=0~15;32位运算时则占13个程序步,n=0~314545、平均值指令、平均值指令、平均值指令、平均值指令 n平均值指令平均值指令(D)MEAN(P)的编号为的编号为FNC45其作用是将用是将n个源数据的平均值送到指定目标(余数省个源数据的平均值送到指定目标(余数省略),若程序中指定的略),若程序中指定的n值超出值超出1~~64的范围将会的范围将会出错 (六)、高速处理类指令((六)、高速处理类指令((六)、高速处理类指令((六)、高速处理类指令(FNC50FNC50~~~~FN59FN59))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1S FX1NFX2NFX2NC高速处理50REF输入输出刷新51REFF输入滤波时间调整52MTR矩阵输入53HSCS比较置位(高速计数用)54HSCR比较复位(高速计数用)55HSZ区间比较(高速计数用)56SPD脉冲密度57PLSY指定频率脉冲输出58PWM脉宽调制输出59PLSR带加减速脉冲输出5050、输入输出刷新指令、输入输出刷新指令、输入输出刷新指令、输入输出刷新指令REFREF nREF(P)指令的编号为FNC50。
FX系列PLC采用集中输入输出的方式如果需要最新的输入信息以及希望立即输出结果则必须使用该指令如图所示,当X0接通时,X10~X17共8点将被刷新;当X1接通时,则Y0~Y7、Y10~Y17、共16点输出将被刷新 使用使用使用使用REFREF指令时应注意:指令时应注意:指令时应注意:指令时应注意:n目标操作数为元件编号个位为0的X和Y,n应为8的整倍数n指令只要进行16位运算,占5个程序步(七)、方便类指令((七)、方便类指令((七)、方便类指令((七)、方便类指令(FNC60FNC60~~~~FN69FN69))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1SFX1NFX2NFX2NC方便指令60IST状态初始化61SER数据查找62ABSD凸轮控制(绝对式)63INCD凸轮控制(增量式)64TTMR示教定时器65STMR特殊定时器66ALT交替输出67RAMP斜波信号68ROTC旋转工作台控制69SORT列表数据排序(八)、外部(八)、外部(八)、外部(八)、外部I/OI/O设备类指令(设备类指令(设备类指令(设备类指令(FNC70FNC70~~~~FN79FN79))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1SFX1NFX2NFX2NC外部I/O设备70TKY10键输入71HKY16键输入72DSWBCD数字开关输入73SEGD七段码译码74SEGL七段码分时显示75ARWS方向开关76ASCASCI码转换77PRASCI码打印输出78FROMBFM读出79TOBFM写入(九)、外围设备类指令((九)、外围设备类指令((九)、外围设备类指令((九)、外围设备类指令(FNC80FNC80~~~~FN89FN89))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1SFX1NFX2NFX2NC外围设备80RS串行数据传送81PRUN八进制位传送(#)82ASCI16进制数转换成ASCI码83HEXASCI码转换成16进制数84CCD校验85VRRD电位器变量输入86VRSC电位器变量区间87--88PIDPID运算89--(十)、浮点数运算类指令((十)、浮点数运算类指令((十)、浮点数运算类指令((十)、浮点数运算类指令(FNC110FNC110~~~~FN132FN132))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1SFX1NFX2NFX2NC浮点数运算110ECMP二进制浮点数比较111EZCP二进制浮点数区间比较118EBCD二进制浮点数→十进制浮点数119EBIN十进制浮点数→二进制浮点数120EADD二进制浮点数加法121EUSB二进制浮点数减法122EMUL二进制浮点数乘法123EDIV二进制浮点数除法127ESQR二进制浮点数开平方129INT二进制浮点数→二进制整数130SIN二进制浮点数Sin运算131COS二进制浮点数Cos运算132TAN二进制浮点数Tan运算(十一)、高低字节交换、定位类指令(十一)、高低字节交换、定位类指令(十一)、高低字节交换、定位类指令(十一)、高低字节交换、定位类指令分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1S FX1NFX2NFX2NC定位147SWAP高低字节交换155ABSABS当前值读取156ZRN原点回归157PLSY可变速的脉冲输出158DRVI相对位置控制159DRVA绝对位置控制(十二)、时钟运算类指令((十二)、时钟运算类指令((十二)、时钟运算类指令((十二)、时钟运算类指令(FNC160FNC160~~~~FN169FN169))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0S FX0N FX1S FX1NFX2NFX2NC时钟运算160TCMP时钟数据比较161TZCP时钟数据区间比较162TADD时钟数据加法163TSUB时钟数据减法166TRD时钟数据读出167TWR时钟数据写入169HOUR计时仪( (十三十三十三十三) )、外围设备类指令(、外围设备类指令(、外围设备类指令(、外围设备类指令(FNC170FNC170~~~~FN177FN177))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0SFX0NFX1SFX1NFX2NFX2NC外围设备170GRY二进制数→格雷码171GBIN格雷码→二进制数176RD3A模拟量模块(FX0N-3A)读出177WR3A模拟量模块(FX0N-3A)写入( (十三十三十三十三) )、外围设备类指令(、外围设备类指令(、外围设备类指令(、外围设备类指令(FNC170FNC170~~~~FN177FN177))))分类FNC NO.指令助记符功能说明对应不同型号的PLCFX0S FX0N FX1S FX1NFX2NFX2NC触点比较224LD=(S1)= (S2)时起始触点接通225LD>(S1)> (S2)时起始触点接通226LD<(S1)< (S2)时起始触点接通228LD<>(S1)<> (S2)时起始触点接通229LD≦(S1)≦ (S2)时起始触点接通230LD≧(S1)≧ (S2)时起始触点接通232AND=(S1)= (S2)时串联触点接通233AND>(S1)> (S2)时串联触点接通234AND<(S1)< (S2)时串联触点接通236AND<>(S1)<> (S2)时串联触点接通237AND≦(S1)≦ (S2)时串联触点接通238AND≧(S1)≧ (S2)时串联触点接通240OR=(S1)= (S2)时并联触点接通241OR>(S1)> (S2)时并联触点接通242OR<(S1)< (S2)时并联触点接通244OR<>(S1)<> (S2)时并联触点接通245OR≦(S1)≦ (S2)时并联触点接通246OR≧(S1)≧ (S2)时并联触点接通。