• <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

    <table id="fficu"></table>

    <sup id="fficu"></sup>
    <output id="fficu"></output>
    1. ABB
      關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
      CAIAC 2025
      2025工業(yè)安全大會(huì )
      OICT公益講堂
      當前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

      案例頻道

      MODBUS協(xié)議在世紀星組態(tài)軟件中的應用
      • 企業(yè):北京世紀長(cháng)秋科技有限公司     領(lǐng)域:儀器儀表     行業(yè):綜合    
      • 點(diǎn)擊數:2220     發(fā)布時(shí)間:2009-11-25 09:14:43
      • 分享到:


      作者簡(jiǎn)介:曾慧(1985- ),女,新疆昌吉人,畢業(yè)于上海同濟大學(xué)電氣工程及其自動(dòng)化專(zhuān)業(yè),從事于硬件設備與世紀星組態(tài)軟件通信的驅動(dòng)開(kāi)發(fā)工作。

          摘  要:作為工業(yè)控制領(lǐng)域常用的通信協(xié)議——Modbus,有方便易用,性?xún)r(jià)比高,傳輸高速、高效等優(yōu)點(diǎn)。Modbus技術(shù)以其先進(jìn)性、開(kāi)放性、成熟性廣泛適用于各種工廠(chǎng)自動(dòng)化領(lǐng)域中,已被眾多廠(chǎng)家接受和采用。本文簡(jiǎn)要介紹了Modbus協(xié)議在世紀星中的應用,以及它的基本內容。

          關(guān)鍵詞:Modbus;組態(tài)軟件
       
          1  引言

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

          2
        MODBUS通信協(xié)議

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

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

          (1)    MODBUS-RTU

                          表1  主機詢(xún)問(wèn)數據幀報文
      從機地址     功能碼     數據起始地址     數據量     冗余校驗
      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  主機詢(xún)問(wèn)數據幀報文

      起始符    從機地址  功能碼   數據起始地址   數據量    冗余校驗  結束符     
      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 傳送方式。事實(shí)上,MODBUS TCP/IP的命令格式和MODBUS-RUT是很相似的,MODBUS TCP/IP只是缺少兩個(gè)字節的CRC校驗。在MODBUS協(xié)議中,是根據不同的功能碼來(lái)完成不同的讀寫(xiě)功能的,世紀星中支持的功能碼及其功能如表5所示。

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

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

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

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

          主機發(fā)送:

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

          從機返回:

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

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

          主機發(fā)送:

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

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

          經(jīng)過(guò)發(fā)送上表中的命令,0102H便成功寫(xiě)入到寄存器地址為0009H號的寄存器中。

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

          主機發(fā)送:

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

          從機返回:

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

          經(jīng)過(guò)發(fā)送上表中的命令,0102H便成功寫(xiě)入到寄存器地址為0010H號的寄存器中,0000H成功寫(xiě)入了寄存器地址為0011H號的寄存器中。

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

          4
        小結

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

                                                                            ——轉自《自動(dòng)化博覽》

      熱點(diǎn)新聞

      推薦產(chǎn)品

      x
      • 在線(xiàn)反饋
      1.我有以下需求:



      2.詳細的需求:
      姓名:
      單位:
      電話(huà):
      郵件:
      欧美精品欧美人与动人物牲交_日韩乱码人妻无码中文_国产私拍大尺度在线视频_亚洲男人综合久久综合天

    2. <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

      <table id="fficu"></table>

      <sup id="fficu"></sup>
      <output id="fficu"></output>