<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Linux系統的軟PLC設計

基于Linux系統的軟PLC設計

——
作者: 時(shí)間:2007-11-14 來(lái)源: 收藏

  引言

  (,Programmable LogicController)經(jīng)過(guò)幾十年的發(fā)展,現在已經(jīng)成為了最重要、最可靠、應用場(chǎng)合最廣泛的工業(yè)控制微型計算機。然而,人們在使用過(guò)程中也逐漸發(fā)現了傳統的缺點(diǎn):兼容性差,由于生產(chǎn)廠(chǎng)家眾多,各種機型互不兼容,沒(méi)有統一的標準,難以構造統一的硬件結構;封閉、擴展能力差:產(chǎn)品能力的功能實(shí)現依賴(lài)硬件;對使用者的要求高:現行的 產(chǎn)品,其編程方式要求使用者對PLC的硬件結構、電器原理、編程指令都要有相當的了解;可維護性差:PLC 出現故障時(shí)需要專(zhuān)業(yè)人員用專(zhuān)業(yè)工具進(jìn)行檢測和維修;成本較高,傳統PLC 被幾家廠(chǎng)商所壟斷,性?xún)r(jià)比增長(cháng)緩慢。這些問(wèn)題都制約著(zhù)傳統PLC 的發(fā)展。近年來(lái),工控領(lǐng)域的不少研究人員一直在尋求著(zhù)解決這些問(wèn)題的途徑。隨著(zhù)計算機軟硬件技術(shù)的發(fā)展及PLC 國際標準IEC61131-3的制定,在計算機上以軟件的方式來(lái)實(shí)現PLC 成為了發(fā)展的熱點(diǎn),這也就是軟PLC(Soft PLC)。

  軟PLC介紹

  軟PLC,也叫軟邏輯,是一種基于PC 機開(kāi)放結構的控制裝置。軟PLC 綜合了計算機和PLC 的開(kāi)關(guān)量控制、模擬量控制、數學(xué)運算、數值處理、通信網(wǎng)絡(luò )等功能,通過(guò)一個(gè)多任務(wù)的控制內核,提供了強大的指令集、快速而準確的掃描周期、可靠的操作和可連接的各種I/O 系統及網(wǎng)絡(luò )的開(kāi)放結構。軟PLC 提供了硬PLC 的各種功能,同時(shí)具備了PC 的各種優(yōu)點(diǎn)。

  基于PC 平臺的軟PLC 由于無(wú)需專(zhuān)門(mén)的編程器,因而可以充分利用PC 機的軟硬件資源,直接采用梯形圖或指令語(yǔ)言編程,并具有良好的人機界面,在數控系統中正逐漸取代硬件PLC,PLC 編程系統也正在逐步轉向占據軟件市場(chǎng)的PC 機。軟PLC 技術(shù)發(fā)展的一個(gè)重要條件就IEC61131-3 標準的制定。

  20 世紀90 年代,IEC(國際電工委員會(huì ))頒布了IEC61131 國際標準,它的內容涵蓋了PLC 整個(gè)生命周期的各個(gè)部分。IEC61131-3 是PLC 的語(yǔ)言標準,它定義了5 種PLC 編程語(yǔ)言的規范,其中結構化文本(ST)和指令表(IL)為文本語(yǔ)言,而順序功能圖(SFC)、梯形圖(LD)、功能模塊(FBD)為圖形語(yǔ)言。同時(shí),標準還允許在同一個(gè)程序中混合使用多種語(yǔ)言。IEC61131-3 標準由IEC 的SC65BW7工作組制定,它包括來(lái)自不同的PLC 制造商、軟件公司和用戶(hù)代表,實(shí)現了統一的編程標準。相對傳統PLC,軟PLC 解決了兼容性差、通用性差等問(wèn)題,具有了多方面的優(yōu)勢:

  (1) 硬件體系結構不再是封閉的,用戶(hù)可以自己選擇合適的硬件來(lái)組成滿(mǎn)足要求的PLC。

  (2) PC 機廠(chǎng)家的競爭激烈使得基于PC 機的軟PLC 性?xún)r(jià)比得以提高。

  (3) 軟PLC 不僅可以實(shí)現連接到私有的PLC 網(wǎng)絡(luò )中,而且可以通過(guò)PC 連接到計算機網(wǎng)絡(luò )上。

  (4) 由于軟PLC 是基于IEC61131-3 標準的,因此在掌握標準后就可以容易的進(jìn)行開(kāi)發(fā)了。

  由于軟PLC 具有兼容性、通用性、性?xún)r(jià)比高、易于與網(wǎng)絡(luò )連接、編程方便等優(yōu)點(diǎn)。因而,目前世界各國都在進(jìn)行軟PLC 的研究。國際上,已經(jīng)有了一些比較成熟和影響比較大的產(chǎn)品:如德國KW -sofeware 公司的MULTIPROG wt32、倍福TwinCAT控制軟件TwinCAT PLC、法國CJ International公司的ISaGRAF 軟件包、PCSoft International 公司的WinPLC、美國Wizdom Control Intellution 公司的Paradym-31 等等。而國內有關(guān)部門(mén)和工控方面的公司也正在著(zhù)手研究開(kāi)發(fā)具有自主版權的中文軟PLC產(chǎn)品。

  軟PLC設計平臺

  硬件工作平臺

  軟PLC 的期待硬件工作平臺為工控機等PC 工業(yè)微機平臺和嵌入式PC 平臺。本設計因需要應用于嵌入式的數控系統中,所以采用了嵌入式PC 平臺。嵌入式PC 是將PC 機的主要硬件集中在一張信用卡大小的主板上,將操作系統和應用軟件存儲在Flash芯片中。嵌入式PC 與標準PC 全兼容,采用與標準PC 相同的硬件結構和軟件結構。因而,嵌入式PC在理論上能完成與普通PC 系統的工作。因而,我們可以在普通PC上做好設計和開(kāi)發(fā),再將軟件移植到嵌入式PC 上。

  嵌入式PC 包括單板計算機(SBC)、PC/104 計算機和餅干機,本設計采用的是嵌入式PC104 計算機。嵌入式PC/104 組件尺寸小,標準化,模塊化程度高,采用層疊式結構,通過(guò)在CPU 板的基礎上堆疊擴展板構成一個(gè)完整的計算機系統。PC104 的擴展板齊全,包括了網(wǎng)卡、數字I/O 卡、A/D 卡等。在PC104 上構造的系統即嵌入式軟PLC 可擴展性好,標準化和模塊化程度高。

  現今PC104 的硬件水平可以達到P2 或者P3 一級,CPU 速度足夠快,內存可到128M,程序存儲空間可以選用CF 卡作為硬存儲空間,可以達到128M,且可通過(guò)PC104 接口擴展其硬件I/O 能力,可增加軟PLC 的I/O 口,豐富的硬件資源完全可以滿(mǎn)足運行軟PLC 的需要。這也使得設計時(shí)完全可以在普通PC 上,在 內核下對軟PLC 的各個(gè)模塊進(jìn)行調試,調試成功再移植到PC104 組件上運行。

  軟件平臺

  目前,大多數軟PLC 分別以Windows, DOS 和 系統為操作平臺。早期的基于PC 的軟PLC 采用的較多的是DOS 系統,這類(lèi)軟件由于運行DOS 環(huán)境下,可以輕松實(shí)現其實(shí)時(shí)控制的要求,但由于DOS 環(huán)境是單任務(wù)處理方式,使得PC 的潛力得不到充分發(fā)揮,系統的功能和靈活性也受到限制。而Windows 具有操作界面良好、程序開(kāi)發(fā)相對容易、多任務(wù)等優(yōu)點(diǎn),但Windows 操作系統并不是一個(gè)理想的實(shí)時(shí)操作系統,且Windows 操作系統是收費的,這將大大增加開(kāi)發(fā)應用的成本。因而,本設計配合數控系統的需要選用的是 系統為操作平臺,基于Linux 內核模塊的Rtlinux 是一個(gè)免費的、開(kāi)放源代碼的實(shí)時(shí)操作系統。

  軟PLC模塊設計

  本設計的軟PLC 基于嵌入式PC104 計算機,建立在Linux 操作系統之上,軟件的設計采用了模塊化設計。每個(gè)模塊都專(zhuān)職一項功能,每個(gè)模塊都是一個(gè)進(jìn)程。軟PLC 全局變量是所有模塊的公共數據,由配置文件設定。各個(gè)模塊通過(guò)全局變量進(jìn)行通信,各個(gè)模塊的私有數據不包含在配置文件內。全局變量在每個(gè)模塊都有副本,各個(gè)模塊通過(guò)副本的數據對本模塊進(jìn)行運算,當循環(huán)一次運算后,就更新到全局變量,這樣就實(shí)現了各個(gè)模塊之間的通信。每個(gè)模塊對全局變量的讀寫(xiě)權限不一樣的,只有對全局變量具有寫(xiě)權限的模塊才可以更新全局變量里的數據。每個(gè)模塊作為一個(gè)進(jìn)程,進(jìn)程之間的通信采用的是共享內存進(jìn)行通信。軟PLC 各模塊之間的結構框圖如圖1 所示:

  

軟PLC 各模塊之間的結構框圖

  (1) 主程序(main program),啟動(dòng)軟PLC,將首先運行主程序,主程序將讀取配置文件上的內容,并運行配置文件上所設定的模塊。

  (2) 配置文件(configurefile),在軟PLC 中具有核心的地位,它由幾部分組成:

 ?、佘汸LC 配置,在這部分設置了內核和各個(gè)模塊的相關(guān)參數,

  主要包括:模塊列表,列出了要運行的模塊;變量列表,列出了軟PLC 中的全局變量,并定義了具有對應全局變量有寫(xiě)權限的模塊。

 ?、?公共配置,這部分設置了各個(gè)模塊之間的共同屬性。

 ?、?同步配置,這部分是要配制各個(gè)模塊之間的同步性。為了保證數據的傳輸,必須讓模塊之間同步。

 ?、?實(shí)時(shí)性配置,軟PLC 可以運行在3 種模式:正常模式、軟實(shí)時(shí)模式和硬實(shí)時(shí)模式,設計時(shí)可以根據具體情況選擇其中的一種模式。

  對于每個(gè)具體的設計來(lái)說(shuō),需要對配置文件中的幾個(gè)部分進(jìn)行配置。

  (3) 人機界面模塊(HMI),用戶(hù)和軟PLC 之間的互動(dòng)模塊。通過(guò)友好的人機界面,用戶(hù)可以控制軟PLC 的調用和開(kāi)關(guān),同時(shí)可以查看軟PLC 各個(gè)狀態(tài)點(diǎn)的狀態(tài)。在Linux 下,可以使用GTK 或者TCL/TK 進(jìn)行設計。本設計由于整個(gè)數控系統的需要,采用了TCL/TK 進(jìn)行設計。因為軟PLC 的其他部分是用c語(yǔ)言進(jìn)行設計,因而在用tcl/tk設計的人機界面模塊和軟PLC 之間,需要設計一個(gè)TCL/TK 的擴展模塊作為兩種語(yǔ)言之間的接口,這樣在界面上就可以用TCL 語(yǔ)言調用C 語(yǔ)言編寫(xiě)的軟PLC 函數?,F階段本設計主要完成了常用的PLC 圖形語(yǔ)言梯形圖和兩種文本語(yǔ)言IL 語(yǔ)言和ST 語(yǔ)言的設計,因而人機界面可以分為兩種,梯形圖的編輯運行界面和文本編程的監控界面。

  

梯形圖界面

 ?、?梯形圖界面(如圖2)。在梯形圖界面上,用戶(hù)可自由拖動(dòng)如開(kāi)關(guān)、計時(shí)器等各種器件進(jìn)行自主編程,從而實(shí)現在線(xiàn)編程。在界面上右側是狀態(tài)欄,可以對各種狀態(tài)點(diǎn)的控制和狀態(tài)顯示,如將狀態(tài)點(diǎn)B1 狀態(tài)置1,則需單擊B1 前的小方框。界面的上方是菜單欄。用戶(hù)可通過(guò)菜單的選擇進(jìn)行編輯、保存、打開(kāi)等功能,編輯完畢,按下Run 鍵,TCL/TK 的底層程序將會(huì )檢測狀態(tài)點(diǎn)狀態(tài),并根據元件種類(lèi)進(jìn)行邏輯運算,這些直接使用TCL/TK 編程就可以實(shí)現。而Exit 鍵則是退出軟PLC,當按下該鍵時(shí),將會(huì )設置全局變量Quit = 1 并傳遞給關(guān)閉模塊Plcshutdown。關(guān)閉模塊將關(guān)閉所有在運行的軟PLC模塊,并殺死共享內存上的信號量。

 ?、?文本編程監控界面。文本語(yǔ)言相對不夠圖形語(yǔ)言直觀(guān),設計監控界面,可以從監控界面上調用所需要的文本程序,同時(shí)對各個(gè)狀態(tài)點(diǎn)的狀態(tài)進(jìn)行顯示和控制。

  (4) 文本編輯模塊,用戶(hù)PLC文本程序的編輯模塊,使用文本編輯器即可實(shí)現。用戶(hù)使用符合61131-3 標準的編程語(yǔ)言編寫(xiě)控制應用程序。編輯好的模塊將會(huì )被軟PLC 的編譯器所編譯,生成可執行代碼。

  (5) 邏輯模塊,軟PLC 的核心模塊,它包括IEC61131-3編譯器和數據處理模塊。IEC61131-3編譯器將編譯用戶(hù)編輯好的文本應用程序,首先將PLC 的代碼編譯成C 語(yǔ)言,然后再調用GCC 將程序和軟PLC的鏈接庫編譯成目標文件,同時(shí)顯示編譯結果的正確性,將編譯的錯誤信息及警告信息反饋給用戶(hù)。

  文本編輯模塊與編譯模塊在軟PLC 運行時(shí),不會(huì )作為調用模塊。軟PLC只調用最后生成的可執行模塊。數據處理模塊執行對各種浮點(diǎn)型數據的操作,功能包括PID控制、按一定的比例縮放數據大小等。

  (6) 通信模塊(Communication module),主要負責軟件的網(wǎng)絡(luò )通信協(xié)議等的實(shí)現,借助與操作系統的結合構建網(wǎng)絡(luò )服務(wù)器,實(shí)現強大的網(wǎng)絡(luò )服務(wù)功能,實(shí)現Modbus 等總線(xiàn)協(xié)議的總線(xiàn)控制功能。

  (7) I/O 模塊,軟PLC與物理IO連接的模塊。通過(guò)IO 模塊,軟PLC 的狀態(tài)點(diǎn)與硬件的IO 點(diǎn)一一對應,軟PLC 可以通過(guò)IO 模塊直接讀寫(xiě)PC104 上IO擴展板的IO 點(diǎn),實(shí)現對I O 點(diǎn)的讀取和控制。

  ( 8 ) 關(guān)閉模塊(Plcshutdown),由于本設計采用了多模塊化設計和共享內存通信機制。因而軟PLC退出,需要關(guān)閉所有正在運行的模塊和殺死共享內存上的信號量。關(guān)閉模塊提供了Quit的全局變量, 當Quit=1,將運行關(guān)閉模塊中的程序關(guān)閉所有的軟PLC 模塊和殺死共享內存的信號量。

  以上是根據需要設計的一些模塊,根據用戶(hù)需要還可以增加一些模塊,如記錄模塊,數據庫連接模塊等,這些模塊將會(huì )記錄軟PLC 的工作記錄和保存軟PLC 的數據記錄。這些有待進(jìn)一步的開(kāi)發(fā)和設計。設計好各個(gè)模塊,軟PLC 的工作流程可如圖3 所示。

  本設計是在Linux 下進(jìn)行設計,除HMI 模塊是使用TCL/TK 設計外,其他均是使用C 語(yǔ)言進(jìn)行編寫(xiě),在Linux 下使用GCC 進(jìn)行編譯。由于篇幅所限,此處不展示代碼。

  

軟PLC 的工作流程

  實(shí)例

  下面以一個(gè)簡(jiǎn)單的對3并口通道循環(huán)控制為例,說(shuō)明軟PLC 的工作流程。

  

梯形圖編程

  (1)梯形圖編程。從軟PLC 主界面進(jìn)入后,啟動(dòng)梯形圖編程,調用梯形圖編程的主程序。梯形圖編程共需要調用梯形圖界面模塊、關(guān)閉模塊、IO 模塊,這些均在配置文件中設置好,不需用戶(hù)進(jìn)行設置。配置文件主要部分定義如下:

  需運行的模塊: 主要狀態(tài)點(diǎn)定義:Ladder為擁有寫(xiě)的權利模塊,主程序啟動(dòng)后,將讀取對應的配置文件,運行所需模塊。

  用戶(hù)即可在梯形圖界面進(jìn)行編輯,編輯后的梯形圖程序如圖4所示。這是一個(gè)比較簡(jiǎn)單的程序,因而只需要使用3個(gè)計時(shí)器和幾個(gè)復位、置位輸出就可以實(shí)現功能。編輯好梯形圖程序后,按下Run 鍵,程序即可運行,并實(shí)現對IO 板上對應端口的控制。

  (2)文本IL 語(yǔ)言編程。開(kāi)始與梯形圖編程相同,從軟PLC 主界面進(jìn)入后,啟動(dòng)IL 語(yǔ)言編程,調用主程序。文本編程共需要調用監控界面模塊、邏輯目標程序模塊、關(guān)閉模塊、IO 模塊。邏輯目標模塊為用戶(hù)編輯好的IL 程序,并通過(guò)編譯器生成的可執行邏輯程序,用戶(hù)可在PC 機上編輯和編譯好邏輯程序,再移植到PC104 上進(jìn)行調用。配置文件主要部分定義如下:

  需運行的模塊:

  

需運行的模塊

  主要狀態(tài)點(diǎn)定義:

  

主要狀態(tài)點(diǎn)定義

  為編譯后的IL 程序模塊。由于篇幅關(guān)系,實(shí)現循環(huán)控制的IL 程序在此處不再列出。

  結束語(yǔ)

  軟PLC 具有強大的功能,在工業(yè)控制中發(fā)揮著(zhù)越來(lái)越重要的作用,是一項具有巨大潛力的技術(shù),其強大的網(wǎng)絡(luò )功能是傳統的PLC 無(wú)法比擬的。中國工業(yè)自動(dòng)化的水平相對國外來(lái)說(shuō)較低,技術(shù)含量少。因而國內企業(yè)要在激烈的競爭中立于不敗之地,必須增加生產(chǎn)的自動(dòng)化程度,提高產(chǎn)品的技術(shù)含量。發(fā)展自主產(chǎn)權的軟PLC 將對此問(wèn)題產(chǎn)生有力的推動(dòng)作用,也有助于我國PLC 企業(yè)發(fā)展本國市場(chǎng)并向外擴展。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程


pid控制器相關(guān)文章:pid控制器原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>