基于RS485總線的監(jiān)控系統(tǒng)研究與設(shè)計(jì)
3. 2 USB轉(zhuǎn)RS485協(xié)議轉(zhuǎn)換器
USB 轉(zhuǎn)RS485 協(xié)議轉(zhuǎn)換器是一款即插即用型的協(xié)議轉(zhuǎn)換器, 完全兼容U SB ( Universal Seria l Bus)Rev: 2. 0; 支持任何波特率、數(shù)據(jù)位、停止位、數(shù)據(jù)收發(fā)時(shí)間間隔等參數(shù), 是一款自適應(yīng)的協(xié)議轉(zhuǎn)換器。
支持RS- 232 /485界面, 2Mbps以上數(shù)據(jù)傳輸速率。
支持自動(dòng)握手協(xié)議; 支持遠(yuǎn)程喚醒和電源管理; 支持USB總線直接取電, 無(wú)需外接電源( DC 5V) ; 驅(qū)動(dòng)程序分二次確認(rèn), 第一次為芯片驅(qū)動(dòng), 第二次為I /O 端口驅(qū)動(dòng), 為同一目錄下的驅(qū)動(dòng)程序即可完成。
4 監(jiān)控系統(tǒng)的軟件設(shè)計(jì)
監(jiān)控系統(tǒng)的軟件系統(tǒng)采用Borland C++ Builder 6設(shè)計(jì)開(kāi)發(fā), 通過(guò)其功能強(qiáng)大的圖形化控制界面, 及SPComm控件在串行口下編程, 采用Modbus協(xié)議,通過(guò)USB 轉(zhuǎn)RS485協(xié)議轉(zhuǎn)換器, 很好地實(shí)現(xiàn)了上位機(jī)與PID調(diào)節(jié)儀表的通訊功能, 從而可以方便的通過(guò)對(duì)上位機(jī)監(jiān)控系統(tǒng)界面的操作, 實(shí)現(xiàn)對(duì)生產(chǎn)線上各個(gè)分區(qū)儀表的參數(shù)監(jiān)測(cè)與遠(yuǎn)程操作控制。
該軟件系統(tǒng)主要包括三部分: 鋼制品生產(chǎn)線上罩式爐設(shè)備的溫度監(jiān)測(cè)系統(tǒng), 數(shù)據(jù)庫(kù)系統(tǒng), 以及PID調(diào)節(jié)儀表的讀寫(xiě)數(shù)據(jù)系統(tǒng)。
4. 1 Modbus通信
標(biāo)準(zhǔn)的Modbus口是使用與RS - 232C 兼容的串行接口, 它定義了連接口的針腳、電纜、信號(hào)位、傳輸波特率、奇偶校驗(yàn)。控制器能直接或經(jīng)由Modem組網(wǎng)。
控制器通信使用主- 從技術(shù), 即主設(shè)備能初始化傳輸(查詢)。從設(shè)備根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。無(wú)論主設(shè)備查詢還是從設(shè)備響應(yīng), 每個(gè)Modbus幀都包括地址域、功能域、數(shù)據(jù)域、錯(cuò)誤檢測(cè)域。Modbus通信有兩種模式: ASC II模式和RTU 模式。相對(duì)于ASC II模式, RTU 模式在同樣的波特率下, 可比ASCII模式傳送更多的數(shù)據(jù)。
使用RTU模式, 消息發(fā)送至少要以3. 5個(gè)字符時(shí)間的停頓間隔開(kāi)始。整個(gè)消息幀必須作為連續(xù)的流傳輸。如果在幀完成之前有超過(guò)1. 5個(gè)字符的停頓時(shí)間, 接收設(shè)備將刷新不完整的消息并假定下一個(gè)字節(jié)是一個(gè)新消息的地址域。同樣的, 如果一個(gè)新消息在小于3. 5個(gè)字符時(shí)間內(nèi)接著前個(gè)消息開(kāi)始, 接收的設(shè)備將認(rèn)為它是前一個(gè)消息的延續(xù)。這將導(dǎo)致一個(gè)錯(cuò)誤, 因?yàn)樵谧詈蟮腃RC 域的值不可能是正確的。一個(gè)典型的消息幀如表1所示。
表1 RTU消息幀
PID 調(diào)節(jié)儀表采用Modbus- RTU 模式進(jìn)行上位機(jī)通訊, 協(xié)議格式為: 8個(gè)數(shù)據(jù)位、1個(gè)停止位、無(wú)校驗(yàn)位, 發(fā)送接收數(shù)據(jù)都是以十六進(jìn)制格式進(jìn)行。
發(fā)送數(shù)據(jù)格式如表2所示。
表2 發(fā)送數(shù)據(jù)格式
其中, 參數(shù)的通訊地址用一個(gè)字節(jié)表示時(shí), 對(duì)應(yīng)A2位置, A1默認(rèn)為00H; 03、04指令均為讀命令, 其中04對(duì)應(yīng)讀取的數(shù)據(jù)不可寫(xiě)入, 03與06 指令對(duì)應(yīng)參數(shù)地址, 一個(gè)讀取、一個(gè)寫(xiě)入; A1、A2與A3、A4組成兩個(gè)雙字節(jié)的數(shù)據(jù), CRC 校驗(yàn)碼是一個(gè)雙字節(jié)數(shù)據(jù), 所有的數(shù)據(jù)都是高位在前, 低位在后; 03、04指令讀取數(shù)據(jù)時(shí), A 1、A2 為開(kāi)始讀取的地址, A3、A4為連續(xù)讀取數(shù)據(jù)的個(gè)數(shù); 06指令中, A1、A2需要寫(xiě)入數(shù)據(jù)的地址, A3、A 4表示要寫(xiě)入的數(shù)據(jù)。
返回?cái)?shù)據(jù)格式, 06 指令寫(xiě)入數(shù)據(jù)時(shí), 發(fā)送與返回的數(shù)據(jù)一致; 03、04指令返回?cái)?shù)據(jù)格式如表3 所示, 其中返回?cái)?shù)據(jù)字節(jié)數(shù)為: N × 2。
表3 返回?cái)?shù)據(jù)格式
評(píng)論