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