请教一个编程技巧,关于某双字里 位状态的判断

如何编写一段最简单的程序 来判断 一个双字地址里(比如MD100)有几个位被置1? (如果有超过2个位被置1,我需要发出报警。)  根据大家的知识和经验,这样的程序如何编写?

最佳答案

你这个问题貌似论坛里有人发过贴啊,可以找找!
     楼上 “十叁”  回答不太准确,MD00大于3可不代表,MD100里的1 的个数大于2啊!MD100=4的时候呢?
      我也贴一个自己写的子程序吧!
      子程序里新建一个输入变量MD_IN,类型DWORD;一个输出变量NM_OUT,类型BYTE。
     
 网络1
      LD     SM0.0
      MOVB   0, LB12
      MOVD   1, LD20
网络2
     LD     SM0.0
     FOR    LW10, 1, 32

网络3
LD     SM0.0
LPS
MOVD   #MD_IN:LD0, LD24
ANDD   LD20, LD24
AD=    LD24, LD20
INCB   LB12
LPP
SLD    LD20, 1

网络4
NEXT

网络5
LD     SM0.0
MOVB   LB12, #NM_OUT:LB4

将以上子程序在主程序里面调用即可。

图片说明:

请教一个编程技巧,关于某双字里 位状态的判断  

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午5:28
下一篇 2018年12月1日 上午5:28

相关推荐