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