|
公司基本資料信息
|
西門子S7_200PLC與組態(tài)王的無線遠(yuǎn)程GPRS通信Modbus方案
在這里介紹一種采用GPRS透明數(shù)據(jù)終端和PLC的MODBUS無線組態(tài)通信的實現(xiàn)方法。本方案可以作為西門子PLC與組態(tài)王遠(yuǎn)程無線通信的實例。
在工業(yè)現(xiàn)場可能會遇到這樣的情況,分布在不同地方(車間、控制室場所等)的PLC需要與總控中心的組態(tài)王軟件進(jìn)行遠(yuǎn)程通信,通常情況是采用有線RS485總線敷設(shè)電纜,通過MODBUS協(xié)議完成此功能。如果現(xiàn)場距離總控中心距離非常遠(yuǎn),布線不可能話,就可以采用GPRS方式進(jìn)行無線通信。本方案中采用了專門用于無線遠(yuǎn)程GPRS通信的智能數(shù)據(jù)終端DTP_S09F。
l 有線MODBUS網(wǎng)絡(luò):
l 遠(yuǎn)程無線MODBUS網(wǎng)絡(luò):
在實際系統(tǒng)中,人機(jī)界面與PLC不在一個地區(qū),中心計算機(jī)一般放置在辦公室,而PLC安裝在現(xiàn)場車間,二者之間距離可能往往從幾十米到幾千米甚至幾千公里。如果在廠區(qū)幾公里范圍內(nèi)的話可以采用無線電方案,要是距離再遠(yuǎn)的話就可以采用移動GPRS網(wǎng)絡(luò),這樣的話就沒有距離限制了,這種情況下比較適合遠(yuǎn)程無線通信。
一、PLC與組態(tài)王的Modbus通信
1. 下載S7_200程序
需要向 PLC中下載對應(yīng)的初始化程序(KVmoddbus.mwp),由亞控公司提供。此程序默認(rèn)的PLC通訊端口為 port0,地址為 2,波特率 9600,無校驗(地址和波特率可由程SBR0 中的 VB8,SMB30 進(jìn)行修改);
2.設(shè)備選擇
選擇以下兩個設(shè)備都可以。
3.修改虛擬設(shè)備
必須注意配置DTU設(shè)備標(biāo)識信息與圖中一致,端口號根據(jù)用戶的設(shè)定。
4. 演示程序界面
打開組態(tài)王演示工程文件
二、滿足西門子PLC的MODBUS通信協(xié)議的專用GPRS數(shù)據(jù)終端
為了滿足西門子PLC和組態(tài)王的MODBUS通信協(xié)議,對GPRS數(shù)據(jù)終端具有以下要求:
◆ 適合于RS232/RS485串口連接,可以直接代替有線的RS485網(wǎng);
◆ 無需修改用戶軟件,無需二次開發(fā);
◆ 全透明傳輸,永遠(yuǎn)在線,自動重連;
◆ 支持域名和IP兩種連接方式;
◆ 雙看門狗,永不死機(jī);
◆ 工作溫度:-35~ +75℃;
◆ 工業(yè)標(biāo)準(zhǔn)設(shè)計,能工作于各種惡劣環(huán)境;
◆ 提供力控、杰控及組態(tài)王等組態(tài)例程。
三、試驗設(shè)備及其接線
l 組態(tài)軟件:組態(tài)王6.53
l S7-200型號:CPU224XP CN,1臺
l GPRS數(shù)據(jù)終端:DTP_S09F
S7-200與無線數(shù)據(jù)終端DTP_S09F連接
RS-485連線 |
S7-200 Port0 |
DTP_S09F |
RS485+ A |
DB9-Pin3 B |
DB9_5 A |
RS485- B |
DB9-Pin8 A |
DB9_3 B |
四、實物圖片
五、方案附件
l 組態(tài)王測試程序
l S7-200測試程序
l 組態(tài)軟件MODBUS與西門子PLC的無線遠(yuǎn)程GPRS通信方案.pdf
六、西門子提供的Modbus設(shè)備地址
1. Modbus主設(shè)備尋址
Modbus地址通常寫作包含數(shù)據(jù)類型和偏移量的5個字符的數(shù)值。第一個字符決定數(shù)據(jù)類型,最后四個字符在數(shù)據(jù)類型中選擇適當(dāng)?shù)臄?shù)值。然后,Modbus主設(shè)備指令將地址映射至正確的功能,以便發(fā)送到從站。Modbus主設(shè)備指令支持下列Modbus地址:
00001至09999是離散輸出(線圈)
10001至19999是離散輸入(觸點)
30001至39999是輸入寄存器(通常是模擬量輸入)
40001至49999是保持寄存器
所有Modbus地址均以1為基位,表示第一個數(shù)據(jù)值從地址1開始。有效地址范圍將取決于從站。不同的從站將支持不同的數(shù)據(jù)類型和地址范圍。
2. Modbus 從站尋址
Modbus地址通常被寫為包含數(shù)據(jù)類型和偏移量的5個字符的數(shù)值。第一個字符決定數(shù)據(jù)類型,最后四個字符在數(shù)據(jù)類型中選擇適當(dāng)?shù)臄?shù)值。然后,Modbus主設(shè)備將地址映射至正確的功能。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
00001Q0.0
00002Q0.1
00003Q0.2
......
00127Q15.6
00128Q15.7
10001I0.0
10002I0.1
10003I0.2
......
10127I15.6
10128I15.7
30001AIW0
30002AIW2
30003AIW4
......
30032AIW62
40001Hold Start
40002HoldStart+2
40003HoldStart+4
......
4xxxxHoldStart+2 x (xxxx-1)
Modbus從站協(xié)議允許您限制Modbus主設(shè)備可存取的輸入、輸出、模擬輸入和保持寄存器(V存儲器)數(shù)量。
MBUS_INIT指令的MaxIQ參數(shù)指定Modbus主設(shè)備允許存取的離散輸入或輸出(I或Q)的最大數(shù)目。
MBUS_INIT指令的MaxAI參數(shù)指定Modbus主設(shè)備允許存取的輸入寄存器(AIW)的最大數(shù)目。
MBUS_INIT指令的MaxHold參數(shù)指定Modbus主設(shè)備允許存取的保持寄存器(V存儲器字)的最大數(shù)目。
請參閱MBUS_INIT指令說明,了解有關(guān)為Modbus從站設(shè)定存儲器限制的進(jìn)一步詳情。
七、MODBUS常見問題解答
1. 我的設(shè)備支持 modbus設(shè)備,能否直接與組態(tài)王軟件連接?
只要設(shè)備是標(biāo)準(zhǔn)的 modbus 協(xié)議設(shè)備,即可使用組態(tài)王設(shè)備列表下的 PLC-->莫迪康
-->MODBUSRTU(或者 ACSII 碼)進(jìn)行通信。但具體的寄存器地址對照表必須從設(shè)備廠家
索取。
2. 我的支持 modbus 協(xié)議的串口設(shè)備,能否與多個上位軟件(比如組態(tài)王軟件和某品
牌觸摸屏)同時通訊?
因為 modbus 串口協(xié)議不支持多主站,所以不能多個軟件同時與 modbus 設(shè)備同時通
信。
3. 在組態(tài)王工程中建立多個 modbusTCPIPserver 設(shè)備定義, 分別使用兩臺客戶端對其
訪問,只有站點高的那個 server 通訊 ok,站點低的通訊失敗,為什么?
這是因為在組態(tài)王軟件中只支持建立一個 modbusTCPIPserver,當(dāng)建立多個 server
時,組態(tài)王客戶端則會自動與站點高的server進(jìn)行通訊,所以會導(dǎo)致站點低的通訊失敗。
4. 如何實現(xiàn)組態(tài)王數(shù)據(jù)通過串口或者以太網(wǎng)驅(qū)動方式傳送到其他組態(tài)軟件或者應(yīng)用程
序中?
如果其他組態(tài)軟件或者應(yīng)用程序支持 modbus 協(xié)議,則可以通過組態(tài)王提供的
modRTUserver 或者 modbusTCPserver 驅(qū)動來實現(xiàn)。
5. 組態(tài)王與支持 Modbus協(xié)議的設(shè)備進(jìn)行通訊時, 組態(tài)王畫面上顯示的數(shù)據(jù)不正確常有
哪些原因?
引起數(shù)據(jù)不正確的原因主要有如下幾點:
1)組態(tài)王中定義的寄存器地址跟實際設(shè)備不一致導(dǎo)致。比如某些使用 modbus 協(xié)議
通訊的設(shè)備的數(shù)據(jù)地址是從 0 開始的,而組態(tài)王 modbus 協(xié)議驅(qū)動寄存器地址是從 1 開
始的,所以遇到此種情況時在組態(tài)王中定義變量時,寄存器地址要進(jìn)行加1 處理;
2)數(shù)據(jù)詞典中最大原始值和最大值定義不不當(dāng);比如最大原始值和最大值不一樣會
導(dǎo)致畫面看到的數(shù)據(jù)和實際設(shè)備不一致;
3)組態(tài)王讀取 FLOAT 和 LONG 類型的數(shù)據(jù)時,沒有使用提供的 SwapF 和 SwapL
寄存器來調(diào)整FLOAT 型和 LONG型數(shù)據(jù)的字節(jié)順序;
4)LONG 或 FLOAT 型的雙字的數(shù)據(jù),沒有按照間隔隔地址方式定義;因為 modbus
協(xié)議所對應(yīng)的參數(shù)地址一般按照字為基本單位進(jìn)行分地址排序的。
6. 組態(tài)王與西門子 200plc自由口協(xié)議通過modem 通訊,硬件接線怎樣實現(xiàn)?
設(shè)備上插標(biāo)準(zhǔn) PPI 電纜,modem9 針口通過一個標(biāo)準(zhǔn) 232 交叉線接到 PPI 電纜上即
可,232交叉線的 modem側(cè)需要 1 4 6 短接,7 和 8 短接。
7. 西門子200plc通過modbus協(xié)議與組態(tài)王通訊時, 組態(tài)王中定義的寄存器地址與plc
地址是如何對應(yīng)的?
映射關(guān)系如下:
0-Q,1-I,3、4、8、9-V;
3,4,8,9的 dd 號與 PLC中 V寄存器的偏移地址(實際地址-1000)的對應(yīng)關(guān)系:
組態(tài)王中(寄存器的dd 號-1)*2=PLC中的 V寄存器的偏移地址。組態(tài)王中 40031
對應(yīng) PLC:VW1060 (組態(tài)王中寄存器 4 表示SHORT 型變量)組態(tài)王中 90640 對應(yīng) PLC:
VD2278 (組態(tài)王中寄存器9 表示 FLOAT型變量)。
注:上面的對應(yīng)關(guān)系是針對用戶使用的是亞控公司提供了PLC(MODBUS)通訊的初
始化程序,如果用戶是自己編程寫的初始化程序,則根據(jù)實際程序規(guī)定的 modbus 對應(yīng)
地址定義變量。
8. 西門子 200plc通過 modbus協(xié)議與組態(tài)王通訊,需要注意哪些事項?
需要注意如下幾點:
1)需要向 PLC中下載對應(yīng)的初始化程序(KVmoddbus.mwp),由亞控提供。此程
序默認(rèn)的 plc 通訊端口為 port0,地址為 2,波特率 9600,無校驗(地址和波特率可由程
SBR0 中的 VB8,SMB30 進(jìn)行修改);
2)由于 PLCModbus 協(xié)議程序占用 V1000及以前的地址,所以用戶在編寫邏輯控制
程序中用到的寄存器不能和亞控提供的協(xié)議中所占用的 V區(qū)地址沖突;
3)西門子 S7200PLC 和通過 modbus 協(xié)議和組態(tài)王通訊時,CPU上的開關(guān)必須撥在
RUN狀態(tài),否則 PLC中的 modbus 通訊程序沒有處于運(yùn)行狀態(tài),組態(tài)王和設(shè)備通過自由
口協(xié)議肯定通訊失??;
9. 西門子 200plc通過 GPRS鏈路和組態(tài)王通訊,使用哪種協(xié)議方式比較好?
推薦使用自由口/modbusRTu協(xié)議。
ppi 協(xié)議實際上也支持通過GPRS 鏈路和組態(tài)王通訊,但由于PPI 協(xié)議的特殊性,
GPRS方式下通訊效果不是很好,因此不推薦客戶使用。
10. 組態(tài)王提供的 ModbusRTUServer 和 ModbusRTU驅(qū)動的寄存器是怎樣對應(yīng)的?
ModbusRTUServer 的B寄存器對應(yīng)ModbusRTU的 0 寄存器;
ModbusRTUServer 的R寄存器對應(yīng)ModbusRTU的 4 寄存器。