欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種避免modbus實時數(shù)據(jù)庫訪問沖突的方法

文檔序號:6370000閱讀:341來源:國知局
專利名稱:一種避免modbus實時數(shù)據(jù)庫訪問沖突的方法
技術(shù)領(lǐng)域
本發(fā)明涉及設(shè)備通信和數(shù)據(jù)處理,特別涉及一種避免modbus實時數(shù)據(jù)庫訪問沖突的方法。
背景技術(shù)
在工業(yè)控制現(xiàn)場,modbus作為一種成熟的應(yīng)用協(xié)議受到了廣泛的部署和應(yīng)用。在儀表、傳感器、電動執(zhí)行機構(gòu)等方面應(yīng)用非常成熟。modbus是一個請求/應(yīng)答協(xié)議,可以在以太網(wǎng)、RS232、RS422、RS485、光纖等線路上實施。在現(xiàn)場應(yīng)用時,一般都是由一個或多個modbus主站,通過RS232、RS422或者RS485的異步串行總線,連接現(xiàn)場的設(shè)備(從站);控制臺通過以太網(wǎng)或者其他的總線技術(shù)接入modbus主站。在modbus主站上,存在一個實時的數(shù)據(jù)庫,控制臺發(fā)出的命令更新到實時數(shù) 據(jù)庫,modbus主站會周期性的把這些命令下發(fā)到對應(yīng)的從站。modbus主站負責獲取各從站的運行數(shù)據(jù)和狀態(tài);獲取控制臺的指令;轉(zhuǎn)發(fā)從站數(shù)據(jù)到控制臺;轉(zhuǎn)發(fā)控制臺指令到各從站;上述這些工作一般以循環(huán)的方式周期性的執(zhí)行。如圖I和圖2所示,在現(xiàn)有采用modbus協(xié)議的單控制臺系統(tǒng)中,控制臺101連接一包含實時數(shù)據(jù)庫104的modbus主站102,該modbus主站連接若干modbus從站103。該系統(tǒng)的流程步驟包括S201 :獲取控制臺指令;S202 :更新實時數(shù)據(jù)庫;S203 :發(fā)送指令給從站;S204 :獲取從站狀態(tài);S205 :更新實時數(shù)據(jù)庫;S206 發(fā)送從站狀態(tài)給控制臺。上述步驟循環(huán)往復。如圖3、圖4a和圖4b所示,在現(xiàn)有采用modbus協(xié)議的多控制臺系統(tǒng)中,有多個控制臺,即第一控制臺301和第二控制臺302。它們連接一包含實時數(shù)據(jù)庫305的modbus主站303,該modbus主站連接若干modbus從站304。該系統(tǒng)的流程步驟包括循環(huán)流程I :S411 :獲取第一控制臺指令;S412 :更新實時數(shù)據(jù)庫;S413 :獲取第二控制臺指令;S414 :更新實時數(shù)據(jù)庫;S415 :發(fā)送指令給從站;S416 :獲取從站狀態(tài);S417 :更新實時數(shù)據(jù)庫;
S418 :發(fā)送從站狀態(tài)給各控制臺。循環(huán)流程2 S421 :獲取第一控制臺指令;S422 :更新實時數(shù)據(jù)庫;S423 :發(fā)送指令給從站
S424 :獲取第二控制臺指令;S425 :更新實時數(shù)據(jù)庫;S426 :發(fā)送指令給從站;S427 :獲取從站狀態(tài);S428 :更新實時數(shù)據(jù)庫;S429 發(fā)送從站狀態(tài)給各控制臺。上述流程中,modbus主站分別從兩個控制臺獲取指令,并轉(zhuǎn)發(fā)給相應(yīng)的從站。因為這是一個循環(huán)過程,當一個控制臺發(fā)送控制指令,而另外一個控制臺不發(fā)送時,modbus主站從兩個控制臺讀到的指令不一樣。圖4所示的兩種循環(huán)都不能保證有效的控制指令被發(fā)送到對應(yīng)的從站;同時,當兩個控制臺同時發(fā)送指令時,modbus主站也不能保證哪個控制臺的指令被優(yōu)先執(zhí)行。

發(fā)明內(nèi)容
本發(fā)明針對上述多控制臺的modbus主站系統(tǒng),提供了針對多控制臺有效控制和優(yōu)先控制的解決方法。該方法能有效的解決多控制臺modbus系統(tǒng)中,避免控制失效和控制優(yōu)先級的問題。本發(fā)明具體技術(shù)方案如下一種避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其特征在于,在modbus主站中,控制臺對數(shù)據(jù)庫進行更新操作,其指令被緩存到一個指令緩沖區(qū),并和前一次的緩沖指令進行對比。只有當指令發(fā)生變化時,該指令被更新到數(shù)據(jù)庫;同時該指令被指令緩沖保存;所述在modbus主站的循環(huán)列表中,每條針對數(shù)據(jù)庫的更新操作指令都有相對應(yīng)的指令緩沖,在開機進入循環(huán)前,這些緩沖被清除。上述方案中,所述控制臺的指令分為A、B兩類,A類指令為數(shù)據(jù)庫寫指令,對應(yīng)的modbus功能碼為5、6、15、16 ;B類指令為數(shù)據(jù)庫讀指令,對應(yīng)的modbus功能碼為1、2、3、4。上述方案中,所述針對多控制臺的同時控制時,對每個控制臺設(shè)定一個優(yōu)先級;同時數(shù)據(jù)庫的更新操作增加更新標記。上述方案中,所述更新標記包括更新的時間、更新的地址范圍和更新的優(yōu)先級三部分信息。上述方案中,所述當對應(yīng)控制臺的數(shù)據(jù)庫更新指令有效時,首先更新指令緩沖,然后比較數(shù)據(jù)庫中該區(qū)域的優(yōu)先級和時間戳;當前一次更新的優(yōu)先級低于當前更新時,更新指令到數(shù)據(jù)庫;當前一次更新的優(yōu)先級高于當前更新時,如果更新時間間隔大于指定的間隔,則更新指令到數(shù)據(jù)庫,否則不予更新。本發(fā)明所述方法能確保在一個多控制臺modbus系統(tǒng)中,兩個控制臺只有一個發(fā)送指令時,發(fā)送的指令被正確執(zhí)行。繼而解決實時數(shù)據(jù)庫訪問沖突的方法。另外,方法中的創(chuàng)新點在于(I)每個控制臺的數(shù)據(jù)庫更新操作采用基于變化的寫操作;(2)每個控制臺的數(shù)據(jù)庫更新數(shù)據(jù)采用中間緩沖區(qū)存儲;(3)每個控制臺可以設(shè)定優(yōu)先級,解決同時訪問時的有效性問題。
以下結(jié)合附圖
具體實施方式
來進一步說明本發(fā)明。圖I為現(xiàn)有采用modbus協(xié)議的單控制臺系統(tǒng)框圖。 圖2為現(xiàn)有單控制臺系統(tǒng)中modbus主站的流程示意圖。圖3為現(xiàn)有采用modbus協(xié)議的多控制臺系統(tǒng)框圖。圖4a、圖4b為現(xiàn)有多控制臺系統(tǒng)中modbus主站的流程示意圖。圖5為本發(fā)明方法所涉及的多控制臺的modbus主站系統(tǒng)。
具體實施例方式為了使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結(jié)合具體圖示,進一步闡述本發(fā)明。如圖5所示,本發(fā)明方法所涉及的多控制臺的modbus主站系統(tǒng)。它包括諸如第一控制臺510和第二控制臺520等這樣的多個控制臺。其中每個控制臺(510,520)都與modbus主站530的實時數(shù)據(jù)庫531連接;modbus主站530里面還設(shè)有分別與第一控制臺510和第二控制臺520對應(yīng)連接的指令緩沖區(qū)(532,533)。modbus主站530還分別與若干個modbus從站540連接。整個發(fā)明的具體方法為在modbus主站中,控制臺對數(shù)據(jù)庫的更新操作(對應(yīng)modbus功能碼為5、6、15、16),指令被緩存到一個指令緩沖區(qū),并和前一次的緩沖指令進行對比。只有當指令發(fā)生變化時,該指令被更新到數(shù)據(jù)庫;同時該指令被指令緩沖保存。在modbus主站的循環(huán)列表中,每條針對數(shù)據(jù)庫的更新操作指令都有相對應(yīng)的指令緩沖,在開機進入循環(huán)前,這些緩沖被清除。這種方法能確保兩個控制臺只有一個發(fā)送指令時,發(fā)送的指令被正確執(zhí)行。如圖5所示,控制臺的指令分為A、B兩類,A類指令為數(shù)據(jù)庫寫指令,對應(yīng)的modbus功能碼為5、6、15、16 ;B類指令為數(shù)據(jù)庫讀指令,對應(yīng)的modbus功能碼為1、2、3、4。此外,針對多控制臺的同時控制,還包括(I)每個控制臺設(shè)定一個優(yōu)先級;(2)數(shù)據(jù)庫的更新操作增加更新標記,該更新標記包括三部分信息I.更新的時間;2.更新的地址范圍;3.更新的優(yōu)先級;當對應(yīng)控制臺的數(shù)據(jù)庫更新指令有效時,首先更新指令緩沖,然后比較數(shù)據(jù)庫中該區(qū)域的優(yōu)先級和時間戳。按照如下邏輯更新
I.當前一次更新的優(yōu)先級低于當前更新時,更新指令到數(shù)據(jù)庫;2.當前一次更新的優(yōu)先級高于當前更新時,如果更新時間間隔大于指定的間隔,則更新指令到數(shù)據(jù)庫,否則不予更新;另外,如上所述的方法已經(jīng)成功應(yīng)用到一種以太網(wǎng)到RS485現(xiàn)場總線協(xié)議轉(zhuǎn)換的裝置中,該裝置運行modbus協(xié)議;本方法并不限定于modbus協(xié)議,對于類似的請求應(yīng)答協(xié)議都可以采用。以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要 求保護范圍由所附的權(quán)利要求書及其等效物界定。
權(quán)利要求
1.一種避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其特征在于,在modbus主站中,控制臺對數(shù)據(jù)庫進行更新操作,其指令被緩存到一個指令緩沖區(qū),并和前一次的緩沖指令進行對比;只有當指令發(fā)生變化時,該指令被更新到數(shù)據(jù)庫;同時該指令被指令緩沖保存;所述在modbus主站的循環(huán)列表中,每條針對數(shù)據(jù)庫的更新操作指令都有相對應(yīng)的指令緩沖,在開機進入循環(huán)前,這些緩沖被清除。
2.根據(jù)權(quán)利要求I的避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其特征在于,所述控制臺的指令分為A、B兩類,A類指令為數(shù)據(jù)庫寫指令,對應(yīng)的modbus功能碼為5、6、15、16 ;B類指令為數(shù)據(jù)庫讀指令,對應(yīng)的modbus功能碼為1、2、3、4。
3.根據(jù)權(quán)利要求I的避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其特征在于,所述針對多控制臺的同時控制時,對每個控制臺設(shè)定一個優(yōu)先級;同時數(shù)據(jù)庫的更新操作增加更新 T 己 O
4.根據(jù)權(quán)利要求3的避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其特征在于,所述更新標記包括更新的時間、更新的地址范圍和更新的優(yōu)先級三部分信息。
5.根據(jù)權(quán)利要求I的避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其特征在于,所述當對應(yīng)控制臺的數(shù)據(jù)庫更新指令有效時,首先更新指令緩沖,然后比較數(shù)據(jù)庫中該區(qū)域的優(yōu)先級和時間戳;當前一次更新的優(yōu)先級低于當前更新時,更新指令到數(shù)據(jù)庫;當前一次更新的優(yōu)先級高于當前更新時,如果更新時間間隔大于指定的間隔,則更新指令到數(shù)據(jù)庫,否則不予更新。
全文摘要
本發(fā)明公開了一種避免modbus實時數(shù)據(jù)庫訪問沖突的方法,其過程為在modbus主站中,控制臺對數(shù)據(jù)庫進行更新操作,其指令被緩存到一個指令緩沖區(qū),并和前一次的緩沖指令進行對比。只有當指令發(fā)生變化時,該指令被更新到數(shù)據(jù)庫;同時該指令被指令緩沖保存;所述在modbus主站的循環(huán)列表中,每條針對數(shù)據(jù)庫的更新操作指令都有相對應(yīng)的指令緩沖,在開機進入循環(huán)前,這些緩沖被清除。本發(fā)明所述方法能確保在一個多控制臺modbus系統(tǒng)中,兩個控制臺只有一個發(fā)送指令時,發(fā)送的指令被正確執(zhí)行。繼而解決實時數(shù)據(jù)庫訪問沖突的方法。
文檔編號G06F17/30GK102722535SQ20121015829
公開日2012年10月10日 申請日期2012年5月21日 優(yōu)先權(quán)日2012年5月21日
發(fā)明者周明, 王可中 申請人:周明, 王可中
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
利津县| 康保县| 霍山县| 金湖县| 门源| 锦屏县| 宣汉县| 馆陶县| 武邑县| 尤溪县| 平果县| 吉安县| 浙江省| 曲靖市| 南昌市| 手机| 德保县| 措勤县| 珲春市| 延寿县| 衡东县| 柳州市| 门源| 哈密市| 苗栗县| 黔东| 巧家县| 日喀则市| 兴义市| 贡嘎县| 修武县| 葫芦岛市| 怀集县| 肃宁县| 偃师市| 沂水县| 沂水县| 桐庐县| 松潘县| 渝北区| 无棣县|