西門子統(tǒng)計功能
目前,有N個輸入信號,當(dāng)檢測到一個信號時,監(jiān)控時間為T1,二個信號時監(jiān)控時間為T2.......如何去統(tǒng)計這些輸入信號有幾個是接通的,西門子有沒有相應(yīng)的指令。如果沒有,應(yīng)該如何編寫程序?
沒有指令統(tǒng)計。
一個字節(jié)一個字節(jié)統(tǒng)計,最后的結(jié)果加起來。
如圖的程序是一個字節(jié)中 1 的個數(shù)的子程序以及接口定義和主程序中的調(diào)用。
圖片說明:
我這樣理解你的要求。
1)創(chuàng)建一個表格,定義好表格長度,如,定義100個數(shù)據(jù)長度。
2)當(dāng)有輸入信號時(上升沿)觸發(fā)表格數(shù)據(jù)記錄。
3)將外部輸入上升沿讀取到的系統(tǒng)時鐘數(shù)據(jù),通過程序轉(zhuǎn)換到一個或者一個雙字?jǐn)?shù)據(jù)范圍內(nèi)。比如,把月、日、時、分的數(shù)據(jù)記錄到表格。
自己編程統(tǒng)計即可
如對某個字節(jié)不為零時統(tǒng)計該字節(jié)8位的狀態(tài),可以利用與指令,如字節(jié)與00000001進行與運算,判斷是否為0,不為0計數(shù)加1,然后把00000001左移,變成00000010,再與該字節(jié)邏輯與,循環(huán)8次即可統(tǒng)計出信號1的數(shù)量。
題主可以參考這個帖子
字節(jié)里面有多少個1?問過這個問題的都來簽個名。-技術(shù)論壇-工業(yè)支持中心-西門子中國
https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1650853&b_id=64&s_id=0&num=33#anch