QJ71C24N 통신 카드를 이용하여 Fastech 서보를 제어하였습니다.
Fastech 서보는 전용 프로토콜이 있으므로 여기에 맞추어 프로그램을 작성해야 하는데
(Header + Slave ID + Cync No + Frame Type + Data + CRC + Tail) 이런 순으로 되어 있습니다.
문제는 CRC에 있었습니다. Fastech서보에서 사용하는 CRC는
MODBUS 16비트 CRC Code를 사용하더군요.
처음에는 프로그램으로 일일히 CRC Code를 작성하다보니 프로그램 양이 방대해지고
14축을 제어 하다보니 통신 속도 또한 길어졌습니다.
(CRC CODE 계산하는 사이트 참조 : http://www.lammertbies.nl/comm/info/crc-calculation.html?crc=8005&method=hex)
그래서 GX Works2의 Protocol Support Function Tool을 이용하여 프로토콜을 작성하고 패킷 통신을 하였습니다.
(GX Works2 V1.5 이상을 사용해야 합니다)
[프로토콜 작성]
1. Tool 매뉴에서 선택합니다.
2. 프로토콜 설정 화면이 뜨면 새로 만들기를 누릅니다.
3. ADD 버튼을 누릅니다.
4. 새로운 프로토콜을 작성해야 하므로 Add New 버튼을 누른후
OK 버튼을 누릅니다.
5. Communication Type을 설정을 선택 합니다.
6. 통신 형태를 선택합니다(저는 송수신을 하였습니다)
7. 송신 프로토콜 설정을 선택합니다.
8. 패킷 이름을 작성한 후 Add New 버튼을 누릅니다.
9. 먼저 Header를 선택 합니다.
10. 코드 형태를 선택하고 내용을 작성합니다.
(1) Header : AACC(Fastech 프로토콜 해더)
11. 제대로 입력되었는지 확인한 후 Element를 추가 합니다.
12. Element 형태를 선택합니다.
13. Frame Data 내용을 설정 합니다.
(1) Fixed Length/Variable Length : Data 길이 고정/가변형 설정
(2) Data Length/Maximum Data Length : Data 길이/최대 길이 설정(고정형은 고정 길이/가변형은 최대 길이-Byte)
(3) Unit of Stored Data - Low Byte + Upper Byte/Low Byte Only : 1word(16bit) 사용/8bit 사용 설정
(4) Byte Swap - Disable/Enable : 상하 Byte Data 교환 미사용/사용 설정
(미쓰비시 PLC는 사용으로 설정)
(5) Send Data Storage Area : Data 저장하는 디바이스 설정
* Fastech 서보는 (1) Fixed Length (2) 4Byte - Slave ID(축 번호-1 Byte)+Cync Number(동기번호 1Byte)+
Frame Type (명령어 -1Byte)+Data(내용 1 Byte)
(3) Low Byte + Upper Byte (4) Enable
(5) D5000~5001(D5000만 입력하면 됨) 으로 설정하였슴
14. Frame Data 설정을 확인한 후 Element를 추가 합니다.
15. Check Code를 선택합니다.
16. Check Code(계산 범위)를 설정합니다.
(1) Processing Method : 16-bit CRC(For MODBUS) 선택
(2) Calcurating Range(Start) : 2 (CRC Code 계산 시작 Element No)
(3) Calcurating Range(End) : 2 (CRC Code 계산 종료 Element No)
17. Check Code 설정을 확인한 후 Element를 추가 합니다.
18. Teminator를 선택 합니다.
19. 코드 형태를 선택하고 내용을 작성합니다.
(1) Tail : AAEE(Fastech 프로토콜 테일)
20. 송신 프로토콜 설정을 확인한 후 마침니다.
21. 수신 프로토콜 설정을 선택합니다
22. 송신과 마찬가지로 Element를 추가 합니다.
22. 먼저 Header를 선택 합니다.
23. 코드 형태를 선택하고 내용을 작성합니다.
(1) Header : AACC(Fastech 프로토콜 해더)
24. 제대로 입력되었는지 확인한 후 Element를 추가 합니다.
25. Element 형태를 선택합니다.(송신과 동일)
26. 내용을 설정 합니다.
(1) Fixed Length/Variable Length : Data 길이 고정/가변형 설정
(2) Data Length/Maximum Data Length : Data 길이/최대 길이 설정(고정형은 고정 길이/가변형은 최대 길이-Byte)
(3) Unit of Stored Data - Low Byte + Upper Byte/Low Byte Only : 1word(16bit) 사용/8bit 사용 설정
(4) Byte Swap - Disable/Enable : 상하 Byte Data 교환 미사용/사용 설정
(미쓰비시 PLC는 사용으로 설정)
(5) Send Data Storage Area : Data 저장하는 디바이스 설정
* Fastech 서보는 (1) Fixed Length (2) 4Byte - Slave ID(축 번호-1 Byte)+Cync Number(동기번호 1Byte)+
Frame Type (명령어 -1Byte)+Data(내용 1 Byte)
(3) Low Byte + Upper Byte (4) Enable
(5) D7000~5001(D7000만 입력하면 됨) 으로 설정하였슴
27. Frame Data 설정을 확인한 후 Element를 추가 합니다.
28. Check Code를 선택합니다.
29. Check Code(계산 범위)를 설정합니다.
(1) Processing Method : 16-bit CRC(For MODBUS) 선택
(2) Calcurating Range(Start) : 2 (CRC Code 계산 시작 Element No)
(3) Calcurating Range(End) : 2 (CRC Code 계산 종료 Element No)
30. Check Code 설정을 확인한 후 Element를 추가 합니다.
31. Teminator를 선택 합니다.
32. 코드 형태를 선택하고 내용을 작성합니다.
(1) Tail : AAEE(Fastech 프로토콜 테일)
33. 수신 프로토콜 설정을 확인한 후 마침니다.
34. 위 내용을 반복하여 프로토콜을 추가 합니다.
<Frame Data를 고정형으로 작성하는 경우>
Frame Data를 PLC 내부 레지스터가 아닌 고정으로 작성할려면
1. Element 형태를 선택할 때 고정형을 선택 합니다.
2. Slave ID를 기입합니다.
3. 제대로 입력되었는지 확인한 후 Element를 추가 합니다.
4. 다시 고정형 Element를 선택 합니다.
5. Sync No를 입력합니다.(Sync No는 임의의 값을 입력합니다.: Sync No는 동일 명령인지 여부를 확인하는 Data로
Sync No까지 동일한 프로토콜이 다시 전송되면 Fastech 서보는 무시합니다. - 현대기아차 버전 특별 기능)
6. 입력값을 확인한 후 Element를 추가 합니다.
7. 고정형 Element를 선택 합니다
8. Frame Type(명령어)을 입력합니다.
(헥사2A:서보 On/Off 명령 - Fastech)
9. 입력값을 확인한 후 Element를 추가 합니다.
10. 고정형 Element를 선택 합니다
11. Data를 입력합니다.
(헥사 01은 On / 헥사 00은 Off)
12. 입력 Data를 확인한 후 마침니다.
** Frame Data 영역을 고정형으로 작성하면 CRC 계산시 주의하여야 합니다.
계산 영역이 달라지기 때문입니다. CRC 계산 영역은 Header와 Tail을 제외한(당연히 CRC도)
전부를 설정해야 하므로
Check Code(계산 범위)를 이렇게 설정합니다.
(1) Processing Method : 16-bit CRC(For MODBUS) 선택
(2) Calcurating Range(Start) : 2 (CRC Code 계산 시작 Element No)
(3) Calcurating Range(End) : 4 (CRC Code 계산 종료 Element No)
13. 수신 프로토콜도 고정형으로 작성하려면
동일한 요령으로 작성합니다.
<동일한 요령으로 작성한 프로토콜 예>
<프로토콜 저장및 PLC 전송>
**프로토콜 작성 완료 후에는 저장을 합니다.
**QJ71C24N Moudle에 저장 합니다
(1) PLC와 On-Line 상태이면 PLC 내의 시리얼 통신 카드가 보입니다
(2) 저장하려는 모듈의 원하는 CH(채널)을 선택한후 저장하면 됩니다.
*** 프로토콜 작성에 도움을 주신
미쓰비시 기술영업팀 이용태 과장님과 SKF 유영길 대리님께 감사드립니다.