¥面議
您現在的位置: 西安達泰電子有限責任公司>>DTD>> DTD433M-S4西門子S7_200PLC與組態王的無線通信Modbus方案
產品介紹
西門子S7_200PLC與組態王的無線通信Modbus方案
在這里介紹一種PLC的MODBUS無線組態通信的實現方法。本方案可以作為西門子PLC與組態王通信的實例。
在工業現場可能會遇到這樣的情況,分布在不同地方(車間、控制室場所等)的PLC需要與總控中心的組態王軟件進行遠程通信,通常情況是采用有線RS485總線敷設電纜,通過MODBUS協議完成此功能。如果現場布線不方便的話,也可以采用無線方式進行通信。本方案中采用了專門用于無線通信的智能數據終端DTD433M。
l 有線MODBUS網絡:
S7-200 |
S7-200 |
STEP 7 |
S7-200 |
PG/PC |
9.6kbps,8,N,1 |
人機界面 組態軟件 |
l
S7-200 |
STEP 7 |
PG/PC |
RS485 9.6 kbps |
人機界面 組態軟件 |
DTD433 |
DTD433 |
RS485 9.6 kbps |
S7-200 |
RS485 9.6 kbps |
DTD433 |
在實際系統中,人機界面與PLC不在一起,中心計算機一般放置在控制室,而PLC安裝在現場車間,二者之間距離往往從幾十米到幾千米。如果布線的話,需要挖溝施工,比較麻煩,這種情況下比較適合采用無線通信方式。
一、PLC與組態王的Modbus通信
1. 下載S7_200程序
需要向 PLC中下載對應的初始化程序(KVmoddbus.mwp),由亞控公司提供。此程序默認的PLC通訊端口為 port0,地址為 2,波特率 9600,無校驗(地址和波特率可由程SBR0 中的 VB8,SMB30 進行修改);
2.設備選擇
2.設備選擇
選擇以下兩個設備都可以。
3. 演示程序界面
打開組態王演示工程文件
為了滿足西門子PLC和組態王的MODBUS通信協議,對無線數據終端具有以下要求:
◆ 適合于RS232/RS485串口連接,可以直接代替有線的RS485網
DTD433M提供標準的RS232/RS485口。DTD433M接口波特率為9600bps,8 N 1。
◆ 具有*的軟件無線電技術,保證高抗*力和低誤碼率
基于FSK的調制方式,采用高效前向糾錯信道編碼技術,提高了數據抗突發干擾和隨機干擾的能力。大量應用于高壓強干擾的電力系統監控。
◆ 可以提供多種產品規格適應于不同的傳輸距離
在空曠環境,天線安裝位置離地面高度大于2米的情況下,DTD433MA可靠傳輸距離可達300m,DTD433MB可靠傳輸距離可達1500m,DTD433MC可靠傳輸距離可達3000m。
◆ 自動完成智能數據控制,用戶無需編制多余的程序
即使是半雙工通信,用戶也無需編制多余的程序,只要從接口收/發數據即可,其它如空中收/發轉換,控制等操作,DTD433M自動完成。
◆ 無線數據終端的選擇原則
l 直線空曠距離在300米以內可以選擇DTD433MA_S9600
l 直線空曠距離在1000米左右可以選擇DTD433MB_S9600
l 直線空曠距離在2000米左右可以選擇DTD433MC_S9600
三、試驗設備及其接線
l 組態軟件:組態王6.53
l S7-200型號:CPU224XP CN,1臺
l 無線數據終端:DTD433MB_S9600
PC電腦與無線數據終端DTD433M連接
RS-232連線 | 電腦RS232串口 | DTD433M | DTD433M設置 |
RXD | DB9-Pin2 Rx | DB9-Pin2 Tx | K1: 1,2,3 OFF 4 ON K2: 1,2,3,4 OFF |
TXD | DB9-Pin3 TX | DB9-Pin3 Rx | |
GND | DB9-Pin5 GND | DB9-Pin5 GND |
S7-200與無線數據終端DTD433M連接
RS-485連線 | S7-200 Port0 | DTD433M | DTD433M設置 |
RS485+ A | DB9-Pin3 B | RS485+ A | K1: 1,2,3 ON 4 OFF K2: 1,2,3,4 OFF |
RS485- B | DB9-Pin8 A | RS485- B |
四、實物圖片
五、方案附件
l 組態王測試程序
l S7-200測試程序
l 組態軟件與西門子PLC的無線MODBUS通信方案.pdf
六、西門子提供的Modbus設備地址
1. Modbus主設備尋址
Modbus地址通常寫作包含數據類型和偏移量的5個字符的數值。*個字符決定數據類型,zui后四個字符在數據類型中選擇適當的數值。然后,Modbus主設備指令將地址映射至正確的功能,以便發送到從站。Modbus主設備指令支持下列Modbus地址:
00001至09999是離散輸出(線圈)
10001至19999是離散輸入(觸點)
30001至39999是輸入寄存器(通常是模擬量輸入)
40001至49999是保持寄存器
所有Modbus地址均以1為基位,表示*個數據值從地址1開始。有效地址范圍將取決于從站。不同的從站將支持不同的數據類型和地址范圍。
2. Modbus 從站尋址
Modbus地址通常被寫為包含數據類型和偏移量的5個字符的數值。*個字符決定數據類型,zui后四個字符在數據類型中選擇適當的數值。然后,Modbus主設備將地址映射至正確的功能。Modbus從站指令支持下列地址:
00001至00128是映射至Q0.0 - Q15.7的離散輸出
10001至10128是映射至I0.0 - I15.7的離散輸入
30001至30032是映射至AIW0至AIW62的模擬輸入寄存器
40001至4xxxx是映射至V存儲器的保持寄存器。
所有Modbus地址均以1為基位。下表顯示映射至S7-200地址的Modbus地址。
3. Modbus地址S7-200
00001 Q0.0
00002 Q0.1
00003 Q0.2
... ...
00127 Q15.6
00128 Q15.7
10001 I0.0
10002 I0.1
10003 I0.2
... ...
10127 I15.6
10128 I15.7
30001 AIW0
30002 AIW2
30003 AIW4
... ...
30032 AIW62
40001 Hold Start
40002 HoldStart+2
40003 HoldStart+4
... ...
4xxxx HoldStart+2 x (xxxx-1)
Modbus從站協議允許您限制Modbus主設備可存取的輸入、輸出、模擬輸入和保持寄存器(V存儲器)數量。
MBUS_INIT指令的MaxIQ參數Modbus主設備允許存取的離散輸入或輸出(I或Q)的zui大數目。
MBUS_INIT指令的MaxAI參數Modbus主設備允許存取的輸入寄存器(AIW)的zui大數目。
MBUS_INIT指令的MaxHold參數Modbus主設備允許存取的保持寄存器(V存儲器字)的zui大數目。
請參閱MBUS_INIT指令說明,了解有關為Modbus從站設定存儲器限制的進一步詳情。
七、MODBUS常見問題解答
1. 我的設備支持 modbus設備,能否直接與組態王軟件連接?
只要設備是標準的 modbus 協議設備,即可使用組態王設備列表下的 PLC-->*康
-->MODBUSRTU(或者 ACSII 碼)進行通信。但具體的寄存器地址對照表必須從設備廠家
索取。
2. 我的支持 modbus 協議的串口設備,能否與多個上位軟件(比如組態王軟件和某品
牌觸摸屏)同時通訊?
因為 modbus 串口協議不支持多主站,所以不能多個軟件同時與 modbus 設備同時通
信。
3. 在組態王工程中建立多個 modbusTCPIPserver 設備定義, 分別使用兩臺客戶端對其
訪問,只有站點高的那個 server 通訊 ok,站點低的通訊失敗,為什么?
這是因為在組態王軟件中只支持建立一個 modbusTCPIPserver,當建立多個 server
時,組態王客戶端則會自動與站點高的server進行通訊,所以會導致站點低的通訊失敗。
4. 如何實現組態王數據通過串口或者以太網驅動方式傳送到其他組態軟件或者應用程
序中?
如果其他組態軟件或者應用程序支持 modbus 協議,則可以通過組態王提供的
modRTUserver 或者 modbusTCPserver 驅動來實現。
5. 組態王與支持 Modbus協議的設備進行通訊時, 組態王畫面上顯示的數據不正確常有
哪些原因?
引起數據不正確的原因主要有如下幾點:
1)組態王中定義的寄存器地址跟實際設備不*導致。比如某些使用 modbus 協議
通訊的設備的數據地址是從 0 開始的,而組態王 modbus 協議驅動寄存器地址是從 1 開
始的,所以遇到此種情況時在組態王中定義變量時,寄存器地址要進行加1 處理;
2)數據詞典中zui大原始值和zui大值定義不不當;比如zui大原始值和zui大值不一樣會
導致畫面看到的數據和實際設備不*;
3)組態王讀取 FLOAT 和 LONG 類型的數據時,沒有使用提供的 SwapF 和 SwapL
寄存器來調整FLOAT 型和 LONG型數據的字節順序;
4)LONG 或 FLOAT 型的雙字的數據,沒有按照間隔隔地址方式定義;因為 modbus
協議所對應的參數地址一般按照字為基本單位進行分地址排序的。
6. 組態王與西門子 200plc自由口協議通過modem 通訊,硬件接線怎樣實現?
設備上插標準 PPI 電纜,modem9 針口通過一個標準 232 交叉線接到 PPI 電纜上即
可,232交叉線的 modem側需要 1 4 6 短接,7 和 8 短接。
7. 西門子200plc通過modbus協議與組態王通訊時, 組態王中定義的寄存器地址與plc
地址是如何對應的?
映射關系如下:
0-Q,1-I,3、4、8、9-V;
3,4,8,9的 dd 號與 PLC中 V寄存器的偏移地址(實際地址-1000)的對應關系:
組態王中(寄存器的dd 號-1)*2=PLC中的 V寄存器的偏移地址。組態王中 40031
對應 PLC:VW1060 (組態王中寄存器 4 表示SHORT 型變量)組態王中 90640 對應 PLC:
VD2278 (組態王中寄存器9 表示 FLOAT型變量)。
注:上面的對應關系是針對用戶使用的是亞控公司提供了PLC(MODBUS)通訊的初
始化程序,如果用戶是自己編程寫的初始化程序,則根據實際程序規定的 modbus 對應
地址定義變量。
8. 西門子 200plc通過 modbus協議與組態王通訊,需要注意哪些事項?
需要注意如下幾點:
1)需要向 PLC中下載對應的初始化程序(KVmoddbus.mwp),由亞控提供。此程
序默認的 plc 通訊端口為 port0,地址為 2,波特率 9600,無校驗(地址和波特率可由程
SBR0 中的 VB8,SMB30 進行修改);
2)由于 PLCModbus 協議程序占用 V1000及以前的地址,所以用戶在編寫邏輯控制
程序中用到的寄存器不能和亞控提供的協議中所占用的 V區地址沖突;
3)西門子 S7200PLC 和通過 modbus 協議和組態王通訊時,CPU上的開關必須撥在
RUN狀態,否則 PLC中的 modbus 通訊程序沒有處于運行狀態,組態王和設備通過自由
口協議肯定通訊失敗;
9. 西門子 200plc通過 GPRS鏈路和組態王通訊,使用哪種協議方式比較好?
*使用自由口/modbusRTu協議。
ppi 協議實際上也支持通過GPRS 鏈路和組態王通訊,但由于PPI 協議的特殊性,
GPRS方式下通訊效果不是很好,因此不*客戶使用。
10. 組態王提供的 ModbusRTUServer 和 ModbusRTU驅動的寄存器是怎樣對應的?
ModbusRTUServer 的B寄存器對應ModbusRTU的 0 寄存器;
ModbusRTUServer 的R寄存器對應ModbusRTU的 4 寄存器。
1. 我的設備支持 modbus設備,能否直接與組態王軟件連接?
只要設備是標準的 modbus 協議設備,即可使用組態王設備列表下的 PLC-->*康
-->MODBUSRTU(或者 ACSII 碼)進行通信。但具體的寄存器地址對照表必須從設備廠家
索取。
2. 我的支持 modbus 協議的串口設備,能否與多個上位軟件(比如組態王軟件和某品
牌觸摸屏)同時通訊?
因為 modbus 串口協議不支持多主站,所以不能多個軟件同時與 modbus 設備同時通
信。
3. 在組態王工程中建立多個 modbusTCPIPserver 設備定義, 分別使用兩臺客戶端對其
訪問,只有站點高的那個 server 通訊 ok,站點低的通訊失敗,為什么?
這是因為在組態王軟件中只支持建立一個 modbusTCPIPserver,當建立多個 server
時,組態王客戶端則會自動與站點高的server進行通訊,所以會導致站點低的通訊失敗。
4. 如何實現組態王數據通過串口或者以太網驅動方式傳送到其他組態軟件或者應用程
序中?
如果其他組態軟件或者應用程序支持 modbus 協議,則可以通過組態王提供的
modRTUserver 或者 modbusTCPserver 驅動來實現。
5. 組態王與支持 Modbus協議的設備進行通訊時, 組態王畫面上顯示的數據不正確常有
哪些原因?
引起數據不正確的原因主要有如下幾點:
1)組態王中定義的寄存器地址跟實際設備不*導致。比如某些使用 modbus 協議
通訊的設備的數據地址是從 0 開始的,而組態王 modbus 協議驅動寄存器地址是從 1 開
始的,所以遇到此種情況時在組態王中定義變量時,寄存器地址要進行加1 處理;
2)數據詞典中zui大原始值和zui大值定義不不當;比如zui大原始值和zui大值不一樣會
導致畫面看到的數據和實際設備不*;
3)組態王讀取 FLOAT 和 LONG 類型的數據時,沒有使用提供的 SwapF 和 SwapL
寄存器來調整FLOAT 型和 LONG型數據的字節順序;
4)LONG 或 FLOAT 型的雙字的數據,沒有按照間隔隔地址方式定義;因為 modbus
協議所對應的參數地址一般按照字為基本單位進行分地址排序的。
6. 組態王與西門子 200plc自由口協議通過modem 通訊,硬件接線怎樣實現?
設備上插標準 PPI 電纜,modem9 針口通過一個標準 232 交叉線接到 PPI 電纜上即
可,232交叉線的 modem側需要 1 4 6 短接,7 和 8 短接。
7. 西門子200plc通過modbus協議與組態王通訊時, 組態王中定義的寄存器地址與plc
地址是如何對應的?
映射關系如下:
0-Q,1-I,3、4、8、9-V;
3,4,8,9的 dd 號與 PLC中 V寄存器的偏移地址(實際地址-1000)的對應關系:
組態王中(寄存器的dd 號-1)*2=PLC中的 V寄存器的偏移地址。組態王中 40031
對應 PLC:VW1060 (組態王中寄存器 4 表示SHORT 型變量)組態王中 90640 對應 PLC:
VD2278 (組態王中寄存器9 表示 FLOAT型變量)。
注:上面的對應關系是針對用戶使用的是亞控公司提供了PLC(MODBUS)通訊的初
始化程序,如果用戶是自己編程寫的初始化程序,則根據實際程序規定的 modbus 對應
地址定義變量。
8. 西門子 200plc通過 modbus協議與組態王通訊,需要注意哪些事項?
需要注意如下幾點:
1)需要向 PLC中下載對應的初始化程序(KVmoddbus.mwp),由亞控提供。此程
序默認的 plc 通訊端口為 port0,地址為 2,波特率 9600,無校驗(地址和波特率可由程
SBR0 中的 VB8,SMB30 進行修改);
2)由于 PLCModbus 協議程序占用 V1000及以前的地址,所以用戶在編寫邏輯控制
程序中用到的寄存器不能和亞控提供的協議中所占用的 V區地址沖突;
3)西門子 S7200PLC 和通過 modbus 協議和組態王通訊時,CPU上的開關必須撥在
RUN狀態,否則 PLC中的 modbus 通訊程序沒有處于運行狀態,組態王和設備通過自由
口協議肯定通訊失敗;
9. 西門子 200plc通過 GPRS鏈路和組態王通訊,使用哪種協議方式比較好?
*使用自由口/modbusRTu協議。
ppi 協議實際上也支持通過GPRS 鏈路和組態王通訊,但由于PPI 協議的特殊性,
GPRS方式下通訊效果不是很好,因此不*客戶使用。
10. 組態王提供的 ModbusRTUServer 和 ModbusRTU驅動的寄存器是怎樣對應的?
ModbusRTUServer 的B寄存器對應ModbusRTU的 0 寄存器;
ModbusRTUServer 的R寄存器對應ModbusRTU的 4 寄存器。