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

本帖最近評分記錄:
  • 下載積分:+1(aaa2073) 真誠感謝!
  • 下載積分:+1(工控2018028)
  • 下載積分:+5(烏龜船長) 好貼好貼!
  • 下載積分:+1(leewai2008)
  • 天下事有難易乎?為之,則難者亦易矣!不為,則易者亦難矣!
    mlb169
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 171 個
    工控威望: 295 點
    下載積分: 592 分
    在線時間: 135(小時)
    注冊時間: 2012-11-07
    最后登錄: 2024-10-31
    查看mlb169的 主題 / 回貼
    1樓  發(fā)表于: 2016-01-27 13:54
    謝謝樓主分享