Q&A

  • [질문] 듀얼 랜카드 통신 시 통신이 끊기는 문제에 대해서

서버 : Win2003, 듀얼 랜카드

프로그램 : Delphi 5

 

하나의 랜카드는 외부망에 연결되어 있고 나머지 하나는 내부망으로 PLC에 연결되어 있습니다.

 

서버프로그램에 ServerSocket, ClientSocket을 하나 씩 올려 두고

 

외부망에서 들어오는 데이타를 ServerSocket에서 받아 Thread를 생성하여 SQL Server에 저장을 한 후

 

Modbus Tcp/IP 패킷을 만들어 ClientSocket으로 PLC로 전송(Sendbuf)을 하고 있습니다.

 

프로그램을 실행하면 외부망의 자료는 정상적으로 저장이 되는데 12시간 정도 지나면 PLC로 가는 데이타가 갱신이 되지 않습니다.

 

ClientSocket의 Error, Disconnect 이벤트를 작성해 두었는데 메시지는 발생하지 않습니다.

 

Socket은 둘다 NonBlocking을 사용하였습니다.

 

테스트를 위해 PLC 대용 프로그램을 만들어 테스트 하면 정상적으로 통신이 되며 Thread에서 Active := True/False를 해도 정상적으로 통신이 되는데

Thread에서 PLC로 전송 후 ClientSocket의 Active := false, IP, Port 설정 Active := true 하면 바로 통신이 안됩니다.(ClientSocket을 끊지 않으면 12시간 정도 전송됩니다)

 

고수님들 도움을 바랍니다.

 

 

0  COMMENTS