李大明 胡少林

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