■武漢重型機床集團有限公司 (湖北武漢 430205) 佟 冬
工業(yè)4.0意味著我國要在工業(yè)化與信息化同步發(fā)展的戰(zhàn)略中更快地促進兩者的融合,對促進經(jīng)濟社會的發(fā)展有著重要價值。而工業(yè)物聯(lián)網(wǎng),則是工業(yè)4.0實現(xiàn)的具體方式,因此要想實現(xiàn)智能制造,必須借助于工業(yè)物聯(lián)網(wǎng)。
在生產(chǎn)制造工作中,無論是數(shù)控機床還是自動化設(shè)備,發(fā)生PLC報警都在所難免。而不同的數(shù)控系統(tǒng)與自動化設(shè)備,其所使用的PLC語言通常是不同的,發(fā)那科數(shù)控系統(tǒng)的PLC程序的編寫所使用的是梯形圖語言(L D,Ladder Diagram),西門子828D數(shù)控系統(tǒng)的PLC程序的編寫使用的是功能塊圖(FBD,F(xiàn)unction Block Diagram),西門子840D數(shù)控系統(tǒng)的PLC程序的編寫使用的是指令表(IL,Instruction List),倍福等自動化產(chǎn)品PLC程序的編寫使用的是結(jié)構(gòu)文本(ST,Structure Text)。
盡管以上4種PLC語言都屬于IEC的標(biāo)準(zhǔn)PLC語言,然而這4種不同的PLC編程語言各有各的優(yōu)勢,同時也代表著不同編寫思路及診斷思路。例如,梯形圖語言及功能塊圖語言編寫的PLC在診斷時最大的優(yōu)勢就是直觀易懂,技術(shù)要求門檻相對較低;而指令表語言尤其是結(jié)構(gòu)文本語言編寫的PLC,在診斷時則要求相應(yīng)的技術(shù)人員有一定的英語基礎(chǔ)、良好的高級語言編程功底及調(diào)試功底,因此對應(yīng)的技術(shù)門檻要求很高。不僅如此,即便是相同的PLC語言,不同的制造商也有其不同的指令。
因此如果要找到一個同時通曉上述4種PLC語言的工程師是很難的。為此,企業(yè)通常要招聘多個熟悉不同PLC語言的工程師,并為此付出不菲的人力成本。
有沒有一種方案或者技術(shù)手段能“繞開”這幾種PLC編程語言解決數(shù)控機床與自動化設(shè)備的PLC故障呢?答案是有的,其原理也非常簡單。對于PLC報警而言,報警信號與輸出信號一樣,受到輸入/輸出信號、PLC參數(shù)以及數(shù)控機床運行狀態(tài)的影響。因此,只要我們通過某些手段在線獲取到這些影響因素的數(shù)據(jù),就相當(dāng)于“繞過”PLC的內(nèi)部邏輯,直接從根源處實現(xiàn)PLC遠(yuǎn)程診斷。
想要獲取我們所需的數(shù)控機床的數(shù)據(jù),需要從硬件及軟件兩個方面入手。
(1)硬件的搭建 在硬件上的搭建相對簡單(見圖1),只需要將數(shù)控系統(tǒng)設(shè)置IP等參數(shù)后,通過網(wǎng)線連接到以太網(wǎng)上即可。
(2)函數(shù)庫 不同的數(shù)控系統(tǒng)制造商都會為其用戶提供相應(yīng)的API函數(shù)庫,幫助其開發(fā)相應(yīng)的軟件工具。我們只要根據(jù)數(shù)控機床IP的設(shè)置,確定數(shù)控機床的數(shù)控系統(tǒng)類型,再調(diào)取不同數(shù)控系統(tǒng)制造商的函數(shù)庫,就能在線自動獲取數(shù)控機床的運行數(shù)據(jù)。
以發(fā)那科數(shù)控系統(tǒng)為例,其提供的函數(shù)庫為FOCAS,我們可以通過VB或者C++等高級語言對其進行調(diào)用,開發(fā)出對數(shù)控系統(tǒng)全部運行數(shù)據(jù)進行讀取與寫入的軟件功能。
圖1 硬件的搭建
(3) PLC診斷相關(guān)的API 由前文的論述可知,要實現(xiàn)PLC診斷需要通過相應(yīng)的API獲取數(shù)據(jù)。以發(fā)那科系統(tǒng)為例,需要獲取的數(shù)控機床的數(shù)據(jù)有:報警信號(A信號),輸入輸出信號(X、Y信號),PLC參數(shù)(K參數(shù)、D參數(shù))以及數(shù)控系統(tǒng)運行狀態(tài)信號(F信號、G信號以及位置坐標(biāo)等)。讀取不同的數(shù)據(jù),需要不同的函數(shù)功能。
1)讀取PLC信號。發(fā)那科提供了函數(shù)功能pmc_rdpmcrng用來讀取PLC有關(guān)的信號,其在VB中調(diào)用的過程如下。
Dim pmc As IODBPMC1
ret = pmc_rdpmcrng(ghandle,pmctype, 0, nstart, nend, 10, pmc)
根據(jù)讀取的PLC信號類型的不同指定不同的pmctype值,見表1。
表1 不同PLC信號類型的不同pmctype值
通過nstart與nend指定PLC信號讀取的范圍(不超過5個字節(jié))。通過對函數(shù)pmc_rdpmcrng循環(huán)調(diào)用的方式,就能很容易地讀取出數(shù)控系統(tǒng)全部的PLC信號,我們可以將讀取的數(shù)據(jù)存放在表格中以便于觀察。通過函數(shù)pmc_rdpmcrng在線讀取的部分PLC信號如圖2所示。
2)讀取機床坐標(biāo)。發(fā)那科提供了函數(shù)功能cnc_absolute用來讀取機床絕對坐標(biāo),其在VB中調(diào)用的過程如下。
Dim zhouzuobiao As ODBAXIS
ret=cnc_absolute(ghandle,ALL_AXES,4+4*MAX_AXIS,zhouzuobiao)
當(dāng)我們獲取了數(shù)控機床的PLC信號以及機床坐標(biāo),我們就掌握了數(shù)控機床的運行狀態(tài),通過對比故障數(shù)控機床的運行狀態(tài)與同等型號且正常運行的數(shù)控機床的運行狀態(tài),就能很容易地找到機床的故障所在。
(4)PLC在線診斷 通過發(fā)那科的函數(shù)庫FOCAS獲取數(shù)控系統(tǒng)的PLC報警信息以及決定PLC報警的PLC信號、數(shù)控機床的坐標(biāo)數(shù)據(jù),再通過讀取一臺機床型號及機械動作完全一樣的數(shù)控機床的PLC數(shù)據(jù),對兩者進行比較,就能找到造成PLC報警的因素。
1)讀取PLC信息。通過函數(shù)庫讀取數(shù)控系統(tǒng)的PLC型號,選取相同機床型號及相同版本的PLC作為診斷的依據(jù)。我們需要借助發(fā)那科的函數(shù)庫功能pmc_rdpmctitle來獲取PLC的版本信息,包括:制造商信息、機床名稱、PLC與NC名稱、PLC程序號、版本號、程序圖號、程序設(shè)計日期、程序設(shè)計者及ROM編寫等。
2)獲取正常運行數(shù)控機床的PLC信息。獲取了出現(xiàn)故障的數(shù)控機床的PLC信息,就可以通過在線查找與之相同的且正常運行的數(shù)控機床,來獲取該數(shù)控機床的PLC信息及機床坐標(biāo),并將其作為PLC在線診斷的依據(jù),這樣就更接近實現(xiàn)PLC在線診斷的目的。
圖2 通過函數(shù)pmc_rdpmcrng在線讀取的部分PLC信號
3)PLC在線診斷。我們通過工業(yè)物聯(lián)網(wǎng)獲取了出現(xiàn)PLC報警的數(shù)控機床的運行信息,并獲取了相同型號、相同PLC版本且正常運行的數(shù)控機床的運行信息。但由于數(shù)控機床的PLC運行狀態(tài)不同,因此不能簡單地直接將兩臺數(shù)控機床的PLC信息及數(shù)控系統(tǒng)的運行狀態(tài)進行對比,例如正常運行的數(shù)控機床正在自動換刀,而出現(xiàn)PLC報警的數(shù)控機床正在自動換臺,也就是說存在大量的干擾因素,因此這就需要借助數(shù)控機床的PLC運行狀態(tài)的大數(shù)據(jù)進行模糊匹配,找到最相匹配的PLC運行狀態(tài)進行對比,這樣就能很容易找到造成PLC報警的原因,如圖3所示。由圖3運行狀態(tài)對比可知,造成A0.6報警的原因是X0.7信號為0。
當(dāng)數(shù)控機床出現(xiàn)PLC故障,借助工業(yè)物聯(lián)網(wǎng)的在線智能診斷,并將診斷的結(jié)果發(fā)送到出現(xiàn)故障的數(shù)控機床中或者服務(wù)工程師的手機上,有助于服務(wù)工程師快速地解決故障。
圖3 PLC運行狀態(tài)對比
通過物聯(lián)網(wǎng)獲取數(shù)控機床的PLC運行狀態(tài)以及數(shù)控機床的位置狀態(tài),就能很容易地實現(xiàn)PLC的在線診斷。再通過工業(yè)物聯(lián)網(wǎng)獲取數(shù)控機床的NC參數(shù),就能實現(xiàn)數(shù)控機床故障的智能化在線診斷。我們不僅要借助工業(yè)物聯(lián)網(wǎng)獲取數(shù)控機床的運行信息做宏觀的數(shù)據(jù)分析,更要對其運行數(shù)據(jù)進行微觀的深入發(fā)掘,充分發(fā)揮工業(yè)物聯(lián)網(wǎng)的經(jīng)濟效益。