APP下载

基于WPF的PLC语音控制系统研究

2019-01-08李大明胡少林

电脑知识与技术 2019年33期
关键词:人工智能

李大明 胡少林

摘要:工业自动化与人工智能相结合,使工业生产更加高效、可靠、智能地完成任务。目前人工智能主要体现在语音识别、人脸识别、大数据分析等多个领域;自动控制系统中的主要控制对象是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定位、在线云监控等智能特性,是智慧化新时代的需求,应当深入研究和开发更多新型的、便捷的控制功能。

猜你喜欢

人工智能
我校新增“人工智能”本科专业
人工智能与就业