利用Hilscher通用網關實現PROFIBUS總線和串口儀表之間的通訊
摘要:本文介紹了如何利用協議轉換網關實現PROFIBUS現場總線和由智能控制儀表組成的串行通信網絡間的通訊。
關鍵詞:現場總線 PROFIBUS-DP RS485 MODBUS-RTU 協議轉換 網關
Abstract:This paper introduces how to use the Protocol conversion gateway to realize the communication between PROFIBUS field bus and serial communication networks that are consist of intelligent controlling instrument.
Key words:FieldBus PROFIBUS-DP RS485 MODBUS-RTU Protocol conversion Gateway
1引言
智能控制儀表是工業控制中最常用的控制器之一,其主要是針對某一特定的參數(如壓力、溫度、流量等),采用先進的控制算法(如PID、自適應PID、模糊邏輯等)來達到精確控制被控參數的目的,具有專業性強、智能化高、控制算法先進、使用方便等特點。可編程邏輯控制器(簡稱PLC)以其運行可靠、集成度高、可擴展性強而在工業控制中得到廣泛的應用。在當今現場總線技術極大發展的今天,世界上各大PLC廠商所推出的現場總線也各不相同,目前國際上流行的現場總線協議就有10幾種之多;但由于這些儀表一般只支持串口通訊協議,如何通過現場總線把智能控制儀表的數據傳入PLC中,就比較難以實現。為此德國赫優訊公司推出了netTAP系列通用網關,它支持各種現場總線從站到串口協議的轉換。下面我們以PROFIBUS-DP從站到ASCII協議的轉換來說明。
2 通信系統的構成以及實現方法
2.1 系統配置
SIEMENS公司的315-2 DP CPU作為一個DP Master,總線地址設為2;Hilscher公司的netTAP網關作為PROFIBUS-DP從站,總線地址設為3;控制儀表我們采用目前使用比較廣泛的Eurotherm公司的2416儀表(4塊)。系統配置簡圖如下:

圖1:系統配置圖
2.2 netTAP網關的參數設置
netTAP系列網關中的有一種支持PROFIBUS-DP從站到Modbus RTU或ASCII或3964R協議轉換的NT30-DPS網關,只要加載不同的固件就可以實現PROFIBUS-DP和相應協議之間的轉換。在這里我們選用PROFIBUS-DP從站到ASCII協議。選擇完后將固件下載到網關中去。
下面要對網關進行相應的配置:
2.2.1 ASCII(其它參數采用默認設置)
接口/RTS | RS485/RTS啟用 |
波特率 | 9600 |
數據位 | 8 |
停止位 | 1 |
奇偶校驗 | 偶校驗 |
模式 | 主站 |
結束模式 | 僅時間控制 |
校驗和模式 | 無 |
校驗和區域 | 僅在用戶數據中 |
字符過濾 | 無 |
字符[16進制] | |
報文間隔 | 100毫秒 |
表1:ASCII相關參數的設置
2.2.2 MODULES(注意要和DP主站的設置保持一致)
模塊類型 | 模塊長度 |
in byte con | 2 |
in byte con | 64 |
out byte con | 2 |
out byte con | 64 |
表2:MODULES相關參數的設置
參數組態完成后,將組態信息也下載到網關中去。
2.3 2416儀表的通訊參數設置
參照歐陸2000系列儀表通訊說明書,來對通訊參數進行設置。
2416儀表支持2種通訊協議:MODBUS PROTOCOL和EI-BISYNCH PROTOCOL,我們選擇MODBUS PROTOCOL協議進行通訊。根據網關中已經配置好的組態信息,將4塊儀表通訊參數設置為:地址依次為1-4;波特率設為9600;8位數據位;1位停止位;偶校驗;其它參數用默認值。(相關操作請參見儀表操作說明書)
2.4 DP主站中進行組態和編程
打開STEP7編程軟件將NT3-DPS的GSD文件安裝到STEP中,然后通過GSD文件對NT30-DPS進行組態,見圖2。
圖2:主站中網關的組態
組態完成后,進行編譯保存。
下面將進行代碼的編寫,由于要采用CRC檢驗,所以我們需要編寫一個CRC檢驗的程序;具體代碼編寫請參照2000系列儀表通訊說明書,在程序中我們編寫了一個功能FC和一個用來存放數據的數據塊DB3,在DB3內建一個數組元素類型為BYTE長度為32的數組。
讀儀表數據時, 我們采取讀N WORDS的方法,命令格式見圖3:

圖3:讀取N個字的命令格式
返回的應答信息格式見圖4

圖4:讀取N個字命令的應答信息格式
我們需要讀取的數據為儀表的PV值、OP值和SP值。根據通訊說明書它們的MODBUS參數地址分別為1、3和2。因此要讀取這三個值的命令應該為(MODBUS地址為1的儀表為例):010300010003CRC,在返回的數據中,我們就可以得到PV、SP和OP的值。
在PROFIBUS的輸入和輸出映像區的第一個字節本例中為(PQB256和PIB256)是用于控制和監控通訊狀態的握手字節
下面為STEP程序的部分代碼:

將MB20值設為1;讀取MODBUS地址為1的儀表的數據。根據上面的應答格式,我們知道在返回的數據中PIW261為儀表的PV值;PIW263為儀表的SP值;PIW265為儀表的OP值。在變量表里進行監控并和儀表進行比較,我們發現數值是正確的。
要對多塊儀表進行通訊,只要通過程序來改變MB20的值,因此我們可以每隔100MS將相應儀表的站地址送到MB20中去,等數據返回后,再將下一塊儀表的站地址送到MB20中直到最后一塊,然后重新從第一塊儀表開始。由于返回的數據中包含了站地址信息,因此我們只要根據站地址將得到的數據送到相應的存儲區域中即可。當然我們也可以對儀表進行寫操作,需要注意的是讀寫轉換的控制問題。
3 結束語
我們在未來相當一段時間內將面對多種網絡協議并存的現實,因此用于協議轉換功能的網絡部件將在未來自動化系統中發揮重要作用。 擁有多種網絡接口的自動化設備也必然具有更強的市場競爭力。NetTAP作為一種通用的協議網關,它支持多種協議間的轉換,已經在很多場合中得到了實際應用,在未來也必將擁有廣闊的市場前景。
參考文獻
[1] 2000 comms man. Eurotherm Company(歐陸工業自動化有限公司)
[2] NtDpsAsc.en. Hilscher Company.(德國赫優訊自動化系統有限公司)
作者簡介
雷浩(1983--) 男 助工/學士 無錫市北辰自動化技術有限公司,從事工業自動化行業系統集成和聯網<
文章版權歸西部工控xbgk所有,未經許可不得轉載。
上一篇:世界印刷機械工業的整體發展現狀