第5章 常用功能指令及其它应用-V1_第1页
第5章 常用功能指令及其它应用-V1_第2页
第5章 常用功能指令及其它应用-V1_第3页
第5章 常用功能指令及其它应用-V1_第4页
第5章 常用功能指令及其它应用-V1_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第5章常用功能指令及其它应用要完成一个PLC控制系统,除了要充分熟悉PLC的外部特性和输入输出功能外,还必须熟悉PLC的一系列复杂的运算(逻辑运算和数学运算等)。PLC的逻辑指令与步进指令只能对一些位元件(X、M、S、Y、T、C)施加逻辑运算。PLC内部还有字元件,如寄存器D,定时器之时间暂存器、计数器C之次数暂存器,一些位元件X、Y、M、S也可以通过一定的方式变成字元件,对它们进行数据处理(数据传送,逻辑运算和数学运算等等)必通过PLC功能指令来实现。功能指令实际上就是许多功能不同的子程序。三菱FX2N型PLC功能指令种类繁多,共有128种,298条。按大类来分,有:程序流控制、数据传送与比较,算术运算与逻辑运算、循环移位与普通移位、数据处理、高速处理、方便指令、外部设备指令、复杂运算与控制指令。在此我们只能介绍一些常用的比较典型的功能指令。5-1功能指令的基本格式功能指令的出现大大拓宽了PLC的应用范围,而功能指令都有通用的表达形式。功能指令按功能号FNC00~FNC99编排。每条功能指令都有一个指令助记符。一、功能指令的表达式上图中功能号为45的指令是一条数据处理平均值功能指令。图中(P)是脉冲执行功能,(16)表示只能做16位操作,这条平均值指令是7步指令。[S]是源操作数。若使用变址功能时,表示为[S.]形式。有时源操作数不止一个,可用[S1.]、

[S2.]表示。[D]是目标操作数。若使用变址功能时,表示为[D.]。目标不止一个时使用[D1.]、[D2.]表示。m与n是表示其它操作数。常用来表示常数或者作为源操作数和目标操作数的补充说明。表示常数时,十进制K和十六进制H。需注释的项目较多时可采用m1、m2等方式。

功能指令的功能号和指令助记符占2个或4个程序步(做16位操作是2个程序步,32位操作是4个程序步)。二、数据长度和指令类型功能指令可处理16位数据和32位数据。功能指令中用符号(D)表示处理32位数据,如(D)MOV、FNC(D)12指令。处理32位数据时,用元件号相邻的两元件组成元件对。元件对的首地址用奇数、偶数均可。建议元件对首地址统一用偶数编号。1)数据长度2)指令类型FXPLC的功能指令有连续执行型和脉冲执行型两种形式。助记符后附的(P)符号表示脉冲执行。(P)和(D)可同时使用,如(D)MOV(P)。该脉冲执行的指令仅在X1由OFF转为ON时有效。在不需要每个扫描周期都执行时,用脉冲执行方式可缩短程序处理时间。3)位元件和字元件位元件:只处理ON/OFF状态的元件称为位元件。例如,X、Y、M和S。字元件:处理数据的元件称为字元件。如,T、C和D等。但由由位元件也可构成字元件进行数据处理。位元件的组合4个位元件为一组组合成单元。KnM0中的n是组数。16位数操作时为K1~K4,32位数操作时为K1~K8。例如K2M0表示由M7~M0组成的8位数据;K4M10表示由M25到M10组成的16位数据,M10是最低位。被组合的位元件的首元件号可以是任意的,但习惯上采用以0结尾的元件。如X0、X10等。例如,K2Y0用在32位操作时,高16位作0处理,要获得32位数据需用K8Y0。4)变址寄存器V、Z变址寄存器在传送、比较指令中用来修改操作对象的元件号。其操作方式与普通数据寄存器一样。上图表示从KnY到V、Z都可作为功能指令的源操作数。在[D·]中的[·]表示可以加入变址寄存器。对32位指令,V作高16位,Z作低16位。32位指令中用到变址寄存器时只需指定Z,这时Z就代表了V和Z,这时Z就代表了V和Z。在32位指令中,V、Z自动组对使用。在上图中K10送到V,K20送到Z,所以(V)(Z)的内容分别为10、20。当(D5V)+(D15Z)→(D40Z),即(D15)+(D35)→(D60)。V和Z变址寄存器的使用将编程简化。5-2常用功能指令与编程一、程序流程控制指令(FNC0~FNC9)程序流程控制功能指令共有10条。分别是CJ条件跳转、CALL调用子程序、SRET子程序返回、IRET中断返回、EI允许中断、DI禁止中断、FEND主程序结束、WPT监视定时器刷新、FOR循环开始、NEXT循环结束功能指令。在这里介绍常用的9条1.条件跳转CJ(FNC00)指令该指令的助记符、功能指令号、操作元件、程序步等如下:指令名称助记符功能指令号操作元件程序步条件跳转CJFNC00指针P0~P63CJ和CJ(P)……3步标号P……1步条件跳转、转子程序、中断和循环程序的运行原理例5-1分析下列梯形图说明条件跳转指令的原理。如果在做实验时,若先按住按钮X1不松手,再按住按钮X0不松手,而后松开X1,则Y0继续通电,直至松开X0,Y0才断电。这是什么原因呢?事实上,在X0闭合的若干个扫描周期内,LDX0与P6之间的程序不在执行,只能执行LDX0之前与P6之后的程序。2.调用子程序CALL、子程序返回SRET、主程序结束FEND指令指令名称助记符功能指令号操作元件程序步子程序调用CALLFNC01指令P0~P623步+1步子程序返回SRETFNC02无1步主程序结束FENDFNC06无1步在计算机程序设计中,常将一些常用的程序编制成子程序形式,以便被主程序或其它子程序调用,各种调用只是同一子程序内的某些参数和子程序的执行结果略有不同,但子程序基本结构不变这三条指令的助记符、功能指令号、操作元件和程序步如下:例5-2分析下列梯形图说明子程序调用指令的原理。如果在做实验时,若先按住按钮X1不松手,再按住X0不松手,而后松开X1,则Y0不通电,但若此时按住按钮X2,则Y5通电,接着先断开X0,而后断开X2,则Y5继续通电。3.中断返回IRET、允许中断EI、禁止中断DI指令这三条指令的助记符、功能指令号、操作元件和程序步如下:指令名称助记符功能指令号操作元件程序步中断返回IRETFNC03无1步允许中断EIFNC04无1步禁止中断DIFNC05无1步三菱FX系列PLC的外部中断源有6点,即X0~X5,为输入中断源。若是下降沿触发中断,则中断指针标号为I000~I500,若是上升沿触发中断,则中断指针标号为I001~I501。内部中断源为定时器中断3点,中断指针标号为I610~99(10~99ms)、I710~99(10~99ms)、I810~99(10~99ms)。例如,在I610的场合,就每隔10ms执行中断指针标号I610与中断返回IRET之间的程序,即中断服务程序。在梯形图中,未见到X0和X1,折先按住按钮X6不松手,则Y4不亮,再按动输入中断信号X0(上升沿触发),则Y4亮,而后松开X6,但Y4继续亮,不过,若再次按动X0(下降沿触发),Y4熄灭。当先按动X0,再按住X6,则Y4不亮。设先按住X7不松手,则Y6不亮,再按下输入中断信号X1(下降沿触发)不松手,Y6仍然不亮,直至松开X1,则Y6亮,而后松开X7,但Y6继续亮,不过,若再次按下X1且松手后,Y6就熄灭。当先按动X1,再按住X7,则Y6不亮。例5-3分析下列梯形图说明中断指令的原理。4.循环FOR(FNC08)、NEXT(FNC09)指令指令名称助记符功能指令号操作元件程序步循环开始FORFNC08K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z3步(嵌套5层)循环结束NEXTFNC09

1步例5-4分析下列梯形图说明循环指令的原理。在做实验时,如果按动按钮X0以后,Y0灯亮,M0仅闭合一个周期,这样在M0所示的一个扫描周期内,OUTY7指令执行了3000次,持续时间大约有1S,我们可以看到Y7灯亮1S左右的时间,接下去到了下一个扫描周期,虽然也会循环32767次,但OUTY7指令一次都不执行。二、传送与比较指令(FNC10~FNC19)传送与比较指令共有10条,分别是CMP比较,ZCP区间比较、MOV传送、SMOV移位传送、CML取反、BMOV块传送、FMOV多点传送、XCH数据交换、BCD交换、BIN功能指令。在这里介绍常用的4种。1.比较CMP(FNC10)指令指令名称助记符功能号操作数程序步S1.S2.D.比较指令CMPFNC10K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZY、M、SCMP、CMPP…7步DCMP、PCMPP…13步这是一条三个操作数(2个源操作数、一个目标操作数)的指令。源操作数的数据作代数比较(如-2<1),且所有源操作数的数据和目标操作数的数据均作二进制数据处理。程序中的M0、M1、M2根据比较的结果动作。K100>C20的当前值时,M0接通;K100=C20的当前值时;M1接通;K100<C20的当前值时,M2接通。当执行条件X0为OFF时,比较指令CMP不执行,M0、M1、M2的状态保持不变。2.传送MOV(FNC12)和取反传送CML(FNC14)指令该指令的名称、助记符、功能编号、操作数和程序步如下:指令名称助记符功能号操作数程序步S·D·传送指令MOVFNC12K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、

KnS、T、C、D、V、ZMOV、MOVP…5步DMOV、DMOVP…9步取反CMLFNC14同上同上CML指令是把[S.]中的数据逐位取反送到[D.]中去。

3.数据交换XCH(FNC17)指令该指令的名称、助记符、功能编号、操作数和程序步如下:指令名称助记符功能号操作数程序步D1D2.数据交换XCHFNC17KnY、KnM、KnS、T、C、D、V、ZXCH、XCHP…5步DXCH、DXCHP…9步数据交换指令XCH是将数据在指定的目标元件之间交换4.BCD变换(FNC18)指令操作元件与MOV指定相同。BCD和BCDP为5步,DBCD和DBCDP为9步。我们知道,计数器的数据寄存器等存储元件一般以二进制方式存放数据,但人们习惯于十进制编码,进而产生了BCD码,即二十进制编码,用4位二进制数来表示十进制数字0~9(1001对应9),所谓BCD变换就是将二进制编码存放的数自动转换成BCD码进行存放。例5-5传送与比较指令举例进行实验时,当按动X0以后,请观察PLC输出发光管的显示情况,二进制数Y3~Y0之间的十进制数是否为8,Y7~Y4之间是否为9,Y13~Y10是否为3,以进一步理解BCD转换的含义。如果采用CD4511型BCD码二十进制变换7段数码管驱动数字集成电路,用Y17~Y14控制低位数码管,用Y23~Y20控制中位数码管,用Y27~Y24控制高位数码管,由于某输出点Y通电时,对应CD4511集成电路的某位相应输入信号反而为逻辑“0”信号,故在PLC梯形图中输出之前,必须先进行反相处理,例如,用M100常闭控制Y14等。实验时,注意在按动X0以后,观测三位数码管是否显示“398”。梯形图中最后的CMLPK898K3Y14指令,在X0闭合以后,将K898对应的二进制数逐位取反后再传送,可使数显示为“898”。

三、算术运算与逻辑运算指令(FNC20-FNC29)算术运算与逻辑运算指令共有10条。分别是ADD二进制加法、SUB二进制减法、MUL二进制乘法、DIV二进制除法、INC二进制加一、DEC二进制减一、WAND逻辑字与、WOR逻辑字或、WXOR逻辑字异或、NEG求补。1.二进制加法ADD和二进制减法SUB指令指令名称助记符功能号操作数程序步S1.S2.D.加法指令ADDFNC20K、HKnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、KnST、C、D、V、Z16位7步32位13步减法指令SUBFNC21同上同上同上两指令的运算结果标志为:M8020(零标志)、M8021(借位)、M8022(进位)。如果实际运算的结果为0,则PLC的特殊辅助继电器M8020通电;若要向高位编程元件借位,则M8021通电;若有进位并向高位编程元件进位,则M8022通电,下面以左图为例,进一步说明上述指令的用法。2.二进制乘法MUL(FNC22)和二制除法DIV(FNC23)指令

二进制乘法MUL(FNC22)和二进制除法DIV(FNC23)指令的操作数和程序步与ADD和SUB指令基本相同,所不同的是变址寄存器Z可用于16位运算。四.加1INC(FNC24)和减1DEC(FNC25)指令该指令的名称、助记符、功能编号、操作数和程序步如下:指令名称助记符功能号操作数程序步D.加1指令INCFNC24KnY、KnM、KnST、C、D、V、Z16位3步32位5步

减1指令DECFNC254.逻辑字与WAND、字或WOR、字异或WXOR指令指令名称助记符功能号操作数程序步S1.S2.D.逻辑字与WANDFNC26K、HKnX、KnY、K

温馨提示

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

评论

0/150

提交评论