VxWorks的MB系列智能可編程控制器設計_第1頁
VxWorks的MB系列智能可編程控制器設計_第2頁
VxWorks的MB系列智能可編程控制器設計_第3頁
VxWorks的MB系列智能可編程控制器設計_第4頁
VxWorks的MB系列智能可編程控制器設計_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、【Word版本下載可任意編輯】 VxWorks的MB系列智能可編程控制器設計 1 引言 可編程控制器在PLC長期的使用過程中也逐漸暴露出了諸如開出回路簡單;通信擴展能力差;梯形圖語言編程煩瑣;調試不夠方便等技術局限。伴隨著計算機技術、信息技術及工業(yè)控制技術的飛速發(fā)展,對PLC的發(fā)展提出了更*求,主要表達在:需要更高功能、更快速度、更大容量的PLC產品,以完成大型的控制項目和實現網絡化及更強的通訊能力;要求控制更加可靠,性能更加穩(wěn)定;要求提供多樣化的更方便的編程語言等。 為此,*南瑞自動控制公司研制出新一代MB系列智能可編程控制器,它繼承了傳統(tǒng)PLC的優(yōu)點,又彌補了傳統(tǒng)PLC的技術薄弱環(huán)節(jié),是對

2、傳統(tǒng)PLC功能的極大提升。該產品集智能、可靠、開放、靈活于一身,適合多種復雜控制領域的應用。 2 MB系列智能可編程控制器設計 2.1 MB系列智能可編程控制器構造 MB系列智能可編程控制器采用LAN/FieldBus系統(tǒng)體系構造,提供標準的以太網接口完成與上位機系統(tǒng)的通信。主控模件與智能I/O模件之間采用現場總線CAN作為內部總線及擴展總線,現場總線特有的高可靠性和對現場環(huán)境的適應能力,使得MB系列智能可編程控制器系統(tǒng)配置的靈活性和可靠性大大提高。圖1為雙主控熱備冗余模式下的體系構造。 圖1 MB系列智能可編程控制器體系構造 在Intel x86硬件平臺上,應用WindRiver公司的Tor

3、nado集成開發(fā)環(huán)境,實現基于VxWorks的可編程控制器。 2.2 MB系列智能可編程控制器特點 (1) 高性能的主控模件:的軟硬件配置使得主控模件具有強大的數據處理能力、運算能力以及通訊處理能力; (2) 開放的標準的以太網通信接口:對外提供10/100M以太網接口,支持Modbus/TCP協(xié)議,可與上位機及各種監(jiān)控軟件互連; (3) 先進的現場總線網絡:采用現場總線CAN網,具有通訊速率快、抗干擾能力強、成本低、構造簡單、擴展靈活、實時性好等特點,為系統(tǒng)擴展及遠程控制提供了方便; (4) 強大的串口通訊功能:提供了串口通訊模件,可自由配置,可方便地與其他智能設備通訊; (5) 高可靠的熱

4、備冗余方案:支持雙CPU、雙以太網、雙電源的熱備冗余方案,自動實時備份數據; (6) MB系列不同型號PLC之間方便靈活的互連:可實現不同PLC之間的無縫連接,無需任何擴展模件,節(jié)省系統(tǒng)成本; (7) 全智能I/O設計和一系列安全性、可靠性設計為系統(tǒng)的安全可靠運行提供了保障:開關量輸入模件的光電隔離和軟件濾波功能;開關量輸出模件的反讀、校核及執(zhí)行繼電器的聯合控制確保在任何情況下不會發(fā)生誤動;溫度量輸入模件先進的每路獨立橫流源設計大大提高了采集速度和抗干擾性;模擬量輸入模件飛度電容的設計方法保證了內部電路和外界干擾的隔離,大大提高了采集精度,限度地降低了模擬量漂移; (8) 界面友好、使用簡單的

5、編程軟件 靈活的梯形圖編程語言及更多更豐富的梯形功能模塊;全漢化的梯形圖設計大大提高了梯形圖程序的可讀性;直觀的可視化流程圖編程語言,使復雜控制流程的實現變得非常簡單;模塊化程序構造,程序之間可相互調用;支持遠程編程和調試; (9) 直接的GPS同步時鐘接口 直接提供GPS同步時鐘接口,無需編程及設置,硬件對時可達模件級,SOE事件信息更加、可靠; (10) 方便實用的現地人機接口 提供了與觸摸屏的串行通訊接口,支持Modbus通訊協(xié)議,可與多種觸摸屏直接連接,無需增加輔助設備,也無需編寫通訊驅動程序。 2.3 操作系統(tǒng)和開發(fā)環(huán)境 為保證軟件的可靠性和發(fā)揮裝置的實時性能,項目采用了國際上廣泛使

6、用的32位實時操作系統(tǒng)VxWorks。VxWorks是專門為嵌入式微處理器而設計的模塊化、高性能、實時的操作系統(tǒng)。VxWorks是目前世界上用戶數量的實時操作系統(tǒng),具有豐富的應用軟件支持、良好的技術服務、可伸縮性、可裁減性和可靠的系統(tǒng)穩(wěn)定性。VxWorks的開放式構造和對工業(yè)標準的支持使開發(fā)者只需做少的工作即可設計有效的適合于不同用戶要求的實時操作系統(tǒng)。 VxWorks的開發(fā)環(huán)境是WindRiver(風河)公司提供的Tornado。Tornado采用主機-目標機開發(fā)方式,主機系統(tǒng)采用運行Windows2000/NT的工作站或PC,VxWorks則運行在x86等目標處理器上。Tornado提供了

7、友好的可視化開發(fā)界面、交叉編譯環(huán)境、源碼級調試工具、目標機命令解釋器和目標機狀態(tài)監(jiān)視器等多種應用工具,為應用軟件開發(fā)提供了一個高效而可靠的平臺。 3 關鍵技術 MB系列智能可編程控制器的軟件設計,關鍵是軟件實時性的保證,其中包括任務的劃分、任務間通信機制的選擇、中斷處理程序、網絡通信程序和串行口通信程序的編寫等關鍵技術。 3.1 任務劃分 嵌入式實時系統(tǒng)中,任務的合理劃分對系統(tǒng)的實時性至關重要。開展任務劃分時,首先要分析數據流程圖中數據的轉換,確定哪些數據轉換可以并行執(zhí)行,哪些必須順序執(zhí)行。決定應用系統(tǒng)任務劃分的主要的因素是系統(tǒng)所實現的功能之間的異步關系,具體可以從I/O功能和系統(tǒng)內部功能兩個

8、方面來考慮。 VxWorks的實時內核Wind默認采用了基于任務優(yōu)先級的搶占式調度算法,同時,也支持輪轉調度算法。Wind內核有256個優(yōu)先級,編號0255,優(yōu)先級0,255。任務的創(chuàng)立使用taskSpawn()函數來實現。 MBPLC根據功能和優(yōu)先級劃分為以下若干任務: (1) 主任務:主任務負責硬件初始化、數據庫初始化、梯形初始化、流程初始化、網絡初始化等工作,并根據數據庫的定義創(chuàng)立相應的任務; (2) CAN1任務:CAN1任務主要完成CAN1網驅動、與I/O模件交換信文等功能,它既可以向I/O模件下發(fā)加載、設值、設時、查詢等信文,又能接收I/O模件上送的測值、事件等信文,并對數據庫開展

9、相應的處理; (3) 以太網任務:以太網任務主要完成以太網驅動、信文收發(fā)等功能,實現PLC與上位機的數據和控制命令的傳遞,支持標準MODBUS/TCP協(xié)議; (4) CAN2任務:CAN2任務主要完成CAN2網驅動、與外部設備(如通訊裝置、保護裝置、勵磁裝置、調速器等等)的信息和控制命令的傳遞功能。只要外部設備支持CAN接口,就很容易接入PLC中; (5) 流程任務:流程任務提供了獨特的順序控制流程執(zhí)行方法,將MBPro編程軟件產生的匯編代碼開展執(zhí)行,通過訪問數據庫得到數據,描述一定的判斷和閉鎖條件,產生相應的動作,并將運算結果寫至數據庫中,同時還可將實時執(zhí)行的各種信息反應到調試機,以便監(jiān)視流

10、程的執(zhí)行情況。流程圖是順序執(zhí)行的,適于順控操作,如機組正常開停機控制、緊急停機控制等; (6) 梯形任務:梯形任務提供了梯形圖執(zhí)行方法,將MBPro編程軟件產生的匯編代碼開展執(zhí)行,通過訪問數據庫得到數據,實現一定的判斷和閉鎖條件,產生相應的動作,并將運算結果寫至數據庫中,同時還可將實時執(zhí)行的各種信息反應到調試機,以便監(jiān)視梯形的執(zhí)行情況。梯形圖是循環(huán)掃描的,適于邏輯控制及狀態(tài)控制,可用于主程序、通訊、數據處理、控制啟動,如機組狀態(tài)判斷等; (7) 調節(jié)任務:調節(jié)任務負責對機組有功、無功開展PID閉環(huán)調節(jié),可開展負荷增減、調節(jié)投退、調節(jié)條件限制、調節(jié)增減限制、調節(jié)超時判斷、調節(jié)速度限制等; (8)

11、 時鐘任務:時鐘任務管理PLC時鐘,處理分同步信號,并定時開展一些硬件操作,如點運行燈; (9) 自檢任務:自檢任務自動診斷各類任務、設備的運行情況并開展報警。當PLC因某種干擾或硬件故障等原因發(fā)生運行紊亂或死機時,Watchdog能產生自恢復信號,使PLC自動重新恢復運行; (10) 調試任務:調試任務通過以太網與調試機通訊,負責與編程軟件MBPro交換信息,包括上送實時數據、SOE事件、流程報警信息等,并可修改數據庫、梯形圖及流程圖,開展對時、復位、主從切換等操作; (11) 雙機任務:雙機任務實現主從機的自動、手動切換,并能通過內部高速網備份對側重要數據。當主機的某些重要設備或任務出現故

12、障時,從機能自動升為主機; (12) 顯示任務:顯示任務通過串口與智能型液晶顯示觸摸屏通訊,完成當地數據顯示和操作功能,包括顯示測點信息、事故一覽表、光字、模件狀態(tài)等,并能發(fā)出控制命令、設置定值、整定參數等; (13) 串口任務:串口任務完成與外部設備通訊功能,實現與外部設備的數據和命令的交換,如GPS、溫度巡檢裝置、交流采集裝置等等。支持Modbus標準規(guī)約,必要時可根據需要編程實現特殊規(guī)約。 3.2 任務間通信 任務間通信機制是多任務間相互同步和通信,以協(xié)調各自活動的主要手段。VxWorks提供的任務間通信手段按其速度由快到慢依次是信號量、消息隊列、管道和套接字。常用的通信機制是信號量和消

13、息隊列,套接字(Socket)用于網絡編程。 (1) 信號量 信號量是實現任務互斥、同步操作的主要機制,VxWorks提供的信號量經過了高度優(yōu)化,在所有任務間通信機制中,速度快。對于互斥,信號量可以上鎖對共享資源的訪問,并且比禁止中斷或禁止搶占提供更的互斥粒度。對于同步,信號量可以協(xié)調外部事件與任務的執(zhí)行。 MBPLC使用二進制信號量來解決多個任務讀寫數據的互斥問題,使用計數器信號量來解決定時器計數問題; (2) 消息隊列 消息隊列是VxWorks提供的單CPU中任務間通信的主要機制。消息隊列允許以FIFO或基于優(yōu)先級方式排隊消息,消息的數目可變,消息的長度可變。任何任務都可以向消息隊列發(fā)送消

14、息,也可以從消息隊列接收消息。多個任務允許從一個消息隊列收發(fā)消息。但是,兩個任務間的雙向通信通常需要兩個消息隊列,各自用于一個方向。 MBPLC使用消息隊列來實現任務間的數據交換。首先調用msgQCreate()函數創(chuàng)立消息隊列,再用msgQSend()和msgQReceive()函數發(fā)送和承受消息,調用msgQDelete()函數中止消息隊列。 3.3 中斷處理程序 中斷處理程序是實時系統(tǒng)的重要組成部分。系統(tǒng)通過中斷機制了解外部世界,并對外部事件作出響應。實時系統(tǒng)的反應取決于系統(tǒng)對于中斷的響應速度和中斷處理程序的處理速度。由于在很短的時間內,可能產生很多中斷,高優(yōu)先級的中斷將阻塞低優(yōu)先級的中

15、斷,因此,必須使中斷處理程序的處理時間短。 MBPLC的中斷包括秒中斷、分同步中斷、CAN網中斷以及BSP級的以太網中斷、硬盤中斷等等。下面以秒中斷(中斷級別為5)為例說明中斷的使用方法: ntConnect(INUM_TO_IVEC(INT_VEC_GET(5), SECISR, 0); sysIntEnablePIC(5); 這兩個函數用于將中斷處理程序SECISR()與秒中斷相關聯,存放于中斷向量表的對應表項中,當秒中斷事件出現時,VxWorks內核將調用中斷處理程序。這時可利用中斷處理程序釋放一個信號量(通過semGive()函數),通過該信號量驅動相應的數據處理模塊(通過sem- T

16、ake()函數),從而實現實時操作。 此外,我們還使用intLock()函數和intUnlock()函數來設置中斷屏蔽,用以保證受保護的代碼在執(zhí)行過程中不受中斷的干擾。 3.4 網絡通信 網絡通信一般可通過套接口(socket)實現。Vx- Works提供了標準的BSD socket調用,具有兩種類型:Stream socket(全雙工流類型)、Datagram socket(數據報類型)。前者支持TCP協(xié)議,后者支持UDP協(xié)議。任何一個任務都可以打開一或多個socket,其它任務的socket可與之連接。 客戶端程序首先調用socket()函數產生用于與各分系統(tǒng)連接的套接字,然后初始化一個套

17、接口構造體,為其賦上服務端的IP地址和端口號,并將其作為函數connect()的參數,調用connect()函數主動去連接服務器端。連接成功后,用send()和recv()函數讀寫數據,直到全部數據都交換完,再用close()函數關閉套接口。 服務器端也先用socket()函數建立套接口,再調用bind()函數將自身IP和端口號綁定,以保證客戶端正確識別,然后用listen()函數指明已準備好承受來自客戶端的連接,又用accpet()函數承受一個連接請求,承受后用send()和recv()函數來傳輸數據,直到全部數據都交換完,再用close()函數關閉套接口。為了確保服務器能夠實時接收客戶端的

18、數據,當服務端與客戶端建立連接之后,必須嵌入循環(huán),利用recv()函數不斷等待客戶數據。同時客戶端每次發(fā)送數據之后也應等待服務端回復,建立握手機制。 3.5 串行口通信 在VxWorks中,將I/O系統(tǒng)設計成為任何類型的設備,提供一個簡單、統(tǒng)一、獨立于設備的接口,任何對于串行口的操作仍然可以視為對一個文件的操作,而不必了解關于設備或程序驅動實現的細節(jié)。在使用串口之前利用open()打開相應串口,再用ioctl()設置波特率、數據位、停止位、奇偶校驗等屬性,然后依據串口打開時的讀寫標志,調用函數write()、read()對串口開展只讀操作、只寫操作或同時開展讀寫操作,用close()關閉串口。 對于串口通信,仍然要關心數據接收的實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論