麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種Modbus協(xié)議遙控返信讀取的方法和裝置與流程

文檔序號:11147849閱讀:1194來源:國知局
一種Modbus協(xié)議遙控返信讀取的方法和裝置與制造工藝

本發(fā)明涉及工業(yè)自動化領(lǐng)域,尤指一種Modbus協(xié)議遙控返信讀取的方法和裝置。



背景技術(shù):

Modbus協(xié)議是工業(yè)自動化領(lǐng)域廣泛應(yīng)用的平衡型應(yīng)答通信協(xié)議,已經(jīng)成為通用工業(yè)標(biāo)準(zhǔn)。Modbus協(xié)議支持傳統(tǒng)的串口(RS-232、RS-422、RS-485)和以太網(wǎng)設(shè)備。Modbus通信使用主(Master,也稱主站)—從(Slave,也稱從站)技術(shù),即在同一時(shí)刻,僅一個(gè)主站設(shè)備能初始化傳輸(查詢,也叫請求,依次查詢稱為輪詢),從站設(shè)備根據(jù)主站設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。主站設(shè)備可單獨(dú)和從站設(shè)備通信,也能以廣播方式和所有從站設(shè)備通信。如果單獨(dú)通信,從站設(shè)備返回一消息作為回應(yīng),如果主站設(shè)備是以廣播方式查詢的,則從站設(shè)備不作任何回應(yīng)。

如圖1所示,主站設(shè)備在準(zhǔn)備新一次的請求時(shí),一開始會優(yōu)先檢查是否有遙控命令需要發(fā)送,如果有,則獲得遙控信息并生成遙控報(bào)文,發(fā)送遙控報(bào)文并隨后啟動接收超時(shí)定時(shí)器,如果在超時(shí)時(shí)間內(nèi)成功收到從站設(shè)備應(yīng)答,則表明此次遙控發(fā)送成功了,但這只能說明從站設(shè)備成功接收到了命令,是否成功還需要隨后主站設(shè)備通過發(fā)送請求所讀取到的真正遙控返信點(diǎn)才能看出。因?yàn)椋b控處理通常為異步應(yīng)答,即從站設(shè)備收到遙控命令后,并檢查當(dāng)前是否滿足執(zhí)行遙控所需條件,然后會先給主站設(shè)備發(fā)送相應(yīng)的應(yīng)答,隨后才會執(zhí)行遙控,如果遙控成功了,會將相應(yīng)的遙控返信點(diǎn)的信息更新至從站數(shù)據(jù)區(qū)中供主站設(shè)備輪詢更新,只有當(dāng)主站設(shè)備輪詢到該信息時(shí),主站設(shè)備方能知悉遙控真正成功了,存在讀取的遙控返信延遲時(shí)間長、獲得返信時(shí)刻的時(shí)間波動范圍大的問題。



技術(shù)實(shí)現(xiàn)要素:

為了解決上述技術(shù)問題,本發(fā)明提供了一種Modbus協(xié)議遙控返信的方法,能夠縮短讀取遙控返信的延遲時(shí)間、減小返信時(shí)刻的時(shí)間波動范圍,實(shí)現(xiàn)遙控返信的讀取時(shí)間與設(shè)備數(shù)量無關(guān),與輪詢表大小無關(guān)。

為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種Modbus協(xié)議遙控返信讀取的方法,包括:

主站設(shè)備向從站設(shè)備發(fā)送遙控命令;

到達(dá)所述遙控命令對應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請求,以獲取所述從站設(shè)備的遙控返信。

為了達(dá)到本發(fā)明目的,本發(fā)明還提供了一種Modbus協(xié)議遙控返信讀取的裝置,應(yīng)用于主站設(shè)備,包括:

第一發(fā)送模塊,用于向從站設(shè)備發(fā)送遙控命令;

第二發(fā)送模塊,用于到達(dá)所述遙控命令對應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請求,以獲取所述從站設(shè)備的遙控返信。

與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括:主站設(shè)備向從站設(shè)備發(fā)送遙控命令并開始計(jì)時(shí);到達(dá)所述遙控命令對應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請求,以獲取所述從站設(shè)備的遙控返信。本發(fā)明實(shí)施例針對使用現(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í)少、波動小的快速穩(wěn)定的遙控返信,進(jìn)而提升自動化水平。

進(jìn)一步地,通過配置每個(gè)遙控命令對應(yīng)的返信讀取延遲時(shí)間,可以根據(jù)設(shè)備實(shí)際情況對每個(gè)遙控命令對應(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)和獲得。

附圖說明

附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。

圖1為現(xiàn)有含遙控的輪詢流程圖;

圖2為Modbus輪詢表示意圖;

圖3為本發(fā)明實(shí)施例的Modbus協(xié)議遙控返信讀取的方法流程圖;

圖4為本發(fā)明應(yīng)用示例的含遙控的輪詢流程圖;

圖5為本發(fā)明實(shí)施例的Modbus協(xié)議遙控返信讀取的裝置示意圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。

在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

在本文中,遙控返信,含義為自動化系統(tǒng)遙控操作(執(zhí)行分/合等)變位信號返送,即從站設(shè)備的遙控結(jié)果反饋信息;遙控返信點(diǎn),指從站設(shè)備對執(zhí)行遙控命令的結(jié)果所需反饋信息的邏輯單位(例如,分/合狀態(tài))。當(dāng)從站設(shè)備接收到主站設(shè)備的遙控命令,執(zhí)行該遙控命令后,將遙控返信點(diǎn)的信息更新至從站數(shù)據(jù)區(qū),從站設(shè)備接收到主站設(shè)備發(fā)送遙控返信請求時(shí),查詢數(shù)據(jù)區(qū)數(shù)據(jù),向主站設(shè)備返回應(yīng)答消息,該應(yīng)答消息中攜帶遙控返信。

在現(xiàn)有技術(shù)中,遙控返信點(diǎn)就涵蓋在輪詢表(如圖3所示,記輪詢表中請求總數(shù)為N)中,這個(gè)包含了遙控返信點(diǎn)的請求(以下簡稱這個(gè)請求為Rx)通常就是一個(gè)普通的請求,和其他請求是一個(gè)優(yōu)先級,都得排隊(duì)等待輪詢。換言之,發(fā)送遙控命令后,主站設(shè)備仍然會按照之前的輪詢次序依次從輪詢表中獲得下一次需要發(fā)送的請求。所以,主站在發(fā)送遙控命令后一直到從主站獲得遙控返信的間隔時(shí)間(記為Ts)的波動范圍是Ts最小~Ts最大,其中,

Ts最小=設(shè)備遙控成功的時(shí)間(以下記為Tx)+遙控返信請求發(fā)出后直到收到應(yīng)答所經(jīng)歷的時(shí)間(以下記為Tr);其中,Tx的含義為主站設(shè)備發(fā)送遙控后一直到從站設(shè)備給設(shè)備數(shù)據(jù)區(qū)中的遙控返信點(diǎn)置值成功所經(jīng)歷的時(shí)間;

Ts最大=Tx+(N×請求間隔)+Tr;

其中,一個(gè)TCP局域網(wǎng)的典型Tr時(shí)間為10毫秒,因此,Tr可以忽略不計(jì),所以,Ts最小≈Tx,Ts最大≈Tx+(N×請求間隔)。

Ts的期望值是:Tx+(N×請求間隔/2)。

以串口Modbus RTU(RemoteTerminalUnit,遠(yuǎn)程終端單元)通信為例,一個(gè)典型的接入例子:一個(gè)串口接入10臺從站設(shè)備,每個(gè)從站設(shè)備有6個(gè)請求,請求間隔時(shí)間為100毫秒,那么請求總數(shù)為N=10×6=60,(N×請求間隔/2)=60×100/2毫秒=3秒,即Ts期望值是Tx+3秒,最壞需要Tx+6秒,波動范圍是Tx~Tx+6秒。

工業(yè)自動化領(lǐng)域,衡量自動化水平高低的一個(gè)重要指標(biāo)就是遙控反饋性能,顯然以上的遙控反饋指標(biāo)Ts有點(diǎn)慢了,而且反饋的快慢還需憑運(yùn)氣(波動范圍大),不能確定地事先預(yù)測。而且,設(shè)備數(shù)量越多、輪詢表越大,讀取的返信延遲越長、獲得返信時(shí)刻的波動范圍越大。

本發(fā)明實(shí)施例針對使用現(xiàn)有技術(shù)的遙控方法出現(xiàn)的設(shè)備數(shù)量越多、輪詢表越大,Ts的延遲越長、獲得返信時(shí)刻的波動范圍越大的缺點(diǎn),進(jìn)行了針對性的優(yōu)化。

如圖3所示,本發(fā)明實(shí)施例的Modbus協(xié)議遙控返信讀取的方法,包括:

步驟101,主站設(shè)備向從站設(shè)備發(fā)送遙控命令;

步驟102,到達(dá)所述遙控命令對應(yīng)的返信讀取延遲時(shí)間時(shí),所述主站設(shè)備向所述從站設(shè)備發(fā)送遙控返信請求,以獲取所述從站設(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è)遙控命令對應(yīng)的返信讀取延遲時(shí)間,所述返信讀取延遲時(shí)間與每個(gè)遙控命令對應(yīng)的從設(shè)備執(zhí)行動作時(shí)長相關(guān)。

步驟102執(zhí)行之后,所述主站設(shè)備接收所述從站設(shè)備發(fā)送的遙控返信應(yīng)答消息,所述遙控返信應(yīng)答消息中攜帶遙控返信。

若所述遙控返信請求發(fā)送失敗,則重新發(fā)送所述遙控返信請求。如果主站設(shè)備超時(shí)未接收到所述從站設(shè)備的遙控返信應(yīng)答消息,則該遙控返信請求發(fā)送失敗。

如圖4所示,為本發(fā)明應(yīng)用示例的含遙控的輪詢流程圖,包括:

步驟201,判斷是否有遙控命令需要發(fā)送,若有,則執(zhí)行步驟202,若沒有,則執(zhí)行步驟203;

其中,遙控命令是高優(yōu)先級命令,所以先判斷是否有遙控命令需要發(fā)送;

步驟202,獲得遙控信息,執(zhí)行步驟204;

步驟203,從輪詢表中依次讀取一條請求;

步驟204,生成報(bào)文;

步驟205,發(fā)送報(bào)文并啟動超時(shí)定時(shí)器;

此步驟中,若發(fā)送的報(bào)文是遙控命令,還啟動遙控返信計(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,判斷是否有遙控返信請求需要發(fā)送,若有,則執(zhí)行步驟211,若沒有,則執(zhí)行步驟212;

其中,遙控返信計(jì)時(shí)器時(shí)間到,表示有遙控返信請求需要發(fā)送;而且遙控返信請求是高優(yōu)先級命令,所以在輪詢表中的請求發(fā)送之前,先發(fā)送遙控返信請求;

步驟211,獲得遙控返信信息,執(zhí)行步驟213;

步驟212,從輪詢表中依次讀取一條請求;

步驟213,生成報(bào)文;

步驟214,發(fā)送報(bào)文并啟動超時(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ā)送遙控返信請求,所以分為兩部分(步驟201~209和步驟210~218)進(jìn)行表示;在實(shí)際應(yīng)用中,步驟201~209和步驟210~218可以合并,即每次流程執(zhí)行時(shí),可以先執(zhí)行判斷是否有遙控返信應(yīng)答消息需要發(fā)送,如果有,則獲得遙控返信信息,如果沒有,則判斷是否有遙控命令需要發(fā)送,如果有,則獲得遙控信息,如果沒有,則從輪詢表中獲取一條請求,之后執(zhí)行步驟204~209;或者,每次流程執(zhí)行時(shí),可以先執(zhí)行判斷是否有遙控命令需要發(fā)送,如果有,則獲得遙控信息,如果沒有,則判斷是否有遙控返信請求需要發(fā)送,如果有,則獲得遙控返信信息,如果沒有,則從輪詢表中獲取一條請求,之后執(zhí)行步驟204~209。另外,每次發(fā)送遙控命令時(shí),啟動遙控返信計(jì)時(shí)器。如果遙控命令沒有成功接收,則重新發(fā)送該遙控命令,并重啟遙控返信計(jì)時(shí)器。如果遙控返信請求沒有成功接收,則重新發(fā)送該遙控返信請求。遙控命令和遙控返信請求均可以設(shè)置最大重發(fā)次數(shù),若重發(fā)次數(shù)等于最大重發(fā)次數(shù),則可能出現(xiàn)故障,不再重發(fā),可以提示告警等信息。

在本發(fā)明實(shí)施例中,所述遙控返信請求,既可以由主站設(shè)備的驅(qū)動自動發(fā)送,也可以由上位機(jī)(如人機(jī)界面)通過組態(tài)人為或者自動發(fā)送。

在本發(fā)明實(shí)施例中,可以對每個(gè)遙控命令的返信讀取延遲時(shí)間進(jìn)行精準(zhǔn)配置,配置時(shí)可以略大于Tx(設(shè)備遙控成功的時(shí)間)。其中,Tx與從站設(shè)備的動作特性相關(guān),比如,一個(gè)開關(guān)的合動作可能需要100毫秒即可完成,而一個(gè)開關(guān)的分動作則可能需要500毫秒,雖然每個(gè)遙控命令的返信讀取延遲時(shí)間可能有所不同,但是這些值是可以事先測定的,并且這些值不會隨著運(yùn)行而會產(chǎn)生大的改變,即完全可以事先測定并且依據(jù)各個(gè)遙控返信測試值進(jìn)行每個(gè)遙控所對應(yīng)返信請求的延遲時(shí)間配置。即:可以設(shè)置返信讀取延遲時(shí)間為遙控命令對應(yīng)的從設(shè)備執(zhí)行動作時(shí)長加上預(yù)設(shè)時(shí)長,該預(yù)設(shè)時(shí)長可以是一個(gè)固定的較短時(shí)間,如100毫秒。

仍以上面例子為例:一個(gè)串口接入10臺從站設(shè)備,每個(gè)從站設(shè)備有6個(gè)請求,請求間隔時(shí)間為100毫秒(記為T1),假設(shè)T0=200毫秒,那么請求總數(shù)為N=10×6=60。

使用現(xiàn)有技術(shù)的遙控返信流程時(shí):(N×請求間隔/2)=60×100/2毫秒=3秒,Ts期望值是3秒+T0=3.2秒,最壞需要Ta+6=6.2秒,Ts的波動范圍高達(dá)200~6200毫秒!

使用本發(fā)明實(shí)施例的技術(shù)時(shí),假設(shè)某遙控配置了對應(yī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á)到最優(yōu)。在串行總線下,當(dāng)接入的設(shè)備越多、輪詢表越大,越是凸顯本發(fā)明的先進(jìn)性。

如圖5所示,為本發(fā)明實(shí)施例的Modbus協(xié)議遙控返信讀取的裝置示意圖,該裝置應(yīng)用于主站設(shè)備,包括:

第一發(fā)送模塊31,用于向從站設(shè)備發(fā)送遙控命令;

第二發(fā)送模塊32,用于到達(dá)所述遙控命令對應(yīng)的返信讀取延遲時(shí)間時(shí),向所述從站設(shè)備發(fā)送遙控返信請求,以獲取所述從站設(shè)備的遙控返信。

可選地,該裝置還包括:

配置模塊33,用于預(yù)先配置每個(gè)遙控命令對應(yīng)的返信讀取延遲時(shí)間,所述返信讀取延遲時(shí)間與每個(gè)遙控命令對應(yīng)的從設(shè)備執(zhí)行動作時(shí)長相關(guān)。

所述返信讀取延遲時(shí)間為遙控命令對應(yīng)的從設(shè)備執(zhí)行動作時(shí)長加上預(yù)設(shè)時(shí)長。

可選地,所述第一發(fā)送模塊31,進(jìn)一步用于向從站設(shè)備發(fā)送遙控命令并開始計(jì)時(shí);若所述遙控命令發(fā)送失敗,則重新發(fā)送所述遙控命令并重新開始計(jì)時(shí)。

可選地,所述第二發(fā)送模塊32,進(jìn)一步用于若所述遙控返信請求發(fā)送失敗,則重新發(fā)送所述遙控返信請求。

綜上所述,本發(fā)明實(shí)施例中,發(fā)送遙控命令后返信請求的發(fā)送,不僅包含在常規(guī)的輪詢表中,還可以關(guān)聯(lián)具體的遙控,這樣,一旦遙控操作時(shí),即可觸發(fā)遙控返信快速讀取流程(本專利),從而實(shí)現(xiàn)無延時(shí)、無波動的快速穩(wěn)定的遙控返信,進(jìn)而提升自動化水平。

雖然本發(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)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
主站蜘蛛池模板: 庆安县| 泰安市| 莱西市| 那坡县| 榆林市| 西盟| 定州市| 南郑县| 洮南市| 疏勒县| 广安市| 鹰潭市| 棋牌| 平顶山市| 南皮县| 徐闻县| 新闻| 登封市| 米脂县| 武强县| 麻城市| 合山市| 凤庆县| 饶阳县| 开原市| 揭阳市| 淳化县| 南汇区| 贺州市| 开江县| 阆中市| 永宁县| 大洼县| 舒兰市| 永泰县| 宣威市| 剑河县| 海淀区| 西乌珠穆沁旗| 荔浦县| 乳山市|