技術(shù)文章
軟PLC運行系統(tǒng)的任務(wù)劃分及實現(xiàn)
閱讀:119 發(fā)布時間:2020-8-123.2軟PLC運行系統(tǒng)的任務(wù)劃分及實現(xiàn)
由2.4節(jié)可知,本軟PLC運行系統(tǒng)由通信接口模塊、系統(tǒng)管理模塊、程序執(zhí) 行模塊、存儲模塊和I/O接口模塊五個模塊組成,每個模塊用于完成功能。 根據(jù)軟PLC運行系統(tǒng)的工作原理對每個模塊的任務(wù)進行了劃分:
與軟PLC開發(fā)系統(tǒng)的通訊任務(wù)、與軟CNC的通訊任務(wù)、與HMI界面的通 訊任務(wù)、普通程序執(zhí)行任務(wù)、快速程序執(zhí)行任務(wù)、用戶程序存儲任務(wù)、指令存儲 任務(wù)、數(shù)據(jù)存儲任務(wù)和I/O讀、寫任務(wù)以及系統(tǒng)管理任務(wù),軟PLC運行系統(tǒng)任 務(wù)組成如圖3.1所示。
系統(tǒng)管理模塊是軟PLC系統(tǒng)的“控制核心”。軟PLC運行系統(tǒng)啟動后首先
進入系統(tǒng)管理模塊,利用InitialPLCObjectsG函數(shù)定義并初始化PLC全局對象, 接著創(chuàng)建任務(wù)管理線程JobSchedulerThread和其它任務(wù)線程,在任務(wù)管理線程 JobSchedulerThread調(diào)度下各任務(wù)線程順序執(zhí)行。當(dāng)用戶程序循環(huán)結(jié)束后,系統(tǒng) 管理模塊刪除所有任務(wù)對象、事件句柄、釋放內(nèi)存空間等計算機資源,對應(yīng)工作 流程如圖3.3所不。
程序執(zhí)行模塊通過解釋和執(zhí)行PLC指令函數(shù)完成相應(yīng)的邏輯運算,分為快 速程序執(zhí)行和普通程序執(zhí)行兩個子模塊。前者用于處理實時性要求較高的信號, 如急停信號、限位開關(guān)信號等等,執(zhí)行周期5ms;后者則用來處理一般的循環(huán)掃 描任務(wù),執(zhí)行周期20ms。它們是兩個獨立的任務(wù)線程,執(zhí)行指令函數(shù)的流程相 同:先從指令存儲模塊讀取PLC指令、判斷指令類型,接著調(diào)取軟PLC指令函 數(shù)進行運算,后將運算結(jié)果保存在數(shù)據(jù)存儲模塊,然后循環(huán)執(zhí)行指令,當(dāng)執(zhí)行 END指令后退出循環(huán),完成一次用戶掃描程序,執(zhí)行流程如圖3.4所示。
通訊接口模塊是數(shù)控應(yīng)用程序之間通訊的通道,用于軟PLC運行系統(tǒng)與開 發(fā)系統(tǒng)、軟CNC、人機界面HMI以及其它第三方程序的數(shù)據(jù)交換。其中軟PLC
運行系統(tǒng)與開發(fā)系統(tǒng)采用COM^COM方式進行通訊,即開發(fā)系統(tǒng)作為客戶端向 運行系統(tǒng)發(fā)送用戶程序,運行系統(tǒng)作為服務(wù)器端接收用戶程序并反饋軟PLC的 運行狀態(tài)。
軟PLC運行系統(tǒng)與軟CNC、人機界面HMI是數(shù)控程序中的三個進程,它們 通過訪問軟PLC運行系統(tǒng)創(chuàng)建的共享內(nèi)存區(qū)PLC_CNCBuffer、PLC_HMIBuffer 進行數(shù)據(jù)交換。由于軟PLC運行系統(tǒng)和軟CNC都是運行在RTSS環(huán)境下兩個進 程,所以利用RTX提供的IPC (進程通訊對象)可實現(xiàn)數(shù)據(jù)通訊任務(wù);而人機 界面HMI是運行在Win32環(huán)境下的非實時應(yīng)用程序,它與軟PLC運行系統(tǒng)是不 同控制內(nèi)核下的兩個進程,由于Win32進程優(yōu)先級低于任何一個RTX進程,所 以在軟PLC運行系統(tǒng)啟動后人機界面HMI進程無法獲得CPU資源將數(shù)據(jù)寫入 共享內(nèi)存PLC_HMffiuffer,因此需要解決Win32程序與RTX程序CPU資源的 分配問題,通常有以下兩種方法:
定時分配CPU資源
定時分配CPU資源是一個事件,一旦觸發(fā)該事件RTX子系統(tǒng)就中斷在 正在運行的軟PLC任務(wù)線程,將CPU資源讓給Win32環(huán)境下的應(yīng)用程序,使人 機界面進程將數(shù)據(jù)寫入共享內(nèi)存PLC_HMffiuffer中。中斷事件對象由軟PLC運 行系統(tǒng)利用函數(shù)RtCreateEvent〇創(chuàng)建,中斷等待的時間由用戶設(shè)置。
使用互斥體對象
互斥體對象是操作系統(tǒng)內(nèi)核的一種數(shù)據(jù)結(jié)構(gòu),只允許獲得該對象的任務(wù)線程 訪問共享資源。利用互斥這一特性,首先在人機界面HMI程序中利用函數(shù) RtCreateMutexG創(chuàng)建一個互斥體對象,雖然軟PLC運行系統(tǒng)的優(yōu)先級高于人機 界面HMI進程,但軟PLC任務(wù)線程無法訪問共享內(nèi)存PLC_HMIBuffer中數(shù)據(jù), 必須等待HMI線程調(diào)用RtCloseHandleO函數(shù)釋放掉互斥對象句柄 h_mutexHMIPLC后才能訪問該區(qū)域,在等待的這個時間片內(nèi)Win32應(yīng)用程序獲 得CPU資源,人機界面HMI線程將數(shù)據(jù)寫入共享內(nèi)存PLC_HMIBuffer,并讀取 軟PLC給人機界面的數(shù)據(jù),顯示在人機界面上。
相比較定時分配CPU資源,使用互斥體對象等待的時間由操作系統(tǒng)分配, 占用軟PLC循環(huán)掃描的時間較少,因此本軟PLC運行系統(tǒng)采用互斥體對象實現(xiàn) 軟PLC與人機界面HMI之間的通訊任務(wù)。
由于通訊過程類似,這里僅以軟PLC運行系統(tǒng)與人機界面HMI的通訊為例 說明其執(zhí)行流程,如圖3.5所示。
I/O接口模塊是軟PLC系統(tǒng)與外部I/O輸入輸出模塊進行數(shù)據(jù)交換的通道, 用于將I/O輸入輸出模塊采集到的機床信號讀入軟PLC輸入映像區(qū),同時將輸 出映像區(qū)中狀態(tài)輸出給I/O端口。其執(zhí)行過程分為兩步:第一,根據(jù)軟PLC數(shù) 據(jù)存儲區(qū)中I/O端子分配表與對應(yīng)物理節(jié)點變量建立映射關(guān)系,完成端口配置; 第二,調(diào)用I/O接口模塊的讀寫任務(wù)線程,在輸入刷新和輸出刷新階段完成與外 部I/O輸入輸出模塊的數(shù)據(jù)交換。
軟PLC系統(tǒng)采用SoftSERCANS被動式主站卡作為作為數(shù)控系統(tǒng)的接口,所 以I/O輸入輸出模塊先將采集到的數(shù)據(jù)信息存儲在SERCOS I/O從站,由從站向 主站發(fā)送中斷請求,將數(shù)據(jù)包發(fā)送給主站,軟PLCI/0接口模塊通過讀寫 SoftSERCANS被動式主站卡雙口存儲區(qū)中數(shù)據(jù)與外部I/O模塊進行數(shù)據(jù)交換, 本文第四章對軟PLC控制系統(tǒng)接口進行了詳細的分析,這里只給出它們數(shù)據(jù)傳遞過程。
存儲模塊存儲了軟PLC運行系統(tǒng)中所有的數(shù)據(jù)、操作指令和數(shù)據(jù)地址,可 表示為:存儲模塊=數(shù)據(jù)地址+數(shù)據(jù)+操作指令,因此分為:用戶程序存儲 區(qū)、數(shù)據(jù)存儲區(qū)和指令存儲區(qū)。
在執(zhí)行用戶程序前,程序執(zhí)行模塊將每一個軟元件的信息存儲到指令鏈表中 供執(zhí)行程序時調(diào)用。
數(shù)據(jù)存儲區(qū)
數(shù)據(jù)存儲區(qū)保存了所有軟元件的狀態(tài),按照數(shù)據(jù)的來源分為:輸入映像區(qū)(I)、 輸出映像區(qū)(Q)、軟PLC內(nèi)部存儲區(qū)(R)、定時器區(qū)(T)、計數(shù)器區(qū)(A)、本地通訊 存儲區(qū)(L)、HMI通訊存儲區(qū)(P)和CNC通訊存儲區(qū)(C),每個區(qū)域所包含的信息 見表3.1。
表3.1軟PLC運行系統(tǒng)數(shù)據(jù)存儲區(qū) Table 3.1 Data store of SoftPLC running system
|
軟PLC運行系統(tǒng)以結(jié)構(gòu)體的形式為每個存儲區(qū)域分了配內(nèi)存空間,除軟PLC 內(nèi)部存儲區(qū)、輸入映像區(qū)、輸出映像區(qū)外,其余每個存儲區(qū)域有256個軟邏輯位供外部的物理元件使用。以本地通訊存儲區(qū)為例,它存儲了軟PLC與Sercos的 通訊數(shù)據(jù)。
(3)指令存儲區(qū)
指令存儲區(qū)存儲了軟PLC系統(tǒng)的全部指令函數(shù),當(dāng)執(zhí)行用戶程序時,系統(tǒng) 從指令庫中調(diào)取操作函數(shù)完成對操作數(shù)的運算,有關(guān)軟PLC指令的設(shè)計與實現(xiàn) 詳見本章第四節(jié)。
本文采摘自“五軸數(shù)控加工中心軟PLC控制系統(tǒng)的研究”,因為編輯困難導(dǎo)致有些函數(shù)、表格、圖片、內(nèi)容無法顯示,有需要者可以在網(wǎng)絡(luò)中查找相關(guān)文章!本文由伯特利數(shù)控整理發(fā)表文章均來自網(wǎng)絡(luò)僅供學(xué)習(xí)參考,轉(zhuǎn)載請注明!