我先介紹一下正常做項目的步驟,再解釋一下你的疑問。
前期,銷售接到一個潛在項目,了解客戶需求(spec),機械工程師給出一些方案,電氣工程師輔助給一些建議。基本上大件,找供應商報價。有的根據經驗,用哪種方案。有的可能需要測試;
銷售根據大件,材料成本,人工成本,潛在風險。有的投標,有的競價。
在項目接下來后,機械根據具體spec,細化方案。第一次評審,第二次評審。最終確定設計細節。
機械根據這些細節,細化3D,沒有問題,細化2D給供應商做加工件。電氣根據前期機械的3D,細化,溝通具體傳感器及檢測、氣缸、電機等,出電氣圖紙;
采購(同時電氣工程師寫程序),裝配,調試。
工廠內部要收,現場調試,客戶現場驗收,售后服務;
你提問的,用300系列PLC設計一套系統。我這里只針對程序。平臺為博圖TIAV15。實際上隨著300系列逐步要淘汰,成本已經比1500系列的要高。
打開博圖,點擊新建及路徑,然后點擊新建
然后點擊項目視圖;
點擊添加設備:為了便于仿真,此處添加1500的CPU。
因為是新的程序,里面只有一個OB1。實際上除了OB1,OB100,OB121,OB122等也是可以,有的甚至是必須添加的。
為了便于測試,添加塊FC4060(FC_Motor),FB4061(FB_Motor)以及FB4061的背景塊。并且新建一個文件夾。其中FC在OB1中調用。FB在FC中調用。
FC為LAD梯形圖,FB為SCL;
新建FB地址如下:
Input:
iRunBool
iManualModeBool
iAutoModeBool
iResetBool
iControlModeBool
iInterlockFwdBool
iInterlockBwdBool
Output:
oFwdBool
oBwdBool
oErrorInt
InOut:
ioManualFwdBool
ioManualBwdBool
ioManualStopBool
ioAutoFwdBool
ioAutoBwdBool
寫入代碼然后編譯:
IF#iRunTHEN
IF#iManualModeTHEN
#ioAutoFwd:=0;
#ioAutoBwd:=0;
END_IF;
IF#iAutoModeTHEN
#ioManualFwd:=0;
#ioManualBwd:=0;
#ioManualStop:=0;
END_IF;
#oFwd:=(#ioAutoFwdANDNOT#ioAutoBwd)OR(#ioManualFwdANDNOT#ioManualBwd)AND#iInterlockFwd;
#oBwd:=(NOT#ioAutoFwdAND#ioAutoBwd)OR(NOT#ioManualFwdAND#ioManualBwd)AND#iInterlockBwdAND#iControlMode;
IF(#ioManualFwdOR#ioAutoFwd)ANDNOT#iInterlockFwdTHEN
#oError:=8001;
END_IF;
IF(#ioManualBwdOR#ioAutoBwd)ANDNOT#iInterlockBwdTHEN
#oError:=8002;
END_IF;
IF#iResetTHEN
#oError:=0;
END_IF;
ELSE
#oFwd:=0;
#oBwd:=0;
#oError:=8000;
END_IF;
點擊仿真,
下載完畢,運行PLC;
這個只是簡單的電機例子。輸入輸出端可以接。當然一個程序不僅僅這么簡單。數量、規模不一樣罷了。