一本一道AV无码中文字幕,久久久国产一区二区三区四区小说,国产a√精品区二区三区四区,国产精品人人妻人色五月

移動端

S7-200 Modbus RTU 通信范圍

2018年07月15日 11:39上海地友自動化設備有限公司點擊量:950

在 S7-200 CPU 通信口上實現的是 RS485 半雙工通信,使用的是 S7-200 的自由口功能。 
通過 S7-200 CPU 通信口的自由口模式實現 Modbus 通信協議,可以通過無線數據電臺等慢速通信設備傳輸。 這為組成 S7-200 之間的簡單無線通信網絡提供了便利。
詳細情況請參考《S7-200系統手冊》(2002 年 10 月或以后版本)的相應章節。

 常問問題

S7-200 是否支持 Modbus ASCII 通信模式?

西門子不提供支持上述模式的的現成指令庫,需要用戶自己用自由口模式編程。

目錄

  • 1 Modbus RTU主站
  • 1.1 主站指令庫
  • 1.2 主站功能編程
  • 1.3 主站協議及地址
  • 1.4 主站例程
  • 1.5 主站常問問題
  • 2 Modbus RTU從站
  • 2.1 CPU 上的通信口(Port0)支持 Modbus RTU 從站通信協議
  • 2.2 從站編程基本步驟
  • 2.3 從站地址與S7-200的地址對應
  • 2.4 從站指令庫支持的功能碼
  • 2.5 從站例程
  • 2.6 從站常見問題
  • 3 STEP 7-Micro/WIN 的標準指令庫
  • 3.1 分配庫指令數據區
  • 3.2 添加指令庫
  • 3.3 刪除庫指令
  • 4 RS-485網絡
  • 4.1 S7-200系統中的RS-485通信
  • 5 RS-485網絡的硬件組成
  • 5.1 連接網絡連接器
  • 5.2 網絡連接器
  • 5.3 線型網絡結構
  • 5.4 終端電阻和偏置電阻
  • 6 擴展閱讀
  • 6.1 擴展閱讀

 

1Modbus RTU主站

1.1 Modbus RTU 主站指令庫

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

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

注意

  • 1. Modbus RTU 主站指令庫的功能是通過在用戶程序中調用預先編好的程序功能塊實現的,該庫對 Port 0 和 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 主站指令庫,須遵循下列步驟:

  • 1.安裝西門子標準指令庫
  • 2.按照要求編寫用戶程序調用 Modubs RTU 主站指令庫
  • 安裝西門子標準指令庫

1.2 Modbus RTU 主站功能編程

1. 調用 Modbus RTU 主站初始化和控制子程序

使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:

圖 2. 用 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。可以用該位啟動 MBUS_MSG 讀寫操作(見例程)
g.Error 初始化錯誤代碼(只有在 Done 位為1時有效):
 0= 無錯誤
1= 校驗選擇非法
2= 波特率選擇非法
3= 模式選擇非法

2. 調用 Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus 請求;

圖 3. 調用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 號錯誤
  • 庫存儲區被程序其它地方復用,有時也會造成6 號錯誤
  • 從站 delay 參數設的時間過長會造成主站 3 號錯誤
  • 從站掉電或不運行,網絡故障都會造成主站 3 號錯誤

3. 在 CPU 的 V 數據區中為庫指令分配存儲區(Library Memory)

Modbus Master 指令庫需要一個284個字節的全局 V 存儲區。

參考:分配庫指令數據區

1.3 關于 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 掃描時間。數據多的情況下(讀、寫 120 字的數據),掃描時間大概會擴增加 222 ms。讀操作的時間主要消耗在接收數據上;寫操作的時間主要消耗在發送數據上。

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 數字量地址映射舉例:

位地址(0xxxx 和 1xxxx)數據總是以字節為單位打包讀寫。個字節中的低有效位對應 Modbus 地址的起始地址。如下圖所示:

圖 4. 數字量地址映射舉例

1.4 Modbus RTU 主站例程

為了更好地理解 Modbus 主站的編程,可參考下面的例程。

例子程序1: 多個MBUS_MSG指令輪詢執行,

注意

  • 1. 該例程使用 Micro/WIN V4.0 SP5 保存。
  • 2. 該例程僅訪問一個從站,若訪問不同的從站,可通過改變從站地址來實現。

Modbus RTU 主站指令庫應用例程

例子程序2:反復激活單個MBUS_MSG指令:

Modbus RTU 主站變址方式輪詢訪問應用例程

注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負任何責任。使用該軟件的風險*由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和支持,用戶不必為 此西門子與服務部門。

1.5 Modbus RTU 主站常問問題

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 擴展地址模式僅支持保持寄存器區,不支持其他地址類型。

S7-200 作為 Modbus 主站方接收上來的數據格式與第三方設備不一樣怎么辦?

西門子PLC數據的存儲格式為高位低存方式。舉例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方設備與西門子數據存儲格式不同,是低位低存的方式,那么通信上來的數據就會存在錯誤,需要進行轉換才能使用。編程的方式比較多樣,針對雙字中高低字的交換可以使用SWAP(字交換)指令,若是字節交換可以考慮循環移位指令。

S7-200 是否支持如 Modbus TCP 等其它協議?

不支持。S7-200自身的通信端口或其通信擴展模塊均不支持 Modbus TCP、CANopen、DeviceNet 以及 BACnet 通信協議。

 為什么 S7-200 作 Modbus 主站時 MBUS_MSG 指令報6號錯誤?

引起6號錯誤主要有兩方面的原因:1.多個 MBUS_MSG 指令同時使能執行;2. Modbus庫存儲區中分配的建議地址區與編程中已使用的V存儲區有重疊。

2Modbus RTU從站

2.1 CPU 上的通信口(Port0)支持 Modbus RTU 從站通信協議

S7-200 CPU上的通信口Port0可以支持Modbus RTU協議,成為Modbus RTU從站。此功能是通過S7-200的自由口通信模式實現,因此可以通過無線數據電臺等慢速通信設備傳輸。

 詳情請參考《S7-200系統手冊》之相關章節。

要實現Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的編程軟件,而且須安裝STEP 7-Micro/WIN32 V3.2 Instruction Library(指令庫)。Modbus RTU功能是通過指令庫中預先編好的程序功能塊實現的。

 Modbus RTU從站指令庫只支持CPU上的通信0口(Port0)。

2.2 編程基本步驟:

檢查Micro/WIN的軟件版本,應當是STEP 7-Micro/WIN V3.2以上版本。

檢查Micro/WIN的指令樹中是否存在Modbus RTU從站指令庫(圖1),庫中應當包括MBUS_INIT和MBUS_SLAVE兩個子程序。如果沒有,須安裝Micro/WIN32 V3.2的Instruction Library(指令庫)軟件包;

圖1. 指令樹中的庫指令

編程時使用SM0.1調用子程序MBUS_INIT進行初始化,使用SM0.0調用MBUS_SLAVE,并相應參數。關于參數的詳細說明,可在子程序的局部變量表中找到;

圖2. 調用Modbus RTU通信指令庫

圖中參數意義如下:

  • 模式選擇:啟動/停止Modbus,1=啟動;0=停止
  • 從站地址:Modbus從站地址,取值1~247
  • 波特率:可選1200,2400,4800,9600,19200,38400,57600,115200
  • 奇偶校驗:0=無校驗;1=奇校驗;2=偶校驗
  • 延時:附加字符間延時,缺省值為0
  • zui大I/Q位:參與通信的zui大I/O點數,S7-200的I/O映像區為128/128,缺省值為128
  • zui大AI字數:參與通信的zui大AI通道數,可為16或32
  • zui大保持寄存器區:參與通信的V存儲區字(VW)
  • 保持寄存器區起始地址:以&VBx(間接尋址方式)
  • 初始化完成標志:成功初始化后置1
  • 初始化錯誤代碼
  • Modbus執行:通信中時置1,無 Modbus 通信活動時為 0。
  • 錯誤代碼:0=無錯誤

 1. 從站錯誤代碼

錯誤代碼描述
0無錯誤
1存儲區范圍錯誤
2非法波特率或校驗
3非法從站地址
4Modbus 參數的非法值
5保持寄存器與Modbus從站符號地址重復
6接收校驗錯誤
7接收CRC錯誤
8非fa功能請求/不支持的功能
9請求中有非法存儲區地址
10從站功能未使能

在CPU的V數據區中分配庫指令數據區(Library Memory);

如有必要,使用主站軟件測試。

注意:由子程序參數HoldStart和MaxHold的保持寄存器區,是在S7-200 CPU的V數據存儲區中分配,此數據區不能和庫指令數據區有任何重疊,否則在運行時會產生錯誤,不能正常通信。注意Modbus 中的保持寄存器區按"字"尋址,即MaxHold規定的是VW而不是VB的個數。

在圖2的例子中,規定了 Modbus 保持寄存器區從 VB0 開始(HoldStart = VB0),并且保持寄存器為1000個字(MaxHold=1000),因保持寄存器以字(兩個字節)為單位,實際上這個通信緩沖區占用了VB0~VB1999共2000個字節。因此分配庫指令保留數據區時至少要從VB2000開始。當然保持區不一定要從VB0開始。

注意:你選用的CPU的V存儲區大小!CPU型號不同V數據存儲區大小不同。應根據需要選擇Modbus保持寄存器區域的大小。

包含 Modbus RTU 從站指令庫的項目編譯、下載到CPU中后,在編程計算機(PG/PC)上運行一些 Modbus 測試軟件可以檢驗S7-200的Modbus RTU通信是否正常,這對查找故障點很有用。測試軟件通過計算機串口(RS-232)和PC/PPI電纜連接CPU。如果必要,須將PC/PPI電纜設置在自由口通信方式。

可到一些軟件下載尋找類似軟件,如 ModScan32 等。

2.3 Modbus RTU 從站地址與S7-200的地址對應

Modbus地址總是以00001、30004之類的形式出現。S7-200內部的數據存儲區與Modbus的0、1、3、4共4類地址的對應關系如下:

表2. Modbus地址對應表

Modbus地址S7-200數據區
00001 ~ 00128Q0.0 ~ Q15.7
10001 ~ 10128I0.0 ~ I15.7
30001 ~ 30032AIW0 ~ AIW62
40001 ~ 4xxxxT ~ T + 2 * (xxxx -1)

其中T為S7-200中的緩沖區起始地址,即 HoldStart。

如果已知S7-200中的V存儲區地址,推算Modbus地址的公式如下:

Modbus地址 = 40000 + (T/2+1) ; T為偶數

2.4 Modbus RTU 從站指令庫支持的功能碼

Modbus RTU 從站指令庫支持特定的 Modbus 功能。訪問使用此指令庫的主站必須遵循這個指令庫的要求。

表 3. Modbus RTU 從站功能碼

功能碼主站使用相應功能碼作用于此從站的效用
1讀取單個/多個線圈(離散量輸出點)狀態。 功能 1 返回任意個數輸出點(Q)的 ON/OFF 狀態。
2讀取單個/多個觸點(離散量輸入點)狀態。 功能 2 返回任意個數輸入點(I)的 ON/OFF 狀態。
3讀取單個/多個保持寄存器。功能 3 返回 V 存儲區的內容。在 Modbus 協議下保持寄存器都是"字"值,在一次請求中可以讀取多 120 個字的數據。
4讀取單個/多個輸入寄存器。功能 4 返回 S7-200 的模擬量數據值。
5寫單個線圈(離散量輸出點)。功能 5 用于將離散量輸出點設置為的值。這個點不是被強制的,用戶程序可以覆蓋 Modbus 通信請求寫入的值。
6寫單個保持寄存器。功能 6 寫一個值到 S7-200 的 V 存儲區的保持寄存器中。
15寫多個線圈(離散量輸出點)。功能 15 把多個離散量輸出點的值寫到 S7-200 的輸出映像寄存器(Q 區)。輸出點的地址必須以字節邊界起始(如 Q0.0 或 Q2.0),并且輸出點的數目必須是 8 的整數倍。這是此 Modbus RTU 從站指令庫的限制。些點不是被強制的,用戶程序可以覆蓋 Modbus 通信請求寫入的值。
16些多個保持寄存器。功能 16 寫多個值到 S7-200 的 V 存儲區的保持寄存器中。在一次請求中可以寫多 120 個字的數據。

2.5 Modbus RTU 從站例程

Modbus RTU 從站例程

需要 STEP 7-Micro/WIN V4.0 SP3 以上版打開

2.6 Modbus RTU 從站常見問題

Modbus 從站的網絡地址與 S7-200 的 CPU 網絡地址有什么關系?

沒有關系。支持網絡通信的通信協議必須有其自己的網絡尋址規定。 Modbus 從站的地址只是它在 Modbus 網絡上的地址,而通常所說的 S7-200 CPU 地址是 CPU 在西門子的 PPI 網絡上的站地址。S7-200 CPU 的大部分通信功能都通過 PPI 網絡完成,例如編程、網絡讀寫通信等。

 如何理解 Modbus 地址與功能碼的區別?

Modbus 地址與 Modbus 的功能碼是兩個層次的概念。

根據 Modbus 通信協議,Modbus 數據的地址使用 00xxx、10xxx、30xxx 和 40xxx 的形式,分別表示數字量輸出、數字量輸入、模擬量輸入等數據地址。在使用 S7-200 的指令庫時,Modbus 數據地址與 S7-200 的 I/O 和數據存儲區地址間有特定的對應關系。

有些設備表明它支持 Modbus RTU 通信協議,但也詳細提供了讀寫數據的詳細通信幀格式,其中包括如何 Modbus 站的地址,需要讀寫數據類型、長度等等。數據幀有特定字節指出此指令讀寫的數據類型和地址,此字節的數據內容即所謂"功能碼",如功能 1 讀取單個/多個數字量輸出點的值。

支持 Modbus 協議的設備或軟件,使用時用戶直接設置或看到的應當是 Modbus 數據地址。Modbus 地址所訪問的數據,是通過各種"功能"讀寫而來。功能碼是 Modbus 地址的底層。如果 Modbus 通信的一方提供的所謂 Modbus 協議只有功能碼,則需要注意了解此功能號與 Modbus 地址間的對應關系。

Modbus 指令庫啟動后,如何通過同一個通信端口進行 CPU 監控?

Modbus 指令庫使用的是 CPU 的自由口通信功能,工作在自由口模式下的通訊口不能使用 Micro/WIN 的 PPI 編程通信監控。如果通信口都已經被占用,可以考慮:

  • 加一個通信模塊(如 EM 277、CP 243-1、EM 241 等)擴展出一個編程通信口
  • 中止自由口模式,可以將 CPU 上的模式開關從 RUN 撥到 STOP;或者保持處于 RUN 狀態,用程序停止指令庫的 Modbus 模式(參見指令庫應用)

為何有些 HMI 軟件使用 Modbus RTU 讀取S7-200中的實數會出現錯誤?

有些HMI軟件使用Modbus RTU通信協議時,處理存儲在數據保持寄存器中的實數(浮點數)的方式與西門子的實數保存格式不同。西門子的PLC遵循"高字節低地址、低字節高地址"的規律。

Modbus RTU的保持寄存器總是以"字(雙字節)"為單位,而一個實數需要4個字節(雙字)表示。HMI軟件在處理時可能會把保持寄存器的兩個"字"互換位置,造成不能識別以西門子格式表示的實數。如果HMI軟件一方這種實數,則可在S7-200 CPU中編程將存入數據緩沖區(保持寄存器區)的實數的高字和低字互換。

為何有的HMI軟件用Modbus RTU可以讀取作為從站的S7-200的內容,但不能寫入?

可能此軟件使用了Modbus功能15(寫多個離散量)或類似功能(功能 16)。S7-200從站協議遵守"以整字節地址邊界(如Q0.0、Q2.0)開始、以8的整數倍為位個數"的規約。如果HMI軟件未嚴格執行此規律就可能發生寫入錯誤的情況。

S7-200是否支持 Modbus ASCII 模式?

S7-200可以支持上述模式,但是沒有現成的指令庫,需要用戶自己編程。

項目編譯后為何出現很多錯誤?

使用指令庫時,若編譯后出現很多錯誤,一般是因為未庫指令數據存儲區。請參考相關條目。

S7-200 CPU的Port1是否可以支持Modbus RTU協議?

可以。用戶可以自己編程實現。

在S7-200的"Tips and Tricks"幫助文檔中,Tip041是Modbus RTU從站程序,用戶可以參考。

S7-200是否可以組成Modbus RTU通信網絡?如何組網?

S7-200可以組成RS-485基礎上的Modbus RTU網絡。如果通信對象是不同標準的通信口,可能還需要轉換。
參見:RS-485網絡組成

3STEP 7-Micro/WIN 的標準指令庫

STEP 7-Micro/WIN V4.0 以上版內部已經帶有新的指令庫,但在未安裝西門子 Instruction Library 軟件包的情況下,不能顯示出來使用。

要使用西門子的標準指令庫,必須先安裝西門子的指令庫軟件包 Instruction Library。安裝了 Instruction Library 之后,只要安裝的 STEP 7-Micro/WIN 版本是的,就能獲得相應版本的新指令庫。安裝 Micro/WIN 的升級包(Service Pack)也會更新指令庫的版本。

用戶可以直接從下面獲得西門子 Instruction Library 軟件安裝包:

Instruction Library

的 STEP 7-Micro/WIN V4.0 SP5 版本支持以下幾種西門子標準指令庫:

  • USS通信協議庫:
    可使CPU通信口 Port0 和 Port 1 支持與Micro-Master 3(MM3系列)和Micro-Master 4(MM4系列,如MM420、MM430、MM440等)、SINAMICS G110系列的USS通信控制,通過一些預先編好的子程序和中斷程序,以方便地控制變頻器的運行和讀寫其參數。
    Micro/WIN V4.0的USS指令庫現在已經針對西門子的Master Drive做了優化。
  • Modbus RTU Slave(從站)通信協議庫:
    可使CPU通信口 Port0 支持Modbus RTU從站通信功能。
  • Modbus RTU Master (主站)通信協議庫: 
    可使 CPU 通信口 Port 0 和 Port 1 支持 Modbus RTU 主站通信功能。

以上通信協議庫都是使用了S7-200 CPU的自由口通信功能。

圖1. 西門子標準庫以淺藍色圖標表示(Micro/WIN V4.0 SP5)

從以下兩種途徑可以獲得STEP 7-Micro/WIN指令庫:

  • 安裝STEP 7-Micro/WIN32 附加軟件包Instruction Library V1.1,訂貨號6ES7830-2BC00-0YX0。
  • 已安裝STEP 7-Micro/WIN32 V3.1和Toolbox V1.0(包括為TP070配置的TP Designer和老的指令庫,訂貨號6ES7810-2TC00-0YX0),再安裝正式的STEP 7-Micro/WIN32 V3.2(或V4.0)版,也可自動獲得新的指令庫。新舊版本的軟件及其指令庫可以在一臺計算機上共存(V4.0 的各升級包不能共存)。

注意:

  • 所有舊的CPU21x不能使用新的指令庫
  • 舊版本的指令庫不能與新的指令庫在同一個項目文件中共存
  • 安裝了新版本的指令庫后,舊版本的指令庫不再能夠看到
  • 用戶自定義的指令庫不能與西門子的庫重名

有時因為系統和軟件安裝有問題,可能在安裝完西門子標準指令庫后仍然不能看到西門子標準庫。這時可以嘗試添加標準庫。標準庫的文件存在Micro/WIN安裝目錄下的Standard Libs目錄下。

3.1 分配庫指令數據區

調用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令庫)需要分配庫指令數據區(Library Memory)。庫指令數據區是相應庫的子程序和中斷程序所要用到的變量存儲空間。

如果在編程時不分配庫指令數據區,編譯時會產生許多相同的錯誤(錯誤18)。

操作步驟(以Modbus RTU庫指令為例):

在指令樹的Project(項目)中,以鼠標右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory。如圖2所示:

圖2

在彈出的選項卡中設置庫指令數據區,如圖2所示:

圖3.缺省情況下是從VB0開始,但因為與Modbus的保持寄存區沖突,所以手動改為VB2000。按"Suggest Address"按鈕也可以自動分配。

可以使用Suggest Address(推薦地址)設置數據區,但要注意編程軟件設置的數據區地址,只考慮到了其他一般尋址,而未考慮到諸如Modbus數據保持寄存器區等的設置。應當確保不與其他任何已使用的數據區重疊、沖突。不應重復按Suggest Address按鈕,否則也會造成混亂。

在STEP 7-Micro/WIN32 V3.1中,有分配庫指令數據區時有不同的操作方法,需要在Symbol Table(符號表)中設置一個首地址。我們強烈建議使用當時的編程版本。

3.2 添加指令庫

注意:添加自定義指令庫,需要關閉編輯庫指令的項目,新建立一個項目。如果要添加其他來源的庫指令自然不需要如此。

步:在Micro/WIN的File(文件)菜單中選擇Add/Remove Libraries...(添加/刪除指令庫)命令 ;或者在指令樹的Libraries(指令庫)分支上單擊鼠標右鍵,選擇Add/Remove Libraries...

圖4. 選擇添加/刪除指令庫命令

添加/刪除對話框中將顯示已經在本機的Micro/WIN中集成的用戶自定義指令庫。

圖5. 已安裝的庫指令

第二步:按Add(添加)按鈕,選擇新定義的庫文件路徑。用戶自定義庫將自動添加到Micro/WIN指令樹的Libraries分支下。

圖6. 選擇庫文件

 缺省情況下,Micro/WIN到圖8中的路徑下尋找庫指令文件。用戶也可以其他路徑。但要注意庫文件應當保持在非移動的介質上,如果了一個可移動硬盤,則硬盤不在時會發生找不到庫的錯誤。建議用戶使用缺省設置。

3.3 刪除庫指令

步:選擇添加/刪除指令庫命令

圖7. 選擇命令

第二步:選中須卸載的庫所對應的庫文件,按Remove(刪除)按鈕

圖8. 選中要刪除的庫指令文件

4RS-485網絡

S7-200系統支持的PPI、MPI和PROFIBUS-DP協議通常以RS-485電氣網絡為硬件基礎。
RS-485串行通信標準采用平衡信號傳輸方式,或者稱為差動模式。平衡傳輸方式可以有效地抑制傳輸過程中干擾。
平衡方式采用一對導線,利用兩根導線間的電壓差傳輸傳輸信號。這兩根導線被命名為A(TxD/RxD-)和B(TxD/RxD+)。當B的電壓比A高時,認為傳輸的是邏輯"高"電平;當B的電壓比A低時,認為傳輸的是邏輯"低"電平信號。能夠有效工作的差動電壓范圍十分寬廣,可以從零點幾伏到接近十伏。
RS-485通信端口可以做到很高的通信速率,較長的通信距離,以及并聯連接多個端口。

平衡通信方式能否有效工作受到共模電壓差的影響。RS-485接口的兩根導線相對于通信對象信號地的電壓差就是共模電壓。非電氣隔離的RS-485接口能在一定的范圍內抵抗共模電壓對通信的干擾。

S7-200 CPU通信口的共模抑制電壓是12V。所以對于這類非隔離型的RS-485端口,保證通信口之間的信號地等電位非常重要,將它們連接在一起(并不是說一定要接地)。

S7-200系統中的RS-485端口是半雙工的,不能同時發送和接收信號。
在S7-200系統中,選擇合適的通信設備,可以做到波特率從1200到12M,單段距離1000m,單段站點32個的通信網絡。通過中繼器,RS-485電氣網絡還可以擴展通信距離,增加通信站點。詳情請參考《S7-200系統手冊》關于通信的專門一章。
雖然常見的RS-485通信器件在電氣性能上基本一致,但物理接口卻五花八門,沒有統一的規定。

 西門子系統中的 D-Sub 9 針型 RS-485 端口,引腳定義是基本一致的。

4.1 S7-200系統中的RS-485通信

在S7-200系統中,CPU上的通信口(編程口),以及EM277模塊上的通信端口都是符合RS-485電氣標準的。但它們也有所不同:

  • S7-200 CPU上的通信口是非隔離型的,zui高通信速率187.5K波特
  • EM277上的通信口是隔離的,zui高通信速率12M,并且速率自適應

以下三種協議,都可以在RS-485的硬件基礎上實現通信:

  • PPI(包括編程通信、S7-200 CPU之間、S7-200 CPU與HMI之間的通信等)
  • MPI(S7-200 CPU與S7-300/400 CPU、S7-200 CPU與HMI之間、EM277與HMI之間的通信等)
  • PROFIBUS-DP(EM277與其他PROFIBUS-DP主站之間的通信)

實際上,如果各通信站點的地址不同,通信波特率相同,上述三個協議可以在一個RS-485網絡上同時實現各自的通信。當然,一個站點支持什么協議受到自身條件所限。

因此考察上述電氣網絡的通信時,我們應注意到它們都受RS-485網絡電氣基礎的制約。上述網絡所用的網絡硬件基本一樣。

5RS-485網絡的硬件組成

在S7-200系統中,無論是組成PPI、MPI還是RPOFIBUS-DP網絡,或是Modbus RTU網絡,用到的主要部件都是一樣的:

  • PROFIBUS電纜:電纜型號有多種,其中基本的是PROFIBUS FC(Fast Connect快速連接)Standard電纜(訂貨號6XV1 830-0EH10)
  • PROFIBUS網絡連接器:網絡連接器也有多種形式,如出線角度不同等等

5.1 連接網絡連接器

A. 電纜和剝線器。使用FC技術不用剝出裸露的銅線。

圖1. 剝好一端的PROFIBUS電纜與快速剝線器(FCS,訂貨號6GK1905-6AA00)。

B. 打開PROFIBUS網絡連接器。首先打開電纜張力釋放壓塊,然后掀開芯線鎖。

圖2. 打開的PROFIBUS連接器

C. 去除PROFIBUS電纜芯線外的保護層,將芯線按照相應的顏色標記插入芯線鎖,再把鎖塊用力壓下,使內部導體接觸。應注意使電纜剝出的屏蔽層與屏蔽連接壓片接觸。

圖3. 插入電纜

由于通信頻率比較高,因此通信電纜采用雙端接地。電纜兩頭都要連接屏蔽層。

D. 復位電纜壓塊,擰緊螺絲,消除外部拉力對內部連接的影響。

5.2 網絡連接器

網絡連接器主要分為兩種類型:帶和不帶編程口的。不帶編程口的插頭用于一般聯網,帶編程口的插頭可以在聯網的同時仍然提供一個編程連接端口,用于編程或者連接HMI等。

圖4. 左側為不帶編程口的網絡連接器(訂貨號:6ES7 972-0BA52-0XA0)
右側的是帶編程口的網絡連接器(訂貨號:6ES7 972-0BB52-0XA0)

5.3 線型網絡結構

通過PROFIBUS電纜連接網絡插頭,構成總線型網絡結構。

圖5. 總線型網絡連接

在上圖中,網絡連接器A、B、C分別插到三個通信站點的通信口上;電纜a把插頭A和B連接起來,電纜b連接插頭B和C。線型結構可以照此擴展。

注意圓圈內的"終端電阻"開關設置。網絡終端的插頭,其終端電阻開關必須放在"ON"的位置;中間站點的插頭其終端電阻開關應放在"OFF"位置。

5.4 終端電阻和偏置電阻

一個正規的RS-485網絡使用終端電阻和偏置電阻。在網絡連接線非常短、臨時或實驗室測試時也可以不使用終端和偏置電阻。

終端電阻:在線型網絡兩端(相距遠的兩個通信端口上),并聯在一對通信線上的電阻。根據傳輸線理論,終端電阻可以吸收網絡上的反射波,有效地增強信號強度。兩個終端電阻并聯后的值應當基本等于傳輸線在通信頻率上的特性阻抗 偏置電阻:偏置電阻用于在電氣情況復雜時確保A、B信號的相對關系,保證"0"、"1"信號的可靠性

西門子的PROFIBUS網絡連接器已經內置了終端和偏置電阻,通過一個開關方便地接通或斷開。終端和偏置電阻的值*符合西門子通信端口和PROFIBUS電纜的要求。

合上網絡中網絡插頭的終端電阻開關,可以非常方便地切斷插頭后面的部分網絡的信號傳輸。

與其他設備通信時(采用PROFIBUS電纜),對方的通信端口可能不是D-SUB9針型的,或者引腳定義*不同。如西門子的MM4x0變頻器,RS-485通信口采用端子接線形式,這種情況下需要另外連接終端電阻,西門子可以提供一個比較規整的外接電阻。對于其他設備,可以參照《S7-200系統手冊》上的技術數據制作。

 西門子網絡插頭中的終端電阻、偏置電阻的大小與西門子PROFIBUS電纜的特性阻抗相匹配,強烈建議用戶配套使用西門子的PROFIBUS電纜和網絡插頭。可以避免許多麻煩。

記住聯網的格言:你糊弄它,它就糊弄你!

 

 

 

版權與免責聲明: 凡本網注明“來源:智慧城市網”的所有作品,均為浙江興旺寶明通網絡有限公司-智慧城市網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:智慧城市網cchxqp518.com”。違反上述聲明者,本網將追究其相關法律責任。

本網轉載并注明自其它來源(非智慧城市網cchxqp518.com)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。

編輯精選

更多

本站精選

更多

專題推薦

更多

名企推薦

更多

浙公網安備 33010602000006號