□ 黃立波
上海電氣集團自動化工程有限公司 上海 200233
隨著我國工業(yè)裝備技術的快速發(fā)展,對機器人上下料設備的高效、自動化、信息化程度提出了越來越高的要求。
一般來說,非標自動化設備是以可編程序控制器為控制中心,結合軟件技術與智能化技術形成的設備系統(tǒng)??删幊绦蚩刂破饕蚱涔δ軓姶?、運算速度快、程序設計簡單、修改程序靈活方便、可靠性高、抗干擾能力強,以及能在惡劣的工業(yè)環(huán)境下長期工作等顯著特點,已經(jīng)廣泛用于機器人上下料設備。機器人雖然具有較強的運動控制功能,但是邏輯控制功能較弱,通信功能較弱,只有在設備較為簡單的情況下能夠作為控制中心,在復雜的情況下還是主要作為可編程序控制器的從站。
在沒有信息化系統(tǒng)的情況下,雖然非標自動化設備也能獨立運行,但是無法進行數(shù)據(jù)追溯,無法進行設備運行效率的統(tǒng)計,也無法進行數(shù)據(jù)圖表趨勢的展示與預防性維護。對于工廠的生產(chǎn)管理者來說,這樣的設備就成為了一座座信息孤島。只有建立了信息化系統(tǒng),設備的當前狀態(tài)、歷史狀態(tài)、運行趨勢才能被使用者和維護者時刻掌握,從而提升整個生產(chǎn)線的運行效率和生產(chǎn)質量。
筆者以機器人上下料設備項目為例,研究信息化軟件在機器人上下料設備中的開發(fā)與應用。
實際項目中,整套系統(tǒng)分為一套機器人上料設備、一套機器人下料設備,每套設備中包含機器人、三維視覺設備、輸送線、物料架配套設備,如圖1所示。
▲圖1 機器人上下料設備
項目中的主要設備包括:① 可編程序控制器,使用西門子S7-1200 CPU1214C 可編程序控制器進行主控;② 機器人設備,使用發(fā)那科R-2000iC/165F進行上下料抓取;③ 三維視覺設備,在上料工位需要對爐架進行視覺定位,在下料工位需要對工件進行視覺定位;④ 輸送線設備,在上料工位需要對輸入的工件進行輸送,在下料工位需要對輸出的工件進行輸送。
項目中使用工控機運行信息化系統(tǒng),工控機的配置如下:① 中央處理器,采用英特爾酷睿 i5 ORE i5 10代;② 內存,為16 GiByte;③ 硬盤,采用256 GiByte固態(tài)硬盤+2 TiByte機械磁盤陣列;④ 顯示器,采用17 in液晶顯示器一臺和50 in大屏電視一臺。
數(shù)據(jù)采集是信息化功能實現(xiàn)的基礎。而數(shù)據(jù)采集的關鍵是實現(xiàn)可編程序控制器與上位機之間的通信。項目中,數(shù)據(jù)采集程序需要與上料工位可編程序控制器和下料工位可編程序控制器分別通信,需求參數(shù)見表1。
表1 通信需求參數(shù)
對于不同的可編程序控制器,與上位機之間的通信方式各有不同。項目選用了目前機械自動化領域應用最廣的西門子可編程序控制器,與上位機之間的通信方式主要有,OPC Server、SIMATIC NET、ProDave、LibNoDave、Snap7等,項目中使用Snap7通信方式。
Snap7是Github平臺上的開源工具,用于訪問西門子可編程序控制器。雖然Snap7已多年未更新,但是使用它訪問西門子可編程序控制器仍然非常穩(wěn)定。Snap7使用C++語言開發(fā),運行效率很高。Snap7支持.NET的調用方式,開發(fā)效率高。Snap7支持跨平臺運行。Snap7是開源的軟件,遇到問題也可以進行診斷和修復。Snap7是免費軟件,使用成本低。
使用Snap7方式,可以方便地和可編程序控制器建立通信,訪問里面的數(shù)據(jù),C#典型代碼如下:
S7Client m_clnt;
m_clnt =new S7Client();
int ret;
ret = Client.ConnectTo(″192.168.10.10″,0,2);
charbuffRead[100],buffWrite[100];
ret = Client.DBRead(10,0,100,buffRead);
...
ret = Client.DBWrite(10,0,100,buffWrite);
...
m_clnt.Disconnect();
項目中,為上料可編程序控制器、下料可編程序控制器各創(chuàng)建一個掃描線程。在掃描線程里,根據(jù)配置的數(shù)據(jù)參數(shù)進行輪詢掃描。這樣,不參與運行或有通信故障的設備指揮阻塞該設備對應的線程,不會因為通信故障而影響其它設備的掃描,數(shù)據(jù)采集程序的運行穩(wěn)定性會提高很多。
信息化軟件產(chǎn)生的數(shù)據(jù)需要進行保存、查詢和分析,只有數(shù)據(jù)庫可以勝任上述功能。根據(jù)需求,可以選擇不同的數(shù)據(jù)庫,不同的數(shù)據(jù)庫有各自的特點和適宜的應用場合。在工業(yè)自動化領域中,常用的數(shù)據(jù)庫有Microsoft SQL Server、Microsoft Access、Oracle、MySQL、PostgreSQL、SQLite等。項目中使用MySQL,MySQL的特點如下:① 成本低,MySQL數(shù)據(jù)庫是一種完全免費的產(chǎn)品,用戶可以直接從網(wǎng)上下載;② 支持跨平臺,MySQL數(shù)據(jù)庫支持至少20種以上的開發(fā)平臺,包括Linux、Windows、FreeBSD等,這使得在任何平臺下編寫的程序都可以進行移植,而不需要對程序做任何修改;③ 應用廣泛,MySQL數(shù)據(jù)庫得到了大量應用的驗證,穩(wěn)定性非常高;④ 功能強大,MySQL數(shù)據(jù)庫中提供了多種數(shù)據(jù)庫存儲引擎,各個引擎各有所長,適用于不同的應用場合,用戶可以選擇最合適的引擎以得到最高性能,這些引擎升值可以應用處理每天訪問量數(shù)億的高強度Web搜索站點,MySQL數(shù)據(jù)庫支持事務、視圖、存儲過程和觸發(fā)器等;⑤ 存儲容量大,MySQL數(shù)據(jù)庫的最大有效容量通常是由操作系統(tǒng)對文件大小限制決定的,而不是由MySQL數(shù)據(jù)庫內部限制決定的。
項目中,一共創(chuàng)建了四個和上下料數(shù)據(jù)相關的表格,見表2。
表2 數(shù)據(jù)表格
項目中,使用數(shù)據(jù)庫腳本SQL語言進行數(shù)據(jù)庫的創(chuàng)建。腳本方式的好處是,當需要進行數(shù)據(jù)庫的維護、更新、重構時,使用腳本更加迅速,不依賴于環(huán)境配置。如果需要將數(shù)據(jù)庫升級或遷移到其它數(shù)據(jù)庫,通過腳本可以快速實現(xiàn)。例如,對于爐位上料記錄,使用如下SQL腳本可以創(chuàng)建相關的數(shù)據(jù)表:
CREATE TABLE ′RackUpData′(
′ID′ int NOT NULL AUTO_INCREMENT,
′RackNum′ int NOT NULL,
′RackPos′ int NOT NULL,
′Flag′ int NOT NULL DEFAULT 0,
′CreatedTime′ DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(′ID′),
INDEX(′RackNum′),
INDEX(′CreatedTime′),
INDEX(′Flag′)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
信息化軟件產(chǎn)生的數(shù)據(jù)需要進行顯示和管理,因此需要開發(fā)用戶界面。
界面應用程序的開發(fā)通常包括對話框界面程序開發(fā)和網(wǎng)頁界面程序開發(fā)。
網(wǎng)頁界面程序的開發(fā)越來越受歡迎,主要基于以下特點:① 網(wǎng)頁界面程序只需要在瀏覽器上運行,不像對話框界面程序需要安裝包,安裝的前提條件更多;② 網(wǎng)頁界面程序,可以將數(shù)據(jù)處理邏輯都置于服務器后端運行,對前端運行環(huán)境的要求更低;③ 網(wǎng)頁界面程序可以實現(xiàn)跨平臺,可以在Windows、Linux等平臺上運行;④ 網(wǎng)頁界面程序可以實現(xiàn)移動端的運行,可以在手機和智能平板上運行。
項目中,使用ASP.NET MVC,采用微服務的方式開發(fā)服務器端,將服務器端開發(fā)和前端開發(fā)分離開來。服務器端開發(fā)的與上下料信息化相關的控制器參數(shù)見表3。
表3 控制器參數(shù)
由表3可以看出,項目中使用Json的方式進行數(shù)據(jù)交換。Json是一種輕量級的數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。業(yè)內主流技術為其提供了完整的解決方案,從而可以在不同平臺間進行數(shù)據(jù)交換。Json采用兼容性很高的文本格式,同時也具備類似于C語言體系的行為。輸入輸出參數(shù)均使用Json,服務器端的開發(fā)可進行統(tǒng)一的處理。
信息化軟件前端提供用戶界面,用戶可以從中看到數(shù)據(jù)追溯、統(tǒng)計、監(jiān)控的內容。前端一般采用腳本語言開發(fā),通過網(wǎng)絡服務器運行。項目中采用JavaScript腳本語言開發(fā)前端界面,通過互聯(lián)網(wǎng)信息服務運行提供前端頁面,在瀏覽器中運行。
從瀏覽器中輸入根網(wǎng)址http://localhost:8020,局域網(wǎng)電腦則使用工控機的網(wǎng)際協(xié)議替換本地主機訪問。登錄系統(tǒng)后的界面,左側是菜單欄,上欄是打開的頁面導航,右上欄是個人信息和退出功能,個人信息功能可以修改個人的資料和密碼,首頁是產(chǎn)量統(tǒng)計數(shù)據(jù)和本周每一天的柱狀統(tǒng)計圖,出現(xiàn)的運行界面如圖2所示。
▲圖2 柱狀統(tǒng)計圖界面▲圖3 質量追溯/上料工位菜單界面
選擇界面下的質量追溯/上料工位菜單,出現(xiàn)的運行界面如圖3所示。
由于前端頁面需要訪問服務器提供的服務才能獲取數(shù)據(jù),為了使頁面的刷新更加平滑,筆者使用了Ajax技術,在當前頁面調用異步方法,獲取服務器里的數(shù)據(jù)。典型代碼如下:
//加載后臺數(shù)據(jù)并初始化
layui.use([′layer′,′table′,′jquery′,′form′,′laydate′],function(){
var table = layui.table;
//調用Ajax方法,更新表格
table.render({
elem:′#RackTable′,
url:′/Product/GetRackDownInfo′,
title:′菜單表′,
id:′RackTableId′,
cols:[[
{ field:′ID′,title:′編號′,sort:true,align:′center′,width:′15%′ },
{ field:′RackNum′,title:′爐架號′,sort:true,align:′center′,width:′15%′ },
{ field:′RackPos′,title:′位置號′,align:′center′,width:′15%′ },{ field:′ScanCode′,title:′工件編碼′,align:′center′,width:′20%′ },
...
});
筆者針對機器人上下料設備,開發(fā)設計了信息化系統(tǒng)軟件,實現(xiàn)了數(shù)據(jù)的可追溯、圖形展示、數(shù)據(jù)統(tǒng)計等功能。由于架構的優(yōu)化,將來擴展參數(shù)設置、報表等功能,也都是可行的。管理人員可以在辦公室里通過電腦、手機或平板電腦,打開信息化界面,監(jiān)控現(xiàn)場設備的運行。筆者開發(fā)的信息化系統(tǒng)將打通車間設備中的信息孤島,使車間設備更數(shù)字化、智能化,將在制造業(yè)中得到應用。