《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于LonWorks現場總線技術的組態控制
基于LonWorks現場總線技術的組態控制
摘要: 本文在介紹監控組態軟件和LonWorks網絡控制技術的基礎上,提出一種基于LonWorks網絡技術的組態控制方法,給出其設計思想和實現方法。
Abstract:
Key words :

    1 引言

  1.1 組態控制軟件

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

  1.2 LonWorks網絡控制方法 – 節點

  LON網上的每個控制節點稱為LON節點或LONWORKS 智能設備,它包括一片Neuron芯片、傳感器和控制設備、收發器和電源。

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

  傳感器或控制設備的狀態、執行控制算法,和其它Neuron芯片進行數據交換等。使用Neuron芯片,開發人員可以集中精力設計并開發出更好的應用對象而無需耗費太多的時間去設計通訊協議、通訊的軟件和硬件,這樣減少了開發的工作量,節省了大量的開發時間。

  LonWorks節點編程是用Neuron C 來實現的,程序要經過編譯和燒錄后才能載入節點中運行;或者也有一些節點經過編譯可以直接下載到節點運行。在此我們把組態的思想引入組態控制軟件中,為控制網絡預先提供豐富的控制功能模塊,通過改變網絡節點之間的邏輯關系來達到改變網絡控制功能的目的。

  1.3 引入組態到LonWorks控制網絡的優點、特點

  ● 用戶不需要用Neuron C語言編程,只要根據實際需要進行適合自己的組態配置。

  ● 實現的功能多,方便用戶實現各種控制功能。

  ● LonWorks本身帶有通訊協議,組網方便、靈活。

2. 基于LonWorks的組態控制

  2.1 組態軟件生成:

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

  控制模塊基本功能塊包括:數學運算模塊(實現數的加、減、乘、除、乘方、開方等基本運算);邏輯運算模塊(實現邏輯的與、或、非、延時、選擇開關等功能);變量模塊(提供運算的操作數并存放最終的運算結果)以及常用的控制算法模塊(例如PID控制等)。

  組態控制軟件存盤時自動對程序進行編譯、檢查語法錯誤,同時生成一定格式的消息包,準備傳遞給Neuron芯片。這些特定格式的數據包有:控制模塊綜合描述(例如所含的控制模塊總個數,參數總個數,中間變量總個數等),各模塊的描述(例如該模塊的模塊數,參數個數,中間變量等),各模塊的參數表,各模塊代碼表,各模塊的中間變量存放順序表等。

  組態Neuron節點通過顯式消息與PC機進行通訊,接收模塊消息包。該節點中存有與基本功能模塊相應的執行模塊代碼,將數學模塊、邏輯模塊、變量模塊和控制算法模塊等分別寫成單獨的函數,可按照組態軟件生成的消息包被調用,并可將執行結果傳送給PC機或其它 Neuron節點。假如組態中某個功能塊的參數發生了改變,則重新編譯程序并將最新生成的模塊消息包發給 Neuron芯片,使之總是執行最新的功能塊,實現組態的在線編譯與控制。組態Neuron節點在接收消息時,根據消息標簽將消息數據賦給該節點定義的不同的數據結構。只有當組態軟件生成的所有相關消息被收到后,功能塊才可以執行。

  Neuron各節點之間通過網絡變量進行通訊。在組態Neuron節點中,預定義一定數量的網絡變量,既有輸入類型,也有輸出類型。其總個數不超過Neuron C 語言中允許定義的網絡變量的總個數。

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

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

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

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

  用預定事件msg_arrives來接收消息。

  本設計中,由message-code判斷要接收的消息數據msg_in.data應該存放到那一部分數據結構。message-code有head, stragehead, code, parameter, index, 和run等。其中,head為控制模塊頭,stragehead為控制模塊描述頭,code為接收代碼表,parameter為接收參數表,index為接收索引表,run為接收程序開始執行命令。這些消息分別對應組態軟件編譯生成的消息包格式。只有當組態Neuron節點收到全部的模塊消息和執行命令run后,模塊才被執行。

  2.2 實例

  對于實現一個加法運算(加法器)來講,其組態功能圖如圖:

 

 

  模塊1為變量模塊(輸入輸出模塊)中的常量模塊,模塊2、3都為變量模塊(輸入輸出模塊)中的網絡變量輸入模塊,模塊4為數學運算模塊中的加法模塊,模塊5為變量模塊(輸入輸出模塊)中的輸出模塊。

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

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

  Stragenum 1 //控制模塊個數

  Parasize 2 //參數所需存儲單元

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

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

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

  在模塊進行執行時,

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

  2) 執行模塊2,將相應的輸入網絡變量放入中間變量表;

  3) 執行模塊3,將相應的輸入網絡變量放入中間變量表;

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

  5) 執行模塊5,從中間變量表中將數值賦給相應的輸出網絡變量。

  2.3 數據結構

  Ø 代碼結構:由4個字節組成,分別用16進制表示。

 

 

  Ø 代碼結構的含義:

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

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

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

  Ø 索引表的結構:由二個字節組成;在程序中用16進制表示。

 

 

  Ø 索引(index)表的含義:

  I. 占兩個字節。

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

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

  B. 第二部分表示輸入網絡變量。本設計中輸入數據由消息節點的消息變量發送,再由接受節點接受,通過網絡傳遞到另一個接受節點上來,并轉化成網絡變量,再由網絡變量送入PTAG表,以便進行運算。

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

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

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

  第一部分的格式:

 

 

  第二部分(輸入網絡變量的格式):

 

 

  第三部分(輸出網絡變量)的格式:

 

 

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

 

 

  Ø 中間變量表的結構:由數據的類型決定字節長度。

 

 

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

  如不是常量,則由網絡變量輸入來接受數據,數據還是由消息節點發送過來,用GET()函數讀入,再由SET()函數放入PTAG中間變量表,以備運算使用。

  輸出時,再由中間變量表中取出,放進輸出網絡變量進行輸出。再由節點通過網絡傳遞到消息節點,通過消息節點上的輸入網絡變量可以觀察運算結果。

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

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

 

 

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

 

 

  要實現這樣的加法功能,先在組態工具中畫出如上圖的組態功能圖,經編譯后生成所需的控制模塊代碼。

  如設計代碼為:{0,0,0,0,0,1,0,2,0,1,0,4,1,0,0,6,0,2,0,10}。索引表設計為:{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 完全和程序中生成的數據類型的編程方法有關。

3 結束語

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜国产精品视频免费体验区| 免费观看30秒视频久久| 欧美亚洲自偷自偷| 亚洲一二三四区| 一区二区欧美日韩| 99天天综合性| 日韩亚洲综合在线| 日韩午夜在线电影| 日韩一级精品视频在线观看| 亚洲精品久久久久久下一站 | 亚洲精品免费一区二区三区| 亚洲国产精品尤物yw在线观看| 久久精品99久久香蕉国产色戒| 亚洲欧美日韩综合国产aⅴ| 亚洲永久精品国产| 亚洲免费网址| 亚洲一区在线免费| 亚洲欧美清纯在线制服| 亚洲一区在线直播| 午夜欧美精品| 久久av在线看| 亚洲国产91| 亚洲精品视频在线| 日韩午夜三级在线| 中文无字幕一区二区三区| 亚洲一区成人| 先锋影音一区二区三区| 久久99在线观看| 久久天天综合| 欧美激情精品久久久久久免费印度| 欧美1区3d| 欧美日韩1区2区3区| 欧美日在线观看| 国产精品国产三级欧美二区| 国产精品午夜视频| 国产一区二区精品丝袜| 国内外成人免费激情在线视频网站| 极品少妇一区二区三区| 亚洲二区视频| 日韩一级精品视频在线观看| 中日韩男男gay无套| 午夜激情综合网| 久久精品视频一| 亚洲美女诱惑| 亚洲欧美成aⅴ人在线观看| 欧美在线999| 欧美成人一品| 国产精品久久久久久久午夜片| 国产视频久久久久| 在线日韩电影| 国产精品99久久99久久久二8| 午夜天堂精品久久久久| 亚洲欧洲日本在线| 中文国产亚洲喷潮| 久久久99精品免费观看不卡| 欧美极品一区| 国产麻豆91精品| 91久久久久久| 午夜精品亚洲一区二区三区嫩草| 久久精品国产第一区二区三区最新章节 | 极品少妇一区二区| 欧美日韩影院| 国产视频精品xxxx| 亚洲精品久久视频| 欧美一区三区三区高中清蜜桃| 亚洲日本电影在线| 欧美一级片在线播放| 免费成人网www| 国产精品久久综合| 136国产福利精品导航网址| 夜色激情一区二区| 久久黄色级2电影| 亚洲校园激情| 老司机久久99久久精品播放免费 | 国产精品久久91| 欧美插天视频在线播放| 亚洲美女在线视频| 欧美一区二区三区在线视频| 欧美不卡在线| 国产区精品在线观看| 最新日韩在线视频| 欧美在线免费观看| 亚洲一区二区日本| 欧美成人中文| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品视频在线播放| 久久成人精品| 午夜精品久久久久久久白皮肤 | 好吊色欧美一区二区三区视频| 亚洲视频欧洲视频| 亚洲精选国产| 蜜乳av另类精品一区二区| 国产欧美日韩一区| 中文在线一区| 一区二区国产日产| 欧美成人精品影院| 国内精品**久久毛片app| 亚洲伊人色欲综合网| 一区二区三区免费网站| 免费视频一区二区三区在线观看| 国产欧美一区二区精品性| 99热免费精品| 99在线精品视频在线观看| 女人香蕉久久**毛片精品| 国产日韩在线视频| 亚洲天堂网站在线观看视频| 9人人澡人人爽人人精品| 蜜臀99久久精品久久久久久软件| 国产亚洲精久久久久久| 亚洲自拍三区| 午夜精品亚洲一区二区三区嫩草| 欧美日韩一区二区在线观看视频| 亚洲区一区二| 亚洲毛片在线观看.| 牛人盗摄一区二区三区视频| 黄色小说综合网站| 久久国产99| 久久人人爽爽爽人久久久| 国产亚洲福利社区一区| 午夜亚洲一区| 久久精品免费看| 国产日韩在线看片| 欧美一区二区三区成人| 久久国产99| 国产日韩在线不卡| 欧美有码在线视频| 久久视频在线视频| 亚洲大片在线| 日韩视频在线观看| 欧美日韩成人| 9人人澡人人爽人人精品| 一区二区三区欧美视频| 欧美日韩在线观看一区二区三区| 日韩一级在线| 亚洲欧美激情在线视频| 国产精品国产三级国产| 亚洲一区二区三区视频| 欧美在线高清| 国产揄拍国内精品对白| 久久精品日产第一区二区三区| 欧美88av| 亚洲毛片一区二区| 亚洲一区二区三区四区五区午夜| 国产精品久久久久av| 亚洲一区二区三区成人在线视频精品| 午夜精品福利在线| 国产亚洲精品一区二555| 亚洲国产aⅴ天堂久久| 欧美电影美腿模特1979在线看 | 亚洲国产精品尤物yw在线观看| 欧美成人激情在线| 99精品国产热久久91蜜凸| 亚洲欧美色一区| 国产在线播精品第三| 亚洲高清一二三区| 欧美激情在线观看| 亚洲亚洲精品在线观看| 久久久精品欧美丰满| 亚洲黄色成人| 亚洲在线一区| 国产一区二区三区精品久久久 | 欧美精品在线观看播放| 中日韩在线视频| 久久国产精品一区二区三区四区| 好看的亚洲午夜视频在线| 亚洲精选在线| 国产精品日韩一区二区| 亚洲高清不卡| 欧美性色aⅴ视频一区日韩精品| 欧美一区二区视频在线观看| 欧美国产视频在线观看| 亚洲一区二区三区精品在线观看| 久久一日本道色综合久久| 99精品免费| 久久在线精品| 一区二区三区四区蜜桃| 老司机一区二区三区| 亚洲一区二区免费在线| 欧美国产一区视频在线观看| 亚洲免费网站| 欧美精品一区二区在线播放| 性欧美1819sex性高清| 欧美日韩高清在线一区| 久久成人人人人精品欧| 国产精品电影网站| 亚洲乱码日产精品bd| 国产日韩亚洲| 亚洲一区激情| 亚洲大胆女人| 欧美在线在线| 日韩午夜在线电影| 蜜臀a∨国产成人精品| 亚洲欧美国产制服动漫| 欧美日韩ab| 亚洲国产91| 国产亚洲欧美在线| 亚洲在线视频网站| 亚洲三级电影全部在线观看高清| 久久精品一区| 亚洲淫片在线视频|