欢迎来到天天文库
浏览记录
ID:57690747
大小:27.00 KB
页数:2页
时间:2020-09-01
《STEP7状态字中的首次检测位.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、很多人可能都有下面的疑问: 1)状态字中的首次检测位到底有什么作用?它与编程有关吗? 2)程序段的第一条逻辑运算指令实际上作了什么操作? S7-300/400的状态字(Statusword)的最低位为首次检测位FC,该位的为0状态表示一个梯形图逻辑程序段的开始,或指令为逻辑串(即串并联电路块)的第一条指令。在逻辑串指令执行过程中该位为1,输出指令(=、R、S)或与RLO(逻辑运算结果)有关的跳转指令将该位清零,表示一个逻辑串的结束。 请看下面的程序段,它将两条串联电路(逻辑串)并联后,控制Q4
2、.2的线圈,逻辑表达式为I0.4*I0.7+I0.6*/I0.5=Q4.2(/I0.5对应于I0.5的常闭触点)。执行第一条指令“A I0.4”时首次检测位为0,表示程序段开始。执行指令“A I0.6”时首次检测位为0,表示第二条串联电路开始。执行“=”指令之后,首次检测位被清零。查阅手册,对A指令的描述如下:检查寻址位的状态是否为1,并将测试结果与RLO进行“与”运算。执行第一条A指令时,它到底做了什么操作?1)显然它不会将I0.4的二进制值与前一个程序段执行完后的RLO进行“与”运算,本程序段与前一程序段
3、之间“井水不犯河水”。2)“与”运算需要两个变量参与,第一条A指令执行完后只有一个位变量I0.4的值,不可能作“与”运算,就像只有一个人不能结婚一样。将上面的第一条A指令改为“O I0.4”或“X I0.4”指令(“或”运算或“异或”运算指令),前两条指令的“与”运算执行的结果相同。这说明前两条指令实际执行的是什么逻辑运算取决于第二条指令,而与第一条指令(A、O或X)无关。实际上,程序段的第一条指令或逻辑串的第一条指令并不执行什么逻辑运算,第一条A、O、X指令只是将指令中的位变量的值传送到RLO,第一条AN、
4、ON、XN指令将指令中的位变量的值作“非”运算后传送到RLO。操作系统在执行程序的时候,判断首次检测位的值,其值为0时,就知道该指令是程序段的第一条指令或逻辑串的第一条指令,然后完成上述的操作。首次检测位与用户程序没有直接的关系。别的PLC(包括S7-200)几乎都用LD和LDN(或LDNOT、LDI)指令来表示一个程序段或逻辑串的开始。S7-300/400因为没有类似的指令,所以用首次检测位来检测一个程序段或逻辑串的开始。首次检测位(FC) 状态字的位0 称为首次检测位。若FC位的状态为 0,
5、则表明一个梯形逻辑网络的开始,或指令为逻辑串第一条指令。CPU对逻辑串第一条指令的检测 (称为首次检测) 产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的 0 或 1 被称为首次检测结果。FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中FC位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将FC清0。 逻辑操作结果位 (RLO) 状态字的位1 称为逻辑操作结果 RLO(Result of Logic Operation)。该位存储位逻辑指令或算术比较指令的结果。在逻
6、辑串中,RLO位的状态能够表示有关信号流的信息。RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。可用RLO触发跳转指令。 状态位 (STA) 状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读与写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA没有意义,此时它总被置为1。二进制结果位 (BR) 在LAD的方块指令中,BR与ENO一致, 在字操作中表示结果是否正确状态字的位8 称
7、为二进制结果位。它将字处理程序与位理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。 在用户编写的FB和FC程序中,必须对BR位进行管理,当功能块正确运行后使BR位为1,否则使其为0。使用STL指令SAVE 或 LAD指令——(SAVE),
8、可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO为1并存入BR,否则,在BR中存入0。
此文档下载收益归作者所有