PLC編程再思考之一:MapReduce
大家知道MapReduce是奠定GOOGLE成功基礎的三大技術法寶之一(另外兩個是PageRank和BigTable),現在MapReduce方法論已經在網路開發甚至在企業開發中得到廣泛的應用,而本文則探討MapReduce在MES PLC編程中的應用。
目前PLC和自動化技術在MES的應用中非常關鍵,通過對PLC的集成,MES得以打通執行層、控制層、設備層,在一些汽車製造公司,甚至專門搭建IT PLC或MASTER PLC,以實現PMC、ANDON、AVI、EPS等高度複雜的業務模塊,以及數以千計的外部設備(拉繩/按鈕/燈)的集成。
因此,對於MES業務而言,IT PLC的重點不是過程式控制制,而是複雜業務邏輯的處理,以及大量I/O設備的讀寫。
由於上述原因,IT PLC內部運行的FB/FC就會非常多,如果不認真規劃的話,OB1里調用關係就會非常混亂,因而需要對程序的結構進行嚴謹的設計。
本文試以ANDON為例,說明MapReduce在PLC編程上的借鑒。
首先是Map。
Map應體現在兩個方面,一是程序結構。
如下圖體現了非常清晰的調用關係,在OB1中只需要做一些業務模塊的聲明:
第二個方面是配置關係的定義,如線和工位的對應關係,工位和拉繩/燈的對應關係。
如下圖所示,可以用數組建立線和工位的對應關係,然後把拉繩和燈的編號作為工位屬性配置:
因而我們可以用遍曆數組的方式得到線對應的所有工位,然後根據工位屬性得到對應的拉繩編號和燈編號。
再來看Reduce。
從FC40000 ANDON主FC以下,我們又看到了以下幾類業務處理過程:
- 對於線的處理
- 對於工位的處理
- 對於拉繩的處理
- 對於燈的處理
我們可以分別編寫4個FC來進行相應的處理。
- FC40100處理線的邏輯,包含兩個變數:線編號和工位數量。
- FC40101處理工位的邏輯,包含變數:工位編號。
- FC40111處理拉繩的邏輯,包含變數:拉繩編號和拉繩狀態。
- FC40121處理燈的邏輯,包含變數:燈編號。
經由以上處理,我們就得到了一個非常簡潔的調用結構:
具體過程為:
- FC40000依次調用各條線FC40100。
- FC40100調用本線對應所有工位的FC40101。
- FC40101調用工位對應拉繩的FC40111。
- FC40101根據拉強繩返回的狀態值FLAG,決定是否調用燈的FC40121。
總結一下,本文中用MapReduce處理PLC程序結構的要點:
- OB1/FC的結構要清晰、有層次。
- 業務模型通過DB中的數組等結構體現關係。
- 業務過程FC要參數化、可重用。
推薦閱讀:
※宋鑒
※MES在汽車製造中的應用之業務篇(5) -- 路由控制
※MES在流程製造和離散製造中的需求差異都有什麼?
※MES在汽車製造中的應用之工藝篇(1) -- 乘用車製造工藝
※MES在汽車製造中的應用之工藝篇(2) -- 商用車製造工藝
TAG:MES | 可编程逻辑控制器PLC |