S7-200有没有位指针

我想对某些连续位进行循环操作,可否实现这样的指令.
举个例子:我要检测V1.2----V10.5所有位,判断是否为1. 若为1,则算出所在的序号.

最佳答案

我用的是移位检测,只检测第一个置一的位。
ORGANIZATION_BLOCK 主程序:OB1
TITLE=
BEGIN
Network 1 
LD     SM0.0
CALL   SBR0, VD1, VD5, VW9, VB20
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=
VAR_INPUT
dInput1:DWORD;
dInput2:DWORD;
wInput3:WORD;
END_VAR
VAR_OUTPUT
bOutput:BYTE;
END_VAR
VAR
wTemp:INT;
END_VAR
BEGIN
Network 1 
LD     SM0.0
MOVB   0, LB10
FOR    LW11, 1, 76
INCB   LB10
SHRB   L9.5, L0.2, -1
A      SM1.1
CRET
Network 2 
NEXT
Network 3 
LD     SM0.0
MOVB   0, LB10
END_SUBROUTINE_BLOCK

提问者对于答案的评价:
此计甚好,

最佳答案作者回复:
那是,几年前刚编程时抓耳挠腮想了好几天才搞定的。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc300685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐