No. 1053 | Re: UDP 통신 프로그램 문의 | 2012-03-19 | ||
---|---|---|---|---|
안녕하세요. 원격으로 봐드린대로 쿼리 수정해보시고 안되면 다시 연락 주세요. 감사합니다. > 안재만 wrote: > ------------------------------------ > 안녕하세요. > 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 | 3789 |
1053 | Re: UDP 통신 프로그램 문의 | 솔내시스템(주) | 2012-03-19 | 3353 |
|
|||