在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用協(xié)議棧實(shí)現(xiàn)Modbus TCP客戶端應(yīng)用

CHANBAEK ? 來(lái)源:木南創(chuàng)智 ? 作者:尹家軍 ? 2022-12-13 16:18 ? 次閱讀

自從開(kāi)源了我們自己開(kāi)發(fā)的Modbus協(xié)議棧之后,有很多朋友建議我針對(duì)性的做幾個(gè)示例。所以我們就基于平時(shí)我們的應(yīng)用整理了幾個(gè)簡(jiǎn)單但可以說(shuō)明基本的應(yīng)用方法的示例,這一篇中我們將解說(shuō)如何使用協(xié)議棧實(shí)現(xiàn)一個(gè)Modbus TCP客戶端。

1 、何為TCP客戶端

Modbus協(xié)議是一個(gè)主從協(xié)議,那肯定就有主站和從站之分,在Modbus TCP中亦稱之為客戶端與服務(wù)器。所謂TCP客戶端其功能基本與RTU主站一樣,RTU主站會(huì)向從站發(fā)起數(shù)據(jù)請(qǐng)求,同樣的TCP客戶端也會(huì)向服務(wù)器發(fā)起請(qǐng)求。也就是說(shuō)在Modbus TCP模式下客戶端亦是發(fā)起通訊的一方。

對(duì)于TCP客戶端來(lái)說(shuō),自己并不會(huì)產(chǎn)生數(shù)據(jù),它的數(shù)據(jù)均是從服務(wù)器獲取,為了得到數(shù)據(jù)就必須向服務(wù)器發(fā)起數(shù)據(jù)請(qǐng)求。在Modbus TCP協(xié)議中,服務(wù)器一般也不會(huì)主動(dòng)向外發(fā)送數(shù)據(jù),服務(wù)器需要根據(jù)客戶端的數(shù)據(jù)請(qǐng)求來(lái)決定是否發(fā)送數(shù)據(jù)、發(fā)送哪些數(shù)據(jù)。這一過(guò)程如下圖所示:

從上圖我們不難看出,首先客戶端要主動(dòng)發(fā)起數(shù)據(jù)請(qǐng)求,客戶端發(fā)起的數(shù)據(jù)請(qǐng)求需要告訴服務(wù)器它請(qǐng)求的數(shù)據(jù)有哪些。服務(wù)器收到這個(gè)數(shù)據(jù)請(qǐng)求后,服務(wù)器解析客戶端的請(qǐng)求并按照客戶端的請(qǐng)求返回?cái)?shù)據(jù)。客戶端收到數(shù)據(jù)響應(yīng)后解析數(shù)據(jù),這樣就完成了客戶端與服務(wù)器之間的一次數(shù)據(jù)通訊。

需要注意的是,Modbus TCP與Modbus RTU不同的是有一個(gè)專用的MBAP報(bào)文頭來(lái)識(shí)別Modbus應(yīng)用數(shù)據(jù)單元。這一報(bào)文頭由7個(gè)字節(jié)組成:

這種MBAP報(bào)文頭雖然也是用來(lái)識(shí)別Modbus數(shù)據(jù)域,但還是與串行鏈路上使用的MODBUS RTU應(yīng)用數(shù)據(jù)單元有一些差別,具體如下:

1 、用MBAP報(bào)文頭中的單個(gè)字節(jié)單元標(biāo)識(shí)符取代MODBUS串行鏈路上通常使用的MODBUS從地址域。這個(gè)單元標(biāo)識(shí)符用于設(shè)備的通信,這些設(shè)備使用單個(gè) IP 地址支持多個(gè)獨(dú)立MODBUS 終端單元,例如:網(wǎng)橋、路由器和網(wǎng)關(guān)。

2 、使用接收者可以驗(yàn)證的方式來(lái)構(gòu)造所有MODBUS請(qǐng)求和響應(yīng)。對(duì)于MODBUS PDU有固定長(zhǎng)度的功能碼來(lái)說(shuō),僅功能碼就足夠了。對(duì)于在請(qǐng)求或響應(yīng)中攜帶一個(gè)可變數(shù)據(jù)的功能碼來(lái)說(shuō),數(shù)據(jù)域包括字節(jié)數(shù)。

3 、使用TCP上傳送MODBUS數(shù)據(jù)域時(shí),即使將報(bào)文分成多個(gè)信息包來(lái)傳輸,可在MBAP報(bào)文頭上攜帶附加長(zhǎng)度信息,這樣接收者就能夠識(shí)別報(bào)文的完整性。

2 、如何實(shí)現(xiàn)TCP客戶端

我們已經(jīng)簡(jiǎn)單的描述了基于TCP/IP的Modbus數(shù)據(jù)通訊,在此基礎(chǔ)上我們將進(jìn)一步描述基于協(xié)議棧的Modbus TCP客戶端的實(shí)現(xiàn)。

在協(xié)議棧中,我們已經(jīng)實(shí)現(xiàn)了TCP客戶端的數(shù)據(jù)請(qǐng)求命令的合成以及響應(yīng)數(shù)據(jù)的解析,所以我們使用協(xié)議棧時(shí)就是要控制何時(shí)將協(xié)議棧合成的客戶端請(qǐng)求命令發(fā)出以及如何解析數(shù)據(jù)響應(yīng)進(jìn)而得到想要的數(shù)據(jù)的過(guò)程。

在我們的協(xié)議棧中實(shí)現(xiàn)了0x01、0x02、0x03、0x04、0x05、0x06、0x0F以及0x10等功能碼。也就是說(shuō)TCP客戶端對(duì)象可以生成面向這些功能碼的服務(wù)器數(shù)據(jù)請(qǐng)求。也可以解析面向這些功能碼的服務(wù)器數(shù)據(jù)響應(yīng)。可以表示為下圖所示:

從上圖我們很清楚,協(xié)議棧已經(jīng)實(shí)現(xiàn)了面向這些功能碼的數(shù)據(jù)請(qǐng)求命令的生成以及數(shù)據(jù)響應(yīng)消息的解析。我們使用協(xié)議棧時(shí)需要做的就是要告訴協(xié)議棧我要生成哪些數(shù)據(jù)請(qǐng)求命令以及如何解析數(shù)據(jù)響應(yīng)消息。

2.1 、生成數(shù)據(jù)請(qǐng)求

作為客戶端需要主動(dòng)向服務(wù)器發(fā)起操作,所以我們要控制客戶端生成可以被服務(wù)器識(shí)別的命令序列。在協(xié)議棧中已經(jīng)封裝了生成客戶端訪問(wèn)服務(wù)器的命令序列的函數(shù),其原型如下:

/ 生成訪問(wèn)服務(wù)器的命令 /

uint16_t CreateAccessServerCommand(TCPLocalClientType*client,ObjAccessInfo objInfo,void *dataList,uint8_t *commandBytes)

這個(gè)函數(shù)有4個(gè)參數(shù),分別是:

TCPLocalClientType *client,所發(fā)起訪問(wèn)的本地客戶端對(duì)象。

ObjAccessInfo objInfo,用于生成訪問(wèn)命令的信息,如站地址、功能碼等。

void *dataList,如果是寫(xiě)操作,則對(duì)應(yīng)需要寫(xiě)的數(shù)據(jù)列表,線圈為bool量、寄存器為uint16_t型無(wú)符號(hào)整數(shù)。

uint8_t *commandBytes是生成的命令序列

而返回值則是生成的命令序列的長(zhǎng)度。在我們需要生成訪問(wèn)服務(wù)器的命令時(shí),調(diào)用這個(gè)函數(shù)就可實(shí)現(xiàn)。不過(guò)一定要注意生成的命令序列的長(zhǎng)度,定義commandBytes對(duì)象時(shí)長(zhǎng)度一定要足夠。

2.2 、解析數(shù)據(jù)響應(yīng)

當(dāng)客戶端收到服務(wù)器返回的響應(yīng)信息后,客戶端需要對(duì)消息進(jìn)行解析,并決定需要進(jìn)行的操作。在協(xié)議棧中封裝了對(duì)服務(wù)器響應(yīng)消息的解析函數(shù),該函數(shù)的原型如下:

/ 解析收到的服務(wù)器相應(yīng)信息 /

void ParsingServerRespondMessage(TCPLocalClientType client,uint8_trecievedMessage)

這一解析函數(shù)包含2個(gè)參數(shù),TCPLocalClientType client是本地客戶端對(duì)象;而uint8_trecievedMessage為接收到的服務(wù)器響應(yīng)消息。本函數(shù)會(huì)注意核對(duì)任務(wù)號(hào)、協(xié)議代碼、功能碼、數(shù)據(jù)完整性等,檢驗(yàn)正確的消息會(huì)被解析,并根據(jù)消息來(lái)操作相應(yīng)的數(shù)據(jù)對(duì)象,比如讀的是服務(wù)器的保持寄存器,則根據(jù)讀的起始地址和數(shù)量以及數(shù)據(jù)對(duì)象的類型來(lái)解析之。

3 TCP****客戶端編碼

我們講述了客戶端所要進(jìn)行的工作以及協(xié)議棧中封裝好的面向客戶端的操作函數(shù),接下來(lái)我們將基于協(xié)議棧來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Modbus TCP客戶端實(shí)例。

3.1 、定義TCP客戶端對(duì)象

在開(kāi)始實(shí)現(xiàn)客戶端的相關(guān)操作前,我們需要先聲明并實(shí)例化部分用于Modbus TCP客戶端操作的對(duì)象。

首先需要定義用于本地操作的本地客戶端,也就是我們要實(shí)現(xiàn)的客戶端對(duì)象。具體的聲明如下:TCPLocalClientType mbClient;

其次需要聲明一個(gè)或者多個(gè)服務(wù)器對(duì)象,這些服務(wù)器對(duì)象是我們所要實(shí)現(xiàn)的客戶端所管理的服務(wù)器對(duì)象。具體的聲明如下:TCPAccessedServerType mbServer;

同時(shí)需要定義一個(gè)用于存放讀操作命令的數(shù)組,定義一個(gè)寫(xiě)服務(wù)器操作的線圈量對(duì)象數(shù)組和一個(gè)寄存器量對(duì)象數(shù)組,具體如下:

uint8_t readCommand[10][12];
WritedCoilListNode coilList[3]={{0,0,0,1},{1,0,0,1},{2,0,0,0}};
WritedRegisterListNoderegisterList[3]={{0,0,0,1,1},{1,0,0,1,2},{2,0,0,0,0}};

接下來(lái)還需要對(duì)客戶端對(duì)象和服務(wù)器對(duì)象進(jìn)行初始化和實(shí)例化。而上述的數(shù)組將作為參數(shù)用于客戶端對(duì)象的初始化和服務(wù)器對(duì)象的實(shí)例化。

此外還要定義4個(gè)函數(shù)指針用于對(duì)從服務(wù)器讀取回來(lái)的數(shù)據(jù)進(jìn)行更新,這幾個(gè)函數(shù)的原型如下:

/*更新讀回來(lái)的線圈狀態(tài)*/
typedef void (*UpdateCoilStatusType)(uint8_t salveAddress,uint16_tstartAddress,uint16_t quantity,bool *stateValue);


/*更新讀回來(lái)的輸入狀態(tài)值*/
typedef void (*UpdateInputStatusType)(uint8_t salveAddress,uint16_tstartAddress,uint16_t quantity,bool *stateValue);


/*更新讀回來(lái)的保持寄存器*/
typedef void (*UpdateHoldingRegisterType)(uint8_t salveAddress,uint16_tstartAddress,uint16_t quantity,uint16_t *registerValue);


/*更新讀回來(lái)的輸入寄存器*/
typedef void (*UpdateInputResgisterType)(uint8_t salveAddress,uint16_tstartAddress,uint16_t quantity,uint16_t *registerValue);

這幾個(gè)函數(shù)的實(shí)現(xiàn)要根據(jù)具體的參數(shù)來(lái)實(shí)現(xiàn)。定義好這些對(duì)象后,我們就可以對(duì)客戶端進(jìn)行初始化和對(duì)服務(wù)器進(jìn)行實(shí)例化。

/*初始化TCP客戶端對(duì)象*/
InitializeTCPClientObject(&mbClient, NULL, NULL, UpdateHoldingRegister, NULL);
/* 實(shí)例化TCP服務(wù)器對(duì)象 */
InstantiateTCPServerObject(&mbServer,          //要實(shí)例化的服務(wù)器對(duì)象
    &mbClient,             //服務(wù)器所屬本地客戶端對(duì)象
    192,                     //IP地址第1段
    168,                     //IP地址第2段
    183,                     //IP地址第3段
    130,                     //IP地址第4段
    502,
    1,
    rCmd,
    0,              //可寫(xiě)線圈量節(jié)點(diǎn)的數(shù)量
    NULL,          //寫(xiě)線圈列表
    0,          //可寫(xiě)寄存器量節(jié)點(diǎn)的數(shù)量
    NULL);  //寫(xiě)寄存器列表

在這一示例中,我們只定義了一個(gè)服務(wù)器所以只需要實(shí)例化一個(gè)就可以了,實(shí)例化函數(shù)會(huì)自動(dòng)將服務(wù)器添加到客戶端管理的服務(wù)器列表中。

3.2 、生成客戶端數(shù)據(jù)請(qǐng)求

作為客戶端需要首先發(fā)起請(qǐng)求。在前一節(jié)我們已經(jīng)講述了生成客戶端請(qǐng)求的函數(shù)。我們只需要調(diào)用該函數(shù)就可以了,但該函數(shù)需要一些參數(shù),我們先來(lái)看看這些參數(shù)是否準(zhǔn)備就緒。

第一個(gè)參數(shù)是客戶端對(duì)象,在前面的描述中我們已經(jīng)生命并初始化完成了這一對(duì)象所以直接使用就好。

第二個(gè)參數(shù)是要生成請(qǐng)求的信息,其定義為一個(gè)結(jié)構(gòu)體變量。

/*定義用于傳遞要訪問(wèn)從站(服務(wù)器)的信息*/
typedef struct{
  uint8_t unitID;
  FunctionCode functionCode;
  uint16_t startingAddress;
  uint16_t quantity;
}ObjAccessInfo;

所以我們需要定義一個(gè)該類型變量,并根據(jù)我們的操作要求給其賦值。我們假設(shè)要實(shí)現(xiàn)對(duì)站地址為1的服務(wù)器對(duì)象的保持寄存器從0-9共10個(gè)寄存器地址的讀取則可實(shí)現(xiàn)為:

ObjAccessInfo tObj={1,ReadHoldingRegister,0x00,10};

第三個(gè)參數(shù)為數(shù)據(jù)列表,讀服務(wù)器時(shí)無(wú)數(shù)據(jù)列表以NULL輸入。第四個(gè)參數(shù)則為生成的讀服務(wù)器數(shù)據(jù)的請(qǐng)求命令,我們按要求定義即可使用,于是我們就可以調(diào)用該函數(shù)生成相應(yīng)的命令了。

uint16_t sendLengh;
uint8_t sendCommand[12];
sendLengh=CreateAccessServerCommand(&tClient,tObj,NULL,sendCommand);

這一例子中我們是讀取服務(wù)器保持寄存器的數(shù)據(jù),如果我們寫(xiě)服務(wù)器對(duì)應(yīng)數(shù)據(jù),這只要將dataList組織好,作為參數(shù)傳入就好,不過(guò)要注意返回的命令的長(zhǎng)度。生成訪問(wèn)服務(wù)器的命令后,作為客戶端主動(dòng)發(fā)送相應(yīng)的命令后等待服務(wù)器響應(yīng)。

3.3 、解析服務(wù)器數(shù)據(jù)響應(yīng)

客戶端接收到服務(wù)器的返回信號(hào)后,就會(huì)調(diào)用解析函數(shù)對(duì)消息進(jìn)行解析并根據(jù)具體的消息對(duì)數(shù)據(jù)對(duì)象進(jìn)行更新。解析函數(shù)非常簡(jiǎn)單僅有兩個(gè)參數(shù),一個(gè)是本地客戶端對(duì)象,一個(gè)是接收到的響應(yīng)消息。

ParsingServerRespondMessage(&tClient,recievedMessage);

解析函數(shù)會(huì)根據(jù)消息內(nèi)容執(zhí)行相應(yīng)的操作。如在這個(gè)實(shí)例中,我們讀取了服務(wù)器的保持寄存器起始地址為0的10個(gè)寄存器,所以解析函數(shù)會(huì)調(diào)用保持寄存器數(shù)據(jù)處理函數(shù)來(lái)更新數(shù)據(jù),最終其實(shí)就是以回調(diào)的方式執(zhí)行。在這里我們將需要實(shí)現(xiàn)更新讀回來(lái)的保持寄存器的參數(shù)的函數(shù)。

/*更新讀回來(lái)的保持寄存器*/
void UpdateHoldingRegisterForClient(uint8_tserverAddress,uint16_t startAddress,uint16_t quantity,uint16_t *registerValue)
{
  uint16_tstartRegister=HoldingResterEndAddress+1;
 
 if(serverAddress==130)
  {
   startRegister=startAddress;
  }
 
  for(inti=0;i

至此我們實(shí)際已經(jīng)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的Modbus TCP客戶端。不過(guò)我們還要說(shuō)明一下,使用不同的協(xié)議棧時(shí),解析函數(shù)中的recievedMessage參數(shù)的具體的形式需要調(diào)整。

4 TCP****客戶端小結(jié)

我們使用協(xié)議棧完成了一個(gè)簡(jiǎn)單的Modbus TCP客戶端應(yīng)用實(shí)例。同樣的我們可以使用相關(guān)的Modbus測(cè)試軟件測(cè)試這一示例。我們使用Modbus Slave模擬Modbus TCP服務(wù)器應(yīng)用,然后使用我們實(shí)現(xiàn)的客戶端與之通訊,以驗(yàn)證我們的客戶端。

客戶端接收到的服務(wù)器反饋如下圖:

上圖說(shuō)明我們基于協(xié)議棧實(shí)現(xiàn)的簡(jiǎn)單Modbus TCP客戶端是正確的。在使用協(xié)議棧實(shí)現(xiàn)Modbus TCP客戶端時(shí),我們需要注意,協(xié)議棧封裝了Modbus TCP客戶端,使得在同一臺(tái)設(shè)備上支持在不同的接口實(shí)現(xiàn)不同的客戶端,也就是在同一設(shè)備可以實(shí)現(xiàn)多個(gè)客戶端以管理不同的服務(wù)器。具體的實(shí)現(xiàn)可以根據(jù)協(xié)議棧進(jìn)一步發(fā)揮。

最后我們來(lái)總結(jié)一下使用協(xié)議棧實(shí)現(xiàn)Modbus TCP客戶端應(yīng)用的步驟,以方便大家使用協(xié)議棧實(shí)現(xiàn)Modbus TCP客戶端應(yīng)用。

第一步,使用Modbus TCP客戶端對(duì)象類型聲明一個(gè)Modbus TCP客戶端對(duì)象。然后對(duì)這個(gè)Modbus TCP客戶端對(duì)象進(jìn)行初始化。初始化Modbus TCP客戶端對(duì)象時(shí)。需要指定所管理的服務(wù)器的數(shù)量,服務(wù)器列表以及更新數(shù)據(jù)的回調(diào)函數(shù)指針。

第二步,生成訪問(wèn)Modbus TCP客戶端的數(shù)據(jù)請(qǐng)求列表。這個(gè)數(shù)據(jù)請(qǐng)求列表是按每一臺(tái)服務(wù)器來(lái)劃分的,將列表的指針存在對(duì)應(yīng)的服務(wù)器本地對(duì)象中。然后在需要的時(shí)候發(fā)送相應(yīng)的數(shù)據(jù)請(qǐng)求。

第三步,解析接收的服務(wù)器數(shù)據(jù)響應(yīng)。協(xié)議棧已經(jīng)定義好了解析函數(shù),只需傳入消息就可自動(dòng)解析。但是更新數(shù)據(jù)的回調(diào)函數(shù)必須根據(jù)具體的變量來(lái)編寫(xiě)。可以每臺(tái)Modbus TCP客戶端獨(dú)立編寫(xiě),也可使用默認(rèn)的函數(shù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1935

    瀏覽量

    78531
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1394

    瀏覽量

    80040
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    296

    瀏覽量

    16920
  • 協(xié)議棧
    +關(guān)注

    關(guān)注

    2

    文章

    145

    瀏覽量

    33927
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux網(wǎng)絡(luò)編程-TCP客戶端如何獲取要連接的服務(wù)IP?

    本篇介紹了在TCP通信中,客戶端通過(guò)UDP廣播,實(shí)現(xiàn)自動(dòng)獲取服務(wù)的IP地址,并進(jìn)行TCP連接的具體方法,并通過(guò)代碼
    的頭像 發(fā)表于 09-27 08:56 ?4683次閱讀
    Linux網(wǎng)絡(luò)編程-<b class='flag-5'>TCP</b><b class='flag-5'>客戶端</b>如何獲取要連接的服務(wù)<b class='flag-5'>端</b>IP?

    Modbus TCP的設(shè)計(jì)與實(shí)現(xiàn)

    對(duì)于Modbus TCP來(lái)說(shuō)與Modbus RTU和Modbus ASCII有比較大的區(qū)別,因?yàn)樗沁\(yùn)行于以太網(wǎng)鏈路之上,是運(yùn)行于TCP/I
    的頭像 發(fā)表于 12-13 15:33 ?2383次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    使用協(xié)議實(shí)現(xiàn)Modbus TCP服務(wù)器應(yīng)用

    自從開(kāi)源了我們自己開(kāi)發(fā)的Modbus協(xié)議之后,有很多朋友建議我針對(duì)性的做幾個(gè)示例。所以我們就基于平時(shí)我們的應(yīng)用整理了幾個(gè)簡(jiǎn)單但可以說(shuō)明基本的應(yīng)用方法的示例,這一篇中我們來(lái)簡(jiǎn)述如何使用協(xié)議
    的頭像 發(fā)表于 12-13 16:23 ?1729次閱讀
    使用<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>服務(wù)器應(yīng)用

    求助!用labview的TCP傳輸協(xié)議傳輸?shù)膱D片不能在客戶端實(shí)時(shí)...

    求助!我編了用labviewTCP傳輸協(xié)議進(jìn)行圖像采集傳輸?shù)?b class='flag-5'>TCP客戶端和服務(wù)客戶端和服務(wù)
    發(fā)表于 12-04 17:09

    labview TCP客戶端

    最近在做一個(gè)labview 客戶端測(cè)試小程序,服務(wù)器采用MFC編寫(xiě),客戶端采用TCP偵聽(tīng)函數(shù),通信可以連接,數(shù)據(jù)也正確,但是服務(wù)器檢測(cè)發(fā)送判斷失敗,個(gè)人推測(cè)是不是
    發(fā)表于 06-30 23:15

    協(xié)議介紹--TCP/IP

    ,和SOCKET API。以及DNS,PING等直接調(diào)用的函數(shù)。5)本協(xié)議可以完成客戶機(jī),服務(wù)器,UDP客戶機(jī),UDP服務(wù)器。還可以方便完成DNS
    發(fā)表于 09-03 15:03

    Modbus TCP轉(zhuǎn)Modbus RTU的實(shí)現(xiàn)

    設(shè)施,而大批量的Modbus RTU設(shè)備已經(jīng)存在。用一個(gè)統(tǒng)一的Modbus TCP客戶端軟件去訪問(wèn)所有的Modbus設(shè)備,統(tǒng)一、集中式管理將
    發(fā)表于 08-10 10:04

    TCP通信時(shí)服務(wù)如何接收客戶端的數(shù)據(jù)?

    畢設(shè)采用的是TCP協(xié)議,組員做的是下位機(jī),C編程,WiFi模塊工作處于客戶端。我負(fù)責(zé)上位機(jī),Labview使用tcp協(xié)議時(shí)服務(wù)
    發(fā)表于 04-14 14:49

    如何使用Socket實(shí)現(xiàn)TCP客戶端

    本教程介紹了如何編寫(xiě)一個(gè)基于 socket 編程實(shí)現(xiàn)TCP 客戶端。我們先將 socket 編程的流程列出來(lái),然后給出具體的實(shí)例。
    發(fā)表于 03-30 07:07

    怎樣去設(shè)計(jì)嵌入式LWIP網(wǎng)絡(luò)客戶端

    嵌入式LWIP網(wǎng)絡(luò)客戶端設(shè)計(jì)教程本文引用地址: 嵌入式技術(shù)的興起使得傳統(tǒng)的基于PC機(jī)的互聯(lián)網(wǎng)技術(shù)優(yōu)勢(shì)不再,嵌入式網(wǎng)絡(luò)客戶端與服務(wù)技術(shù)成為熱點(diǎn),而該技術(shù)需要移植性高、占用資源小的協(xié)議
    發(fā)表于 08-06 06:46

    stm32f107vc lwip tcp客戶端

    模擬的服務(wù)器,實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)收發(fā),通過(guò)上位機(jī)控制板子的LED燈一 打開(kāi)工程《科星F107開(kāi)發(fā)板網(wǎng)絡(luò)應(yīng)用篇之TCP客戶端》打開(kāi)M
    發(fā)表于 08-06 09:17

    JAVA教程之TCP客戶端

    JAVA教程之TCP客戶端,很好的JAVA的資料,快來(lái)學(xué)習(xí)吧
    發(fā)表于 04-11 17:28 ?7次下載

    TCP回響客戶端:RAW API接口

    TCP回響客戶端例程(RAW API)
    的頭像 發(fā)表于 07-05 00:31 ?4108次閱讀
    <b class='flag-5'>TCP</b>回響<b class='flag-5'>客戶端</b>:RAW API接口

    基于LwIP的TCP客戶端設(shè)計(jì)

    上一篇我們基于LwIP協(xié)議的RAW API實(shí)現(xiàn)了一個(gè)TCP服務(wù)器的簡(jiǎn)單應(yīng)用,接下來(lái)一節(jié)我們來(lái)實(shí)現(xiàn)一個(gè)T
    的頭像 發(fā)表于 12-14 15:12 ?2503次閱讀
    基于LwIP的<b class='flag-5'>TCP</b><b class='flag-5'>客戶端</b>設(shè)計(jì)

    基于LwIP的HTTP客戶端設(shè)計(jì)

    前面我們實(shí)現(xiàn)TCP服務(wù)器和客戶端的簡(jiǎn)單應(yīng)用,接下來(lái)我們實(shí)現(xiàn)一個(gè)基于TCP協(xié)議的應(yīng)用
    的頭像 發(fā)表于 12-14 15:19 ?3715次閱讀
    基于LwIP的HTTP<b class='flag-5'>客戶端</b>設(shè)計(jì)
    主站蜘蛛池模板: 深爱激情站 | 国语自产免费精品视频一区二区 | 午夜资源在线 | 欧美破处视频在线 | 久久精品国产6699国产精 | 欧美乱理伦另类视频 | 亚洲人成电影在线 | 婷婷六月在线 | 免费黄色在线视频 | 黄色a三级免费看 | 国产亚洲综合精品一区二区三区 | 国产高清在线播放免费观看 | 夜夜骑狠狠干 | 99色综合| 亚洲一区二区三区首页 | 操您啦 | hs视频在线观看 | 特黄a大片免费视频 | 欧美日韩国产一区二区 | 在线观看中文字幕一区 | 色综合天天综一个色天天综合网 | 国产精品午夜久久 | 极品啪啪 | 天堂成人网 | 久久久久久人精品免费费看 | 初恋视频黄色 | 精品久久久久久午夜 | 久操视频在线播放 | 99久久国产免费中文无字幕 | 中文字幕一区二区在线观看 | 91啪在线视频| 免费看大尺度视频在线观看 | 美女黄18以下禁止观看的网站 | 视频在线观看免费播放www | 九九热最新 | 美女艹逼视频 | 亚洲国产精品自在现线让你爽 | 好大好硬好爽免费视频 | 狠狠色丁香九九婷婷综合五月 | 激情五月综合婷婷 | 日本成人a视频 |