1 引言
工業自動化通用組態軟件——組態王軟件系統與最終工程人員使用的具體的變頻器或現場部件無關。對于不同的硬件設施,只需為組態王配置相應的通訊驅動程序即可。組態王支持的硬件設備包括:可編程控制器plc、智能模塊、板卡、智能儀表、變頻器等。工程人員可以把每一臺下位機看作一種設備,而不必關心具體的通訊協議,使用時只需要在組態王的設備庫中選擇設備的類型完成安裝即可,使驅動程序的配置更加方便。
窯爐監控系統是為滿足生產需要,減少能耗,提高效率而設計的,它的實現必須要借助一定的軟件及硬件條件,通過變頻器控制風機從而控制窯內多個點的溫度及通風量,保質保量的完成出磚要求。因此,對變頻器的監控就顯得十分重要。
窯爐實時監控系統以組態王畫面為主要運行畫面,首先在組態王界面上對被監控系統的參數。進行設置,然后起動,在組態王的界面上可以動態。顯示下位機的運行狀態、測量參數、作業位置以及完成對多個變頻器具體性能指標的測試等。由于組態王只提供這類變頻器的驅動程序,沒有提供其通訊協議,因此在功能并不很強大的組態王內部直接開發變頻器的通訊協議是有較大難度的。
2 c++ builder作為后臺間接實現組態王與變頻器的通訊
本文采取的方法是:利用c++ builder 提供的串行通訊功能,實現與變頻器的通訊,再利用bcb的dde功能完成組態王與c++builder之間的動態數據交換。這樣就把從變頻器采集到的外部信號通過c++builder間接動態地顯示在組態王界面上。其系統的結構圖如圖1所示。
3 c++ builder與變頻器之間串行通信的實現
串行通訊 (serial communication)指的是兩個欲交換信息者的信息流動,其信息流動的方式是一個位接一個位,有順序的由一端向另一端流動。帶異步通訊適配器的pc機與變頻器只有滿足如下條件,才能互聯通信:帶有異步通訊接口的變頻器與帶異步通訊適配器的pc機互聯;雙方采用的總線標準一致,否則要通過“總線標準變換單元”變換之后才能互聯;雙方的初始化、波特率、數據位數、停止位數、奇偶校驗都相同;要對變頻器的通訊協議分析清楚,嚴格的按照協議的規定及幀格式編寫pc機的通訊程序。變頻器中配有通訊機制,一般不需要用戶編程。pc機與艾默生變頻器不能直接連接,要通過電纜進行rs232、rs485的變換。
3.1 c++ builder與變頻器的通訊協議
協議是一系列的定義了計算機應該怎樣管理通信的規則。協議可以規定數據應該以什么格式進行傳遞和每個節點在什么時間以及以什么方式進行傳遞。除了數據通道以外,一個連接可以使用其它線線路來表示什么時候一個發送者有數據要發送,什么時候一個接收者能夠接收新數據或者其它控制或狀態信息。#p#分頁標題#e#
3.2艾默生變頻器的通訊協議
變頻器通訊協議為modbus協議,除了支持常用的寄存器的讀寫外,還擴充了部分命令對變頻器功能碼進行管理。modbus協議同時支持rtu模式和ascii模式,本文采用rtu模式。對應的幀格式如圖2所示。
3.3 c++ builder中通訊協議的實現
在c++builder中mscomm控件可以采用輪詢或事件驅動的方法從端口獲取數據。這里采用的是事件驅動的方法。就是在一個事件發生的時候,讓程序自動的跳到一段程序。該控件的oncomm事件執行這個功能。oncomm程序負責對諸如在串口的硬件中斷或者一個軟件緩存的計數器到達了一個觸發值這樣的事件時做出反應。在bcb的classwizard中為新創建的通信控件定義成員對象,通過該對象可以對串口屬性進行設置。通過設定其settings、commport、inputmode、handshaking、portopen屬性來實現設定bcb的通訊協議。這里設定settings屬性為:9600,n,8,1,即該協議的波特率為9600,無奇偶校驗,每個字符的數據位為8位。
轉載請注明出處。