마이크로 컨트롤러 (MSP432)에서 응용 프로그램을 실행하고 있는데, 데이터를 이더넷 케이블에 쓰고이를 PC로 보냅니다.MODBUS TCP 패킷 수신을 위해 포트 번호는 어떻게 작동합니까?
패킷 송신기를 사용하여 MC에서 PC의 포트 (502)에 수신 된 데이터를 봅니다. Data received on PC
위 그림에서 알 수 있듯이 MC의 포트 번호는 전송 된 모든 패킷에 대해 증가합니다. 최대 개수에 도달하면 어떻게됩니까? 다른 포트 번호에서 다시 시작하고 프로세스를 계속 진행합니까? 아니면 중지됩니까?
EDIT1 : 내가 MODBUS를 통해 보낼 수있는 새로운 데이터가이 기능을 매번에 전화 걸기 : Modbus 프로토콜 라이브러리는 http://myarduinoprojects.com/modbus.html
Edit2가에서 사용. 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