[제품종류] IEC1000
[개발환경] Visual Studio 2008 C#
=============== 질 문 ===============귀사의 제품으로 이용하여 RS485통신으로 모터제어를 구현하고 있습니다.
단일 동작은 잘 구현되어 제어하고 있는데, 최종적으로 구현하고 싶은 건 단일동작 여러개를 헙쳐 하나의 시퀀스를 만들고 싶습니다.
1. 명령어 전송
2. 첫번째 동작 완료까지 상태 체크하면서 작업대기 / 동작완료 Flag 수신 시 대기 작업 종료
3. 2번 완료 시 두번째 동작 명령어 전송
4. 두번째 동작 완료까지 상태체크하면서 작업대기 / 동작완료 Flag 수신 시 대기 작업 종료
5. ...
이런식으로 구현하고자 하는데, SmartTimer를 사용하니 작업대기를 건너뛰고 2번째 동작명령이 송신되어 버립니다.
SmartThread를 사용하면 작업대기는 가능한데, 여러개의 단일 동작을 이어 붙이는걸 어떻게 구현해야할지 잘 모르겠습니다.
또한, 이런 시퀀스를 동시에 2~3개 동작시킬려면 어떤 방식이 IEC1000에서 효율적인지 아이디어를 좀 얻을 수 있을까요??
=============== 답 변 ===============
안녕하세요
먼저 IEC-Series의 485 포트는 물리적으로 1Ch만 존재하여, 1:N 구조의 통신시 입력되는 포트로
Slave 장비를 구별할 수 없으므로 SlaveAddress를 통해 Slave장비를 구별하게 됩니다.
따라서 SlaveAddress를 구분하도록 Protocol에 포함 되어 있어야 하며 이 SlaveAddress로
특정 Slave 장비의 Request / Response 작업을 할 수 있도록 프로그램 하셔야 합니다.
질문에서 작업대기를 건너뛰고 2번째 동작명령이 송신되는 현상이 발생한다고 하셨는데,
다른 시퀀스에서 해당 SlaveAddress에 접근하는지 확인해보셔야 할 것 같습니다.
작성하신 내용만으로는 이해가 어려우므로 코드를 같이 보내주시면 문제를 정확하게 파악하는데
도움이 될거 같습니다 .
[이메일 주소] app@smartx.co.kr
[전화]070-7094-5002(S/W담당)
감사합니다