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