一,、概述
很多自動化工程師在實際應(yīng)用中使用組態(tài)軟件與PLC進(jìn)行modbus通訊,,組態(tài)軟件作為主站PLC作為從站,。組態(tài)軟件來采集PLC數(shù)據(jù)使用這種方式是比較常見的。但是反向的利用modbus協(xié)議讓PLC去讀組態(tài)軟件里的數(shù)據(jù)確有著特殊的意義,,在某些工控場合也是很好解決方案,。紫金橋軟件在組態(tài)軟件行業(yè)里首先推出了modbus server,既紫金橋modbus server可以作為modbus從機為其他軟件和硬件設(shè)備提供數(shù)據(jù),,在這篇文章中對此功能我們詳細(xì)地加以介紹,。
二、S7-200 Modbus主站的實現(xiàn)
1,、S7-200 Modbus 通信協(xié)議介紹
Modbus 是一種單主站的主/從通信模式,。Modbus 網(wǎng)絡(luò)上只能有一個主站存在,主站在 Modbus 網(wǎng)絡(luò)上沒有地址,,從站的地址范圍為 0 - 247,,其中 0 為廣播地址,從站的實際地址范圍為 1 - 247,。在 S7-200 CPU 通信口上實現(xiàn)的是 RS485 半雙工通信,,使用的是 S7-200 的自由口能。S7-200支持 Modbus 通信協(xié)議: S7-200 CPU 上的通訊口 0 和 1 (Port 0 和 Port 1)通過指令庫支持 Modbus RTU 主站模式,。
2、S7-200 Modbus主站的配置
西門子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站協(xié)議庫(西門子標(biāo)準(zhǔn)庫指令),。要使用 Modbus RTU 主站指令庫,,須遵循下列步驟:
⑴安裝西門子標(biāo)準(zhǔn)指令庫
⑵按照要求編寫用戶程序調(diào)用 Modubs RTU 主站指令庫 Modbus RTU 主站功能編程使用 SM0.0 調(diào)用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:
具體參數(shù)的解釋如下:
EN使能:必須保證每一掃描周期都被使能(使用SM0.0)
Mode模式:常為1,,使能 Modbus 協(xié)議功能,;為0 時恢復(fù)為系統(tǒng) PPI 協(xié)議
Baud波特率:設(shè)為9600,,要與從站波特率對應(yīng)
Parity校驗:校驗方式選擇 0=無校驗
Timeout超時:主站等待從站響應(yīng)的時間,以毫秒為單位,,典型的設(shè)置值為1000毫秒(1秒),,允許設(shè)置的范圍為 1-32767。注意:這個值必須設(shè)置足夠大以保證從站有時間響應(yīng),。
Done完成位:初始化完成,,此位會自動置1??梢杂迷撐粏?MBUS_MSG 讀寫操作
Error初始化錯誤代碼(只有在 Done 位為1時有效):
0=無錯誤
1=校驗選擇非法
2=波特率選擇非法
3=模式選擇非法
⑶調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,,發(fā)送一個Modbus 請求;
如圖1所示,,具體參數(shù)設(shè)置如下:
Slave從站地址:可選擇的范圍 1-247
RW讀寫操作:0=讀,, 1=寫
注意:1. 開關(guān)量輸出和保持寄存器支持讀和寫功能
2. 開關(guān)量輸入和模擬量輸入只支持讀功能
Addr讀寫從站的數(shù)據(jù)地址:選擇讀寫的數(shù)據(jù)類型 00001至0xxxx-開關(guān)量輸出10001至1xxxx-開關(guān)量輸入
30001至3xxxx-模擬量輸入
40001至4xxxx-保持寄存器
Count通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù))
注意: Modbus主站可讀/寫的最大數(shù)據(jù)量為120個字(是指每一個 MBUS_MSG 指令)
DataPtr數(shù)據(jù)指針:1. 如果是讀指令,讀回的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中
2. 如果是寫指令,,要寫出的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中
Done讀寫功能完成位
圖1西門子Modbus RTU 主站協(xié)議庫
三,、紫金橋軟件Modbus從站的實現(xiàn)
1、紫金橋modbus server的設(shè)置
Modbus 服務(wù)器可以把紫金橋數(shù)據(jù)庫中的點映射為Modbus 設(shè)備的HR 寄存器,,當(dāng)前版本為3.0,,支持串口和TCP/IP訪問方式,支持HR區(qū)的讀和寫方式,。也就是說支持03,、06、16 號命令,。
具體操作是先在紫金橋軟件的安裝目錄中找到 ModbusSerSet.exe 并運行,。其中左側(cè)為變量配置顯示區(qū),它分為三列,,分別是序號,、數(shù)據(jù)庫位號和Modbus 地址。后兩列的意義是把某一個數(shù)據(jù)庫位號和一個Modbus 地址建立映射關(guān)系,。然后再調(diào)出系統(tǒng)設(shè)置對話框配置從機地址,、串口等參數(shù)或以太網(wǎng)端口號、數(shù)據(jù)格式等,。
2,、通訊過程
配置完成后,先運行紫金橋軟件然后在紫金橋軟件的安裝目錄中找到 ModbusServer.exe 并運行,。
從上面的通訊過程看到,,S7-200與紫金橋modbus server通訊的響應(yīng)速度為毫秒級的。