《西门子S734高级编程培训教材内部教材状态位指令ppt课件.ppt》由会员分享,可在线阅读,更多相关《西门子S734高级编程培训教材内部教材状态位指令ppt课件.ppt(14页珍藏版)》请在三一办公上搜索。
1、状态位指令,S7-CPU 的寄存器和存储器区域,累加器,ACCU1,ACCU4,ACCU3,ACCU2,仅适用于S7-400,AR2,AR1,地址寄存器,打开的 DBDB 长度,数据块寄存器,状态位,状态字,32 位,32位,32位,32位,32位,32位,16位,16位,装载存储器-逻辑块-数据块,工作存储器-逻辑块-数据块,I/O 区域,系统存储器-过程映像输入表-过程映像输出表-位存储器-定时器-计数器-逻辑数据堆栈-中断堆栈-块堆栈,S7-CPU 寄存器,S7-CPU 存储器区域,T,S,=,.,L,A,O,.,16位,打开的 DIDI 长度,状态字结构,位定义值含义0/FC20首次检
2、查位1RLO21逻辑运算结果 2STA22状态位3OR23或4OS24保存溢出5OV25溢出6CC 026条件代码7CC 127条件代码8BR28二进制结果9.15未定义29.210,状态字各位的含义,检查状态位,OV,S,0,M 4.0,M 4.0,在 STL中进行检查A OV扫描溢出显示A OS扫描存储的溢出标志A BR扫描 BR标志检查条件代码(CC0,CC1)A=0结果等于 0A 0结果大于 0A 0结果不等于 0A=0结果小于或等于 0,等等 A UO无序指令在LAD 和FBD 中进行检查,|,带有状态位的指令,指令码含义示例SET将RLO位设置为“1“SET/RLO-1=M 0.1
3、CLR将RLO位设置为“0“CLR/RLO-0NOT将 RLO位取反O 手动模式;O 自动模式;NOT;=操作模式=M0.0SAVE以二进制形式保存RLO 结果 A BR检查二进制形式结果,|,I 1.0I 1.1I 1.2,|,|,(),(SAVE),|,BRQ 4.2Q 5.0,块调用或复杂功能中的BR位及ENO,LAD,STL,Network 1:循环程序,FC23,I0.0,EN,MW10,Step_bit_memory,Step_dis play,ENO,(),M100.0,QW12,Network 2:?,MUL_I,I0.1,EN,345,IN1,OUT,ENO,(),M100.
4、1,MW10,987,IN2,Network 1:循环程序AI0.0JNB_001CALLFC23 Step_bit_memory:=MW10 Step_display:=QW12_001:ABR=M100.0,Network 2:?A I0.1JNB_002L345L987*ITMW10ANOVSAVECLR_002:ABR=M100.1,取决于状态位的跳转功能,JU 标号1)无条件跳转JC 标号1)如果“RLO”=1,则跳转JCN标号1)如果“RLO”=0,则跳转JCB标号1)如果“RLO”=1,则跳转,并将RLO保存在BR位中JNB标号1)如果“RLO”=0,则跳转,并将RLO保存在BR
5、位中JBI标号1)如果“BR”=1,则跳转JNBI标号1)如果“BR”=0,则跳转JO标号1)如果状态字中的“OV”位=1,则跳转JOS标号1)如果状态字中的“OS”位=1,则跳转1)标号可以由4位字母-数字字符组成,取决于条件代码的跳转功能,JZ 标号1)如果状态字“CC 1”位=0且“CC 0”位=0,则跳转(结果=0)JN标号1)如果状态字“CC 1”位不等于“CC 0”位,则跳转(结果 0)JP标号1)如果状态字“CC 1”位=1且“CC 0”位=0(结果=0),则跳转(结果 0)JM标号1)如果状态字“CC 1”位=0且“CC 0”位=1(结果=0),则跳转(结果=0)JMZ标号1)
6、JM和JZ联合使用,同时满足条件,则跳转(结果=0)JUO标号1)如果是无效的实数或者除数为0,则跳转 1)标号可以由4位字母-数字字符组成,跳转分支的编程,装载跳转分支数,JL OVER,.,ACCU1 n 时的指令段,示例:带有3个分支的跳转分支程序L Recipe no/装载分支程序数JL OVER/带有3个分支的跳转分支JU Rec0/跳转到0号分支(ACCU1=0)JU Rec1/跳转到1号分支(ACCU1=1)JU Rec2/跳转到2号分支(ACCU1=2)OVER:JU ERROR/如果ACCU1 2,则跳转至标号OVER.Rec0:L DBW4.Rec1:L DBW6.Rec2
7、:L DBW8.ERROR:CLR.,操作模式,M_n:,JU M_0,JU M_n,ACCU1=0 时的指令段,.,ACCU1=n 时的指令段,OVER:,M_0:,循环指令的编程,初始化循环计数器,LOOP NEXT将ACCU1进行减1操作,并作判断 ACCU1 0?,是,否,继续,NEXT:,将循环执行数次的代码段,将循环计数器内容装入 ACCU1.,示例:进行4次循环扫描的循环指令编程L+4/装载循环计数器NEXT:T MW10/循环开始./指令代码./指令代码./指令代码L MW10/再次装载循环计数器LOOP NEXT/循环计数器值 1,/如果Accu 1 0,则/跳转到标号NEX
8、T处,操作模式,将ACCU1内容送入循环计数器,BE 块结束指令BEU无条件块结束指令(在块内)BEC 条件块结束指令(取决于 RLO位)(RET)在 LAD 编程语言中 在 FBD编程语言中,块结束指令,RET,练习1.1:减法运算完成后跳转,拨码按钮,1 2 3 4,-D,正值结果(=0),将IW 0 的值写入显示,删除显示,负值结果,JM 标号,转换为 DINT,转换为 DINT,BTD,BTD,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,20,215,27,仿真器上的切换开关,十进制开关:S7-300:IW4(IW2,32位模式)显示:S7-300:QW12(QW6
9、,32位模式)S7-400:IW 30S7-400:QW38 切换开关:S7-300:IW0(IW0)S7-400:IW28,练习 1.2:乘法运算完成后跳转,无溢出,将结果输出显示,删除显示,溢出,JO 标号,十进制开关:S7-300:IW4(IW2,32位模式)显示:S7-300:QW12(QW6,32位模式)S7-400:IW30S7-400:QW38切换开关:S7-300:IW0(IW0)S7-400:IW28,DTB,转换为BCD码,拨码开关,1 2 3 4,*I,转换为 DINT,转换为 DINT,BTD,BTD,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,20,215,27,仿真器上的切换开关,练习 1.3:跳转分支编程,拨码按钮,1,1,2,3,4,5,Motor_let 右转,Motor_let 左转,马达停转,喇叭开,喇叭关,使用Jump指令,跳转到所列标号,功能:,JL 标号,标号:,地址:S7-300(16位)S7-300(32位)S7-400马达右转:Q20.5 Q8.5Q40.5马达左转:Q20.6 Q8.6Q40.6喇叭:Q20.7 Q8.7Q40.7,