李大明 胡少林
摘要:工業(yè)自動化與人工智能相結(jié)合,使工業(yè)生產(chǎn)更加高效、可靠、智能地完成任務(wù)。目前人工智能主要體現(xiàn)在語音識別、人臉識別、大數(shù)據(jù)分析等多個領(lǐng)域;自動控制系統(tǒng)中的主要控制對象是PLC,將人工智能引入到PLC控制中,研究意義和參考價值都很大。本文以WPF為例,探討如何開發(fā)用語音對PLC進行控制的桌面應(yīng)用程序。
關(guān)鍵詞:PLC;人工智能;語音控制;WPF
中圖分類號:了P311 文獻標識碼:A
文章編號:1009-3044(2019)33-0190-02
1國內(nèi)外研究現(xiàn)狀
工業(yè)4.0(Industry4.0),是基于工業(yè)發(fā)展的不同階段做出的劃分。按照目前的共識,工業(yè)1.O是蒸汽機時代,工業(yè)2.0是電氣化時代,工業(yè)3.0是信息化時代,工業(yè)4.0則是利用信息化技術(shù)促進產(chǎn)業(yè)變革的時代,也就是智能化時代。“中國制造2025”與德國“工業(yè)4.0”的合作對接淵源已久,2015年5月,國務(wù)院正式印發(fā)《中國制造2025》,部署全面推進實施制造強國戰(zhàn)略。工業(yè)4.0已經(jīng)進入中德合作新時代,中德雙方簽署的《中德合作行動綱要》中,有關(guān)工業(yè)4.0合作的內(nèi)容共有4條,第一條就明確提出工業(yè)生產(chǎn)的數(shù)字化就是“工業(yè)4.0”對于未來中德經(jīng)濟發(fā)展具有重大意義。雙方認為,兩國政府應(yīng)為企業(yè)參與該進程提供政策支持。
2研究內(nèi)容
信息化技術(shù)與計算機技術(shù)的飛速發(fā)展,使得工業(yè)自動化技術(shù)向全面智能化方向迅速邁進,從而更加高效、可靠、智能地完成工業(yè)生產(chǎn)。目前人工智能主要體現(xiàn)在語音識別、人臉識別、大數(shù)據(jù)分析等多個領(lǐng)域,目前對于工業(yè)生產(chǎn)而言,PLC有著極好的可靠性和穩(wěn)定性,是目前世界上進行工業(yè)自動化領(lǐng)域的主角,因此,將人工智能引入到PLC控制中,有著重要的研究意義和參考價值。接下來以WPF為例,探討如何開發(fā)一個可以用語音對PLC進行控制的桌面應(yīng)用程序。
WPF通過語音對PLC進行控制,主要需完成三個方面的內(nèi)容:1)WPF設(shè)計桌面應(yīng)用的界面;2)實現(xiàn)WPF與PLC的正常通信;3)正確配置語音云識別系統(tǒng)。以上三者之間的關(guān)系如圖l所示。
1)WPF設(shè)計桌面應(yīng)用程序界面
利用WPF軟件和XAML語法規(guī)則,設(shè)計符合要求的應(yīng)用程序界面,在本研究系統(tǒng)中,需要至少一個按鈕和一個文本輸入框:按鈕的作用是開啟和關(guān)閉麥克風語音錄入,并生成和保存聲音文件;文本輸入框的作用是顯示語音云識別的結(jié)果,方便測試;讀者可根據(jù)實際需要,添加更多的組件。
2)WPF與PLC的通信
該方面功能的實現(xiàn),需要確認受控PLC的品牌及型號,因為不同廠商的PLC對地址標定和通信協(xié)議內(nèi)容定義基本不同。例如,三菱PLC的串口通信雖然支持通用串口協(xié)議,但可被執(zhí)行的串口數(shù)據(jù)定義是[STX)+LLCMD)+[數(shù)據(jù)地址及需寫人的數(shù)據(jù)內(nèi)容]+[ETX]+[校驗碼],其中STX固定為02H,CMD為0/11718,分別代表讀操作/寫操作/置位/復(fù)位功能,輸入應(yīng)當為ASCH碼的形式,即為30H/31H/37H/38H,ETX為03H標定數(shù)據(jù)結(jié)束,校驗碼共兩位,為前面所有數(shù)據(jù)(16進制,且除STX外)相加的后兩位,并以ASCII碼的形式輸入,在符合上述語法規(guī)則的情況下,通過串口調(diào)試工具發(fā)送相應(yīng)指令,就能讀寫PLC數(shù)據(jù)進行相關(guān)監(jiān)控操作了,限于文章篇幅,數(shù)據(jù)訪問地址等詳細內(nèi)容參見三菱串口協(xié)議官方文檔。
通過以上案例不難發(fā)現(xiàn),在開發(fā)中復(fù)寫符合PLC的通信規(guī)則的方法工作量非常巨大,因為要兼容眾多品牌和型號,費時費力且bug很多,因此可以在項目中引入官方或第三方開發(fā)的集成庫文件,使用時直接調(diào)用即可。筆者推薦使用第三方庫文件HslCommunication.dll與PLC進行通信,具體實現(xiàn)如下:(1)下載了該組件DLL文件后,通過[項目]→→[添加引入]→[瀏覽]將組件引入工程,或者在NuGet管理器中輸入Install-Package Hsl-Communication指令在線將通信庫文件導(dǎo)人工程;(2)在代碼中通過using HslCommunication的方式引入包文件,就能與各種品牌與型號的PLC進行通信了。該組件目前開源,支持西門子、三菱、歐姆龍、松下、ABB等多種PLC與機器人,使用時通過連接函數(shù)建立與PLC的長連接(或短連接),再通過寫/讀方法對PLC進行控制,集成Modbus、以太網(wǎng)、Fetch等多種通信協(xié)議,非常適合學習與研究。
3)正確配置語音云識別系統(tǒng)
要實現(xiàn)通過語音控制PLC,那么就需要將語音轉(zhuǎn)換為文字,然后對文字進行轉(zhuǎn)義與解析,最后根據(jù)解析結(jié)果再決策出對PLC發(fā)送控制的方法,從而實現(xiàn)語音控制PLC的功能。實現(xiàn)這一模塊的功能,需完成以下內(nèi)容:
(1)語音錄入:在WPF中,通過usingNAudio.Wave引入語音錄入模塊,通過WPF中的按鈕觸發(fā)事件開始錄音(創(chuàng)建開始錄音方法StartRecord和結(jié)束錄音方法StopRecord),并將錄音文件命名為tee.wav。錄音格式理論上用pcm解析效果會更好,同時需要注意設(shè)置錄音格式mWavIn.WaveFormat:new WaveFormat(16000,16,1),該指令的功能是以16000的音頻進行聲音采集,如果不設(shè)置該屬性,語音將無法被解析,因為幾乎所有的智能AI系統(tǒng)對語音識別的要求都是音頻為16000,確保數(shù)據(jù)不失真且容量較小;
(2)申請智能AI系統(tǒng)身份驗證信息:以百度AI系統(tǒng)為例,通過申請新用戶并添加語音服務(wù),可獲得相關(guān)參數(shù),主要包括ApplD、API Key和Secret Key信息;然后下載官方提供的語音識別SDK包,程序中通過using Baidu.Aip.Speech指令導(dǎo)人語音識別功能,通過指令vat client=new Asr(APP_ID,API_KEY,Sc-cret Key)配置語音識別身份驗證,通過vat result=client.Recog-njZc(data,”pcm”,16000,options)獲得語音解析的結(jié)果,result即為解析結(jié)果;
(3)對文字進行轉(zhuǎn)義與解析:云語音系統(tǒng)反饋回的文字信息通常因為方言或發(fā)音不準等原因造成結(jié)果偏差很大,例如將“打開”翻譯成“大凱”,因此需要在將所有可能出現(xiàn)的誤解析結(jié)果進行轉(zhuǎn)義,轉(zhuǎn)義和修正為統(tǒng)一的正確結(jié)果;
(4)解析文字為PLC控制指令:將修正過的語句進行再解析,例如通過字符串操作指令,查找是否含有“打開”“置位”“接通”等關(guān)鍵詞,如果有,則調(diào)用HslCommunication庫中的置位操作,操作地址也需要用同樣的方法從字符串中解析出來,并以變量的形式作為PLC控制方法中的形參,完成PLC的讀寫操作。
通過以上四個步驟的操作,就能將語音輸入信號轉(zhuǎn)換為PLC的控制指令,并實現(xiàn)對PLC的語音控制功能了。當然,手動開啟與關(guān)閉錄音,或循環(huán)定時錄音的不同控制方式也是可以實現(xiàn)的,根據(jù)實際需求進行代碼編寫即可。
3結(jié)束語
總結(jié),對于工業(yè)4.0和中國制造2025的大趨勢、大環(huán)境而言,改變控制模式和監(jiān)控效果來滿足不同客戶需求,是信息化、智能化時代的新需求,因此為工業(yè)控制PLC等智能元器件添加語音控制、人臉識別、GPS定位、在線云監(jiān)控等智能特性,是智慧化新時代的需求,應(yīng)當深入研究和開發(fā)更多新型的、便捷的控制功能。