鑒于LonWorks網(wǎng)絡(luò)技術(shù)的先進(jìn)性及入門技術(shù)的高門檻,海思的客戶經(jīng)常咨詢LonWorks監(jiān)控系統(tǒng)建設(shè)中的組態(tài)軟件應(yīng)用開發(fā)事宜。本文提供一些此方面的相關(guān)知識,供大家參考。
1、組態(tài)控制軟件概念
在建設(shè)計(jì)算機(jī)監(jiān)控系統(tǒng)時通常需要用到組態(tài)軟件,亦即組態(tài)控制軟件。組態(tài)控制軟件是一種可實(shí)現(xiàn)各種控制功能的、具有配置性質(zhì)的軟件程序。通過組態(tài)就可以建立并實(shí)現(xiàn)預(yù)定的控制方案,使用戶在不需要編代碼程序的情況生成適合自己需求的應(yīng)用系統(tǒng)。
下面介紹一種基于LonWorks網(wǎng)絡(luò)控制來實(shí)現(xiàn)對組態(tài)軟件的開發(fā)方法。
2、LonWorks智能節(jié)點(diǎn)
LON網(wǎng)絡(luò)上的每個智能設(shè)備稱為LonWorks節(jié)點(diǎn),它包括一片神經(jīng)元(Neuron)芯片、收發(fā)器、傳感器和控制設(shè)備和電源。Neuron芯片是節(jié)點(diǎn)的核心部分,內(nèi)部固化了一套完整的LonTalk通信協(xié)議,確保了節(jié)點(diǎn)間使用可靠的通訊標(biāo)準(zhǔn)進(jìn)行互操作。因?yàn)镹euron芯片可以直接與它所監(jiān)視的傳感器和控制設(shè)備相連,所以一個Neuron芯片可以傳輸傳感器或控制設(shè)備的狀態(tài)、執(zhí)行控制算法,并與其它Neuron芯片進(jìn)行數(shù)據(jù)交換等。使用Neuron芯片,開發(fā)人員可以集中精力設(shè)計(jì)并開發(fā)出更好的應(yīng)用對象而無需耗費(fèi)太多的時間去設(shè)計(jì)通訊協(xié)議、通訊的軟件和硬件,這樣減少了開發(fā)的工作量,節(jié)省了大量的開發(fā)時間。
LonWorks節(jié)點(diǎn)編程采用的是Neuron C 語言,程序要經(jīng)過編譯和燒錄后才能載入節(jié)點(diǎn)中運(yùn)行,也有一些節(jié)點(diǎn)經(jīng)過編譯可以直接下載到節(jié)點(diǎn)運(yùn)行。在此我們把組態(tài)的思想引入組態(tài)控制軟件中,為控制網(wǎng)絡(luò)預(yù)先提供豐富的控制功能模塊,通過改變網(wǎng)絡(luò)節(jié)點(diǎn)之間的邏輯關(guān)系來達(dá)到改變網(wǎng)絡(luò)控制功能的目的。
3、組態(tài)控制的優(yōu)點(diǎn)
(1)用戶只要根據(jù)實(shí)際需要進(jìn)行適合自己的組態(tài)配置,不需要用Neuron C語言編程。
(2)方便用戶實(shí)現(xiàn)各種控制功能。
(3)LonWorks拓?fù)浣Y(jié)構(gòu)靈活,組網(wǎng)方便,神經(jīng)元芯片自帶通信協(xié)議。
4、LonWorks系統(tǒng)組態(tài)控制
有的組態(tài)軟件將控制功能模塊稱為“軟PLC或Soft PLC”,也有的稱“軟邏輯”。組態(tài)控制軟件編程工具采用圖形化編程語言,只需用鼠標(biāo)點(diǎn)擊、拖動就可以建立一個可重復(fù)使用的控制方案。一個應(yīng)用程序中可以有很多控制模塊。開發(fā)人員利用Neuron C 語言編制通用控制程序。通用控制程序由許多基本功能模塊組成,各個模塊可以實(shí)現(xiàn)不同的控制功能?;竟δ苣K有若干個輸入和輸出,每個輸入和輸出管腳都有唯一的名稱,不同種類的功能塊其每個管腳的意義、取值范圍也不相同。
控制模塊基本功能塊包括:數(shù)學(xué)運(yùn)算模塊(實(shí)現(xiàn)數(shù)的加、減、乘、除、乘方、開方等基本運(yùn)算);邏輯運(yùn)算模塊(實(shí)現(xiàn)邏輯的與、或、非、延時、選擇開關(guān)等功能);變量模塊(提供運(yùn)算的操作數(shù)并存放最終的運(yùn)算結(jié)果)以及常用的控制算法模塊(例如PID控制等)。
組態(tài)控制軟件存盤時自動對程序進(jìn)行編譯、檢查語法錯誤,同時生成一定格式的消息包,準(zhǔn)備傳遞給Neuron芯片。這些特定格式的數(shù)據(jù)包有:控制模塊綜合描述(例如所含的控制模塊總個數(shù),參數(shù)總個數(shù),中間變量總個數(shù)等),各模塊的描述(例如該模塊的模塊數(shù),參數(shù)個數(shù),中間變量等),各模塊的參數(shù)表,各模塊代碼表,各模塊的中間變量存放順序表等。
組態(tài)Neuron節(jié)點(diǎn)通過顯式消息與PC機(jī)進(jìn)行通訊,接收模塊消息包。該節(jié)點(diǎn)中存有與基本功能模塊相應(yīng)的執(zhí)行模塊代碼,將數(shù)學(xué)模塊、邏輯模塊、變量模塊和控制算法模塊等分別寫成單獨(dú)的函數(shù),可按照組態(tài)軟件生成的消息包被調(diào)用,并可將執(zhí)行結(jié)果傳送給PC機(jī)或其它 Neuron節(jié)點(diǎn)。假如組態(tài)中某個功能塊的參數(shù)發(fā)生了改變,則重新編譯程序并將最新生成的模塊消息包發(fā)給 Neuron芯片,使之總是執(zhí)行最新的功能塊,實(shí)現(xiàn)組態(tài)的在線編譯與控制。組態(tài)Neuron節(jié)點(diǎn)在接收消息時,根據(jù)消息標(biāo)簽將消息數(shù)據(jù)賦給該節(jié)點(diǎn)定義的不同的數(shù)據(jù)結(jié)構(gòu)。只有當(dāng)組態(tài)軟件生成的所有相關(guān)消息被收到后,功能塊才可以執(zhí)行。
LonWorks節(jié)點(diǎn)之間通過網(wǎng)絡(luò)變量進(jìn)行通訊。在組態(tài) LonWorks節(jié)點(diǎn)中,預(yù)定義一定數(shù)量的網(wǎng)絡(luò)變量,既有輸入類型,也有輸出類型。其總個數(shù)不超過Neuron C 語言中允許定義的網(wǎng)絡(luò)變量的總個數(shù)。
5、LonWorks網(wǎng)絡(luò)變量
LonWorks技術(shù)中,網(wǎng)絡(luò)變量(Network Variables)的使用極大的簡化了開發(fā)和安裝分散系統(tǒng)的處理過程,各節(jié)點(diǎn)可以獨(dú)自定義,然后簡單地連接在一起或斷開某幾個連接,以構(gòu)成新的LonWorks應(yīng)用,大大增加了系統(tǒng)的靈活性,開放性。網(wǎng)絡(luò)變量通過給節(jié)點(diǎn)相互之間明確的網(wǎng)絡(luò)接口而極大地提高了節(jié)點(diǎn)產(chǎn)品的互操作性?;ゲ僮餍詭淼煤锰幨牵汗?jié)點(diǎn)能很方便地安裝到不同類型的網(wǎng)絡(luò)中,并保持節(jié)點(diǎn)應(yīng)用的網(wǎng)絡(luò)配置獨(dú)立性。節(jié)點(diǎn)可以安裝到網(wǎng)絡(luò)中并且只要網(wǎng)絡(luò)變量數(shù)據(jù)類型匹配,就可以邏輯建立地與網(wǎng)絡(luò)上的其它節(jié)點(diǎn)的連接。
一個網(wǎng)絡(luò)變量NV是節(jié)點(diǎn)的一個對象,它可以定義為輸入網(wǎng)絡(luò)變量或輸出網(wǎng)絡(luò)變量。當(dāng)一個網(wǎng)絡(luò)變量在一個節(jié)點(diǎn)的應(yīng)用程序中被賦值后,LonTalk協(xié)議將修改了的輸出網(wǎng)絡(luò)變量新值構(gòu)成隱式消息,透明的傳送到可與之共享數(shù)據(jù)的其它節(jié)點(diǎn)或PC機(jī)。這里的網(wǎng)絡(luò)變量其實(shí)為隱式消息。
由于每個網(wǎng)絡(luò)變量的數(shù)據(jù)長度一經(jīng)確定就不能改變,且最多只有31B,所以限制了它的使用范圍。為此,可考慮同時使用了Neuron C 提供的顯示消息這一數(shù)據(jù)類型。顯式消息的長度是可變的,且最長可以是228B。顯式消息必須使用一個預(yù)定的對象來構(gòu)造,然后使用顯式函數(shù)以及預(yù)定事件來處理這些顯式消息。用預(yù)定事件msg_arrives來接收消息。
(本文僅供學(xué)習(xí)參考,不代表本網(wǎng)站贊同其觀點(diǎn)及方法)
海思支持WEB功能的LonWorks智能網(wǎng)絡(luò)服務(wù)器