### TVM_Appliciation(PC 프로그램) TCP연결 코드분석 요약 (영우씨엔아이 2025.12.11) ### 1. TVM_Appliciation에 USB나 TCP로 연결되는 보드는 1 HCB, 8 SPB(IPB), 1 TPB. 총 10장. 2. Board Activemode 1 : 모두 USB연결. 2 : HCB만 USB연결, 그외는 모두 TCP연결. 3 : 모두 TCP연결. 기존에는 mode2였으나, 현재는 mode3으로 변경해서 모두 TCP연결로 사용되고 있음. 3. 오류내용 시스템 운용중, TVM_Appliciation과 HCB간의 TCP연결이 끊어지고 재연결이 안되는 현상. 4. 원인파악 소스코드 분석결과, PC에서 운영되는 TVM_Appliciation은 Client 모드로 동작하고, HCB를 포함한 나머지 보드들은 각각 Server 모드로 동작함. TVM_Appliciation과 HCB간의 TCP연결이 끊어졌을때, Server문제인지 Client문제인지, 끊어진 이유가 무엇인지 파악이 필요. 4.1. 로그파악. TcpIpMonitorActive Enabled로 하여 로그를 콘솔창에서 볼수 있도록 설정. TCP연결중 어떠한 원인으로 연결이 끊어지면, 콘솔창에 아래와 같이 메시지가 나와야함. Time : xxxxxxx ::HCB TCP SEND ERROR : ????? TimeOut Time : xxx HCB TCP READ ERROR : xxx TimeOut Time : xxx ?????에 해당하는 5자리의 에러코드를 보면 대략 끊어진 원인을 유추할 수 있음. 12월10일에 HCB와 연결이 끊어지고, 아래의 메시지가 계속 발생한다고 전달받음. (최진구 대리님) Time : xxxxxxx ::HCB Connection fail HCB(server)로 ping 테스트 -> 서버응답없음. 서버응답이 없으므로, port가 막혔는지 확인할 필요없음. (Application Layer 문제가 아님) 이 상황에서는 TVM_Appliciation를 재실행해도 연결안되고, HCB를 재기동해야 연결됨. 종합해보면 TVM_Appliciation쪽 문제가 아니라 HCB 문제라고 판단됨. 4.2. HCB의 문제개선 방향 - 일단 HCB에서 실행되고 있는 TCP서버(fa_server.c)의 문제는 아닌것으로 판단됨. ; TCP 서버가 다운되어도 정상적이라면 Ping은 응답해야함. 그런데 Ping 응답이 없다는것은 이 레벨 이전에 문제가 있다는 것을 의미함. ; 만약 HCB의 NIC레벨에서 다운된것이면, NIC복구 후, TCP서버를 다시 실행해야 하므로, RTOS에서 재기동가능한지 확인필요. - HCB의 NIC가 다운되었다면, 원인 확인후, 개선필요. (RTOS에서 재기동가능한지 확인필요) ; DHCP 서버의 주소할당 범위 설정 확인. 특정업체에서만 문제가 발생하는 상황이므로, 해당 업체의 네트워크 시스템 운영환경이, 폐쇄망이 아닌 오픈망에서 DHCP 서버가 사용되고 있을때, 주소충돌 가능성을 의심해볼 필요가 있음. 즉, 각 보드들은 고정된 사설IP를 사용하고 있으나, 보드에서 사용하는 IP(HCB의 경우, IP : 192.168.0.60, Port : 1002)가 DHCP 서버의 주소할당 범위에 포함되어 있으면, DHCP로 설정된 다른 컴퓨터나 네트워크 장비가 부팅되면서 192.168.0.60 으로 할당받을 가능성 있으며, 이때, 장치간 충돌이 발생함. 그러나, 다른 SPB들은 끊어지는 문제가 발생하지 않는 상황으로 볼때 가능성은 희박하나, 확인해볼 필요는 있다고 보여짐. 가장 간단한 방법은 HCB의 IP를 사용하지 않는 IP로 변경후, 오류발생여부를 확인하는 것임. - RTOS를 포함한 HCB 자체가 다운되었는지 확인후, 개선필요. 5. 기타 - 근본적인 TCP 오류해결책은 아니지만 active mode 2로 변경해서 테스트가 필요할 것으로 보임.