回覆列表
-
1 # 控制研究控
-
2 # Silence46400710
首先請牢記以下三種位元組操作:
①讀取位元組中的位,將目標位跟1進行與操作,
②向位元組中的位寫1,將目標位跟1進行或操作,
將該位元組變數命名為testByte,需要取第n位,
c語言中用以下表達式
testByte & (1<<n),
codesys處理思路一樣,只是運算子略有不同
首先請牢記以下三種位元組操作:
①讀取位元組中的位,將目標位跟1進行與操作,
②向位元組中的位寫1,將目標位跟1進行或操作,
將該位元組變數命名為testByte,需要取第n位,
c語言中用以下表達式
testByte & (1<<n),
codesys處理思路一樣,只是運算子略有不同
不知道你用的哪個版本的codesys軟體,其實在codesys軟體中想要把位元組中的一個位取出來是很簡單!
先看一下我的程式吧,對了我這個軟體的版本是codesys 2.3.9。
從這個圖片上可以看到我建立了一個變數A,它是一個BYTE型別的變數,B,C,D是3個bool型的位變數!
從程式中可以看到,A.0的值為真,因此B也為真,A.7的值為真,因此D的值也為真!而A.5的值為假,所C的值為假!
也就是是A.7---A.0這8個位組成了A這樣的一個位元組變數,且目前第八位和第1位均為真,因此A的位元組就是2#1000 0001,也就是十進位制的129!
因此回到你的問題codesys軟體中如何提取位元組中的一個位,就是這麼簡單,直接用.0,.1,.2,--.7這樣去表示即表示當前的位!