西門子用200 SMART的輸入點(diǎn)來檢測(cè)接近開關(guān)的狀態(tài),如何統(tǒng)計(jì)所檢測(cè)到數(shù)量?
西門子用200 SMART的輸入點(diǎn)來檢測(cè)接近開關(guān)的狀態(tài),如何統(tǒng)計(jì)所檢測(cè)到數(shù)量?
實(shí)現(xiàn)一個(gè)功能:PLC的輸入點(diǎn)接了10個(gè)以上的接近開關(guān),每個(gè)接近開關(guān)對(duì)應(yīng)一個(gè)輸入點(diǎn)。當(dāng)中某個(gè)接近開關(guān)檢測(cè)到物體后,對(duì)應(yīng)的輸入點(diǎn)就接收到信號(hào),數(shù)量加一。那么有什么辦法把每個(gè)輸入點(diǎn)檢測(cè)到的信號(hào)疊加以來呢?例如I0.0、I0.3、I0.6、I0.7都有信號(hào),其他沒有信號(hào),如何把這4個(gè)信號(hào)相加成數(shù)字4,保存在寄存器里?
邏輯太復(fù)雜,望有高手指教一下,謝謝謝謝~~~
請(qǐng)見:
、跟我一起玩200 smart PLC 如何查找“字節(jié)”數(shù)據(jù)中的有效位:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1405898&b_id=64
感謝回答!主要是還帶有相關(guān)的操作過程,對(duì)于有相同疑問的新手或許能達(dá)到比較好理解的效果。
同樣感謝其他大神的回答,我會(huì)自己嘗試一遍的。
你看看這個(gè):
LDB<> IB0, VB0 //檢測(cè)到IB0有變化
EU
MOVB IB0, VB1 //將輸入狀態(tài)傳送到VB1
MOVB IB0, VB0 //將輸入狀態(tài)值作為原值保存
創(chuàng)建一個(gè)表格指令的應(yīng)用,把VB1的值作為表格指令的原值,存放到表格指令中。
用邏輯與或計(jì)算 and 和 OR
IB0包含i0.0到i0.7,也就是二進(jìn)制的11001001。只要IB0等于8#311.
采用只要有位上升沿就+1的方式可以達(dá)到你的計(jì)數(shù)要求,各個(gè)位的上升沿都要獨(dú)立輸出一個(gè)中間位
LD sm0.0
mov vb0
LD I0.0
INC VB0
LD I0.1
INC VB0
LD I0.2
INC VB0
......
......
20個(gè)都是這么寫
最后VB0就是結(jié)果。