当前位置: 主页 > PLC控制

SCL例子SetBit_SCL中需要被置位的DB块中的位的字节地址和位地址计算

监控scl程序,字节地址为264,位地址为-2079,实际最后被置位位是DBX4.1,请教各位,这是怎么计算的?
最近正在学习SCL,还请知道的大师指点一下。。。

图片说明:

SCL例子SetBit_SCL中需要被置位的DB块中的位的字节地址和位地址计算SCL例子SetBit_SCL中需要被置位的DB块中的位的字节地址和位地址计算 SCL例子SetBit_SCL中需要被置位的DB块中的位的字节地址和位地址计算SCL例子SetBit_SCL中需要被置位的DB块中的位的字节地址和位地址计算

最佳答案

正确的啊
Bytenr=264
Bitnr=-2079
264*8-2079=33
33就是第33个位,那就是4.1拉
一个字节8位,所以264*8
4*8+1=33
能明白不

提问者对于答案的评价:
说实话,还是不明白Offset:=WORD_TO_int(DWORD_TO_WORD(Buffer.BytePointerANDDW#16#00FF_FFFF));//NumberofbitsOffset
ByteNr:=8*(Value+Offset);//CalCUlatetheSTaRTbyte
BitNr:=Value+Offset–(ByteNr*8);//CalculatethEStartbit
WORD_TO_BLOCK_DB(Buffer.DB_Number).DX[ByteNr,BitNr]:=TRUE;
中WORD_TO_BLOCK_DB(Buffer.DB_Number).DX[ByteNr,BitNr]

DX[ByteNr,BitNr]这样表示就是ByteNr*8+BitNr的意思??

最佳答案作者回复:
ByteNr是字节地址
BitNr是位偏移地址
看程序就是这个意思
具体的位ByteNr*8+BitNr这么多位

  • 关注微信

猜你喜欢

微信公众号