陳曉東 ,王高鵬
(1.寧波市江北區(qū)農(nóng)林水利局, 浙江 寧波 315020;2.河海大學水電學院, 江蘇 南京 210098)
在水閘監(jiān)控系統(tǒng)中,需要采集與傳輸?shù)臄?shù)據(jù)有水位、閘位、目標閘位、電流、電壓、斷路器狀態(tài)、接觸器狀態(tài)、熱繼電器狀態(tài)、限位開關狀態(tài)、接觸器控制指令等[1-2]。傳輸?shù)牧飨蛑饕菑膫鞲衅骰螂娖髟O備到 PLC 再到計算機。對于操作指令、控制目標值等數(shù)據(jù)則通常是從計算機流向 PLC,有些系統(tǒng)還會再將這些數(shù)據(jù)下載到現(xiàn)場儀表。由于各種傳感器的輸出不盡相同,數(shù)據(jù)從傳感器到 PLC 的傳輸有多種方法。數(shù)據(jù)從 PLC 到計算機的雙向傳輸方法通常有 2 種方法:1)組態(tài)軟件中直接定義其支持的 PLC 設備,實現(xiàn)計算機與 PLC 之間的數(shù)據(jù)傳輸;2)通過數(shù)據(jù)接口軟件先與 PLC 進行數(shù)據(jù)通信,然后通過組態(tài)軟件的 OPC 設備與數(shù)據(jù)接口軟件進行通信,實現(xiàn) PLC 與組態(tài)軟件之間的數(shù)據(jù)傳輸。
閘位傳感器有模擬量、并行和串行數(shù)字量輸出 3 種,其中較為常見的是同步串行接口 SSI 信號輸出。SSI 信號[3]包括差分同步時鐘信號 CLOCK+ 和CLOCK-,差分數(shù)據(jù)信號 DATA+ 和 DATA-,編碼器工作電源 VCC 和 GND。在絕對編碼器內(nèi)部,符合EIA 的 RS-485 標準的差分線路接收器可接收外部主控者的時鐘信號 CLOCK,差分線路驅(qū)動器可給主控者提供數(shù)據(jù)信號 DATA。編碼器的絕對位置值在主控者發(fā)出的時鐘脈沖控制下,從最高有效位(MSB)開始同步傳輸。
絕對編碼器 SSI 信號傳輸時序圖如圖 1 所示,當沒有信號傳輸時,時鐘和數(shù)據(jù)線都為高電平。在時鐘信號的第 1 個下降沿,編碼器的當前位置值被儲存,在隨后的時鐘上升沿,儲存的數(shù)據(jù)被送出。對于分辨率為 25 位的絕對編碼器,共需要 25 個時鐘脈沖的上升沿才能將 1 個位置的編碼數(shù)據(jù)串行傳輸出來。
圖1 絕對編碼器 SSI 信號傳輸時序
1 個完整的數(shù)據(jù)傳送完成后,數(shù)據(jù)線保持一段時間(t3)的低電平,直到編碼器準備好(被查詢)下一個值。如果在 t3 期間接收到時鐘的下降沿,相同的值被再次發(fā)送。SSI 信號有以下 2 種途徑傳輸?shù)?PLC:1)PLC 本身有 SSI 輸入模塊;2)通過 SSI-485 的信號轉(zhuǎn)換器再連接到 PLC。并行信號,一般通過 PLC 的開關量輸入點通信,當并行量較多時,可以使用選通器實現(xiàn)輸入。
SSI-485 轉(zhuǎn)換器通常由單片機構成。轉(zhuǎn)換器的硬件主要包括 3 個部分:1)起主控作用的單片機;2)與絕對編碼器 SSI 信號接口的 IC;3)實現(xiàn) 485信號的 IC。
SSI-485 轉(zhuǎn)換器硬件原理框圖如圖 2 所示,U3/MAX488 芯片能夠?qū)⑵?DI 端輸入的單端脈沖信號轉(zhuǎn)換為差分的 CLK+ 和 CLK- 信號輸出,同時,能夠?qū)⒉罘值?DATA+ 和 DATA- 信號輸入轉(zhuǎn)換為單端的脈沖信號從其 RO 端輸出;U2/MAX485 芯片能夠?qū)纹瑱C上的異步通信串行接口轉(zhuǎn)換為 RS485 標準的接口;單片機 U1 的時鐘線 T0 用作 MAX488 差分時鐘信號的驅(qū)動端;時鐘線 T1 用作 DATA 信號轉(zhuǎn)換為單端信號的輸入端;單片機 U1 自身帶有通用異步串行接口 UART,即標記為 TXD 和 RXD 的 2 個端口線,將它們直接與 MAX485 的 DI 和 RO 端相連實現(xiàn)通用異步串行接口到 RS-485 之間的物理轉(zhuǎn)換;U4 是 EEPROM,用于存放本轉(zhuǎn)換器的通信地址。
圖2 SSI-485 轉(zhuǎn)換器硬件原理框圖
U3/MAX488 用于與絕對編碼器的 SSI 信號進行接口,U2/MAX485 用于與上位機進行物理接口,單片機 U1 用于控制讀取編碼器數(shù)據(jù),并實現(xiàn)與上位機通信的協(xié)議。
轉(zhuǎn)換器的軟件部分主要包括讀取 SSI 信號、實現(xiàn)通信協(xié)議等子程序。轉(zhuǎn)換器采用的通信協(xié)議是Modbus 的子集,上位機讀寫轉(zhuǎn)換器的指令是:地址+功能碼+數(shù)據(jù)+校驗碼,共 8 字節(jié)。地址是指轉(zhuǎn)換器的地址,占 1 個字節(jié),用 16 進制形式表示;功能碼,1 個字節(jié),根據(jù)取值不同可表示是要讀轉(zhuǎn)換器中的編碼器當前數(shù)據(jù)還是往轉(zhuǎn)換器里寫數(shù)據(jù);數(shù)據(jù),4 個字節(jié),當為讀指令時,取值為從轉(zhuǎn)換器中讀取的字節(jié)數(shù)和起始地址,在本轉(zhuǎn)換器中固定為 00H 00H 00H 04H,當寫指令時,數(shù)據(jù)的第 1 字節(jié)表示要對轉(zhuǎn)換器改寫的目標地址,其余 3 個字節(jié)固定取值為 00H;校驗碼 2 個字節(jié),低位字節(jié)在前,高位字節(jié)在后。校驗碼為 16 位 CRC 校驗碼。
大部分 PLC 的通信口可以通過編程設置改變其功能定義,對于沒有 SSI 信號模塊的 PLC 系列,只要其通訊口可以設置為 RS-485 通訊模式,借助于SSI-485 轉(zhuǎn)換器就可以很方便地實現(xiàn) SSI 數(shù)據(jù)傳輸。
1.2.1 模擬信號輸出
采用投入式壓力傳感器采集水位時,傳感器輸出為 4~20 mA,其中 4 mA 對應 0 m 水深,20 mA對應滿量程水深。PLC 通常使用模擬量模塊采集數(shù)據(jù)。比如,在 S7-200 系列 PLC 中,EM231 就是模擬量輸入模塊。該模塊有 4 個模擬量輸入點,每個輸入點可以接入電流或電壓信號。在模塊上可以通過 DIP 開關來選擇模擬量輸入種類和規(guī)格,PLC 通過對應的模擬量寄存器 AIW0~AIW3 來讀取輸入的模擬量。有了水位傳感器模擬量輸出信號的 A/D 轉(zhuǎn)換值后,通過傳感器量程及其安裝的高程數(shù)據(jù)就可以計算出水位值。
模擬信號輸出的水位數(shù)據(jù)也可以通過智能儀表與 PLC 通信來實現(xiàn)數(shù)據(jù)傳輸[3]。水位傳感器的模擬量輸出先接入智能儀表,儀表顯示水位,并通過串行通信將數(shù)據(jù)傳輸?shù)?PLC。如將投入式壓力水位傳感器接到智能儀表,儀表可以通過設定無壓力輸出4 mA、滿量程輸出 20 mA、水位計算偏移量,根據(jù)采集到的數(shù)據(jù)計算后得出當前水位值。同時,該儀表具有 RS-485 通信功能,通過 PLC 的 CPU 和儀表通信獲得水位數(shù)據(jù)。
1.2.2 數(shù)字信號輸出
目前市場上的超聲波、由旋轉(zhuǎn)絕對編碼器改制、激光、微動開關編碼等水位傳感器輸出的信號都是數(shù)字的,可以是 RS-485,SSI,RS-232,并行等信號。通常,RS-485,RS-232 信號都是通過 PLC 的通信口來傳輸?shù)?PLC 中。SSI 通過輸入模塊或信號轉(zhuǎn)換器傳輸?shù)?PLC。并行信號,一般通過PLC 的開關量輸入點通信,當并行量較多時,可以使用選通器實現(xiàn)輸入。
無論是狀態(tài)信號,還是控制指令,通常都是通過 PLC 的開關量輸入輸出點來完成傳輸。上位計算機通過組態(tài)或者數(shù)據(jù)接口軟件讀/寫 PLC 中指定寄存器的數(shù)據(jù)。
如果組態(tài)軟件支持系統(tǒng)中使用的 PLC,并且支持系統(tǒng)能接受的通信方式,比如以太網(wǎng)方式,那么,在組態(tài)軟件中定義 PLC 設備,用到的變量定義到該 PLC 設備的名下就可以實現(xiàn)通訊。
有時上述條件并不能滿足,此時通常是借助于數(shù)據(jù)接口軟件。一方面,專業(yè)的數(shù)據(jù)接口軟件可以通過若干種方式與 PLC 通信,另一方面,組態(tài)軟件又可以通過 OPC 技術與數(shù)據(jù)接口軟件通信,這樣就實現(xiàn)了 PLC 與組態(tài)軟件的通信。
常用的數(shù)據(jù)接口軟件是 KEPware Enhanced OPC Server,該軟件支持市場上常見的各種設備及其對應的通信方式。通過在該軟件中定義通道(Channel)、設備(Device)、標簽(tag)就可以訪問設備中的寄存器數(shù)據(jù)。
上述接口軟件作為 OPC 服務器,在具有 OPC 客戶端功能的組態(tài)軟件中可將該 OPC 服務器定義為OPC 設備,同時建立組態(tài)軟件中某變量與 OPC 服務器中某通道某設備某標簽之間的對應關系,就可以實現(xiàn)組態(tài)與數(shù)據(jù)接口軟件之間的通訊,以及組態(tài)軟件與 PLC 之間的通訊。
在水閘監(jiān)控系統(tǒng)中,組態(tài)軟件采集到的數(shù)據(jù)有時還需要交給其它應用軟件去處理,比如由 Excel 去處理水位或閘位數(shù)據(jù)。此時通常采用 DDE(動態(tài)數(shù)據(jù)交換)方式來實現(xiàn)這一需求。DDE 是 Windows 平臺上的完整的通信協(xié)議,它使支持動態(tài)數(shù)據(jù)交換的 2 個或多個應用程序彼此交換數(shù)據(jù)。DDE 始終發(fā)生在客戶和服務器應用程序之間。DDE 過程可以比喻為 2 個人的對話,一方向另一方提出問題,然后等待回答。提問的一方稱為“顧客”(Client),回答的一方稱為“服務器”(Server)。1 個應用程序可以同時是“顧客”和“服務器”:當它向其他程序中請求數(shù)據(jù)時,它充當?shù)氖恰邦櫩汀?;若有其他程序需要它提供?shù)據(jù),它又成了“服務器”。
DDE 對話的內(nèi)容通過 3 個標識名:應用程序名(Application)、主題(Topic)、項目(Item)來約定,當需要組態(tài)軟件和 Excel 之間交換數(shù)據(jù)時,組態(tài)軟件的 3 個標識名分別為 View,tagname,自定義變量名,對應 Excel 的 3 個標識名分別為 Excel、表格名和單元名。
水閘監(jiān)控系統(tǒng)中的數(shù)據(jù)采集與傳輸構成系統(tǒng)的重要組成部分,根據(jù)設備選型、總體方案來確定數(shù)據(jù)傳輸方法是水閘自控系統(tǒng)中的問題和難點。利用 PLC 的通信口實現(xiàn)與智能儀表的通信是解決 PLC系列中無現(xiàn)成模塊的常用方法;數(shù)據(jù)接口軟件支持各種設備和不同的通信方式,為組態(tài)軟件與 PLC 通信提供了重要渠道;DDE 方法為不同應用軟件之間的數(shù)據(jù)交換提供了通用平臺。
[1]張保成,楊小兵. 三門峽水電廠壩頂閘門自動控制系統(tǒng)的設計與實現(xiàn)[J]. 水電自動化與大壩監(jiān)測,2008, 32 (6): 73-75.
[2]駱偉明,吳迪,田璨. 青溪水電廠閘門監(jiān)控系統(tǒng)改造[J].水電自動化與大壩監(jiān)測,2008, 32 (3): 77-80.
[3]戴蓉,王高鵬,齊向華. SSI-485 轉(zhuǎn)換器的研究與應用[J].水利水文自動化,2008 (2): 31-33.
[4]金健,劉冬艷,王小鋒,等. 水閘控制系統(tǒng)中 PLC 與不同協(xié)議儀表的通信方法[J]. 河海大學常州分校學報,2006, 20 (1): 39-41.