《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于LonWorks現(xiàn)場總線技術(shù)的組態(tài)控制
基于LonWorks現(xiàn)場總線技術(shù)的組態(tài)控制
摘要: 本文在介紹監(jiān)控組態(tài)軟件和LonWorks網(wǎng)絡(luò)控制技術(shù)的基礎(chǔ)上,提出一種基于LonWorks網(wǎng)絡(luò)技術(shù)的組態(tài)控制方法,給出其設(shè)計思想和實現(xiàn)方法。
Abstract:
Key words :

    1 引言

  1.1 組態(tài)控制軟件

  組態(tài)控制軟件是可實現(xiàn)各種控制功能的具有配置性質(zhì)的程序。通過組態(tài)就可以實現(xiàn)預(yù)定的控制方案。可以使用戶在不需要編代碼程序的情況下,便可生成適合自己需求的應(yīng)用系統(tǒng),這些應(yīng)用系統(tǒng)軟件就是組態(tài)軟件,它由開發(fā)人員完成,本文提出了基于LonWorks網(wǎng)絡(luò)控制來實現(xiàn)對組態(tài)軟件的開發(fā)方法,提出了一種基于LonWorks網(wǎng)絡(luò)技術(shù)的組態(tài)方法,給出其設(shè)計思想和實現(xiàn)方法。

  1.2 LonWorks網(wǎng)絡(luò)控制方法 – 節(jié)點

  LON網(wǎng)上的每個控制節(jié)點稱為LON節(jié)點或LONWORKS 智能設(shè)備,它包括一片Neuron芯片、傳感器和控制設(shè)備、收發(fā)器和電源。

  Neuron芯片是節(jié)點的核心部分,它包括一套完整的通信協(xié)議,即LonTalk協(xié)議,從而確保節(jié)點間使用可靠的通訊標(biāo)準(zhǔn)進(jìn)行互操作。因為Neuron芯片可以直接與它所監(jiān)視的傳感器和控制設(shè)備相連,所以一個Neuron芯片可以傳輸。

  傳感器或控制設(shè)備的狀態(tài)、執(zhí)行控制算法,和其它Neuron芯片進(jìn)行數(shù)據(jù)交換等。使用Neuron芯片,開發(fā)人員可以集中精力設(shè)計并開發(fā)出更好的應(yīng)用對象而無需耗費(fèi)太多的時間去設(shè)計通訊協(xié)議、通訊的軟件和硬件,這樣減少了開發(fā)的工作量,節(jié)省了大量的開發(fā)時間。

  LonWorks節(jié)點編程是用Neuron C 來實現(xiàn)的,程序要經(jīng)過編譯和燒錄后才能載入節(jié)點中運(yùn)行;或者也有一些節(jié)點經(jīng)過編譯可以直接下載到節(jié)點運(yùn)行。在此我們把組態(tài)的思想引入組態(tài)控制軟件中,為控制網(wǎng)絡(luò)預(yù)先提供豐富的控制功能模塊,通過改變網(wǎng)絡(luò)節(jié)點之間的邏輯關(guān)系來達(dá)到改變網(wǎng)絡(luò)控制功能的目的。

  1.3 引入組態(tài)到LonWorks控制網(wǎng)絡(luò)的優(yōu)點、特點

  ● 用戶不需要用Neuron C語言編程,只要根據(jù)實際需要進(jìn)行適合自己的組態(tài)配置。

  ● 實現(xiàn)的功能多,方便用戶實現(xiàn)各種控制功能。

  ● LonWorks本身帶有通訊協(xié)議,組網(wǎng)方便、靈活。

2. 基于LonWorks的組態(tài)控制

  2.1 組態(tài)軟件生成:

  有的組態(tài)軟件將控制功能模塊稱為“軟PLC或Soft PLC”,也有的稱“軟邏輯”。組態(tài)控制軟件編程工具采用圖形化編程語言,只需用鼠標(biāo)“點擊、拖動”就可以建立一個可重復(fù)使用的控制方案,大大減少工程時間和人力。一個應(yīng)用程序中可以有很多控制模塊。開發(fā)人員利用Neuron C 語言編制通用控制程序。通用控制程序由許多基本功能模塊組成,各個模塊可以實現(xiàn)不同的控制功能。基本功能模塊有若干個輸入和輸出,每個輸入和輸出管腳都有唯一的名稱,不同種類的功能塊其每個管腳的意義、取值范圍也不相同。

  控制模塊基本功能塊包括:數(shù)學(xué)運(yùn)算模塊(實現(xiàn)數(shù)的加、減、乘、除、乘方、開方等基本運(yùn)算);邏輯運(yùn)算模塊(實現(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é)點通過顯式消息與PC機(jī)進(jìn)行通訊,接收模塊消息包。該節(jié)點中存有與基本功能模塊相應(yīng)的執(zhí)行模塊代碼,將數(shù)學(xué)模塊、邏輯模塊、變量模塊和控制算法模塊等分別寫成單獨(dú)的函數(shù),可按照組態(tài)軟件生成的消息包被調(diào)用,并可將執(zhí)行結(jié)果傳送給PC機(jī)或其它 Neuron節(jié)點。假如組態(tài)中某個功能塊的參數(shù)發(fā)生了改變,則重新編譯程序并將最新生成的模塊消息包發(fā)給 Neuron芯片,使之總是執(zhí)行最新的功能塊,實現(xiàn)組態(tài)的在線編譯與控制。組態(tài)Neuron節(jié)點在接收消息時,根據(jù)消息標(biāo)簽將消息數(shù)據(jù)賦給該節(jié)點定義的不同的數(shù)據(jù)結(jié)構(gòu)。只有當(dāng)組態(tài)軟件生成的所有相關(guān)消息被收到后,功能塊才可以執(zhí)行。

  Neuron各節(jié)點之間通過網(wǎng)絡(luò)變量進(jìn)行通訊。在組態(tài)Neuron節(jié)點中,預(yù)定義一定數(shù)量的網(wǎng)絡(luò)變量,既有輸入類型,也有輸出類型。其總個數(shù)不超過Neuron C 語言中允許定義的網(wǎng)絡(luò)變量的總個數(shù)。

  網(wǎng)絡(luò)變量的使用極大的簡化了開發(fā)和安裝分散系統(tǒng)的處理過程,各節(jié)點可以獨(dú)自定義,然后簡單地連接在一起或斷開某幾個連接,以構(gòu)成新的LONWORKS應(yīng)用,大大增加了系統(tǒng)的靈活性,開放性。網(wǎng)絡(luò)變量通過給節(jié)點相互之間明確的網(wǎng)絡(luò)接口而極大地提高了節(jié)點產(chǎn)品的互操作性。互操作性帶來得好處是:節(jié)點能很方便地安裝到不同類型的網(wǎng)絡(luò)中,并保持節(jié)點應(yīng)用的網(wǎng)絡(luò)配置獨(dú)立性。節(jié)點可以安裝到網(wǎng)絡(luò)中并且只要網(wǎng)絡(luò)變量數(shù)據(jù)類型匹配,就可以邏輯建立地與網(wǎng)絡(luò)上的其它節(jié)點的連接。

  一個網(wǎng)絡(luò)變量NV(Network Variables)是節(jié)點的一個對象,它可以定義為輸入也可以定義為輸出網(wǎng)絡(luò)變量。當(dāng)一個網(wǎng)絡(luò)變量在一個節(jié)點的應(yīng)用程序中被賦值后,LonTalk協(xié)議將修改了的輸出網(wǎng)絡(luò)變量新值構(gòu)成隱式消息,透明的傳送到可與之共享數(shù)據(jù)的其它節(jié)點或PC機(jī)。這里的網(wǎng)絡(luò)變量其實為隱式消息。

  由于每個網(wǎng)絡(luò)變量的數(shù)據(jù)長度一經(jīng)確定就不能改變,且最多只有31B,所以限制了它的使用范圍。為此,可考慮同時使用了Neuron C 提供的顯示消息這一數(shù)據(jù)類型。

  顯式消息的長度是可變的,且最長可以是228B。顯式消息必須使用一個預(yù)定的對象來構(gòu)造,然后使用顯式函數(shù)以及預(yù)定事件來處理這些顯式消息。

  用預(yù)定事件msg_arrives來接收消息。

  本設(shè)計中,由message-code判斷要接收的消息數(shù)據(jù)msg_in.data應(yīng)該存放到那一部分?jǐn)?shù)據(jù)結(jié)構(gòu)。message-code有head, stragehead, code, parameter, index, 和run等。其中,head為控制模塊頭,stragehead為控制模塊描述頭,code為接收代碼表,parameter為接收參數(shù)表,index為接收索引表,run為接收程序開始執(zhí)行命令。這些消息分別對應(yīng)組態(tài)軟件編譯生成的消息包格式。只有當(dāng)組態(tài)Neuron節(jié)點收到全部的模塊消息和執(zhí)行命令run后,模塊才被執(zhí)行。

  2.2 實例

  對于實現(xiàn)一個加法運(yùn)算(加法器)來講,其組態(tài)功能圖如圖:

 

 

  模塊1為變量模塊(輸入輸出模塊)中的常量模塊,模塊2、3都為變量模塊(輸入輸出模塊)中的網(wǎng)絡(luò)變量輸入模塊,模塊4為數(shù)學(xué)運(yùn)算模塊中的加法模塊,模塊5為變量模塊(輸入輸出模塊)中的輸出模塊。

  若要實現(xiàn)這樣一個加法功能,首先在組態(tài)工具中畫出如圖2所示的功能組態(tài)圖,經(jīng)編譯后生成所需的模塊代碼。如模塊頭文件為:

  Varsize 12 0 0 0 0 //中間變量所需暫存單元

  Stragenum 1 //控制模塊個數(shù)

  Parasize 2 //參數(shù)所需存儲單元

  Codesize 20 //代碼所需存儲單元

  Indexsize 24 //索引所需存儲單元

  Globalsize 0 //全局變量所需存儲單元

  在模塊進(jìn)行執(zhí)行時,

  1) 執(zhí)行模塊1,將參數(shù)值從參數(shù)表中取值,放入中間變量表;

  2) 執(zhí)行模塊2,將相應(yīng)的輸入網(wǎng)絡(luò)變量放入中間變量表;

  3) 執(zhí)行模塊3,將相應(yīng)的輸入網(wǎng)絡(luò)變量放入中間變量表;

  4) 執(zhí)行到模塊4時,從中間變量表中取使能端的參數(shù),從中間變量表中取輸入端1的參數(shù),從中間變量表中取輸入端2的參數(shù),將兩操作數(shù)相加,運(yùn)算結(jié)果放回中間變量表。

  5) 執(zhí)行模塊5,從中間變量表中將數(shù)值賦給相應(yīng)的輸出網(wǎng)絡(luò)變量。

  2.3 數(shù)據(jù)結(jié)構(gòu)

  Ø 代碼結(jié)構(gòu):由4個字節(jié)組成,分別用16進(jìn)制表示。

 

 

  Ø 代碼結(jié)構(gòu)的含義:

  第一字節(jié)表示種類( category),即四大模塊(數(shù)學(xué)模塊、邏輯模塊、變量模塊和控制模塊)中的某一類;

  第二字節(jié)表示類型(kind),即某一模塊中的具體功能;

  第三和第四字節(jié)表示索引(index)。

  Ø 索引表的結(jié)構(gòu):由二個字節(jié)組成;在程序中用16進(jìn)制表示。

 

 

  Ø 索引(index)表的含義:

  I. 占兩個字節(jié)。

  II. 分別由各個功能塊的四個部分組成:

  A. 第一部分表示某個功能塊由幾個輸入、輸出集成,分別對應(yīng)中間變量表的指針數(shù)值。

  B. 第二部分表示輸入網(wǎng)絡(luò)變量。本設(shè)計中輸入數(shù)據(jù)由消息節(jié)點的消息變量發(fā)送,再由接受節(jié)點接受,通過網(wǎng)絡(luò)傳遞到另一個接受節(jié)點上來,并轉(zhuǎn)化成網(wǎng)絡(luò)變量,再由網(wǎng)絡(luò)變量送入PTAG表,以便進(jìn)行運(yùn)算。

  C. 第三部分表示輸出網(wǎng)絡(luò)變量。運(yùn)算結(jié)果放入PTAG中間變量表,輸出時再從中間變量表中取出運(yùn)算結(jié)果,送入接受方節(jié)點(本節(jié)點上)即NEUM節(jié)點上的輸出網(wǎng)絡(luò)變量,經(jīng)網(wǎng)絡(luò)上傳遞后,再由連接后的輸入網(wǎng)絡(luò)變量從另一個節(jié)點(即消息節(jié)點)上可以讀出數(shù)據(jù)。

  D. 第四部分表示常量。其值由參數(shù)表中取出,參數(shù)表中的數(shù)據(jù)由消息發(fā)送過來。

  III. 各個功能塊的次序和每個功能塊中四個部分的次序,由組態(tài)的次序決定。

  第一部分的格式:

 

 

  第二部分(輸入網(wǎng)絡(luò)變量的格式):

 

 

  第三部分(輸出網(wǎng)絡(luò)變量)的格式:

 

 

  第四部分(常量)的格式:

 

 

  Ø 中間變量表的結(jié)構(gòu):由數(shù)據(jù)的類型決定字節(jié)長度。

 

 

  中間變量表通過賦初值來確定其結(jié)構(gòu),此時中間網(wǎng)絡(luò)變量只有空結(jié)構(gòu),沒有數(shù)據(jù),其數(shù)據(jù)等待輸入,由變量模塊、取數(shù)據(jù)函數(shù)GET()、設(shè)置數(shù)據(jù)函數(shù)SET()來完成。變量模塊中分三個類型,有常量、網(wǎng)絡(luò)變量輸入和網(wǎng)絡(luò)變量輸出。這三種類型的數(shù)據(jù)最終都要放入中間變量表中,輸入時,如是常量,則從參數(shù)表中取出常量,放入中間變量表中。參數(shù)表中的數(shù)據(jù)預(yù)先由消息節(jié)點發(fā)送,在讀參數(shù)表時已讀入數(shù)據(jù)。由READP()程序完成。

  如不是常量,則由網(wǎng)絡(luò)變量輸入來接受數(shù)據(jù),數(shù)據(jù)還是由消息節(jié)點發(fā)送過來,用GET()函數(shù)讀入,再由SET()函數(shù)放入PTAG中間變量表,以備運(yùn)算使用。

  輸出時,再由中間變量表中取出,放進(jìn)輸出網(wǎng)絡(luò)變量進(jìn)行輸出。再由節(jié)點通過網(wǎng)絡(luò)傳遞到消息節(jié)點,通過消息節(jié)點上的輸入網(wǎng)絡(luò)變量可以觀察運(yùn)算結(jié)果。

  特別要注意的是:中間變量表的字節(jié)長度是隨著常量數(shù)據(jù)的類型(只有整型和浮點型)、網(wǎng)絡(luò)變量的數(shù)據(jù)類型來確定,因而,不同的模塊運(yùn)算中間變量表的長度是不同的,這也反映在索引表的內(nèi)容上。

  Ø 中間變量(Ptag)表的格式:(一個模塊)

 

 

  Ø 參數(shù)表的格式:(放常量)

 

 

  要實現(xiàn)這樣的加法功能,先在組態(tài)工具中畫出如上圖的組態(tài)功能圖,經(jīng)編譯后生成所需的控制模塊代碼。

  如設(shè)計代碼為:{0,0,0,0,0,1,0,2,0,1,0,4,1,0,0,6,0,2,0,10}。索引表設(shè)計為:{16,0,16,0,16,0,16,3,16,1,16,6,16,0,16,3,16,6,16,9,16,9,16,0}。//16 完全和程序中生成的數(shù)據(jù)類型的編程方法有關(guān)。

3 結(jié)束語

  在LonWorks技術(shù)的基礎(chǔ)上實現(xiàn)組態(tài)控制有著廣闊的發(fā)展空間。依靠極強(qiáng)的Neuron芯片及LonTalk協(xié)議,使得組態(tài)控制得以在線編譯并實時運(yùn)行。采用消息包的形式向Neuron 芯片傳送組態(tài)控制的模塊,減少了Neuron 編程的工作量以及編譯工作,增加了系統(tǒng)的靈活性和開放性。為組態(tài)軟件的發(fā)展提供了更為開闊的市場。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品99一区二区| 国内揄拍国内精品久久| 久久久久久久欧美精品| 亚洲影院免费| 亚洲激情在线播放| 欧美一区二区视频在线观看2020| 一区二区欧美精品| 亚洲精品欧美在线| 亚洲激情不卡| 亚洲第一区在线| 国产一区二区日韩| 国产免费一区二区三区香蕉精| 国产精品久久激情| 国产精品黄视频| 欧美午夜视频在线观看| 欧美精选午夜久久久乱码6080| 老司机午夜精品视频在线观看| 久久久久久香蕉网| 久久久精彩视频| 久久激情五月激情| 久久久精品tv| 久久久999| 久久精品人人做人人综合| 性欧美videos另类喷潮| 午夜精品久久久久久久久久久久| 亚洲一区久久久| 亚洲一区二区三区高清| 亚洲欧美日韩一区二区三区在线观看 | 欧美在线一二三四区| 欧美一区二区三区精品| 欧美一区二区免费视频| 午夜精品视频在线观看一区二区| 欧美一级播放| 久久精品国产69国产精品亚洲| 久久精品导航| 亚洲片区在线| 宅男噜噜噜66国产日韩在线观看| 在线综合亚洲| 欧美在线地址| 麻豆av一区二区三区| 欧美激情精品久久久久久久变态| 欧美日本成人| 国产精品一区二区黑丝| 国产一区二区三区高清| 伊人色综合久久天天| 亚洲激情不卡| 中日韩美女免费视频网站在线观看 | 99视频国产精品免费观看| 亚洲一区二区三| 欧美专区中文字幕| 亚洲精品视频二区| 亚洲亚洲精品三区日韩精品在线视频| 午夜国产精品视频| 久久久久久久尹人综合网亚洲| 欧美国产日韩一区二区在线观看 | 亚洲精品欧美极品| 亚洲综合激情| 亚洲精品乱码久久久久久蜜桃91 | 99视频超级精品| 午夜精品福利视频| 亚洲人成网站777色婷婷| 亚洲一区二区黄| 久久天天躁狠狠躁夜夜av| 欧美连裤袜在线视频| 国产精品久在线观看| 激情久久综合| 亚洲视频一区在线| 亚洲成色最大综合在线| 亚洲素人在线| 亚洲一区自拍| 另类综合日韩欧美亚洲| 欧美性猛交xxxx乱大交蜜桃 | 亚洲另类一区二区| 欧美一级片久久久久久久| 欧美成人免费在线观看| 国产精品久久久久久久9999| 在线成人h网| 亚洲精品一区二区三区樱花| 欧美一区二区三区久久精品| 一本久久知道综合久久| 久久视频在线免费观看| 国产精品扒开腿做爽爽爽软件| 国产一区二区三区在线免费观看 | 制服丝袜激情欧洲亚洲| 久久久亚洲影院你懂的| 欧美日韩国内自拍| 精品不卡一区| 亚洲一线二线三线久久久| 亚洲人成网站色ww在线| 久久精品国产第一区二区三区| 欧美日韩1区| 樱桃成人精品视频在线播放| 亚洲永久精品大片| 一区二区不卡在线视频 午夜欧美不卡' | 欧美日本亚洲韩国国产| 黄色精品一区| 亚洲欧美日韩精品久久久| 在线一区二区三区四区五区| 免费不卡中文字幕视频| 国产亚洲人成网站在线观看| 宅男噜噜噜66一区二区66| 日韩一区二区精品视频| 美女福利精品视频| 国际精品欧美精品 | 小辣椒精品导航| 亚洲欧美日韩国产精品 | 国产有码一区二区| 亚洲欧洲99久久| 亚洲一区国产| 欧美日韩在线免费| 亚洲精品美女| 一区二区三区高清视频在线观看| 欧美国产日韩在线观看| 亚洲高清影视| 亚洲精品乱码久久久久久| 免费观看成人www动漫视频| 狠狠色伊人亚洲综合成人| 羞羞漫画18久久大片| 欧美在线电影| 国产午夜亚洲精品羞羞网站| 欧美在线一级视频| 久久综合九色综合欧美就去吻| 国内精品久久久久久| 欧美在线免费观看视频| 久久久久久久综合色一本| 精品av久久久久电影| 亚洲人成亚洲人成在线观看| 欧美顶级艳妇交换群宴| 亚洲品质自拍| 夜夜嗨av色一区二区不卡| 欧美日韩精品一区视频| 99在线视频精品| 亚洲欧美日韩国产另类专区| 国产精品视频999| 亚洲一区视频| 久久精品一区二区三区不卡牛牛| 欧美午夜女人视频在线| 一区二区三区国产| 亚洲自拍偷拍色片视频| 国产精品亚洲激情| 亚洲一区二区在线观看视频| 亚洲嫩草精品久久| 国产精品啊v在线| 亚洲欧美在线观看| 久久激情久久| 国产午夜精品在线| 欧美一区二区三区在| 亚洲人体大胆视频| 欧美三区在线观看| 在线视频亚洲欧美| 亚洲在线免费观看| 国产精品视区| 欧美一区视频在线| 久久免费国产精品| 国产一区二区精品久久91| 欧美在线3区| 久久久亚洲综合| 亚洲精一区二区三区| 在线一区免费观看| 国产精品国产三级国产a| 亚洲欧美国产另类| 久久9热精品视频| 亚洲国产成人精品女人久久久| 亚洲精品免费在线播放| 欧美日韩高清在线播放| 夜夜爽夜夜爽精品视频| 午夜老司机精品| 国产一区二区三区日韩| 亚洲清纯自拍| 欧美日韩国产综合久久| 亚洲一区美女视频在线观看免费| 欧美一区二区成人6969| 国产欧美精品一区二区色综合 | 欧美日韩不卡合集视频| 亚洲宅男天堂在线观看无病毒| 午夜亚洲性色福利视频| 国内精品免费午夜毛片| 亚洲精品字幕| 国产精品成人在线| 香蕉久久一区二区不卡无毒影院 | 好看的日韩av电影| 亚洲精品在线二区| 欧美视频一区二区三区在线观看| 中日韩午夜理伦电影免费| 久久黄色影院| 亚洲国产精品嫩草影院| 亚洲私人黄色宅男| 精品1区2区| 中文日韩在线| 国产自产高清不卡| 99成人精品| 国产午夜精品福利| 日韩一区二区精品在线观看| 美女黄网久久| 香蕉免费一区二区三区在线观看 | 91久久黄色| 午夜视频一区在线观看| 伊人久久亚洲热| 亚洲欧美日韩国产一区| 在线成人国产|