西門子隊列程序的寫法(先進先出)
劉玉蓉
發(fā)布于2014-09-04 17:50
18
0
標簽:
一段很長線體,前后各有一個電眼,可以放很多托盤,當個盤感應人口電眼時,把數(shù)據(jù)放放db2.dbw0,當?shù)诙€盤再感應那人口電眼時,把這盤數(shù)據(jù)放db2.dbw0中,先前的個盤的數(shù)據(jù)放db2.dbw2中,進這線體以此類推。當個盤出線體感應到出口電眼時,把先前DB2中的其對應的數(shù)據(jù)放MW0中,當?shù)?個盤出來時,把其對應的數(shù)據(jù)也放在MW0中。出線體也以此類推。注意:這線體放托盤數(shù)量不限,但是不會堆一起。也就是隊列先進先出的寫法。
佳答案
1.用一個字例如MW100來計數(shù)存放托盤的數(shù)量:當入口電眼的上升沿將計數(shù)器加1,出口電眼的上升沿將計數(shù)器減1。
2.當入口電眼導通時利用循環(huán)功能或者用我之前介紹的BLK_COPY方法(https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=78232&cid=1029)可以保存每個托盤的數(shù)據(jù)。
3.當出口電眼導通時根據(jù)計數(shù)器的數(shù)值尋址DB2中對應的數(shù)據(jù),例如計數(shù)器為50,則數(shù)據(jù)存放在DB2.DBW[MD102],其中MD102=2*(50-1)=98。讀取DB2.DBW98到MW0后清零DB2.DBW98,然后將計數(shù)器-1即可。