基於LonWorks網絡的PID控製節點的設計(轉載)基於LonWorks 網絡的PID控製節點的設計 北京化工大學自動化係(100029) 龐彥斌 程 煒 摘 要:介紹了基於Neuron芯片的LonWorks 網絡PID控製節點的設計及開發。具體包括節點的硬件電路及軟件設計方案。本設計方案經過實驗驗證是切實可行的。 關鍵詞:現場總線控製係統(FCS) LonWorks技術 PID Neuron芯片 現代工業過程控製領域對測控係統的速度、精度、成本等方麵提出了更高的要求,全數字、雙向、多節點的現場總線應運而生。現場總線是一種串行的數字通信鏈路,它溝通了生產領域的現場設備之間以及與更高層次控製過程設備之間的聯係。 LonWorks技術是Echelon公司於90年代推出的一種主要用於設備聯網的局域操作網絡技術LONLocal Operating Network。LonWorks技術的優勢是將通訊協議固化於Neuron芯片中,並且提供一套完整的開發與建網工具--LonBuilder和NodeBuilder。這樣使得用戶可以較少關心網絡的通訊,而集中於節點的具體應用開發。LonWorks技術極大地方便了用戶,也促進了該技術的推廣應用。 現場總線控製係統(FCS)是工業控製係統發展的必然趨勢,然而在短時期內它無法完全取代DCS係統,因此現有的4~20mA模擬儀表到現場總線的接口開發具有較強的可行性及現實意義。本文擬對基於LonWorks 網絡的PID控製節點的設計與開發作一論述。 1 整體設計思想 現場儀表,如測量變送器、執行器、調節閥等的輸入/輸出信號多為4~20mA模擬信號。本節點的任務是在完成現場模擬儀表與LonWorks網絡連接的基礎上,實現對被控對象的控製,即對現場儀表進行測量信號采集,控製運算及控製信號輸出。整體節點設計分為三部分:信號采集、控製運算及信號輸出。 Neuron芯片能夠完成信息的輸入、處理、輸出,並可通過不同的收發器與不同的通訊介質相連接,方便地實現網絡通訊。以其為中心器件,配以相關外圍電路構成的節點,實現了用戶應用程序與組網通訊的統一。 本文設計的PID控製節點的結構示意圖如圖1所示。 考慮到工業現場的電氣工作情況,為保護節點核心部分免受損壞,在模擬輸入/輸出與Neuron芯片之間加入光電耦合器件,從而提高了節點的抗幹擾性能。 2 節點實現 2.1 關鍵技術 LonWorks技術的核心是Neuron芯片。它是由美國Motorola和日本東芝兩大芯片製造商生產的,共有兩個係列MC143150和MC143120。本設計采用的是MC143150,可帶片外存儲器類型。該類型專門用於需要較大應用程序的傳感器控製係統。 MC143150芯片內部有三個CPU,即:介質訪問CPU,網絡CPU,應用CPU。它們與片內存儲器、網絡通訊接口、定時/計數器、I/O口驅動電路通過16位地址總線和8位數據總線相連。芯片內部結構示意圖如2所示。 Neuron芯片有11個可編程的I/O引腳,並提供四類共34種I/O對象。通過引腳的不同配置,為外部硬件提供靈活的接口,實現不同的I/O對象。這四類I/O對象為:直接I/O、並行I/O、串行I/O和計時器/計數器I/O對象。 本設計選用串行I/O對象中的Neuronware對象。該對象通過Neuron芯片11個引腳中的IO.8~IO.10進行三線串行傳輸,IO.0~IO.7可作為片選信號輸出。數據傳輸以8位為單位,一次最多可傳輸255位。對於10MHz晶振輸入的Neuron芯片,其串行時鍾頻率為20kHz,串行數據傳輸速率滿足現場控製要求。 Neuron芯片的輸入/輸出對象中有parallel並行I/O對象。該對象有3.3Mbps的高傳輸速率,但由於其適用於8位並行數據,而且占用I/O引腳較多,功能擴展較複雜。所以不采用並行I/O對象。 2.2 節點硬件/軟件設計 信號采集部分,采用高速、串行12位、8通道模數轉換器MAX186。現場4~20mA測量信號經過200Ω精密電阻變為0.8~4V電壓,進入MAX186的輸入通道。MAX186具有一個內部4.096V基準源,每一通道帶跟蹤/保持(T/H)電路,最高采樣頻率可達133kHz。其SCLK、Din、Dout引腳分別與Neuron芯片的IO.8、IO.9、IO.10相連。IO.1作為MAX186的片選信號(/CS)。MAX186的控製字的寫入與轉換數據的輸出通過串行數據線完成。其各個輸入通道由控製字進行選擇。MAX186外部接線簡潔。 信號采集電路如圖3所示。 MAX186接口程序為: IO_8 neuroware master select(IO_1) MAX186; //定義I/O對象為neuroware,IO_8為時鍾輸出引腳;IO_9為串行數據輸出引腳;IO_10為串行數據輸入引腳;選擇主模式,MAX186片選信號由IO_1輸出;數據在時鍾上升沿被傳輸// IO_1 output bit MAX186_CS=1; //定義IO_1為位輸出,作MAX186的片選信號// When(timer_expires(clock_1)) // 定時/計數器clock_1滿事件驅動// Io_out(MAX186_CS,0); //選中MAX186// Io_out(MAX186,10001111); //向MAX186送控製字:選擇通道0,單極性,單端輸入,外部時鍾模式// Input=io_in(MAX186,&input,16); //輸入轉換結果// Input=input>>4; Io_out(MAX186_CS,1); //不選中MAX186,結束信號采集// 控製運算部分主要通過對Neuron芯片編程完成。Neuron芯片的編程語言為由ANSI C發展而來的Neuron C語言。它包括對ANSI C的擴展,並增添了一些較強的功能,如:網絡變量類型,事件調度when語句。網絡變量簡化了節點間的數據共享。本設計中PID控製運算的設定值、比例放大係數、積分/微分時間等數值均通過網絡變量的形式傳送。 PID控製運算的流程圖如圖4所示。 信號輸出部分選用串行12位數模轉換器MAX538。由於現場執行機構多接收4~20mA信號,所以需要將MAX538的電壓輸出轉換成電流信號,為此選用AD694完成電壓/電流轉換。AD694具有內部電壓基準,可輸出作為MAX538的D/A轉換基準,簡化了電路設計,節省了空間。另外,AD694有較強的驅動能力,對於需要免除噪聲的4~20mA信號傳遞以驅動操作電子管、傳動裝置和其他控製器件,它是理想的選擇。 本PID控製節點設計為兩路輸出,片選信號分別由IO.2、IO.3給出,具體電路如圖5所示。 信號輸出部分接口程序為: IO_8 neuroware master select(IO_2) MAX538; IO_2 output bit MAX538_CS=1; Io_out(MAX538_CS,0); Io_out(MAX538,&output,16); Io_out(MAX538_CS,1); 總之,本文設計的基於LonWorks 網絡的PID控製節點, 經過實驗驗證是切實可行的。它具有組網方便、集成度高、成本低等特點。利用它與其它種類的測控節點配合,加上上位操作管理計算機,可以容易地構成徹底分散的、地域分布的網絡測控係統。這種係統可用於汙水處理、過程控製、樓宇自動化等場合。 -------------------------------------------------- 參 考 文 獻 1 Echelon公司.Neuron C參考手冊.1995 2 Echelon公司.Neuron C程序員指南.1995 3 MOTOROLA公司.LonWorks Technology Device Data 1996 信息來源:龍控網