欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

適配器的數(shù)據(jù)傳輸方法及適配器與流程

文檔序號(hào):11732136閱讀:434來源:國(guó)知局
適配器的數(shù)據(jù)傳輸方法及適配器與流程

本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種適配器的數(shù)據(jù)傳輸方法及適配器。



背景技術(shù):

在現(xiàn)有的工業(yè)物聯(lián)網(wǎng)中,工業(yè)設(shè)備與控制器之間主要通過rs485接口實(shí)現(xiàn)相互通信。通過rs485接口實(shí)現(xiàn)相互聯(lián)網(wǎng)通信的設(shè)備所形成的網(wǎng)絡(luò),稱為rs485網(wǎng)絡(luò)。由于rs485接口為半雙工接口,采用雙向單信道通信方式。因此,rs485網(wǎng)絡(luò)中的設(shè)備有主機(jī)和從機(jī)之分,從機(jī)不主動(dòng)發(fā)送數(shù)據(jù),而是根據(jù)主機(jī)的請(qǐng)求發(fā)送數(shù)據(jù),即采用請(qǐng)求應(yīng)答式通信。在工業(yè)物聯(lián)網(wǎng)中,如果從機(jī)為控制器,主機(jī)為通過rs485接口分別與所述控制器連接的適配器和本地終端時(shí),適配器和本地終端發(fā)送的數(shù)據(jù)為主動(dòng)且隨機(jī)的,直接與控制器連接,勢(shì)必會(huì)出現(xiàn)兩路主機(jī)同時(shí)向控制器請(qǐng)求數(shù)據(jù)的情況,從而造成rs485總線通信競(jìng)爭(zhēng)的問題;控制器通過rs485總線發(fā)送數(shù)據(jù)時(shí)也無法確定是發(fā)送至哪個(gè)主機(jī),從而導(dǎo)致控制器所采集的數(shù)據(jù)丟失、紊亂的情況,若與適配器連接的云端服務(wù)器或者本地終端接收到控制器發(fā)送的數(shù)據(jù)不完整時(shí)將影響到數(shù)據(jù)分析的有效性、設(shè)備運(yùn)行監(jiān)控的結(jié)果。



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

鑒于此,本發(fā)明實(shí)施例提供了一種適配器的數(shù)據(jù)傳輸方法及適配器,以解決工業(yè)物聯(lián)網(wǎng)中存在的rs485總線通信競(jìng)爭(zhēng)的問題。

第一方面,提供了一種適配器的數(shù)據(jù)傳輸方法,所述適配器用于與云端服務(wù)器通信,且其中的一個(gè)rs485接口與控制器連接,另一個(gè)rs485接口與本地終端連接,所述方法包括:

接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;

當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息;

當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端。

進(jìn)一步地,所述當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息包括:

當(dāng)接收到來自本地終端\云端服務(wù)器的控制類請(qǐng)求,若當(dāng)前未收到控制器對(duì)上一個(gè)來自云端服務(wù)器\本地終端的控制類請(qǐng)求的響應(yīng)結(jié)果時(shí),向所述本地終端\云端服務(wù)器返回請(qǐng)求失敗消息;否則,將所述控制類請(qǐng)求發(fā)送至所述控制器;

當(dāng)同時(shí)接收到來自本地終端、云端服務(wù)器的控制類請(qǐng)求時(shí),將來自本地終端的控制類請(qǐng)求轉(zhuǎn)發(fā)至所述控制器,屏蔽來自云端服務(wù)器的控制類請(qǐng)求,并向所述云端服務(wù)器返回請(qǐng)求失敗消息,以告知所述云端服務(wù)器當(dāng)前已有本地終端向所述控制器發(fā)送控制類請(qǐng)求。

進(jìn)一步地,在接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息之后,所述通信方法還包括:

將所述狀態(tài)信息緩存至適配器的預(yù)設(shè)共享區(qū)中,所述預(yù)設(shè)共享區(qū)采用環(huán)形隊(duì)列結(jié)構(gòu)。

進(jìn)一步地,所述根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端包括:

根據(jù)來自本地終端的狀態(tài)類請(qǐng)求,在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)從所述預(yù)設(shè)共享區(qū)中獲取與所述狀態(tài)類請(qǐng)求對(duì)應(yīng)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述本地終端;以及

按照預(yù)設(shè)的上報(bào)周期從所述預(yù)設(shè)共享區(qū)中獲取本次待上報(bào)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述云端服務(wù)器。

進(jìn)一步地,所述上報(bào)周期大于所述響應(yīng)時(shí)間,以錯(cuò)開從所述預(yù)設(shè)共享區(qū)中獲取狀態(tài)信息發(fā)送至本地終端和云端服務(wù)器的時(shí)間。

第二方面,提供了一種適配器,所述適配器用于與云端服務(wù)器通信,且其中的一個(gè)rs485接口與控制器連接,另一個(gè)rs485接口與本地終端連接,所述適配器包括:

接收模塊,用于接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;

控制類通信模塊,用于當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息;

狀態(tài)類通信模塊,用于當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端。

進(jìn)一步地,所述控制類通信模塊包括:

第一控制類通信單元,用于當(dāng)接收到來自本地終端\云端服務(wù)器的控制類請(qǐng)求,若當(dāng)前未收到控制器對(duì)上一個(gè)來自云端服務(wù)器\本地終端的控制類請(qǐng)求的響應(yīng)結(jié)果時(shí),向所述本地終端\云端服務(wù)器返回請(qǐng)求失敗消息;否則,將所述控制類請(qǐng)求發(fā)送至所述控制器;

第二控制類通信單元,用于當(dāng)同時(shí)接收到來自本地終端、云端服務(wù)器的控制類請(qǐng)求時(shí),將來自本地終端的控制類請(qǐng)求轉(zhuǎn)發(fā)至所述控制器,屏蔽來自云端服務(wù)器的控制類請(qǐng)求,并向所述云端服務(wù)器返回請(qǐng)求失敗消息,以告知所述云端服務(wù)器當(dāng)前已有本地終端向所述控制器發(fā)送控制類請(qǐng)求。

進(jìn)一步地,所述狀態(tài)類通信模塊還用于:

在接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息之后,將所述狀態(tài)信息緩存至適配器的預(yù)設(shè)共享區(qū)中,所述預(yù)設(shè)共享區(qū)采用環(huán)形隊(duì)列結(jié)構(gòu)。

進(jìn)一步地,所述狀態(tài)類通信模塊包括:

第一狀態(tài)類通信單元,用于根據(jù)來自本地終端的狀態(tài)類請(qǐng)求,在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)從所述預(yù)設(shè)共享區(qū)中獲取與所述狀態(tài)類請(qǐng)求對(duì)應(yīng)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述本地終端;以及

第二狀態(tài)類通信單元,用于按照預(yù)設(shè)的上報(bào)周期從所述預(yù)設(shè)共享區(qū)中獲取本次待上報(bào)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述云端服務(wù)器。

進(jìn)一步地,所述上報(bào)周期大于所述響應(yīng)時(shí)間,以錯(cuò)開從所述預(yù)設(shè)共享區(qū)中獲取狀態(tài)信息發(fā)送至本地終端和云端服務(wù)器的時(shí)間。

與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例通過改進(jìn)工業(yè)物聯(lián)網(wǎng)中適配器的連接方式,將適配器其中的一個(gè)rs485接口與控制器連接,另一個(gè)rs485接口與本地終端連接;在進(jìn)行通信時(shí),通過適配器接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息,從而解決了rs485總線的通信競(jìng)爭(zhēng)問題;當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),則將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端,從而避免了多路主機(jī)競(jìng)爭(zhēng)造成控制器所采集的數(shù)據(jù)丟失、紊亂、不完整的問題。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他附圖。

圖1是本發(fā)明實(shí)施例提供的rs485網(wǎng)絡(luò)的組成示意圖;

圖2是本發(fā)明實(shí)施例提供的適配器的通信方法的實(shí)現(xiàn)流程圖;

圖3是本發(fā)明實(shí)施例提供的適配器的組成示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明實(shí)施例通過改進(jìn)工業(yè)物聯(lián)網(wǎng)中適配器的連接方式,將適配器其中的一個(gè)rs485接口與控制器連接,另一個(gè)rs485接口與本地終端連接;在進(jìn)行通信時(shí),通過適配器接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息,從而解決了rs485總線的通信競(jìng)爭(zhēng)問題;當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),則將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端,從而避免了多路主機(jī)競(jìng)爭(zhēng)造成本地終端或云端服務(wù)器所接收的數(shù)據(jù)發(fā)生丟失、紊亂、不完整的問題。本發(fā)明實(shí)施例還提供了相應(yīng)的適配器,以下分別進(jìn)行詳細(xì)的說明。

為了解決工業(yè)物聯(lián)網(wǎng)的rs485網(wǎng)絡(luò)中主機(jī)通信競(jìng)爭(zhēng)的問題,本發(fā)明實(shí)施例將多個(gè)主機(jī)設(shè)備并聯(lián)接入一個(gè)從機(jī)設(shè)備的方式,改為多個(gè)主機(jī)設(shè)備先通過rs485接口串聯(lián),然后再與從機(jī)設(shè)備相連接。由于rs485接口是僅支持單主機(jī)的總線,因此,提供rs485接口的中間設(shè)備既作為主機(jī)設(shè)備、又作為從機(jī)設(shè)備分別與其相連的兩個(gè)設(shè)備通過rs485總線進(jìn)行通信。在本發(fā)明實(shí)施例中,所述提供rs485接口的中間設(shè)備可以為用于與云端服務(wù)器通信的適配器。所述適配器包括兩個(gè)rs485接口,其中一個(gè)rs485接口與控制器的rs485接口相連,另一個(gè)rs485接口與本地終端相連。此時(shí),所述適配器既作為主機(jī)設(shè)備與控制器通信,又作為從機(jī)設(shè)備與本地終端通信。圖1示出了本發(fā)明實(shí)施例提供的rs485系統(tǒng)的組成示意圖。其中,適配器1提供了至少兩個(gè)rs485接口分別供控制器2和本地終端3連接。在本發(fā)明實(shí)施例中,所述本地終端為需要采集工業(yè)設(shè)備現(xiàn)場(chǎng)數(shù)據(jù)的終端,包括但不限于本地計(jì)算機(jī)、筆記本電腦、服務(wù)器。

圖2示出了本發(fā)明實(shí)施例提供的適配器的數(shù)據(jù)傳輸方法的實(shí)現(xiàn)流程。參閱圖2,所述數(shù)據(jù)傳輸方法包括:

在步驟s201中,接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求。

從圖1可以知道,本地終端和云端服務(wù)器發(fā)送的數(shù)據(jù)都要經(jīng)過適配器,適配器可以獲知本地終端和云端服務(wù)器發(fā)送的數(shù)據(jù)類型、發(fā)送時(shí)間等信息。本發(fā)明實(shí)施例預(yù)先將所述適配器、本地終端發(fā)送的數(shù)據(jù)劃分為兩大類,一類為控制類請(qǐng)求,另一類為狀態(tài)類請(qǐng)求。其中,所述控制類請(qǐng)求為適配器或本地終端指示控制器執(zhí)行動(dòng)作的指令信息。所述狀態(tài)類數(shù)據(jù)請(qǐng)求為適配器或本地終端請(qǐng)求控制器返回設(shè)備運(yùn)行狀態(tài)信息的指令信息。在這里,控制類數(shù)據(jù)請(qǐng)求的優(yōu)先級(jí)大于狀態(tài)類數(shù)據(jù)請(qǐng)求,即無論是本地終端還是適配器的控制類數(shù)據(jù)請(qǐng)求,都優(yōu)先于狀態(tài)類數(shù)據(jù)請(qǐng)求發(fā)送至控制器。在獲取到所述數(shù)據(jù)請(qǐng)求之后,本發(fā)明實(shí)施例識(shí)別所述數(shù)據(jù)請(qǐng)求的類型,并針對(duì)不同類型的數(shù)據(jù)請(qǐng)求采用不同的通信方式:當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),執(zhí)行步驟s202,當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),則執(zhí)行步驟s203。

在步驟s202中,當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息。

示例性地,所述步驟s202具體包括以下三種方式:

當(dāng)接收到來自本地終端的控制類請(qǐng)求,若當(dāng)前未收到控制器對(duì)上一個(gè)來自云端服務(wù)器的控制類請(qǐng)求的響應(yīng)結(jié)果時(shí),向所述本地終端返回請(qǐng)求失敗消息;否則,將所述控制類請(qǐng)求發(fā)送至所述控制器;

當(dāng)接收到來自云端服務(wù)器的控制類請(qǐng)求,若當(dāng)前未收到控制器對(duì)上一個(gè)來自本地終端的控制類請(qǐng)求的響應(yīng)結(jié)果時(shí),向所述云端服務(wù)器返回請(qǐng)求失敗消息;否則,將所述控制類請(qǐng)求發(fā)送至所述控制器;

當(dāng)同時(shí)接收到來自本地終端、云端服務(wù)器的控制類請(qǐng)求時(shí),將來自本地終端的控制類請(qǐng)求轉(zhuǎn)發(fā)至所述控制器,屏蔽來自云端服務(wù)器的控制類請(qǐng)求,并向所述云端服務(wù)器返回請(qǐng)求失敗消息,以告知所述云端服務(wù)器當(dāng)前已有本地終端向所述控制器發(fā)送控制類請(qǐng)求。

通過上述對(duì)控制類請(qǐng)求的發(fā)送策略,有效地解決了rs485總線的通信競(jìng)爭(zhēng)問題,避免了兩個(gè)及以上的主機(jī)同時(shí)向控制器請(qǐng)求數(shù)據(jù),并且使得發(fā)出控制類請(qǐng)求的本地終端或云端服務(wù)器也可以及時(shí)地獲知請(qǐng)求是否成功發(fā)送出去。

在步驟s203中,當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端。

在這里,控制器接收到適配器發(fā)送的狀態(tài)類請(qǐng)求之后,響應(yīng)所述狀態(tài)類請(qǐng)求,并且不斷地往適配器返回所述狀態(tài)類請(qǐng)求對(duì)應(yīng)的狀態(tài)信息。本發(fā)明實(shí)施例在適配器的內(nèi)存上預(yù)先開辟了一個(gè)資源共享區(qū)以緩存、處理所述控制器返回的狀態(tài)信息,因此,在接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息之后,所述方法還可以包括:將所述狀態(tài)信息緩存至適配器的預(yù)設(shè)共享區(qū)中。

可選地,所述預(yù)設(shè)共享區(qū)采用環(huán)形隊(duì)列結(jié)構(gòu)。進(jìn)入所述預(yù)設(shè)共享區(qū)的數(shù)據(jù)遵循“先進(jìn)先出”的方式。

對(duì)于云端服務(wù)器和本地終端的狀態(tài)類請(qǐng)求,本發(fā)明實(shí)施例采取不同的反饋機(jī)制將狀態(tài)信息返回至所述云端服務(wù)器或者本地終端。所述步驟s203包括:

根據(jù)來自本地終端的狀態(tài)類請(qǐng)求,在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)從所述預(yù)設(shè)共享區(qū)中獲取與所述狀態(tài)類請(qǐng)求對(duì)應(yīng)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述本地終端;以及

按照預(yù)設(shè)的上報(bào)周期從所述預(yù)設(shè)共享區(qū)中獲取本次待上報(bào)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述云端服務(wù)器。

在這里,對(duì)于來自本地終端的狀態(tài)類請(qǐng)求,所述適配器在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)將所述共享區(qū)中的對(duì)應(yīng)的狀態(tài)信息發(fā)送至所述本地終端。若所述適配器無法在所述響應(yīng)時(shí)間內(nèi)完成發(fā)送,則本地終端默認(rèn)通信失敗。對(duì)于來自云端服務(wù)器的狀態(tài)類請(qǐng)求,所述適配器則按照預(yù)設(shè)的上報(bào)周期循環(huán)地從所述共享區(qū)中讀取對(duì)應(yīng)的狀態(tài)信息上報(bào)至所述云端服務(wù)器。進(jìn)一步地,本發(fā)明實(shí)施例中的所述上報(bào)周期大于所述響應(yīng)時(shí)間,以避免適配器過于頻繁地從共享區(qū)中讀取數(shù)據(jù),并且錯(cuò)開本地終端和云端服務(wù)器的狀態(tài)信息的返回時(shí)間,從而有效地避免了rs485網(wǎng)絡(luò)中多路主機(jī)競(jìng)爭(zhēng)造成本地終端或云端服務(wù)器所接收的數(shù)據(jù)發(fā)生丟失、紊亂、不完整的問題??蛇x地,所述響應(yīng)時(shí)間可以為30毫秒或50毫秒;相應(yīng)地,所述上報(bào)周期可以為10秒。

綜上所述,本發(fā)明實(shí)施例消除了工業(yè)物聯(lián)網(wǎng)的rs485網(wǎng)絡(luò)中多主機(jī)之間的通信競(jìng)爭(zhēng)的問題,且避免了多主機(jī)通信競(jìng)爭(zhēng)導(dǎo)致本地終端或云端服務(wù)器所接收的數(shù)據(jù)發(fā)生丟失、紊亂、不完整的情況。

應(yīng)理解,在上述實(shí)施例中,各步驟的序號(hào)的大小并不意味著執(zhí)行順序的先后,各步驟的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。

圖3示出了本發(fā)明實(shí)施例提供的適配器的組成結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。

在本發(fā)明實(shí)施例中,所述適配器用于實(shí)現(xiàn)上述圖2實(shí)施例中所述的適配器的通信方法。所述適配器用于與云端服務(wù)器通信,且其中的一個(gè)rs485接口與控制器連接,另一個(gè)rs485接口與本地終端連接。

參閱圖3,所述適配器包括:

接收模塊31,用于接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;

控制類通信模塊32,用于當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息;

狀態(tài)類通信模塊33,用于當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端。

進(jìn)一步地,所述控制類通信模塊32包括:

第一控制類通信單元321,用于當(dāng)接收到來自本地終端\云端服務(wù)器的控制類請(qǐng)求,若當(dāng)前未收到控制器對(duì)上一個(gè)來自云端服務(wù)器\本地終端的控制類請(qǐng)求的響應(yīng)結(jié)果時(shí),向所述本地終端\云端服務(wù)器返回請(qǐng)求失敗消息;否則,將所述控制類請(qǐng)求發(fā)送至所述控制器;

第二控制類通信單元322,用于當(dāng)同時(shí)接收到來自本地終端、云端服務(wù)器的控制類請(qǐng)求時(shí),將來自本地終端的控制類請(qǐng)求轉(zhuǎn)發(fā)至所述控制器,屏蔽來自云端服務(wù)器的控制類請(qǐng)求,并向所述云端服務(wù)器返回請(qǐng)求失敗消息,以告知所述云端服務(wù)器當(dāng)前已有本地終端向所述控制器發(fā)送控制類請(qǐng)求。

通過上述第一控制類通信單元321和第二控制類通信單元322,有效地解決了rs485總線的通信競(jìng)爭(zhēng)問題,避免了兩個(gè)及以上的主機(jī)同時(shí)向控制器請(qǐng)求數(shù)據(jù),并且使得發(fā)出控制類請(qǐng)求的本地終端或云端服務(wù)器也可以及時(shí)地獲知請(qǐng)求是否成功發(fā)送出去。

進(jìn)一步地,所述狀態(tài)類通信模塊33還用于:

在接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息之后,將所述狀態(tài)信息緩存至適配器的預(yù)設(shè)共享區(qū)中,所述預(yù)設(shè)共享區(qū)采用環(huán)形隊(duì)列結(jié)構(gòu)。

進(jìn)一步地,所述狀態(tài)類通信模塊33包括:

第一狀態(tài)類通信單元331,用于根據(jù)來自本地終端的狀態(tài)類請(qǐng)求,在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)從所述預(yù)設(shè)共享區(qū)中獲取與所述狀態(tài)類請(qǐng)求對(duì)應(yīng)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述本地終端;以及

第二狀態(tài)類通信單元332,用于按照預(yù)設(shè)的上報(bào)周期從所述預(yù)設(shè)共享區(qū)中獲取本次待上報(bào)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述云端服務(wù)器。

在本發(fā)明實(shí)施例中,對(duì)于來自本地終端的狀態(tài)類請(qǐng)求,由所述第一狀態(tài)類通信單元331在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)將所述共享區(qū)中的對(duì)應(yīng)的狀態(tài)信息發(fā)送至所述本地終端。若所述適配器無法在所述響應(yīng)時(shí)間內(nèi)完成發(fā)送,則本地終端默認(rèn)通信失敗。對(duì)于來自云端服務(wù)器的狀態(tài)類請(qǐng)求,由所述第二狀態(tài)類通信單元332按照預(yù)設(shè)的上報(bào)周期循環(huán)地從所述共享區(qū)中讀取對(duì)應(yīng)的狀態(tài)信息上報(bào)至所述云端服務(wù)器。進(jìn)一步地,本發(fā)明實(shí)施例中的所述上報(bào)周期大于所述響應(yīng)時(shí)間,以避免適配器過于頻繁地從共享區(qū)中讀取數(shù)據(jù),并且錯(cuò)開本地終端和云端服務(wù)器的狀態(tài)信息的返回時(shí)間,從而有效地解決了rs485網(wǎng)絡(luò)中多路主機(jī)競(jìng)爭(zhēng)造成控制器所采集的數(shù)據(jù)丟失、紊亂、不完整的問題??蛇x地,所述響應(yīng)時(shí)間可以為30毫秒或50毫秒;相應(yīng)地,所述上報(bào)周期可以為10秒。

需要說明的是,本發(fā)明實(shí)施例中的適配器可以用于實(shí)現(xiàn)上述方法實(shí)施例中的全部技術(shù)方案,其各個(gè)功能模塊的功能可以根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過程可參照上述實(shí)例中的相關(guān)描述,此處不再贅述。

綜上所述,本發(fā)明實(shí)施例通過改進(jìn)工業(yè)物聯(lián)網(wǎng)中適配器的連接方式,將適配器其中的一個(gè)rs485接口與控制器連接,另一個(gè)rs485接口與本地終端連接;在進(jìn)行通信時(shí),通過適配器接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息,從而解決了rs485總線的通信競(jìng)爭(zhēng)問題;當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),則將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端,從而避免了多路主機(jī)競(jìng)爭(zhēng)造成控制器所采集的數(shù)據(jù)丟失、紊亂、不完整的問題。

可選地,本發(fā)明實(shí)施例還提供了一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)可由一個(gè)或多個(gè)處理器執(zhí)行的指令以執(zhí)行操作,所述操作包括:

接收來自云端服務(wù)器或者本地終端的數(shù)據(jù)請(qǐng)求;

當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息;

當(dāng)所述數(shù)據(jù)請(qǐng)求為狀態(tài)類請(qǐng)求時(shí),將所述狀態(tài)類請(qǐng)求發(fā)送至控制器,并接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息,根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端。

可選地,所述當(dāng)所述數(shù)據(jù)請(qǐng)求為控制類請(qǐng)求時(shí),根據(jù)所述控制器對(duì)上一個(gè)控制類請(qǐng)求的響應(yīng)結(jié)果,將所述控制類請(qǐng)求發(fā)送至所述控制器或者向所述云端服務(wù)器或者本地終端返回請(qǐng)求失敗消息包括:

當(dāng)接收到來自本地終端/云端服務(wù)器的控制類請(qǐng)求,若當(dāng)前未收到控制器對(duì)上一個(gè)來自云端服務(wù)器/本地終端的控制類請(qǐng)求的響應(yīng)結(jié)果時(shí),向所述本地終端/云端服務(wù)器返回請(qǐng)求失敗消息;否則,將所述控制類請(qǐng)求發(fā)送至所述控制器;

當(dāng)同時(shí)接收到來自本地終端、云端服務(wù)器的控制類請(qǐng)求時(shí),將來自本地終端的控制類請(qǐng)求轉(zhuǎn)發(fā)至所述控制器,屏蔽來自云端服務(wù)器的控制類請(qǐng)求,并向所述云端服務(wù)器返回請(qǐng)求失敗消息,以告知所述云端服務(wù)器當(dāng)前已有本地終端向所述控制器發(fā)送控制類請(qǐng)求。

可選地,在接收所述控制器根據(jù)所述狀態(tài)類請(qǐng)求返回的狀態(tài)信息之后,所述操作還包括:

將所述狀態(tài)信息緩存至適配器的預(yù)設(shè)共享區(qū)中,所述預(yù)設(shè)共享區(qū)采用環(huán)形隊(duì)列結(jié)構(gòu)。

可選地,所述根據(jù)預(yù)設(shè)的反饋機(jī)制將所述狀態(tài)信息返回至所述云端服務(wù)器或者本地終端包括:

根據(jù)來自本地終端的狀態(tài)類請(qǐng)求,在預(yù)設(shè)的響應(yīng)時(shí)間內(nèi)從所述預(yù)設(shè)共享區(qū)中獲取與所述狀態(tài)類請(qǐng)求對(duì)應(yīng)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述本地終端;以及

按照預(yù)設(shè)的上報(bào)周期從所述預(yù)設(shè)共享區(qū)中獲取本次待上報(bào)的狀態(tài)信息,并將所述狀態(tài)信息發(fā)送至所述云端服務(wù)器。

可選地,所述上報(bào)周期大于所述響應(yīng)時(shí)間,以錯(cuò)開從所述預(yù)設(shè)共享區(qū)中獲取狀態(tài)信息發(fā)送至本地終端和云端服務(wù)器的時(shí)間。

本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的模塊和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的方法及適配器,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊、單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元、模塊可以集成在一個(gè)處理單元中,也可以是各個(gè)單元、模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元、模塊集成在一個(gè)單元中。

所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
蓬安县| 兴山县| 本溪市| 松潘县| 灯塔市| 冀州市| 郴州市| 兴隆县| 通辽市| 萨嘎县| 高碑店市| 定远县| 清丰县| 珠海市| 涿鹿县| 宁武县| 龙岩市| 延寿县| 巨鹿县| 华阴市| 淮安市| 开远市| 井冈山市| 辽源市| 平江县| 洮南市| 大同县| 和龙市| 西平县| 大荔县| 拉萨市| 天台县| 石林| 噶尔县| 镇江市| 卢氏县| 葵青区| 巨野县| 扶沟县| 武穴市| 江阴市|