版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SIEMENSTI-S7 Converting Blocks 编程Programming with TI-S7 Converting BlocksGetting StartedEdition (2008 年 11 月)SIEMENS木文档主要用于讨论与TI-S7 Converting Blocks编程相关的以下问题:功能块的基本信息基本使用讲解简单应用例子关键词编程;Step7; TI-S7 Converting Blocks;Key WordsProgramming ; Step7; TI-S7 Converting Blocks;IA&DT Service & Suppor
2、tPage #67Excellence in «Automation & Drives: Siemens SIEMENS目 录TI-S7 CONVERTING BLOCKS编程1. 前言52. 功能块介绍52.1. 功能划分52.2. 功能描述62.3. 位逻辑功能82.3.复位位范围:FC8282.3.2. 复位立即输出范围:FC10092.3.3. 置位位范围:FC83112.3.4. 骨位立即输出范围:FC101122.4. 表功能142.4.1. 添加到表格:FC84142.4.2. 先进/先出取出表格数据:FC85152.4.3. 査表:FC86162.4.4. 后
3、进/先出取出表格数据:FC87182.4.5. 表格:FC88192.4.6. 将表格移动到字:FC89212.4.7. 字到表格:FC91232.4.&关联数据表:FC103252.4.9. 表到表操作:FC104272.5. 移位功能282.5.1. 字移位寄存器:FC90282.5.2. 位移位寄存器:FC92302.6. 移动功能及功能块312.6.1. 间接块移动:FC81312.6.2. 压缩数据:FB86332.7. 定时器功能及功能块362.7.1. 软件延时定时器-掉电保护:FC80362.7.2. 离散控制报警定时器:FB81372.7.3. 电机控制报警定时器:F
4、B82392.7.4. 可屏蔽事件Drum: FB85422& 转换功能及功能块472.8.1. 七段解码器:FC93472.8.2. ASCII转换为十六进制:FC94492.8.3. 十六进制转换为ASCI I: FC95502.8.4. 编码二进制位置:FC96522.8.5. 解码二进制位置:FC97532.8.6. 十进制补码:FC98542.8.7. 位数求和:FC99552.8.8标定值:FC105562.8.9. 取消标定值:FC106572.8.10. 超前/滞后算法:FB80592.9. 浮点数数学运算功能602.9.1. 标准偏差:FC102602.10. 比较功
5、能块62210.1. 索弓I矩阵比较:FB8362202 扫描矩阵比较:FB84643. 附录一推荐网址663.1西门子自动化与驱动产品的在线技术支持66IA&DT Service & SupportPage 3-67Excellence in «Automation & Drives: Siemens SIEMENSIA&DT Service & SupportPage 5-67Excellence in «Automation & Drives: Siemens SIEMENS1.前言STEP7在标准函数库中提供了 TI-
6、S7 Converting blocks目录,此目录中的函数为用户提供了 一些比较实用的功能,用户可以在程序中引用这些程序。用户可以在LAD/STL/FBD的编程界面厂 选择其中某个块后,通过按键盘上的“F1”键可以査看此块的帮助信息。鉴于冃前国内对这些块 的使用还不普遍,木文将对这些程序块做简单的介绍。相关介绍将以STEP7的在线帮助文件为依 据,适当增加程序中难于理解的介绍及例子,减少程序中容易理解部分的介绍,希望本文的介绍 能够给用户提供有益的帮助。拼! New network 甲回 FB blocks S FC blocks S Q SFB blocks S SFC blocks Mu
7、ltiple instances 曰(i LibrariesE 仑 stdlibs日 G Standard LibraryFB80 LEADJAG CONVERTE Q System Function Blocks E qj S5-S7 Converting Blocks E Q IEC Function Blocks E Q Organization Blocks E Q PID Control Blocks E qj Communication Blocks E Q TI-S7 Converting Blocks o图 1-1: TI-S7 Converting Blocks2.功能块介绍
8、2.1. 功能划分TI-S7 Converting Blocks H录中的函数按照功能划分,可以分为与位逻辑.表功能.移位功 能、移动功能、定时器功能、块转换功能、浮点数数学运算功能、比较功能相关的FC或FB0在 后续的章节中,本文将按照不同功能的划分,分别对这些功能块进行讲解。相关功能功能描述及编号位逻辑功能复位位范围:FC82复位立即输出范围:FC100置位位范围:FC83置位立即输出范围:FC101表功能添加到表格:FC84先进/先出取出表格数据:FC85査表:FC86后进/先出取出表格数据:FC87表格:FC88将表格移动到字:FC89字到表格:FC91关联数据表:FC103表到表操作
9、:FC104移位功能字移位寄存器:FC90位移位寄存誥:FC92移动功能及功能块间接块移动:FC81压缩数据:FB86定时器功能及功能块软件延时定时器掉电保护:FC80离散控制报警定时器:FB81电机控制报警定时器:FB82可屏蔽事件Drum: FB85转换功能及功能块七段解码券:FC93ASCU转换为十六进制:FC94十六进制转换为ASCn: FC95编码二进制位置:FC96解码二进制位置:FC97十进制补码:FC98位数求和:FC99标定值:FC105取消标定值:FC106超前/滞后算法:FB80浮点数数学运算功能标准偏差:FC102比较功能块索引矩阵比较:FB83扫描矩阵比较:FB84表
10、 2-1 TI-S7 Converting Blocks 分类2.2. 功能描述软件延时定时器掉电保护:FC80间接块移动:FC81复位位范围:FC82眞位位范围:FC83添加到表格:FC84 先进/先出取出表格数据:FC85 查表:FC86后进冼出取出表格数据:FC87表格:FC88将表格移动到字:FC89字移位寄存器:FC90字到表格:FC91位移位寄存器:FC92七段解码器:FC93ASCH转换为十六进制:FC94 卜六进制转换为ASCII: FC95 编码二进制位置:FC96 解码二进制位置:FC97卜进制补码:FC98位数求和:FC99复位立即输出范围:FC100 置位立即输出范围:
11、FC101 标准偏并:FC102关联数据表:FC103表到表操作:FC104标定值:FC105取消标定值:FC106超前/滞后算法:FB80离散控制报警定时器:FB81 电机控制报警定时器:FB82 索引矩阵比较:FB83扫描矩阵比较:FB84 可屏蔽事件Drum: FB85压缩数据:FB86IA&DT Service & SupportPage 7-672.3. 位逻辑功能2.3.1. 复位位范围:FC82描述如果MCR位为1, RSET功能将指定范|料中每一位的信号状态复位为0。如果MCR位为0,该范 甬中侮一位的信号状态保持不变。范I制中要复位的位数由7指定,范国的起始位
12、由S_BIT指示。参数签数描述数据类型存储区描述EN输入BOOLL Q、M、D、L使能输入端的信号状态为1,激活该功 能。ENO输出BOOLI、Q. M、D、L如果该功能的执行无错误,使能输岀端的 信号状态为loS BIT输入*PointerI> Q、M. D指向范围中的第一位。N输入INTR Q、M、D、LxP、常数范围中要设置的位数。*用于跨区域寄存器间接寻址的双字指针格式表2-2 FC82参数说明错误信息如果S.BIT指针指向I/O外部输入和输出存储区(P存储器),则范围内每个位的信号状态保持不变, 且ENO的信号状态设置为0。实例如果输入10.0的信号状态为1 (激活),并且MC
13、R位为1,则执行RSET功能。S_BIT指向位于M0.0 的第一个位。N参数指定10个位要复位。执行该指令后,M0.0至M1.1范中10个位的信号状 态都复位为0o如果该功能的执行未发生错误,ENO和Q0.0的信号状态将设置为lo11111111xlz|z4/图2-1: FC82程序例子特别说明:此FC主要用于MCR (主控继电器),也可单独使用。2.3.2. 复位立即输出范围:FC100描述如果MCR位为1, RSETI功能将一定范也内字节的信号状态复位为()。如果MCR位为0,该范圉 中每个字节的信号状态保持不变。S_BYTE指向范由中第一个字节.N指定范由的大小。范I幫的大小通过指定范朗
14、中的付数表示。例 如,要指定2个字节的范国,N的值则输入16(16位)。注谯:N的值必须是八的倍数(例如,8、16、24等)。S.BYTE指针必须指向I/O外部输入与输出存储区(P存储器)。由于P存储器按照字节、字或双字被访问,S_BYTE必须指向整字节地址,即指针的位号必须为0。注总:过程映像输岀表(Q存储器)中相应位的信号状态也复位为0。参数参数描述数据类型存储区描述EN输入BOOLL Q、M、D、L使能输入端的信号状态为1,激活该功 能。ENO输出BOOLL Q. M、D、L如果该功能的执行无错误,使能输出端的 信号状态为1。S.BIT输入PointerI> Q、M. D指向范围中
15、的第一个字节N输入INTI> Q、D、L、P、常数设置为1的范围大小,以8的整数倍(例 如8、16、24等)的位数表示。*用于跨区域寄存器间接寻址的双字指针格式表2-3 FC100参数说明错误信息如果发生以卜情况之一,范围中每个位的信号状态保持不变,ENO的信号状态也设置为0: S_BYTE指针引用了 I/O外部输入和输出存储区(P存储器)以外的其它存储区。 S_BYTE指针引用的地址不是整字节。 N的值不是八的倍数。实例 如果输入10.0的信号状态为1 (激活),并且MCR位为I,则执行RSETI功能。在木例中,S_BYTE 指向P2.0处的第一个字节。N参数指定要复位16个位(2个字
16、节)。执行该指令后,范围P2.0至P3.7 中每个位的信号状态将复位为0。如果该功能的执行未发生错误,ENO和Q()()的信号状态将设置为1。Q0.0C )RSETIFC100ENENON执行后S_BYTE图2-2: FC100程序例子特别说明:此FC主要用于MCR (主控继电器),也可单独使用。IA&DT Service & SupportPage 11-67Excellence in Automation & Drives: Siemens /SIEMENS2.3.3. 置位位范围:FC83描述如果MCR位为1, SET功能将指定范闲中每个位的信号状态设置为1。如果
17、MCR位为0,范用中 每个位的信号状态保持不变。范围中要设置的位数由N指定,范围的起始位由S_BIT指示。参数参数描述数据类型存储区描述EN输入BOOLI> Q、M、D、L使能输入端的信号状态为1,激活该功 能。ENO输岀BOOLI、Q. M、D、L如果该功能的执行无错误,使能输出端的 信号状态为1。S.BIT输入PointerI. Q、M. D指向范围中的第一位。N输入INT1、Q、Mx D、L、 P>常数范围中要设置的位数。*用于跨区域寄存器间接寻址的双字指针格式表2-4 FC83参数说明错误信息如果S_BIT指针指向I/O外部输入和输出存储区(P),则范田中每个位的信号状态保
18、持不变,且ENO的信号状态设置为0»实例如果输入10.0的信号状态为1 (激活),并且MCR位为1,则执行SET功能。在本例中,S_BIT指向位于M0.0的第一位。参数N指定10个位要置位。执行该指令后,M0.0至Ml范围中10个位的信号状态都设置为1。如果该功能的执行未发生错误,ENO和Q0.0的信号状态将设置为1。dxlz000000000 0 000011图2-3: FC83程序例子特别说明:此FC主要用于MCR (主控继电器),也可单独使用。2.3.4. 置位立即输出范围:FC101描述如果MCR位为1, SETI功能将一定范国内字节的信号状态设置为1。如果MCR位为0,该范
19、国 内每个字节的信号状态保持不变。S_BYTE指向范由中的第一个字节.N指定范国的大小。范闱的大小通过指定范国中的付数表示。 例如,要将范围指定为2个字节,则N值输入16(16位)。注意:N值必须是八的倍数(例如,8、16、24等)。S_BYTE指针必须引用外部输入与输出存储区(P存储器)。由于P存储器按照字节、字或双字被访问,S_BYTE必须引用整字节地址,即指针的位号必须为0。注意:过程映像输出表(Q存储器)中相应位的信号状态也复位为0。参数参数描述数据类型存储区描述EN输入BOOLI、Q. M、D、L使能输入端的信号状态为1,激活该功 能。ENO输出BOOLL Q> M. D、L如
20、果该功能的执行无错误,使能输出端的 信号状态为1。S BIT输入*PointerI> Q、D指向范围中的第一位.N输入INTR Q、M、D、L、 P、常数范围中要设置的位数。*用于跨区域间接寻址的双字指针格式表2-5 FC101参数说明错误信息 如果发生以下任何情况,范围中侮个位的信号状态保持不变,ENO的信号状态也设置为0: S_BYTE指针引用了 I/O外部输入和输出存储区(P存储器)以外的其它存储区。 S_BYTE指针引用了非整字节地址。 N的值不是八的倍数。实例 如果输入10.0的信号状态为1 (激活),并且MCR位为1,则执行SETI功能。在木例中,S_BYTE 指向P2.0处
21、的第一个字节。N参数指定要置位16个位(2个字节)。执行该指令后,范围P2.0至P3.7 中每个位的信号状态都将设置为lo如果该功能的执行未发生错误,ENO和Q0.0的信号状态将设置为lo10.0执行前SETIFC101ENENOQ0.0()执行后S_BYTENP#P2.0 16 图2-4: FC101程序例子特别说明: 此FC主要用于MCR (主控继电器),也可单独使用。IA&DT Service & SupportPage 15-67Excellence inAutomation & Drives:SiemensSIEMENS2.4. 表功能2.4.1. 添加到表格
22、:FC84描述ATT功能将DATA添加到表格的下个条目,并使条目数加一。表格由字组成。ATT功能允许向表 格添加条目,以供HFO和LIFO功能使用。 FIFO或LIFO表格中的第一个条目含有表格的最人条目数(表格长度)。 表格的笫二个条目含有己输入的条目数。表格的第三个条目含有数据的笫一个字。注总:创建表格时必须初始化询两个条目,也就是说,表洛必须已经被构建完毕,表格最人长度(最大容纳数据个数)及已输入条目数(实际有效数据个数)应当被正确设置,否则,将影响木 程序的正确执行。参数参数描述数据类型存储区描述EN输入BOOLI、Q、M、D、L使能输入端的信号状态为1,激活该功 能。ENO输出BOO
23、LI、Q. M. D、L如果该功能的执行无错误,使能输出端的 信号状态为loDATA输入WORDI> Q、M、D、L、 p、常数要添加到表格的数据。TABLE输入*PointerI、Q、M、D指向FIFO或LIFO表格的起始位置*用于跨区域寄存器间接寻址的双字指针格式农2-6 FC84参数说明错误信息如果条目数等于或大于表格长度,则不能向表格添加数据,并且ENO的信号状态设置为0。实例MO.OMO. 14pW#16#AA- DB1. DBWO -"ATTEN ENO DATATABLE| AddressStatus valueDB1DBW0 HEXQ W#16#0009DB1.
24、DBW2 HEXW#16#0000DB1.DBW4 HEXW#16#0000DB1.DBW6 HEXW#16#0000程序执行前表格没有有效数据AddressSktus value |DB1.DBV0HEXJW#16#0009DB1.DBV2HEXNW16#0001DB1DB¥4HEXW#16#00AADB1.DBV6HEXV«16*0000程序执行后 注格有效数据丁数变为丄图2-5: FC84程序例子当输入M0.0信号状态由0变为1时,此上升沿调用一次FC84o将DATA作为第1个条目添加到 表格中,同时条忖数从0增加到1。注意:由于每次调用ATT功能,都将向表格增加一个
25、数据,所以如果连续调用此功能,表格很快 被填满。2.4.2. 先进/先出取出表格数据:FC85描述FIFO功能将返回FIFO表格最旧的条目作为功能值。条目的数屋将减少一个,如果还有剩余条目, 这些条11将在表格中卜移。FIFO表格由字组成。可使用ATT功能向FIFO表格添加条目。表格的第一个条目含有该表格的最大条目数(表格长度)。表格的第二个条目含有已输入的条目数。表格的第三个条目含有数据的第一个字。注意:创建表格时必须初始化前两个条目,也就是说,表恪必须已经被构建完毕,表格最大长度 (最大容纳数据个数)及已输入条冃数(实际有效数据个数)应当被正确设置,否则,将影响本 程序的正确执行。参数参数
26、描述数据类型存储区描述EN输入BOOLI、Q、M、D. L使能输入端的信号状态为1,激活该 功能。ENO输出BOOLI> Q、M. D、L如果该功能的执行无错误,使能输出 端的信号状态为1。TABLE输入PointerI> Q. M、D指向FTFO表格的起始处RET.VAL输出WORDR Q、M. D、L. PFIFO表格最旧的条目*用于跨区域寄存器间接寻址的双字指针格式表2-7 FC85参数说明错误信息 如果FIFO表格是空的(条H数=0),则不改变RET_VAL, Il ENO的信号状态设置为0。实例当输入M1.0信号状态由0变为1时,此上升沿调用一次FC85,执行FIFO功能
27、。在木例中,表格中最旧的条忖将作为功能值(MW2)返回。条II数从3递减为2,其余条II在表中下移。M1.0Ml.lEN"FIFO"ENO DB1.DBW0-TABLERET.VAL- MW2IA&DT Service & SupportPage 19-67Excellence inAutomation & Drives:SiemensSIEMENSIA&DT Service & SupportPage #-67Excellence inAutomation & Drives:SiemensSIEMENS| AddressII
28、验Status value |DB1.DBW0HEX、 W#16#0009 r表格向询移动DB1.DBW2HEX、恥 16*0002、DB1.DBW4HEXW#16#00BB/DB1.DBW6HEXW#16#00CCDB1.DBW8HEXW#16#00CCL FIFO数据M1.0BOOLBtrue yMW2HEXW#16#00AAAddressI DixItatus value IDB1.DBW0HEX ' lw#16#0009DB1.DBW2HEXW#16#0003DB1.DBW4HEXW#16#00AADB1.DBW6HEXW#16#00BB 程序执行前' 空格有效数览个数
29、为3DB1.DBW8HEXW#16#00CCM1.0BOOLfalseMW2HEXW#16#0000程序执行后菽格有效数坷个数內2图2-6: FC85程序例子注总:由于每次调用FC85,都从表格取出一个数据,所以如果连续调用此功能,表格很快被取空。2.4.3. 査表:FC86描述TBL_FIND功能用于搜索存储器块中与众不同或不一致的模式。该功能在源模A(PATRN)和源表格 (SRC條目之间执行指定的比较命令(CMD)。此功能会在表格中查找(INDX索引条目之后)满足比 较命令的下个条目,并将其条忖号置于INDX中。如果未找到匹配值,INDX将指向表格末尾之后 的位置,并关闭该功能的输出。如
30、果CMD= 1,功能会搜索与PATRN值相等的第一个值。如果CMD = 2,该功能会搜索与PATRN值不等的第一个值。IA&DT Service & SupportPage #-67Excellence in <Automation & Drives: Siemens SIEMENS表格的第一个条目含有该表格的最人条目数(表格长度)。表格的第二个条目含有第一个表格值。注意:创建表格时必须初始化第1个条目(实际有效数据个数),也就是说,表格必须已经被构建 完毕。否则,将影响本程序的正确执行。注意此表格的条目数不同于FIFO及LIFO表格的结构,此表格的第2个条目即为
31、数据。参数参数描述数据类型存储区描述EN输入BOOLL Q> M、D. L使能输入端的信号状态为1,激活该功能。ENO输出BOOLI> Q. M、D、L如果该功能的执行无错误,使能输出端的信 号状态为1。SRC输入*PointerI、Q、M. D指向表格的起始处PATRN输入PointerL Q、M. D指向要搜索的模式CMD输入BYTEL Q. M、D、L、P指定命令类型:B#16#01 =相等B#16#02 = 不相等E_TYPE输入BYTEX Q、M、D、L、P指定表格条目的数据类型:B#16#02=BYTE, B#16#04=WORDB#16#05=INT, B#16#06
32、 = DWORDB#16#()7= DINT, B#16#()8 = REALRET_JAL输出WORDL Q. M、D、L> P如果该指令的执行没有错误,将返回值 W#16#0000o对于W#16#0000以外的其它 值,参见”错误信息”.INDX输入/ 输出WORDL Q> M、D、L在表格中建立索引,可提供: 输入:搜 索的起始条忖号输出:匹配值的条目号*用于跨区域寄存器间接寻址的双字抬针格式表2-8 FC86参数说明错误信息如果发生以下任何情况,表格值不会变化。ENO的信号状态设置为0,并相应地设置返回值:RET.VAL 解释W#16#0007 INDX超出表格范围W#16
33、#0008未找到匹配值。W#16#0009 E_TYPE 和/或 CMD 无效。实例如果输入M1.2的信号状态为1 (激活),则执行TBL_F1ND指令。在本例中,由于E_TYPE = 4,表格中的数据从SRC指向的条目位置开始以字为单位存储。这些字与存储在PATRN所指位置的 模式值AAAA进行比较。由于CMD值为1,所以将寻找SRC中与PATRN值相等的第一个表格值。 INDX值指向搜索开始的条目。执行该指令后,INDX值将给出表格中满足比较命令的条目号。如果该功能的执行没有错误,RET.VAL设置为W#16#0000。每次执MOVE指令时都将初始化MW4的值。Ml. 2DB2. DBXO
34、. 0 -DB3.DBXO.O-B#16#l -B#16#4-MW4 -MOVEENENO0-INOUT-MW4査找条件:相等DB2. m口 zHEX、二6 和 004DB2. DBW2HEX飞诲9999DB2.DBW4HEXW# 16 书 AAAADB2.DBW6HEXW#1DB2. DBW8HEXW# 16#CCCCDB3. DBW0HEXW# 16# AAAAM1.2BOOL-false卜MW4jHEXW#16#0000lMW6HEXW#16#0000j程序执行前査找 16#AAAASRCPATRNCMDINDX"TBL FINDDB2. DBW 0 HEXDB2. DBW2
35、HEXDB2. DBW4 HEXDB2. DBW 6 HEXDB2. DBW8 HEXDB3. DBW 0 HEXBOOL1.2HEX6HEXENORET VAL一 MW6W#16#0004W# 16*9999W# 16# AAAAW#16#CCCCW# 16# AAAA査询结果:第2个数据相等trueW#16#W#16#0000图2-7: FC85程序例子2.4.4. 后进/先出取出表格数据:FC87描述LIFO功能将返回LIFO表格的最新(最近)条忖作为功能值,并将条冃数减一。LIFO表格由字组 成。可以使用ATT功能将条目添加到LIFO表格中。表格的第一个条目含有该表格的最大条目数(表格
36、长度)。表格的第二个条目含有已输入的条目数。表格的第三个条目含有数据的第一个字。注意:创建表格时必须初始化前两个条目,也就是说,表恪必须己经被构建完毕,表格最大长度(最大容纳数据个数)及已输入条H数(实际有效数据个数)应当被正确设置,否则,将彩响木IA&DT Service & SupportPage 21-67Excellence inAutomation & Drives:SiemensSIEMENS程序的正确执行。参数参数描述数据类型存储区描述EN输入BOOLL Q. M. D. L使能输入端的信号状态为1,激活该 功能。ENO输出BOOLL Q、M、D、L如果该
37、功能的执行无错误,使能输出 端的信号状态为1。TABLE输入*PointerI、Q. M. D指向LIFO表格的起始处RET.VAL输出WORDL Q> M. D、L. PLIFO表格的最新条目*用于跨区域奇存器间接寻址的双字指针格式表2-9 FC87参数说明错误信息 如果LIFO表格是空的(条目数=(),则RET_VAL不会改变,且ENO的信号状态设置为0。实例当输入M1.3信号状态由0变为1时,此上升沿调用一次FC87,执行LIFO功能。在本例中,表格 中最新的条目将作为功能值(MW8)返回。条目数从4递减为3,其余条目在表中不变。Ml. 3Ml. 4"LIFO"
38、ENENOTABLERET.VALDB4.DBX0.0-一 MW8程序执行后?格有效数据个数为丄DB4.DBW0HEX、W#16#0004DB4.DBW2HEXW#16#0004DB4.DBW4HEXW#16#AAAADB4.DBW6HEXV#1DB4.DBW8HEXW#16#CCCCDB4.DBW10HEXW#16#DDDDM1.3BOOLfalseMW8HEXW#16#0000程序执行前 M有效数据个数为DB4.DBWDB4.DBWDB4.DBWA4HDB4.DBW6DB4.DBW8DB4.DBW10M1.3MW8HEXHEXHEXHEXBOOLHEXHEXHEX16#0004W16#00
39、03W#16#AAAAV#1W#16#CCCCW#16#DDDDrueV#16#DDDD执行结果:得 到最后1个数图2-8: FC87程序例子注意:由于每次调用FC87,都从表格取出一个数据,所以如果连续调用此功能,表格很快被取空。2.4.5. 表格:FC88描述TBL功能对源表格执行指定的操作(由CMD指定),并将结果写入同一表格条目。表格的第一个条目含有该表格的最大条目数(表格长度)。表格的第二个条目含有第一个表格值。如果E_TYPE设置为实型,则补码的CMD值无效。注意:创建表格时,必须初始化第一个条目。参数参数描述数据类型存储区描述EN输入BOOLI. Q M. D、 L使能输入端的信
40、号状态为1,激活该 功能。ENO输出BOOLI、Q、M、D、L如果该功能的执行无错误,使能输出 端的信号状态为1。SRC输入*PointerR Q、M. D指向表格的起始处CMD输入BYTEL Q、M、D、L、P指示要执行的命令类型。有效命令及 其值:B# 16#03 =补码 B#16#04 = 清除 B#16#05 =取反 B#16#()6 =平 方根E.TYPE输入BYTEL Qx M、D、L、P指示表格条目的数据类型。有效数据 类型:B#16#04=WORD B#16#05=INTB#16#06=DWORD B#16#07= DINTB# 16#08 = REALRET_VAL输出WOR
41、DL Q、M、D、L、P如果该指令的执行没有错误,将返回 数值 W#16#0000o 对于 W#16#0000 以外的其它值,参见”错误信息J*用于跨区域寄存器间接寻址的双字指针格式表210 FC88参数说明错误信息如果CMD或E_TYPE无效,或者CMD和E_TYPE互不一致,或者以上两种情况同时存在,表格值将不会改变。ENO的信号状态将设置为0, RET_VAL将等于W#16#0(X)8,实例当输入M1.5信号状态由0变为1时,此上升沿调用一次FC88,第一个表格条目中的表格长度值 为5,因此将对卜面5个表格条目取平方根,并放回原位置。d I(p)ENENODB5. DBXO. 0 -SR
42、CRET.VALB#16#6 -CMDB#16#5 -E.TYPEMl. 5Ml. 6FL"-MW10程序执行前?格有效数据个数为4:DB5.DBW0HEX:DB5.DBW2DEC JDB5.DBV4DEC J:DB5.DBW6DECDB5. DBW8DECM1.5BOOLW#16#OD05DB5. DBW0HEX11DB5. DBW2DEC22DB5. DBW4DEC33DB5. DBW6DEC44DB5. DBW8DECfalseM1.5BOOLW#16*00053456true执行结果:所有数据取平方根图2-9: FC88程序例子注意:由于每次调用FC88,都将对完整表格进行一
43、次操作,所以如果连续调用此功能,表格将出 现问题,例如:对一个比较大的正整数连续取平方根操作,最后结果将为1,如果CMD=5,则数 据将在正负数值之间不断变化。2.4.6. 将表格移动到字:FC89描述TBL.WRD功能可将INDX指示的条目从SRC表格复制到DEST指向的条目,然后增加INDX (只 要INDX小于表格第一个字SRC 01给出的表格长度)。如果调用此指令时,INDX的设置位于最 后一个表格条目处,执行该指令后,Q输出位将设置为0。表格的第一个条目含有该表格的最人条目数(表格长度)。表格的第二个条目含有第一个表格值。 注意:创建表格时,必须初始化第一个条目。 参数参数描述数据类
44、型存储区描述EN输入BOOLk Q. M. D、L使能输入端的信号状态为1,激活该 功能。ENO输出BOOLK Q、M. D. L如果该功能的执行无错误,使能输出 端的信号状态为loSRC输入* PointerL Q、M、D指向表格的起始处DEST输入*PointerI> Q、M、D指向目标的起始位置。IA&DT Service & SupportPage 25-67Excellence in、Automation & Drives:SIEMENSE_TYPE输入BYTEL Q、M. D. L、P指示表格条N的数据类型。有效数据 类型有:B#16#()4=WORD
45、 B#16#()5= INTB#16#06=DWORD B#16#07= DINTB#16#08 = REALRET.VAL输出WORDL Q、M、D. L、P如果该指令的执行没有错误,将返回 值 W#16#000()o 对于 W#16#0000 以 外的其它值,参见"错误信息”。Q输出BOOLQ、M、D. L如果调用该功能时,INDX变屋含有 表格的最后条目,则输出0。INDX输入/ 输出WORDE Q、M、L要移动条目的条目号。*用于跨区域寄存器间接寻址的双字指针格式表2-11 FC89参数说明错误信息如果发生以下任何情况,则不执行该功能。ENO的信号状态设置为0,并相应地设置返
46、回值: RET.VAL 解释W#16#0007 索引为 0oW#16#0008 E_TYPE 无效。W#16#0009索引超出表格末尾。实例当输入M20.0信号状态由0变为1时,此上升沿调用一次FC89,由于E TYPE等于4,存储在表 格中从SRC指向的条II开始的字数据将复制到DEST指向的条INDX值指向要移动的表格条 目。成功执行该指令后,INDX将从已移动条目口动向后增加一个条目。在本例中,调用该指令时, INDX不会设置为表格的最后条目,因此指令执行后,Q设置为1。IA&DT Service & SupportPage #-67Excellence inAutoma
47、tion & Drives:SiemensSIEMENS程序执行前表格有效数据个数为DB5. DBW0HEXW#16#0005DB5. DBW2HEXW#16#AAAADB5. DBW4HEXW# 1DB5. DBW6HEXW# 16#CCCCDB5. DBW8HEXW# 16#DDDDDB6. DBW0HEXW#16#0000MW30HEXW#16#0001M20.0BOOLfalseDB5. DBW0HEXW#16*0005DB5. DBW2HEXW#16#AAAADB5.DBW4HEXDB5.DBW6HEXW#16#CCCCDB5. DBW8HEXW#16#DDDDDB6. DB
48、W0HEX:W# 16#AAAAMW30HEXW#16#0002-M20.0BOOLtrueINDEX 增加了 J得到 INDEX=1位置的数据图2-10: FC89程序例子注总:由于每次调用FC89,都将取出当询INDEX位置的数据,并将此数据复制到目标地址,INDEX 增加1,所以如果连续调用此功能,程序将依次将所有数据复制到目的地址,最后INDEX超出表 格范围,RET_VAL=9 (超出表格范围)的数据将超出表格位置。2.4.7. 字到表格:FC91描述WRD.TBL功能在源数据(由SRC指定)和由INDX指示的偏移量处的表格条目之间执行指定的 命令(CMD),然后增加INDX的值(只
49、要INDX小于表格长度)。表格的第一个条目含有该表格的最大条目数(表格长度)。表格的第二个条目含有第一个表格值。 如果E_TYPE为REAL,则CMD只能为”移动”。 注意:创建表格时,必须初始化第一个条目。参数参数描述数据类型存储区描述EN输入BOOLI、Q. M. D、L使能输入端的信号状态为1,激活该 功能。ENO输出BOOLR Q、M、D、L如果该功能的执行无错误,使能输出 端的信号状态为loSRC输入水PointerI、Q、M、D指向源数据TABLE输入*PointerL Q、M、D指向表格的起始处CMD输入BYTEI、Q、Mx D、L、P指示要执行的命令类型。有效命令及 其值:B#
50、16#0E=移动 B#16#07=与运算B#16#08=或运算B#16#09=异或运算E-TYPE输入BYTEI. Qs M、D、L、P指示表格条目的数据类型。有效数据 类型:R#16#04=WORD R#16#O5=TNTB#16#06=DWORD B#16#07=DINTB#16#08=REALRET_VAL输出WORDh Q. M、D、L、P如果该指令的执行没有错误,将返回 值 W#16#0000。对于 W#16#0000 以 外的其它值,参见”错误信息"。Q输出BOOLQ、M> D、L如果INDX含有表格最后的条目号, 则指示0。INDX输入/ 输出WORDI、Q、M、
51、D. L要对其进行操作的条目的条目号。*用于跨区域寄存器间接寻址的双字指针格式表2-12 FC91参数说明错误信息如果发生以下任何情况,则不执行该功能。ENO的信号状态设置为0,并相应地设置返回值:RET_VAL解释W#16#0007索引为0oW#16#0008CMD或E.TYPE无效,或者CMD和E_TYPE不一致。W#16#0009索引超出表格末尾。实例FC91的执行与FC89相反,将数据通过4种运算方式(移动.与.或、异或)与表格中的数据进 行运算。如果E_TYPE的值为6,双字数据将以TABLE指向的存储器位迓为起点存储在表格中。笫一个字中的表格长度指示表格含有3个双字。INDX值指向要操作的表格条目。由于CMD值为 8,该指令对INDX指向的值执行或运算。由于INDX为2,将对第二个双字(66665544)和SRC 指向的值(11111111)执行或运算。执行该指令后,或运算命令的结果(77775555)将写回表格,INDX 也将自动增加一个条目。如果调用此指令时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 就业协议与劳动合同的五大区别点
- 受托收款合同范本
- 承揽合同与劳务分包合同的差异解读
- 服务终止合同
- 食品果蔬购销合同
- 定制月饼销售协议
- 砂石材料买卖合同样本
- 合同违约责任合同仲裁
- 变压器设备采购合同示例
- 废止采购合同事项
- 管理高尔夫C 横向管理课件
- 福建省厦门市2023-2024学年九年级上学期期末化学试题
- 酒店投资收益测算表
- 精神分裂症规范化治疗课件
- 氧气泄漏应急预案
- 2023年陕西西安市轨道交通集团有限公司招聘笔试参考题库含答案解析
- (医学课件)热性惊厥
- 人教版 六级上册数学 四单元《比》(省级作业设计大赛作品)
- 了解并遵守公司的规章制度和道德标准
- 2023-2024学年北京海淀区八一学校高一(上)期中数学试题及答案
- 死因监测工作管理制度及工作流程
评论
0/150
提交评论