[訊息論壇] ICE Messaging Forum 郭漢丞
<應用篇> iPush® Embedded for
Controller 的誕生
艾揚能夠在 MOM 的世界攻城掠地,我們擁有許多寶藏,其中一「寶」,就是我們的研究開發部門
(R&D,按照一般習慣我們都稱他們 RD 人)。跟我們這些做行銷的比起來,他們可說是 Marketing
工作的救星,每次遇到腸枯思竭,找不到對產品的感覺時,找他們就對了!
可別誤會,艾揚的 RD 人不是幫我們想行銷的點子,而是一針見血地點出我們的問題所在。好吧!我承認行銷的「手法」總要講點誇張,但是也不要這麼直接嘛!每當從
RD 那裡找答案,很快的就會回到產品本身的特性與本質,其實艾揚就是一家做「技術」的公司,不多也不少,不管行銷面貌如何變化,艾揚還是一家務實踐履「即時訊息」技術的軟體原廠。
在實踐 iPush® Embedded 的過程中,RD 提供了最快速的反應能力,協助業務部門達成回應客戶需求的目標。整個故事醞釀期將近一年,但是實際付諸實踐執行卻要在一個月以內完成,我這才知道原來
RD 這群有點「瘋」的傢伙還真的是艾揚之「寶」,深藏不露的刷子不曉得有幾把?
作為國內唯一的 MOM 技術原廠,艾揚一則重視本身產品的技術發展,二則透過與商務夥伴的結合,創造出即時訊息的創新應用。商務夥伴當然不是憑空而來,而是靠業務部門
(我們稱為 Business Development,簡稱 BD) 以其敏感的嗅覺,找出即時訊息傳遞應用的場景
(Scenario),想辦法結合相關技術,融合出新的應用。
這是整個 iPush® Embedded 產品線開展的根本由來,當我們發現工業控制對於遠端即時訊息傳遞有其需求時,整個
RD 部門也跟著動起來了。
找到商務夥伴、建立開發目標,這個過程很耗時,因為大家都必須確定這個領域具備潛在的獲利空間,否則只是證明技術優越卻賺不了錢,恐怕不符合公司經營的目標。BD
花了不少時間與客戶溝通,最後與 RD 聯手出擊下,敲定了技術規格與執行方向,接下來就是要把這些「規格」變出來產品的過程了。
與商務夥伴研究技術規格與開發目標的過程耗時,但是要付諸執行可得要快,而且是唯一的指導原則。
艾揚的 RD 除了技術實力之外,還有多年的團隊作戰默契,在 CTO 陳俊霖博士的帶領之下,iPush®
Embedded 在最短的時間內誕生了。
整個專案由 CTO 帶領,他的話不多 (這是指關於工作的部分),但是每句話都切中要害。執行專案分工時也一樣,為了快速達成產品建置的目標,整個
iPush® Embedded 的開發可分為四個部分,交付團隊中的成員分頭執行。
這四個部分包括:
-
iPush®
Server porting 到 Windows CE.NET
-
iPush®
API porting 到 Windows CE.NET
-
I/O Module
-
Remote Administration
整個 iPush® Embedded 的目標就是在最短的時間內,將
iPush® 移植到 Windows CE.NET 上面,並且能夠在特定的硬體設備上
(即以 Windows CE.NET 為作業系統的 PC-based Controller) 運作。
對於我們這些做 Marketing 的人來講,產品好像總是理所當然的擺在哪裡,從來沒想到底開發過程當中會遇到哪些問題?在深入瞭解以後,這才發現原來
iPush® for Windows 之所以會快,不僅是「簡潔」、「嚴謹」的程式核心,它還應用到許多
Windows Kernel 可以提高伺服器應用效率的 Features。
但是移植到 Windows CE.NET 上面,由於 CE.NET 是精簡版的 Windows,這些支援處理速度與效率的
Features 就不存在了。於是 iPush® Embedded 也必須針對這些部分加以修改,而且效能還不能打太多折扣;API
的部分亦如是。
此外,為了因應工業控制的需求,單純只交付 iPush® Embedded
for Windows CE.NET 還不夠,因為 iPush® Embedded
是埋在底層的即時訊息傳遞伺服器,如果要針對輸出/輸入模組 (I/O Modules) 執行動作,必須提供 Input/Output
的控制工具;若要發揮遠端控制的功能,還必須撰寫 Remote Administration 程式。這兩個部分也必須有專人責負開發。
如此,在 CTO 的掌控之下,這四個部分分頭進行,最後進行整合測試。關於開發 iPush®
Embedded 過程當中的酸甜苦辣,我們會在下一期電子報當中專訪艾揚 CTO,請他現身說法。接下來,讓我們來看看
iPush® Embedded 實際應用的「長相」。
iPush® Embedded 既然是一個軟體伺服器,當然必須依附在硬體上面執行,目前已經在泓格
(http://www.icpdas.com) 的 WinCon-8000 工業控制器上實踐;而與其他國際大廠的合作,也正在積極進行當中。
艾揚 BD 部門正持續地努力,挖掘更多國際上的工業控制專業伙伴,希望能夠運用 iPush®
Embedded 的遠端、多點、即時特性,建立工業控制的新應用範疇。
| 
|
| 圖一、泓格
WinCon-8000 測試實況 (背板上正插著各類的 I/O 模組) |

|
圖二、泓格
WinCon-8000 已通過 Windows CE.NET 認證,iPush®
Embedded 同樣也已經成為微軟 Windows CE.NET 的 Embedded Partner
(WEP) |
整個 iPush® Embedded 就是安裝在如 WinCon-8000
這樣的工業控制器裡面,如何叫出 iPush® Embedded 的控制介面,就必須仰賴
I/O Module 與 Remote Control。
我們先來看看 I/O Module 的運作狀況。
我們可以從遠端的 PC 執行一個範例程式 (在此即 IOModule Tester),給定要連線的
iPush® Embedded (Server) 的位址,並且依據使用者與密碼進行連線。如下圖三:
| 
|
| 圖三、IOModule
Tester,可以從這個範例程式登入系統,執行控制作業。 |
取得與控制器 (iPush® Embedded) 的連線之後,該控制器上所插接的
I/O 模組資料便會源源不絕地傳回。您可以透過 iPush® Embedded 的
Publish/Subscribe 即時訊息傳遞能力,執行雙向的溝通。雙向的資訊溝通包括遠端資料擷取(傳回),以及控制指令的下達。
數位控制的模式包括了 Digital Output 與 Bit Output 兩項,而類比控制的部分包括了
Voltage Output 和 Current Output,至於 Report 項目則同時包括了類比與數位的控制資料。從圖四您可以清楚看到控制選單與擷取資料的運作方式:
|
|
| 圖四、控制選項包括
Report、Digital Output、Bit Output、Voltage Output、Current
Output 等五項,透過 iPush® Embedded 提供 Publish/Subscribe
傳訊模式達成雙向資料交換。 |
利用 I/O Module 可以進行控制器上各種 I/O 模組的啟動與關閉控制,而 Remote
Administration 則是可以在遠端進行系統管理工作。
以下依序按圖說明 Remote Administration 的功能。
從最左邊的功能頁籤開始,<Autoexec Programs> 即讓使用者可以預先設定在控制器開機時,要自動啟動執行的程式:
| 
|
| 圖五、自動執行檔設定畫面 |
<System Information> 為系統資訊顯示頁籤。這一部份包括 I/O
模組的插接狀況,以圖六所顯示的 WinCon-8000 為例,Slot 1 插有 I-8052、Slot 2 插有
I-8056、Slot 3 插有 I-8053......。隨著控制器「嵌入」的 I/O 模組的不同,這個部分會隨之變動。
其他還有該控制器的硬體序號、乙太網路 MAC 位址、記憶體大小、作業系統版本等資料。
| 
|
| 圖六、Slot
1 插有 I-8052、Slot 2 插有 I-8056、Slot 3 插有 I-8053...... |
接下來的 <Device Configuration> 是 I/O 模組的組態設定頁籤。由於
iPush® Embedded 的 Publish/Subscribe 即時傳訊能力,必須透過如
Subject 這樣的訊息定址方式來做為傳訊的標的,因此我們可以在此設定或維護各 I/O 模組訊息收送所對應的
Subject 名稱結構 (Group、Tag)。
| 
|
| 圖七、為
I/O 模組設定 I/O Tag 與 Subject 的對應 |
iPush® Embedded 用來為嵌入式系統提供即時訊息的傳遞服務,本身即擁有一些設定項目,以便能夠正常地進行雙向傳訊的任務,<iPush
Configuration> 頁籤便提供設定的介面。
此外,針對工作時的 Log 檔案,您可以預先設定 Log 檔的大小與生命週期。這兩個參數看哪一個先滿足,系統會自動清理舊的
Log 檔,以新的 Log 檔案進行工作的紀錄作業。
| 
|
| 圖八、
設定 iPush® Embedded |
最後一個 Remote Administration 頁籤為 <User Management>,提供可以針對
iPush® Embedded 收送資訊的使用者身份與權限設定。
另外,系統也預設了 IOM 與 wc8k 這兩個使用者:
| 
|
| 圖九、使用者管理 |
關於 iPush® Embedded 開發過程的四大部分:iPush®
porting、iPush® API porting、I/O Module、與 Remote
Administration,我們以圖文方式介紹了 I/O Module 與 Remote Administration,因為這兩者可以用實際的
Screen Shot 向 Developer 們說明。
至於提供即時訊息傳遞服務的關鍵 iPush® Embedded
核心,因為是跑在底層的服務,所以沒辦法以圖文對照的方式向大家說明詳情。
關於 iPush® Embedded 提供大量、即時、遠端、雙向的嵌入式工控應用訊息服務,如果沒能說清楚、講明白,那可真是諸位讀者們的損失。編輯群當然不會放過這個
iPush® Embedded 最精彩的部分。在下週的內容當中,我們已經安排了艾揚
CTO 陳俊霖博士的專訪,帶您更深入 iPush® Embedded 開發的內容與第一手的技術報告。
|