夏正龍,鄧 斌
(江蘇師范大學電氣工程及自動化學院,江蘇 徐州221116)
隨著科技的發展,工業控制系統大多采用上位機對下位機進行監測與控制。因此,下位機控制器的處理速度以及控制器與設備之間的數據采集、傳輸速度是整個系統的關鍵所在[1]。傳統煤礦變電所中,綜保儀表與可編程邏輯控制器(programmable logic controller,PLC)通過I/O口硬接線方式進行數據傳輸。此方式在數據采集時,存在采集速度慢、接線復雜以及屏蔽性差等缺點,現在已被國內外多數煤礦所棄用。
目前,變電所中,電力綜保儀表設備更加智能化。儀表設備上都配有通信端口。利用這些端口,采用Modbus通信協議與PLC進行通信[2]。本文所設計的系統采用西門子的S7-1500系列PLC作為控制器,通過RS-485總線下Modbus-Rtu通信協議與壓風機房中高、低壓柜體的智能儀表進行通信,對壓風機房中電壓、電流、有功功率等數據進行采集;上位機監測采集到的數據,實現對綜保開關控制。該系統很大程度上提升了煤礦變電所自動化的程度,提高了傳輸效率以及傳輸質量,節約了布線成本。
Modbus通信是一種串行的主從通信協議。該協議給出了數據交換的必要內容為數據序列和校驗碼。在設備互相組成的環網中,每個設備都有唯一的地址,但其中只有一個設備能夠建立協議。這個設備為主機,一般為計算機或PLC等設備。其他的設備為從機,只能根據主機發出的查詢作出相應的響應動作[3]。主機既可以對單個的從機進行設備通信,也可以利用廣播方式和多個從機進行通信。當主機與單個從機進行通信時,主機發出信號尋址某臺唯一的終端設備(從機)。然后,來自尋址終端設備的響應信號以相反的方向發送到主機。而采用廣播與多個從機進行通信的方式,不需要從機給主機作出回應。
Modbus通信主要分為兩種串行傳輸模式[4]。一種為ASCII模式的通信,另一種為RTU模式的通信。本文所設計的系統利用西門子S7-1500系列PLC作為主機,與山東力創科技EX8綜保儀表進行通信。由于EX8只能使用Modbus-RTU的通信協議,以下給出了EX8儀表與Modbus-RTU的傳輸模式相兼容的規則,如表1所示。

表1 EX8儀表Modbus-RTU傳輸模式規則表
當主機所發送的數據幀到達終端設備后,設備刪除數據幀的“信封”(數據頭),讀取數據。如果沒有錯誤,執行數據請求的任務。然后,將己方生成的數據添加到取得的“信封”中,把數據幀返回給主機。所返回給主機的響應數據中包含從機地址、功能碼、返回的字節數、執行命令生成的被請求數據和一個校驗碼[5]。功能碼能實現告知操作者被尋址到的終端設備所執行的功能。EX8綜合電力儀表的功能碼如表2所示。

表2 EX8綜合電力儀表的功能碼
本項目利用西門子S7-1500 PLC作為控制器,對礦井壓風機房中的出線、進線柜以及PT柜的綜保設備狀態和智能儀表的數據進行采集,并在集控室的觸摸屏上進行監控顯示。其中,為提高所采集數據的質量,PLC與這些儀表設備之間采用RS-485屏蔽雙絞線連接。項目中使用的西門子PLC由1511-1 PN型號的CPU以及CM PtP RS-422/RS-485模塊所組成。觸摸屏使用的是西門子系列的TP1200 Comfort。低壓柜中所使用的儀表為山東力創生產的EX8系列儀表。項目設備通信結構如圖1所示。

圖1 項目設備通信結構圖
因此,使用博途(TIA)V15編程軟件進行編程。在博途編程軟件中,利用通信模塊中集成好的Modbus(RTU)功能塊與項目中的儀表進行通信。在Modbus(RTU)功能塊中包含有Modbus_Comm_Load指令、Modbus_Mast指令以及Modbus_Slave指令。在這里主要使用Modbus_Comm_Load指令與Modbus_Master指令。其中,Modbus_Comm_Load指令通過Modbus RTU協議對用于通信的通信模塊進行組態。當在程序中添加Modbus_Comm_Load指令時,系統將自動分配背景數據塊。這是博途編程軟件所特有的優點。Modbus_Comm_Load的組態更改將保存在CM中,而非CPU中[6]。當恢復電壓和插拔時,將使用保存在設備配置中的數據組態CM。這也是博途編程軟件中Modbus(RTU)功能塊所擁有的特有優點[7]。Modbus_Master指令可通過由Modbus_Comm_Load指令組態的端口作為Modbus主站進行通信。當在程序中添加Modbus_Master指令時,系統同樣為其自動分配背景數據塊。Modbus_Comm_Load指令的MB_DB參數必須連接到Modbus_Master指令的(靜態)MB_DB參數。
PLC在一個掃描周期下,只能有一個通信模塊處于激活狀態。為了實現系統測量多個綜保儀表的數據,編程時采用了一個加計數指令作為一個循環指令,使PLC能夠與多個綜保儀表輪流進行通信。采用Modbus_Master指令對綜保儀表進行通信,且只有當循環數達到這個綜保儀表所對應的地址數時,才會對這個儀表進行數據采集。采集所用的時間可以利用一個對加計數的頻率脈沖觸發指令的大小來決定[8]。
根據PA63綜保單元通信協議規約的不同,需要設置一個功能令牌碼進行賦值。不同數值對應實現不同功能。在此以M存儲區MB122位置變量“PA63-Token”作為功能令牌碼[9]。該令牌碼對應不同的數值時,將會對應PLC與高壓綜保單元通信時的實現的遙控、遙調、遙測、遙信等不同功能。將這些不同功能時得到的數據分別存儲到相對應的PLC數據DB塊中,以便于后續使用及觀察。當PLC進行斷電重啟時,需要執行OB100程序對M存儲區的位置進行初始化處理。這是為了防止程序出現混亂[10]。PLC與壓風機房變電所智能綜保單元進行遠方遙測功能解析程序如下所示。
L "PA63-ZHNo"
T "PA63-FSDB".DB_VAR
L B#16#03
T "PA63-FSDB".DB_VAR1
L 6
T "PA63-CRCLen"
CALL "PA63-FSCRC16"
L "PA63-CRCHigh"
T "PA63-FSDB".DB_VAR6
L "PA63-CRCLow"
T "PA63-FSDB".DB_VAR7
L 8
T "PA63-FSLen"
L "PA63-FSLen"
T "PA63-發送長度"
CALL BLKMOV
blk_type:=Variant
SRCBLK :=P#DB4.DBX0.0 BYTE 20
RET_VAL :="Tag_1"
DSTBLK :=P#Q4.0 BYTE 20
CALL "PA63-2-FS"
JU M007
M001: A "PA63-接收完成"
AN "PA63-正在接收"
= "PA63-JSCG"
CALL "PA63-13-CTPT"
L "PA63-ZHNo"
L 1
-I
L 100
*I
SLW 3
LAR1
L %DB3.DBD10
DTR
L 1000.0
/R
OPN “KY-YCYXDB”//打開“KY-YCYX”的數據塊
T DBD[ AR1,P#0.0 ]
//A相電壓
L %DB3.DBD22
DTR
OPN “KY-YCYXDB”
T DBD[ AR1,P#12.0 ]
//A相電流
本項目是依托煤礦壓風機房改造進行的。觸摸屏界面設計時包括了很多方面工作。比如,壓風機的啟停與數據采集、熱交換的啟停與數據采集、恒壓供水的啟停與數據采集以及供電中高壓與低壓柜儀表數據采集與遠程控制分合閘等[11]。觸摸屏數據采集界面詳細展示了PLC與智能綜保儀表進行Modbus通信后,所測量到的各個位置的電壓、電流、有功功率等數據;在界面中兼具一些分合閘的按鈕,可以就地控制綜保設備的分合閘狀態。本系統中,礦方要求:對壓風機房變電所中智能儀表所測量數據與綜保設備負荷開關的狀態,在中央集控室中進行監測與控制。也就是說,在中央集控室上位機中進行相應的界面設計,可實現遠方四遙的功能。因此,采用基于OPC技術的客戶端/服務器(B/S)與瀏覽器/服務器(C/S)相結合的軟件架構模式,將PLC在柜體智能儀表中采集到的數據傳輸到OPC的客戶端中,再利用上位機中可視化工具
INTOUCH軟件在OPC服務器進行數據讀取,經過計算分析后在相應的界面中進行監測與控制。
如今,Modbus協議已成為通用工業標準,被廣泛應用在控制器與智能儀表通信。本文利用西門子PLC與智能綜保儀表,對煤礦壓風機房的低壓柜與高壓柜進行Modbus串行通信連接,將電流、電壓、有功功率與功率因素等電量參數采集到中央集控室的上位機中進行顯示,對智能綜保負荷開關狀態在上位機中進行監測與控制管理等。目前,所述方法已在煤礦壓風機房中實施運行,運行效果良好。該方法不僅便于數據的集中管理,也為以后實現煤礦無人值守變電所打下了堅實基礎。