田陽杰,易亞軍,秦 龍
(武漢華中數控股份有限公司,武漢 430223)
隨著電力電子技術的不斷突破與越來越多的高性能微處理器在控制系統中的應用,伺服驅動系統也向著智能化方向發展。智能化的一個重要的特點表現為伺服驅動系統具備良好的人機交互界面,用戶可以實時修改參數、監視系統的運行狀態[1]。因此本文設計了一款通過RS232串口總線實現與伺服驅動系統通信的上位機,通過Modbus上層協議實現對伺服參數設置與狀態顯示等功能。實現了上位機與伺服驅動系統間高效、可靠的通信。
Modbus協議是一種單主/多從的通信協議,通信總是由主設備發起,從設備間不能相互通信。Modbus可以作為應用層協議用于TCP/IP網絡上,也可以用于串行鏈路連接。后者存在2個變種,分別是ASCII模式與RTU模式。ASCII模式是每個8 bit的字節都將作為2個ASCII字符發送,而RTU模式是直接用原本的十六進制數據進行傳輸[2]。相對來說,RTU模式的傳輸速率更高。且DSP是直接識別原本的十六進制數據,所以采用RTU模式無疑更為合適。
為了適應多種傳輸模式,Modbus在協議數據單元(PDU,Protocol Data Unit)上引入附加域,組成了應用數據單元(ADU,Application Data Unit),以實現完整而準確的傳輸。PDU與基礎通信層無關,包括功能碼與數據,功能碼占一個字節,數據則根據具體的情況而定。附加域包括地址域和差錯校驗,與基礎通信層有關。在使用RS232串口通信、RTU模式下,地址域占1個字節,地址范圍是1~247,差錯校驗為CRC校驗,占2個字節[3~5]。通用Modbus幀結構如圖1所示。
圖1 通用Modbus幀結構
在RTU通信中,Modbus報文放置在已知起始點和結束點的消息幀中,必須明確報文的起始點與結束點,由于RS232串口通信時單字節發送,數據域的字節數有很大的不確定性,所以還要能夠檢測報文的完整性,且能夠設置錯誤標識。
在實際使用時,設備不斷地偵測網絡總線,計算字符間的停頓間隔時間,判斷消息幀的起始點。從接受符合設備的地址的報文開始,到最后一個傳輸字符結束,間隔至少3.5個字符停頓時間標志著此消息幀的結束,而另一個消息可在停頓后開始。在一幀報文的傳輸過程中字符流必須是連續的,且字符間空閑間隔要小于1.5個字符時間,否則認為此報文不完整,將被丟棄。RTU消息幀的格式如圖2所示。
圖2 Modbus RTU幀式
交流伺服驅動單元實現了交流伺服電機的位置、速度、轉矩閉環伺服控制,可靠性高、性能優良,是本文上位機監控系統的監控對象。且提供關于速度、位置、轉矩的基本參數,同時設有二十多種狀態顯示用于觀察所選擇方式下的伺服驅動單元的狀態信息。交流伺服單元設有RS232接口,利用RS232串行總線將HSV_190E交流伺服驅動單元與計算機連接上,用Modbus協議完成雙向通訊,構成一個完整的交流伺服驅動系統上位機監控系統,結構圖如圖3所示。
本文交流伺服驅動單元接口方式為RS232,異步,全雙工;8位數據位,無奇偶校驗,2位停止位,波特率為57 600 bit/s。
上位機與交流伺服驅動單元進行通訊的過程中采用了3種數據幀格式,分別是命令幀、狀態幀、錯誤幀。命令幀為交流伺服驅動單元從上位機接受到的命令,狀態幀是伺服單元在收到命令幀并將其處理以后返回給上位機的狀態數據。當伺服驅動單元不能夠正常的處理命令幀時,將返回給上位機帶有故障碼的狀態數據。具體的通信流程如圖4所示。
圖3 上位機監控系統結構
圖4 通信流程圖
上位機實現了伺服驅動系統的控制功能與顯示功能,不僅能直觀地顯示系統狀態及電機相關參數,還可以省去用戶在面板上的繁瑣操作,直接在參數界面對系統進行設置。本文使用Visual Studio 2012軟件編程平臺的Visual C#.NT語言來進行上位機的開發與設計[6~7],同時結合了zedGraph控件繪制速度指令、速度反饋、位置偏差、電流檢測等信號的實時曲線。zedGraph控件的兼容性好,曲線設計多樣實用。使用前需要在所用到的工程中引用zedGraph的動態庫文件。
設計時采用了模塊化設計的思想,各個功能模塊彼此獨立,減少了上位機軟件出錯的概率。整個上位機由登陸模塊、通信模塊、參數設置模塊、示波器功能模塊、參數自調諧模塊、位置抑制模塊、速度抑制模塊等組成。系統的軟件結構如圖5所示。
圖5 系統軟件結構圖
其中參數設置模塊、參數自調諧模塊、位置、速度抑制模塊集中體現了上位機對伺服單元的控制功能,示波器模塊則具備了顯示設備信息狀態的功能。
上位機不同模塊間對交流伺服驅動單元的控制過程類似,以參數設置模塊為例:在進行參數設置時,運行上位機軟件進入登陸界面,輸入登錄密碼進入軟件主界面。首先選擇與伺服單元相連的串口,選擇合適的波特率,點擊連接按鈕,串口打開成功以后,軟件下方狀態顯示“串口通信”,其他功能可選。電機進入參數設置,進入設置頁面如圖6所示。雙擊參數行,進行參數設置,設置完成后,上位機啟動通信模塊,通信模塊對設置的值進行命令幀封裝、發送,待下位機解析完成后對狀態幀接受、處理然后將返回的數據更新為選定參數的當前值。
圖6 參數設置頁面
上位機示波器模塊有觸發采樣與實時采樣兩個采樣模式。觸發采樣的過程與控制功能中的操作流程類似。實時采樣則采用了Timer模式,首先進行采樣配置,包括信號、IO口選擇、與采樣周期的設置,然后通信模塊向伺服單元發送封裝好的采樣配置幀,完成配置設定。點擊開始采樣,上位機將以設定的采樣時間周期性地向伺服單元發送指令,并對返回的數據進行解析后,以逐點連線并刷新的方法將曲線繪制于zedGraph控件上,完成當前選定信號的實時顯示。
本文所設計開發的上位機用于某交流伺服驅動單元對電機的調試,調試可在示波器功能中進行實時或者觸發采樣,繪制當前電機的反饋速度、位置偏差值、電流檢測值等波形圖。在參數設置中修改位置比例增益、速度比例增益、轉矩低通濾波器參數和陷波器參數來提高伺服響應性。如圖7(a)、(b)所示分別為指令速度200 r/min、位置比例增益為100 Hz、速度比例增益為50 Hz的觸發采樣與實時采樣圖,圖7(c)、(d)所示分別為位置比例增益為150 Hz、速度比例增益為100 Hz觸發采樣與實時采樣圖。對比發現伺服的響應性增加,電機速度波動減小。同時也驗證了設計達到了對伺服控制和顯示的需求,而且在長時間的調試過程中其可靠性也得到了驗證。
圖7 指令/反饋速度實時波形
上位機調試軟件連接方便,提供方便、便捷操作的調試功能,且采集數據信息豐富,滿足伺服系統各項運動狀態的監控。同時設計所采用的模塊化思想,便于該軟件的后期維護與功能添加。實際應用中也證明該軟件運行穩定、測試準確、人機界面友好,達到設計要求。