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 |