鄒益民,庹超超,査浩毅,李金葵(金陵科技學院網絡與通信工程學院,江蘇南京,210031)
基于Modbus協議的S7-200 PLC語音播報功能擴展
鄒益民,庹超超,査浩毅,李金葵
(金陵科技學院網絡與通信工程學院,江蘇南京,210031)
介紹一種基于Modbus協議的S7-200 PLC擴展系統,該系統采用單片機和科大訊飛TTS語音模塊為PLC提供語音播報功能。本文對Modbus協議,S7-200的Modbus-RTU通訊指令及單片機語音播報系統的控制方式等進行了較詳細的介紹, 并開發了一種基于S7- 200PLC實際應用環境的語音播報系統。文中給出了系統的詳細設計方案,可供同類系統的設計及應用提供借鑒。
Modbus協議;PLC;語音播報;單片機;TTS;語音合成模塊
PLC可編程控制器由于功能強、性價比高、可靠性高、擴展靈活、環境適合能力強及安裝維護方便等突出優點而在自動控制系統中得到廣泛應用。但在實際應用中,單獨使用PLC構建控制系統仍然存在某些不足:PLC的數據處理和管理能力較弱,也不能給用戶提供良好的人機交互界面。故在某些特定應用場合,若能將PLC與單片機系統相結合,構成功能靈活的擴展模塊,可大大豐富PLC的應用功能。ModBus協議是一種可靠而有效的工業控制系統通信協議,由美國莫迪康公司開發,現已被眾多的硬件廠商所支持并廣泛應用,通過ModBus協議可以方便地完成現場控制網絡的數據傳輸。
本文以應用廣泛的SIEMENS公司S7-200PLC為例,介紹一種以ModBus協議為紐帶,利用單片機及TTS模塊擴展PLC的語音播報功能,從而為S7-200 PLC用戶提供一個語音播放平臺的應用實例。系統設計方案是:采用單片機及TTS構成語音播放單元,而S7-200 PLC則通過Modbus通信方式控制該模塊以實現即時的語音播報功能。由于ModBus支持多機網絡,故若本系統應用于ModBus組網模式時,多個位于不同地理位置的PLC與語音模塊可相互選擇。一個PLC可控制多個語音模塊;同理,一個語音模塊也可為多個PLC服務,從而形成一個語音播報網絡系統。
Modbus協議是全球第一個真正用于工業現場的總線協議,以主從方式工作,主從設備間的通信以請求/應答模式進行。主設備使用請求消息中的功能代碼通知從設備要執行何種功能,而請求信息中的數據段則給出了所需功能的附加消息。從設備則只允許產生應答消息,以回應主設備指定的功能信息。由于請求、應答消息中均含有必要的錯誤檢測域,從而使Modbus協議具有極強的差錯檢測能力。Modbus串行協議支持ASCII和RTU兩種信息傳輸模式(另一種Modbus TCP基于TCP/IP協議),在相同的數據傳輸波特率下,RTU模式比ASCII模式具有更高的傳輸效率,但也導致其通訊處理過程相對復雜。本系統選用傳輸效率較高的Modbus RTU作為傳輸模式。
Modbus-RTU 模式消息幀由起始定界、地址字段、功能字段、數據字段、CRC校驗字段及結束定界組成。其地址字段表示指定的從站地址;代碼字段則表示從站應執行的具體功能;數據字段表示代碼字段的附加信息;CRC校驗則用來檢測通訊報文有無錯誤。值得注意的是,在Modbus RTU消息幀傳輸時,協議規定在消息幀結束前每字節間不應有超過1.5個字符時間的“字符間隙”,而發送新消息幀則需與舊幀間隔3.5個字符時間“幀間隙”以上,否則將判斷為傳輸出錯。
S7-200系列PLC的ModBus通信方式僅支持ModBus-RTU模式下的01~06以及15和16功能碼。其主站及從站通信指令各不相同,分述如下:
2.1S7-200 系列 PLC 的主站通信指令
S7-200的主站指令庫支持端口0~1,可用的通訊指令包括:
● MBUS_CTRL指令格式
用于組態 PLC為ModBus-RTU主站,用戶還可定義通訊波特率、奇偶校驗及主站等待從站響應的超時值,指令還提供完成標志及錯誤代碼輸出。詳細格式如下:

● MBUS_MSG指令格式
用于讀寫從機數據。用戶可指定從設備地址、數據讀/寫方向、從站寄存器地址、待讀寫的從站數據元素(位或字)數目及主PLC存放相關數據的V存儲區首地址,指令還提供完成標志及錯誤代碼輸出。詳細格式如下:

2.2S7-200 系列 PLC 的從站通信指令
S7-200的從站指令庫僅支持端口0,可用的通訊指令包括:
● MBUS_INIT:
組態 PLC為ModBus-RTU從站模式,用戶還可定義從站地址、通訊波特率、奇偶校驗、延時時間、最大開關輸入輸出點數、最大模擬量輸入點數、最大保持寄存器字數量、保持寄存器區起始地址等;指令還提供完成標志及錯誤代碼輸出。詳細格式如下:

● MBUS_SLAVE:
用于服務來自ModBus主站的請求,必須在每個循環周期都執行,以便檢查和響應ModBus主站的請求,指令還提供完成標志及錯誤代碼輸出。詳細格式如下:

3.1系統總體結構設計

圖1 . PLC語音播報系統總體框圖

圖2 . 單片機語音模塊硬件設計圖
系統的整體結構如圖1所示,S7-200 PLC與單片機語音播報系統通過RS485連接。單片機語音系統的硬件電路則主要包括單片機、語音合成模塊、LCD顯示模塊,按鍵模塊、RS485電平變換模塊、電源模塊等。
單片機語音系統的硬件部分電路設計可參見圖2,由AT89C51,XF-S4240語音模塊,音頻放大器,喇叭等組成。單片機利用軟件仿真SPI接口控制XF-S4240實施語音合成,隨后由LM386完成音頻放大后推動喇叭發音。本設計中另使用一片點陣式LCD作為系統的顯示輸出,配合4x4 薄膜鍵盤,為系統提供簡易的人機交互接口,并可在必要時作為PLC的一種輔助人機接口使用。
3.2單片機MODBUS-RTU通信功能實現
由于AT89C51單片機與PLCModbus串口分別采用標準TTL信號及RS-485信號電平,故系統中使用了一片MAX485進行電平轉換。由于RS-485采用半雙工模式,故單片機還需另行分配一個IO引腳
P1.0以控制MAX485的傳輸方向,從而避免因多個串行接口同時進入發送狀態而導致通訊出錯。
數據報文的正確定界及編解碼是單片機Modbus通訊協議開發的關鍵任務。前者可借助單片機定時中斷以便對Modbus RTU協議規定的字符間隙及幀間隙進行準確判斷;后者則又包括報文接收/CRC校驗/報文解析以及報文裝配/附加CRC校驗/報文發送等過程,報文的串口收發采用中斷方式以滿足實時性需要。相關的設計簡述如下:
由于單片機主頻為11.0592MHz,本系統Modbus串行接口的波特率設計為9600bps,則可將定時器0設置為每1/9600bps≈104μs產生一次中斷,恰與通訊的位速率一致。由于每字符信息包括1個起始位,8個數據位及1個停止位共計10位,故可分別用閾值15及35對Modbus協議中字符間1.5字符間隙及數據流間3.5字符間隙進行準確監測。
在定時中斷服務程序中,以位速率累計串口收到數據的時間間隔值,該值在每次接收到新的信息時清零,這樣該值實際代表了相鄰接收字符之間的時間間隙,由此即可對字符間隙及幀間隙作出準確判斷。
使用串口中斷用以實現Modbus串行數據的收發操作。若發送中斷有效且末發送完畢,則發送下一字符信息;若接收中斷有效,則首先判斷是否與上一字符間隙超過3.5字符,若是則代表上一幀信息接收完畢,可進行后續的數據解碼操作;若發現與上一字符間隙為1.5~3.5字符,則按Modbus協議表明出錯,應丟棄已接收的信息,此時可將接收指針清零;若與上一字符間隙小于1.5字符,則判斷為正常連續字符,可正常接收本幀的后續字符。本系統設計中以S7-200 PLC為Modbus通訊主站,以方便PLC控制語音模塊。故單片機還須根據Modbus協議完成對PLC數據請求包的接收、解析及響應包的裝配、發送等功能。
3.3PLC ModBus-RTU通信協議設計
PLC與單片機語音模塊的通信協議采用ModBus-RTU協議。S7-200 PLC工作在主站模式下,使用MBUS_CTRL及MBUS_MSG指令通過V存儲區向單片機發送語音文本信息或查詢單片機的狀態信息,單片機在接收到合法的信息幀后將給出適當的響應信息。為擴展方便,協議支持多個PLC通過RS485連網方式向一個或多個單片機模塊發送語音播報命令。
3.4語音播報功能實現
語音合成技術(TTS)被用于將文字信息轉化為語音信息,以使人們獲取信息的方式更加豐富和自然。本系統中選用科大訊飛的XF-S4240嵌入式中文語音合成模塊。該模塊支持GB2312、GBK、BIG5及UNICODE四種內碼格式的中文文本,同時提供英文字母的合成。
語音合成程序的運行步驟是:單片機首先判別語音合成模塊是否處于就緒狀態,若是,則依次發送幀頭、字節總數、語音合成命令碼、語音合成格式控制碼及待合成文本,語音模塊將隨后依所設命令完成TTS轉換及語音播報。
3.5單片機軟件程序設計
程序首先對單片機各IO端口、定時器、串行口、中斷系統等外部設備進行初始化,隨后進入工作循環。等待PLC通過ModBus協議發送的播報信息及控制命令,返回應答信號,并將相關信息送TTS模塊以語音方式播報;之后讀取用戶按鍵信息,完成相關功能操作,最后根據需要刷新LCD顯示。
PLC在工業控制應用廣泛,但其人機接口及數據運算功能仍然相對薄弱,若配以功能靈活的單片機系統,采用ModBus-RTU協議進行相互通訊,則可方便地為PLC擴展各種增強功能。本系統利用上述技術成功地實現了單片機與S7-200PLC之間的ModBus通信,并為PLC擴展了語音實時播報功能,該系統已被應用于本校實訓室小型PLC控制實驗裝置之中。通過PLC功能擴展一方面開拓了學生的知識面,另一方面為學生提供學習與操作的提示信息,有助于學生對PLC控制系統、單片機軟硬件系統及ModBus協議的學習與認識。應用實踐表明,該系統可靠性高、成本低,可獲得較好的應用效果。由于多數主流PLC支持ModBus通訊,故本系統的設計思路也可為其它PLC的功能擴展提供借鑒。
[1] 張潔,馬鳳銘,徐穎. 基于MODBUS協議的單片機與S7-200PLC串行通信的實現[J]. 鞍山師范學院學報,2013,(4).
[2] 李振東. Modbus協議的工業PLC監控儀表設計[J]. 單片機與嵌入式系統應用,2012,(4).
[3] 顧海勤,楊 奕,全 毅,馬 躍. 基于 MODBUS 協議的智能儀表與 PC 機雙向通訊設計[J]. 儀表技術與傳感器,2013,(12).
[4] 何躍智. MODBUS RTU通訊協議在S7-200中的應用[J]. 可編程控制器與工廠自動化,2006,(3).
[5] 何海珍,李欣,周勇,晏巍,張建國. CRC-16算法及其單片機實現[J]. 工業控制計算機,2012,(7).
[6] 朱文杰.S7-200 PLC 編程設計與案例分析[M].北京:機械工業出版社,2010.
[7] Siemens AG.S7-200可編程序控制器系統手冊[M]. 北京:迪科普銳機電技術公司,2008: 348-362.
[8] 鄒益民. 基于TTS模塊的語音播報紅外數字測溫計設計[J].世界電子元器件,2013,(2).
[9] 朱志偉,劉湘云. 基于SYN6288的TTS語音系統[J]. 單片機與嵌入式系統應用,2012,(9).
鄒益民,(1963年出生),男,2006年畢業于北京理工大學自動控制系,獲得博士學位,教授;主要研究方向:控制理論與工程,導航與制導,圖像處理,模式識別。
Extend S7-200 PLC Voice Broadcast Feature Based on Modbus Protocol
Zou Yimin,Tuo Chaochao,Zha Haoyi,Li Jinkui
(College of network and communication engineering,Jinling Institute of Technology,Nanjing,Jiangsu 210031)
Introduce of a S7-200 PLC expansion system based on Modbus protocol,which could be used to extend PLC’s voice broadcast feature using SCM and IFLYTEK TTS module.In this paper,detailed descriptions about the Modbus protocol and the S7-200 communication instruction for Modbus-RTU,and also the control method of SCM voice broadcast system were presented. A voice broadcast system based on S7-200PLC actual application was developed. This paper also described the detailed system’s schemes and could provide reference for the design and application of similar system.
Modbus protocol;PLC;Speech broadcast;SCM(Single Chip Microprocessor);Text To Speech;Speech synthesis module
TP23 TP274
A