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