本發(fā)明涉及工業(yè)控制技術(shù),尤其涉及一種嵌入式plc引擎實現(xiàn)方法和引擎。
背景技術(shù):
專用控制器是一種為企業(yè)、設(shè)備量身定制的控制器,其功能單一、結(jié)構(gòu)精簡,且都是為具體的機器定制。近年來,隨著工控領(lǐng)域競爭的日益白熾化,即使可編程控制器(programmablelogiccontroller,plc)具有可靠性高、抗干擾能力強等優(yōu)點,越來越多的企業(yè)也開始因無法承受plc的高成本壓力,而逐步開始選用專用控制器來代替。然而采用專用控制器也將面臨可靠性和兼容性降低的風險。
現(xiàn)有技術(shù)通過對已有的專用控制器進行平臺化開發(fā)改造,升級形成嵌入式plc,使其兼有plc和專用控制器的優(yōu)點。現(xiàn)有的嵌入式plc的核心元件為plc引擎。plc引擎采用多任務(wù)操作系統(tǒng)的動態(tài)任務(wù)創(chuàng)建方式工作,所有線程的掃描周期相同,并根據(jù)是否處于使用狀態(tài)來對線程進行動態(tài)的資源分配。在處理不同實時時間要求任務(wù)的情況下,所有線程的掃描周期都需要滿足最高實時時間要求任務(wù),從而導致高配置線程處理低實時時間要求任務(wù)造成的資源浪費。
現(xiàn)有plc引擎的資源利用率不高。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種嵌入式plc引擎實現(xiàn)方法,包括:
獲取待處理數(shù)據(jù),并根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間;
獲取plc引擎中線程的掃描周期,所述plc引擎包含m個線程,所述m為大于或等于2的整數(shù),且至少兩個所述線程的掃描周期不相同;
根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程;
以所述目標線程處理所述待處理數(shù)據(jù)。
進一步地,所述m個線程的資源都是預(yù)配置的固定資源。
進一步地,所述plc引擎中線程的掃描周期中的最大掃描周期,預(yù)先設(shè)置為小于安全監(jiān)測任務(wù)模型的預(yù)設(shè)響應(yīng)時間;
所述根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程,包括:
所述待處理數(shù)據(jù)包括安全監(jiān)測任務(wù)模型時,根據(jù)所述最大掃描周期確定目標線程。
進一步地,所述根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程,包括:
在所述plc引擎中線程的掃描周期中,獲取小于所述預(yù)設(shè)響應(yīng)時間的最大掃描周期;
根據(jù)所述最大掃描周期確定所述目標線程。
進一步地,在所述以所述目標線程處理所述待處理數(shù)據(jù)之前,還包括:
確定系統(tǒng)時鐘計數(shù)是否到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值;
若系統(tǒng)時鐘計數(shù)到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值,則執(zhí)行所述以所述目標線程處理所述待處理數(shù)據(jù)。
本發(fā)明還提供了一種嵌入式plc引擎,包括:
第一獲取模塊,用于獲取待處理數(shù)據(jù),并根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間;
第二獲取模塊,用于獲取plc引擎中線程的掃描周期,所述plc引擎包含m個線程,所述m為大于或等于2的整數(shù),且至少兩個所述線程的掃描周期不相同;
目標線程確定模塊,用于根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程;
數(shù)據(jù)處理模塊,用于以所述目標線程處理所述待處理數(shù)據(jù)。
進一步地,所述m個線程的資源都是預(yù)配置的固定資源
進一步地,所述plc引擎中線程的掃描周期中的最大掃描周期,預(yù)先設(shè)置為小于安全監(jiān)測任務(wù)模型的預(yù)設(shè)響應(yīng)時間;
所述目標線程確定模塊具體用于:所述待處理數(shù)據(jù)包括安全監(jiān)測任務(wù)模型時,根據(jù)所述最大掃描周期確定目標線程。
進一步地,所述目標線程確定模塊具體用于:
在所述plc引擎中線程的掃描周期中,獲取小于所述預(yù)設(shè)響應(yīng)時間的最大掃描周期;
根據(jù)所述最大掃描周期獲取所述目標線程。
進一步地,還包括:觸發(fā)模塊,用于在所述以所述目標線程處理所述待處理數(shù)據(jù)之前,確定系統(tǒng)時鐘計數(shù)是否到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值;若系統(tǒng)時鐘計數(shù)到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值,則執(zhí)行所述以所述目標線程處理所述待處理數(shù)據(jù)。
本實施例通過獲取待處理數(shù)據(jù),并根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間;獲取plc引擎中線程的掃描周期,所述plc引擎包含m個線程,所述m為大于或等于2的整數(shù),且至少兩個所述線程的掃描周期不相同;根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程,以所述目標線程處理所述待處理數(shù)據(jù)。實現(xiàn)了線程的優(yōu)化分配,減少高消耗線程處理低實時性要求的任務(wù)而導致的資源浪費,提高線程的利用率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種嵌入式plc引擎實現(xiàn)方法流程示意圖;
圖2為本發(fā)明提供的另一種嵌入式plc引擎實現(xiàn)方法流程示意圖;
圖3為本發(fā)明提供的再一種嵌入式plc引擎實現(xiàn)方法流程示意圖;
圖4為本發(fā)明提供的再一種嵌入式plc引擎實現(xiàn)方法流程示意圖;
圖5本發(fā)明提供的一種嵌入式plc引擎結(jié)構(gòu)示意圖;
圖6本發(fā)明提供的另一種嵌入式plc引擎結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明提供的一種嵌入式plc引擎實現(xiàn)方法流程示意圖。如圖1所示的實施例包括:
s110,獲取待處理數(shù)據(jù),并根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間。
獲取所述待處理數(shù)據(jù)包括但不限于以下實現(xiàn)方式:
1)從外部接收所述待處理數(shù)據(jù);
2)從外部輸入的預(yù)處理數(shù)據(jù)中獲得所述待處理數(shù)據(jù);
3)響應(yīng)外部輸入的指令從預(yù)設(shè)數(shù)據(jù)庫中提取所述待處理數(shù)據(jù);
4)根據(jù)外部輸入的指令和預(yù)設(shè)數(shù)據(jù)庫而生成所述待處理數(shù)據(jù)。
所述待處理數(shù)據(jù)可以是包括安全門邏輯判斷任務(wù)模型、電磁閥控制任務(wù)模型、信號指示燈控制任務(wù)模型和安全監(jiān)測任務(wù)模型。由于不同的任務(wù)根據(jù)其實現(xiàn)的功能而具有不同的響應(yīng)時間要求,所述待處理數(shù)據(jù)對應(yīng)預(yù)設(shè)響應(yīng)時間。
所述根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間的一種實現(xiàn)方式是:所述待處理數(shù)據(jù)中包括待處理任務(wù)和預(yù)設(shè)響應(yīng)時間,獲取所述待處理數(shù)據(jù)的所述預(yù)設(shè)響應(yīng)時間。
所述根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間的另一種實現(xiàn)方式是:預(yù)設(shè)有待處理數(shù)據(jù)和預(yù)設(shè)響應(yīng)時間的第一對應(yīng)關(guān)系;根據(jù)獲取的所述待處理數(shù)據(jù)和所述第一對應(yīng)關(guān)系獲得所述待處理數(shù)據(jù)的預(yù)設(shè)響應(yīng)時間。
所述預(yù)設(shè)響應(yīng)時間是指要求在預(yù)設(shè)響應(yīng)時間內(nèi)完成所述任務(wù),例如:
安全門邏輯判斷任務(wù)模型對時間要求比較高,此類為高實時性要求的任務(wù),安全門邏輯判斷任務(wù)模型的預(yù)設(shè)響應(yīng)時間為2ms;
電磁閥控制任務(wù)模型為電磁閥驅(qū)動及行程到位檢測,屬于一般的動作邏輯處理,預(yù)設(shè)響應(yīng)時間為30ms;
信號指示燈控制任務(wù)模型屬于周期性的低速邏輯處理,預(yù)設(shè)響應(yīng)時間為0.7s;
安全監(jiān)測任務(wù)模型主要包括運行時的環(huán)境安全掃描以及plc邏輯的故障分析掃描,主要屬于安全機制處理,可以是在整個運行的過程中都保持執(zhí)行,但是對響應(yīng)快慢并沒有太高要求,此類為低實時性要求的任務(wù),安全監(jiān)測任務(wù)模型的預(yù)設(shè)響應(yīng)時間為5s。
上述任務(wù)模型具體可以包括用戶編輯的可執(zhí)行所需任務(wù)的邏輯程序。
s120,獲取plc引擎中線程的掃描周期,所述plc引擎包含m個線程,所述m為大于或等于2的整數(shù),且至少兩個所述線程的掃描周期不相同。
所述s110和s120的執(zhí)行順序可以相互交換,也可以同時執(zhí)行。
s120的一種實現(xiàn)方式中,所述m可取4,即plc引擎包含4個線程,每個線程的掃描周期設(shè)置為不相同。所述掃描周期為所述線程在循環(huán)執(zhí)行過程中完成一次輸入、處理、輸出所需要的時間,所述掃描周期反映所述線程的運行速度。線程的掃描周期越短,線程的運行速度越快,線程的系統(tǒng)開銷也越大。例如:
線程1的掃描周期為1ms級,其計數(shù)刻度為1ms,線程1在每一個時鐘計數(shù)刻度均調(diào)度一次;
線程2的掃描周期為10ms級,其計數(shù)刻度為10ms,線程2按計數(shù)刻度在每計數(shù)10次時調(diào)度一次;
線程3的掃描周期為100ms級,其計數(shù)刻度為100ms,線程3按計數(shù)刻度在每計數(shù)100次時調(diào)度一次;
線程4的掃描周期為1s級,其計數(shù)刻度為1s,線程4按計數(shù)刻度在每計數(shù)1000次時調(diào)度一次。
上述計數(shù)刻度是針對每個線程而言的,以線程2為例,其計數(shù)刻度為10ms,線程2僅僅在每10ms達到時獲得一次計數(shù),在計數(shù)為10ms~19ms時,所述線程2的都處于計數(shù)為10ms的狀態(tài),只有計數(shù)達到20ms后,線程2開始進入計數(shù)為20ms的狀態(tài)。所述計數(shù)刻度的一種實現(xiàn)方式可以是:線程2對應(yīng)設(shè)置有一計時變量t2,t2的計數(shù)刻度為10ms所述t2為10的倍數(shù)。在系統(tǒng)時鐘計數(shù)230ms時,所述t2為230ms。當系統(tǒng)時鐘計數(shù)為231ms、232ms、233ms、234ms、235ms、236ms、237ms、238ms、239ms時,所述t2仍為230ms,線程2處于t2為230ms的狀態(tài)。直到系統(tǒng)時鐘計數(shù)為240ms時,t2計數(shù)跳變?yōu)?40ms,線程2進入t2為240ms的狀態(tài)。
在包含所述線程1、線程2、線程3、線程4的plc引擎中,系統(tǒng)時鐘的計數(shù)刻度最大為線程1的計數(shù)刻度,即系統(tǒng)時鐘的計數(shù)刻度最大為1ms。所述系統(tǒng)時鐘的最大計數(shù)刻度是由其驅(qū)動的線程中,具有最小掃描周期的線程決定。
本實施中4個線程的掃描周期都不相同,但本發(fā)明不限于此,也可以設(shè)置相同等級的掃描周期或完全相同的掃描周期,在此不做限定。
本實施例中所述的線程為根據(jù)嵌入式plc系統(tǒng)應(yīng)用對象需求劃分的多個不同實時等級的邏輯任務(wù),由于嵌入式plc為根據(jù)用戶需求定制的專用plc,其任務(wù)可預(yù)測,因此,通過本發(fā)明的引擎設(shè)計方法可最大限度充分發(fā)揮軟硬件特性,提高系統(tǒng)利用效率,降低成本。
s130,根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程。
所述線程的掃描周期的差異導致所述線程產(chǎn)生的系統(tǒng)開銷的不同,s130選用掃描周期與預(yù)設(shè)響應(yīng)時間匹配的線程作為目標線程處理,優(yōu)化線程分配,減少高消耗線程處理低實時性要求的任務(wù)而導致的資源浪費,提高線程的利用率。
所述s130具體可以是,根據(jù)所述待處理數(shù)據(jù)的預(yù)設(shè)響應(yīng)時間所對應(yīng)的時間等級,來確定處理所述待處理數(shù)據(jù)的目標線程。例如,在所述待處理數(shù)據(jù)包含安全門邏輯判斷任務(wù)模型時,安全門邏輯判斷任務(wù)模型的預(yù)設(shè)響應(yīng)時間為2ms,即處理時間最多不能超過2ms。如果選用10ms級掃描周期的線程必然無法滿足其預(yù)設(shè)響應(yīng)時間。因此所述安全門邏輯判斷任務(wù)模型對應(yīng)的目標線程為1ms級掃描周期的線程1,所述線程1的掃描時間能夠在2ms內(nèi)完成所述安全門邏輯判斷任務(wù)模型。又例如,在所述待處理數(shù)據(jù)包含信號指示燈控制任務(wù)模型時,根據(jù)所述信號指示燈控制任務(wù)模型的預(yù)設(shè)響應(yīng)時間為0.7s可知,目標線程的掃描周期應(yīng)接近并小于0.7s,因此確定100ms級掃描周期的線程3為所述信號指示燈控制任務(wù)模型的目標線程。相對于現(xiàn)有技術(shù)中采用同樣掃描周期的線程處理不同預(yù)設(shè)響應(yīng)時間的待處理數(shù)據(jù),本實施例提高了系統(tǒng)軟硬件資源的利用率,減少了資源浪費,進而降低了硬件成本。
s140,以所述目標線程處理所述待處理數(shù)據(jù)。
在目標線程確定后,以所述目標線程來處理所述待處理數(shù)據(jù),在有多個線程相同掃描周期的實施例中,可以優(yōu)先選擇空閑的線程處理所述待處理數(shù)據(jù)。本實施例中,在所述s110之前還可以包括線程設(shè)置的步驟。在設(shè)置線程的過程中,根據(jù)可能獲取的待處理數(shù)據(jù)來確定各個線程的掃描周期。例如,針對門禁控制系統(tǒng),僅僅需要處理安全門邏輯判斷任務(wù)模型和安全監(jiān)測任務(wù)模型,則無需設(shè)置上述線程2和線程3對應(yīng)的掃描周期,可以將線程1、線程2和線程3都設(shè)置為1ms級掃描周期,而線程4都設(shè)置為1s級掃描周期。從而進一步提高線程的利用率。
本實施例通過獲取待處理數(shù)據(jù),并根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間;獲取plc引擎中線程的掃描周期,所述plc引擎包含m個線程,所述m為大于或等于2的整數(shù),且至少兩個所述線程的掃描周期不相同;根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程,以所述目標線程處理所述待處理數(shù)據(jù)。實現(xiàn)了線程的優(yōu)化分配,減少高消耗線程處理低實時性要求的任務(wù)而導致的資源浪費,提高線程的利用率。
在所述m個線程的一種實現(xiàn)方式中,所述m個線程的資源都是預(yù)配置的固定資源。所述m個線程之間不存在資源共享,各自獨立使用固定資源進行工作,線程之間的數(shù)據(jù)傳輸則可以通過數(shù)據(jù)耦合實現(xiàn)。
相對于現(xiàn)有技術(shù)中對所有線程動態(tài)分配資源、動態(tài)任務(wù)創(chuàng)建方式的資源配置方案,本實施例為每個線程預(yù)配置固定資源,降低了由資源回收及資源分配失敗導致的系統(tǒng)卡頓等問題發(fā)生的可能,提高了系統(tǒng)的安全性和穩(wěn)定性。
圖2為本發(fā)明提供的另一種嵌入式plc引擎實現(xiàn)方法流程示意圖。在圖1所示實施例的基礎(chǔ)上,圖2所示的實施例中,所述plc引擎中線程的掃描周期中的最大掃描周期,預(yù)先設(shè)置為小于安全監(jiān)測任務(wù)模型的預(yù)設(shè)響應(yīng)時間;所述s130包括:
s131,所述待處理數(shù)據(jù)包括安全監(jiān)測任務(wù)模型時,根據(jù)所述最大掃描周期確定目標線程。
具體地,可以為所述安全監(jiān)測任務(wù)模型專門預(yù)先設(shè)置一具有最大掃描周期的安全線程,所述最大掃描周期由所述安全檢測任務(wù)模型的預(yù)設(shè)響應(yīng)時間確定,最大掃描周期預(yù)先設(shè)置為小于安全監(jiān)測任務(wù)模型的預(yù)設(shè)響應(yīng)時間。
所述s131的一種實現(xiàn)方式為:在檢測到所述待處理數(shù)據(jù)包括安全監(jiān)測任務(wù)模型時,直接以最大掃描周期的線程作為所述安全監(jiān)測任務(wù)模型的目標線程。
本實施例中,通過在所述待處理數(shù)據(jù)包括安全監(jiān)測任務(wù)模型時,根據(jù)所述最大掃描周期確定目標線程,提高了確定安全監(jiān)測任務(wù)模型的目標線程的效率。
圖3為本發(fā)明提供的再一種嵌入式plc引擎實現(xiàn)方法流程示意圖。在圖1或圖2所示實施例的基礎(chǔ)上,圖3所示的實施例中所述s130包括:
s132,在所述plc引擎中線程的掃描周期中,獲取小于所述預(yù)設(shè)響應(yīng)時間的最大掃描周期。
具體地,可以建立掃描周期與線程的對應(yīng)關(guān)系。通過遍歷所述對應(yīng)關(guān)系,將所述掃描周期與所述預(yù)設(shè)響應(yīng)時間進行比較,即可獲取小于所述預(yù)設(shè)響應(yīng)時間的掃描周期集合,再從獲取的掃描周期集合中選取出最大掃描周期。
s133,根據(jù)所述最大掃描周期確定所述目標線程。
本實施例通過在所述plc引擎中線程的掃描周期中,獲取小于所述預(yù)設(shè)響應(yīng)時間的最大掃描周期,根據(jù)所述最大掃描周期確定所述目標線程,實現(xiàn)了以最接近預(yù)設(shè)響應(yīng)時間的掃描周期確定目標線程,提高了線程的使用效率。
圖4為本發(fā)明提供的再一種嵌入式plc引擎實現(xiàn)方法流程示意圖。在圖1~3所示實施例的基礎(chǔ)上,圖4所示的實施例中,在所述s140之前,還包括目標線程的觸發(fā)過程:
s141,確定系統(tǒng)時鐘計數(shù)是否到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值。
每個線程都預(yù)設(shè)有觸發(fā)計數(shù)值,具體可以是一計數(shù)變量,所述計數(shù)變量的計數(shù)刻度由所述線程的掃描周期確定。例如所述線程4的掃描周期為1s級,則所述線程4的計數(shù)變量的計數(shù)刻度為1s。所述系統(tǒng)時鐘的計數(shù)刻度由線程的最小掃描周期確定,本實施例中所述系統(tǒng)時鐘的計數(shù)刻度為1ms,在系統(tǒng)時鐘計數(shù)1000ms時,所述線程4的計數(shù)變量計數(shù)1s。若線程4為目標線程,若所述線程4的預(yù)設(shè)觸發(fā)計數(shù)值為5s,則在所述線程4的計數(shù)變量的計數(shù)達到5s時,確定系統(tǒng)時鐘計數(shù)到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值。所述計數(shù)變量的計數(shù)開始時刻可以是嵌入式plc完成系統(tǒng)初始化后各線程同時開始,也可以是預(yù)設(shè)的起算時刻,所述預(yù)設(shè)的起算時刻例如是在接收到嵌入式plc外部輸入信號觸發(fā)時,或者是接收到遠程通訊時等。不同線程的計數(shù)變量的計數(shù)開始時刻可以相同,也可以不同,在此不做限定。
系統(tǒng)時鐘可以采用嵌入式cpu的通用定時器或系統(tǒng)的滴答時鐘實現(xiàn)。系統(tǒng)時鐘的計數(shù)刻度由嵌入式plc所應(yīng)用的場合決定。對于一般的工業(yè)場合,系統(tǒng)時鐘的計數(shù)刻度可以是1ms級;而對于需要高速運動控制的場合,系統(tǒng)時鐘的計數(shù)刻度可以是0.1ms級,甚至更低。系統(tǒng)時鐘的計數(shù)刻度越小,系統(tǒng)開銷越大。本實施例中,所述系統(tǒng)時鐘的計數(shù)采用中斷方式實現(xiàn)精確定時,每一個計數(shù)刻度均產(chǎn)生一次時鐘中斷。
s142,若系統(tǒng)時鐘計數(shù)到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值,則執(zhí)行所述以所述目標線程處理所述待處理數(shù)據(jù)。
本實施例以到達所述預(yù)設(shè)觸發(fā)計數(shù)值為目標線程開始處理待處理數(shù)據(jù)的觸發(fā)條件,以最小的系統(tǒng)開銷實現(xiàn)了各線程的按需實時調(diào)度,實現(xiàn)了對所述待處理數(shù)據(jù)的開始處理時間的精確控制。
在上述實施例中,在所述s110之前,還包括初始化過程:
s101,掃描硬件獲取硬件邏輯信息,并確認所述硬件邏輯信息是否通過安全檢測;
s102,若所述硬件邏輯信息通過安全檢測,則加載操作系統(tǒng)的核心程序和線程調(diào)度系統(tǒng),所述線程調(diào)度系統(tǒng)包括所述m個線程;
s103,加載plc驅(qū)動程序;
s104,加載所述待處理數(shù)據(jù)。
本實施例通過初始化過程對plc硬件系統(tǒng)進行安全檢測和數(shù)據(jù)加載。
圖5本發(fā)明提供的一種嵌入式plc引擎結(jié)構(gòu)示意圖。圖5所示的實施例包括:
第一獲取模塊51,用于獲取待處理數(shù)據(jù),并根據(jù)所述待處理數(shù)據(jù)獲取預(yù)設(shè)響應(yīng)時間;
第二獲取模塊52,用于獲取plc引擎中線程的掃描周期,所述plc引擎包含m個線程,所述m為大于或等于2的整數(shù),且至少兩個所述線程的掃描周期不相同;
目標線程確定模塊53,用于根據(jù)所述掃描周期和預(yù)設(shè)響應(yīng)時間,確定目標線程;
數(shù)據(jù)處理模塊54,用于以所述目標線程處理所述待處理數(shù)據(jù)。
在上述實施例中,所述m個線程的資源都是預(yù)配置的固定資源
在上述實施例中,所述plc引擎中線程的掃描周期中的最大掃描周期,預(yù)先設(shè)置為小于安全監(jiān)測任務(wù)模型的預(yù)設(shè)響應(yīng)時間;
所述目標線程確定模塊53具體用于:所述待處理數(shù)據(jù)包括安全監(jiān)測任務(wù)模型時,根據(jù)所述最大掃描周期確定目標線程。
在上述實施例中,所述目標線程確定模塊53具體用于:
在所述plc引擎中線程的掃描周期中,獲取小于所述預(yù)設(shè)響應(yīng)時間的最大掃描周期;
根據(jù)所述最大掃描周期獲取所述目標線程。
圖5所示實施例的裝置對應(yīng)地可用于執(zhí)行圖1~圖3所示方法實施例中的步驟,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖6本發(fā)明提供的另一種嵌入式plc引擎結(jié)構(gòu)示意圖。在圖5所示實施例的基礎(chǔ)上,圖6所示實施例還包括:
觸發(fā)模塊61,用于在所述以所述目標線程處理所述待處理數(shù)據(jù)之前,確定系統(tǒng)時鐘計數(shù)是否到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值;若系統(tǒng)時鐘計數(shù)到達所述目標線程的預(yù)設(shè)觸發(fā)計數(shù)值,則執(zhí)行所述以所述目標線程處理所述待處理數(shù)據(jù)。
所述plc引擎還包括始終刻度計數(shù)器,用于提供所述系統(tǒng)時鐘的計數(shù)。
圖6所示實施例的裝置對應(yīng)地可用于執(zhí)行圖1~圖4所示方法實施例中的步驟,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
在上述實施例中,還包括初始化模塊,用于掃描硬件獲取硬件邏輯信息,并確認所述硬件邏輯信息是否通過安全檢測;若所述硬件邏輯信息通過安全檢測,則加載操作系統(tǒng)的核心程序和線程調(diào)度系統(tǒng),所述線程調(diào)度系統(tǒng)包括所述m個線程;加載plc驅(qū)動程序;加載所述待處理數(shù)據(jù)。
所述plc引擎還包括數(shù)據(jù)接口和plc驅(qū)動程序接口,所述plc引擎通過所述數(shù)據(jù)接口獲取所述待處理數(shù)據(jù),通過所述plc驅(qū)動程序接口獲取所述plc驅(qū)動程序。本實施例通過初始化模塊對plc硬件系統(tǒng)進行安全檢測和數(shù)據(jù)加載。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。