實現一個功能:PLC的輸入點接了10個以上的接近開關,每個接近開關對應一個輸入點。當中某個接近開關檢測到物體后,對應的輸入點就接收到信號,數量加一。那么有什么辦法把每個輸入點檢測到的信號疊加以來呢?例如I0.0、I0.3、I0.6、I0.7都有信號,其他沒有信號,如何把這4個信號相加成數字4,保存在寄存器里?
邏輯太復雜,望有高手指教一下,謝謝謝謝~~~
請見:
、跟我一起玩200 smart PLC 如何查找“字節”數據中的有效位:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1405898&b_id=64
感謝回答!主要是還帶有相關的操作過程,對于有相同疑問的新手或許能達到比較好理解的效果。
同樣感謝其他大神的回答,我會自己嘗試一遍的。
你看看這個:
LDB<> IB0, VB0 //檢測到IB0有變化
EU
MOVB IB0, VB1 //將輸入狀態傳送到VB1
MOVB IB0, VB0 //將輸入狀態值作為原值保存
創建一個表格指令的應用,把VB1的值作為表格指令的原值,存放到表格指令中。
用邏輯與或計算 and 和 OR
IB0包含i0.0到i0.7,也就是二進制的11001001。只要IB0等于8#311.
采用只要有位上升沿就+1的方式可以達到你的計數要求,各個位的上升沿都要獨立輸出一個中間位
LD sm0.0
mov vb0
LD I0.0
INC VB0
LD I0.1
INC VB0
LD I0.2
INC VB0
......
......
20個都是這么寫
最后VB0就是結果。
電話:13818569113 15721373211
郵箱:fushidianji@139.com
網址:http://morethanzerosum.com
地址:上海青浦區北青公路7171號111-112室