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