Q&A

  • Micom <-> PC 간 Serial 통신
안녕하세요

델파이를 잘하는 편은 아니지만 잘할려고 노력하는 사람입니다.

제가 하고 있는 일은 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로

실험한 결과 조금 좋아지기는 했지만 위의 두번째 결과와

같습니다



위의 결과를 보시고 이해를 하셨으리라 생각됩니다



이런 실험를 해보셨거나 해결방법를 아시는 분은 도움을 주십시요



위의 실험방법에 문제가 있다고 생각하시는 분은 다른 접근 방법을



알려주시면 대단히 감사하겠습니다.



그럼 안녕히 계십시요



--- 악동---























0  COMMENTS
    • 돌머리
      2000.09.21 00:34
      안녕하세요 김동원입니다. 아직도 해결하지 못하셨군요.. 이 방법을 써 보세요.. Edit1.Text := Forma...
    • 구창민
      2000.09.21 00:20
      mickyblue wrote: > 날짜 변환입니다 > 뭐가 틀렸는지... > procedure TForm1.Button1Click(Sender: TOb...
    • 박일용
    • 2000.09.21 00:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.09.21 00:23
      박일용 wrote: > DBGrid에서 현재 그리드 Indicator각 가리키는 레코드의 > 색을 바꾸고 싶습니다. > ...
    • 박일용
      2000.09.21 01:13
      구창민 wrote: > 박일용 wrote: > > DBGrid에서 현재 그리드 Indicator각 가리키는 레코드의 > > 색을 ...
    • ajfxlspt
    • 2000.09.20 23:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 황은진
    • 2000.09.20 23:42
    • 3 COMMENTS
    • /
    • 0 LIKES
    • shs
      2000.09.21 00:42
      이렇게 SQL문을 구성하면 안될까요? select a.name, decode(a.CoAddr,null,a.homezipcode,Cozipcode) ...
    • 돌머리
      2000.09.21 00:20
      안녕하세요 김동원입니다. 꼭쿼리문 내에서 처리해야 한다는 조건만 아니면 간단히 처리할 수 있습니다....
    • 투덜이
      2000.09.20 23:57
      직장과 집주소 모두 쿼리하여 D/M발송처리에서 직장주소가 공백일때 집주소로 처리하는구문을 넣으면 어...
    • 구창민
    • 2000.09.20 23:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 질문맨
      2000.09.21 00:13
      main 폼 이름이 A , Dialog 폼 이름이 B 라고할 때, Dialog 폼에 uses TA 를 썼읍니다. 그리고 Dial...
    • 구창민
      2000.09.21 00:17
      Dialog폼의 Unit명을 메인유닛의 uses 에 기술하시면 해결될거 같습니다. 즐거운 프로그래밍 하시길...
    • kissme
    • 2000.09.20 23:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.09.20 23:16
      kissme wrote: > 자료실에.. 있는 컴포넌트를 사용할려면.. > Rxlib를 꼭 설치해야 하나요?.. > ...
    • 디비자
    • 2000.09.20 22:47
    • 3 COMMENTS
    • /
    • 0 LIKES
    • miki
      2000.11.25 21:53
      with Query1 do begin close; SQL.Clear; SQL.add('select *'); SQL.add(' from clients...
    • 구창민
      2000.09.20 23:22
      디비자 wrote: > SQL 의 LIKE를 사용하는데 이상하게 안되네요. > 이렇게 했거든요? > > with Quer...
    • 임형호
      2000.09.20 23:17
      컴파일시에 에러가 발생하지 않았다면...문장은 맞는것 같은데요. 그런데 아래코딩을 보면 execsql이라는...
    • 나상학
    • 2000.09.20 22:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.09.20 23:22
      나상학 wrote: > Server와 Client간의 소켓연결에서 파일전송시 > Tcp/ip기반에서 파일의 크기에 따라 일...
    • 나상학
      2000.09.22 01:59
      답변 고맙습니다.. 많은 도움이 될 것 같네요.. 구창민 wrote: > 나상학 wrote: > > Server와 Client...
    • Cha
    • 2000.09.20 21:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.09.20 23:26
      Cha wrote: > 텍스트 화일의 확장자를 임의로 바꿔서 저장하고자 합니다. > SaveDialog를 사용해서여.. ...
    • 초초보
    • 2000.09.20 20:46
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.09.20 23:29
      초초보 wrote: > 안녕하세요 초초보입니다. > 드라이브 콤보박스에서 CD롬에 CD가 없으면 I/O에러가 뜨는...
    • 초초보
      2000.09.21 00:32
      구창미님~~ 그렇게 해두 I/O에러가 납니다. 염치없지만 다른 방법은 또 없나여? 답변 감사드립니다. ...
    • 구창민
      2000.09.21 01:06
      제이름은 구창민이구요..^^; 소스를 올리셨으면 더 좋았을 것을요. 제가 어떻게 작성을 해 두셨는지 모르...
    • Cha
    • 2000.09.20 20:39
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 악동
    • 2000.09.20 20:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 남기용
    • 2000.09.20 20:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 남기용
      2000.09.21 00:51
      남기용 wrote: > Blocking방식을 이용을 해서 TWinSocketStream을 사용합니다. > Client의 요구없이 Serv...
    • 호야
    • 2000.09.20 20:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2000.09.20 23:20
      이상하네요. 음...전 4개입력후 아래코딩데로 하니까 4가 나오는데요. 호야 wrote: > ListBox1에 4개...
    • mabari
    • 2000.09.20 20:06
    • 0 COMMENTS
    • /
    • 0 LIKES