你现在位置:首页>技术论文>行业应用>检测监控>正文
揭开状态字的首次检测位之谜
日期:2011-9-29 15:43:39 点击:
来源:本站整理
作者:
点击【】放大字体.

很多人可能都有下面的疑问:

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

   1)状态字中的首次检测位到底有什么作用?它与编程有关吗?
WWW_P※LCJS_CO※M-PLC-技-.术_网

    2)程序段的第一条逻辑运算指令实际上作了什么操作?
WWW_P※LCJS_COM-PLC-)技.术_网

    S7-300/400的状态字(Status word)的最低位为首次检测位FC,该位的为0状态表示一个梯形图逻辑程序段的开始,或指令为逻辑串(即串并联电路块)的第一条指令。在逻辑串指令执行过程中该位为1,输出指令(=、R、S)或与RLO(逻辑运算结果)有关的跳转指令将该位清零,表示一个逻辑串的结束。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    请看下面的程序段,它将两条串联电路(逻辑串)并联后,控制Q4.2的线圈,逻辑表达式为I0.4*I0.7 I0.6*/I0.5=Q4.2(/I0.5对应于I0.5的常闭触点)。执行第一条指令“A  I0.4”时首次检测位为0,表示程序段开始。执行指令“A  I0.6”时首次检测位为0,表示第二条串联电路开始。执行“=”指令之后,首次检测位被清零。
WWW_P※LCJS_CO※M-PLC-技-.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

查阅手册,对A指令的描述如下:检查寻址位的状态是否为1,并将测试结果与RLO进行“与”运算。

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

执行第一条A指令时,它到底做了什么操作?

plcjs.技.术_网

1)显然它不会将I0.4的二进制值与前一个程序段执行完后的RLO进行“与”运算,本程序段与前一程序段之间“井水不犯河水”。

WWW_PLCJS_COM-PLC-技.术_网

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

WWW_PLCJS_COM-PLC-技.术_网

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

W1WW_P4LCJS_COM-PLC-技.术_网

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

WW.W_PLCJS_COM-PLC-技.术_网

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

WWW_PLCJS_COM-PLC-技.术_网

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

WWW.PLCJS.COM——可编程控制器技术门户

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行