之前做過的項(xiàng)目中有用到先入先出的指令,但那個(gè)項(xiàng)目的程序有點(diǎn)大,不方便閱讀理解這個(gè)功能,F(xiàn)在用FX3U的做了個(gè)小測試程序與大家分享一下,程序中用了8個(gè)工位,每個(gè)工位有一個(gè)請(qǐng)求按鈕,按下后執(zhí)行工作請(qǐng)求預(yù)約,執(zhí)行機(jī)構(gòu)會(huì)根據(jù)先后順序依次執(zhí)行完成。
程序具體功能:
1、啟動(dòng)后按下M10~M17(對(duì)應(yīng)1#~8#工位的外部按鈕,用PLC做測試的時(shí)候沒接那么多的按鈕,所以用M代替;另外為減少程序量此外使用的變址輸入的形式)——對(duì)按下的工位號(hào)進(jìn)行編碼(0~7對(duì)應(yīng)1#~8#工位)——置位M110~M117(對(duì)應(yīng)1#~8#工位已請(qǐng)求預(yù)約,已預(yù)約過未執(zhí)行的再次按下請(qǐng)求按鈕無效)——請(qǐng)求預(yù)約信號(hào)脈沖M110~M117——復(fù)位請(qǐng)求信號(hào)M10~M17(測試時(shí)方便而設(shè));
2、執(zhí)行先入先出移位寫入指令(SFWR)——當(dāng)前預(yù)約工位號(hào)寫入D10+1(D10為指針,記錄已寫入的數(shù)據(jù)數(shù)量,每寫入一次加1),同時(shí)之前寫入的數(shù)據(jù)依次后移,測試程序中由于只有8個(gè)工位故設(shè)置后面的N為K9(只保存N-1個(gè)預(yù)約請(qǐng)求信號(hào));
3、在設(shè)備未輸出執(zhí)行的情況下執(zhí)行先入先出移位讀出指令(SFRD)——最先保存的工位號(hào)讀出,使用變址控制外部輸出Y00~Y07;
4、外部輸出設(shè)了個(gè)動(dòng)作時(shí)間,可以將每個(gè)動(dòng)作的時(shí)間設(shè)的長一點(diǎn),便于確認(rèn)預(yù)約功能的詳細(xì)動(dòng)作及指針的變化;
5、外部輸出時(shí)間到達(dá)后將輸出復(fù)位——該工位執(zhí)行計(jì)數(shù)——執(zhí)行子程序(判定各工位執(zhí)行次數(shù)是否到達(dá)設(shè)定次數(shù),可用于指定執(zhí)行設(shè)定次數(shù)的工藝項(xiàng)目中);執(zhí)行次數(shù)到達(dá)后該工位即預(yù)約無效,所有的工位執(zhí)行次數(shù)到達(dá)后自動(dòng)停止;
6、按鈕X00延時(shí)2S后復(fù)位計(jì)數(shù)值、判定值等中間計(jì)算變量,可再次執(zhí)行啟動(dòng);
該測試程序僅供三菱的先入先出指令共同學(xué)習(xí)探討使用,實(shí)際在項(xiàng)目中還要考慮相應(yīng)的安全互鎖、設(shè)備斷電或中止等異常情況下的數(shù)據(jù)保持等情況,可根據(jù)實(shí)際的項(xiàng)目要求進(jìn)行相應(yīng)的變更、追加或變通等。大家在測試中發(fā)現(xiàn)有什么不對(duì)之處,請(qǐng)多多指教,共同學(xué)習(xí)方能走的更遠(yuǎn)。