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