资源预览内容
第1页 / 共91页
第2页 / 共91页
第3页 / 共91页
第4页 / 共91页
第5页 / 共91页
第6页 / 共91页
第7页 / 共91页
第8页 / 共91页
第9页 / 共91页
第10页 / 共91页
亲,该文档总共91页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
三菱三菱PLCPLC功能指令及应用功能指令及应用举例举例5.1 用数据传送指令实现电动机的用数据传送指令实现电动机的Y-降压启动控制降压启动控制 5.1.1 位元件与字元件位元件与字元件1位元件只具有接通(ON或1)或断开(OFF或0)两种状态的元件称为位元件。 2字元件字元件是位元件的有序集合。FX系列的字元件最少4位,最多32位。 表5.1字元件范围符 号表 示 内 容KnX输入继电器位元件组合的字元件,也称为输入位组件KnY输出继电器位元件组合的字元件,也称为输出位组件KnM辅助继电器位元件组合的字元件,也称为辅助位组件KnS状态继电器位元件组合的字元件,也称为状态位组件T定时器T的当前值寄存器C计数器C的当前值寄存器D数据寄存器V、Z变址寄存器指令适用范围KnY0包含的位元件最高位最低位位元件个数N取值18适用32位指令N取值14适用16位指令K1Y0Y3Y04K2Y0Y7Y08K3Y0Y13Y012K4Y0Y17Y016N取值58只能使用32位指令K5Y0Y23Y020K6Y0Y27Y024K7Y0Y33Y028K8Y0Y37Y032(1)位组件。多个位元件按一定规律的组合叫位组件,例如输出位组件KnY0,K表示十进制,n表示组数,n的取值为18,每组有4个位元件,Y0是输出位组件的最低位。KnY0的全部组合及适用指令范围如表5.2所示。表5.2KnY0的全部组合及适用指令范围通 用停电保持用(可用程序变更)停电保持专用(不可变更)特 殊 用变 址 用D0D199共200点D200D511共312点D512D7999共7488点D8000D8195共106点V7-V0,Z7-Z0共16点(2)数据寄存器D、V、Z 图5.1 16位与32位数据寄存器表5.3数据寄存器D、V、Z元件编号与功能16位数据寄存器所能表示的有符号数的范围为K32 76832 767。 32位数据寄存器所能表示的有符号数的范围为K2 147 483 648 2 147 483 647 功能指令的使用说明:(1)FX2N系列PLC功能指令编号为FNC0FNC246,实际有130个功能指令。(2)功能指令分为16位指令和32位指令。功能指令默认是16位指令,加上前缀D是32位指令,例如DMOV。(3)功能指令默认是连续执行方式,加上后缀P表示为脉冲执行方式,例如MOVP。(4)多数功能指令有操作数。执行指令后其内容不变的称为源操作数,用S表示。被刷新内容的称为目标操作数,用D表示。 5.1.2 数据传送指令数据传送指令MOV表5.4MOV指令传 送 指 令操 作 数D(32位)FNC12MOVS(源)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZP(脉冲型)D(目标)KnY、KnM、KnS、T、C、D、V、Z图5.2 功能指令格式5.1.3 数据传送指令应用举例数据传送指令应用举例 【例题5.1】 设有8盏指示灯,控制要求是:当X0接通时,全部灯亮;当X1接通时,奇数灯亮;当X2接通时,偶数灯亮;当X3接通时,全部灯灭。试设计电路并用数据传送指令编写程序。 【解】 控制线路图如图5.3所示。图5.3 例题5.1控制线路图图5.4 例题5.1程序图输 入 端 口输出位组件 K2Y0传 送 数 据Y7Y6Y5Y4Y3Y2Y1Y0X0H0FFX1H0AAX2H55X3H0表5.5例题5.1控制关系表5.1.4 区间复位指令区间复位指令ZRST表5.6ZRST指令区间复位指令操 作 数操作数范围PFNC40 ZRSTD1、D2Y、M、S、T、C、D图5.5 区间复位指令ZRST 如图5.5所示,当指令语句“ZRST Y0 Y3”执行时将Y0、Y1、Y2、Y3全部复位为0状态。 5.1.5 实习操作:电动机实习操作:电动机Y-降压启动控制线路与程序降压启动控制线路与程序图5.6 Y-降压启动控制线路表5.7 Y-降压启动过程和传送控制数据表操 作 元 件状 态输 入 端 口输出端口/负载传 送 数 据Y3/KM3Y2/KM2Y1/KM1Y0/HLSB2形启动T0延时10sX20111K7T0延时到T1延时1s0011K3T1延时到形运转1010K10SB1停止X10000K0KH过载保护X00001K1图5.7 Y-降压启动程序梯形图5.2 用跳转指令实现选择运行程序段用跳转指令实现选择运行程序段 图5.8 手动/自动程序跳转 应用跳转指令的程序结构如图5.8所示。X3是手动/自动选择开关的信号输入端。当X3未接通时,执行手动程序段,反之执行自动程序段。X3的常开/常闭接点起联锁作用,使手动、自动两个程序段只能选择其一。条件跳转指令操 作 数程 序 步PFNC0 CJ标号 P0P127P63表示跳到ENDCJ 3步标号P 1步5.2.1 条件跳转指令条件跳转指令CJ表5.8CJ指令 1标号P的说明 (1)FX2N系列PLC的标号P有128点(P0P127),用于分支和跳转程序。 (2)标号P放置在左母线的左边,一个标号只能出现一次,如出现两次或两次以上,程序报错。标号P占一步步长。 2跳转指令CJ的说明 (1)如果跳转条件满足,则执行跳转指令,程序跳到以标号P为入口的程序段中执行。否则不执行跳转指令,按顺序执行下一条指令。 (2)多个跳转指令可以使用同一个标号。 (3)如果用M8000作为控制跳转的条件,CJ则变成无条件跳转指令。5.2.2 条件跳转指令应用举例条件跳转指令应用举例【例题5.2】 某台设备具有手动/自动两种操作方式。SB3是操作方式选择开关,当SB3处于断开状态时,选择手动操作方式;当SB3处于接通状态时,选择自动操作方式,不同操作方式进程如下:手动操作方式进程:按启动按钮SB2,电动机运转;按停止按钮SB1,电动机停机。自动操作方式进程:按启动按钮SB2,电动机连续运转1min后,自动停机。按停止按钮SB1,电动机立即停机。图5.9 例题5.2控制线路图【解】 根据控制要求,设计程序梯形图如图5.10所示。图5.10 例题5.2程序梯形图5.3 算术运算指令与单按钮的功率控制算术运算指令与单按钮的功率控制 加 法 指 令操 作 数DFNC20ADDS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z5.3.1 加法指令加法指令ADD表5.10ADD指令1. 加法指令ADD的说明 (1)加法运算是代数运算。 (2)若相加结果为0,则零标志位M8020 = 1,可用来判断两个数是否为相反数。 (3)加法指令可以进行32位操作方式。图5.11 32位加法指令操作数的构成 例如指令语句“DADD D0 D10 D20”的操作数构成如图5.11所示。被加数的低16位在D0中,高16位在D1中;加数的低16位在D10中,高16位在D11中;“和”的低16位在D20中,高16位在D21中。2加法指令ADD举例图5.12 加法指令ADD的举例1图5.13 加法指令ADD的举例2 图5.14 加法指令ADD的举例3 减 法 指 令操 作 数DFNC21SUBS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z5.3.2 减法指令减法指令SUB表5.11SUB指令1减法指令SUB的说明(1)减法运算是代数运算。(2)若相减结果为0时,则零标志位M8020 = 1,可用来判断两个数是否相等。(3)SUB可以进行32位操作方式,例如指令语句:DSUB D0 D10 D20。2减法指令SUB举例 两个数据寄存器中存储的数据相减,程序如图5.15所示。如果X0接点闭合,执行数据传送指令。如果X1接点闭合,执行减法指令,减法运算的结果差(82 = 6)存在D30中。图5.15 减法指令SUB的举例5.3.3 乘法指令乘法指令MUL表5.12MUL指令乘 法 指 令操 作 数DFNC22MULS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z1乘法指令MUL的说明(1)乘法运算是代数运算。(2)16位数乘法:源操作数S1、S2是16位,目标操作数D占用32位。图5.16 16位乘法的积占用32位 例如乘法指令语句“MUL D0 D10 D20”,被乘数存储在D0,乘数存储在D10,积则存储在D21、D20组件中。操作数结构如图5.16所示。2乘法指令MUL举例 运行监控模式的程序梯形图如图5.17所示。如果X0接点闭合,执行数据传送指令。如果X1接点闭合,执行乘法指令,乘法运算的结果(82 = 16)存储在D31、D30目标操作数中。图5.17中D31存储的数据为0,D30存储的数据为16。图5.17 乘法指令MUL的举例除 法 指 令操 作 数DFNC23DIVS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z5.3.4 除法指令除法指令DIV表5.13DIV指令1除法指令DIV的说明 (1)除法运算是代数运算。 (2)16位数除法:源操作数S1、S2是16位,目标操作数D占用32位。除法运算的结果商存储在目标操作数的低16位,余数存储在目标操作数的高16位中。 (3)32位除法:源操作数S1、S2是32位,但目标操作数却是64位。除法运算的结果商存储在目标操作数的低32位,余数存储在目标操作数的高32位。例如除法指令语句“DIV D0 D10 D20”,被除数存储在D0,除数存储在D10,商存储在D20,余数存储在D21,操作数的结构如图5.18所示。图5.18 16位除法的商和余数构成32位目标操作数2除法指令DIV举例 运行监控模式的程序梯形图如图5.19所示。如果X0接点闭合,执行数据传送指令。如果X1接点闭合,执行除法指令。除法运算结果的商7存储在D30,余数1存储在D31。可以看出,数据除2后根据余数为1或为0可判断数据的奇偶性。图5.19 除法指令DIV的举例加1指令操 作 数DFNC24INCDKnY、KnM、KnS、T、C、D、V、ZP5.3.5 加加1指令指令INC表5.14INC指令1加1指令INC的说明 (1)INC指令的执行结果不影响零标志位M8020。 (2)在实际控制中通常不使用每个扫描周期目标操作数都要加1的连续执行方式,所以,INC指令经常使用脉冲操作方式。 减1指令DEC和加1指令INC执行方式相似。2加1指令INC举例 运行监控模式的程序梯形图如图5.20所示。开机初始脉冲M8002将数据寄存器D10清0。在X0接点闭合的那个扫描周期执行加1指令,D10的数据被加1后存储,即(D10)+1(D10)。图中X0共接通5次,D10中存储的数据由0增加到5。图5.20 加1指令INC的举例5.3.6 实习操作:单按钮的功率控制程序实习操作:单按钮的功率控制程序1单按钮的功率控制线路和控制要求 单按钮的功率控制线路如图5.21所示。控制要求是:加热功率有7个挡位可调,大小分别是0.5kW、1kW、1.5kW、2kW、2.5kW、3kW和3.5kW。有1个功率选择按钮SB1和1个停止按钮SB2。第一次按SB1选择功率第1挡,第二次按SB1选择功率第2挡第八次按SB1或按SB2时,停止加热。图5.21 单按钮的功率控制线路输出功率(kW)字元件 K1M0按SB1次数M3M2M1M00000000.5000111001021.5001132010042.5010153011063.5011170100082单按钮功率控制的工序 表5.16单按钮功率控制的工序3单按钮的功率控制程序 图5.22 单按钮的功率控制程序5.4 字逻辑运算指令及应用字逻辑运算指令及应用 字“与”指令操 作 数DFNC26WANDS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z5.4.1 逻辑字逻辑字“与与”指令指令WAND表5.17WAND指令1字“与”指令WAND的说明 (1)S1、S2为作相“与”逻辑运算的源操作数,D为存储“与”逻辑运算结果的目标操作数。 (2)字“与”指令的功能是将两个源操作数的数据,进行二进制按位相“与”,并将运算结果存入目标操作数。2字“与”指令WAND举例 假设要求用输入继电器X0X4的位状态去控制输出继电器Y0Y4,可用字元件K2X0去控制字元件K2Y0。对字元件多余的控制位X5、X6和X7,可与0相“与”进行屏蔽。程序如图5.23所示。图5.23 应用字“与”指令的程序图5.24 字“与”指令的位运算过程字“或”指令操 作 数DFNC27WORS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z5.4.2 逻辑字逻辑字“或或”指令指令WOR表5.18WOR指令1字“或”指令WOR的说明(1)S1、S2为两个相“或”的源操作数,D为存储“或”逻辑结果的目标操作数。(2)指令的功能是将两个源操作数的数据,进行二进制按位相“或”,并将运算结果存入目标操作数。2字“或”指令WOR举例 要求用输入继电器组成的字元件K2X0去控制由输出继电器组成的字元件K2Y0,但Y3、Y4位不受字元件K2X0的控制而始终处于ON状态。可用字“或”指令屏蔽X3、X4位,程序如图5.25所示。图5.26 字“或”指令的位运算过程图5.25 应用字“或”指令的程序字“异或”指令操 作 数DFNC28WXORS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、Z5.4.3 逻辑字逻辑字“异或异或”指令指令WXOR表5.19WXOR指令1字“异或”指令WXOR的说明 (1)S1、S2为两个相“异或”的源操作数,D为存储“异或”逻辑结果的目标操作数。 (2)指令的功能是将两个源操作数的数据,进行二进制按位相“异或”,并将运算结果存入目标操作数。2字“异或”指令WXOR举例 要求用输入继电器组成的字元件K2X0的相反状态去控制由输出继电器组成的字元件K2Y0,即X某位为“1”时,Y的相应位为“0”;X某位为“0”时,Y的相应位为“1”。程序如图5.27所示。图5.27 应用字“异或”指令的程序 图5.28 字“异或”指令运算过程 5.5 子程序调用指令及应用子程序调用指令及应用 图5.29 子程序调用与返回结构指令助记符操 作 数程 序 步PFNC1 CALL标号 P0P62标号 P64P127CALL 3步标号P 1步FNC2 SRET无SRET 1步FNC6 FEND无FEND 1步5.5.1 子程序指令子程序指令CALL、SRET与主程序结束指令与主程序结束指令FEND表5.20CALL、SRET、FEND指令 FEND指令表示主程序结束。END是指整个程序(包括主程序和子程序)结束。一个完整的程序可以没有子程序,但一定要有主程序。 子程序编写在FEND指令的后面,以标号P开头,以返回指令SRET结束。 如果子程序调用条件满足,则中断主程序去执行子程序,标号是被调用子程序的入口地址。在子程序结束处一定要使用返回指令SRET,意思是返回主程序中断处去继续执行主程序的下一条指令语句。 在子程序中,使用定时器的范围是T192T199。 如果在子程序中再调用其他子程序称为子程序嵌套,嵌套总数可达5级。 标号P63相当于END。 子程序调用指令CALL与跳转指令CJ不能使用相同的标号。 5.5.2 实习操作:子程序调用举例实习操作:子程序调用举例图5.30 应用子程序调用指令的程序 程序功能是:X1、X2、X3分别接通时,将相应的数据传送到D0、D10,然后调用子程序;在子程序中,将D0、D10存储的数据相加,运算结果存储在D20,用D20存储数据控制输出字元件K1Y0。 5.6 循环指令及应用循环指令及应用 指令助记符操 作 数程序步循环开始FNC8 FORK、H、KnX、KnY、KnM、KnS、T、C、D、V、Z3循环结束FNC9 NEXT无15.6.1 循环指令循环指令FOR、NEXT1循环指令FOR、NEXT的说明 FOR、NEXT指令必须成对出现,缺一不可。位于FOR、NEXT之间的程序称为循环体,在一个扫描周期内,循环体反复被执行。FOR指令的操作数用于指定循环的次数,只有执行完循环次数后,才执行NEXT的下一条指令语句。循环指令的结构如图5.31所示,图中指定循环次数为10次 。2循环指令FOR、NEXT举例【例题5.3】 求 0+1+2+3+100 的和,并将和存入D0。【解】 用循环指令编写的程序如图5.32所示,D1作为循环增量。图5.32 应用循环指令求和的程序【例题5.4】 求0+1+2+3+100 的和,并将和存入D0。图5.33 应用循环嵌套求和的程序循环指令的脉冲执行方式 图5.34 循环指令的脉冲执行方式 在本例中,每按下一次按钮接通X0时,执行一次循环指令,数据寄存器D0中存储的数据就增加10。 5.6.2 变址寄存器变址寄存器V、Z图5.35 变址操作举例5.6.3 实习操作:循环、变址和子程序调用举例实习操作:循环、变址和子程序调用举例 设数据寄存器D0、D1、D2、D3存储数据分别为2,3,1,7。求它们的代数和,将运算结果存入D10,并用此结果控制输出位组件K1Y0。X0是计算控制端,X1是清0控制端,操作程序如图5.36所示。 图5.36 应用循环、变址、子程序调用指令求和的程序5.7 比较指令的应用与时钟控制程序比较指令的应用与时钟控制程序 5.7.1 接点比较指令接点比较指令FNC编号助 记 符比 较 条 件逻 辑 功 能取比较接点224LD=S1=S2S1与S2相等225LDS1S2S1大于S2226LDS1S2S1小于S2228LDS1 S2S1与S2不相等229LD=S1 S2S1大于等于S2表5.2216位数据接点比较指令表 比较指令是根据运算比较结果,去控制相应的对象。比较类指令包括三种,即接点比较指令,组件比较指令CMP和区间比较指令ZCP。FNC编号助 记 符比 较 条 件逻 辑 功 能串联比较接点232AND=S1=S2S1与S2相等233AND S1S2S1大于S2234AND S1S2S1小于S2236AND S1 S2S1与S2不相等237AND =S1 S2S1大于等于S2并联比较接点240OR=S1=S2S1与S2相等241ORS1S2S1大于S2242ORS1S2S1小于S2244ORS1 S2S1与S2不相等245OR=S1 S2S1大于等于S2图5.37 接点相等比较指令工 作 方 式工作方式选择输入按钮作用输出继电器动作过程X1X0X2X3X4手动00点动Y0点动Y1Y0、Y1点动自动101启动停止过载Y0启动后10sY1启动自动210启动停止过载Y0启动后20sY1启动自动311启动停止过载Y0启动后30sY1启动 【例题5.5】 某台设备有两台电动机,受输出继电器Y0、Y1控制;设手动、自动1、自动2和自动3四挡工作方式;使用X0X4输入端,其中X0、X1接工作方式选择开关,X2、X3接启动/停止按钮,X4接过载保护。在手动方式中采用点动操作,在3挡自动方式中,Y0启动后分别延时10s、20s、和30s后再启动Y1,用接点比较指令编写程序和分析程序。【解】 根据题意列出控制关系,如表5.23所示。表5.23例题5.5控制关系图5.38 例题5.55.7.2 组件比较指令组件比较指令CMP表5.24CMP指令比 较 指 令操 作 数DFNC10CMPS1、S2K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZPDY、M、S1组件比较指令CMP的说明标志位的规则:若(D0)(D10),则M0置1,M1、M2为0;若(D0)=(D10),则M1置1,M0、M2为0;若(D0)(D0),则M0置1,M1、M2为0;若K100(D0)K500,则M1置1,M0、M2为0;若K500 (D10),则M2置1,M0、M1为0。2区间比较指令ZCP举例【例题5.7】 用如图5.43所示的传送带输送工件,数量为20个。连接X0端子的光电传感器对工件进行计数。当计件数量小于15时,指示灯常亮;当计件数量等于或大于15以上时,指示灯闪烁;当计件数量为20时,10s后传送带停机,同时指示灯熄灭。设计PLC控制线路并用区间比较指令ZCP编写程序。图5.43 传送带工作台图5.44 例题5.7传送带的控制线路图图5.45 传送带的PLC控制程序5.7.5 马路照明灯时钟控制程序马路照明灯时钟控制程序1时钟专用的特殊辅助继电器和特殊数据寄存器表5.28特殊辅助继电器功能表5.29特殊数据寄存器功能特殊辅助继电器作 用功 能M8015时钟停止和改写=1时钟停止,改写时钟数据M8016时钟显示停止=1停止显示M8017秒复位清0上升沿时修正秒数M8018内装RTC检测平时为1M8019内装RTC错误改写时间数据超出范围时=1特殊数据寄存器作 用范 围D8013秒059D8014分059D8015时023D8016日131D8017月112D8018年公历4位D8019星期06(周日周六)2设定时钟信息图5.46 设定时钟信息的程序3马路照明灯时钟控制程序图5.47 马路照明灯时钟控制程序设马路照明灯由PLC输出端口Y0、Y1各控制一半。每年夏季(79月)每天19时0分至次日0时0分灯全部开,0时0分至5时30分开一半灯。其余季节每天18时0分至次日0时0分灯全部开,0时0分至7时0各开一半灯。5.8 循环移位指令及应用循环移位指令及应用 5.8.1 循环左移指令循环左移指令ROL 表5.30ROL指令循环左移指令操 作 数DFNC31ROLDKnY、KnM、KnS、T、C、D、V、Z(Kn位组件中n = 4/8)Pnn16(16位指令),n32(32位指令) 设(D0)循环前为H1302,则执行“ROLP D0 K4”指令后,(D0)为H3021,进位标志位(M8022)为1。执行过程如图5.48所示。图5.48 循环左移指令ROL执行过程 【例题5.8】 循环左移指令ROL的应用举例如图5.49所示。求输出位组件K4Y0在一个循环周期中各位状态的变化。图5.49 循环左移指令举例表5.31例题5.8各位状态的变化5.8.2 循环右移指令循环右移指令ROR表5.32ROR指令循环右移指令操 作 数DFNC30RORDKnY、KnM、KnS、T、C、D、V、Z(Kn位组件中n = 4/8)Pnn16(16位指令),n32(32位指令)图5.50 循环右移指令ROR执行过程 【例题5.9】 循环右移指令ROR的应用举例如图5.51所示。求输出位组件K4Y0在一个循环周期中各位状态的变化。图5.51 循环右移指令举例表5.33例题5.9各位状态的变化输 入输 出输入继电器输 入 元 件作 用输出继电器控 制 对 象X0SB1启动按钮Y7Y0HL8HL1X1SB2停止按钮Y17Y10HL16HL9Y27Y20H24HL17 【例题5.10】 利用PLC实现流水灯控制。某灯光招牌有24个灯,要求按下启动按钮X0时,灯以正、反序每0.1s间隔轮流点亮;按下停止按钮X1时,停止工作。 【解】 由于输出动作频繁,应选择晶体管或晶闸管输出类型的PLC。流水灯控制需要2个输入端口,24个输出端口。输入、输出端口的分配如表5.34所示。表5.34输入/输出端口分配表图5.52 例题5.105.8.3 位左移指令位左移指令SFTL表5.35SFTL指令循环左移指令操 作 数PFNC35SFTLSX、Y、M、Sn1、n2K、HDY、M、S1n2n110241位左移指令SFTL的说明 (1)S为移位的源操作数的最低位,D为被移位的目标操作数的最低位。n1为目标操作数个数,n2为源操作数个数。 (2)位左移就是源操作数从目标操作数的低位移入n2位,目标操作数各位向高位方向移n2位,目标操作数中的高n2位溢出。源操作数各位状态不变。 (3)在指令的连续执行方式中,每一个扫描周期都会移位一次。在实际控制中,常采用脉冲执行方式。位左移指令SFTL的应用示例梯形图如图5.53所示。图5.53 位左移指令SFTL示例梯形图图5.54 位左移指令SFTL示例过程2位左移指令SFTL举例 【例题5.11】 位左移指令SFTL的程序梯形图如图5.53所示。设Y17Y0的初始状态为0,X3X0的位状态为1011。求数次执行位左移指令SFTL后,Y17Y0各位状态的变化。表5.36例题5.11各位状态的变化 【解】 Y17Y0各位状态的变化如表5.36所示。第一次执行左移指令SFTL后,(K4Y0)= H0B,第二次执行左移指令SFTL后,(K4Y0)= H0BB,依次类推。5.8.4 位右移指令位右移指令SFTR表5.37SFTR指令循环左移指令操 作 数PFNC34SFTRSX、Y、M、Sn1、n2K、HDY、M、S1n2n110241位右移指令SFTR的说明 (1)S为移位的源操作数的最低位,D为被移位的目标操作数的最低位。n1为目标操作数个数,n2为源操作数个数。 (2)位右移就是源操作数从目标操作数的高位移入n2位,目标操作数各位向低位方向移n2位,目标操作数中的低n2位溢出。源操作数各位状态不变。位右移指令SFTR的应用示例梯形图如图5.55所示。图5.55 位右移指令SFTR示例梯形图图5.56 位右移指令SFTR示例过程 【例题5.12】 位右移指令SFTR的程序梯形图如图5.55所示。设Y17Y0的初始状态为0,X3X0的位状态为1011。求数次执行位右移指令SFTR后,Y17Y0各位状态的变化。2位右移指令SFTR举例 【解】 Y17Y0各位状态的变化如表5.38所示。在未执行位右移指令SFTR前,(K4Y0)= 0,第一次执行左移指令SFTR后,(K4Y0)= H0B000,第二次执行左移指令SFTL后,(K4Y0)= H0BB00,依次类推。表5.38例题5.12各位状态的变化 【例题5.13】 某台设备有8台电动机,为了减小电动机同时启动对电源的影响,利用位移指令实现间隔10s的顺序通电控制。按下停止按钮时,同时停止工作。 【解】 控制线路需要2个输入端口,8个输出端口。输入、输出端口的分配如表5.39所示。表5.39输入/输出端口分配表输 入输 出输入继电器输 入 元 件作 用输出继电器控 制 对 象X0SB1启动按钮Y7Y08个接触器X1SB2停止按钮图5.57 例题5.13 程序梯形图5.9 数码显示及应用数码显示及应用 5.9.1 七段数码显示七段数码显示图5.58 七段数码管1七段数码管与显示代码十进制数字七段显示电平十六进制显示代码二进制表示gfedcba 0 00000111111H3F100010000110H06200101011011H5B300111001111H4F401001100110H66501011101101H6D601101111101H7D701110100111H27810001111111H7F910011101111H6F表5.40 十进制数字与七段显示电平和显示代码逻辑关系2数码管应用举例 【例题5.14】 设计一个用数码显示的5人智力竞赛抢答器。某参赛选手抢先按下自己的按钮时,则显示该选手的号码,同时联锁其他参赛选手的输入信号无效。主持人按复位按钮清除显示数码后,比赛继续进行。 【解】 控制线路如图5.59所示。图5.59 智力竞赛抢答器控制线路图图5.60 智力竞赛抢答器程序梯形图表5.42SEGD指令5.9.2 七段编码指令七段编码指令SEGD七段编码指令操 作 数PFNC73SEGDSK、H 、KnX、KnY、KnM、KnS、T、C、D、V、ZD KnY、KnM、KnS、T、C、D、V、Z七段编码指令SEGD的说明: (1)S为要编码的源操作组件,D为存储七段编码的目标操作数。 (2)SEGD指令是对4位二进制数编码,如果源操作组件大于4位,只对最低4位编码。 (3)SEGD指令的编码范围为十六进制数字09、AF。SEGD指令的应用举例如图5.61所示。图5.61 七段编码指令SEGD应用举例 当X0接通的那个周期,对数字5执行七段编码指令,并将编码H6D存入输出位组件K2Y0,即输出继电器Y7Y0的位状态为 0110 1101。 当X1接通的那个周期,对(D0)= 1执行七段编码指令,输出继电器Y7Y0的位状态为 0000 0110。5.9.3 BCD码指令码指令BCD18421BCD编码 例如,十进制数21的二进制形式是0001 0101,对高4位应用SEGD指令编码,则得到“1”的七段显示码;对低4位应用SEGD指令编码,则得到“5”的七段显示码,显示的数码“15”是十六进制数,而不是十进制数21。 显然,要想显示“21”,就要先将二进制数0001 0101转换成反映十进制进位关系(即逢十进一)的0010 0001,然后对高4位“2”和低4位“1”分别用SEGD指令编出七段显示码。 这种用二进制形式反映十进制进位关系的代码称为BCD码,其中最常用的是8421BCD码。表5.43十进制、十六进制、二进制与8421BCD码关系十 进 制 数十六进制数二 进 制 数8421BCD码000000000011000100012200100010330011001144010001005501010101660110011077011101118810001000991001100110A10100001 000011B10110001 000112C11000001 001013D11010001 001114E11100001 010015F11110001 0101表5.43十进制、十六进制、二进制与8421BCD码关系16101 00000001 011017111 00010001 011120141 01000010 0000503211 00100101 000010064110 01000001 0000 0000150961001 01100001 0101 00002581021 0000 00100010 0101 1000 从表中可以看出,8421BCD码从低位起每4位为一组,高位不足4位补0,每组表示1位十进制数。8421BCD码与二进制数的形式相同,但概念完全不同,虽然在一组8421BCD码中,每位的进位也是二进制,但在组与组之间的进位,8421BCD码则是十进制。 2BCD码转换指令BCD 要想正确地显示十进制数码,必须先用BCD转换指令将二进制形式的数据转换成8421BCD码,再利用SEGD指令编成七段显示码,最后输出控制数码管发光。表5.44BCD指令BCD码转换指令操 作 数DFNC18BCDSKnX、KnY、KnM、KnS、T、C、D、V、ZPD KnY、KnM、KnS、T、C、D、V、ZBCD转换指令的说明: (1)S为要转换的源操作数,D为存储BCD编码的目标操作数。 (2)BCD指令是将源操作数的数据转换成8421BCD码存入目标操作数中。在目标操作数中每4位表示1位十进制数,从低至高分别表示个位、十位、百位、千位。16位数据表示的范围为09 999,32位数据表示的范围为099 999 999。 BCD指令的应用举例如图5.62所示。当X0接通时,先将K5028存入D0,然后将(D0)= 5028编为BCD码存入输出位组件K4Y0,执行过程如图5.63所示。 图5.62 BCD转换指令BCD应用举例图5.63 BCD转换指令BCD应用过程5.9.4 多位数码显示多位数码显示 【例题5.15】 某停车场最多可停50辆车,用两位数码管显示停车数量。用出入传感器检测进出车辆数,每进一辆车停车数量增1,每出一辆车减1。场内停车数量小于45时,入口处绿灯亮,允许入场;等于和大于45时,绿灯闪烁,提醒待进车辆注意将满场;等于50时,红灯亮,禁止车辆入场。 【解】 停车场PLC控制线路图如图5.64所示。图5.64 停车场控制线路图图5.65 停车场PLC程序梯形图停车场输入、输出器件位置示意图如图5.66所示。图5.66 停车场输入/输出设备位置示意图THE END
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号