|
안녕하세요.
저도 개인적으로 485로 통신을 준비 중입니다.^^
16진수로 확인을 하실려구요?
저 같은 경우는 간단하게 나마 tc(도스상에서)를 이용해 전송되어진 값(문자)을 간단히16진수로 바꾸어줘서 화면에 출력해주는 형태로 테스트를 하곤합니다.(2진수도 가능)
ex)
중간 생략
key=inport(COM1_ADDR);
printf("16진수 값=%2x\n",key);
도움 되셨으면 하구요.............
그리고 제가 지금 485통신을 준비중인데, 485는 첨이라 요즘 애를 먹고 있답니다.
보통 232인터페이스에다 RTS를 토글링만 해주면 된다는데 아직 감을 잡지 못했습니다.
혹 RTS on/off 해주는 방식을 아시면 답변부탁드립니다. - heartsim@hanmail.net
운 좋은날 되시구요.
오승택 님이 쓰신 글 :
: sysbas(www.sysbas.com)사의 Wincom1.0을 이용해서 온도콘트롤러를 RS485통신으로 제어할려고 합니다. 그래서 프로그램을 다운받은데로 Hiper Terminal을 이용해서 서로 통신을 해보면 잘 작동합니다.
: 그런데 실제로 온도콘트롤러와 통신을 할려면 전송할 패킷(Packet)을 날려서 온도콘트롤러가 반응을하도록 해야하는데 그래서 간단하게 전송패킷을 통신 Command를 이용해서 16진수로 바꿔 패킷의 배열에 그대로 할당하였습니다(여기서 16진수는 DOS프로그램에서 이제까지 계속 사용해와서 아주 작 작동된 문제없는 결과입니다.)
:
: 즉 PACKET[0]=0x82;
: PACKET[1]=0x00;
: ................
: PACKET[6]=0X02; 등으로
:
: 1) 그렇게 한 다음 PACKET의 포인터를 Wincom1->writecom(Port_number, WideString(Packet), strlen(Packet) ); 해서 날렸는데 왜 아무런 반응이 없는지요(아무래도 data가 전송이 안되는 것 같습니다.(DOS나 VC++예제 프로그램은 잘 작동 됨)
:
: 사용해 보신분 있으시면 꼭 답변주시기 바랍니다.
:
: 2) 전송데이타를 제대로 갔는지 확인할 수 있는 방법이 없는지요?(예로서 하이퍼터미널을 이용한다든지....). 하이퍼터미널을 널모뎀케이블을 이용해서 하면 될 것 같은데 전송데이타를 16진수로 어떻게 확인하죠?
:
: 3)위 1)번의 전송신호를 주는 writecom 함수의 두번째 인자인 Packet은 함수정의 에는 (BSTR)로 되어있고 실제 사용시에는 위 1)번과 같이 형식에 WideString으로 해서 사용하는데 정확한 이유를 잘 모르겠습니다.
:
:
: 이상 두서없이 말씀드렸는데 읽어 주셔서 감사합니다.
|