彭 蕓,謝穎奎
(1.上海應(yīng)用技術(shù)大學(xué),上海 200231;2.上??堤┧够瘜W(xué)工程有限公司,上海 201203)
過程控制的項目中,經(jīng)常會遇到DCS和下位機PLC或現(xiàn)場儀表的通訊問題?,F(xiàn)在很多的化工廠建設(shè)時采用總包加分包的模式,供應(yīng)商各自提供自己的控制系統(tǒng)(通常大部分是PLC),但在工廠的中控室里,操作人員又希望能監(jiān)控到這些控制系統(tǒng)的運行參數(shù)。因此,這些PLC的運行數(shù)據(jù)就需要通過通訊傳送到DCS來。另外一些大的儀表,提供的數(shù)據(jù)比較多,通常也采用通訊的方式。Modbus推出的時間比較早,也較成熟,現(xiàn)在絕大多數(shù)的PLC廠家和大的儀器儀表廠家都支持Modbus協(xié)議,因此從一開始工程設(shè)計時就約定使用Modbus的話就會做到方便統(tǒng)一、省時省力。
DCS系統(tǒng)和下位機的通訊從硬件上主要還是以串口的方式進(jìn)到DCS系統(tǒng),這是因為一方面DCS的內(nèi)部以太網(wǎng)一般不會直接開放給下位機,另一方面下位機與DCS直接經(jīng)過以太網(wǎng)進(jìn)行數(shù)據(jù)交換也比較困難,因而必須要有一個串口服務(wù)器或串口通訊卡件來實現(xiàn)數(shù)據(jù)交換。有的DCS廠家,如橫河、愛默生等,采用自己的串口通訊卡件,而霍尼韋爾等一些廠家,是采用串口服務(wù)器,用SCADA的組態(tài)方法來實現(xiàn)。串口服務(wù)器以MOXA公司的經(jīng)過認(rèn)證的Nport 5630為例,一般有8口和16口。
MOXA NPort 5630-8提供簡單方便的聯(lián)網(wǎng)方式,不但可以保證現(xiàn)有的硬件資源,更確保未來網(wǎng)絡(luò)的擴充可能性。通過簡單的設(shè)置,就可以將現(xiàn)有的串口設(shè)備立即聯(lián)網(wǎng)。再者M(jìn)OXA NPort 5630-8可以在串口和以太網(wǎng)絡(luò)界面之間輕易的執(zhí)行雙向數(shù)據(jù)傳輸。使用MOXA NPort 5630-8,可以達(dá)到同時集中管理串口設(shè)備和于網(wǎng)絡(luò)中分散管理主機的目的。如圖1所示為采用Nport 5630的系統(tǒng)配置圖[1]。
圖1 系統(tǒng)配置Fig.1 System configuration
在安裝完隨機所帶的MOXA NPort 5630-8的Real COM/tty驅(qū)動程序后,MOXA NPort 5630-8上的串口會被Windows操作系統(tǒng)視為Real COM端口,或被Linux操作系統(tǒng)視為tty端口。NPort提供基本的傳輸/接收數(shù)據(jù)功能,以及 RTS、CTS、DTR、DSR、DSD等控制信號功能。其串口可以接RS232、RS422、4線制 RS485、2線制 RS485等接口形式,其具體引腳如圖2所示[1]。
圖2 串口引腳Fig.2 COM pins
在MOXA的設(shè)置頁面里主要包括網(wǎng)絡(luò)設(shè)置、串口設(shè)置、操作設(shè)置等。在網(wǎng)絡(luò)設(shè)置里主要設(shè)置網(wǎng)絡(luò)的IP地址、UDP通道的地址,一般都設(shè)置成靜態(tài)地址,IP地址和DCS控制器要在一個網(wǎng)段內(nèi)。服務(wù)器的串口設(shè)置主要是串口通訊參數(shù)的設(shè)置,包括波特率、數(shù)據(jù)位、停止位、奇偶校驗等。這個要和下位機的通訊參數(shù)匹配起來,不同的下位機串口參數(shù)是不一樣的,所以串口參數(shù)也要隨之改動。操作設(shè)置主要包括模式,基本設(shè)成TCP SERVER模式,TCP在線檢查時間(0~99 min),最大連接數(shù)量(1~4),本地TCP 端口(如 4001~4008)等。
Modbus的Slave端是根據(jù)Master端發(fā)送過來的功能碼進(jìn)行相應(yīng)的動作的。表1所示為Modbus協(xié)議常用的功能碼,使用它們即可對Slave端的數(shù)字量和模擬量進(jìn)行讀寫操作[2]。
表1 Modbus協(xié)議常用功能碼Tab.1 Modbus ordinary function code
Modbus協(xié)議可使用ASCII和RTU 2種模式進(jìn)行通訊,這2種模式在報文結(jié)構(gòu)、功能命令上是相同的,僅幀信息的表示方法不同而已。它們的區(qū)別為采用RTU模式通訊時,信息是以8位二進(jìn)制方式傳輸?shù)?,而采用ASCII時,信息是以字符為基本單位傳輸?shù)?,每個字符都用ASCII碼表示。ASCII的優(yōu)點是通用性好、讀取容易,但在相同傳輸速率下,RTU模式比ASCII模式傳輸效率提高一倍,適合在工業(yè)網(wǎng)絡(luò)中應(yīng)用,大多數(shù)的PLC及大型智能儀表都支持Modbus RTU。
表2 Modbus協(xié)議幀結(jié)構(gòu)Tab.2 Modbus frame structure
表3 主機請求示例Tab.3 Host request example
表4 以協(xié)議從機應(yīng)答讀取整數(shù)數(shù)據(jù)示例Tab.4 Client response example as integer data
利用霍尼韋爾的SCADA軟件進(jìn)行通訊組態(tài),先組通道,然后是控制器,最后再組通訊點,其基本原理就是按照Modbus的定義來做的。工程實際中按部就班,一點一點地做,一般不會有大的問題,也可以把下位機的Modbus地址表用Excel標(biāo)準(zhǔn)格式直接粘貼到通訊點組態(tài)里。但有一點,讀模擬量的時候會需要一個解碼符,對于不同的數(shù)據(jù)類型需要帶不同的解碼符,如16位有符號數(shù)的解碼符是C16,浮點數(shù)的是FLOAT等。因為下位機廠家五花八門,再加上每個編程人員的編程習(xí)慣也不一樣,因此下位機傳上來的數(shù)據(jù)格式也是多種多樣,所以有時在現(xiàn)場要多試幾次。做開關(guān)量的時候,有的是把開關(guān)量打包到一個整形數(shù)據(jù)里,有的是直接開關(guān)量。因此,和下位機的編程人員的溝通是很重要的。如果萬一碰到溝通不暢,或者下位機編程者本身就糊涂,那即使能讀到數(shù)據(jù),也是霧里看花,很難還原數(shù)據(jù)本來面目了,而在工程實際中又時常碰到這種窘?jīng)r。有時候為了避免猜猜猜,經(jīng)常會用Modscan這樣的調(diào)試小軟件來幫忙,Modscan這個小軟件很小巧,又很實用,它開關(guān)量和模擬量都可以讀??梢园涯M量轉(zhuǎn)成2進(jìn)制、16進(jìn)制、整形、實型、浮點等。而且它讀取的范圍可以很大,最多一次可以掃100個地址。以及可以清楚地看到每個16位數(shù)據(jù)的每個位的變化。因此是調(diào)試和驗證Modbus通訊非常得力的助手。舉個例來說,下位機編程人員給出的16位數(shù)據(jù)定義如下:其第三位代表循環(huán)水泵A運行,我們按照他的定義,用SCADA組態(tài)出來的值和實際運行的值總是對不上,不知道怎么回事,這時就用Modscan軟件來幫忙了。如上例,假設(shè)只有循環(huán)水泵A在運行,那除了第三位,其余的位數(shù)據(jù)都是零,那看到的數(shù)應(yīng)該是0001000000000000,但是我們實際用MODSCAN看到的數(shù)據(jù)是0000000000010000,原來是把數(shù)據(jù)的高8位和低8位交換了。用SCADA組態(tài)的時候,由于它是一個位一個位地讀,視野所限,很難發(fā)現(xiàn)類似的錯誤,用Modscan來讀的話,讀的數(shù)據(jù)比較多,視野比較開闊,所以比較容易發(fā)現(xiàn)類似的問題[3]。
在實際工程中我們還經(jīng)常遇到接地問題。按理來說,下位機和DCS控制電源都應(yīng)該由中控室UPS供電,這樣它們之間的信號電平才能匹配。但實際現(xiàn)場下位機PLC電源供電有可能是由現(xiàn)場動力電源供的,因此很有可能它的信號電平和DCS的信號電平不能統(tǒng)一,因此通訊連接不上。解決的辦法一個是現(xiàn)場PLC改由中控室UPS供電,還有一個辦法是把現(xiàn)場PLC電源的接地接到全廠的接地網(wǎng)在現(xiàn)場最近的等電位接線端子上,這樣就可以解決通訊雙方電平不等的問題。另外大多數(shù)的應(yīng)用都是采用RS485兩線制的接法,因此通訊電纜只放兩芯線。在實際應(yīng)用中,接兩根線也足夠了,也不會出什么問題。但如果現(xiàn)場PLC不是由控制室UPS供電,距離又比較遠(yuǎn)的話,只接兩根線就有可能會由于干擾比較大造成通訊的誤碼率比較高,甚至通訊不上。解決的辦法是把通訊電纜的屏蔽線接到RS485的接地端子上,這樣可以很好地解決通訊的干擾問題[4]。
采用MOXA NPort 5630可以較好地,較方便地解決現(xiàn)場串口設(shè)備和以太網(wǎng)絡(luò)界面之間的執(zhí)行雙向數(shù)據(jù)傳輸問題。和其他一些廠家采用串口通訊卡件的方式比較起來,具有價格便宜、靈活方便等特點。但從帶載能力來說,它的帶載能力不如串口通訊卡件。筆者曾經(jīng)做過試驗,按照Modbus通訊協(xié)議的定義,一根通訊總線理論上最多可以掛248個從站通訊設(shè)備,但用NPort5630一個串口同時接幾臺設(shè)備進(jìn)行通訊的話,確實不太容易實現(xiàn)。如果采用其他廠家用的通訊卡件的話,一根通訊總線上掛多臺設(shè)備在實際應(yīng)用中是沒有什么問題的。
[1]MOXA Nport 5630設(shè)備使用說明書[Z].2014.
[2]Modicon Modbus Protocol Reference Guide[Z].1996.
[3]Experion PKS系統(tǒng)組態(tài)實驗手冊[Z].2013.
[4]董明明,孫萬蓉,陳梓馥,等.基于RTU油井遠(yuǎn)程測控系統(tǒng)的數(shù)據(jù)采集與傳輸層軟件設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2012,2(2):35-36.