利用RS-485總線髙速遠距離傳輸抗干擾能力強、多點互聯的特點,實現傳統地磅測試儀的升級換代,發揮集中管理、分散控 制的優勢。以AT89S52應用系統作為下位機,完成具體測控任務;計算機作為管理級,對系統進行全面監控和管理。引入RS-485總 線的分布式測控系統,簡化了傳統測控系統結構,既便于維護和提髙工作效率,又為信息化建設奠定良好基礎,該方法在工業測控領 域具有廣泛的應用價值。
0.引言
地磅計量是企業物資計量的主要手段之一,但在實 際工作中其管理水平和方法不夠健全,尤其是技術手段 落后,傳統測試儀基于手工操作,因而測量精度和工作 效率難以滿足現實需要。基于手工管理模式,不僅易滋 生人為作弊現象,而且各部門不能充分共享數據,使大 量數據的統計、匯總、查詢及監管等方面效率低下,影響 企業的效益和發展。為此,稱重數據的自動采集、處理 是完善監控的重要一環,不僅為企業建設具有自身特色 的管理現代化的信息網絡提供了可靠數據,也促進新的 生產和管理理念形成,從而提升企業競爭力。
RS-485總線收發器采用平衡發送和差分接收,具 有靈敏度高、可靠性高、傳送距離遠、速度快、抗干擾能 力強等優點,在工業生產中得到了廣泛應用。因此, 構建RS-485總線型分布式監控系統具有很高的實用 價值。
1.分布式監控系統硬件設計
1.1概述
RS-485總線型分布式監控系統以計算機作為上 位機,以單片機為核心的測控儀作為下位機。為確保 系統工作的可靠性和冗余性,所設計分布式系統采用 雙方案方式,即上位機工作方案和測控儀工作方案。 以上位機工作方案為主,測控儀工作方案為鋪,當分布 式系統某通道或通信出現故障時,各測控儀可自主工 作。
1.2分布式系統總體設計
根據分布式系統工作方式要求和硬件組態設計思 想,采用分層體系結構。系統上位機選用具有高可靠 性和適用于工業環境的IPC ( industrial personal can - puter)作為管理站,自主開發測控儀,既能獨立完成測 試工作,也提供RS-485通信接口,在IPC的RS-232端 口加一塊 M0DEL1102 RS-232/RS-485接口轉換模塊, 組成RS-485網絡分布式監控系統。
分布式監控系統能確保當某個測控儀通道出現故 障時,不影響上位機對其它測控儀監控;當上位機或網 絡出現故障時,也不會影響現場控制級正常工作。綜合汽車地衡計量分布式監控系統的實際需要,由測控 儀和傳感器構成測控通道,系統硬件總體結構如圖1 所示。
1.3測控儀設計
測控儀設計主要考慮兩方面的要求:一方面根據 系統總體雙工作方案要求,測控儀作為監控系統的下 位機,需要具備通信接口 ;另一方面針對測控儀的前向 輸入通道傳感器動態范圍大、會產生振動干擾等特性 的需要,要求信號調理模塊的放大倍數能根據輸入信 號的大小自動調整。所設計地磅測控儀系統硬件 結構如圖2所示。
1. 3. 1測試模塊
測量電路模塊除AT89S52外,核心電路為信號調 理及采集電路。其主要作用是把稱重傳感器信號轉換 為AT89S52能接收的CMOS數字電平,利用高性能的 模數轉換器,以實現稱重測試的工作。
1. 3. 2輔助模塊
利用具有fC總線的鐵電存儲器FM24C32解決 分布式系統故障時,啟用單臺測控儀工作方案及時保 存所測試的數據,待分布式系統正常工作后,及時把所 儲存數據傳送到上位計算機中⑴。利用具有fC總線 的時鐘芯片DS1307進行時間設置和測試時間標志。 利用具有fC總線的ZLG7290鍵盤和顯示器控制芯 片,根據測控儀的操作要求,設置按鍵的功能,主要包括時間、批號設置的數字鍵,測試、查詢、打印和數據 上傳等功能鍵;顯示信息主要包括測控儀工作狀態和 有關測量結果的數據。利用8255芯片實現對微型打 印機的控制,解決單臺測控儀工作方案啟用時所需的 輸出數據。MAX487芯片用于實現RS-485的串行通 信,構成以計算機為核心的RS-485總線型分布式測控 系統。
2.系統軟件開發
系統軟件開發主要包括測控儀和上位機監控軟件 開發工作。測控儀以AT89S52為核心,選用方便實 用、高效的KeilC51軟件作為開發平臺。上位機軟 件開發工具選用功能豐富和應用方便的VB編程軟 件。
2. 1上位機監控軟件開發
上位機的軟件開發工作主要圍繞三個方面:①建 立企業所需的數據庫,為地衡工作的有效監控提供充 分的數據保障;②計算機管理模塊規劃和開發工作,人 機交互接口立足于簡便、實用和友好的基本原則,并充 分發揮計算機軟、硬件資源豐富的優勢;③計算機與測 控儀的通信,實現信息正常傳輸工作。在完成人機界 面的窗體設計基礎上,利用模塊化和面向對象編程思 想,進行實質性地監控程序開發工作。下面對上位機 功能模塊的規劃和上、下位機通信模塊的工作原理作 簡要說明。
2 .1. 1功能模塊
計算機監控主要利用上位機對各控制器工作參數 實現全面監視和控制,在上位機監督和指導下完成稱 重測控工作。根據系統的功能需求和VB軟件的特 點,規劃上位機功能模塊,同時上位機中的功能模塊建 立在通信程序和數據庫及數據表的基礎之上,監控軟 件功能模塊規劃如圖3所示。
上位機功能模塊的主要作用如下:
①系統管理子模塊。完成用戶的增減、注冊、密 碼的設置、完成系統初始化處理、系統自檢、系統退出 功能。
②監控管理子模塊。實現計算機與測控儀通信, 定時采集工作參數,并直觀顯示所測試數據,同時向測控儀發送控制命令,并實現系統故障診斷及處理。
③瀏覽打印子模塊。用于查詢和打印測試參數, 便于進行分析和統計。
④幫助子模塊。介紹軟件的使用方法、步驟和注 意事項。
2. 1. 2上位機與測控儀通信模塊
上位機與測控儀通信是RS-485總線型分布式測控 系統的關健,利用AT89S52的串行通信口及MAX487芯 片的接口電路實現與IPC通信。AT89S52單片機提供 與計算機或其他串行設備連接的異步通信口,而VB提 供便于圖形化接口的串口操作控件-一Mscomm161, 并配合VB中的TMER控件的定時功能,周期性地從 串行口上取數據,并進行數據處理。
由AT89S52所組成單片機應用系統,即測控儀需 要把工作參數和工作狀態及時傳遞到上位機中,同時, 上位機利用其友好的界面,對測控儀進行初始化等工 作,以實現兩者雙向通信。通信除了硬件電路外,還需 統一兩者的通信協議。由于RS-485是一種半雙工通 信協議,發送數據和接收數據共用同一物理通道,在任 意時刻只允許一臺網絡終端設備處于工作狀態,若有 一臺以上的設備同時發送數據,則會產生總線沖突,使 整個系統通信癱瘓。本系統采用主從式查詢方式,即 工控機給出某一下位機的地址碼,向所有下位機都發 出詢問,當某一下位機接到的地址碼與本機地址碼相 符時,響應指令,發送數據,工控機接收數據,否則不 響應也不發送數據。其通信數據格式包括呼叫數據 幀、發送數據幀、接收數據命令幀和應答幀[7]。如圖4 所示即為計算機從AT89S52單片機接收數據過程示 意圖。
上位機讀取某測控儀數據主要程序模塊如下:
Private Function RD_cky( String zh)
Dim CMD, ADR,⑴,znwkS1 , SN , TXD AS String Dim LENS, BCC , BCC1, I A s Integer Dim ckcs_sz( 10) As Single
//用于存放從測控儀中讀回參數值 CMD = ?F1H ” //通信申請
ADR =zh //zh=01第1臺測控儀的站號地址
CO = EOT +ADR + ENQ //連接01站號的字符串
MSComm 1. Oulput =CO
//向測控儀發送連接命令字符串
Do
DUMMY =DoEvents()
//等待接收測控儀回答的字符串 Loop UntilMSCcmm 1. InBuffeiCount> =26 RS=MSComm 1. input //讀取接收緩沖區數據
cky_ydc =M id $ (RS, 2,2) //取測控儀應答字符串 f cky?dc = 187 Then //判斷通信是否正確
x =Msg3ox( 信連接錯誤丨 ” ,16) : Exit Function else
CMD = CMD +ETX : LENS =LEN(CMD) : BCC =0
//生成BCC校驗和
FOR I=1 TO LENS
SN =MD$ (CMD, I, 1) :BCC =BCC +ASC(SN)
N EXT
BCC =BCCMOD 128 : BCC =CHR$ (BCC)
TXD =STX +CMD +BCC
//發送包含校驗和的新命令字符串 MSComm 1. Oulput = TXD
//向測控儀發送連接命令字符串
Do
DUMMY =DoEvents()
//等待接收測控儀回答的字符串 Loop UntilMSComm 1. InBuffeiCount> =26 RS=MSComm 1. input //讀取接收緩沖區數據 LENS =LEN (RS) : BCC1 =0 FOR I=2 TO LENS
SN =MD$ (RS, 1,1) :BCC1 =BCC1 +ASC(SN)
N EXT
IF BCC < >BCC1 THEN
x =Msg3ox( “通信連接錯誤丨 ” ,16) : Exit Function End If
FOR I=5 TO LENS
//分解讀回的字符串,提取所需參數值到數組 ckcs_sz(I- 4) =MD$ (RS, I, 1)
// ckcs—s數組存放從測控儀中讀回的參數值
N EXT End If
Call Disp lay () //調用顯示模塊,把提取的有效 數據,顯示于上位相的工作界面中
End Function
上述程序段主要包括定義所需的變量、拼接發送字符串、通信的建立、數據校驗碼的產生以及有 效數據的提取,為后續進一步處理和應用奠定了基 礎。
2 .2測控儀軟件開發
測控儀軟件開發采用結構化和模塊化設計方 法,分為系統監控程序和中斷服務程序兩大部分。 其中每一部分又由許多功能子模塊構成。監控程序 主要包括初始化模塊、測試與診斷模塊、顯示模塊和 鍵盤掃描與處理等模塊。為提高系統工作的實時 性,將A/D轉換、數據處理和串口通信等工作均安排 在中斷服務中執行,下面對測控系統主要模塊作簡 要說明。
2. 2. 1 故障診斷程序模塊
為確保測控儀正常可靠地工作,在測控儀上電 時,運行開機自診斷程序,檢測AT89S52中功能部件 和應用系統外圍電路工作情況;主要包括RCM自檢、 RAM 自檢、定時器、A/D 通道、FM24C32、DSN307、 ZLG7290等模塊的自檢工作。利用自檢程序模塊, 輸出直觀的工作狀態信息,為系統維護奠定良好基 礎。
2.2. 2 鍵掃描和顯示處理模塊
測控儀的人機接口主要體現在鍵盤、顯示和報警 輸出方面。在自檢階段,對于不同檢測模塊的不同情 況,分別顯示不同的字符信息;在實時監控正常工作狀 態時,其顯示內容為所測試參數的大小;在鍵盤操作 時,顯示其鍵盤操作內容,如出現報警,其顯示器輸出 相應報警項的提示信號。
鍵盤按鍵包括數字鍵和功能鍵,數字鍵主要用來 校正時間、設置報警上、下限和批號輸入;功能鍵主要 包括批號設置、日期設置、通道選擇、測試啟動、查詢、打印、數據存儲、數據上傳和報警清除等功能鍵。
3.結束語
本文介紹了一種基于RS-485總線的數據采集和 控制系統,以及VB語言在開發上位機軟件中的應用。 在該測控系統的應用中,主控計算機與各測控點的單 片機之間采用了 RS-485串行通信總線,使測控網絡的 連線簡單、傳輸距離長、信號傳輸穩定可靠,取得了良 好的控制效果。
總之,本方案一方面采用模塊化設計,體現了分布 式控制的思想,便于維護和擴展;另一方面,通過建立 完善的軟件握手信號及軟硬件的抗干擾措施,保證了 系統間通信的穩定性及數據傳輸的準確性。因此,系 統具有很高的性價比。基于RS-485總線地磅分 布式測控系統采用上位機監控和常規測控儀工作方 式,不僅功能完善實用,而且具有友好的人機界面,系 統運行靈活高效。