時間:2015-08-04 16:41:00來源:王子娜 李方園
摘要:在現(xiàn)場總線應用中,最常用的就是Modbus總線。本文主要介紹一種基于Modbus的遠程溫度采樣控制,給出了PLC硬件接線原理,闡述了軟件設置與編程,在實際應用中獲得了很好的效果。
關鍵詞:Modbus;PLC;遠程溫度采樣
1、前言
Modbus是由Modicon公司(現(xiàn)為施耐德電氣的一個品牌)在1978年發(fā)明的,這是一個劃時代、里程碑式的網絡協(xié)議,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議。
Modbus的巨大成功,可以歸結到以下3個方面:
a.標準、開放:用戶可以免費、放心地使用Modbus協(xié)議,不用交納許可證費,也不會侵犯知識產權。目前,支持Modbus的廠家超過400家,支持Modbus的產品超過600種,而且在國內也有很多的用戶支持和使用Modbus的產品。
b.Modbus是面向消息的協(xié)議。可以支持多種電氣接口,如:RS232、RS422、RS485等,還可以在多種介質上傳送,如:雙絞線、光纜、無線射頻等。要說明的是:和很多的現(xiàn)場總線不同,它不用專用的芯片與硬件,完全采用市售的標準部件。這就保證了采用Modbus的產品造價最為低廉。
c.Modbus協(xié)議的幀格式是最簡單、最緊湊的協(xié)議??梢哉f:簡單高效,通俗易懂。所以用戶使用容易,廠商開發(fā)簡單。用戶和廠商可以通過ww.Modbus-IDA.org網站和其他網站,下載各種語言的樣例程序、控件、以及各種Modbus工具軟件,更好地使用Modbus。
本文將主要闡述一種基于Modbus的遠程溫度采樣控制系統(tǒng),使用2臺西門子S7-200PLC,將連接在從站PLC上的PT100溫度,顯示在具有Modbus總線接口的溫度表上。
2、Modbus在遠程溫度采樣控制系統(tǒng)中的總體設計
系統(tǒng)總框圖如圖2.1所示。S7-200PLC從站獲取溫度信號(即PT100),將信息通過Modbus反饋到S7-200PLC主站上,再通過Modbus總線反饋到溫度表上,將溫度的上限和下限可以設置,并在信號燈進行輸出,這樣就能夠更容易得觀察到溫度變化現(xiàn)象,時時記錄數(shù)據,更具人性化。
圖1系統(tǒng)總體框圖
(1)Modbus報文傳輸協(xié)議
Modbus地址通常是包含數(shù)據類型和偏移量的5個或6個字符值。第一個或前面兩個字符決定數(shù)據類型,最后的4個字符是符合數(shù)據類型的一個適當?shù)闹?。Modbus主站指令可以將地址映射至相應的功能,以發(fā)送到從站。
Modbus地址與S7-200地址對應關系如表1所示。
表1映射Modbus地址到S7-200
000001 |
Q0.0 |
000002 |
Q0.1 |
000003 |
Q0.2 |
… |
… |
000127 |
Q15.6 |
000128 |
Q15.7 |
010001 |
I0.0 |
010002 |
I0.1 |
010003 |
I0.2 |
… |
… |
010127 |
I15.6 |
010128 |
I15.7 |
030001 |
AIW0 |
030002 |
AIW2 |
030003 |
AIW4 |
… |
… |
030032 |
AIW62 |
040001 |
HoldStart |
040002 |
HoldStart+2 |
040003 |
HoldStart+4 |
… |
… |
04xxxx |
HoldStart+2x(xxxx-1) |
Modbus通信協(xié)議有ASCII和RTU(遠程傳輸單元)兩種報文傳輸模式。Modbus網絡中所有的站必須采用相同的傳輸模式和串口參數(shù)。本系統(tǒng)采用RTU模式,其報文格式如表2所示。
表2RTU模式的報文格式
地址 |
功能碼 |
數(shù)據1 |
… |
數(shù)據n |
CRC高字節(jié) |
CRC低字節(jié) |
地址:Modbus地址,1個字節(jié)。
功能碼:Modbus功能代碼,1個字節(jié);Modbus協(xié)議支持的功能碼共16條(1-16)。
(2)Modbus通信指令
西門子專門為ModbusRTU通信開發(fā)了指令庫,及大地簡化了ModbusRTU通信的開發(fā),以便于快速實現(xiàn)相關應用。通過ModbusRTU從站指令庫,使得S7-200可作為ModbusRTU中的從站設備集成到Modbus網絡中,以實現(xiàn)與Modbus主站設備的通信。
西門子Modbus主站協(xié)議協(xié)議庫包括兩條主站協(xié)議指令:MBUS_CTRL指令和MBUS_MSG指令。MBUS_CTRL指令用于初始化主站通信,MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動對Modbus從站的請求并處理應答。
1)MBUS_CTRL指令如圖2所示。
圖2MBUS_CTRL指令 圖3MBUS_MSG指令
主要參數(shù)含義如下:
Mode:“模式”參數(shù),輸入數(shù)值來選擇通信協(xié)議。1將CPU端口分配給Modbus協(xié)議并啟用該協(xié)議;0將CPU端口分配給PPI系統(tǒng)協(xié)議,并禁用Modbus協(xié)議。
Baud:“波特率”參數(shù)。MBUS_CTRL指令支持的波特率為19200、38400、57600或115200bit/s。
Parity:“奇偶校驗”參數(shù)。“奇偶校驗”參數(shù)被設為與Modbus從站奇偶校驗相匹配。所有設置使用一個起始位和一個停止位??山邮艿臄?shù)值為:0-無奇偶校驗,1-奇校驗,2-偶校驗。
2)MBUS_MSG指令如圖3所示。
主要參數(shù)含義如下:
First:“首次”參數(shù)。“首次”參數(shù)應該在有新情求要發(fā)送時才打開以進行一次掃描。“首次”輸入應當通過一個邊沿檢測元素(例如上升沿)打開,這將導致請求被傳送一次。
Slave:“從站”參數(shù)。“從站”參數(shù)是Modbus從站的地址,允許的范圍是0-247.地址0是廣播地址,只能用于寫請求,不存在對地址0的廣播請求的應答。并非所有的從站會支持廣播地址,S7-200Modbus從站協(xié)議庫不支持廣播地址。
RW:“讀寫”參數(shù)。“讀寫”參數(shù)指定是否要讀取或寫入該消息。“讀寫”參數(shù)允許使用下列兩個值:0-讀,1-寫。
Addr:“地址”參數(shù)。“地址”參數(shù)是起始的Modbus地址。
Count:“計數(shù)”參數(shù)。“計數(shù)”參數(shù)指定在該請求中讀取或寫入的數(shù)據元素的數(shù)目。“計數(shù)”數(shù)值是位數(shù)(對于位數(shù)據類型)和字數(shù)(對于字數(shù)據類型)。
西門子Modbus從站協(xié)議庫包括兩條從站指令:MBUS-INIT指令和MBUS-SLAVE指令(圖4和圖5)。
圖4MBUS_INIT指令 圖5MBUS_SLAVE指令
3、系統(tǒng)硬件電路的設計
PLC硬件接線圖如圖6所示。PLC部分略去不講,主要介紹外部元器件。
圖6PLC硬件接線圖
(1)溫度表
由于是總線控制的溫度表,一般都選用支持Modbus的RS485型數(shù)顯儀(如圖7所示)。
圖7溫度表
(2)PT100
西門子S7-200支持兩種類型的溫度傳感器,即熱電阻和熱電偶,其溫度模塊也有不同,必須合理配置。圖8為常用的PT100熱電阻。
圖8PT100外表
4、系統(tǒng)軟件程序的設計
利用指令庫編程前首先應為Modbus從站分配存儲區(qū),否則Micro/Win軟件編譯時會報錯。通過Micro/Win軟件菜單命令“文件”→“庫存儲區(qū)”,打開“庫存儲區(qū)分配”對話框。在“庫存儲區(qū)分配”對話框中輸入庫存儲區(qū)的起始地址,注意避免該地址和程序中已經采用或準備采用的其他地址重合。單擊“建議地址”按鈕,系統(tǒng)將自動計算存儲區(qū)的截止地址。
而對于從站來說,S7-200作Modbus通信要用到自由口通信下的ModbusSlave庫,對于此庫的應用要注意的是:ModbusSlave庫僅支持ModbusPTU通信模式,不支持ASCII通信模式;目前的ModbusSlave庫僅支持通信口Port0。使用ModbusSlave庫時也要注意對庫分配內存區(qū)空間,否則編譯后會出現(xiàn)很多的錯誤。如圖9所示。
圖9調用的庫要分配系統(tǒng)內存地址區(qū)
編程時使用SM0.1調用子程序MBUS_INIT進行初始化,使用SM0.0調用MBUS_SLAVE,并指導相應參數(shù)。關于參數(shù)的詳細說明,可在子程序的局部變量表中找到。
初始化Modbus從站如圖10所示。
圖10調用ModbusPTU通信指令庫
圖中參數(shù)意義如下:
a.模式選擇:啟動/停止Modbus,1=啟動;0=停止
b.從站地址:Modbus從站地址,取值1-247
c.波特率:可選1200,2400,4800,9600,19200,38400,57600,115200
d.奇偶校驗:0=無校驗;1=奇校驗;2=偶校驗
e.延時:附加字符間延時,缺省值為0
f.最大I/O位:參與通信的最大I/O點數(shù),S7-200的I/O映像區(qū)為128/128,缺省值為128
g.最大AI字數(shù):參與通信的最大AI通道數(shù),可為16或32
h.最大保持寄存器區(qū):參與通信的最大V存儲區(qū)字(VW)
i.保持寄存器區(qū)起始地址:以&VBx指定(間接尋址方式)
j.初始化完成標志:成功初始化后置1
k.初始化錯誤代碼
l.Modbus執(zhí)行:通信中時置1,無Modbus通信活動時為0
m.錯誤代碼:0=無錯誤
從程序截圖中可見,S7-200作為Modbus從站,從站地址為10,接收存儲區(qū)為VB0開始。
調用Modbus主站指令編程前也應分配庫存儲區(qū),與從站編程類似。主站主程序如圖11所示。
圖11主站主程序
5、結束語
Modbus是公開通信協(xié)議,其具有兩種串行傳輸模式,ASCII和RTU。它們定義了數(shù)據如何打包、解碼的不同方式。通信雙方必須同時支持上述模式中的一種,通常支持Modbus通信的設備大都支持RTU格式。本文主要介紹了其中的一種RTU協(xié)議,應用在遠程溫度采樣控制中。該系統(tǒng)可以在需要實時了解和掌握惡劣現(xiàn)場工礦的溫度采樣控制中進行實施。
參考文獻
[l]劉華波.西門子S7-200PLC編程應用案例精選[M].機械工業(yè)出版社,2010
[2]李方園.零起點學西門子變頻器應用[M].機械工業(yè)出版社,2011
[3]李方園.零起點學習西門子S7-200PLC[M].機械工業(yè)出版社,2012
[4]李方園.西門子S7-200PLC從入門到實踐[M].電子工業(yè)出版社,2010
[5]廖常初.S7-200PLC編程及應用[M].電子工業(yè)出版社,2008
標簽:
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.surachana.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯(lián)網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
2025-04-08
2025-03-31
應用案例 | 使用宏集TELE監(jiān)控繼電器監(jiān)控...
2025-03-26
2025-03-20