軟PLC運行系統(tǒng)的任務(wù)劃分及實現(xiàn)|加工中心
3.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所示。 3. 2. 1系統(tǒng)管理模塊系統(tǒng)管理模塊是軟PLC系統(tǒng)的“控制核心”,。軟PLC運行系統(tǒng)啟動后首先進入系統(tǒng)管理模塊,,利用InitialPLCObjectsG函數(shù)定義并初始化PLC全局對象, 接著創(chuàng)建任務(wù)管理線程JobSchedulerThread和其它任務(wù)線程,,在任務(wù)管理線程 JobSchedulerThread調(diào)度下各任務(wù)線程順序執(zhí)行,。當用戶程序循環(huán)結(jié)束后,系統(tǒng) 管理模塊刪除所有任務(wù)對象,、事件句柄,、釋放內(nèi)存空間等計算機資源,對應(yīng)工作 流程如圖3.3所不,。3. 2. 2程序執(zhí)行模塊程序執(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í)行指令,,當執(zhí)行 END指令后退出循環(huán),,完成一次用戶掃描程序,執(zhí)行流程如圖3.4所示,。 3. 2. 3通訊接口模塊通訊接口模塊是精工應(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是精工程序中的三個進程,,它們 通過訪問軟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所示,。3. 2.4 I/O接口模塊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被動式主站卡作為作為精工系統(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ù)傳遞過程。3. 2. 5存儲模塊存儲模塊存儲了軟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 數(shù)據(jù)類型 標識符 含義 功能 unsigned char I 輸入映像區(qū) 存儲所有輸入軟元件的狀態(tài) unsigned char Q 輸出映像區(qū) 存儲所有輸出軟元件的狀態(tài) unsigned char R 內(nèi)部存儲區(qū) 存儲軟PLC內(nèi)部的數(shù)據(jù) unsigned char T 定時器區(qū) 存儲定時器的數(shù)據(jù) unsigned char A 計數(shù)器區(qū) 存儲計數(shù)器的數(shù)據(jù) unsigned char L 本地通訊存儲區(qū) 存儲與Sercos的通信數(shù)據(jù) unsigned char P HMI通訊存儲區(qū) 存儲與人機界面HMI的通信數(shù)據(jù) unsigned char C CNC通訊存儲區(qū) 存儲與軟CNC的通信數(shù)據(jù) 軟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ù),,當執(zhí)行用戶程序時,,系統(tǒng) 從指令庫中調(diào)取操作函數(shù)完成對操作數(shù)的運算,有關(guān)軟PLC指令的設(shè)計與實現(xiàn) 詳見本章第四節(jié),。本文采摘自“五軸精工加工中心軟PLC控制系統(tǒng)的研究”,,因為編輯困難導(dǎo)致有些函數(shù)、表格,、圖片,、內(nèi)容無法顯示,有需要者可以在網(wǎng)絡(luò)中查找相關(guān)文章,!本文由海天精工整理發(fā)表文章均來自網(wǎng)絡(luò)僅供學(xué)習(xí)參考,,轉(zhuǎn)載請注明!