我在我的微控制器(MSP432)上運行一個應用程序,它將數據寫入以太網電纜並將其發送到PC。端口編號如何工作以接收MODBUS TCP數據包?
我正在使用數據包發件人查看從MC上的PC端口(502)上收到的數據。 Data received on PC
正如我們在上圖中看到的,MC的端口號對於每個發送的包都是遞增的。 達到最大數量時會發生什麼? 它會重新啓動其他端口號並繼續進行或停止?從http://myarduinoprojects.com/modbus.html
EDIT2使用Modbus協議庫:
EDIT1 使這一功能,每次我有一個新的數據通過MODBUS發送呼叫。 Mb.Req(MB_FC_WRITE_MULTIPLE_REGISTERS,0,11,0);
if (MbmClient.connect(ServerIp,502)) {
digitalWrite(GREEN_LED, HIGH);
#if DEBUG
//Serial.println("connected with modbus slave");
// Serial.print("Master : ");
for(int i=0;i<MbmByteArray[5]+6;i++) {
if(MbmByteArray[i] < 16){
//Serial.print("0");
}
//Serial.print(MbmByteArray[i],HEX);
if (i != MbmByteArray[5]+5) {
//Serial.print(".");
} else {
//Serial.println();
}
}
#endif
MbmClient.write(MbmByteArray,13+(Count*2));
MbmCounter = 0;
MbmByteArray[7] = 0;
MbmPos = Pos;
MbmBitCount = Count;
*state= true;
MbmClient.stop();
delay(100);
digitalWrite(GREEN_LED, LOW);
} else {
*state= false;
MbmClient.stop();
}
有沒有辦法看到所有的TCP消息?我的意思是包括3次握手?在MC中,你如何發送消息?使用TCP套接字?或者只是發送一個包含含有TCP消息的IP數據報的以太網幀? – rodolk
我使用IP地址(PC上的以太網IP),端口號進行了連接。那是你問的嗎? – JKV
它看起來像是每個消息使用一個新的連接,這是非常糟糕的。端口號將環繞,或者如果它們使用得太快,客戶端將會出現綁定錯誤。 – EJP