您当前的位置:五五电子网电子知识电器控制PLC工业控制揭开状态字的首次检测位之谜 正文
揭开状态字的首次检测位之谜

揭开状态字的首次检测位之谜

点击数:7148 次   录入时间:03-04 11:37:22   整理:http://www.55dianzi.com   PLC工业控制

  很多人可能都有下面的疑问:
    1)状态字中的首次检测位到底有什么作用?它与编程有关吗?
    2)程序段的第一条逻辑运算指令实际上作了什么操作?
    S7-300/400的状态字(Status word)的最低位为首次检测位FC,该位的为0状态表示一个梯形图逻辑程序段的开始,或指令为逻辑串(即串并联电路块)的第一条指令。在逻辑串指令执行过程中该位为1,输出指令(=、R、S)或与RLO(逻辑运算结果)有关的跳转指令将该位清零,表示一个逻辑串的结束。
    请看下面的程序段,它将两条串联电路(逻辑串)并联后,控制Q4.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进行“与”运算,本程序段与前一程序段之间“井水不犯河水”。

2)“与”运算需要两个变量参与,第一条A指令执行完后只有一个位变量I0.4的值,不可能作“与”运算,就像只有一个人不能结婚一样。

将上面的第一条A指令改为“O  I0.4”或“X  I0.4”指令(“或”运算或“异或”运算指令),前两条指令的“与”运算执行的结果相同。这说明前两条指令实际执行的是什么逻辑运算取决于第二条指令,而与第一条指令(A、O或X)无关。

实际上,程序段的第一条指令或逻辑串的第一条指令并不执行什么逻辑运算,第一条A、O、X指令只是将指令中的位变量的值传送到RLO,第一条AN、ON、XN指令将指令中的位变量的值作“非”运算后传送到RLO。

操作系统在执行程序的时候,判断首次检测位的值,其值为0时,就知道该指令是程序段的第一条指令或逻辑串的第一条指令,然后完成上述的操作。首次检测位与用户程序没有直接的关系。

别的PLC(包括S7-200)几乎都用LD和LDN(或LD NOT、LDI)指令来表示一个程序段或逻辑串的开始。S7-300/400因为没有类似的指令,所以用首次检测位来检测一个程序段或逻辑串的开始。


本文关键字:检测  PLC工业控制电器控制 - PLC工业控制

《揭开状态字的首次检测位之谜》相关文章>>>