乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      S7-200做主站S7-300 CP341做從站的Modbus RTU通訊

       pphsy 2015-04-10

      S7-200做主站S7-300 CP341做從站的Modbus RTU通訊

      • 文獻
      •  
      • 涉及產(chǎn)品

      1. 概述
      在現(xiàn)場應用中,很多儀表和設備僅支持Modbus RTU的通訊協(xié)議,第三方儀表可以做Modbus主站或從站,西門子的通訊模塊CP341 / CP441-2 通過Dongle(硬件狗)可以擴展該協(xié)議,S7-200 集成的口可以支持自由口通訊,通過指令庫也可以方便的實現(xiàn)Modbus RTU通訊。本文以S7-200作為Modbus 主站,CP341作為Modbus 從站,實現(xiàn)Modbus RTU通訊,闡述兩者在通訊方面的設置和注意事項。


      2. 軟件環(huán)境

      2.1 STEP7 V5.4 SP4
      用于編寫 S7-300/400程序,此軟件需要從西門子購買,本文檔中的300的程序是使用Step7 V5.4 SP4的軟件編寫。

      2.2 CP PTP Param V5.1 SP11
      串行通訊模板的驅(qū)動程序,安裝此驅(qū)動后才能對PtP模板進行參數(shù)配置,并在Step7中集成通訊編程需要使用的功能塊。此驅(qū)動隨購買模板一起提供,也可以從以下的鏈接下載27013524

      2.3 CP PTP Modbus Slave V3.1 SP7
      CP341或CP441-2用于Modbus從站時,需要安裝此驅(qū)動協(xié)議,但安裝之前必須先安裝PtP Driver,此驅(qū)動可以在購買Modbus Dongle時選擇購買,也可以從以下的鏈接下載27774276

      2.4 STEP7 Micro/WIN V4.0 SP6
      用于S7-200編程的軟件,本文檔中的200的程序是使用Step7 Micro/win 的軟件編寫。此軟件可以從西門子下載中心免費下載,也可以從以下的鏈接下載。
      http://www.ad..cn/download 網(wǎng)站 自動化系統(tǒng)>>S7-200>>軟件,文檔編號S0002。

      2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
      S7-200實現(xiàn)Modbus RTU功能,可以使用Modbus的指令庫,要使用西門子的標準指令庫,必須先安裝指令庫的軟件包 Instruction Library,安裝后,可以在Step 7-Micro/WIN軟件的庫中找到Modbus相關(guān)的指令,該軟件包可以從以下的鏈接下載。http://www.ad..cn/download 網(wǎng)站 自動化系統(tǒng)>>S7-200>>軟件,文檔編號S0010。


      3. 硬件列表和接線

      3.1 硬件列表

      S7-300從站CPU315-2DP6ES7 315-2AG10-0AB0
      CP341 RS422/4856ES7 341-1CH01-0AE0
      Dongle6ES7 870-1AB01-0YA0
      PC 適配器(USB6ES7 972-0CB20-0XA0
      S7-200主站CPU 224XP6ES7 214-2BD23-0XB0

      表1 硬件設備

      3.2 硬件接線

      3.2.1 接口定義
      S7-200的通訊口為RS485物理口(9針口),CP341是RS422/485的接口類型(15針口),兩種設備的接口引腳的示意圖如下所示,更詳細的信息可以參考CP341及S7-200通信接口的手冊。


      圖1 S7-200 CPU通信口引腳定義

       


      圖2 S7-300 CP341 RS422/485 通訊口引腳定義

      3.2.2 接線示意圖


      圖3 硬件結(jié)構(gòu)和接線示意圖


      4. 組態(tài)設置和編程

      4.1 S7-200做Modbus主站的設置
      S7-200 CPU上的通信口在電氣上是標準的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數(shù)據(jù)位;1位奇/偶/無校驗;1停止位。通信波特率可以設置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設備可以和S7-200進行自由口通訊,Modbus RTU指令庫就是使用自由口編程實現(xiàn)的。

      4.1.1 Modbus RTU主站庫

      使用Modbus 主站指令庫時需要注意的幾點:

      • 需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;
      • Modbus RTU 主站庫對CPU的版本有要求,CPU 的版本必須為 2.00 或者 2.01(即訂貨號為 6ES721*-***23-0BA*);
      • Modbus主站可讀/寫的最大數(shù)據(jù)量為120個字(指每一個 MBUS_MSG 指令);
      • Modbus 主站庫支持Port0和Port1(從站庫只支持Port0口),本例中用Port0;
      • 使用Modbus 庫時必須對庫存儲區(qū)進行分配,見下圖設置,而且分配的空間不能和程序中其它空間沖突,否則編譯調(diào)用會報錯。


      圖4 庫存儲區(qū)設置

      • Modbus主站庫支持的功能碼和地址對應關(guān)系:
         
        Modbus 地址 / Modbus 從站須支持的功能
        00001~09999功能1:讀輸出點
          數(shù)字量輸出功能5:寫單個輸出點
         功能15:寫多個輸出點
        10001~19999功能2:讀輸入點
          數(shù)字量輸入
        30001~39999功能4:讀輸入寄存器
          輸入寄存器
        40001~49999功能3:讀保持寄存器
          保持寄存器功能6:寫單個寄存器
         功能16:寫多個寄存器

        表2需要從站支持的功能

      4.1.2 S7-200 Modbus主站編程
      編程時,使用SM0.0調(diào)用MBUS_CTRL完成主站的參數(shù)初始化,詳細見下表,參數(shù)的說明也可以從子程序的局部變量表中找到。


      圖5 Modbus RTU 主站初始化

      圖中各參數(shù)含義如下

      編號符號/含義說                   明
      aEN / 使能必須保證每一掃描周期都被使能(使用SM0.0)。
      bMode / 模式為1時使能為Modbus協(xié)議;為0時恢復為PPI協(xié)議。
      cBaud / 波特率支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。
      dParity / 校驗校驗方式選擇:0=無校驗;1=奇校驗,2=偶校驗。
      eTimeout / 超時主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000毫秒,允許設置的范圍為1-32767。這個值必須設置足夠大以保證從站有時間響應。
      fDone / 完成位初始化完成,此位會自動置1。
      gError / 錯誤位初始化錯誤代碼。

      表3

      調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送一個Modbus 請求。


      圖6 調(diào)用Modbus RTU 主站讀寫子程序

      圖中各參數(shù)含義如下

      編號符號/含義                   
      aEN / 使能同一時刻只能有一個讀寫功能使能。
      bFirst / 讀寫請求位 每一個新的讀寫請求必須使用脈沖觸發(fā)。
      cSlave / 從站地址可選擇的范圍1–247
      dRW / 讀寫操作位0=讀, 1=寫。
      eAddr / 讀寫從站的數(shù)據(jù)地址選擇讀寫的數(shù)據(jù)類型:
      00001  0xxxx - 開關(guān)量輸出
      10001  1xxxx - 開關(guān)量輸入
      30001  3xxxx - 模擬量輸入
      40001  4xxxx - 保持寄存器。
      fCount / 數(shù)據(jù)的個數(shù)通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù))。
      gDaptPtr / 數(shù)據(jù)指針如果是讀指令,讀回的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中;
      如果是寫指令,要寫出的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中。
      hDone / 完成位讀寫功能完成位。
      iError / 錯誤代碼只有在Done位為1時,錯誤代碼才有效。

      表4

      從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗,連接從站的站地址是3,數(shù)據(jù)存儲區(qū)為VB2000開始的區(qū)域。

      4.2 CP341 做Modbus 從站的硬件組態(tài)

      4.2.1 硬件組態(tài)


      圖7 S7-300側(cè)硬件組態(tài)

      4.2.2 設置Modbus參數(shù)


      圖8 消息楨字符結(jié)構(gòu)

      按照上述操作設置參數(shù),從上圖可以看出,本例中的傳輸波特率9.6Kb/s,1位起始位,8位數(shù)據(jù)位,偶校驗位,1位停止位,從站站地址是3,主從通訊設備的字符幀格式和波特率等參數(shù)設置需要一致。


      圖9 RS422/485 接口組態(tài)

      RS422/485接口只能一個有效,接口的選擇只需要組態(tài)而不需要在硬件上短接。

      4.2.3 Modbus驅(qū)動的下載
      當配置好Modbus通信的參數(shù)后,保存前需要向CP341下載Modbus Slave的驅(qū)動,一旦下載完成后無需再次下載。
      需要注意的是,在下載驅(qū)動時(可以在無Dongle情況下下載),需要將CPU停機,然后下載,操作過程如下所示。


      圖10 下載Dongle時,需要CPU停機

       


      圖11 從站驅(qū)動下載后結(jié)果

      4.2.4 CP341做Modbus從站的編程
      從Step7 軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示。


      圖12 Modbus Slave 例程打開路徑

      OB1中調(diào)用FB80編程如下:


      圖13 FB80程序塊調(diào)用

      CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK為1信號,否則CP_START_ERROR為1,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態(tài)中在線后的CP341的診斷緩沖區(qū)察看詳細的錯誤信息,錯誤信息對照和處理方式可以參考
      《S7-300以用于PtP CP Modbus 協(xié)議RTU格式S7的可裝載驅(qū)動程序為從站》的手冊。

      FB80的各參數(shù)含義如下

      LADDR硬件組態(tài)中CP341的起始邏輯地址,本例中為256
      START_TIMER初始化超時定時器,本例中為T120
      START_TIME初始化定時器時間,本例中為5S
      OB_MASKI/O訪問錯誤屏蔽位,本例中為TrueI/O訪問錯誤已屏蔽)
      CP_STARTFB初始化使能位,本例中為M0.0
      CP_START_FMCP_START 初始化的上升沿位,本例中為M0.1
      CP_NDRCP卡寫操作位,本例中為m0.2
      CP_START_OK初始化完成且無錯誤,本例中為M0.3
      CP_START_ERROR初始化完成,但有錯誤,本例中為M0.4
      ERROR_NR錯誤號,本例中為MW2
      ERROR_INFO錯誤信息,本例中為MW4

      表5


      5. 通訊測試
      Modbus RTU格式通信協(xié)議是以主從的方式進行數(shù)據(jù)傳輸?shù)?,在傳輸?shù)倪^程中主站是主動方,即主站發(fā)送數(shù)據(jù)請求報文到從站,從站返回響應報文。Modbus 系統(tǒng)間的數(shù)據(jù)交換是通過功能碼來控制的,以下對現(xiàn)場常用的功能碼進行分類測試,關(guān)于功能碼的詳細信息請參考手冊。

      5.1 FC01/05/15功能碼
      CP341從站的通訊區(qū)域配置


      圖14 FC01/05/15 參數(shù)組態(tài)界面

      FC01、FC05、FC15對應的數(shù)據(jù)區(qū)為位輸出,數(shù)據(jù)的傳遞以位為單位,可以讀寫操作,用戶地址區(qū)為0xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區(qū)不能沖突),右邊對應的是S7-300的數(shù)據(jù)區(qū)。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區(qū)為00001 ~ 00008,對應S7-300的M10.0 ~ M10.7,并且以此為例說明FC01功能碼的通訊。
      S7-200主站程序調(diào)用


      圖15 功能碼FC01使用

      S7-200主站,用功能碼FC01讀取從站8點數(shù)字量輸出,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。


      圖16 FC01功能碼數(shù)據(jù)交換

      5.2 FC02功能碼
      CP341從站的通訊區(qū)域配置


      圖17 FC02 參數(shù)組態(tài)界面

      FC02對應的數(shù)據(jù)區(qū)為位輸出,數(shù)據(jù)的傳遞以位為單位,只讀操作,用戶地址區(qū)為1xxxx,Modbus地址在信息傳遞中從0開始,如上圖,左邊為信息傳遞地址(地址區(qū)不能沖突),右邊對應的是S7-300的數(shù)據(jù)區(qū)。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區(qū)為10001 ~ 10008,對應S7-300的M20.0 ~ M20.7,并且以此為例說明FC02功能碼的通訊。
      S7-200主站程序調(diào)用


      圖18 功能碼FC02使用

      S7-200主站,用功能碼FC02讀取從站8點數(shù)字量輸入,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。


      圖19 FC02功能碼數(shù)據(jù)交換

      5.3 FC03/06/16 功能碼
      CP341從站的通訊區(qū)域配置


      圖20 FC03/06/16參數(shù)組態(tài)界面

      FC03/06/16 對應的數(shù)據(jù)區(qū)為寄存器,數(shù)據(jù)的傳遞以字為單位,可以讀寫操作,用戶地址區(qū)為4xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數(shù)據(jù)區(qū),左邊傳輸?shù)刂凡豢筛?,右邊只對應一個數(shù)據(jù)區(qū)。例如用戶地址
      區(qū)為40001 ~ 40004,對應S7-300數(shù)據(jù)區(qū)為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明
      FC03功能碼的通訊。
      S7-200主站程序調(diào)用


      圖21功能碼FC03使用

      S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。


      圖22 FC03功能碼數(shù)據(jù)交換


      5.4 FC04 功能碼
      CP341從站的通訊區(qū)域配置


      圖23 FC04參數(shù)組態(tài)界面

      FC04對應的數(shù)據(jù)區(qū)為寄存器輸入,數(shù)據(jù)的傳遞也以字為單位,只讀操作,用戶地址區(qū)3xxxx,Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數(shù)據(jù)區(qū),左邊傳輸?shù)刂凡豢筛?,右邊只對應一個數(shù)據(jù)區(qū)。例如用戶地址區(qū)為30001 ~ 30004,對應S7-300數(shù)據(jù)區(qū)為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明FC04功能碼的通訊。
      S7-200主站程序調(diào)用


      圖24功能碼FC04使用

      S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。


      圖25 FC04功能碼數(shù)據(jù)交換

      5.5 Limits 欄


      圖26 Limits 參數(shù)組態(tài)界面

      對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關(guān)S7-300存儲區(qū),即使用這些功能碼時,S7-300存儲區(qū)需要在設定的最小和最大的范圍之間,如果訪問的區(qū)域超出這個范圍,則訪問會被拒絕,同時輸出報錯誤信息。


      6. 總結(jié)
      本文檔以S7-200為主站和CP341為從站簡單介紹了Modbus RTU通訊,關(guān)于通訊的組態(tài)設置,編程以及常用功能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設備等進行串行通信的參考。


      7. 相關(guān)參考資料
      關(guān)于西門子串行通信應用的文檔可以參考相關(guān)產(chǎn)品手冊,或登錄下載中心網(wǎng)站http://www.ad..cn/download/ , 搜索下載如下文檔:
      A0006:串口通訊模塊的信息與使用
      A0081:CP340/341/440/441通訊及編程
      A0336:CP341 Modbus RTU多站點輪詢
      A0440:CP340/341基于ASCII驅(qū)動協(xié)議的多站點輪詢
      A0384:S7-300 CP341作主S7-200作從的Modbus通信

      關(guān)鍵詞
      CP341,Modbus RTU,功能碼,S7-200


        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多