西门子
状态位指令
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.1
SITRAIN Training forAutomation and Drives
西门子
S7-CPU 的寄存器和存储器区域累加器ACCU4 仅适用于 S7-400 ACCU3 ACCU2 ACCU132 位
装载存储器32位 32位 32位 逻辑块 数据块
工作存储器 L, A, O,...逻辑块 数据块
地址寄存器AR1 AR232位 32位
T, S, =,...
I/O 区域 系统存储器
数据块寄存器打开的 DB 打开的 DI16位
DB 长度 DI 长度16位
-
过程映像输入表 过程映像输出表 位存储器 定时器 计数器 逻辑数据堆栈 中断堆栈 块堆栈
状态字状态位16位
S7-CPU 寄存器 SIMATIC S7Siemens AG 2001. All rights reserved. Date: File: 2010-10-28 PRO2_01E.2
S7-CPU 存储器区域SITRAIN Training forAutomation and Drives
西门子
状态字结构状态字各位的含义位 0 1 2 3 4 5 6 7 8 9...15 定义 /FC RLO STA OR OS OV CC 0 CC 1 BR 未定义 值 20 21 22 23 24 25 26 27 28 29 ..210 含义 首次检查位 逻辑运算结果 状态位 或 保存溢出 溢出 条件代码 条件代码 二进制结果
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.3
SITRAIN Training forAutomation and Drives
西门子
检查状态位在 STL中进行检查 中进行检查A OV A OS A BR 扫描溢出显示 扫描存储的溢出标志 扫描 BR标志
检查条件代码(CC0, CC1) ) A == 0 结果等于 0 A > 0 结果大于 0 A <> 0 结果不等于 0 A =< 0 结果小于或等于 0,等等 A UO 无序指令
在LAD 和FBD 中进行检查OV M 4.0 S >0 M 4.0 S
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.4
SITRAIN Training forAutomation and Drives
西门子
带有状态位的指令指令码SET CLR NOT
含义将RLO位设置为“1“ 将RLO位设置为“0“ 将 RLO位取反
示例SET = M 0.1 CLR //RLO-1 //RLO-0
O 手动模式; O 自动模式; NOT; = 操作模式 = M0.0
I 1.0
I 1.1
I 1.2
SAVE
以二进制形式保存RLO 结果
||BR
||Q 4.2
||
(SAVE)Q 5.0
A BR
检查二进制形式结果
||
||
()
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.5
SITRAIN Training forAutomation and Drives
西门子
块调用或复杂功能中的BR位及 块调用或复杂功能中的 位及 功能中的 位及ENOLADNetwork 1: 循环程序 : I0.0 EN FC23 ENO M100.0
STLNetwork 1: 循环程序 : A I 0.0 JNB _001 CALL FC 23 Step_bit_memory :=MW10 Step_display :=QW12 _001: A BR = M 100.0
( )
MW10
Step_bit Step_dis _memory play
QW12
Network 2: ??? : I0.1 EN 345 987 IN1 IN2 MUL_I ENO OUT M100.1
( )MW10
Network 2:??? : A I 0.1 JNB _002 L 345 L 987 *I T MW 10 AN OV SAVE CLR _002: A BR = M 100.1
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.6
SITRAIN Training forAutomation and Drives
西门子
取决于状态位的跳转功能JU 标号1) JC 标号1) JCN标号1) JCB标号1) JNB标号1) JBI标号1)
JNBI标号1) JO标号1) JOS标号1) 无条件跳转 如果“RLO” =1,则跳转 如果“RLO” =0,则跳转 如果“RLO” =1,则跳转,并将RLO保存在BR位中 如果“RLO” =0,则跳转,并将RLO保存在BR位中 如果“BR” =1,则跳转 如果“BR” =0,则跳转 如果状态字中的“OV”位 =1,则跳转 如果状态字中的“OS” 位=1,则跳转1) 标号可以由4位字母-数字字符组成
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.7
SITRAIN Training forAutomation and Drives
西门子
取决于条件代码的跳转功能JZ 标号1) JN标号1) JP标号1) JM标号1) JPZ标号1) JMZ标号1) JUO标号1) 如果状态字“CC 1”位=0且“CC 0”位=0,则跳转 (结果 = 0) 如果状态字“CC 1”位不等于“CC 0”位,则跳转 (结果 <> 0) 如果状态字“CC 1”位=1且“CC 0”位=0(结果=0),则跳转 (结果 > 0) 如果状态字“CC 1”位=0且“CC 0”位=1(结果=0),则跳转 (结果 < 0) JZ和JP联合使用,同时满足条件,则跳转 (结果 >= 0) JM和JZ联合使用,同时满足条件,则跳转 (结果 <= 0) 如果是无效的实数或者除数为0,则跳转1) 标号可以由4位字母-数字字符组成
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.8
SITRAIN Training forAutomation and Drives
西门子
跳转分支的编程 跳转分支的编程 分支操作模式装载跳转 分支数 JL OVER JU M_0
示例:带有 个分支的跳转分支程序 示例:带有3个分支的跳转分支程序L Recipe no // 装载分支程序数 JL OVER JU Rec0 JU Rec1 JU Rec2 // 带有3个分支的跳转分支 // 跳转到0号分支 (ACCU1 = 0) // 跳转到1号分支 (ACCU1 = 1) //跳转到2号分支 (ACCU1 = 2)
. . .
JU M_n OVER: M_0: ACCU1 > n 时的 指令段 ACCU1 = 0 时的 指令段
OVER:JU ERROR // 如果ACCU1 > 2,则跳转至标号OVER ... Rec0: L DBW4 ... Rec1: L DBW6 ... Rec2: L DBW8 ... ERROR: CLR ...
. . .M_n: ACCU1 = n 时的 指令段
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.9
SITRAIN Training forAutomation and Drives
西门子
循环指令的编程操作模式初始化 循环计数器 NEXT: 将ACCU1内容 送入循环计数器 将循环执行数次的 代码段
示例:进行 次循环扫描的循环指令编程 示例:进行4次循环扫描的循环指令编程// 装载循环计数器 // 循环开始 // 指令代码 // 指令代码 // 指令代码 // 再次装载循环计数器 // 循环计数器值 –1, // 如果Accu 1> 0,则 // 跳转到标号NEXT处
L +4 NEXT: T MW10 . .
将循环计数器内容 装入 ACCU1. LOOP NEXT 是将ACCU1进行减1操作 , 并作判断 ACCU1 <> 0 ?
. L MW10 LOOP NEXT
否 继续
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.10
SITRAIN Training forAutomation and Drives
西门子
块结束指令
BE
块结
束指令
BEU
无条件块结束指令(在块内) )
BEC
条件块结束指令(取决于 RLO位) (RET) 在 LAD 编程语言中
RET
在 FBD编程语言中
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.11
SITRAIN Training forAutomation and Drives
西门子
练习1.1: 练习 :减法运算完成后跳转拨码按钮 1 2 3 4 BTD 仿真器上的切换开关 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0215 27 20
转换为 DINT
BTD
转换为 DINT
-D正值结果 (>=0) ) 负值结果 [JM 标号 标号] 删除显示 将IW 0 的值写入显示
十进制开关: 位模式) 十进制开关:S7-300: IW4 (IW2, 32位模式) 位模式 S7-400: IW 30 切换开关: S7-300: IW0 (IW0) 切换开关: ) S7-400: IW28
显示: 显示:
S7-300: QW12 (QW6, 32位模式) 位模式) 位模式 S7-400: QW38
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.12
SITRAIN Training forAutomation and Drives
西门子
练习 1.2:乘法运算完成后跳转 :拨码开关 1 2 3 4 BTD 仿真器上的切换开关 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0215 27 20
转换为 DINT
BTD
转换为 DINT
*I无溢出 溢出 [JO 标号 标号] 删除显示 DTB 转换为 BCD码 码
将结果输出显示
十进制开关: 十进制开关: 切换开关: 切换开关:
S7-300: IW4 (IW2, 32位模式) 位模式) 位模式 S7-400: IW30 S7-300: IW0 (IW0) ) S7-400: IW28
显示: 显示:
S7-300: QW12 (QW6, 32位模式) 位模式) 位模式 S7-400: QW38
SIMATIC S7Siemens AG 2001. All rights reserved.
Date: File:
2010-10-28 PRO2_01E.13
SITRAIN Training forAutomation and Drives
西门子
练习 1.3:跳转分支编程 :功能: 功能:拨码按钮 1 1 2 3 4 5 [ JL 标号 标号]
Motor_let 右转 Motor_let 左转 马达停转 喇叭开 喇叭关
标号: 使用Jump指令,跳转到所列标号 指令, 标号: 使用 指令
地址: 地址: 马达右转: 马达右转: 马达左转: 马达左转: 喇叭: 喇叭:
S7-300 (16位) S7-300 (32位) 位 位 Q20.5 Q8.5 Q20.6 Q8.6 Q20.7 Q8.7Date: File: 2010-10-28 PRO2_01E.14
S7-400 Q40.5 Q40.6 Q40.7SITRAIN Training forAutomation and Drives
SIMATIC S7Siemens AG 2001. All rights reserved.