监控scl程序,字节地址为264,位地址为-2079,实际最后被置位的位是DBX4.1,请教各位,这是怎么计算的?
最近正在学习SCL,还请知道的大师指点一下。。。
图片说明:
最佳答案
正确的啊
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这么多位