안녕하세요
델파이를 잘하는 편은 아니지만 잘할려고 노력하는 사람입니다.
제가 하고 있는 일은 Micom과 PC 간의 rs232 data통신입니다.
우선 실험 조건부터 말씀드리자면(PC의 OS는 WINDOWS입니다)
1. PC 에서 마이컴으로 1 바이트를 보냅니다
2. 마이컴은 PC로 부터 받은 1 바이트 값를 지정된 값과 비교하여
같으면, 응답 값을 1 바이트를 보내지요
3. 1,2 항를 여러번하여 통신 초기화를 설정합니다
4. 3항에서 초기화 OK 가 되면,
5. PC 는 1 바이트씩 5~10msec 간격으로 6 번 보냄니다
6. 마이컴에서는 6 바이트를 받은 데이타를 비교하여
같으면 응답 값을 1 바이트씩 3~10msec 간격으로 7 byte를 pc로 보냄니다.
7. 5,6,항를 반복실행합니다.
그럼 실험 결과를 말하겠습니다.
첫번째, 우선 통신이 제대로 되는지를 검증하기 위해서 완전 DOS 에서 통신를
해본 결과 통신은 아주 잘 됩니다.
두번째, 한텔 자료실에서 입수한 컴퍼넌트을 이용했습니다(CommInt.pas)
실험결과 통신이 불규칙적으로 됐다 안됐다 합니다
물론, PC에서의 송출은 잘되지만 일정한 간격으로 송출되지 안는 경우도
있습니다
또다른 방법으로 MICOM에서 0~255값을 5msec간격으로 1 바아트씩을
송신하면 PC 에서는 수신 Data를 Memo창에 Display를 합니다
이방법은 수신 Data값이 Display되기는 하지만 종종 불규칙적으로
수신값를 표시하지 않습니다.
세번째, 두번째 실험결과, 문제는 PC에서 일정 간격으로 data를 송신하지 못하고
Micom에서 송신하는 일정간격의 Data를 PC가 수신하지 못한다고 일어
나는 현상이라고 파악.
네번째, 델파이에서 지원하는 TThread를 이용 했습니다.
TThread의 priority를 tpTimeCritical 과 tpHighest로
실험한 결과 조금 좋아지기는 했지만 위의 두번째 결과와
같습니다
위의 결과를 보시고 이해를 하셨으리라 생각됩니다
이런 실험를 해보셨거나 해결방법를 아시는 분은 도움을 주십시요
위의 실험방법에 문제가 있다고 생각하시는 분은 다른 접근 방법을
알려주시면 대단히 감사하겠습니다.
그럼 안녕히 계십시요
--- 악동---