国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關注中國自動化產業發展的先行者!
CAIAC 2025
2024
工業智能邊緣計算2024年會
2023年工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

MODBUS協議在世紀星組態軟件中的應用
  • 企業:北京世紀長秋科技有限公司     領域:儀器儀表     行業:綜合    
  • 點擊數:2069     發布時間:2009-11-25 09:14:43
  • 分享到:


作者簡介:曾慧(1985- ),女,新疆昌吉人,畢業于上海同濟大學電氣工程及其自動化專業,從事于硬件設備與世紀星組態軟件通信的驅動開發工作。

    摘  要:作為工業控制領域常用的通信協議——Modbus,有方便易用,性價比高,傳輸高速、高效等優點。Modbus技術以其先進性、開放性、成熟性廣泛適用于各種工廠自動化領域中,已被眾多廠家接受和采用。本文簡要介紹了Modbus協議在世紀星中的應用,以及它的基本內容。

    關鍵詞:Modbus;組態軟件
 
    1  引言

    隨著工業自動化的發展,MODBUS成為了工業控制系統中的一種通用協議。由于該協議的簡單且通用,得到了眾多儀表廠商的支持,成為儀表及智能終端的一項工業標準,在工業監控系統中得到了廣泛的應用。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以進行通信。它的開放性、可擴充性和標準化使不同廠商生產的控制設備可以簡單可靠地連成工業網絡,進行系統的集中監控,從而成為最流行的協議之一。同樣,世紀星組態軟件也提供了支持上位機和下位設備進行MODBUS通信的驅動程序,使用戶可以方便使用裝有世紀星軟件的上位機和下位的設備進行通信。

    2
  MODBUS通信協議

    MODBUS協議是莫迪康公司1978年發明的一種用于電子控制器進行控制和通信的協議。此協議支持傳統的RS232、RS422、RS485標準和以太網設備。不同廠商生產的符合MODBUS協議的控制設備可以連成工業網絡,進行集中監控。MODBUS協議采用主從(master-slave)技術,是一種問答方式的通信協議。每次通信均由主機發出數據請求信息,從機接收到正確消息后就可以發送數據到主機以響應請求;主機也可以直接發信息修改從機的數據,實現雙向讀寫。

    MODBUS協議支持兩種數據傳送模式,即ASCII碼和MODBUS-RTU。

    (1)    MODBUS-RTU

                    表1  主機詢問數據幀報文
從機地址     功能碼     數據起始地址     數據量     冗余校驗
Slave         Func      Start   Start    Num Num    CRC  CRC
Add           Code      Add H  Add L     H   L      -16H  -16L

                    表2  從機回答數據幀報文
從機地址     功能碼     字節量        數據         冗余校驗
Slave        Func       Byte       Data …Data     CRC  CRC
Add          Code       Count      Byte1  Byte n   -16H  -16L
 
     (2)  ASCII碼
 
 
                    表3  主機詢問數據幀報文

起始符    從機地址  功能碼   數據起始地址   數據量    冗余校驗  結束符     
start      Slave     Func    Start Start    Num Num    LRC LRC   Stop
character  Add       Code    Add H Add L    H   L     -16H -16L  character
 
                    表4  從機回答數據幀報文

起始符   從機地址  功能碼   字節量     數據       冗余校驗     結束符
start     Slave     Func    Byte    Data …Data   LRC  LRC     Stop
character  Add      Code    Count   Byte1 Byte n  -16H -16L    character
 
    3  MODBUS在世紀星中的應用

    在世紀星中,除了支持MODBUS-RTU和ASCII碼兩種數據傳送模式外,還支持MODBUS TCP/IP 傳送方式。事實上,MODBUS TCP/IP的命令格式和MODBUS-RUT是很相似的,MODBUS TCP/IP只是缺少兩個字節的CRC校驗。在MODBUS協議中,是根據不同的功能碼來完成不同的讀寫功能的,世紀星中支持的功能碼及其功能如表5所示。

                     表5  世紀星所支持的功能碼

  功能碼         寄存器名                 功能
   01H             0x                  讀取線圈狀態
   02H             1x                  讀取輸入狀態
   03H             4x                  讀取一個或多個保持寄存器
   04H             3x                  讀取一個或多個輸入寄存器
   05H             0x                  強置一個邏輯線圈的通斷狀態
   06H             4x                  預置一個寄存器(數據類型為UINT/INT/BCD)
   10H             4x                  預置兩個寄存器(數據類型為LONG/FLOAT)
 
    在硬件設備中,數據存儲在寄存器內,每個存儲數據的寄存器對應一個寄存器地址,上位機就是根據這些地址組織命令去讀寫寄存器里的數據。一個兩個字節的整型數據存儲在一個寄存器地址中,一個四字節的整型或浮點型數據則要存儲在連續的兩個寄存器地址中,通常都是高地址存放數據的高字,低地址存放數據的低字。

    由于很多用MODBUS協議的儀表廠家都在以自己的方式來說明儀表上的參數以及它對應的寄存器地址,所以一部分廠家是以十六進制來標記寄存器地址,而另一部分廠家用十進制。為了使用戶在工程里建立變量時方便的和儀表上的寄存器連接,世紀星分別在MODBUS-RTU和ASCII碼兩種通信方式下,支持十六進制通道號和十進制通道號兩種變量連接方式,因此,就免去了用戶做很多的十六進制和十進制之間轉換的工作。

    在設備的說明書中,一般會指定寄存器地址,數據類型,該地址的寄存器支持的功能碼等要素,以MODBUS-RTU 十六進制的驅動為例,如果寄存器地址為0005H,數據類型為兩個字節的整形,支持03H功能碼讀數據,則對應到世紀星軟件中需要連接的變量為4x0005,變量類型為I/O整數,數據類型可以分為有符號的INT或無符號的UINT 或者BCD碼,在進行通信時,世紀星發送的以及設備返回的命令如下表所示。

    主機發送:

從機地址     功能碼     數據起始地址      數據量     冗余校驗  
  01           03          00  05          00 01      94  0B

    從機返回:

從機地址     功能碼        字節量          數據      冗余校驗
  01           03            02            00 1A      39  8F
 
    由設備返回的命令,可以知道設備返回了兩個字節的有效數據(00 1A),則寄存器地址為0005H里的數據為001AH=26。

    如果寄存器地址為0009H,數據類型為兩個字節的整型,支持06H功能碼寫數據,則對應到世紀星軟件中需要連接的變量為4x0009,變量類型為I/O整數,數據類型可以為有符號的INT或無符號的UINT 或者BCD碼,在通信時,世紀星發送的以及設備返回的命令如下表所示(寫入數據258=0102H):

    主機發送:

從機地址     功能碼     數據起始地址     寫入數據     冗余校驗
  01           06         00  09          01 02        D9  99

    從機返回:
 
從機地址     功能碼     數據起始地址     寫入數據     冗余校驗
  01           06         00  09          01 02        D9  99

    經過發送上表中的命令,0102H便成功寫入到寄存器地址為0009H號的寄存器中。

    如果寄存器地址為0010H,數據類型為四個字節的整型或浮點型,支持10H功能碼寫數據,則對應到世紀星軟件中需要連接的變量為4x0010,變量類型為I/O實數,數據類型可以為有整型的LONG或浮點型的FLOAT,在通信時,世紀星發送的以及設備返回的命令如下表所示(寫入數據258=0102H):

    主機發送:

從機地址  功能碼   起始地址   寄存器個數  字節個數  寫入數據   冗余校驗
   01       10      00 10       00 02        04     01 02 00   00  DA AC

    從機返回:

從機地址    功能碼    數據起始地址    寫入字節個數    冗余校驗
  01         10         00  10          00  04        C0 0f

    經過發送上表中的命令,0102H便成功寫入到寄存器地址為0010H號的寄存器中,0000H成功寫入了寄存器地址為0011H號的寄存器中。

    上述內容就是在世紀星中根據設備說明書連接保持寄存器的變量連接方式,以及通信的過程,其它的例如輸入寄存器,輸入線圈等都和保持寄存器是類似的,通過特定的功能碼對特定地址的寄存器進行讀寫操作,這里就不一一介紹了。

    4
  小結

    在平時用戶使用世紀星和支持MODBUS協議的儀表進行通信的過程中,在多數情況下,世紀星都能很正常的和儀表進行通信,但現在還是避免不了的一種情況是,有些用戶的儀表支持的并不是標準的MODBUS協議。MODBUS是一種通用的協議,但就細節來說,很多廠家還是各有各的用法,這使筆者認識到了這里的MODBUS通信還是缺少一些靈活性,而世紀長秋一定會針對這種情況做一些改進工作,力求更多的使用MODBUS協議的客戶能夠方便使用世紀長秋的軟件和儀表高效可靠的通信。

                                                                      ——轉自《自動化博覽》

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产一级一片免费播放i | 日韩加勒比在线 | 中文无码日韩欧免费视频 | 久久久久久久国产精品毛片 | 亚洲国产精品综合久久久 | 一级美女视频 | 亚洲第一成年网站大全亚洲 | 欧美成人老熟妇暴潮毛片 | a毛片成人免费全部播放 | 日本a级毛片免费观看 | 偷偷操不一样的久久 | 毛片免费在线播放 | 日产乱码精品一二三区 | 欧美日韩国产免费一区二区三区 | 免费一级α片在线观看 | 成人a在线观看 | 成年女人色毛片免费 | 免费视频一区二区三区四区 | 国产欧美在线观看不卡一 | 久久橹 | 国内精品久久久久久久久蜜桃 | 91久久精品一区二区三区 | 三级视频网站在线观看 | 国产1级片 | 看看免费a一片欧 | 欧美色网在线 | 亚洲最大激情中文字幕 | 国产高颜值露脸在线观看 | 久久精品国产亚洲 | 亚洲视频在线观看免费视频 | 国产在线精品一区二区中文 | 美女插跳蛋视频叫爽 | 人人草97 | 91网站网站网站在线 | 九九久久精品视频 | freesexvideo性欧美tv2021 | 丝袜一级片 | 亚洲天堂网在线视频 | 国产区二区 | 欧美成人高清性色生活 | 99精品国产高清一区二区三区香蕉 |