回覆列表
  • 1 # 儒拉小鎮

    我先介紹一下正常做專案的步驟,再解釋一下你的疑問。

    前期,銷售接到一個潛在專案,瞭解客戶需求(spec),機械工程師給出一些方案,電氣工程師輔助給一些建議。基本上大件,找供應商報價。有的根據經驗,用哪種方案。有的可能需要測試;

    銷售根據大件,材料成本,人工成本,潛在風險。有的投標,有的競價。

    在專案接下來後,機械根據具體spec,細化方案。第一次評審,第二次評審。最終確定設計細節。

    機械根據這些細節,細化3D,沒有問題,細化2D給供應商做加工件。電氣根據前期機械的3D,細化,溝通具體感測器及檢測、氣缸、電機等,出電氣圖紙;

    採購(同時電氣工程師寫程式),裝配,除錯。

    工廠內部要收,現場除錯,客戶現場驗收,售後服務;

    你提問的,用300系列PLC設計一套系統。我這裡只針對程式。平臺為博圖TIA V15。實際上隨著300系列逐步要淘汰,成本已經比1500系列的要高。

    因為是新的程式,裡面只有一個OB1。實際上除了OB1,OB100,OB121,OB122等也是可以,有的甚至是必須新增的。

    為了便於測試,新增塊FC4060(FC_Motor), FB4061(FB_Motor)以及FB4061的背景塊。並且新建一個資料夾。其中FC在OB1中呼叫。FB在FC中呼叫。

    FC為LAD梯形圖,FB為SCL;

    新建FB地址如下:

    Input:

    iRun Bool

    iManualMode Bool

    iAutoMode Bool

    iReset Bool

    iControlMode Bool

    iInterlockFwd Bool

    iInterlockBwd Bool

    Output:

    oFwd Bool

    oBwd Bool

    oError Int

    InOut:

    ioManualFwd Bool

    ioManualBwd Bool

    ioManualStop Bool

    ioAutoFwd Bool

    ioAutoBwd Bool

    寫入程式碼然後編譯:

    IF #iRun THEN

    IF #iManualMode THEN

    #ioAutoFwd := 0;

    #ioAutoBwd := 0;

    END_IF;

    IF #iAutoMode THEN

    #ioManualFwd := 0;

    #ioManualBwd := 0;

    #ioManualStop := 0;

    END_IF;

    #oFwd := (#ioAutoFwd AND NOT #ioAutoBwd) OR (#ioManualFwd AND NOT #ioManualBwd) AND #iInterlockFwd;

    #oBwd := (NOT #ioAutoFwd AND #ioAutoBwd) OR (NOT #ioManualFwd AND #ioManualBwd) AND #iInterlockBwd AND #iControlMode;

    IF (#ioManualFwd OR #ioAutoFwd) AND NOT #iInterlockFwd THEN

    #oError := 8001;

    END_IF;

    IF (#ioManualBwd OR #ioAutoBwd) AND NOT #iInterlockBwd THEN

    #oError := 8002;

    END_IF;

    IF #iReset THEN

    #oError := 0;

    END_IF;

    ELSE

    #oFwd := 0;

    #oBwd := 0;

    #oError := 8000;

    END_IF;

    下載完畢,執行PLC;

    這個只是簡單的電機例子。輸入輸出端可以接。當然一個程式不僅僅這麼簡單。數量、規模不一樣罷了。

  • 中秋節和大豐收的關聯?
  • 租房遇到了被租房貸,該怎麼樣才能儘量挽回損失?