오늘은 인디게이터(CTAplus, CT-100)의 통신데이터를 받는것을 알아볼께요.
PLC 프로그램을 하시는 분 중, 상위1%가 못하는 것이 시리얼 통신이더라구요.
왜냐하면 프로토콜을 보고 짜도 보이지 않으니깐요. 그래도 요즘보면 헥사로 바꿔주는 프로그램도 있고 편해 지기는 했지만...
그래도 그것으로는 정답이라고 할 수 없죠.
시작합니다.
BCD로 받는 것이 아니고 RS232C 통신으로 받구요. QJ71C24N의 1CH로 연결되어 있습니다.
아래그림은 SWITCH SETTING 입니다.
위의 슬롯4번 SWITCH1,2으로 설정하시면 됩니다.
아래는 인디게이터 프로그램 입니다.
1번 루틴에서 로드셀에 데이터 요구 프로토콜을 보내게 됩니다.
4번 루틴에서 로드셀에서 받은 데이터를 받게 됩니다.
6번 루틴에서 워드를 바이트로 바꾸게 됩니다. 왜냐하면 필요한 부분에 인디게이터 값을 읽기 위해서죠.
7번 루틴에서는 필요한 데이터 부분을 바이트에서 워드로 합치고 나서, VAL 명령으로 INT 데이터로 변환합니다. 이 부분이
인디게이터 값을 실물이랑 똑같이 나옵니다.
아래는 CALL 부분인데요.
P31은 인디게이터에 데이터 전송 프로토콜 ID1에 전송하게 되는 프로토콜 명령입니다 (ID01P)
여기서 인디게이터 ID설정하는 부분이 있는데 RS232, RS422,RS485 상관없이 ID를 설정해 줍니다.
어떤 매뉴얼에서는 ID설정이 RS232가 해당이 안되는 것으로 보이는 것이 있습니다.
만약 ID를 0으로 한다면 통신모듈에 버퍼가 계속 차서 에러가 발생합니다.
그래서, ID를 지정하여 요구를 하고 받으면 이런 현상이 없어집니다.
인디게이터 참 쉽죵.
프로토콜도 간단하고....
단, 어려운건 데이터를 읽었을 때 표현만 잘 하면 되는게 여기서 키 포인트라고 할 수 있습니다.
수고하세요.