本發(fā)明涉及工業(yè)自動(dòng)化領(lǐng)域,尤指一種遙控返信讀取的方法和裝置。
背景技術(shù):
輪詢協(xié)議是工業(yè)自動(dòng)化領(lǐng)域廣泛應(yīng)用的通信協(xié)議,常見的工業(yè)自動(dòng)化領(lǐng)域輪詢協(xié)議如:modbus、iec60870-5-101、iec60870-5-103等等,這些協(xié)議已經(jīng)成為通用工業(yè)標(biāo)準(zhǔn),在自動(dòng)化通信領(lǐng)域廣泛應(yīng)用。輪詢協(xié)議通常也是總線型(bus)協(xié)議,通信使用主(master,也稱主站)—從(slave,也稱從站)技術(shù),即在同一時(shí)刻,僅一個(gè)主設(shè)備能初始化傳輸(查詢,也叫請(qǐng)求,依次查詢稱為輪詢),從設(shè)備根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。主設(shè)備可單獨(dú)和從設(shè)備通信,有時(shí),也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。
如圖1所示,主站設(shè)備在準(zhǔn)備新一次的請(qǐng)求時(shí),一開始會(huì)優(yōu)先檢查是否有遙控命令需要發(fā)送,如果有,則獲得遙控信息并生成遙控報(bào)文,發(fā)送遙控報(bào)文并隨后啟動(dòng)接收超時(shí)定時(shí)器,如果在超時(shí)時(shí)間內(nèi)成功收到從站設(shè)備應(yīng)答,則表明此次遙控發(fā)送成功了,但這只能說明從站設(shè)備成功接收到了命令,是否成功還需要隨后主站設(shè)備通過發(fā)送請(qǐng)求所讀取到的真正遙控返信點(diǎn)才能看出。因?yàn)?,遙控處理通常為異步應(yīng)答,即從站設(shè)備收到遙控命令后,并檢查當(dāng)前是否滿足執(zhí)行遙控所需條件,然后會(huì)先給主站設(shè)備發(fā)送相應(yīng)的應(yīng)答,隨后才會(huì)執(zhí)行遙控,如果遙控成功了,會(huì)將相應(yīng)的遙控返信點(diǎn)的信息更新至從站數(shù)據(jù)區(qū)中供主站設(shè)備輪詢更新,只有當(dāng)主站設(shè)備輪詢到該信息時(shí),主站設(shè)備方能知悉遙控真正成功了,存在讀取的遙控返信延遲時(shí)間長、獲得返信時(shí)刻的時(shí)間波動(dòng)范圍大的問題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種遙控返信的方法,能夠縮短讀取遙控返信的延遲時(shí)間、減小返信時(shí)刻的時(shí)間波動(dòng)范圍,實(shí)現(xiàn)遙控返信的讀取時(shí)間與設(shè)備數(shù)量無關(guān),與輪詢表大小無關(guān)。
為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種遙控返信讀取的方法,包括:
主站設(shè)備向從站設(shè)備發(fā)送遙控命令;
到達(dá)所述遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請(qǐng)求,以獲取所述從站設(shè)備的遙控返信。
為了達(dá)到本發(fā)明目的,本發(fā)明還提供了一種遙控返信讀取的裝置,應(yīng)用于主站設(shè)備,包括:
第一發(fā)送模塊,用于向從站設(shè)備發(fā)送遙控命令;
第二發(fā)送模塊,用于到達(dá)所述遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請(qǐng)求,以獲取所述從站設(shè)備的遙控返信。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括:主站設(shè)備向從站設(shè)備發(fā)送遙控命令并開始計(jì)時(shí);到達(dá)所述遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請(qǐng)求,以獲取所述從站設(shè)備的遙控返信。本發(fā)明實(shí)施例針對(duì)使用現(xiàn)有技術(shù)的遙控方法出現(xiàn)的設(shè)備數(shù)量越多、輪詢表越大,讀取返信的延遲時(shí)間越長的缺點(diǎn),進(jìn)行了優(yōu)化,遙控返信的讀取時(shí)間與設(shè)備數(shù)量完全無關(guān),與輪詢表大小完全無關(guān),實(shí)現(xiàn)延時(shí)少、波動(dòng)小的快速穩(wěn)定的遙控返信,進(jìn)而提升自動(dòng)化水平。
進(jìn)一步地,通過配置每個(gè)遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間,可以根據(jù)設(shè)備實(shí)際情況對(duì)每個(gè)遙控命令對(duì)應(yīng)的返信讀取延遲進(jìn)行精準(zhǔn)配置,提高了遙控返信的讀取效率。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
附圖用來提供對(duì)本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請(qǐng)的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。
圖1為現(xiàn)有含遙控的輪詢流程圖;
圖2為輪詢協(xié)議的輪詢表示意圖;
圖3為本發(fā)明實(shí)施例的遙控返信讀取的方法流程圖;
圖4為本發(fā)明應(yīng)用示例的含遙控的輪詢流程圖;
圖5為本發(fā)明實(shí)施例的遙控返信讀取的裝置示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
在本文中,遙控返信,含義為自動(dòng)化系統(tǒng)遙控操作(執(zhí)行分/合等)變位信號(hào)返送,即從站設(shè)備的遙控結(jié)果反饋信息;遙控返信點(diǎn),指從站設(shè)備對(duì)執(zhí)行遙控命令的結(jié)果所需反饋信息的邏輯單位(例如,分/合狀態(tài))。當(dāng)從站設(shè)備接收到主站設(shè)備的遙控命令,執(zhí)行該遙控命令后,將遙控返信點(diǎn)的信息更新至從站數(shù)據(jù)區(qū),從站設(shè)備接收到主站設(shè)備發(fā)送遙控返信請(qǐng)求時(shí),查詢數(shù)據(jù)區(qū)數(shù)據(jù),向主站設(shè)備返回應(yīng)答消息,該應(yīng)答消息中攜帶遙控返信。
在不同的輪詢協(xié)議中,技術(shù)術(shù)語的叫法可能有所不同,可以把輪詢協(xié)議中所有讀取上行數(shù)據(jù)的請(qǐng)求統(tǒng)稱為三遙請(qǐng)求(遙信、遙測(cè)和遙脈),所有設(shè)備的三遙請(qǐng)求的匯總,可以簡稱為輪詢表。在現(xiàn)有技術(shù)中,遙控返信點(diǎn)就涵蓋在輪詢表(如圖2所示,記輪詢表中請(qǐng)求總數(shù)為n)中,這個(gè)包含了遙控返信點(diǎn)的請(qǐng)求(以下簡稱這個(gè)請(qǐng)求為rx)通常就是一個(gè)普通的請(qǐng)求,和其他請(qǐng)求是一個(gè)優(yōu)先級(jí),都得排隊(duì)等待輪詢。換言之,發(fā)送遙控命令后,主站設(shè)備仍然會(huì)按照之前的輪詢次序依次從輪詢表中獲得下一次需要發(fā)送的請(qǐng)求。所以,主站在發(fā)送遙控命令后一直到從主站獲得遙控返信的間隔時(shí)間(記為ts)的波動(dòng)范圍是ts最小~ts最大,其中,
ts最小=設(shè)備遙控成功的時(shí)間(以下記為tx)+遙控返信請(qǐng)求發(fā)出后直到收到應(yīng)答所經(jīng)歷的時(shí)間(以下記為tr);其中,tx的含義為主站設(shè)備發(fā)送遙控后一直到從站設(shè)備給設(shè)備數(shù)據(jù)區(qū)中的遙控返信點(diǎn)置值成功所經(jīng)歷的時(shí)間;
ts最大=tx+(n×請(qǐng)求間隔)+tr;
其中,一個(gè)tcp局域網(wǎng)的典型tr時(shí)間為10毫秒,因此,tr可以忽略不計(jì),所以,ts最小≈tx,ts最大≈tx+(n×請(qǐng)求間隔)。
ts的期望值是:tx+(n×請(qǐng)求間隔/2)。
以串口modbusrtu(remoteterminalunit,遠(yuǎn)程終端單元)通信為例,一個(gè)典型的接入例子:一個(gè)串口接入10臺(tái)從站設(shè)備,每個(gè)從站設(shè)備有6個(gè)請(qǐng)求,請(qǐng)求間隔時(shí)間為100毫秒,那么請(qǐng)求總數(shù)為n=10×6=60,(n×請(qǐng)求間隔/2)=60×100/2毫秒=3秒,即ts期望值是tx+3秒,最壞需要tx+6秒,波動(dòng)范圍是tx~tx+6秒。
工業(yè)自動(dòng)化領(lǐng)域,衡量自動(dòng)化水平高低的一個(gè)重要指標(biāo)就是遙控反饋性能,顯然以上的遙控反饋指標(biāo)ts有點(diǎn)慢了,而且反饋的快慢還需憑運(yùn)氣(波動(dòng)范圍大),不能確定地事先預(yù)測(cè)。而且,設(shè)備數(shù)量越多、輪詢表越大,讀取的返信延遲越長、獲得返信時(shí)刻的波動(dòng)范圍越大。
本發(fā)明實(shí)施例針對(duì)使用現(xiàn)有技術(shù)的遙控方法出現(xiàn)的設(shè)備數(shù)量越多、輪詢表越大,ts的延遲越長、獲得返信時(shí)刻的波動(dòng)范圍越大的缺點(diǎn),進(jìn)行了針對(duì)性的優(yōu)化。
如圖3所示,本發(fā)明實(shí)施例的遙控返信讀取的方法,可應(yīng)用于輪詢協(xié)議,包括:
步驟101,主站設(shè)備向從站設(shè)備發(fā)送遙控命令;
步驟102,到達(dá)所述遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請(qǐng)求,以獲取所述從站設(shè)備的遙控返信。
其中,步驟101之后,如果該從站設(shè)備向主站設(shè)備發(fā)送應(yīng)答消息則該遙控命令發(fā)送成功;如果主站設(shè)備超時(shí)未接收到所述從站設(shè)備的應(yīng)答消息則該遙控命令發(fā)送失敗。
可以從遙控命令發(fā)送時(shí)開始計(jì)時(shí),也可以在該遙控命令發(fā)送成功時(shí)(主站設(shè)備接收到應(yīng)答消息)開始計(jì)時(shí)。
其中,通常采用主站設(shè)備向從站設(shè)備發(fā)送遙控命令并開始計(jì)時(shí)的方式,當(dāng)采用這種方式時(shí),若所述遙控命令發(fā)送失敗,則所述主站設(shè)備重新發(fā)送所述遙控命令并重新開始計(jì)時(shí)。
可以預(yù)先配置每個(gè)遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間,所述返信讀取延遲時(shí)間與每個(gè)遙控命令對(duì)應(yīng)的從設(shè)備執(zhí)行動(dòng)作時(shí)長相關(guān)。
步驟102執(zhí)行之后,所述主站設(shè)備接收所述從站設(shè)備發(fā)送的遙控返信應(yīng)答消息,所述遙控返信應(yīng)答消息中攜帶遙控返信。
若所述遙控返信請(qǐng)求發(fā)送失敗,則重新發(fā)送所述遙控返信請(qǐng)求。如果主站設(shè)備超時(shí)未接收到所述從站設(shè)備的遙控返信應(yīng)答消息,則該遙控返信請(qǐng)求發(fā)送失敗。
如圖4所示,為本發(fā)明應(yīng)用示例的含遙控的輪詢流程圖,包括:
步驟201,判斷是否有遙控命令需要發(fā)送,若有,則執(zhí)行步驟202,若沒有,則執(zhí)行步驟203;
其中,遙控命令是高優(yōu)先級(jí)命令,所以先判斷是否有遙控命令需要發(fā)送;
步驟202,獲得遙控信息,執(zhí)行步驟204;
步驟203,從輪詢表中依次讀取一條請(qǐng)求;
步驟204,生成報(bào)文;
步驟205,發(fā)送報(bào)文并啟動(dòng)超時(shí)定時(shí)器;
此步驟中,若發(fā)送的報(bào)文是遙控命令,還啟動(dòng)遙控返信計(jì)時(shí)器;
步驟206,判斷報(bào)文是否成功接收,如果超時(shí)定時(shí)器時(shí)間到還未接收到從站設(shè)備的應(yīng)答,則表示未成功接收,執(zhí)行步驟207,若成功接收從站設(shè)備的應(yīng)答,則執(zhí)行步驟208;
步驟207,執(zhí)行超時(shí)處理,根據(jù)執(zhí)行策略,可能是重新發(fā)送報(bào)文,或者不再重新發(fā)送,執(zhí)行步驟209;
步驟208,處理接收到的數(shù)據(jù);
步驟209,準(zhǔn)備下一次發(fā)送;
步驟210,判斷是否有遙控返信請(qǐng)求需要發(fā)送,若有,則執(zhí)行步驟211,若沒有,則執(zhí)行步驟212;
其中,遙控返信計(jì)時(shí)器時(shí)間到,表示有遙控返信請(qǐng)求需要發(fā)送;而且遙控返信請(qǐng)求是高優(yōu)先級(jí)命令,所以在輪詢表中的請(qǐng)求發(fā)送之前,先發(fā)送遙控返信請(qǐng)求;
步驟211,獲得遙控返信信息,執(zhí)行步驟213;
步驟212,從輪詢表中依次讀取一條請(qǐng)求;
步驟213,生成報(bào)文;
步驟214,發(fā)送報(bào)文并啟動(dòng)超時(shí)定時(shí)器;
步驟215,判斷報(bào)文是否成功接收,如果超時(shí)定時(shí)器時(shí)間到還未接收到從站設(shè)備的應(yīng)答,則表示未成功接收,執(zhí)行步驟216,若成功接收從站設(shè)備的應(yīng)答,則執(zhí)行步驟217;
步驟216,執(zhí)行超時(shí)處理,根據(jù)執(zhí)行策略,可能是重新發(fā)送報(bào)文,或者不再重新發(fā)送,執(zhí)行步驟218;
步驟217,處理接收到的數(shù)據(jù);
步驟218,準(zhǔn)備下一次發(fā)送。
需要說明的是,上述流程圖為了表示先發(fā)送遙控命令,后發(fā)送遙控返信請(qǐng)求,所以分為兩部分(步驟201~209和步驟210~218)進(jìn)行表示;在實(shí)際應(yīng)用中,步驟201~209和步驟210~218可以合并,即每次流程執(zhí)行時(shí),可以先執(zhí)行判斷是否有遙控返信請(qǐng)求需要發(fā)送,如果有,則獲得遙控返信信息,如果沒有,則判斷是否有遙控命令需要發(fā)送,如果有,則獲得遙控信息,如果沒有,則從輪詢表中獲取一條請(qǐng)求,之后執(zhí)行步驟204~209;或者,每次流程執(zhí)行時(shí),可以先執(zhí)行判斷是否有遙控命令需要發(fā)送,如果有,則獲得遙控信息,如果沒有,則判斷是否有遙控返信請(qǐng)求需要發(fā)送,如果有,則獲得遙控返信信息,如果沒有,則從輪詢表中獲取一條請(qǐng)求,之后執(zhí)行步驟204~209。另外,每次發(fā)送遙控命令時(shí),啟動(dòng)遙控返信計(jì)時(shí)器。如果遙控命令沒有成功接收,則重新發(fā)送該遙控命令,并重啟遙控返信計(jì)時(shí)器。如果遙控返信請(qǐng)求沒有成功接收,則重新發(fā)送該遙控返信請(qǐng)求。遙控命令和遙控返信請(qǐng)求均可以設(shè)置最大重發(fā)次數(shù),若重發(fā)次數(shù)等于最大重發(fā)次數(shù),則可能出現(xiàn)故障,不再重發(fā),可以提示告警等信息。
在本發(fā)明實(shí)施例中,所述遙控返信請(qǐng)求,既可以由主站設(shè)備的驅(qū)動(dòng)自動(dòng)發(fā)送,也可以由上位機(jī)(如人機(jī)界面)通過組態(tài)人為或者自動(dòng)發(fā)送。
在本發(fā)明實(shí)施例中,可以對(duì)每個(gè)遙控命令的返信讀取延遲時(shí)間進(jìn)行精準(zhǔn)配置,配置時(shí)可以略大于tx(設(shè)備遙控成功的時(shí)間)。其中,tx與從站設(shè)備的動(dòng)作特性相關(guān),比如,一個(gè)開關(guān)的合動(dòng)作可能需要100毫秒即可完成,而一個(gè)開關(guān)的分動(dòng)作則可能需要500毫秒,雖然每個(gè)遙控命令的返信讀取延遲時(shí)間可能有所不同,但是這些值是可以事先測(cè)定的,并且這些值不會(huì)隨著運(yùn)行而會(huì)產(chǎn)生大的改變,即完全可以事先測(cè)定并且依據(jù)各個(gè)遙控返信測(cè)試值進(jìn)行每個(gè)遙控所對(duì)應(yīng)返信請(qǐng)求的延遲時(shí)間配置。即:可以設(shè)置返信讀取延遲時(shí)間為遙控命令對(duì)應(yīng)的從設(shè)備執(zhí)行動(dòng)作時(shí)長加上預(yù)設(shè)時(shí)長,該預(yù)設(shè)時(shí)長可以是一個(gè)固定的較短時(shí)間,如100毫秒。
仍以上面例子為例:一個(gè)串口接入10臺(tái)從站設(shè)備,每個(gè)從站設(shè)備有6個(gè)請(qǐng)求,請(qǐng)求間隔時(shí)間為100毫秒(記為t1),假設(shè)t0=200毫秒,那么請(qǐng)求總數(shù)為n=10×6=60。
使用現(xiàn)有技術(shù)的遙控返信流程時(shí):(n×請(qǐng)求間隔/2)=60×100/2毫秒=3秒,ts期望值是3秒+t0=3.2秒,最壞需要ta+6=6.2秒,ts的波動(dòng)范圍高達(dá)200~6200毫秒!
使用本發(fā)明實(shí)施例的技術(shù)時(shí),假設(shè)某遙控配置了對(duì)應(yīng)的返信請(qǐng)求,并且配置的返信讀取延遲時(shí)間為300毫秒(記為t0a,大于tx),ts的范圍大幅縮小為t0a~(t0a+t1)毫秒=300~400毫秒。
舉例來說,假如地鐵的一條線路有46個(gè)站,每天需要順序上電和順序斷電,以順序斷電為例,采用現(xiàn)有技術(shù)方法完成46個(gè)站點(diǎn)斷電大約需要6分鐘,而采用本發(fā)明實(shí)施例的方法,則大約只需要30秒,極大提高了斷電效率,節(jié)省了斷電時(shí)間。
從上描述可知,本發(fā)明實(shí)施例的方法實(shí)現(xiàn)了ts與設(shè)備數(shù)量完全無關(guān),與輪詢表大小完全無關(guān),不僅有效縮短了ts,而且可以使ts的實(shí)際波動(dòng)范圍達(dá)到最優(yōu)。在串行總線下,當(dāng)接入的設(shè)備越多、輪詢表越大,越是凸顯本發(fā)明的先進(jìn)性。
如圖5所示,為本發(fā)明實(shí)施例的遙控返信讀取的裝置示意圖,該裝置應(yīng)用于主站設(shè)備,包括:
第一發(fā)送模塊31,用于向從站設(shè)備發(fā)送遙控命令;
第二發(fā)送模塊32,用于到達(dá)所述遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間時(shí),向所述從站設(shè)備發(fā)送遙控返信請(qǐng)求,以獲取所述從站設(shè)備的遙控返信。
可選地,該裝置還包括:
配置模塊33,用于預(yù)先配置每個(gè)遙控命令對(duì)應(yīng)的返信讀取延遲時(shí)間,所述返信讀取延遲時(shí)間與每個(gè)遙控命令對(duì)應(yīng)的從設(shè)備執(zhí)行動(dòng)作時(shí)長相關(guān)。
所述返信讀取延遲時(shí)間為遙控命令對(duì)應(yīng)的從設(shè)備執(zhí)行動(dòng)作時(shí)長加上預(yù)設(shè)時(shí)長。
可選地,所述第一發(fā)送模塊31,進(jìn)一步用于向從站設(shè)備發(fā)送遙控命令并開始計(jì)時(shí);若所述遙控命令發(fā)送失敗,則重新發(fā)送所述遙控命令并重新開始計(jì)時(shí)。
可選地,所述第二發(fā)送模塊32,進(jìn)一步用于若所述遙控返信請(qǐng)求發(fā)送失敗,則重新發(fā)送所述遙控返信請(qǐng)求。
綜上所述,本發(fā)明實(shí)施例中,發(fā)送遙控命令后返信請(qǐng)求的發(fā)送,不僅包含在常規(guī)的輪詢表中,還可以關(guān)聯(lián)具體的遙控,這樣,一旦遙控操作時(shí),即可觸發(fā)遙控返信快速讀取流程(本專利),從而實(shí)現(xiàn)無延時(shí)、無波動(dòng)的快速穩(wěn)定的遙控返信,進(jìn)而提升自動(dòng)化水平。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。