C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50147] Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때...
금목암 [iconms1] 1569 읽음    2007-08-01 09:39
너브 님이 쓰신 글 :
: 안녕하세요...
: 이번에 cport를 이용해서 시리얼 통신으로 서보모터를 제어하려고 합니다.
:
: 시리얼 통신은 첨으이라 그런지 너무나 힘드네요.
:
: 질문은...
: chart cmd[11] = {SOH,'0','0',STX,'0','05',ETX,chk[1],chk[0],'\0'}
:
: 위와같은 명령으러 cport를 써주면
: ComPort1->Write(cmd,10);
:
: 서보측에서 data를 보내오면...
: OnRxChar 이벤트에서 캐랙터를 받아옵니다.
: 그런데 문제는 받아오는 문자가 적을때는 문제가 되지 않는데
: 좀 많아질때에는 여러번 끊어서 이밴트를 발생해서 문자를 받아옵니다.
:
: 명령어가 많이 보내면 마지막 명령어를 보내기 전에 OnRxChar 이밴트가 발생해서 문자를 받아옵니다.
:
: 제가 원하는 것은 하나의 명령어를 보냈을때 그에 대한 답이 다 올때까지 기다렸으면 합니다.
: 어떻게 해야 되나요?
: 혹시 OnRxChar 이벤트가 다 끝났다는 신호는 없을까요???
: (제 짧은 생각이었습니다.)
:
: 하나의 명령어에 하나의 답을 받고 싶은데... 명령어에 다른 답의 길이가 다르기 때문에 OnRxChar 이벤트가 1번 이상 발생할 경우 어떻게 처리해야 되나요???
====================================================

[답변]
RS-485 로 쓰시려고 하는듯 해보이네요
전에 MODBUS등에 사용시 많이 썼는데
PC에서는 가능하시면 RS-232 TO RS-485어댑터 를 쓰시면 자동으로
송수신 전환이 됩니다

프로그램으로 처리하려면 1자씩 받아  저장하다가 1개 패킷에서 종료 문자가 오면
응답을 처리하게 짜면 됩니다

+ -

관련 글 리스트
50101 [질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 너브 1352 2007/07/27
50147     Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 금목암 1569 2007/08/01
50104     Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 쩡이 1538 2007/07/27
50108         Re:Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 또아리 1911 2007/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.