1、2023-2-5电气传动的发展1电气控制与电气控制与PLC应用技术应用技术三菱功能指令三菱功能指令2023-2-5电气传动的发展2第六章第六章 三菱三菱PLC的功能指令的功能指令l可编程控制器除了具有基本逻辑指令和步进可编程控制器除了具有基本逻辑指令和步进指令外,还具有许多功能指令。如指令外,还具有许多功能指令。如FXOn系系列具有列具有20条基本指令,条基本指令,51条功能指令,而条功能指令,而FX2N系列具有系列具有27条基本逻辑指令和条基本逻辑指令和298条功条功能指令,所以不同系列的可编程控制器功能能指令,所以不同系列的可编程控制器功能指令相差很多。功能指令实际上是执行一个指令相差很多
2、。功能指令实际上是执行一个个功能不同子程序的调用,它既能简化程序个功能不同子程序的调用,它既能简化程序设计。,又能完成复杂的数据处理、数值运设计。,又能完成复杂的数据处理、数值运算,实现高难度控制。算,实现高难度控制。2023-2-5电气传动的发展36.1 功能指令的表示方式功能指令的表示方式lFX系列可编程控制器的功能指令采用梯形图和指令助计符相结合的表达方式,如下图所示。2023-2-5电气传动的发展4l 常开触点X0为程序执行的条件;l MEAN为求平均值的助记符;lD10、D30和K3为操作数,其中D10为源操作数,D30为目的操作数,K3为常数。指令内容的解释2023-2-5电气传动
3、的发展5指令内容的解释l程序含义l当常开触点X0接通时,求出D10开始的连续3个元件的平均值,结果送到目标寄存器D30。l标识说明l源操作数用S表示,当操作数使用变址功能时,表示为S,源操作数不止一个时,可用S1、S2表示。2023-2-5电气传动的发展66.2 FX2N系列可编程控制器功能指令系列可编程控制器功能指令l6.2.1 程序流向控制功能指令(FNC00FNC09)l条件跳转指令。条件跳转指令CJ(Conditional Jump)(FNC00)的操作数为指针P0P127(可以变址修改),表示跳转目标,P63表示跳转到END步,无需标记。该指令占3步,指针标号占1步。2023-2-5
4、电气传动的发展7子程序相关指令 l子程序调用指令CALL(Subroutine Call)(FNC01)的操作数为指针标号P0P127(不包括P63,允许变址修改),表示子程序的入口,该指令占3步,指针标号占1步。子程序返回指令SRET(Subroutine Return)(FNC02)无操作数,占用一个程序步。lCALL指令用于一定条件下调用并执行子程序。使用SRET指令回到原跳转点下一条指令继续执行主程序。子程序可以嵌套调用,最多嵌套5级。2023-2-5电气传动的发展8中断相关指令 l中断返回指令IRET(Interruption Return)、允许中断指令EI(Interruptio
5、n Enable)、禁止中断指令DI(Interruption Disable)的功能指令编号分别为FNC03、FNC04和FNC05。它们均无操作数,分别占用一个程序步。lFX2N系列可编程控制器具有6个和X0X5对应的中断输入点,中断指针为I0,其中=05,对应X0X5;=0,下降沿中断;=1,上升沿中断。2023-2-5电气传动的发展9主程序结束指令FEND l主程序结束指令FEND(First End)(FNC06)无操作数,占一个程序步,表示主程序结束。程序执行到这条指令时进行输出处理、输入处理和监控定时器的刷新,全部完成后返回到程序的第0步。使用多条FEND指令时,中断程序应放在最
6、后的FEND和END之间。2023-2-5电气传动的发展10监控定时器指令WDT l监控定时器俗称看门狗,在执行FEND或END指令时,监控定时器被刷新。如果可编程控制器从0步到FEND或END的执行时间小于它的设定时间,则正常工作;反之,可编程控制器可能已偏离正常的程序执行时间,从而停止运行,CPU-E发光二极管亮。监控定时器定时时间的缺省设定值为200ms,如果想使扫描时间超过200ms的大程序能顺利通过,可以通过M8002的常开触点控制数据传送指令MOV,将需要值写入特殊数据寄存器D8000来实现。2023-2-5电气传动的发展11循环指令 lFOR(FNC08)为表示循环开始的指令,占
7、3个程序步,操作数表示循环次数N,N=132767。lNEXT(FNC09)为循环结束的指令,占1个程序步,无操作数。lFOR和NEXT之间的程序被反复执行,次数由N决定。执行完后,再执行NEXT指令后的程序。FOR和NEXT指令必须成对使用,且FOR在前,NEXT在后。NEXT指令也不允许写在END和FEND指令之后。2023-2-5电气传动的发展126.22.数据比较与传送指令 l(1)数据比较指令 l1)数据比较指令CMP l2)区间比较指令ZCP l传送指令 l1)传送指令MOV l2)移位传送指令SMOV l3)取反传送指令CML l4)块传送指令BMOV l5)多点传送指令 l6)
8、数据交换指令 2023-2-5电气传动的发展13(3)数据编号指令l1)BCD(Binary Code to Decimal)变换指令的功能编号为FNC18,它将源元件中得二进制数转换为BCD码并送到指定目标元件中。该指令用于将PLC中二进制数变换成BCD码输出以驱动7段显示。l2)BIN(Binary)变换指令的功能编号为FNC19,它将源元件中得BCD码转换为二进制数并送到指定目标元件中。该指令用于将PLC接口BCD数字开关提供的设定值输入到PLC中。2023-2-5电气传动的发展146.2.3.运算功能指令 l(1)算术运算指令:l1)ADD(Addition)加法指令的功能编号为FNC
9、20,它将源元件中得二进制数相加,结果送到指定的目标元件。l2)SUB(Subtraction)减法指令的功能编号为FNC21,它将源元件中得二进制数相减,结果送到指定的目标元件。l3)MUL(Multiplication)乘法指令的功能编号为FNC22,它将指令的16位二进制源操作数相乘,结果以32位的形式送到指定的目标操作元件中。2023-2-5电气传动的发展156.2.3.运算功能指令l4)DIV(Division)除法治疗的功能编号为FNC23,它指定前边的源操作数为被除数,后边的源操作数为除数,运算后所得商送到指定的目标元件中,余数送到目标元件的下一个元件。l下图中X3为ON时,则执
10、行(D1,D0)(D3,D2),其商是32位数据,被送到(D5,D4,)中,余数也是32位数据,被送到(D7,D6)中 2023-2-5电气传动的发展16(2)加1指令和减1指令 l1)INC(Increment)加1指令的功能编号为FNC24,它将指定的目标操作元件中得二进制数据自动加1。l2)DEC(Decrement)减1指令的功能编号为FNC25,它将指定的目标操作元件中得二进制数据自动减1。2023-2-5电气传动的发展17(3)字逻辑运算命令 l字逻辑与指令WAND、字逻辑或指令WOR、字逻辑异或(Exclusive Or)指令WXOR的功能指令编号分别为FNC26FNC28,它们
11、各自将指定的两个源数据以位为单位做相应的逻辑运算,结果存放到目标元件中。2023-2-5电气传动的发展186.2.4.循环移位与移位功能指令循环移位与移位功能指令 l(1)循环移位指令。ROR(Rotation Right)、ROL(Rotation Left)分别为右循环移位指令和左循环移位指令,功能指令编号为FNC30和FNC31。l(2)进位的循环移位指令。RCR(Rotation Right Carry)、RCL(Rotation left with Carry)分别为带进位的右、左循环移位指令,功能指令编号为FNC32和FNC33。2023-2-5电气传动的发展196.2.4.循环移
12、位与移位功能指令循环移位与移位功能指令l(3)位移位指令。SFTR(Shift Right)SFTL(Shift Right)分别为位右移、位左移指令,功能指令编号为FNC34和FNC35。其功能是将位元件中得状态成组地向右或向左移动。l(4)字移位指令。WSFR(Word Shift Right)、WSFL(Word Shift Left)分别为字右移、字左移指令,功能指令编号为FNC36和FNC37。l(5)FIFO写入与读出指令。SFWR(Shift Register Write)、SFRD(Shift Register Read)分别为先进先出(First in First out,简
13、为FIFO)写入、读出指令,功能指令编号为FNC38和FNC39。2023-2-5电气传动的发展206.2.5.数据处理指令l(1)区间复位指令。ZRST(Zone Reset)为区间复位指令,其功能指令编号为FNC40,它是将D1D2指令的元件号范围内的桶内元件成批复位。目标操作元件可取T,C和D(字元件)或Y,M和S(位元件)。D1D2指定的元件必须为同一类元件,且D1指定的元件号必须小于D2指定的元件号。ZRST指令其实可以说是RST指令的集成。2023-2-5电气传动的发展21(2)解码指令和编码指令解码指令和编码指令 l1)DECO(Decode)为解码指令,其功能指令编号为FNC4
14、1.它将目标元件的某一位置“1”,其他位置“0”,置“1”位的位置由源操作数S1为首址的n位连续位元件或数据寄存器所示的十进制码决定。l2)ENCO(Encode)为编码指令,其功能指令编号为FNC42,它把源元件中为“1”的最高位的位置转化为二进制数并送到目标元件的低n位中。当源元件是字元件T,C,D,V和Z时,应使n=14,当源元件是位元件X,Y,M和S时,应使n=18。目标元件可取T,C,D,V和Z。l(3)求ON位总数的指令:SUM为求置ON位总数的指令,其功能指令编号为FNC43。2023-2-5电气传动的发展22(2)解码指令和编码指令解码指令和编码指令l(4)ON位判别指令。BO
15、N(Bit ON Check)为ON位判别指令,功能指令编号为FNC44。它用于判断源元件第n位的状态,如果该位为“1”则目标位元件(可取Y、M和S)置“1”,反之置“0”。l(5)平均值指令。MEAN为平均值指令,功能指令编号为FNC45。它用于计算以指定源操作数为首址的n个连续源操作数的平均值,结果送到指定的目标元件,余数略去。2023-2-5电气传动的发展23(6)报警器置位和复位指令 l1)ANS(Annunciator Set)为报警器置位指令,功能指令编号为FNC46,源操作数为T0T199(100ms定时器),目标操作数为S900S999(报警用状态),n=132767。它用于启
16、动定时器,时间到n*100ms时指定目标元件状态置ON。l2)ANR(Annunciator Set)为报警器复位指令,功能指令编号为FNC47,无源操作数。它用于将S900S999之间被置ON的报警器依次复位。2023-2-5电气传动的发展24(7)其他有关指令 lSQR(Square Root)二进制平方根指令、FLT(Float)二进制整数转换为二进制浮点指令和SWAP高低字节交换指令功能指令编号分别为FNC48、FNC49、FNC147。2023-2-5电气传动的发展256.2.6.高速处理指令l高速处理指令的功能指令编号为FNC5059,包括输入输出刷新指令REF(Refresh)、
17、刷新和滤波时间常数调整指令REEF(Refresh And Filter Adjust)、矩阵输入指令MTR(Matrix)、高速计数器比较置位指令HSCS(Set by High Speed Countre)、高速计数器比较复位指令HSCR(Reret by High Counter)、高速计数器区间比较指令HSZ(Zonecompare for High Speed Counter)、速度检测指令SPD(Speed Detect)、脉冲输出指令PLSY(Pulse Output)、脉宽调制指令PWM(Pulse Width Modulation)、带加减速功能的脉冲输出指令PLSR(Pul
18、se R)。此处仅简单介绍其中常用的4条高速处理指令。2023-2-5电气传动的发展266.2.7.方便指令l方便指令的功能指令编号为FNC6069,包括状态初始化指令IST(Initial State)、数据搜索指令SER(Data Search)、绝对值式凸轮顺控指令ABSD(Absolute Drum)、增量式凸轮顺控指令INCD(Increment Drum)、示教定时器指令TTMR(Teaching Timer)、特殊定时器指令STMR(Special Timer)、交替输出指令ALT(Alternate)、斜坡信号输出指令RAMP、旋转工作台控制指令ROTC、数据排序指令SORT(
19、sort)。此处仅简单介绍其中常用的2条方便指令。2023-2-5电气传动的发展276.2.8.外部I/O设备指令l外部I/O设备指令的功能指令编号为FNC70FNC79,包括十键输入指令TKY(Ten Key)、十六键输入指令HKY(Hex Decimal Key)、数字开关指令DSW(Digital Switch)、七段译码指令SEGD(Seven Segment Decoder)、带锁存的七段显示指令SEGL(Seven Seg-ment with Latch)、方向开关指令ARWS(Arrow Switch)、ASC码转换指令ASC(ASC Code)、ASC码打印指令PR(Print
20、)和读、写特殊功能模块指令FROM、TO。2023-2-5电气传动的发展286.2.9.外部设备指令l外部设备指令的功能指令编号为FNC80FNC89,串行通信指令RS(RS232C)、八进制数据传送指令PRUN、HEXASC码转换指令ASC、ASCHEX转换指令HEX、校验码指令CCD(Check Code)、读模拟量功能扩展板指令(Varible Resistor Read)、模拟量功能扩展板开关设定指令VRSC(Varible Resistor Scale)、回路运算指令PID。2023-2-5电气传动的发展296.2.10.浮点数运算指令l浮点数运算指令包括二进制浮点数比较指令ECMP
21、、二进制浮点数区间比较指令EZCP、二进制浮点数转换为十进制浮点数指令EBCD、十进制浮点数转换为二进制浮点数指令EBIN、二进制浮点数转换为二进制整数指令INT、二进制浮点数的四则运算指令(EADD、ESUB、EMUL、EDIV)、二进制浮点数的开平方根与三角函数运算指令。2023-2-5电气传动的发展306.2.11.时钟运算与格雷码变换指令l时钟运算与格雷码编号指令包括时钟数据比较指令TCMP(Time Compare)、时钟数据区间比较指令TZCP(Time Zone Compare)、时钟数据加法指令TADD(Time Addition)、时钟数据减法指令TSUB(Time Subtraction)、时钟数据读出指令TRD(Time Read)、时钟数据写入指令TWR(Time Write)和格雷码变换指令GRY(Gray Code)。