<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于LonWorks水廠前端智能節(jié)點的配置與實現(xiàn)

          基于LonWorks水廠前端智能節(jié)點的配置與實現(xiàn)

          作者: 時間:2012-10-27 來源:網絡 收藏

          4 編程
          在整個系統(tǒng)中,除了LonWorks提供的系統(tǒng)開發(fā)程序之外,大量的應用程序須結合現(xiàn)場需求來編寫。由于C語言提供位操作指令,因此是一種非常適合于編寫與硬件相關的控制程序的語言。為了便于用戶使用,Echelon公司在推出Neuron Chip和系統(tǒng)開發(fā)程序之外,還提供了Neuron C編程語言,一種基于ANSI C而為神經元芯片開發(fā)設計的編程語言。對ANSI C進行了擴展,允許程序員以自然的方式描述事件驅動任務,可控制任務執(zhí)行的優(yōu)先級,可將I/O對象直接映射到處理器的I/O端口,通過定義網絡變量把受控對象聯(lián)系起來,還可為用戶提供一種實現(xiàn)節(jié)點之間數(shù)據共享的簡單方法,支持顯式報文傳送,還可直接對LonTalk協(xié)議的底層設備進行訪問,便于設計LonWorks系統(tǒng)應用程序。
          由于LonWorks系統(tǒng)程序中包含NodeBuilder,因此對編程可在NodeBuilder環(huán)境下進行。步驟包括:1)定義IO對象;2)定義定時器對象;3)定義網絡變量;4)定義顯式報文;5)定義任務;6)編寫自定義函數(shù)等。
          其中網絡變量和顯式報文是節(jié)點之間交換信息的載體,是在LonWorks網絡上傳送的數(shù)據包。節(jié)點之間的聯(lián)系主要是通過網絡變量來實現(xiàn)的,因此使用網絡變量可實現(xiàn)LonMark的互操作性,方便編程和安裝。而Neuron C編程的主要對象就是網絡變量NV(Network Variables),又稱隱式消息,是節(jié)點上的一個對象。其類型可以是整型、布爾型或字符串型數(shù)據,用戶可在應用程序中自由定義。顯式報文也稱為顯式消息,其中數(shù)據長度最大228個字節(jié),而網絡變量最多31個字節(jié)。而任務,是對事件的反應,即當某事件發(fā)生時應用程序執(zhí)行何種操作。另外,還可以在Neuron C程序中由用戶編寫自定義函數(shù),以完成一些常用功能。和標準C不同,Neuron C必須要寫出函數(shù)原形,也可以將一些常用的函數(shù)放到頭文件中,以供程序調用。
          由于在進行模擬量數(shù)據采集和控制的時候,通過串行口和神經元芯片進行通信,因此選擇Neurowire IO對象,即同步全雙工串行通信模式IO對象。對11個IO引腳的定義為:IO_0到IO_7是片選信號,IO_8是時鐘,IO_9是數(shù)據出,IO_10是數(shù)據入。就是說,該I/O對象使用全同步串行數(shù)據格式傳送數(shù)據,數(shù)據被移入的同時也進行數(shù)據移出。NeurowireI/O對象還可被配置為主/從模式。主模式,時鐘信號輸出;從模式,時鐘信號是輸入。在主模式下,引腳IO_0~IO_7中的一個或多個可被用作片選信號,在從模式下,引腳IO_0~IO_7中的一個可被設計成超時引腳。
          當使用具有不同比特率的多路復用串行對象或Neurowire I/O對象時,必須使用編譯器指令“#pragmaenable_multiple_baud”,且在所用I/O函數(shù)(如io_in()和io_out())之前。其中,對Neurowire輸入/輸出對象進行顯式配制的Neuron C語句如下:
          IO_8 neurowire master |slave[select(pin-nbr)][timeout(pin-nbr)]
          [kbaud(const-expr)][clockedge(+|-)]io-object-name;
          作用是:IO_8:指定Neurowire輸入/輸出對象使用引腳IO_8~IO_10,其中IO_8時鐘信號,IO_9串行數(shù)據輸出,IO_10串行數(shù)據輸入;
          Master:指定Neuron芯片在引腳IO_8上提供時鐘,輸出;
          Slave:指定Neuron芯片檢測引腳IO_8上的時鐘,輸入;
          Select(pin-nbr):為Neurowire master指定片選引腳,為IO_0~IO_7之一;
          Timeout(pin-nbr):為Neumwire slave指定一個可選擇的超時信號引腳,其范圍是IO_0~IO_7;使用超時信號引腳,當neuron芯片等待時鐘的上升沿或下降沿時,將檢查該引腳的邏輯電平,如果檢測到邏輯電平為“1”,停止傳輸;
          Kbaud(eonst-expr):為Neurowire master指定比特率,const-expr可為1 kb/s、10 kb/s或20 kb/s;對于10 MHz的Neuron芯片輸入時鐘,缺省值為20 kb/s;
          Clockedge(+|-):指定數(shù)據觸發(fā)時鐘信號極性,clockedge(+)為上升沿,clockedge(-)為下降沿;
          io-object-name:由用戶為該I/O對象指定的名字。
          將系統(tǒng)中所用設備和IO對象進行定義,并對所用節(jié)點進行編程后即可連網使用。例如利用采集開關量信號來控制指示燈,來實現(xiàn)對數(shù)字量的輸入和輸出控制。其中數(shù)字量輸入程序如下:
          d.jpg

          5 結論
          文中分析了LonWorks智能節(jié)點的組成原理、編程和使用,又介紹了用其構成網絡的底層控制網所用設備和組網方法。這對于任何設計自動化生產線的工程項目,都有一定的參考價值。

          本文引用地址:http://www.ex-cimer.com/article/159752.htm

          超聲波液位計相關文章:超聲波液位計原理


          液位計相關文章:磁翻板液位計原理



          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();