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