西門(mén)子開(kāi)放式IE通訊在水電站監控系統中的應用
表1:PLC所需程序塊
字節 | 參數 | 數據 類(lèi)型 | 初始值 | 說(shuō)明 |
0 | block_length | WORD | 64 | 本數據結構的長(cháng)度(字節數),固定為64。 |
2 | id | WORD | 1 | 連接ID號(范圍16#0001-16#FFFF),通過(guò)初始化程序設置。 |
4 | connection_type | BYTE | 1 | 連接類(lèi)型,固定為1:兼容的TCP/IP協(xié)議。 |
5 | active_est | BOOL | 0 | 連接建立方式,0:被動(dòng),1:主動(dòng),固定為0,CPU作為服務(wù)器,等待建立連接請求。 |
6 | local_device_id | BYTE | 2 | 本地設備ID,固定為2:CPU集成以太網(wǎng)接口。 |
7 | local_tsap_id_len | BYTE | 2 | 本地站TSAP長(cháng)度,固定為2:TSAP為端口號。 |
8 | rem_subnet_id_len | BYTE | 0 | 遠程子網(wǎng)長(cháng)度,不相關(guān)。 |
9 | rem_staddr_len | BYTE | 4 | 遠程站地址長(cháng)度,固定為4:有效的IP地址,IP地址位于rem_staddr4個(gè)字節。 |
10 | rem_tsap_id_len | BYTE | 0 | 遠程站TSAP長(cháng)度,不相關(guān)。 |
11 | next_staddr_len | BYTE | 0 | 下一站地址長(cháng)度,不相關(guān)。 |
12 | local_tsap_id ARRAY[1..16] | BYTE | 0 | 本地站端口號(范圍2000-5000) |
28 | rem_subnet_id ARRAY[1..6] | BYTE | 0 | 不相關(guān) |
34 | rem_staddr ARRAY[1..6] | BYTE | 0 | 遠程站IP地址,通過(guò)初始化程序設置。 |
40 | rem_tsap_id ARRAY[1..16] | BYTE | 0 | 遠程站TSAP或端口號,不相關(guān)。 |
56 | next_staddr | BYTE | 0 | 不相關(guān) |
62 | spare | WORD | 0 | 不相關(guān) |
表2:連接結構(UDT65)說(shuō)明
4.4 以太網(wǎng)通訊控制程序以太網(wǎng)通訊控制程序采用面向對象的結構化編程方法,在一個(gè)功能塊(FB73)中封裝了以太網(wǎng)通訊的建立連接、接收數據、調用Modbus/TCP協(xié)議處理程序和發(fā)送數據等過(guò)程。為此必須聲明用于以太網(wǎng)通訊控制程序(FB73)輸入、輸出和輸入/輸出參數。具體聲明的參數如下表3所示:
地址 | 聲明 | 名稱(chēng) | 類(lèi)型 | 初始值 | 說(shuō)明 |
0.0 | IN | Con_ID | Word | 0 | 連接ID號 |
2.0 | IN_OUT | TCON_Start | Bool | 0 | 開(kāi)始建立連接 |
4.0 | IN_OUT | Connect | Any | 連接參數地址指針 | |
14.0 | IN_OUT | Data | Any | 存放通訊臨時(shí)數據的數據塊指針 | |
24.0 | STAT | TCON_Done | Bool | 0 | 建立連接正確完成標志 |
24.1 | STAT | TCON_Busy | Bool | 0 | 正在建立連接標志 |
24.2 | STAT | TCON_Error | Bool | 0 | 建立連接錯誤完成標志 |
24.3 | STAT | TSEND_Start | Bool | 0 | 開(kāi)始發(fā)送數據標志 |
24.4 | STAT | TSEND_Done | Bool | 0 | 發(fā)送數據正確完成標志 |
24.5 | STAT | TSEND_Busy | Bool | 0 | 正在發(fā)送數據標志 |
24.6 | STAT | TSEND_Error | Bool | 0 | 發(fā)送數據錯誤完成標志 |
24.7 | STAT | TRCV_Start | Bool | 0 | 開(kāi)始接收數據標志 |
25.0 | STAT | TRCV_Done | Bool | 0 | 接收數據正確完成標志 |
25.1 | STAT | TRCV_Busy | Bool | 0 | 正在接收數據 |
25.2 | STAT | TRCV_Error | Bool | 0 | 接收數據錯誤完成標志 |
26.0 | STAT | Rcvd_Len | Int | 0 | 接收到數據的臨時(shí)長(cháng)度 |
28.0 | STAT | Byte_Count | Int | 0 | 接收到數據的長(cháng)度 |
30.0 | STAT | FB_TSend | FB 63 | 發(fā)送數據功能塊多重背景 | |
52.0 | STAT | FB_TRcv | FB 64 | 接收數據功能塊多重背景 | |
76.0 | STAT | FB_Tcon | FB 65 | 建立連接功能塊多重背景 | |
96.0 | STAT | FB_ModbusTCP | FB 74 | Modbus/TCP協(xié)議處理功能塊多重背景 |
4.5 Modbus/TCP協(xié)議處理程序
Modbus/TCP協(xié)議處理程序采用面向對象的結構化編程方法,在一個(gè)功能塊(FB74)中封裝了數據數量、數據地址和功能碼判斷,處理并準備上傳所需數據等全部過(guò)程。為此必須聲明用于Modbus/TCP協(xié)議處理程序(FB74)輸入、輸出和輸入/輸出參數。具體聲明的參數如下表4所示:
地址 | 聲明 | 名稱(chēng) | 類(lèi)型 | 初始值 | 說(shuō)明 |
0.0 | IN_OUT | Byte_Count | Int | 0 | 以太網(wǎng)通訊接收到數據的長(cháng)度 |
2.0 | IN_OUT | Data_DB | Int | 0 | 存放通訊臨時(shí)數據的數據塊 |
本程序的難點(diǎn)在于實(shí)現對不同數據塊的讀取和寫(xiě)入,通過(guò)Modbus/TCP協(xié)議結構中寄存器地址字節8 (寄存器高字節)對應數據塊號、寄存器地址字節9 (寄存器低字節)對應數據塊字節號就可解決。
自本系統運行以來(lái),CPU315-2PN/DP與上位機系統操作員工作站1、2通訊一直正常,從未出現過(guò)通訊中斷現象,有效地保證了湖南銅信溪水電站監控系統的正常運行, 應用這種方法不需要采用西門(mén)子公司OPC能有效降低整個(gè)水電站監控系統成本??梢?jiàn),采用通過(guò)開(kāi)放式IE通訊與上位機系統通訊是一種行之有效的方法,實(shí)現了讀取遙信、遙測、定值、SOE和寫(xiě)入遙控、遙調和定值等功能,完全滿(mǎn)足《DL/T578-1995水電廠(chǎng)計算機監控系統基本技術(shù)條件》實(shí)時(shí)性、可靠性和通訊安全性要求。由此看來(lái),西門(mén)子PLC集成PROFINET接口的CPU模塊采用開(kāi)放式IE通訊與第三方智能設備通過(guò)以太網(wǎng)交換數據是一種值得推廣的方式。
參考文獻
1. 使用STEP7 V5.3編程手冊 2004.1
2. 用于S7-300和S7-400的語(yǔ)句表編程參考手冊 2004.1
3. 用于S7-300和S7-400的系統軟件和標準功能參考手冊 2005.7
評論