第九课题使用功能指令完成.docx

上传人:b****1 文档编号:10757803 上传时间:2023-05-27 格式:DOCX 页数:15 大小:197.90KB
下载 相关 举报
第九课题使用功能指令完成.docx_第1页
第1页 / 共15页
第九课题使用功能指令完成.docx_第2页
第2页 / 共15页
第九课题使用功能指令完成.docx_第3页
第3页 / 共15页
第九课题使用功能指令完成.docx_第4页
第4页 / 共15页
第九课题使用功能指令完成.docx_第5页
第5页 / 共15页
第九课题使用功能指令完成.docx_第6页
第6页 / 共15页
第九课题使用功能指令完成.docx_第7页
第7页 / 共15页
第九课题使用功能指令完成.docx_第8页
第8页 / 共15页
第九课题使用功能指令完成.docx_第9页
第9页 / 共15页
第九课题使用功能指令完成.docx_第10页
第10页 / 共15页
第九课题使用功能指令完成.docx_第11页
第11页 / 共15页
第九课题使用功能指令完成.docx_第12页
第12页 / 共15页
第九课题使用功能指令完成.docx_第13页
第13页 / 共15页
第九课题使用功能指令完成.docx_第14页
第14页 / 共15页
第九课题使用功能指令完成.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第九课题使用功能指令完成.docx

《第九课题使用功能指令完成.docx》由会员分享,可在线阅读,更多相关《第九课题使用功能指令完成.docx(15页珍藏版)》请在冰点文库上搜索。

第九课题使用功能指令完成.docx

第九课题使用功能指令完成

第九课题 使用功能指令完成

带时间显示的交通灯的程序设计与实现

一、实训设计题:

带时间显示的交通灯电路的控制

1.要求学生按下面要求完成实训设计题:

学生设计下面交通灯程序时,要使用数码管将每盏灯变化的时间显示出来。

控制要求如下表9-1:

表9-1交通灯控制的要求表

 

2.程序设计时,按下列步骤进行

(1)程序的I/O分配;

(2)程序的梯形图;

(3)程序的指令;

(4)PLC的外部接线图;

(5)程序调试过程。

二、实训目的

通过相关内容的讲解和学生的练习,使学生了解功能指令的组成,学会常用功能指令的使用方法,并能使用相关功能指令编写程序。

三、讲授内容的相关知识点

<一>功能指令及使用要素

1.功能指令的表示方法

FX系列可编程序控制器采用计算机通用的助记符形式来表示功能指令。

一般用指令的英文名称或缩写作为助记符,例如图9-1中的指令助记符MEAN用来表示取平均值的指令。

有的功能指令只需要指定功能号,大多数功能指令在指定功能号的同时还需要指定操作元件。

操作元件由1到4个操柞数组成,图9-1中的[S]表示源(Source)操作数,[D]表示目标(Destnation)操作数。

如果可以使用变址功能.则表示为[S·]和[D·]。

源或目标不止一个,可表示为[S1·]、[D1·]、[S2·]、[D2·]等表示。

用m或n表示其他操作数时,它们常用来表示常数,或作为源操作数和目图9-1功能指令

标操作数的补充说明。

需注释的项目较多,可以采用m1,m2等方式。

功能指令的功能号和指令助记符占一个程序步,16位操作与32位操作的每一个操作数分别占2个和4个程序步。

2.数据长度与指令类型

(1)数据长度

图9-1中助记符MOV之前的“(D)”表示处理32位(32bit)数据,这时相邻的两元件组成元件对,该指令将D11、D10中的数据传送到D13、D12。

处理32位数据时,为了避免出现错误,建议使用首地址为偶数的操作数。

没有“(D)”时表示处理16位数据。

(2)脉冲执行与连续执行

图7-1中MOV后面的“(P)”表示脉冲执行,即仅在X1由OFF(“0”状态)→ON(“1”状态)时执行一次。

如果没有“(P)”,在XI为ON的每一扫描周期指令都要被执行,称为连续执行。

某些指令(如INC(加1)、DEC(减l)和XCH(数据交慎)指令)一般应使用脉冲执行。

如果不需要每个周期都执行指令,使用脉冲方式可缩短处理时间。

符号“(P)”和“(D)”可同时使用。

3.位元件

(1)位元件和字元件

只有ON/OFF状态的元件称为位(bit)元件。

例如X、Y、M和S。

处理数据的元件称为字元件。

例如定时器和计数器的当前值T,C和数局寄存器D等,一个数由l6位二进制数组成,位元件也可以组成字元件来进行数据处理。

(2)位元件的组合

每相邻的4bit位元件组合成一个单元,它由Kn加首位元件号来表示,其中的n为组数,16位操作数时n=1~4,32位操作数时n=l~8。

例如K2M0表示由M0~M7组成的两个位元件组,M0为数据的最低位(首位);K4S10表示由S10~S25组成的16位数据,S10为最低位。

当16位数据传送到n=1~3的位元件组时,只传送低位的相应数据;当32位数据传送到n=1~7的位元件组时,也是一样的。

被组合的位元件的首位元件号可以是任意的,但是为了避免混乱,建议采用以0结尾的元件,如X0、X10、X20等。

作16位数操作时,参与操作的位元件由K1~K4指定。

若仅由Kl~K3指定,高位的不足部分均作0处理,这意味着只能处理正数(最高位为符号位,正数的符号位为0),在32位数处理时也有类似的情况。

(3)变址寄存器V、Z

在传送、比较指令中,变址寄存器V,Z用来修改操作对象的元件号,循环程序中常使用变址寄存器。

[S·]和[D·]表示有变址功能。

对32位指令,V为高I6位、Z为低16位。

32位指令中使用变址指令只需指定Z,这时Z就能代表V和Z。

在32位指令中,V、Z自动组对使用。

图7.2中的各触点接通时,常数10送到V0,常数20送到Z1,ADD指令完成运算(D5V0)+(D15Z1)~(D40Zl),即(D15)+(D35)→(D60)。

 

图9-2变址寄存器的使用

<二>功能指令的应用

1.传送和比较指令

比较与传送指令的编号为FNC10-FNC19。

比较指令包括CMP(比较)和ZCP(区间比较)两条指令,传送指令包括MOV(传送)、SMOV(BCD码移位传送)、CLM(取反传送)、BMOV(数据块传送)、FMOV(多点传送)、XCH(数据交换)、BCD(二进制数转换成BCD码并传送)和BIN(BCD码转换为二进制数并传送)指令。

(1)比较指令

比较指令包拾CMP(比较)和ZCP区间比较),比较结果用目标元件的状态来表示。

待比较的源操作数[S1·]和[S2·]可取任意的数据格式,目标操作数[D·]可取Y,M和S,占用3点。

a比较指令

比较指令CMP(Compare)的功能指令编号为FNC10,16位运算占7个程序步,32位运算占13个程序步。

比较指令比较源操作数[S1·]和[S2·],比较的结果送到目标操作数[D·]中去。

图9-3中的比较指令将十进制常数100与计数器C10的当前值比较,比较结果送到M0~M2。

X1为OFF则不进行比较,M0~M2的状态保侍不变。

X1为ON时进行比较,如果比较结果为[S1·]>[S2·],M0ON;若[S1·]<[S2·],M2ON。

如指定的元件种类或无件号超出允许范围时将会出错。

b区间比较

区间比较指令的助记符为ZCP(ZoneCompare),功能指令编号为FNC11。

16位运算占9个程序步,32位运算占17个程序步。

图9-4中的X2为ON时,执行ZCP指令,将T3的当前值与常数100和150相比较,比较结果送到M3~M5,源数据[S1·]不能大于[S2·]。

 

图9-3比较指令的使用图9-4区间比较指令的使用

(2)传送指令[FNC12-FNC16]

传送指令包括MOV(传迭)、SMOV(BCD码移位传送)、CML(取反传送)、BMOV(数据块传送)和FMOV(多点传送)以及XCH(数据交换)指令。

MOV和CML指令的源操作数可取所有的数据类型,SMOV指令可取除K,H以外的其他类型的操作数。

它们的目标操作数可取KnY,KnM,KnS,T,C,D,V和Z。

a传送指令

传送指令MOV(Move)的功能指令编号为FNC12,16位运算占5个程厅步,32位运算占9个程序步。

传送指令将源数据传送到指定目标,图9-5中的X1为ON时常数100被传送到D10,并自动转换为二进制数。

图9-5传送指令与移位传送指令

b移位传送

移位传送指令SMOV(ShiftMove)的功能指令编号为FNC13,只有16位运算,占11个程序步。

源数据(二进制数)被转换成4位BCD码然后将它移位传送。

图9-5中的X0为ON时,将DI中右起第4位(ml=4)开始的2位〔m2=2)BCD码移到目标操作数(D2)的右起第3位(n=3)和第2位(见图9-6),然后D2中的BCD码自动转换为二进制码,D2中的第1位和第4位不受移位传送值令的影响。

c取反传送指令

取反传送指令的助记符为CML(Complement),功能指令编号为FNC14,16位运算占5个程序步,32位运算占9个程序步。

取反传送指令将源元件宁的数据逐位取反(1→0,0→1)并传送到指定目标。

若源数据为常数K,该数据会自动转换为二进制数,CML用于可编程控制器反逻辑输出时非常方便。

囹9-7所示的CML指令将D0的低4位取反后传送到Y0~Y3中。

d块传送指令

块传送指令BMOV(BlockMove)的功能指令编号为FNC15,16位操作占7个程序步,块传送指令的源操作数可取KnX、KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可取KnY、KnM、KnS、T、C和D。

块传送将源操作数指定的元件开始的n个数据组成的数据块传送到指定的目标。

如果元件号超出允许的范围,数据仅仅传送到允许的范围。

传送顺序是自动决定的,以防止源数据块与目标数据块重叠时源数据在传送过程中被改写。

如果源元件与目标元件的类型相同,传送顺序如图9-8所示。

e多点传送指令

多点传送指令FMOV(FillMove)的功能指令编号为FNC16,16位操作占7个程序步,32位操作占13个程序步。

它的源操作数可取所有的数据类型,目标操作数可取KnY、KnM、KnS、T、C和D,n=512。

多点传送指令将源元件中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同。

如果元件号超出允许的范围,数据仅仅送到允许的范围中。

图9-9中的X2为ON时将常数0送到D5~D14这10个(n=10)数据寄存器中。

2.循环移位指令

循环移位与移位指令的功能指令编号为FNC30~FNC39。

ROR,ROL分别是右、左循环移位指令,RCR,RCL分别是带进位的右、左循环移位指令。

SFTR、SFTL分别是移位寄存器右、左移位指令。

WSFR,WSFL分别是字右移、字左移指令,SFWR,SFRD分别是先人先出(FIFO)写人和移位读出指令。

(1)循环移位指令

右、左循环移位指令的指令助记符分别为ROR(RotaionRight)和ROL(RotationLeft),功能指令编号分别为FNC30和FNC31。

它们只有目标操作数,可取KnY、KnM、KnS、T、C、D、V和Z。

l6位指令占5个程序步,32位指令占9个程序步。

16位指令和32位指令中n应分别小于16和32。

执行这两条指今时,各位的数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中(见图9-10和图9-11)。

若在目标元件中指定位元件组的组数,只有K4(16位指令)和K8(32位指令)有效,如K4Y10和K8M0。

3.四则逻辑运算指令

算术运算与字逻辑运算指令的功能指令编号为FNC20~FNC29,算术运算包括ADD,SUB,MUL,DIV(二进制加、减、乘、除)指令,INC,DEC(加l、减1)指令;WAND,WOR,WXOR,NEG分别是字编程元件的逻辑与、或、异或和取补指令。

(1)加1和减1指令

加1和减1指令的助记符分别为INC(Increment)和DEC(Decrment),功能指令编号分别为FNC24和FNC25。

它们的操作数均可取KnY、KnM、KnS、T、C、D、V和Z。

16位运算占3个程序步,32位运算占5个程序步。

图9-12中的X4每次由OFF变为ON时,由[D·]指定的元件中的数增加l。

如果不用脉冲指令,每一个扫描周期都要加1。

在16位运算中,32767再加1就变成一32768,但标志位不会动作。

32位运算时,+2147483647再加l就会变为-2147483648,但标志不会动作。

图9-13中的程序将计数器C0~C9的当前值转换为BCD码后输出到K4Y0。

Z0被复位输人X0清0。

每次X11ON时,C0~C9的当前值依次输出到K4Y0。

(Z0)=10时M1变为ON,将Z0清零。

4.数据处理指令

数据处理指令的功能指令编号为FNC40~FNC49,包括区间复位指令ZRST、解码指令DECO、编码指令ENCO、求置ON位总数指令SUM,ON位判别指令BON、平均值指令MEAN、报警器置位指令ANS、报警器复位指令ANR、平方根指令SQR、二进制整数→二迸制浮点数转换指令FLT和高低字节交换指令SWAP。

(1)区间复位指令

区间复位指令ZRST(ZoneReset)将[D1·]、[D2·]指定的元件号范围内的同类元件成批复位,它的功能指令编号为FNC40,目标操作数可取T、C和D(字元件)或Y、M、S(位元件)。

该指令只有16位运算,占5个程序步。

[D1·]和[D2·]指定的应为同一类元件,[D1·]的元件号应小干[D2·]的元件号。

如[D1·]的元件号大干[D2·]的元件号,则只有[D1·]指定的元件被复位。

虽然ZRST指令是16位处理指令,[D1·]、[D2·]也可以指定32位计致器。

图9-14示。

除了ZRST指令外,可以用RST指令复位单个元件。

用多点写人指令FMOV将K0写人KnY、KnM、KnS、T、C和D,也可以将它们复位。

<三>功能指令例题讲解

例题1

用PLC驱动数码管显示一个两位数的时间53秒,然后按秒递减至零,循环不断。

1.例题要实现的目的

a、用PLC如何驱动数码管。

b、进一步熟悉掌握功能指令的应用。

2.讲解的内容

(1)系统配置

a、FX2N-64MRPLC一台。

b、两块数码管及直流稳压电源、电阻。

3.程序I/O分配见表9-2

表9-2元件I/O分配表

输入信号

分配元件

输出信号

分配元件

启动信号

X0

十位数显示数码管

Y0Y1Y2Y3Y4Y5Y6

停止信号

X1

个位数显示数码管

Y10Y11Y12Y13Y14Y15Y16

4.PLC控制的接线见图9-15

 

图9-15PLC控制的接线图

5.程序设计

使用Y0-Y6输出控制十位数数码管的a,b,c,d,e,f,g。

使用Y10-Y16输出控制个位数数码管a,b,c,d,e,f,g。

程序中使用了数据传送MOV指令,数据减一DEC指令,7段码译码SEGD指令,区间复位ZRST等功能指令。

程序运行时将不断变化的时间数据传给7段码译码SEGD指令,7段码译码SEGD指令再驱动数码管,显示不断变化的时间。

下图9-16是该程序的设计方案。

 

 

图9-16显示时间的梯形图

6.程序指令表(学生自己完成)

7.通电测试

(1)加直流12V电源,调试程序。

(2)调试中主要关注十位数和个位数的变化是否同步。

例题2

用PLC驱动广告牌边框饰灯,该广告牌有16个边框饰灯L1—L16,当广告牌开始工作时,饰灯每隔0.1S从L1到L16依次正序轮流点亮,重复进行;循环两周后,又从L16到L1依次反序每隔0.1S轮流点亮,重复进行;循环两周后,再按正序轮流点亮,重复上述过程。

当按停止按钮时,停止工作。

1.例题要实现的目的

(1)进一步熟悉掌握功能指令的应用。

(2)学会分析指令执行的过程以及程序运行调试的方法。

训练应用PLC实现对一般控制对象控制的能力。

2.讲解的内容

(1)系统配置

a、FX2N-64MRPLC一台。

b、广告牌模拟边框饰灯16个。

3.程序I/O分配见表9-3

表9-3元件I/O分配表

输入信号

分配元件

输出信号

分配元件

启动信号

X0

L1—L7

Y0Y1Y2Y3Y4Y5Y6Y7

停止信号

X1

L8—L16

Y10Y11Y12Y13Y14Y15Y16Y17

4.PLC控制的接线图见图9-17

 

图9-17PLC控制的接线图

5.程序设计

当X000为ON时,先置正序初值(使Y000为ON),然后执行子程序调用程序,进入子程序1,执行循环左移指令,输出继电器依次每隔0.1S正序左移一位,左移一周结束,即Y017为ON时,C0计数一次,重新左移;当C0计数两次后,停止左循环,返回主程序。

再置反序初值(Y017为ON),然后进入子程序2,执行循环右移指令,输出继电器依次每隔0.1S反序右移一位,右移一周结束,即Y000为ON时,C1计数一次,重新右移;当C1计数两次后,停止右循环,返回主程序。

同时使M0重新为ON,进入子程序1,重复上述过程。

当X001为ON时,使输出继电器全为OFF,计数器复位,饰灯全部熄灭。

程序梯形图见图9-18。

 

图9-18广告牌边框饰灯控制的梯形图

6.通电测试

(1)按图8—2连接好PLC的外部设备及电源,调试程序。

(2)当X000为ON时,输出从Y000—Y017每隔0.1S依次轮流点亮饰灯,重复进行;当X001为ON时,K4Y0为0,循环停止。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2