第7章 应用指令2_第1页
第7章 应用指令2_第2页
第7章 应用指令2_第3页
第7章 应用指令2_第4页
第7章 应用指令2_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章应用指令的程序设计7.1字逻辑运算指令7.3方便类指令7.2数据处理指令7.4外部I/O设备指令7.5FX系列外部设备指令7.6浮点数运算指令7.7时钟运算指令7.8高速处理指令7.1字逻辑运算指令字逻辑运算指令包括:WAND (字逻辑与,FNC26)、WOR (字逻辑或,FNC27)、WXOR (字逻辑异或,ExclusiveOr,FNC28)NEG (求补,Negation,FNC29)使用举例:当X000为ON,则D0与D2进行位与运算,并将运算结果存入D4位与数字逻辑运算的结果操作二进制十六进制源操作数S10101100100111011H593B源操作数S21111011010110101HF6B5“与”WAND的结果0101000000110001H5031“或”WOR的结果1111111110111111HFFBF“异或”WXOR的结果1010111110001110HAF8E求补运算指令使用举例:将[D]指定的数的每一位取反后再加1,结果存于同一元件内。(注:结果会将原始数据覆盖)7.2数据处理指令ZRST区间复位指令DECO解码(译码)ENCO编码SUM求置ON位的总和BONON位判断MEAN平均值ANS标志置位ANR标志复位SOR二进制平方根FLT二进制与二进制浮点转换SWAP高、低位变换数据处理指令包含区间复位、编译码指令、平均数计算等。见下表:7.2.1区间复位指令ZRST7.2.2解码指令DECO

7.2.2解码指令DECO

D0D17.2.3编码指令ENCOENCO(Encode)同DECO指令相反,将源数据内1所在的位号转换成二进制码。功能:举例:7.2.4求置ON位总数指令

SUM功能:统计源操作数中为ON的位的个数7.2.5

ON位判别指令BON功能:举例:用来检测指定元件中的指定位是否为ON7.2.6平均值指令MEAN

功能:举例:用来求n个源操作数的代数和被n除的商7.2.7定时信号警报器设定/复位指令ANS/ANR功能:举例:启动一个定时器,当它时间到设定计时周期后,将信号报警器设置为ON7.2.8二进制平方根指令SQR

功能:举例:计算源数据的平方根,将结果保持到目标元件中。7.2.9浮点数转换指令FLT

功能:举例:该指令将存放在源操作数中的数据转换为浮点数,并将结果存放在目标寄存器7.2.10高低字节交换指令SWAP

功能:举例:该指令交换源操作数的高字节和低字节7.3方便指令方便类指令可以利用最简单的顺控程序进行复杂控制。见下表:方便指令类1FNC60IST自动步进2FNC61SER查找数据3FNC62ABSD绝对值式凸轮控制4FNC63INCD增量式凸轮控制5FNC64TTMR示教定时器6FNC65STMR特殊定时器7FNC66ALT交替输出8FNC67RAMP斜坡信号9FNC68ROTC旋转工作台控制10FNC69SORT表数据排序7.3.1状态初始化指令IST

功能:举例:状态初始化指令IST(InitialState)与STL(步进梯形)指令一起使用,用于自动设置多种工作方式的系统的顺序控制编程。7.3.2数据搜索指令SER功能:举例:用于在数据表中查找指定的数据被搜索的数据序号012345678元件号D100D101D102D103D104D105D106D107D108数据100111100981236610095210搜索结果符合

符合

最小符合

最大搜索结果元件号搜索内容序号D10符合值个数3D11第一个符合值在表中的序号0D12最后一个符合值在表中的序号6D13表中最小的数的序号5D14表中最大的数的序号87.3.3绝对值式凸轮顺控指令ABSD功能:举例:ABSD(AbsoluteDrum)可以产生一组对应于计数值变化的输出波形,用来控制最多64个输出变量(Y、M和S)的ON/OFF上升点下降点对象输出D300--40D301--140M0D302--100D303--200M1D304--160D305--60M2D306--240D307--280M3在指令表图的程序中,有4个输出点(n=4)用M0~M3来控制。对应于旋转台旋转一周期间,M0~M3的ON/OFF状态变化是受凸轮通过X1提供的角度位置脉冲(1o/脉冲)控制的。D300的数据如表7-4所示:表7-4D300的数据对照表图7-6绝对值式凸轮M0-M3输出示意图若X0为OFF,各输出点的状态不变。本指令只能使用一次。7.3.

4增量式凸轮顺控指令INCD功能:举例:INCD(IncrementDrum)指令根据计数器对位置脉冲的计数值,实现对最多64个输出变量(Y、M和S)的循环顺序控制,使它们依次为ON,并且同时只有一个输出变量为ON。INCD指令用来产生一组对应于计数值变化的输出波形。在指令表图的程序中,有4个输出点(n=4)用M0~M3来控制,它们的ON/OFF状态受凸轮提供的脉冲个数控制。从D300开始的4个(n=4)数据寄存器,用来存放使M0~M3处于0N状态的脉冲个数,可以用MOV指令将它写入D300~D303,指令表图中D300~D303的值分别为20、30、10和40。7.3.5示教定时器指令TTMR功能:举例:使用TTMR指令可以用一只按钮调整定时器的设定时间。指令表图中的示教定时器将按钮X10按下的时间乘以系数10n后作为定时器的预置值,按钮按下的时间由D301记录,该时间乘以10n后存入D300。即n=0时存入t,n=1时存入10t,n=2时存入100t。X10为OFF时,D301复位,D300保持不变。7.3.6特殊定时器指令STMR功能:举例:特殊定时器指令用来产生延时断开定时器、单脉冲定时器和闪动定时器。图7-9特殊定时器指令动作示意图7.3.7交替输出指令ALT功能:举例:当指令中的输入信号由OFF变为ON时,ALT对应的D元件的状态改变一次,7.3.8斜坡信号输出指令RAMP功能:举例:斜坡信号输出指令RAMP的源操作数和目标操作数均为D,n=1~32767。该指令只能作16位运算。图7-11斜坡信号输出7.3.9旋转工作台控制指令ROTC功能:举例:旋转工作台控制指令ROTC使工作台上指定位置的工件以最短的路径转到出口位置。序号M0-M7功能1M0A相信号2M1B相信号3M20点检测信号4M3高速正转5M4低速正转6M5停止7M6低速反转8M7高速反转表7-6M0-M7输出表序号D200-D202功能1D200作为计数寄存器使用2D201调整窗口号码设定3D202调用工件号码设定表7-7D200-D202功能表7.3.10数据排序指令SORT功能:举例:SORT的源操作数和目标操作数均为D。SORT指令将数据编号,按指定的内容重新排列,该指令只能使用一次。

列号行号1234人员身高身高体重年龄1D1001D105150D11045D115202D1012D106180D11150D116403D1023D107160D11270D117304D1034D108100D11320D11885D1045D109150D11450D11945表7-8数据进行排序原表

列号行号1234

列号行号1234人员身高身高体重年龄人员身高身高体重年龄4D1034D108100D11320D1188

4D1034D108100D11320D11881D1001D105150D11045D11520

1D1001D105150D11045D115205D1045D109150D11450D11945

2D1012D106180D11150D116403D1023D107160D11270D11730

5D1045D109150D11450D119452D1012D106180D11150D11640

3D1023D107160D11270D11730D0=K2(列号)身高排序执行指令时

D0=K3(列号)体重排序执行指令时表7-9数据排序表1表7-10数据排序表27.4外部I/O设备指令外部I/O设备指令PLC是可供与外部设备交换数据的指令,这类指令可以通过最少的程序和外部接线,简单地进行复杂的控制。见下表:外部机器I/O类1FNC70TKY十键输入2FNC71HKY十六键输入3FNC72DSW数字开关4FNC73SEGD7段译码5FNC74SEGL带锁存7段译码6FNC75ARWS方向开关7FNC76ASCASCII码转换8FNC77PRASCII码打印9FNC78FROM功能模块读(见9章)10FNC79TO功能模块写(见9章)7.4.1十键输入指令TKY功能:举例:使用外部的十个按键,组成0-9的十个数字,可作为输入键盘7.4.2键输入指令HKY功能:举例:使用外部的十六个按键,组成0-9,A-F的十六个数字,可作为16进制输入键盘HKY指令输入的数字0~9999以二进制数的方式存放在D0中,大于9999时溢出。DHKY双字指令可以在D0和D1中存放数字0~99999999。按下任意一个数字键时M7置1(不保持)。功能键A~F与M0~M5相对应,按下任意一个功能键时M6置1(不保持)。7.4.3数字开关指令DSW功能:举例:DSW指令用于读入一组或两组4位BCD码数字开关的设置值,占用PLC的4个或8个输入点和4个输出点。101010103210COMX10X11X12X13X14X15X16X17COM4Y10Y11Y12Y13PLC第1组输入BCD数字开关第2组输入12481248DSWX10Y10D0nX1K1[S][D1][D2]图7-17数字开关指令的输入电路.图中的第一组4位BCD码数字开关接到X10~X13,按Y10~Y13的顺序选通读入,数据以二进制数的形式存放在D0中。n=2时有两组数字开关,第二组数字开关接到X14~X17,仍由Y10~Y13顺序选通读入,数据以二进制数的形式存放在D1中。7.4.4

7段译码指令SEGD功能:举例:SEGD(SevenSegmentDecoder)将源操作数[S]指定的元件的低4位中的十六进制数(0~F)译码后送给7段显示器显示7.4.5带锁存的7段显示指令SEGL功能:举例:SEGL(SevenSegmentwithLatch)用12个扫描周期显示一组或两组4位数据,占用8个或12个晶体管输出点。图中若使用一组输出(n=0~3),DO中的二进制数据转换为BCD码(0~9999),各位依次送到Y0~Y3。若使用两组输出(n=4~7),DO中的数据送到Y0~Y3,D1中的数据送到Y10~Y13,选通信号由Y4~Y7提供。7.4.6方向开关ARWS功能:举例:用方向开关(4只按钮)来输入4位BCD数据。移位按钮用来移动输入和显示的位,增加键和减少键用来修改该位的数据。ARWS指令将数据写入DO,DO中存放的是十六进制数,但为了方便以BCD码表示(0~9999)。X0刚接通时,指定的是最高位,每按一次右移键,指定位往右移动一位,按一次左移键时则往左移动一位,指定位由接到显示器的选通信号(Y4~Y7)上的LED发光二极管来确认。图7-21使用方向开关指令修改定时器设定值的外部接线图7.4.7ASCⅡ码转换指令ASC功能:举例:ASC指令将字符变为ASCⅡ码并存放在指定的元件中。7.4.8ASCⅡ码打印指令PR

功能:举例:PR指令用于ASCⅡ码的打印输出,PR指令和ASCⅡ指令配合使用,可以用外部显示单元显示出错信息等。7.5FX系列外部设备指令FX系列外部设备指令(FNC80~89)包括与串行通信有关的指令、模拟量功能扩展板处理指令和PID运算指令。见下表:外部机器I/O类1FNC80RS串行通讯传递(见9章)2FNC81PRUN八进制传送2FNC82ASCIHEX-〉ASCII变换3FNC83HEXASCII-〉HEX变换4FNC84CCD检验码5FNC85VRRD模拟量输入6FNC86VRSC模拟量开关设定7FNC170GRY格雷码转换8FNC171GBIN格雷码逆转换9FNC88PIDPID回路运算7.5.1并联运行指令

PRUN功能:举例:用于控制FX的并行链接适配器FX2-40AW/AP,它将源数据传送到位发送区,并行链接通信用特殊M标志控制。7.5.2HEX→ASCⅡ码转换指令ASCI功能:举例:该指令将源操作数中的16进制数转换为ASCⅡ码。7.5.3ASCⅡ→HEX转换指令HEX功能:举例:该指令将源操作数中最多256个ASCⅡ码转换为4位HEX数7.5.4校验码指令CCD

功能:举例:该指令将源操作数指定的连续n个字节的8位二进制数据求和并异或校验7.5.5FX-8AV模拟量功能扩展板读出指令VRRD功能:举例:该指令可在内置8路AD机型的PLC上读取模拟量7.5.6FX-8AV模拟量功能扩展板开关设定指令VRSC功能:举例:VRSC指令将电位器读出的数四舍五入,整量化为0~10的整数值,存放在[D]中,7.5.7PID回路运算指令PID功能:举例:PID指令是用来调用PID运算程序,在PID运算开始之前,应使用MOV指令将参数设定值预先写入对应的数据寄存器中。序号参数例功能范围1S3D100采样时间(Ts)1-32767(ms)2S3+1D101动作方向(ACT)位信号详见下表3S3+2D102输入滤波常数(α)0-99%4S3+3D103比例增益(Kp)1-32767%5S3+4D104积分时间(TI)0-32767(×10ms)6S3+5D105微分增益(KD)0-100%7S3+6D106微分时间(TD)0-32767(×10ms)8S3+7--S3+19D107-D119PID运算的内部处理占用910S3+20D120输入变化量(增侧)报警设定值0-32767,受S3+1的Bit1控制11S3+21D121输入变化量(减侧)报警设定值0-32767,受S3+1的Bit1控制12S3+22D122输出变化量(增侧)报警设定值,另外,输出上限设定值0-32767,受S3+1的Bit2、Bit5控制13S3+23D123输出变化量(减侧)报警设定值,另外,输出下限设定值0-32767,受S3+1的Bit2、Bit5控制14S3+24D124报警输出Bit0输入变化量(增侧)溢出Bit1输入变化量(减侧)溢出Bit2输出变化量(增侧)溢出Bit3输出变化量(减侧)溢出序号S3+1的位功能==“1”==“0”1Bit0正动作逆动作2Bit1输入变化量报警无输入变化量报警有效3Bit2输出变化量报警无输出变化量报警有效4Bit3不可用5Bit4自动调谐不动作执行自动调谐6Bit5输出值上下限设定无输出值上下限设定有效7Bit6—Bit15不可用7.6浮点数运算指令浮点数运算指令包括浮点数的比较、变换、四则运算、开平方和三角函数等指令,浮点数为32位数。见下表:浮点运算类1FNC110ECMP二进制浮点比较8FNC127EDIV二进制浮点除法2FNC111EZCP二进制浮点区间比较9FNC128ESOR二进制浮点开方3FNC118EBCD二进制浮点转换十进制浮点10FNC129INT二进制浮点转换BIN整数转换4FNC119EBIN十进制浮点转换二进制浮点11FNC130SIN浮点SIN运算5FNC120EADD二进制浮点加法12FNC131COS浮点COS运算6FNC121ESUB二进制浮点减法13FNC132TAN浮点TAN运算7FNC122EMUL二进制浮点乘法7.6.1浮点数比较指令ECMP功能:举例:ECMP指令用来比较源操作数[S1]和[S2],比较结果用目标操作数[D]指定的元件的ON/OFF状态来表示。7.6.2浮点数区间比较指令EZCP功能:举例:

将[S3]指定的浮点数与提供比较范围的源操作数[S1]和[S2]相比较,比较结果用目标操作数指定的元件的ON/OFF状态来表示7.6.3浮点数转换指令EBCD功能:举例:将2进制浮点数→10进制浮点数转换7.6.4浮点数转换指令EBIN功能:举例:将10进制浮点数→2进制浮点数转换【例7.2】将数3.14转换为二进制浮点数。下面是满足此要求的指令表程序:7.6.5浮点数转换为二进制整数INT功能:举例:2进制浮点数—BIN整数转换7.6.6浮点数的加法指令EADD

与减法指令ESUB功能:举例:对两源操作数进行加法/减法后,结果存入目标操作数中注:带D的指令为双字节运算7.6.7浮点数的乘法指令EMUL

与除法指令EDIV功能:举例:对两源操作数进行乘法/除法后,结果存入目标操作数中【例7.3】将D0中的16位整数和由X0~X7输入的2位BCD码数(X0输入的为最低位,X7输入的为最高位)转换为浮点数,然后进行下式中的浮点数运算:(D0)÷(X7~X0)×34.5→(D11,D10)运算结果转换为十进制浮点数和32位二进制整数。7.6.8浮点数开平方指令ESQR功能:举例:对源操作数进行开方运算,并将结果存入目标操作数中7.6.9浮点数三角函数运算指令SIN/COS/TAN功能:举例:对源操作数进行三角函数运算【例7.4】在X0的上升沿求sin45的浮点数值。下面是满足此要求的指令表程序:7.7时钟运算指令PLC内的实时钟

年、月、日、时、分和秒分别存放在D8018~D8013中,星期存放在D8019中地址

号名

称设定范围D8013秒0~59D8014分0~59D8015时0~23D8016日0~31D8017月0~12D8018年0~99(后两位)D8019星期0~6(对应星期日~星期六)7.7时钟运算指令时钟运算类1FNC160TCMP时钟数据比较2FNC161TZCP时钟数据区间比较3FNC162TADD时钟数据加法4FNC163TSUB时钟数据减法5FNC164TRD时钟数据读取6FNC165TWR时钟数据写入三菱PLC对时钟运算的指令有如下几条:7.7.1时钟数据比较指令TCMP功能:举例:该指令用来比较指定时刻与时钟数据的大小。7.7.2时钟数据区间比较指令TZCP功能:举例:将[S]中的时间与[S1],[S2]指定的时间区间相比较,比较的结果用来控制[D]~[D]+2的ON/OFF7.7.3时钟数据加法指令TADD功能:举例:TADD指令将两个源数据中的时钟数据相加后存入目标数据中7.7.4时钟数据减法指令TSUB功能:举例:TSUB指令将两个源数据中的时钟数据相减后存入目标数据中7.7.5时钟数据读出指令TRD功能:举例:该指令用来读出内置的实时钟的数据,并存放在[D]开始的7个字内。7.7.6时钟数据写入指令TWR功能:举例:该指令用来将时间设定值写入内置的实时钟,写入的数据预先放在[S]开始的7个单元内。【例7.5】将PLC的实时钟设置为2015年3月15日(星期一)10时30分25秒。下面是满足此要求的指令表程序图7-26:7.7.7小时定时器指令HOUR功能:举例:小时定时器指令HOUR中,在[D1]超过[S]时,则报警输出([D2])变为ON。7.8高速处理指令

FX系列PLC的高速处理指令,这些指令使得用户可以用最新的输入输出程序控制,并能有效地利用PLC的高速处理能力进行中断处理。高速处理指令1FNC.50REF输入输出刷新2FNC.51REFF滤波调整3FNC.52MTR矩阵输入7.8.1输入输出刷新指令REF功能:举例:REF指令是将X或Y的n位继电器值进行立即刷新。7.8.2滤波调整

REFF

功能:举例:用REFF指令可调节其滤波时间,范围为0~60ms(实际上由于输入端有RL滤波,所以最小滤波时间为50μs)。7.8.3矩阵输入MTR功能:举例:指令可以将8点输入与n点输出构成8行n列的输入矩阵,从输入端快速,批量接收数据。指令表中S(•)只能指定X000,X010,X020……等最低位为0的X作起始点,占用连续8点输入,通常选用X010以后的输入点,若选用输入X000~X017虽可以加快存储速度,但会因输出晶体管还原时间长和输入灵敏度高而发生误输入,这时必须在晶体管输出端与COM之间接3.3KΩ/0.5W负载电阻;D1(•)只能指令Y000,Y010,Y020……等最低位为0的Y作起始点,占用n点晶体管输出;D2(•)可指定Y,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论