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

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

图片说明:

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.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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月3日 上午12:39
下一篇 2017年6月3日

相关推荐