한국어 English Chinese Russian

질문&답변 게시판 / 기술지원



SSL 암호화로 사용자의 입력정보가 보호되고 있습니다.
No. 1052 UDP 통신 프로그램 문의 2012-03-18

안녕하세요.
VB6으로 통신장비와 UDP로 통신 프로그램을 만들고 있는
개인 프로그래머 입니다.
이곳 제품을 구입해서 사용하고 있지는 않지만
이곳에 전문가분들이 있으신거 같아서 질문드려 봅니다.
바쁘시더라도 잠시 짬을 내서 답변해 주시면 감사하겠습니다.
아무리 해도 해결이 안되서요.
TCS-2001 이라는 컨트롤러와 통신하는 프로그램을 만들고 있는데요.
UDP 통신으로 1:N 구성을 하려 합니다.

통신장비는 LGIS_GLOFA 통신모듈을 사용합니다.
VB6으로 Socket 컨트롤을 얹어서 테스트를 하고 있습니다.
먼저 제 문제는 통신이 잘되다가 소켓의 DataArrival 이벤트가 일어나지 않는 현상입니다.

구성은 먼저 프로그램이 시작되면서
컨트롤러 장비의 갯수만큼 소캣을 배열로 생성을 합니다.
다음 작업시작버튼(컨트롤갯수만큼 생성)을 누르면 누른 커맨드버튼의 배열에 해당하는 소캣에
RemoteHost, RemotePort, LocalPort 3개를 설정하고 .Bind를 합니다.
그리고 timer 가 1초 간격으로 시작됩니다.
timer는 1초 마다 컨트롤러에 읽기 신호를 보냅니다.
.senddata 로 말이죠.
그리고 또 1초 마다 DB에 컨트롤러에 전달할 명령(기록)이 있는지 감시합니다.
읽기 신호를 한번 보내고 그 다음 턴에서는 DB만 읽습니다.
만약 DB에 어떤 센서에 어떤 명령을 기록하라는 기록 명령이 들어오면
.senddata 메서드로 명령을 보냅니다.
즉 1초 간격으로 읽기 신호, 쓰기 신호를 반복하게 끔 프로그램을 해 놨습니다.
그리고 작업중지 버튼을 누르면 .close 합니다.

로직상이라면 정상적으로 작동을 해야 하는데
프로그램을 시작하면 읽기 신호를 잘 보내고 DataArrival 이 잘 일어납니다.
그럼 읽은 값을 DB에 기록하고 다시 감시하고...
그런데 DB에 기록 명령을 넣어서 프로그램이 감지해 기록쪽 .senddata를 하면
거기까지는 DataArrival 이 되는데 그 다음 timer의 턴 부터 DataArrival 이벤트가
발생하지 않아 통신이 불가능해 집니다.
프로그램을 종료하고 다시 켜도 통신이 안됩니다.

그런데 exManager 프로그램의 통신테스트에서 해당 컨트롤러를 설정하고
통신을 해보면 잘 됩니다.
그 후 제 프로그램을 돌리면 또 잘 돌아갑니다.

이것때문에 지금 일주일째 고생을 하고 있습니다.
보내기만 하는 통신방식에서 왜 같은 간격으로 .senddata를 하는데 데이터를 쓰고 난 뒤 부터는
읽지를 못하게 되는건지요.
혹시 초기화를 하거나 기록 명령뒤에 뭔가 다른 행동을 해 줘야 하는건지
도데체 갈피를 못잡겠습니다.

원격도 가능하니 연락이나 답글 달아주시면 감사하겠습니다.

조금이나마 희망이 있는 답변을 들었으면 좋겠습니다.
감사합니다.

글쓴이 안재만 업체명 개인


NO Subject Name Date Read
1052 UDP 통신 프로그램 문의 안재만 2012-03-18 3687
1053 Re: UDP 통신 프로그램 문의 솔내시스템(주) 2012-03-19 3254