S7编程基础数据存储区位

上传人:壹****1 文档编号:579421219 上传时间:2024-08-26 格式:PPT 页数:30 大小:155.50KB
返回 下载 相关 举报
S7编程基础数据存储区位_第1页
第1页 / 共30页
S7编程基础数据存储区位_第2页
第2页 / 共30页
S7编程基础数据存储区位_第3页
第3页 / 共30页
S7编程基础数据存储区位_第4页
第4页 / 共30页
S7编程基础数据存储区位_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《S7编程基础数据存储区位》由会员分享,可在线阅读,更多相关《S7编程基础数据存储区位(30页珍藏版)》请在金锄头文库上搜索。

1、S7 编程基础S7编程基础数据存储区位数据存储区位存储器位存储器PIQPII数据块数据块DBxDByDBz.I/O 区区L 堆栈堆栈S7编程基础数据存储区位STEP 7基本数据类型BOOL1True 或 False (1 或0)BYTE8B#16#A9WORD16W#16#12AFDWORD32DW#16#ADAC1EF5CHAR8 w S5TIME16S5T#5s_200msINT16123DINT32L#65539REAL321.2 或 34.5E-12TIME32T#2D_1H_3M_45S_12MSDATE16D#1993-01-20TIME_OF_DAY32TOD#12:23:45.

2、12关键字关键字长度长度 (位位) 该类型的常数举例该类型的常数举例S7编程基础数据存储区位STEP 7复杂数据类型关键字关键字长度长度 (位位) 举例举例DATE_AND_TIME64DT#97-09-24-12:14:55.0STRING8 * (字符个数+2 ) This is a string(最多254个字符的字符串) SIEMENS ARRAY用户定义 测量值: ARRAY1.20(相同数据类型的元素组) INT STRUCT 用户定义 Motor: STRUCT(不同数据类型的元素组) Speed : INTCurrent: REALEND_STRUCTUDTUDT as blo

3、ck UDT as array element(用户定义数据类型 =用户定义 基本或复杂数据类型组成的 STRUCT Drive: ARRAY1.4模板)Speed : INT UDT1 Current: REAL END_STRUCT S7编程基础数据存储区位S7-400地址标识符和参数范围地址标识符和参数范围S7编程基础数据存储区位S7-400地址标识符和参数范围(续)地址标识符和参数范围(续)S7编程基础数据存储区位S7-400地址标识符和参数范围(续)地址标识符和参数范围(续)S7编程基础数据存储区位n累加器是处理字节、字或双字的寄存器。地址标识符被载入累加器,然后在那里进行逻辑门控制

4、。逻辑运算结果(RLO)位于ACCU1中,也可将其传送到存储器单元中。nS7-400累加器 ACCU1至ACCU4 (32位) ,累加器为32位字长n累加器名称:累加器累加器S7编程基础数据存储区位n地址寄存器AR1和AR2 (32位)n地址寄存器包含有区域内或跨区域指针,可用于间接寻址的指令。地址寄存器为32位字长。例1:位地址总和7的实例LAR1 P#8.2A I AR1,P#10.2结果: 对输入18.4寻址(通过字节和位地址相加)例2:位地址总和7的实例L P#10.5LAR1A I AR1,P#10.7结果: 对输入21.4寻址(通过字节和位地址进位相加)地址寄存器地址寄存器S7编程

5、基础数据存储区位状态字状态字n状态字是CPU 中存储区中的一个寄存器,包含有为位地址和字逻辑指令提供参考的位,状态字位通过指令来判断或置位。n状态字为16位字长n状态字的结构:S7编程基础数据存储区位STEP 7编程语言编程语言nLAD 梯形图和电路图很相似,采用诸如触点和线圈的符号。这种编程语言针对熟悉接触器控制的技术人员。nSTL 语句表包含STEP 7 指令,可以自由地使用STL编程。对其他编程语言熟悉的程序员喜欢使用这种编程语言。nFBD 功能块图使用不同的功能“盒”。盒中的符号表示功能 (例如: & 指“与” 逻辑操作)。即使一个过程工程师一样的“非程序员”也可以使用这种编程语言。功

6、能块图在STEP 7 V3.0版本后提供。S7编程基础数据存储区位指令分类指令分类n位逻辑指令 n比较指令 n转换指令 n计数器指令 n数据块指令 n逻辑控制指令 n整数算术运算指令 n浮点算术运算指令 n装入和传送指令 n程序控制指令 n移位和循环移位指令 n定时器指令 n字逻辑指令 n累加器操作指令 S7编程基础数据存储区位按英文助记符分类的STL语句表指令(国际)S7编程基础数据存储区位位逻辑指令n位逻辑指令处理两个数字,“1”和“0”。这两个数字构成二进制数字系统的基础。这两个数字“1”和“0”称为二进制数字或二进制位。在触点与线圈领域,“1”表示动作或通电,“0”表示未动作或未通电。

7、n位逻辑指令扫描信号状态 1 和 0,并根据布尔逻辑对它们进行组合。这些组合产n生结果 1 或 0,称为“逻辑运算结果(RLO)”。n布尔位逻辑应用于以下基本指令: A 与 AN 与非 O 或 ON 或非 X 异或 XN 异或非 O 先与后或S7编程基础数据存储区位位逻辑指令(续)n你可用以下指令执行嵌套表达式: A( “与”操作嵌套开始 AN( “与非”操作嵌套开始 O( “或”操作嵌套开始 ON( “或非”操作嵌套开始 X( “异或”操作嵌套开始 XN( “异或非”操作嵌套开始 ) 嵌套闭合n使用以下指令,可以结束一个布尔位逻辑串: = 赋值 R 复位 S 置位n你可以使用下述指令之一,更

8、改逻辑运算的结果(RLO): NOT RLO 取反 SET RLO 置位(=1) CLR RLO 清零(=0) SAVE 把 RLO 存入 BR 寄存器n其它指令对上升沿和下降沿有反应: FN 下降沿 FP 上升沿S7编程基础数据存储区位根据所选比较类型,对累加器 1(ACCU1)和累加器 2(ACCU2)进行比较:= 累加器 1 等于累加器 2 累加器 1 不等于累加器 2 累加器 1 大于累加器 2 = 累加器 1 大于等于累加器 2 = 累加器 1 小于等于累加器 2 如果比较结果为真,则指令的 RLO 为“1”。状态字位 CC 1 和 CC 0 表示“小于”、“等于”或“大于”关系。可

9、执行下列功能的比较指令: ? I 比较两个整数(16位) ? D 比较两个双整数(32位) ? R 比较两个浮点数(32位)比较指令S7编程基础数据存储区位 转换指令你可以使用以下指令将二进制编码十进制数(BCD)和整数转换为其它类型的数字: BTI BCD 转成整数(16位) ITB 整数(16位)转成 BCD BTD BCD 转成双整数(32位) ITD 整数(16 位)转成双整数(32 位) DTB 双整数(32位)转成 BCD DTR 双整数(32 位)转成浮点数(32 位,IEEE-FP) 你可以使用下述指令之一,形成一个整数的补码,或转换一个浮点数的符号: INVI 对整数求反码(

10、16 位) INVD 对双整数求反码(32 位) NEGI 对整数求补码(16 位) NEGD 对双整数求补码(32 位) NEGR 对浮点数求反(32 位,IEEE-FP) 你可以使用以下改变累加器 1 中的位顺序”指令,交换累加器 1 低字中或整个累加器中的字节顺序: CAW 交换累加器 1 低字中的字节顺序(16 位) CAD 交换累加器 1 中的字节顺序(32 位)你可以使用以下任一指令,将累加器 1 中的 32 位 IEEE 浮点数转换成 32 位 整数(双整数)。各条指令的取整方法略有不同: RND 取整 TRUNC 截尾取整 RND+ 取整为较大的双整数 RND- 取整为较小的双

11、整数S7编程基础数据存储区位计数器指令计数器是 STEP 7 编程语言的功能单元之一,用来计数。在 CPU 存储区中留有一块计数器区域。该存储区为每一计数器保留一个 16 位的字。语句表指令集提供了 256 个计数器。在你的 CPU 中可找到多少可用的计数器,请参考 CPU技术数据。计数器指令是访问计数器存储区的唯一功能。通过使用以下计数器指令,可以在这一范围内改变计数值: FR 使能计数器(任意) L 将当前计数器值装入累加器 1 LC 将当前计数器值作为 BCD 码装入累加器 1 R 复位计数器 S 计数器置位 CU 加计数器 CD 减计数器S7编程基础数据存储区位数据块指令可以使用打开数

12、据块(OPN)指令打开一个数据块作为共享数据块或背景数据块。一个程序自身同时可打开一个共享数据块和一个背景数据块。下述数据块指令可供使用: OPN 打开数据块 CDB 交换共享数据块和背景数据块 L DBLG 将共享数据块的长度装入累加器 1 中 L DBNO 将共享数据块的块号装入累加器 1 中 L DILG 将背景数据块的长度装入累加器 1 中 L DINO 将背景数据块的块号装入累加器 1 中S7编程基础数据存储区位逻辑控制指令你可以使用跳转指令,来控制逻辑流,使能你的程序中断其线性流,重新从不同点开始扫描。你可以使用循环控制指令(LOOP),调用一个程序段多次。跳转指令或循环控制指令的

13、地址是一个标号。一个跳转标号最多有 4 个字符,第一个字符必须是字母。跳转标号后跟冒号“:”,并且其后紧接语句。你可以使用以下跳转指令无条件中断正常的程序逻辑流。 JU 无条件跳转 JL 跳转到标号使用以下跳转指令,可以根据前一指令语句产生的逻辑运算结果(RLO),中断程序逻辑流: JC 若 RLO = 1,则跳转 JCN 若 RLO = 0,则跳转 JCB 若 RLO = 1,则连同BR一起跳转 JNB 若 RLO = 0,则连同BR一起跳转S7编程基础数据存储区位逻辑控制指令(续)使用以下跳转指令,可以根据状态字中的一个位的信号状态,中断程序逻辑流: JBI 若 BR = 1,则跳转 JN

14、BI 若 BR = 0 ,则跳转 JO 若 OV = 1,则跳转 JOS 若 OS = 1,则跳转使用以下跳转指令,可以根据一个计算的结果,中断程序逻辑流: JZ 若零,则跳转 JN 若非零,则跳转 JP 若正,则跳转 JM 若负,则跳转 JPZ 若正或零,则跳转 JMZ 若负或零,则跳转 JUO 若无效数,则跳转S7编程基础数据存储区位整数算术运算指令算术运算指令针对累加器 1 和 2 的内容。其结果保存在累加器 1 中。累加器 1 的原有内容被移入累加器 2 中。累加器 2 的内容保持不变。如果 CPU 具有 4 个累加器,将累加器 3 的内容拷入累加器 2 中,将累加器 4 的内容拷入累

15、加器 3 中。而累加器 4 中原有的内容保持不变。使用整数算术运算指令,可以进行以下两个整数(16 位和 32 位)之间的运算 +I 作为整数(16 位),将累加器1和累加器2中的内容相加 -I 作为整数(16 位),将累加器2中的内容减去累加器1中的内容 *I 作为整数(16 位),将累加器1和累加器2中的内容相乘 /I 作为整数(16 位),将累加器2中的内容除以累加器1中的内容 + 加上一个整数常数(16 位,32 位) +D 作为双整数(32 位),将累加器1和累加器2中的内容相加 -D 作为双整数(32 位),将累加器2中的内容减去累加器1中的内容 *D 作为双整数(32 位),将累

16、加器1和累加器2中的内容相乘 /D 作为双整数(32 位),将累加器2中的内容除以累加器1中的内容 MOD 双整数除法的余数(32位)S7编程基础数据存储区位浮点数算术运算指令算术运算指令针对累加器 1 和 2 的内容。其结果保存在累加器 1中。累加器 1 的原有内容被移入累加器 2中。累加器 2 的内容保持不变。如果 CPU 具有 4 个累加器,将累加器 3的内容拷入累加器 2 中,将累加器 4 的内容拷入累加器 3 中。而累加器 4 中原有的内容保持不变。标准 IEEE 32 位浮点数所属的数据类型称为实数“REAL”。应用浮点算术运算指令,可以对于两个 32 位标准 IEEE 浮点数完成

17、以下算术运算: +R 将累加器 1 和累加器 2 中的内容相加 -R 将累加器 2 中的内容减去累加器 1 中的内容 *R 将累加器 1 和累加器 2 中的内容相乘 /R 将累加器 2 中的内容除以累加器 1 中的内容应用浮点算术运算指令,可以对于一个 32 位标准 IEEE 浮点数完成以下算术运算: ABS 浮点数取绝对值 SQR 浮点数平方 SQRT 浮点数开方 EXP 浮点数指数运算 LN 浮点数自然对数运算 SIN 浮点数正弦运算 COS 浮点数余弦运算 TAN 浮点数正切运算 ASIN 浮点数反正弦运算 ACOS 浮点数反余弦运算 ATAN 浮点数反正切运算S7编程基础数据存储区位装

18、入和传送使用装入(L)和传送(T)指令,可以对输入或输出模块与存储区之间的信息交换进行编程。CPU 在每次扫描中将无条件执行这些指令,也就是说,这些指令不受语句逻辑操作结果(RLO)的影响。下述装入和传送指令可供使用: L 装入 L STW 将状态字装入累加器 1 LAR1 AR2 将地址寄存器 2 的内容装入地址寄存器 1 LAR1 将两个双整数(32 位指针)装入地址寄存器 1 LAR1 将累加器 1 中的内容装入地址寄存器 1 LAR2 将两个双整数(32 位指针)装入地址寄存器 2 LAR2 将累加器 2 中的内容装入地址寄存器 1 T 传送 T STW 将累加器 1 中的内容传送到状

19、态字 TAR1 AR2 将地址寄存器 1 的内容传送到地址寄存器 2 TAR1 将地址寄存器 1 的内容传送到目的地(32 位指针) TAR2 将地址寄存器2 的内容传送到目的地(32 位指针) TAR1 将地址寄存器 1 中的内容传送到累加器 1 TAR2 将地址寄存器 2 中的内容传送到累加器 1 CAR 交换地址寄存器 1 和地址寄存器 2 的内容S7编程基础数据存储区位程序控制指令下述程序控制指令可供使用: BE 块结束 BEC 条件块结束 BEU 无条件块结束 CALL 块调用 调用功能块 CALL FB n1,DB n2调用功能CALL FC n调用系统功能块 CALL SFB n

20、1,DB n2调用系统功能 CALL SFC n调用多背景块 CALL # 变量名从库中调用块 CC 条件调用 UC 无条件调用 MCR (主控继电器) 使用 MCR 功能的重要注意事项 MCR( 将 RLO 存入 MCR 堆栈,开始 MCR )MCR 结束 MCR MCRA 激活 MCR 区域 MCRD 去活 MCR 区域S7编程基础数据存储区位移位和循环移位指令 使用移位指令,可以将累加器 1 低字中的内容或整个累加器的内容向左或向右逐位移动(请参见CPU 寄存器)。将累加器中的内容左移相当于完成乘 2加权;将累加器中的内容右移相当于完成除 2 加权的运算。例如,如果将十进制数值3的等效二

21、进制数左移 3 位,则累加器中的结果是十进制数“24”的二进制数。如果将十进制数值“16”的等效二进制数右移 2位,则累加器中的结果是十进制数4的二进制数。移位指令后的数字或累加器 2 低字中低字节的数字,指出需移几位。执行移位指令所空出的位既可以用零填入,也可以用符号位的信号状态填入(0代表正,1代表负)。最后移出的位装入状态字的 CC 1 位。状态字的 CC 0 和 OV 位清零。可用跳转指令判断CC 1 位的状态。移位操作是无条件的,也就是说,它们的执行不根据任何条件,也不影响逻辑运算结果。下述移位指令可供使用: SSI 移位有符号整数(16 位) SSD 移位有符号双整数(32 位)

22、SLW 字左移(16 位) SRW 字右移(16 位) SLD 双字左移(32 位) SRD 双字右移(32 位)S7编程基础数据存储区位移位和循环移位指令(续)使用循环移位指令,可以将累加器 1 中的全部内容循环地逐位左移或右移(参见CPU 寄存器)。循环移位指令触发类同于第 14.1 节描写的移位指令。所不同的是,空位填以从累加器中移出的位。循环移位指令后的数字或累加器 2 低字低字节中的数字,指出需移几位。根据指令,通过状态字的 CC 1 位执行循环。状态字的 CC 0 位复位为0。下述循环移位指令可供使用: RLD 双字循环左移(32 位) RRD 双字循环右移(32 位) RLDA

23、通过 CC 1 累加器 1 循环左移(32 位) RRDA 通过 CC 1 累加器 1 循环右移(32 位)S7编程基础数据存储区位定时器指令下述定时器指令可供使用: FR 使能定时器(任意) L 将当前定时值作为整数装入累加器 1 LC 将当前定时值作为 BCD 码装入累加器 1 R 复位定时器 SD 延时接通定时器 SE 延时脉冲定时器 SF 延时断开定时器 SP 脉冲定时器 SS 保持型延时接通定时器S7编程基础数据存储区位字逻辑指令字逻辑指令按照布尔逻辑将成对的字(16位)和双字(32位)逐位进行比较。每个字或双字都必须分别存放在2个累加器中。对于字,其实是把累加器2低字的内容与累加器

24、1低字的内容进行逻辑运算。操作的结果被存放在累加器1的低字中,原来的内容被覆盖。对于双字,其实是把累加器2的内容与累加器1的内容进行逻辑运算。操作的结果被存放在累加器1中,原来的内容被覆盖。如果结果不等于“0”,则状态字的位CC1被置为“1”。如果结果等于“0”,则状态字的位CC1被置为“0”。下述字逻辑指令可供使用: AW 字与(16位) OW 字或(16位) XOW 字异或(16位) AD 双字与(32位) OD 双字或(32位) XOD 双字异或(32位) S7编程基础数据存储区位累加器操作指令提供有以下指令用于处理一个或两个累加器: TAK 累加器 1 与累加器 2 进行互换 PUSH 带有两个累加器的 CPU PUSH 带有四个累加器的 CPU POP 带有两个累加器的 CPU POP 带有四个累加器的 CPU ENT 进入累加器栈 LEAVE 离开累加器栈 INC 增加累加器 1 低字的低字节 DEC 减少累加器 1 低字的低字节 +AR1 加累加器 1 至地址寄存器 1 +AR2 加累加器 1 至地址寄存器 2 BLD 程序显示指令(空) NOP 0 空指令 NOP 1 空指令 S7编程基础数据存储区位

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号