<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何用西門子S7-200實(shí)現(xiàn)Modbus通信?

          如何用西門子S7-200實(shí)現(xiàn)Modbus通信?

          作者: 時(shí)間:2016-12-16 來(lái)源:網(wǎng)絡(luò) 收藏
          要求:
          要使用Modbus協(xié)議必須先在STEP 7 Micro/Win上安裝指令庫(kù) 。
          Modbus主站協(xié)議只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。
          1. 硬件設(shè)置
          2. 參數(shù)匹配
          3. 指令庫(kù)的存儲(chǔ)地址
          4. 保持寄存器值得傳輸
          1. 硬件設(shè)置
          例程中的Modbus通訊是在兩個(gè)S7-200 CPU的0號(hào)通訊口間進(jìn)行的(最好每個(gè)CPU都有兩個(gè)通訊口)。在主站側(cè)也可以選擇相應(yīng)庫(kù)文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通過(guò)1號(hào)通訊口通信。通訊口1與Micro/WIN建立PG或PC連接,兩個(gè)CPU的通訊口0通過(guò)PPI電纜進(jìn)行連接(電纜的 針腳 連接為2,3,7,8)。

          圖01

          2. 參數(shù)匹配
          對(duì)于MODBUS通訊, 主站側(cè)需要程序庫(kù) "MBUS_CTRL" 和 "MBUS_MSG", 從站側(cè)需要程序庫(kù) "MBUS_INIT" and "MBUS_SLAVE"。
          在 Micro/WIN 中您需要為主站和從站新建一個(gè)項(xiàng)目,程序與參數(shù)設(shè)置見圖.02。
          必須要保證主站與從站的“Baud”和"Parity"的參數(shù)設(shè)置要一致,并且程序塊"MBUS_MSG"中的"Slave"地址要與程序塊"MBUS_INIT"中的"Addr"所設(shè)置的一致 (見圖. 02)。
          Micro/WIN“系統(tǒng)塊”中設(shè)置的0通訊口的波特率與MODBUS協(xié)議無(wú)關(guān)("Mode" = "1")。

          圖02

          下面的表格列出了程序塊各個(gè)參數(shù)選項(xiàng)及其意義
          主站
          MBUS_CTRL
          參數(shù) 意義 選項(xiàng) EN 使能 Mode 協(xié)議選擇 0=PPI, 1=MODBUS Baud 傳輸速率 kbps 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Parity 校驗(yàn)選擇 0=無(wú)校驗(yàn), 1=奇校驗(yàn), 2=偶校驗(yàn) Timeout 從站的最長(zhǎng)響應(yīng)時(shí)間 ms Done “完成”標(biāo)志位 Error 錯(cuò)誤代碼 1) 表 01
          1) 參看STEP 7 Micro/WIN 幫助: "MODBUS主站執(zhí)行MBUS_MSG時(shí)的錯(cuò)誤代碼MBUS_MSG" 。
          MBUS_MSG
          參數(shù) 意義 選項(xiàng) EN 使能 First 讀寫請(qǐng)求位 Slave 從站地址 RW "讀" 或 "寫" 0=讀, 1=寫 Addr 讀寫從站的數(shù)據(jù)地址 0 .. 128 = 數(shù)字量輸出 Q0.0 .. Q15.7
          1001 .. 10128 = 數(shù)字量輸入 I0.0 .. Q15.7
          30001 .. 30092 = 模擬量輸入 AIW0 .. AIW62
          40001 .. 49999 = 保持寄存器 2 Count 位或字的個(gè)數(shù) (0xxxx, 1xxxx) / words (3xxxx, 4xxxx) DataPtr V存儲(chǔ)區(qū)起始地址指針 Done 完成 標(biāo)志位 Error 錯(cuò)誤代碼 1) 表 02
          1)參看STEP 7 Micro/WIN 幫助: "MODBUS主站執(zhí)行MBUS_MSG時(shí)的錯(cuò)誤代碼MBUS_MSG" 。
          從站
          MBUS_INIT
          參數(shù) 意義 選項(xiàng) EN 使能 Mode 協(xié)議選擇 0=PPI, 1=MODBUS Addr 從站地址 Baud 傳輸速率 kbps 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Parity 校驗(yàn) 0=無(wú)校驗(yàn), 1=奇校驗(yàn), 2=偶校驗(yàn) Delay 超時(shí)時(shí)間 ms MaxIQ 可使用的數(shù)字輸入輸出點(diǎn)數(shù) 2) MaxAI 可使用的模擬量輸入點(diǎn)數(shù) 2) MaxHold 保持寄存器字的最大數(shù)量 2) HoldStart 保持寄存器的起始地址(40001) Done 完成標(biāo)志位 Error 錯(cuò)誤代碼 3) 表 03
          2) 最大的地址取決于所用CPU的類型及其最大值。
          3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協(xié)議的錯(cuò)誤代碼”。
          MBUS_SLAVE
          參數(shù) 意義 選項(xiàng) EN 使能 Done 完成標(biāo)志位 Error 錯(cuò)誤代碼 3) 表 04
          3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協(xié)議的錯(cuò)誤代碼” 。
          3. 庫(kù)的存儲(chǔ)地址
          項(xiàng)目完成后必須要在Micro/WIN中定義庫(kù)的存儲(chǔ)地址,當(dāng)定義完存儲(chǔ)區(qū)后, 要保證在任何情況下不能再被其它程序所使用 (主站側(cè): "DataPtr" + "Count" 從站側(cè): "HoldStart" + "MaxHold")。

          圖03

          4. 保持寄存器值的傳輸
          將程序下載到相應(yīng)的CPU后,可以在狀態(tài)表中給主站側(cè)的V存儲(chǔ)區(qū)賦值,然后監(jiān)視從站的變化。
          當(dāng)主站的I0.0使能后,VW2中的內(nèi)容就被發(fā)送到從站并寫入從站的VW2 。
          保持寄存器值的傳輸見圖. 04。
          指針"DataPtr" 代表了V區(qū)被讀的起始地址。
          參數(shù) "Count" 表明了地址"Addr" = "4xxxx" (保持寄存器)以字為單位被讀的個(gè)數(shù)。
          站中被讀取的V存儲(chǔ)區(qū)被寫入地址為"Addr" = "40002" ("RW" = "1")的保持寄存器中。
          保持寄存器是以字為單位工作的,它與從站的V區(qū)地址對(duì)應(yīng)。
          指針 "HoldStart" 明確了與保持寄存器起始地址40001相對(duì)應(yīng)的V存儲(chǔ)區(qū)的初始地址。
          可以這樣計(jì)算從站的V區(qū)目標(biāo)指針:
          2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2
          另外,要保證"MaxHold" 定義的數(shù)據(jù)區(qū)能夠包含主站側(cè)所要寫入的數(shù)據(jù)區(qū) :
          MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2


          圖04

          關(guān)于STEP 7 Micro/WIN MOBDUS 庫(kù)的更多信息可以參看 S7-200 系統(tǒng)手冊(cè) ( Entry ID 1109582) 和 STEP 7 Micro/WIN 幫助。
          如何在 STEP 7 Micro/WIN 中找到 Modbus RTU 協(xié)議和 USS 協(xié)議操作庫(kù)?
          說(shuō)明:
          在 STEP 7 Micro/WIN 中,Modbus RTU 協(xié)議和 USS 協(xié)議操作庫(kù)位于操作樹的“庫(kù)”文件夾中。MODBUS 函數(shù)庫(kù)要求 STEP 7 Micro/WIN 為 V3.2 或更高版本。

          這些庫(kù)是附加函數(shù)庫(kù),并非組態(tài)軟件 STEP 7 Micro/WIN 的組成部分。
          您如果需要使用 Modbus RTU 協(xié)議,必須購(gòu)買“SIMATIC STEP 7 Micro/WIN ADD ON: Function Library V1.1 (USS + MODBUS) for STEP 7 Micro/WIN 32”軟件。
          這個(gè)可選附加函數(shù)庫(kù)的訂貨號(hào)是 6ES7830-2BC00-0YX0。
          安裝順序:
          先安裝“STEP 7 Micro/WIN 32 Toolbox V1.0”(包括庫(kù)),然后安裝“STEP 7 Micro/WIN”。
          注意:
          這個(gè)函數(shù)庫(kù)包含可以在 STEP 7 Micro/WIN V3.2 中使用的 Modbus RTU 協(xié)議庫(kù)和 USS 協(xié)議庫(kù)。
          如果您安裝了 STEP 7 Micro/WIN V4.0 SP5 或者更高版本,那么操作庫(kù)中就會(huì)包含下列函數(shù):
          Modbus RTU Master V1.2 對(duì)應(yīng)端口 0 和端口 1
          Modbus RTU Slave V1.0 對(duì)應(yīng)端口 0
          USS protocol V2.3 對(duì)應(yīng)端口 0 和端口 1



          關(guān)鍵詞: 西門子S7-200Modbus通

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();