批量讀取 工控 C 如何批量讀取控制卡IO點

2021-10-16 09:37:22 字數 1328 閱讀 4292

正常讀取io是批量讀取出來的,呼叫相關函式後會直接返回int型的數

io點的狀態是按照bit位排列的

bit0代表硬體接線的0號位置,

bit1代表硬體接線的1號位置

.....以此類推,缺少的為空置

乙個int數大小是32位,共可以儲存32個點位資訊

如上圖,上面in的狀態讀取的反饋值就是21

轉換成2進製就是10101,剛好和上圖io狀態一一對應

1.先建立乙個 int陣列,大小為32,用於儲存讀取出來的io資訊

因為我們讀取的值是乙個int數,然後需要轉換成單個io的值

此時需要用的指令有》右移指令 ,& 按位與運算指令

a = 0011 1100

a >> 2 將得到 15,即為 0000 1111

以下為具體實現程式

如果需要讀取bit1位的狀態,則先把讀取的到值往右位移1位

即 input>>1 此時 1位的值就移動到了bit0,然後在和1進行與運算,得到 (input>>1)&1

如果該點位值為1那麼與運算結果就是1,如果為0那麼與運算結果就是0

這時得到我們想要的結果了,賦值給新建的陣列就行了

最後使用for迴圈,從0開始運算io狀態,賦值給陣列

那麼陣列0位的狀態就是io的0位狀態,當值等於1時,代表該點位有效(部分裝置可能是0有效)

後面程式中,只需要訪問di_data這個變數就輕鬆知道裝置io的狀態值了

批量讀取 R 批量讀取檔案

檔案讀取 1 同一目錄下,多個同一型別,檔名連續的檔案資料讀取 設定工作目錄 setwd d r project 設定乙個空白的資料框 data 我的檔案是 001.csv 002.csv 003.csv 思維方式是用乙個id的向量,從1數到100,然後和 csv 拼接起來,組成檔名,函式可以用pa...

python 批量讀取excel

先將檔案下的excel檔案形成list.txt 再讀這個list檔案 f open list excel.txt 讀取檔案獲取每個檔案的檔名 for line in f line str1 line 1 去掉換行符 line1 line str1 xls print line1 對讀取單個excel...

Python批量讀取檔案 記錄

方法1 參考 import os path r g my test dp 000 trajectory 待讀取的資料夾 path list os.listdir path path list.sort 對讀取的路徑進行排序 for filename in path list print os.pat...