1 概述 1746-NI16I是美國Allen-Bradley公司出品的基于SLC500系列PLC的模擬量輸入模塊,設(shè)計時可以通過編程靈活設(shè)定該模塊的工作方式、輸入信號類型、數(shù)據(jù)格式、濾波頻率等參數(shù),從而方便地應(yīng)用于各種場合。采用1746-NI16I作為采集模塊組態(tài)的SCADA系統(tǒng)具有擴(kuò)展方便、組態(tài)靈活、穩(wěn)定可靠、便于維護(hù)等特點。 1746-NI16I有兩種工作方式:CLASSl和CLASS3。其中的CLASSl方式是經(jīng)典的使用方式,該方式占用系統(tǒng)資源較少,但使用起來需要較為復(fù)雜的編程;而CLASS3方式則使用方便,編程簡單,但占用系統(tǒng)資源較多。 2 1746-NI16I的軟件資源 在使用1746-NI16I之前必須先了解1746-NI16I的軟件資源,只有在對模塊的每個通道正確配置后,才能使模塊正常工作。 對1746-NI16I編程首先要了解SLC500系列PLC對內(nèi)存變量的管理方式。SLC500系列PLC以文件的方式組織內(nèi)存,即把內(nèi)存劃分為若干個區(qū)域--文件,每個文件分管不同類型的變量,如B文件、N文件、I文件、0文件分別用于管理開關(guān)量數(shù)據(jù)、模擬量數(shù)據(jù)、輸人數(shù)據(jù)、輸出數(shù)據(jù)等等。 1746-NI16I的CLASS3方式和CLASSl方式地址映射如表1所列。其中,O:e.i表示輸出文件中e號槽位的第i號字;I:e.i表示輸入文件中e號槽位的第i號字。 可以看出,在CLASSl方式下,系統(tǒng)將采用輸入文件中的8個字的空間來傳輸16個通道的配置字,并采用輸出文件中的8個字來傳輸16個通道的數(shù)據(jù)字及狀態(tài)字;而在CLASS3方式下,每個字都由單獨的空間對應(yīng)。因此,在CLASSl方式下,通常通過配置字的Bit0和Bitl來配置輸入或輸出文件中的8個字。 應(yīng)當(dāng)說明:1746-NI16I中的配置字是通道配置信息存放地址;數(shù)據(jù)字是輸人數(shù)據(jù)存放地址;狀態(tài)字是通道狀態(tài)存放地址。 無論配置字、數(shù)據(jù)字還是狀態(tài)字,它們都由16位二進(jìn)制數(shù)構(gòu)成。 2.1通道配置字 配置字中的每一位都具有其特定的意義,通過這些配置宇可以對通道的不同參數(shù)進(jìn)行配置。這些位的定義如下: Bit0、Bitl:分別為CLASSl方式下的數(shù)據(jù)/狀態(tài)和讀/寫設(shè)置。Bit0和Bitl只能在CLASSl方式中使用,而在CLASS3方式中設(shè)置這兩位將出現(xiàn)錯誤(狀態(tài)字的Bitl5、Bitl4、Bitl3被置0)。因為在CLASS3方式中,要用32個字的空間來傳輸各個通道的數(shù)據(jù)字和狀態(tài)字,而在CLASSl方式中只有8個字,因此用戶可通過設(shè)置BitO和Bitl來選擇這8個字的功能。具體選擇方式如表2所列。 Bit2:CLASSl握手信號,在CLASSl方式中,該模塊提供了握手信號來簡化模塊的配置。這種握手的方法是設(shè)置模塊16個通道的最快途徑。在配置模塊的各個通道時,Bit2必須被置1。配置完畢后,狀態(tài)字的Bit6必須被置1,以表示配置完畢。把配置字 的Bit2清零即可使?fàn)顟B(tài)字的Bit6復(fù)位。握手信號的詳細(xì)使用方法將在后面的程序中給出具體的說明。在CLASS3方式中,并不需要這種握手協(xié)議,因為所有配置字和狀態(tài)字的信息都可以通過32個字的空間一次傳遞。 Bit3:未使用,但此位必須保持為零,否則在狀態(tài)字中會出現(xiàn)錯誤指示。 Bit4、Bit5:輸人類型選擇位。這兩位的設(shè)置可根據(jù)用戶輸入設(shè)備的類型來選擇,該輸入可以是在某特定范圍內(nèi)的模擬電壓或電流。具體設(shè)置見表3所列。 Bit6、Bit7、Bit8:數(shù)據(jù)格式選擇位。模擬電流或電壓輸入在經(jīng)模塊內(nèi)A/D轉(zhuǎn)換器轉(zhuǎn)換為不同格式的數(shù)字量后,不同格式的數(shù)據(jù)所對應(yīng)的最大最小值不同,因此,用戶可根據(jù)要求選擇。在CLASS3方式中,用戶可自定義4種格式,見表4所列。 Bit9、BitlO、Bitll:校準(zhǔn)模式選擇位。要進(jìn)入校準(zhǔn)模式,必須把Bit9置1。進(jìn)行校準(zhǔn)時,必須先進(jìn)行零校準(zhǔn),再進(jìn)行滿量程校準(zhǔn)。零校準(zhǔn)時需把Bitl0置1,Bitll清0,滿量程校準(zhǔn)時需把Bitll置1,Bitl0清零。把這三位全部清零即可進(jìn)入運行狀態(tài)。 Bitl2、Bitl3、Bitl4:通道濾波頻率選擇位。1746-NI16I提供有8種濾波頻率,每個模塊的16個通道可分為4組(0-3、4-7、8-11、12-15),模塊中的4個A/D轉(zhuǎn)換芯片分別負(fù)責(zé)4組通道的A/D轉(zhuǎn)換。在選擇通道濾波頻率時,只需對4組通道中每組的第一個通道(0、4、8、12)進(jìn)行配置即可,也就是說,每組通道只能使用一個濾波頻率,且只能對每組的第一個通道進(jìn)行配置。濾波頻率的高低決定了降噪特性的好壞。但是太低的濾波頻率在降低噪聲干擾的同時,也提高了模塊的刷新速度。 Bitl5:通道使能選擇位。當(dāng)該位被清零時,通道被禁止,此通道的數(shù)據(jù)字和狀態(tài)字也同時被清零,直至通道使能位被置1,且通道狀態(tài)字的Bitl5、Bit 14、Bit 13都為1時,通道才能繼續(xù)工作。具體的位操作組合見表5所列。 2.2通道狀態(tài)字 通道狀態(tài)字中的每一位都可以被用來判斷通道的狀態(tài)。表6是CLASS3方式狀態(tài)字各個位的功能。 CLASSl方式與CLASS3方式狀態(tài)字的區(qū)別在于:CLASSl方式的狀態(tài)字中Bit6為握手信號。Bit6為0表示模塊準(zhǔn)備就緒,可以向其寫入配置字;Bit6為1表示配置結(jié)束,可以進(jìn)入采集工作狀態(tài)。 3 在SCADA系統(tǒng)中的應(yīng)用及編程 在油田注水自動化系統(tǒng)中,往往需對系統(tǒng)各處的壓力、流量、溫度、濁度等工程量進(jìn)行實時監(jiān)控,而現(xiàn)場儀表輸出一般都為4-20mA輸出,因此可采用1746-NI16I來采集信號和進(jìn)行A/D轉(zhuǎn)換,并采用帶DH+接口的SLC5/04作為主CPU來與DH+網(wǎng)絡(luò)中的其它PLC以及上位監(jiān)控計算機(jī)組成SCADA系統(tǒng)。其系統(tǒng)框圖如圖1所示。 本系統(tǒng)須采集148路信號,其中模擬電流信號占132路,因此需要9塊1746-NI16I模塊,若用CLASS3方式,輸出及輸入文件需包含32X9=288個字,而SLC500系列PLC的輸入輸出文件的最大長度為256字,因此在CLASS3方式下最多只能使用8塊1746-NI16I模塊,故本系統(tǒng)只能使用CLASSl方式。 在程序運行后,首先需對9塊1746-NI16I進(jìn)行配置,配置完畢,才能進(jìn)入采集狀態(tài)。限于篇幅,本文只給出一個通道的配置程序,見圖2所示。 從圖2所示的配置程序看出,配置的開始與完成是由配置字的Bit2和狀態(tài)字的Bit6通過握手協(xié)議來實現(xiàn)的。每個模塊的每個通道需單獨配置。程序上電時,配置字的Bit2和狀態(tài)字的Bit6都為零,狀態(tài)字的Bit6為零表示模塊已準(zhǔn)備好,可以接收配置字,并可向配置字單元寫入配置字,此時需把配置字的Bit2置1,表示開始配置。當(dāng)配置完畢后,模塊會把狀態(tài)字的Bit6置1,表示配置完成。此時可把狀態(tài)字保存,以備后用。 CLASS3的配置和采集程序相對比較簡單,它只需向?qū)?yīng)的單元寫入配置字即可,在此不再贅述。詳細(xì)資料可參考有關(guān)文獻(xiàn)。 4 結(jié)論 在油田注水自動化項目中,基于1746-NI16I的SCADA系統(tǒng)已投入運行半年,實際運行證明:該系統(tǒng)穩(wěn)定可靠,運行良好,提高了油田注水的自動化程度,減輕了工人負(fù)擔(dān),同時也增加了數(shù)據(jù)的準(zhǔn)確性和可靠性。 |