專利名稱:一種總線式分布控制系統(tǒng)主從站對端控制方法
技術領域:
本發(fā)明涉及總線式分布控制系統(tǒng)主從站通信技術,具體是指一種總線式分 布控制系統(tǒng)主從站對端控制方法。
背景技術:
隨著控制系統(tǒng)的復雜程度不斷提高,大量的控制系統(tǒng)已由過去的單機控制 轉(zhuǎn)變?yōu)槎鄼C集散式控制,通常也稱作分布式控制。在嵌入式領域,分布式控制 系統(tǒng)由一個主處理器協(xié)調(diào)和控制多個從處理器共同完成控制功能,通常我們稱 主處理器組成的控制模塊為"主站",每個從處理器組成的控制模塊為"從站"。 集散控制要求主站和從站間必須能相互通信,目前通常采用的主從站通信連接方式有RS-485、 RS-422、 CAN、 Ethernet等,在眾多的方式中RS-485方式具 有簡單可靠、傳輸距離遠、成本低等優(yōu)勢,被廣泛用于小到板級間通信,大到 樓宇間通信等領域。由于RS-485鏈路是半雙工的通信鏈路,即每一時刻總線鏈路上只允許一 個站點發(fā)送數(shù)據(jù),否則就會出現(xiàn)數(shù)據(jù)沖突而破壞數(shù)據(jù)。因此基于RS-485方式 的控制系統(tǒng)中,通常會設定一個站點為主站,其他站點為從站,由主站來協(xié)調(diào) 各從站的通信。主站協(xié)調(diào)從站的傳統(tǒng)方法是采用令牌方法,控制特點簡要描述 如下(1) 主站對從站的控制通常分査詢幀、設置幀和輪詢幀,當從站收到査 詢幀或設置幀時是被動對幀中的內(nèi)容作響應,而收到輪詢幀時從站可以主動向 主站發(fā)數(shù)據(jù),以從主站獲得自己需要的數(shù)據(jù)。通常主站會定時且較高密度的發(fā) 出輪詢幀,而査詢幀和設置幀通常在需要的時候才發(fā)送。(2) 從站需獲得主站發(fā)出的允許從站發(fā)送令牌后,才能主動發(fā)起從站對 主站的命令請求,主站在響應從站對主站命令請求時不能同時査詢得到從站的 實時數(shù)據(jù)。(3) 主站在處理完的從站對主站的命令請求后,需要另外進行主站査詢從站數(shù)據(jù)的操作,才可獲得從站實時數(shù)據(jù)。當然,主從站通信還可采用一些標準數(shù)據(jù)通信控制規(guī)程,如ADCCP、SDLC/HDLC等,但無論是采用前面描述的令牌方式還是標準數(shù)據(jù)通信控制規(guī) 程,其缺點都是實現(xiàn)較復雜、耗費處理器資源比較多。發(fā)明內(nèi)容本發(fā)明的目的在于克服上述現(xiàn)有技術的缺點和不足,提供簡單高效的一 種總線式分布控制系統(tǒng)主從站對端控制方法。本發(fā)明的目的通過下述技術方案實現(xiàn)本一種總線式分布控制系統(tǒng)主從 站對端控制方法,其包括以下步驟(1) 各從站都處在接收狀態(tài),主站通過總線發(fā)送對從站1的命令,發(fā)送 完成后等待接收從站返回;(2) 因為每個從站都有一個獨立的地址,主站發(fā)出的命令中會指定從站 地址,因此所有的從站都能接收到主站命令,但只有符合主站命令中地址的 從站1才會響應,從站1識別該命令并處理完形成主站命令返回數(shù)據(jù)包"A",同時檢査本站是否有操作主站的命令請求,如果沒有則將主站命令返回數(shù)據(jù) 包"A"直接返回給主站;如果從站l有對主站的操作命令請求,則將主站命 令返回數(shù)據(jù)包"A"連同從站1對主站操作命令包"B" —起返回給主站,此 時,所述主站命令返回數(shù)據(jù)包"A"和從站1對主站操作命令包"B"之間采 用反向命令特殊標識符"F"分隔,然后從站l進入等待主站返回;(3) 當主站收到了從站1返回,則主站先識別返回數(shù)據(jù)中是否有反向命 令特殊標識符"F",如果有則對數(shù)據(jù)進行兩次處理首先處理主站命令返回 數(shù)據(jù)包"A",然后處理從站1對主站操作命令包"B",得到返回數(shù)據(jù)包"B1", 在得到"B1"后,相應再次生成主站對從站1的命令,該命令連同"B1"--同返回給從站1,該命令和返回數(shù)據(jù)包"B1"之間采用反向命令特殊標識符 "F"分隔;(4) 從站1在收到主站命令后,則先識別返回數(shù)據(jù)中是否有反向命令特 殊標識符"F",如果有則對數(shù)據(jù)進行兩次處理,首先處理主站對從站1的命 令,形成主站命令返回數(shù)據(jù)包"A",然后處理從站1對主站操作命令包"B" 的返回數(shù)據(jù)包"B1",完成上述處理后,從站1需判斷是否還有對主站的操 作命令請求,如果有,則將主站命令返回數(shù)據(jù)包"A"和從站1對主站的操作 命令"B" —同返回給主站,所述主站命令返回數(shù)據(jù)包"A"和從站1對主站 操作命令包"B"之間采用反向命令特殊標識符"F"分隔,然后從站1進入 等待主站返回,重新回到步驟(3);(5) 當從站1再沒有對主站的操作命令請求時,從站1只將主站命令返 回數(shù)據(jù)包"A"直接返回給主站,然后從站1進入接收狀態(tài);(6) 主站在收到并處理從站1返回的主站命令返回數(shù)據(jù)包"A"后,形 成對下一從站(如從站2)的命令。為了更好得實現(xiàn)本發(fā)明,所述總線式分布控制系統(tǒng)為半雙工總線式分布 控制系統(tǒng)。所述半雙工總線式分布控制系統(tǒng)為RS-485方式的總線式分布控制系統(tǒng); 主站發(fā)送數(shù)據(jù)時,先置位RS-485芯片發(fā)送使能引腳"TX_EN";發(fā)送完成后 關閉RS-485芯片發(fā)送使能引腳"TX—EN",使其進入接收狀態(tài);從站1發(fā)送 數(shù)據(jù)時也是置位RS-485芯片發(fā)送使能引腳"TX—EN",然后向總線發(fā)送數(shù)據(jù), 發(fā)送完成后關閉RS-485芯片發(fā)送使能引腳"TX_EN",使其進入接收狀態(tài)。 所述命令包括輪詢命令"L",或査詢命令"Q",或設置命令"C"。 本發(fā)明與現(xiàn)有技術相比,具有如下優(yōu)點和有益效果實現(xiàn)方法簡單,通 信效率提高,縮短了輪詢周期,當從站數(shù)量比較多時,輪詢速度提高尤為明 顯,該方法尤其適合于硬件上為半雙工的總線式分布控制系統(tǒng),如RS-485總 線等,在控制方法上通過獨特控制標志和配合控制流程,實現(xiàn)簡單高效的主 從站系統(tǒng)對端控制功能。(1) 主機的每次輪詢命令或査詢命令、設置命令,都可同時獲得最新的 從站實時數(shù)據(jù)和從站對主站命令請求。(2) 本端命令和對端命令執(zhí)行結果一同返發(fā)送給對端,效率高,兩者命 令之間依賴反向命令標識符分隔。(3) 主站或從站方收到返回數(shù)據(jù)后先識別是否存在反向命令標識符,以 分別處理命令返回和命令請求。
圖1為現(xiàn)有的總線式分布控制系統(tǒng)結構原理圖;圖2為RS-485方式的總線式分布控制系統(tǒng)結構原理圖;圖3為本發(fā)明一種總線式分布控制系統(tǒng)主從站對端控制方法的控制流程圖。
具體實施方式
下面結合實施例及附圖,對本發(fā)明作進一步地詳細說明,但本發(fā)明的實施 方式不限于此。實施例一圖1為現(xiàn)有的總線式分布控制系統(tǒng)結構原理圖,主站通過總線驅(qū)動器與 各從站相連接。如圖2所示,本發(fā)明所述的總線式分布控制系統(tǒng)為RS-485方式的總線式 分布控制系統(tǒng),主站的MCU (微控制器)通過RS-485驅(qū)動芯片與各從站的MCU 相連接,通常RS-485驅(qū)動芯片處在接收狀態(tài),當要發(fā)數(shù)據(jù)時使其工作在發(fā)送 狀態(tài),發(fā)送完數(shù)據(jù)后馬上使其工作在接收狀態(tài)。如圖3所示,本發(fā)明一種總線式分布控制系統(tǒng)主從站對端控制的步驟是 這樣的(1) 各從站都處在接收狀態(tài),主站通過總線發(fā)送對從站1的命令,發(fā)送 完成后等待接收從站返回;(2) 因為每個從站都有一個獨立的地址,主站發(fā)出的命令中會指定從站 地址,因此所有的從站都能接收到主站命令,但只有符合主站命令中地址的 從站1才會響應,從站1識別該命令并處理完形成主站命令返回數(shù)據(jù)包"A", 同時檢査本站是否有操作主站的命令請求,如果沒有則將主站命令返問數(shù)據(jù) 包"A"直接返回給主站;如果從站l有對主站的操作命令請求,則將主站命 令返回數(shù)據(jù)包"A"連同從站1對主站操作命令包"B"—起返回給主站,此 時,所述主站命令返回數(shù)據(jù)包"A"和從站1對主站操作命令包"B"之間采 用反向命令特殊標識符"F"分隔,然后從站1進入等待主站返回;(3) 當主站收到了從站1返回,則主站先識別返回數(shù)據(jù)中是否有反向命 令特殊標識符"F",如果有則對數(shù)據(jù)進行兩次處理首先處理主站命令返回 數(shù)據(jù)包"A",然后處理從站1對主站操作命令包"B",得到返回數(shù)據(jù)包"B1", 在得到"B1"后,相應再次生成主站對從站1的命令,該命令連同"B1"--同返回給從站1,該命令和返回數(shù)據(jù)包"B1"之間采用反向命令特殊標識符 "F"分隔;(4) 從站1在收到主站命令后,則先識別返回數(shù)據(jù)中是否有反向命令特 殊標識符"F",如果有則對數(shù)據(jù)進行兩次處理,首先處理主站對從站1的命 令,形成主站命令返回數(shù)據(jù)包"A",然后處理從站1對主站操作命令包"B" 的返回數(shù)據(jù)包"B1",完成上述處理后,從站1需判斷是否還有對主站的操 作命令請求,如果有,則將主站命令返回數(shù)據(jù)包"A"和從站1對主站的操作 命令"B" —同返回給主站,所述主站命令返回數(shù)據(jù)包"A"和從站1對主站操作命令包"B"之間采用反向命令特殊標識符"F"分隔,然后從站1進入 等待主站返回,重新回到步驟(3);(5) 當從站1再沒有對主站的操作命令請求時,從站1只將主站命令返 回數(shù)據(jù)包"A"直接返回給主站,然后從站1進入接收狀態(tài);(6) 主站在收到并處理從站1返回的主站命令返回數(shù)據(jù)包"A"后,形 成對下一從站(如從站2)的命令。主站發(fā)送數(shù)據(jù)時,先置位RS-485芯片發(fā)送使能引腳"TX_EN";發(fā)送完 成后關閉RS-485芯片發(fā)送使能引腳"TX_EN",使其進入接收狀態(tài);從站1 發(fā)送數(shù)據(jù)時也是置位RS-485芯片發(fā)送使能引腳"TX_EN",然后向總線發(fā)送 數(shù)據(jù),發(fā)送完成后關閉RS-485芯片發(fā)送使能引腳"TX—EN",使其進入接收 狀態(tài)。上述控制步驟也可以適用于主站對從站發(fā)送查詢命令"Q "或設置命令"C " 時的控制過程。如上所述,便可較好地實現(xiàn)本發(fā)明。
權利要求
1. 一種總線式分布控制系統(tǒng)主從站對端控制方法,其特征在于包括以下步驟(1)各從站都處在接收狀態(tài),主站通過總線發(fā)送對從站1的命令,發(fā)送完成后等待接收從站返回;(2)因為每個從站都有一個獨立的地址,主站發(fā)出的命令中會指定從站地址,因此所有的從站都能接收到主站命令,但只有符合主站命令中地址的從站1才會響應,從站1識別該命令并處理完形成主站命令返回數(shù)據(jù)包“A”,同時檢查本站是否有操作主站的命令請求,如果沒有則將主站命令返回數(shù)據(jù)包“A”直接返回給主站;如果從站1有對主站的操作命令請求,則將主站命令返回數(shù)據(jù)包“A”連同從站1對主站操作命令包“B”一起返回給主站,此時,所述主站命令返回數(shù)據(jù)包“A”和從站1對主站操作命令包“B”之間采用反向命令特殊標識符“F”分隔,然后從站1進入等待主站返回;(3)當主站收到了從站1返回,則主站先識別返回數(shù)據(jù)中是否有反向命令特殊標識符“F”,如果有則對數(shù)據(jù)進行兩次處理首先處理主站命令返回數(shù)據(jù)包“A”,然后處理從站1對主站操作命令包“B”,得到返回數(shù)據(jù)包“B1”,在得到“B1”后,相應再次生成主站對從站1的命令,該命令連同“B1”一同返回給從站1,該命令和返回數(shù)據(jù)包“B1”之間采用反向命令特殊標識符“F”分隔;(4)從站1在收到主站命令后,則先識別返回數(shù)據(jù)中是否有反向命令特殊標識符“F”,如果有則對數(shù)據(jù)進行兩次處理,首先處理主站對從站1的命令,形成主站命令返回數(shù)據(jù)包“A”,然后處理從站1對主站操作命令包“B”的返回數(shù)據(jù)包“B1”,完成上述處理后,從站1需判斷是否還有對主站的操作命令請求,如果有,則將主站命令返回數(shù)據(jù)包“A”和從站1對主站的操作命令“B”一同返回給主站,所述主站命令返回數(shù)據(jù)包“A”和從站1對主站操作命令包“B”之間采用反向命令特殊標識符“F”分隔,然后從站1進入等待主站返回,重新回到步驟(3);(5)當從站1再沒有對主站的操作命令請求時,從站1只將主站命令返回數(shù)據(jù)包“A”直接返回給主站,然后從站1進入接收狀態(tài);(6)主站在收到并處理從站1返回的主站命令返回數(shù)據(jù)包“A”后,形成對下一從站的命令。
2、 根據(jù)權利要求1所述一種總線式分布控制系統(tǒng)主從站對端控制方法,其特征在于所述總線式分布控制系統(tǒng)為半雙工總線式分布控制系統(tǒng)。
3、 根據(jù)權利要求2所述一種總線式分布控制系統(tǒng)主從站對端控制方法,其 特征在于所述半雙工總線式分布控制系統(tǒng)為RS-485方式的總線式分布控制系 統(tǒng);主站發(fā)送數(shù)據(jù)時,先置位RS-485芯片發(fā)送使能引腳"TX—EN";發(fā)送完成 后關閉RS-485芯片發(fā)送使能引腳"TX一EN",使其進入接收狀態(tài);從站1發(fā)送 數(shù)據(jù)時也是置位RS-485芯片發(fā)送使能引腳"TX一EN",然后向總線發(fā)送數(shù)據(jù), 發(fā)送完成后關閉RS-485芯片發(fā)送使能引腳"TX—EN",使其進入接收狀態(tài)。
4、 根據(jù)權利要求1所述一種總線式分布控制系統(tǒng)主從站對端控制方法,其 特征在于所述命令包括輪詢命令"L",或査詢命令"Q",或設置命令"C"。
全文摘要
本發(fā)明提供一種總線式分布控制系統(tǒng)主從站對端控制方法,本方法與目前通常采用的令牌控制方法、標準數(shù)據(jù)通信控制規(guī)程方法相比,具有實現(xiàn)簡單、效率高、占用資源小等特點,該方法尤其適合于硬件上為半雙工的總線式分布控制系統(tǒng),如RS-485總線等,在控制方法上通過獨特控制標志和配合控制流程,實現(xiàn)簡單高效的對端控制功能。
文檔編號H04L29/08GK101232425SQ20071002657
公開日2008年7月30日 申請日期2007年1月26日 優(yōu)先權日2007年1月26日
發(fā)明者歐曉明 申請人:京信通信系統(tǒng)(中國)有限公司