亚洲中文久久精品无码WW16,亚洲国产精品久久久久爰色欲,人人妻人人澡人人爽欧美一区九九,亚洲码欧美码一区二区三区

國越貿易(上海)有限公司

力士樂氣動,HYDAC傳感器,賀德克傳感器,ATOS電磁閥,阿托斯比例閥,ELTRA編碼器

化工儀器網收藏該商鋪

10

聯系電話

13004110107

 QQ交談      小標 您所在位置:首頁 > 資料下載> 西門子S7-200 Modbus例程
產品搜索

請輸入產品關鍵字:

菲尼克斯PHOENIX

PILZ皮爾茲

美國AIRPOT

Schonbuch訊巴赫

Euchner安士能

Banner邦納

BUCHER布赫

SICK西克

HIRSCHMANN赫斯曼

德國力士樂Rexroth氣動閥

意大利ATOS阿托斯

意大利ELTRA意爾創

德國HYDAC賀德克

美國UE

德國博恩斯坦Bernstein

德國HAWE哈威

美國MOOG穆格

VICKERS美國威格士

德國BURKERT寶德

德國SAMSON薩姆森

德國PILZ皮爾茲

德國BALLUFF巴魯夫

德國KUBLER庫伯勒

德國KRACHT克拉克

德國EBRO依博羅

德國HENGSTLER亨士樂

意大利GEFRAN杰弗倫

美國MAC

IFM易福門

派克

美國米頓羅

聯系方式
地址:上海市長寧區延安中路188號2902室
郵編:200001
聯系人:張經理
電話:021-13004110107
傳真:
手機:13004110107
售后電話:13004110107
留言:發送留言
個性化:www.wister-china.com
網址:www.wister-china.com
商鋪:http://www.weixunsd.com/st306190/
資料下載

西門子S7-200 Modbus例程

最近更新時間:2015-10-22

提 供 商:國越貿易(上海)有限公司資料大?。?/span>217.5KB

文件類型:WORD 文檔下載次數:334次

資料類型:未知文件瀏覽次數:2079次

詳細介紹:

西門子S7-200 Modbus例程

參考本文介紹可以很快掌握MODBUS通訊的應用問題,

使用下面的例程你可以在S7-200CPU之間設置一個簡單的Modbus通訊。
這個例子是關于Modbus功能碼6的(寫從站保持寄存器), 也可以作為其他所支持的功能碼:1, 2, 3, 4, 5, 15 和16 的基本參數設置步驟 。

要求:
要使用Modbus協議必須先在STEP 7 Micro/Win上安裝指令庫 。
Modbus主站協議只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。

1. 硬件設置 

2. 參數匹配 

3. 指令庫的存儲地址 

4. 保持寄存器值得傳輸 

1. 硬件設置
例程中的Modbus通訊是在兩個S7-200 CPU的0號通訊口間進行的(每個CPU都有兩個通訊口)。在主站側也可以選擇相應庫文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通過1號通訊口通信。通訊口1與Micro/WIN建立PG或PC連接,兩個CPU的通訊口0通過PPI電纜進行連接(電纜的 針腳 連接為2,3,7,8)。

( 26 KB ) 
圖. 01

2. 參數匹配
對于MODBUS通訊, 主站側需要程序庫 "MBUS_CTRL" 和 "MBUS_MSG", 

從站側需要程序庫 "MBUS_INIT" and "MBUS_SLAVE"。

在 Micro/WIN 中您需要為主站和從站新建一個項目,程序與參數設置見圖.02。
必須要保證主站與從站的“Baud"和"Parity"的參數設置要一致,并且程序塊"MBUS_MSG"中的"Slave"地址要與程序塊"MBUS_INIT"中的"Addr"所設置的一致 (見圖. 02)。
Micro/WIN“系統塊"中設置的0通訊口的波特率與MODBUS協議無關("Mode" = "1")。


圖. 02

下面的表格列出了程序塊各個參數選項及其意義

主站

MBUS_CTRL

參數

意義

選項

EN

使能


Mode

協議選擇

0=PPI, 1=MODBUS

Baud

傳輸速率 kbps

1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

Parity

校驗選擇

0=無校驗, 1=奇校驗, 2=偶校驗

Timeout

從站的zui長響應時間 ms


Done

“完成"標志位


Error

錯誤代碼

1)

表 01

1) 參看STEP 7 Micro/WIN 幫助: "MODBUS主站執行MBUS_MSG時的錯誤代碼MBUS_MSG" 。

MBUS_MSG

參數

意義

選項

EN

使能


First

讀寫請求位


Slave

從站地址


RW

"讀" 或 "寫"

0=讀, 1=寫

Addr

讀寫從站的數據地址

0 .. 128 = 數字量輸出 Q0.0 .. Q15.7
1001 .. 10128 = 數字量輸入 I0.0 .. I15.7
30001 .. 30092 = 模擬量輸入 AIW0 .. AIW62
40001 .. 49999 = 保持寄存器 2

Count

位或字的個數 (0xxxx, 1xxxx) / words (3xxxx, 4xxxx)


DataPtr

V存儲區起始地址指針


Done

"完成" 標志位


Error

錯誤代碼

1)

表 02

1)參看STEP 7 Micro/WIN 幫助: "MODBUS主站執行MBUS_MSG時的錯誤代碼MBUS_MSG" 。

從站

MBUS_INIT

參數

意義

選項

EN

使能


Mode

協議選擇

0=PPI, 1=MODBUS

Addr

從站地址


Baud

傳輸速率 kbps

1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

Parity

校驗

0=無校驗, 1=奇校驗, 2=偶校驗

Delay

超時時間 ms


MaxIQ

可使用的數字輸入輸出點數

2)

MaxAI

可使用的模擬量輸入點數

2)

MaxHold

保持寄存器字的zui大數量

2)

HoldStart

保持寄存器的起始地址(40001)


Done

完成標志位


Error

錯誤代碼

3)

表 03

2) zui大的地址取決于所用CPU的類型及其zui大值。
3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協議的錯誤代碼"。

MBUS_SLAVE

參數

意義

選項

EN

使能


Done

完成標志位


Error

錯誤代碼

3)

表 04

3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協議的錯誤代碼" 。

3. 庫的存儲地址
項目完成后必須要在Micro/WIN中定義庫的存儲地址,當定義完存儲區后, 要保證在任何情況下不能再被其它程序所使用 (主站側: "DataPtr" + "Count" 從站側: "HoldStart" + "MaxHold")。


圖. 03

4. 保持寄存器值的傳輸
將程序下載到相應的CPU后,可以在狀態表中給主站側的V存儲區賦值,然后監視從站的變化。
當主站的I0.0使能后,VW2中的內容就被發送到從站并寫入從站的VW2 。

保持寄存器值的傳輸見圖. 04。
指針"DataPtr" 代表了V區被讀的起始地址。
參數 "Count" 表明了地址"Addr" = "4xxxx" (保持寄存器)以字為單位被讀的個數。
主站中被讀取的V存儲區被寫入地址為"Addr" = "40002" ("RW" = "1")的保持寄存器中。
保持寄存器是以字為單位工作的,它與從站的V區地址對應。
指針 "HoldStart" 明確了與保持寄存器起始地址40001相對應的V存儲區的初始地址。
可以這樣計算從站的V區目標指針:

2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2

另外,要保證"MaxHold" 定義的數據區能夠包含主站側所要寫入的數據區 :

MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2

( 38 KB ) 
Fig. 04

關于STEP 7 Micro/WIN MOBDUS 庫的更多信息可以參看 S7-200 系統手冊 ( Entry ID 1109582) 和 STEP 7 Micro/WIN 幫助。

如何在 STEP 7 Micro/WIN 中找到 Modbus RTU 協議和 USS 協議操作庫?


說明:
在 STEP 7 Micro/WIN 中,Modbus RTU 協議和 USS 協議操作庫位于操作樹的“庫"文件夾中。MODBUS 函數庫要求 STEP 7 Micro/WIN 為 V3.2 或更高版本。

( 24 KB ) 
圖1: 添加函數庫

這些庫是附加函數庫,并非組態軟件 STEP 7 Micro/WIN 的組成部分。

您如果需要使用 Modbus RTU 協議,必須購買“SIMATIC STEP 7 Micro/WIN ADD ON: Function Library V1.1 (USS + MODBUS) for STEP 7 Micro/WIN 32"軟件。

這個可選附加函數庫的訂貨號是 6ES7830-2BC00-0YX0。

安裝順序:
先安裝“STEP 7 Micro/WIN 32 Toolbox V1.0"(包括庫),然后安裝“STEP 7 Micro/WIN"。

注意:
這個函數庫包含可以在 STEP 7 Micro/WIN V3.2 中使用的 Modbus RTU 協議庫和 USS 協議庫。

如果您安裝了 STEP 7 Micro/WIN V4.0 SP5 或者更高版本,那么操作庫中就會包含下列函數:

Modbus RTU Master V1.2 對應端口 0 和端口 1 

Modbus RTU Slave V1.0 對應端口 0 

USS protocol V2.3 對應端口 0 和端口 1 







· 1.s232/485轉換器,485與plc的PPI口的連接方式是:

       3---Data+/A

       8---Data-/A


2.或自己制作


Modbus RTU 主站指令庫 
西門子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站協議庫(西門子標準庫指令)。 

圖 1. 西門子標準指令庫(Micro/WIN V4.0 SP5) 
  注意: 

1. Modbus RTU 主站指令庫的功能是通過在用戶程序中調用預先編好的程序功能塊實現的,該庫對 Port0 和Port 1 有效。該指令庫將設置通信口工作在自由口模式下。 
2. Modbus RTU 主站指令庫使用了一些用戶中斷功能,編其他程序時不能在用戶程序中禁止中斷。 
3. Modbus RTU 主站庫對CPU的版本有要求。CPU 的版本必須為 2.00 或者 2.01(即訂貨號為6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。 
使用 Modbus RTU 主站指令庫,可以讀寫 Modbus RTU 從站的數字量、模擬量 I/O 以及保持寄存器。 
要使用 Modbus RTU 主站指令庫,須遵循下列步驟: 

Modbus RTU 主站功能編程 
 1. 調用 Modbus RTU 主站初始化和控制子程序 
使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制: 

用 SM0.0 調用 Modbus RTU 主站初始化與控制子程序 
各參數意義如下: 
  
a. EN 使能: 必須保證每一掃描周期都被使能(使用 SM0.0) 
b. Mode 模式: 為 1 時,使能 Modbus 協議功能;為 0 時恢復為系統 PPI 協議 
c. Baud 波特率: 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。 
d. Parity 校驗: 校驗方式選擇 
  0=無校驗 
1=奇較驗 
2=偶較驗    
e. Timeout 超時: 主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000 毫秒(1 秒),允許設置的范圍為1 - 32767。 
    注意: 這個值必須設置足夠大以保證從站有時間響應。 

f. Done 完成位: 初始化完成,此位會自動置1??梢杂迷撐粏?nbsp;MBUS_MSG 讀寫操作(見例程) 
g. Error 初始化錯誤代碼(只有在 Done 位為1時有效): 
  0= 無錯誤 
1= 校驗選擇非法 
2= 波特率選擇非法 
3= 模式選擇非法   
2. 調用 Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus 請求; 
調用Modbus RTU 主站讀寫子程序 
各參數意義如下: 
a. EN 使能: 同一時刻只能有一個讀寫功能(即 MBUS_MSG)使能 
    注意:建議每一個讀寫功能(即 MBUS_MSG)都用上一個 MBUS_MSG 指令的Done 完成位來激活,以保證所有讀寫指令循環進行(見例程)。 
b. First 讀寫請求位: 每一個新的讀寫請求必須使用脈沖觸發 
c. Slave 從站地址: 可選擇的范圍   1 -247 
d. RW 從站地址: 0 = 讀, 1 = 寫 
    注意: 

1. 開關量輸出和保持寄存器支持讀和寫功能 
2. 開關量輸入和模擬量輸入只支持讀功能 
e. Addr 讀寫從站的 選擇讀寫的數據類型 
數據地址: 00001 至 0xxxx - 開關量輸出 
  10001 至 1xxxx - 開關量輸入 
30001 至 3xxxx - 模擬量輸入 
40001 至 4xxxx - 保持寄存器 
f. Count 數據個數 通訊的數據個數(位或字的個數) 
    注意: Modbus主站可讀/寫的zui大數據量為120個字(是指每一個 MBUS_MSG指令) 
g. DataPtr 數據指針: 1. 如果是讀指令,讀回的數據放到這個數據區中 
  2. 如果是寫指令,要寫出的數據放到這個數據區中 
h. Done 完成位 讀寫功能完成位 
i. Error 錯誤代碼: 只有在 Done 位為1時,錯誤代碼才有效 
  0 = 無錯誤 
1 = 響應校驗錯誤 
2 = 未用 
3 = 接收超時(從站無響應) 
4 = 請求參數錯誤(slave address, Modbus address, count,RW) 
5 = Modbus/自由口未使能 
6 = Modbus正在忙于其它請求 
7 = 響應錯誤(響應不是請求的操作) 
8 = 響應CRC校驗和錯誤 

101 = 從站不支持請求的功能 
102 = 從站不支持數據地址 
103 = 從站不支持此種數據類型 
104 = 從站設備故障 
105 = 從站接受了信息,但是響應被延遲 
106 = 從站忙,拒絕了該信息 
107 = 從站拒絕了信息 
108 = 從站存儲器奇偶錯誤 
  
  
常見的錯誤: 
? 如果多個 MBUS_MSG 指令同時使能會造成 6 號錯誤 
? 從站 delay 參數設的時間過長會造成主站 3 號錯誤 
? 從站掉電或不運行,網絡故障都會造成主站 3 號錯誤 
3. 在 CPU 的 V 數據區中為庫指令分配存儲區(Library Memory) 
Modbus Master 指令庫需要一個284個字節的全局 V 存儲區。 
  
關于 Modbus RTU 主站協議庫的補充說明 
此為西門子正式推出的標準庫指令說明資料。 
在 Modbus RTU Master 協議和 PPI 協議之間切換: 
Modbus RTU Master 協議指令庫使通信口工作在自由口模式下,此時不能與 Micro/WIN 軟件通信。要在切換回PPI 協議,可以: 
? 將 MBUS_CTRL 指令的 Mode 輸入端設置為邏輯“0" 
? 將 CPU 的允許模式選擇開關置為 STOP 位置 
Modbus RTU Master 協議庫的執行時間: 
Modbus RTU Master 協議庫的 MBUS_CTRL 指令不需要很長的執行時間。MBUS_需要 1.11 ms用于初始化,在后續的每個掃描周期中只占用 0.41 ms。 
調用 MBUS_MSG 子程序會加長處理時間。大部分時間都用于 CRC 校驗的計算。每讀、寫一個字的數據就需要 1.85 ms掃描時間。數據zui多的情況下(讀、寫 120 字的數據),掃描時間大概會擴增加 222ms。讀操作的時間主要消耗在接收數據上;寫操作的時間主要消耗在發送數據上。 
Modbus 地址 
通常 Modbus 地址由 5 位數字組成,包括起始的數據類型代號,以及后面的偏移地址。Modbus Master協議庫把標準的 Modbus 地址映射為所謂 Modbus 功能號,讀寫從站的數據。Modbus Master協議庫支持如下地址: 
? 00001 - 09999:數字量輸出( 線圈) 
? 10001 - 19999:數字量輸入(觸點) 
? 30001 - 39999:輸入數據寄存器(通常為模擬量輸入) 
? 40001 - 49999:數據保持寄存器 
Modbus Master 協議庫支持的功能 
為了支持上述 Modbus 地址的讀寫,Modbus Master 協議庫需要從站支持下列功能: 
表 1. 需要從站支持的功能 
Modbus 地址 讀/寫 Modbus 從站須支持的功能 
00001 - 09999 
數字量輸出 讀 功能 1 
寫 功能 5:寫單輸出點 
功能 15:寫多輸出點 
10001 - 19999 
數字量輸入 讀 功能 2 
寫 - 
30001 - 39999 
輸入寄存器 讀 功能 4 
寫 - 
40001 - 49999 
保持寄存器 讀 功能 3 
寫 功能 6:寫單寄存器單元 
功能 16:寫多寄存器單元 
  
Modbus 地址和 S7-200 存儲區地址的映射 
S7-200 通過 Modbus Master 和 Slave 協議庫通信時,Modbus 地址和 S7-200 內存儲區地址的映射關系都類似。 
Modbus 保持寄存器地址映射舉例: 
  
Modbus 保持寄存器地址 
40001 12 34 
40002 56 78 
40003 9A BC 
  
S7-200 存儲區字尋址 
VW200 12 34 
VW202 56 78 
VW204 9A BC 
  
S7-200 存儲區字節尋址 
VB200 12 
VB201 34 
VB202 56 
VB203 78 
VB204 9A 
VB205 BC 

  
Modbus 數字量地址映射舉例: 
位地址(0xxxx 和 1xxxx)數據總是以字節為單位打包讀寫。*個字節中的zui低有效位對應 Modbus地址的起始地址。如下圖所示: 
  
數字量地址映射舉例 
   
常問問題 
  Modbus RTU 主站庫對 CPU 的版本是否有要求,為什么編譯例子程序時,會遇到 4個錯誤? 
Modbus RTU 主站庫對 CPU 的版本確實有要求,CPU 的版本必須為 2.00 或者2.01(即訂貨號為6ES721*-***23-0BA*),1.22 版本之前(包括 1.22 版本)的 S7-200 CPU不支持。 
  Modbus 指令庫啟動后,如何通過同一個通信端口進行 CPU監控? 
Modbus 指令庫使用的是 CPU 的自由口通信功能,工作在自由口模式下的通訊口不能使用 Micro/WIN 的 PPI編程通信監控。如果通信口都已經被占用,可以考慮: 
? 加一個通信模塊(如 EM 277、CP 243-1、EM 241 等)擴展出一個編程通信口 
? 中止自由口模式,可以將 CPU 上的模式開關從 RUN 撥到 STOP;或者保持處于 RUN 狀態,用程序停止指令庫的Modbus 模式(參見指令庫應用) 
  如何理解 Modbus 地址與功能碼的區別? 
Modbus 地址與 Modbus 的功能碼是兩個層次的概念。 
根據 Modbus 通信協議,Modbus 數據的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx的形式,分別表示數字量輸出、數字量輸入、模擬量輸入等數據地址。在使用 S7-200 的指令庫時,Modbus 數據地址與 S7-200的 I/O 和數據存儲區地址間有特定的對應關系。 
有些設備表明它支持 Modbus RTU 通信協議,但也詳細提供了讀寫數據的詳細通信幀格式,其中包括如何 Modbus站的地址,需要讀寫數據類型、長度等等。數據幀有特定字節指出此指令讀寫的數據類型和地址,此字節的數據內容即所謂“功能碼",如功能 1讀取單個/多個數字量輸出點的值。 
支持 Modbus 協議的設備或軟件,使用時用戶直接設置或看到的應當是 Modbus 數據地址。Modbus地址所訪問的數據,是通過各種“功能"讀寫而來。功能碼是 Modbus 地址的底層。如果 Modbus 通信的一方提供的所謂Modbus 協議只有功能碼,則需要注意了解此功能號與 Modbus 地址間的對應關系。 
  如何訪問大于 9999 的保持寄存器地址? 
通常 Modbus 協議的保持寄存器地址范圍在 40001 - 49999 之間。對于多數應用來說已經夠了。但有些 Modbus從站把地址映射到保持寄存器區的地址超過 9999 的部分。 
Modbus Master 協議庫支持超過 9999 的保持寄存器地址。地址范圍為 400001 - 465536。只需在調用MBUS_MSG 子程序時給 Addr 參數賦相應的值即可,如 416768。 
  Modubs Master 擴展地址模式僅支持保持寄存器區,不支持其他地址類型。

[ 打印 ] [ 返回頂部 ] [ 關閉

| 商鋪首頁 | 公司檔案 | 產品展示 | 供應信息 | 公司動態 | 詢價留言 | 聯系我們 | 會員管理 |
化工儀器網 設計制作,未經允許翻錄必究.Copyright(C) http://www.weixunsd.com, All rights reserved.
以上信息由企業自行提供,信息內容的真實性、準確性和合法性由相關企業負責,化工儀器網對此不承擔任何保證責任。
溫馨提示:為規避購買風險,建議您在購買產品前務必確認供應商資質及產品質量。
二維碼 在線交流

掃一掃訪問手機站