張永根
(南京市輪渡公司,江蘇南京 210011)
可編程邏輯控制器簡(jiǎn)稱PLC,以其運(yùn)行可靠、集成度高、可擴(kuò)展性強(qiáng)在工業(yè)控制中得到廣泛的應(yīng)用,而且各個(gè)PLC生產(chǎn)廠家提供了多種通訊模塊,如工業(yè)以太網(wǎng)Ethernet模塊、點(diǎn)到點(diǎn)串行通訊模塊等。因此可以利用 PLC的通訊模塊讀取柴油機(jī)數(shù)據(jù)存儲(chǔ)區(qū)的數(shù)據(jù),然后通過(guò) PLC中的現(xiàn)場(chǎng)總線模塊連延伸報(bào)警模塊能將實(shí)時(shí)的報(bào)警信息傳遞到船員房接到監(jiān)控系統(tǒng)中達(dá)到完美的結(jié)合[1]。
LabVIEW(Laboratory Virtual Instrument EngineeringWorkbench)是美國(guó)國(guó)家儀器公司(National Instruments)推出的一種基于圖形語(yǔ)言(G語(yǔ)言)的開(kāi)發(fā)環(huán)境,編程非常方便,人機(jī)交互界面直觀友好,用戶可以創(chuàng)建獨(dú)立的可執(zhí)行文件,能夠脫離開(kāi)發(fā)環(huán)境而單獨(dú)運(yùn)行,是目前最流行的虛擬儀器編程平臺(tái),廣泛應(yīng)用于測(cè)試測(cè)量、過(guò)程控制、實(shí)驗(yàn)室研究與自動(dòng)化等方面。將LabVIEW與PLC結(jié)合起來(lái)應(yīng)用于工程實(shí)踐,不僅可以大大降低成本、縮短開(kāi)發(fā)周期,而且可以使得控制操作方便、界面美觀[3]。
在設(shè)計(jì)中,需要將柴油機(jī)及其他設(shè)備的各參數(shù)讀取到Siemens公司的S7-300 PLC中,參與實(shí)際的監(jiān)測(cè)控制。為了能夠?qū)x表的參數(shù)讀入到Siemens PLC中,采用了Siemens公司的點(diǎn)到點(diǎn)通訊模塊CP340,利用集成在CP340通訊模塊中ASCII碼通訊協(xié)議,通過(guò) RS2422網(wǎng)絡(luò)讀取數(shù)據(jù),并將LabVIEW與PLC結(jié)合起來(lái),在上位機(jī)進(jìn)行實(shí)時(shí)顯示、報(bào)警、控制、記錄。
與傳統(tǒng)的柴油機(jī)數(shù)據(jù)采集方式相比,該種MAN B&W柴油機(jī)將所有重要參數(shù)都存放于 4個(gè)數(shù)據(jù)存儲(chǔ)區(qū)中,通過(guò)通訊接口,外圍設(shè)備(如PLC,PC機(jī)等)可以從中實(shí)時(shí)的讀取設(shè)備運(yùn)行參數(shù),了解設(shè)備的運(yùn)行情況。鑒于LabVIEW軟件可方便實(shí)現(xiàn)數(shù)據(jù)采集和信號(hào)處理,具有強(qiáng)大的外部接口能力,而且采用LabVIEW編寫控制程序主界面,既簡(jiǎn)單美觀,又能節(jié)約開(kāi)發(fā)時(shí)間,大大提高了程序設(shè)計(jì)效率等優(yōu)點(diǎn),上位機(jī)的控制程序采用LabVIEW編寫。將西門子S7-300作為終端,CP340作為通訊模塊,并采用LabVIEW作為上位機(jī)軟件是本系統(tǒng)的一大特點(diǎn)。
在以上軟硬件條件下,要在LabVIEW中實(shí)現(xiàn)PC與PLC的實(shí)時(shí)通信,關(guān)鍵在于如何在LabVIEW編程環(huán)境中驅(qū)動(dòng)SIEMENSCP5611通訊卡。CP5611被驅(qū)動(dòng)后PC機(jī)即可通過(guò)CP5611與Profibus總線連接,從 S7-300地址塊中讀出數(shù)據(jù)或往地址塊中寫入數(shù)據(jù)。SIEMENS CP5611目前沒(méi)有LabVIEW的驅(qū)動(dòng)程序,如果要在LabVIEW環(huán)境中開(kāi)發(fā)SIEMENSPLC的上位機(jī)控制系統(tǒng),可以采取兩種方案:
(1)開(kāi)發(fā)者自己開(kāi)發(fā) CP5611的驅(qū)動(dòng)程序,從底層的動(dòng)態(tài)鏈接庫(kù)編起;
(2)找到并安裝SIEMENS的OPC Server應(yīng)用程序,利用NI的OPC Client與之進(jìn)行數(shù)據(jù)交互。
顯然,第二種方案對(duì)開(kāi)發(fā)者更方便、快捷,因而本文選用第二種方案。OPCOLE for Process Control是基于Windows NT技術(shù)的OLE,COM/DCOM接口的擴(kuò)展,其本質(zhì)是OPC Client用一種開(kāi)放的、標(biāo)準(zhǔn)化的通訊方式與OPC Server進(jìn)行通訊。OPC規(guī)范定義的標(biāo)準(zhǔn)接口,使得不同廠家之間軟硬件的集成易于實(shí)現(xiàn)。使用第三方硬件時(shí),只要硬件開(kāi)發(fā)商提供OPC Server,軟件開(kāi)發(fā)人員無(wú)需編寫低層的驅(qū)動(dòng)程序,通過(guò)用戶軟件的OPC Client即可與之進(jìn)行數(shù)據(jù)交互[2]。
整個(gè)監(jiān)控系統(tǒng)共有79個(gè)工況參數(shù),其中開(kāi)關(guān)量共 66個(gè),模擬量共 13個(gè)。廢氣鍋爐綜合故障、應(yīng)急配電板 DC24V失電、1號(hào)左燃油艙高位等 35個(gè)開(kāi)關(guān)量均直接接入PLC的輸入輸出模塊,通過(guò)傳感器將信號(hào)實(shí)時(shí)的讀入 PLC的輸入映像區(qū)。進(jìn)渦輪增壓器前排氣溫度高,主機(jī)應(yīng)急控制電源故障等 31個(gè)開(kāi)關(guān)量通過(guò)通訊模塊采集數(shù)據(jù)。所有模擬量如燃油進(jìn)機(jī)壓力表、滑油進(jìn)主軸承壓力表、汽缸冷卻高溫淡水出口溫度表等也由CP340通訊模塊完成數(shù)據(jù)采集。所有通過(guò) CP340讀取的源數(shù)據(jù)均從柴油機(jī)數(shù)據(jù)存儲(chǔ)區(qū)中取得。系統(tǒng)硬件結(jié)構(gòu)、軟件設(shè)計(jì)流程如圖1、2所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
圖2 軟件設(shè)計(jì)流程圖
S7-300與柴油機(jī)通訊,可以對(duì) CP340設(shè)置接收幀結(jié)束方式;通訊方式:9 600,8,n,1;接口方式: RS2422,其余的設(shè)置為默認(rèn)方式。丹麥 MAN B&W公司的柴油機(jī)采用的是MODBUSASCII協(xié)議,電路接口標(biāo)準(zhǔn)為 RS2422。讀取命令的數(shù)據(jù)格式包括開(kāi)始位、功能碼、數(shù)據(jù)起始地址、數(shù)據(jù)量、LRC校驗(yàn)碼、停止位以及結(jié)束符。接收命令的數(shù)據(jù)格式與其基本相同,只是包含了數(shù)據(jù)量。當(dāng)柴油機(jī)接收到來(lái)自PLC的發(fā)送請(qǐng)求命令時(shí),先根據(jù)數(shù)據(jù)的起始地址計(jì)算出LRC校驗(yàn)碼,然后再與接收到的LRC校驗(yàn)碼相比較,如果一致,則向PLC發(fā)送數(shù)據(jù),否則,不做出響應(yīng)。
PLC讀取數(shù)據(jù)命令實(shí)際上就是將不同的地址和校驗(yàn)碼填入預(yù)先定義好的 DB塊中,然后按照上述的通訊格式,調(diào)用 CP340功能模塊將請(qǐng)求發(fā)送出去。因此,只需要一個(gè)發(fā)送數(shù)據(jù) DB塊。而接收數(shù)據(jù)的DB塊,只需要定義成BYTE類型的數(shù)組,并且長(zhǎng)度不小于 39字節(jié),對(duì)于不同的監(jiān)測(cè)量,每次從柴油機(jī)中讀取的數(shù)據(jù)則放入到不同的DB塊中。對(duì)于不同的參數(shù),只需要變換相應(yīng)的起始地址和LRC校驗(yàn)碼即可。
CP340有4個(gè)專用功能塊:發(fā)送功能塊FB3,接收功能塊FB2,讀RS2232C接口信號(hào)狀態(tài)功能塊FC5和接口信號(hào)狀態(tài)設(shè)置功能塊FC6。系統(tǒng)中采用FB2和FB3功能塊。
首先要對(duì)FB2與FB3的屬性進(jìn)行設(shè)置:FB3發(fā)送功能塊需要設(shè)置的屬性包括上升沿觸發(fā)(REQ), CP340起始地址(LADDR),發(fā)送數(shù)據(jù)塊號(hào)(DBNO),開(kāi)始字節(jié)號(hào)(DBB-NO),字節(jié)長(zhǎng)度(LEN);FB2接收功能塊需設(shè)置的屬性包括接收使能(ENR), CP340起始地址(LADDR),數(shù)據(jù)放置塊號(hào)(DBNO),開(kāi)始字節(jié)號(hào)(DBB-NO)。
2.2.1 OPC Server的配置
SIEMENS公司為S7-300/S7-400提供的OPServer接口集成在SIMATIC NET軟件包內(nèi),在本系統(tǒng)中西門子S7系統(tǒng)提供OPC Server,LabVIEW作為OPC Client進(jìn)行數(shù)據(jù)通信。
(1)首先要進(jìn)行OPC配置,在成功安裝 SIMATINET和CP5611的驅(qū)動(dòng)程序后,重新啟動(dòng)計(jì)算機(jī),開(kāi)始使用SIMATIC NET軟件組態(tài)PC Station。
(2)組態(tài)好后在Step7v513軟件中OPC Server模板與CPU315-2DP進(jìn)行連接。
(3)連接好之后要下載,特別注意訪問(wèn)點(diǎn)的 Access points的設(shè)置,Options-PG/PCINTERFACE,下載到本地服務(wù)器要選本地訪問(wèn)點(diǎn)PC internal local;下載到CPU315-2DP,訪問(wèn)點(diǎn)要改成CP5611。
(4)屬性中設(shè)定local本地IP地址,比如192. 168.0.8,partner是CP5611,它的IP地址也要設(shè)定好,比如 192.168.0.132。這樣,配置完成后,如果PC station中小圖標(biāo)變?yōu)椴噬?表示OPCServer配置成功。
2.2.2 DataSocket與OPC的通信
由于LabVIEW軟件平臺(tái)支持DataSocket技術(shù),本文采用DataSocket技術(shù)實(shí)現(xiàn)對(duì)OPC服務(wù)器的訪問(wèn)。
DataSocket技術(shù)是基于Microsoft COM和ActiveX,源于TCP/IP協(xié)議并對(duì)其進(jìn)行高度封裝,面向測(cè)量和自動(dòng)化應(yīng)用,用于共享和發(fā)布實(shí)時(shí)數(shù)據(jù),是一種易用的高性能數(shù)據(jù)交換編程接口。但它不必像TCP/IP編程那樣把數(shù)據(jù)轉(zhuǎn)換為非結(jié)構(gòu)化的字節(jié)流,而是以自己特有的編碼格式傳輸各種類型的數(shù)據(jù),包括字符串、數(shù)字、布爾量以及波形等,還可以在現(xiàn)場(chǎng)數(shù)據(jù)和用戶自定義屬性之間建立聯(lián)系,一起傳送。盡管DataSocket與OPC的實(shí)現(xiàn)原理有所不同,但DataSocket與OPC在體系上比較相似,二者結(jié)構(gòu)上都是客戶機(jī)/服務(wù)器模式,都為跨網(wǎng)絡(luò)傳輸數(shù)據(jù)定義了各自的傳輸協(xié)議,并以 URL的方式訪問(wèn)服務(wù)器數(shù)據(jù)項(xiàng)目。LabVIEW中可通過(guò)DataSocket VI功能子模板上DataSocket VI支持OPC應(yīng)用。在Lab-VIEW中與一個(gè)OPC Sever通過(guò)調(diào)用DataSocket Open Connection.vi圖標(biāo)實(shí)現(xiàn),并將對(duì)應(yīng)于OPC sever URL傳給該Vi。OPC URL的基本結(jié)構(gòu)為:OPC: //主機(jī)名//OPC服務(wù)器名/數(shù)據(jù)項(xiàng)目/刷新率。
2.3.1 越限或故障報(bào)警處理
每一個(gè)監(jiān)測(cè)點(diǎn)都已設(shè)置閾值上限、下限或兩者都有,凡監(jiān)測(cè)到的參數(shù)超過(guò)閾值時(shí),都檢測(cè)其報(bào)警條件是否滿足,若滿足則應(yīng)立即發(fā)出聲光報(bào)警。報(bào)警界面如圖 3所示。
圖3 報(bào)警界面
2.3.2 報(bào)警顯示和消聲消閃功能
當(dāng)出現(xiàn)報(bào)警時(shí),控制面板上的一個(gè)指示燈不停的閃爍、蜂鳴器發(fā)出聲響;當(dāng)按下消聲按鈕后,報(bào)警聲響停止,報(bào)警燈光信號(hào)由閃爍變?yōu)槌A?只有在故障排除并恢復(fù)正常狀態(tài)后,報(bào)警指示燈才熄滅。
2.3.3 實(shí)時(shí)數(shù)據(jù)顯示
能在控制面板顯示所有監(jiān)測(cè)點(diǎn)參數(shù),并可將實(shí)時(shí)數(shù)據(jù)、歷史數(shù)據(jù)以模擬表、棒型圖和變化曲線等形式在工控機(jī)界面顯示,直觀地反映這些參數(shù)的變化狀態(tài)。柴油機(jī)監(jiān)控界面如圖4所示,歷史數(shù)據(jù)查詢?nèi)鐖D5所示。
圖4 柴油機(jī)監(jiān)測(cè)界面
圖5 歷史數(shù)據(jù)查詢
經(jīng)實(shí)際運(yùn)行,系統(tǒng)完全滿足船舶航行的要求。該系統(tǒng)具有實(shí)時(shí)性高、操作方便、運(yùn)行穩(wěn)定等特點(diǎn)。運(yùn)用LabVIEW自帶的DataSocket與OPC通信實(shí)時(shí)可靠,適用于SIEMENS幾乎所有的通訊總線和通訊卡,具有很強(qiáng)的靈活性??傊?該方案大大提高了機(jī)艙自動(dòng)化監(jiān)控水平,具有顯著的經(jīng)濟(jì)效益。
[1] 李垣江,等.基于總線控制的船舶柴油機(jī)監(jiān)控系統(tǒng)[J].船海工程,2005,(6):47-49.
[2] 朱青,等.基于LabV IEW與OPC的船舶機(jī)艙報(bào)警系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009,(1):129-131.
[3] 陳錫輝,張銀鴻.LabVIEW 8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.