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