Date:2011/1/5File:PRO2_01E.1SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives状态位指令状态位指令状态位指令状态位指令:PRO2_01E.2SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrivesS7-CPU的寄存器和存储器区域的寄存器和存储器区域的寄存器和存储器区域的寄存器和存储器区域累加器累加器累加器累加器ACCU1ACCU4ACCU3ACCU2仅适用于仅适用于仅适用于仅适用于S7-400AR2AR1地址寄存器地址寄存器地址寄存器地址寄存器打开的打开的打开的打开的DBDB长度长度长度长度数据块寄存器数据块寄存器数据块寄存器数据块寄存器状态位状态位状态位状态位状态字状态字状态字状态字32位32位32位32位32位32位16位16位装载存储器装载存储器装载存储器装载存储器-逻辑块-数据块工作存储器工作存储器工作存储器工作存储器-逻辑块-数据块I/O区域区域区域区域系统存储器系统存储器系统存储器系统存储器-过程映像输入表-过程映像输出表-位存储器-定时器-计数器-逻辑数据堆栈-中断堆栈-块堆栈S7-CPU寄存器寄存器寄存器寄存器S7-CPU存储器区域存储器区域存储器区域存储器区域T,S,=,...L,A,O,...16位打开的打开的打开的打开的DIDI长度长度长度长度:PRO2_01E.3SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives状态字结构状态字结构状态字结构状态字结构位位位位定义定义定义定义值值值值含义含义含义含义0/FC20首次检查位首次检查位首次检查位首次检查位1RLO21逻辑运算结果逻辑运算结果逻辑运算结果逻辑运算结果2STA22状态位状态位状态位状态位3OR23或或或或4OS24保存溢出保存溢出保存溢出保存溢出5OV25溢出溢出溢出溢出6CC026条件代码条件代码条件代码条件代码7CC127条件代码条件代码条件代码条件代码8BR28二进制结果二进制结果二进制结果二进制结果9...15未定义未定义未定义未定义29..210状态字各位的含义状态字各位的含义状态字各位的含义状态字各位的含义:PRO2_01E.4SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives检查状态位检查状态位检查状态位检查状态位OVSS0M4.0M4.0在在在在STL中进行检查中进行检查中进行检查中进行检查AOV扫描溢出显示AOS扫描存储的溢出标志ABR扫描BR标志检查条件代码检查条件代码检查条件代码检查条件代码((((CC0,CC1))))A==0结果等于0A0结果大于0A0结果不等于0A=0结果小于或等于0,等等AUO无序指令在在在在LAD和和和和FBD中进行检查中进行检查中进行检查中进行检查:PRO2_01E.5SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives||带有状态位的指令带有状态位的指令带有状态位的指令带有状态位的指令指令码指令码指令码指令码含义含义含义含义示例示例示例示例SET将RLO位设置为“1“SET//RLO-1=M0.1CLR将RLO位设置为“0“CLR//RLO-0NOT将RLO位取反O手动模式;O自动模式;NOT;=操作模式=M0.0SAVE以二进制形式保存RLO结果ABR检查二进制形式结果||I1.0I1.1I1.2||||(((())))((((SAVE))))||BRQ4.2Q5.0:PRO2_01E.6SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives块调用或复杂块调用或复杂块调用或复杂块调用或复杂功能功能功能功能中的中的中的中的BR位及位及位及位及ENOLADSTLNetwork1::::循环程序循环程序循环程序循环程序FC23I0.0ENMW10Step_bit_memoryStep_displayENO()M100.0QW12Network2::::???MUL_II0.1EN345IN1OUTENO()M100.1MW10987IN2Network1::::循环程序循环程序循环程序循环程序AI0.0JNB_001CALLFC23Step_bit_memory:=MW10Step_display:=QW12_001:ABR=M100.0Network2::::???AI0.1JNB_002L345L987*ITMW10ANOVSAVECLR_002:ABR=M100.1:PRO2_01E.7SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives取决于状态位的跳转功能取决于状态位的跳转功能取决于状态位的跳转功能取决于状态位的跳转功能JU标号1)无条件跳转JC标号1)如果“RLO”=1,则跳转JCN标号1)如果“RLO”=0,则跳转JCB标号1)如果“RLO”=1,则跳转,并将RLO保存在BR位中JNB标号1)如果“RLO”=0,则跳转,并将RLO保存在BR位中JBI标号1)如果“BR”=1,则跳转JNBI标号1)如果“BR”=0,则跳转JO标号1)如果状态字中的“OV”位=1,则跳转JOS标号1)如果状态字中的“OS”位=1,则跳转1)标号可以由4位字母-数字字符组成:PRO2_01E.8SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives取决于条件代码的跳转功能取决于条件代码的跳转功能取决于条件代码的跳转功能取决于条件代码的跳转功能JZ标号1)如果状态字“CC1”位=0且“CC0”位=0,则跳转(结果=0)JN标号1)如果状态字“CC1”位不等于“CC0”位,则跳转(结果0)JP标号1)如果状态字“CC1”位=1且“CC0”位=0(结果=0),则跳转(结果0)JM标号1)如果状态字“CC1”位=0且“CC0”位=1(结果=0),则跳转(结果0)JPZ标号1)JZ和JP联合使用,同时满足条件,则跳转(结果=0)JMZ标号1)JM和JZ联合使用,同时满足条件,则跳转(结果=0)JUO标号1)如果是无效的实数或者除数为0,则跳转1)标号可以由4位字母-数字字符组成:PRO2_01E.9SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives跳转跳转跳转跳转分支分支分支分支的编程的编程的编程的编程装载跳转分支数JLOVER...ACCU1n时的指令段示例示例示例示例::::带有带有带有带有3个分支的跳转分支程序个分支的跳转分支程序个分支的跳转分支程序个分支的跳转分支程序LRecipeno//装载分支程序数JLOVER//带有3个分支的跳转分支JURec0//跳转到0号分支(ACCU1=0)JURec1//跳转到1号分支(ACCU1=1)JURec2//跳转到2号分支(ACCU1=2)OVER:JUERROR//如果ACCU12,则跳转至标号OVER...Rec0:LDBW4...Rec1:LDBW6...Rec2:LDBW8...ERROR:CLR...操作模式操作模式操作模式操作模式M_n:JUM_0JUM_nACCU1=0时的指令段...ACCU1=n时的指令段OVER:M_0::PRO2_01E.10SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives循环指令的编程循环指令的编程循环指令的编程循环指令的编程初始化循环计数器LOOPNEXT将ACCU1进行减1操作,并作判断ACCU10?是否继续NEXT:将循环执行数次的代码段将循环计数器内容装入ACCU1.示例示例示例示例::::进行进行进行进行4次循环扫描的循环指令编程次循环扫描的循环指令编程次循环扫描的循环指令编程次循环扫描的循环指令编程L+4//装载循环计数器NEXT:TMW10//循环开始.//指令代码.//指令代码.//指令代码LMW10//再次装载循环计数器LOOPNEXT//循环计数器值–1,//如果Accu10,则//跳转到标号NEXT处操作模式操作模式操作模式操作模式将ACCU1内容送入循环计数器:PRO2_01E.11SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrivesBE块结束指令BEU无条件块结束指令(在块内))))BEC条件块结束指令(取决于RLO位)(RET)在LAD编程语言中在FBD编程语言中块结束指令块结束指令块结束指令块结束指令RET:PRO2_01E.12SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives练习练习练习练习1.1::::减法运算完成后跳转减法运算完成后跳转减法运算完成后跳转减法运算完成后跳转拨码按钮拨码按钮拨码按钮拨码按钮1234-D正值结果正值结果正值结果正值结果((((=0))))将将将将IW0的值写入显示的值写入显示的值写入显示的值写入显示删除显示删除显示删除显示删除显示负值结果负值结果负值结果负值结果[JM标号标号标号标号]转换为转换为转换为转换为DINT转换为转换为转换为转换为DINTBTDBTD00000000100100102021527仿真器上的切换开关仿真器上的切换开关仿真器上的切换开关仿真器上的切换开关十进制开关十进制开关十进制开关十进制开关::::S7-300:IW4((((IW2,32位模式位模式位模式位模式))))显示显示显示显示::::S7-300:QW12((((QW6,32位模式位模式位模式位模式))))S7-400:IW30S7-400:QW38切换开关切换开关切换开关切换开关::::S7-300:IW0((((IW0))))S7-400:IW28:PRO2_01E.13SIMATICS7SiemensAG2001.Allrightsreserved.SITRAINTrainingforAutomationandDrives练习练习练习练习1.2::::