disable:=SHL(IN:=BOOL_TO_WORD(Prj.Ext.GlobalStop),N:=1);
ExtDie.TmpAdp001.Dsa:=(ExtDie.TmpAdp001.Dsa&1) OR disable;
ExtDie.TmpAdp002.Dsa:=(ExtDie.TmpAdp002.Dsa&1) OR disable;
ExtDie.TmpAdp003.Dsa:=(ExtDie.TmpAdp003.Dsa&1) OR disable;不太明白这样编写什么意思,为什么与上1呢,如果用STL该怎么表达 呢
最佳答案
注意到 disable 是Prj.Ext.GlobalStop 转换到word 后的第2位其他位是0,如:0000 0000 0000 00x0,而ExtDie.TmpAdp001.Dsa OR disable 后改变的应该只有第二位,ExtDie.TmpAdp001.Dsa&1是PASCAL 语言的准则,防止类型不匹配时出现错误,当然数据类型对的话可以不用。
STL 写的话,要把Prj.Ext.GlobalStop存到disable(word)的第二位,OR ExtDie.TmpAdp001.Dsa就可以了
提问者对于答案的评价:
thanks
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc305544.html