16.第十六讲 功能指令(二)_第1页
16.第十六讲 功能指令(二)_第2页
16.第十六讲 功能指令(二)_第3页
16.第十六讲 功能指令(二)_第4页
16.第十六讲 功能指令(二)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、Tel:QQ:397717985Email:S7-200PLC培训教程 智能化工程实训中心 杨 青课件文件网上下载:网 址:http:/.cn用户名: 密 码:主要内容:转换指令表功能指令移位指令移位寄存器指令重点移位寄存器和表功能指令第十六讲 功能指令(二)转换指令第一节BCD码 整数双整数实数取整(重点)四舍五入截位取整整数 双整数字节 整数编码、译码段译码字符串转换ASCIIHEX 整数 ASCII双整数ASCII实数ASCII转换指令1.1 BCD码整数BCD码整数BCD码转换为整数指令。IN:输入数据BCD码取值范围:09999的BCD码表示方式:16进制OUT:输出数据整型整数BC

2、D码整数转换为BCD码指令。IN:输入数据整数取值范围:09999(整数)OUT:输出数据BCD码双整数到实数 DI_R双整数转换实数指令。使能输入有效时,将双整数输入数据IN转换成实数,并将结果送到OUT输出。1.2 双整数到实数双整数实数1.3 取整指令四舍五入 ROUND将实数转换为双整数。小数部分4舍5入,IN:实数OUT:双整数截位取整 TRUNC将实数转换为双整数。小数部分舍去IN:实数OUT:双整数1.4 整数双整数整数双整数 I_DI整数转换为双整数指令。使能输入有效时,将整数输入数据IN转换成双整数类型(符号进行扩展),并将结果送到OUT输出。双整数整数 DI_I双整数转换为

3、整数指令。使能输入有效时,将双整数输入数据IN转换成整数类型,并将结果送到OUT输出。输入数据超出整数范围则产生溢出(SM1.1=1)。字节整数 B_I字节转换为整数指令。使能输入有效时,将字节输入数据IN转换成整数类型,并将结果送到OUT输出。字节型没有符号。整数字节 I_B整数转换字节指令。使能输入有效时,将整数输入数据IN转换成字节类型,并将结果送到OUT输出。输入数据超出字节范围(0255)则产生溢出。1.5 字节整数字节整数整数字节七段码指令SEG使能输入有效时,将字节型输入数据IN的低4位有效数字产生相应的七段码,并将其输出到OUT所指定的字节单元。可直接驱动数码管。1.6 七段译

4、码指令I_S:整数字符串S_I:字符串整数DI_S:双整数字符串SI_D:字符串双整数R_S:实数字符串S_R:字符串实数ITA:整数ASCII字符数组DTA:双整数ASCII字符数组RTA:实数ASCII字符数组ATH:ASCII 16进制数字HTA:16进制数字ASCII1.7 其它的转换指令编码ENCO:将输入字(IN)从最低位开始的非0数据的位码输出到OUT的低4位中。如IN为2#1100 1000 0100 0000 OUT为VB100执行后VB100的低4位为 6 即 0110。1.8 解码和编码指令译码DECO:将输出字(OUT)中与输入字节(IN)最低4位表示的位数相对应的位输

5、出。输出字的所有其他位均为0。如IN为2#1011 1000 OUT为2#1111 0010 1100 0110即将OUT的第8位输出,其它为0,所以OUT为0000 0000 1000 00001.8 解码和编码指令填表指令 AD_T_TBL有2个数据输入端:DATA为数值输入,指出将被存储的字型数据或其地址;TBL表格的首地址,用以指明被访问的表格。当使能输入有效时,将输入字型数据添加到指定的表格中。表存数特点表内第一个数为表的最大长度;第二个数为表内实际的项数。所有的表格操作指令都只能用边缘触发指令。二、表功能指令ATT VW200,VW100指令执行前VW200中的内容为2222操作数

6、单元地址执行前内容执行后内容说明DATAVW20022222222被填表数据及地址TBLVW10000060006TL=6,最大填表数为6,不变化VW10200040005EC,实际存表数由4加1变为5VW10412031203数据0VW10623452345数据1VW10854365436数据2VW11044534453数据3VW112*2222将VW200的数据填入表中VW114*无效数据查表指令 TBL_FIND通过表查找指令可以从字型数据表中找出符合条件的数据所在表中编号,数据的编号为099.? 可以取= 4个数据输入端TBL表格的首地址,用以指明被访问的表格PTN是用来描述查表条件时

7、进行比较的数据CMD是比较运算符“?”的编码,是一个1到4的数值,分别代表=、运算符;INDX用来指定表中符合查找条件的数据地址。(内容为表格中的第几个数据行)二、表功能指令VW20016#06TLVW202 16#06ECVW20416#4542D0VW20616#4142D1VW20816#3130D2VW21016#3234D3VW21216#3130D4VW21416#3638D5 查表指令中的EC地址(比表格首地址大1)表查找指令执行之前,应先对INDX的内容清0。当使能输入有效时,从INDX开始搜索表TBL,寻找到符号由PTN和CMD所决定的条件的数据,如果找到一个符号条件的数据,

8、则将该数据在表中地址装入INDX中。如果没有找到符号条件的数据,则INDX的值等于EC。第一次执行该指令:AC1的数据为 2。查表指令找到一个符合条件的数据后,如果想继续向下查找,必须先对INDX加,以重新激活查表指令。出栈指令指令的作用是将表格中的数据取出,有FIFO和LIFO两种。FIFO,先进先出指令当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元中。FIFO表取数特点取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置实际填表数EC会自动减1。指令格式:FIFO TBL,DATA二、表功能指令操作数单元

9、地址执行前内容执行后内容说明DATAAC0空1203从表中取走的数据及输出TBLVW10000060006TL=6,最大填表数为6,不变化VW10200040003EC,实际存表数由4减1变为3VW10412032345剩余数据向上移动一格VW10623455436数据1VW10854364453数据2VW1104453*执行后数据无效VW112*无效数据VW114*无效数据1203LIFO,后进先出指令当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。LIFO表取数特点取数时,移出的数据是最后进入表中的数据每次从表中取出一个数据,剩余数据位置保持不变

10、实际填表数EC会自动减1。二、表功能指令出栈指令操作数单元地址执行前内容执行后内容说明DATAAC0空4453从表中取走的数据及输出TBLVW10000060006TL=6,最大填表数为6,不变化VW10200040003EC,实际存表数由4减1变为3VW10412031203数据0,剩余数据不移动VW10623452345数据1VW10854365436数据2VW1104453*执行后数据无效VW112*无效数据VW114*无效数据FILL,存储器填充指令使能输入有效时,用字型输入数据IN填充从输出OUT所指的单元开始的N个字存储单元。填充指令只能对字型数据进行处理,N值为字节型,可取从1到

11、255的整数。指令的执行不影响特殊存储器位。指令格式:FILL IN,OUT,N如 FILL 10,VW100,12将数据10填充到从VW100到VW122共12个字存储单元。二、表功能指令表功能指令举例NETWORK 1 / 建立带20个条目的表格,从 内存位置VW4开始LD SM0.1 / 首次扫描时,MOVW +20 VW0 / 定义最大表格长度NETWORK 2 / 用输入I0.0复原表格,将表格 清零LD I0.0 / 在I0.0的上升边缘,(表指令操作要 边缘时有效)EUFILL +0 VW2 21 / 用“+0”从VW2开始填充内 存位置使表格中的内容全部为0NETWORK 3

12、/ 用输入I0.1将数值写入表格LD I0.1 / 在I0.1的上升边缘,EUATT VW100 VW0 / 将内存位置VW100数值复制至表格NETWORK 4 / 用输入I0.2读取第一个表格数值/ 将最后一个表格数值移至位置VW102。这样会减少条目数。LD I0.2 / 在I0.2的上升边缘,EULIFO VW0 VW102 / 将最后一个表格数值移至内存位置VW102NETWORK 5 / 用输入I0.3读取最后一个表格数值/ 将第一个表格数值移至位置VW102。这样会减少条目数。LD I0.3 / 在I0.0的上升边缘,EUFIFO VW0 VW104 / 将第一个表格数值移至内存

13、位置VW104NETWORK 6 / 在表格中搜索带有数值10的第一个位置/ 为了搜索整个表格,在执行查找之前,索引(VW106)必须设为0。/ 如果找到匹配项,索引有表格条目数,但如果/ 未找到匹配项,索引会与表格(VW2)的/ 当前条目计数相匹配。LD I0.4 / 在I0.4的上升边缘,EUMOVW +0 VW106 / 复原索引指针FND= VW2 +10 VW106 / 查找等于10的表格条目移位指令按方向分为左移和右移指令。按操作数分为字节移位、字移位、双字移位指令。一、左移和右移 字节左移和字节右移 SHL_B和SHR_B,字节左移和字节右移。使能输入有效时,把字节型输入数据IN

14、左移或右移N位后,再将结果输出到OUT所指的字节存储单元。最大实际可移位次数为8。以SHL_B指令为例,指令执行情况如下表一、左移和右移 将输入IN中的各位向右或向左移支N位后,送给输出OUT移位数据存储单元的移出端与SM1.1(溢出标志)相连,所以最后被移出的位被放到SM1.1位存储单元中。移位时,移出位进入SM1.1,另一端自动补0。移位次数与移位数据的长度有关,如果所需移位次数大于或等于数据的位数,则超出的次数无效。如果移位操作使数据变为0,则零标志位(SM1.0自动置位)。移位字数N字节型数据(最大255)。一、左移和右移 字左移或右移指令 SHL_W和SHR_W,字左移和字右移。使能

15、输入有效时,把字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字存储单元。最大实际可移位次数为16。一、左移和右移 双字左移和双字右移 SHL_D和SHR_D,双字左移和双字右移。使能输入有效时,把双字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的双字存储单元。最大实际可移位次数为32。一、左移和右移 注意:移位指令的使用一般需要加入跳变沿指令。循环左移和循环右移根据所循环移位的数的长度分别又可分为字节型、字型和双字型。循环移位特点:移位数据存储单元的移出端与另一端相连,同时又与SM1.1(溢出)相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存储单元。

16、例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。二、循环左移和右移 字节循环左移ROL_B和字节循环右移ROR_B字循环左移ROL_W和字循环右移ROR_W 双字循环左移ROL_D和双字循环右移ROR_D循环移位的类型指令ROR_W执行结果SHRB,寄存器移位指令。该指令在梯形图中有3个数据输入端:DATA为数值输入, 将该位的值移入移位寄存器;S_BIT为移位寄存器的最低位端;N指定移位寄存器的长度。每次使能输入有效时,整个移位寄存器移动1位。移位特点:移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。可指定的最大长度为64

17、位,可正也可负。三、移位寄存器指令移位寄存器(SHRB)指令将DATA数值移入移位存寄存器。S-BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向(移位加=N,将位减=-N)。SHRB指令移出的每个位被放置在溢出内存位(SM1.1)中。该指令由最低位(S_BIT)和由长度(N)指定的位数定义。设置ENO = 0的错误条件:0006 间接地址0091 操作数超出范围0092 计数域错误特殊内存位:SM1.1 为移出的位值设置溢出位三、移位寄存器指令三、移位寄存器指令使用以下等式计算移位寄存器最高位地址(MSB.b)MSB.b = (S_BIT字节) + (N - 1 + (S_BIT位) / 8 . 被8除的余数例如:如果S_BIT是V33.4和N is 14,以下计算显示MSB.b是V35.1。MSB.b = V33 + (14 - 1 +4)/8= V33 + 17/8= V33 + 2 ,余数为1= V35.1 N = -,右移,

温馨提示

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

评论

0/150

提交评论