监控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.BytePointer AND DW#16#00FF_FFFF)); // Number of Bits Offset
ByteNr := 8*(Value + Offset); // Calculate the startbyte
BitNr := Value + Offset - (ByteNr * 8); // Calculate the startbit
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 这么多位
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc145675.html