[쉽고 간단한 안내서] TwinCAT에서 EtherCAT IO들의 상태 진단
모든 장비나 기기를 운용하는데 있어서 현재 상태에 대한 빠르고 정확한 상태 진단은 유지보수에 대한
시간 및 비용을 단축시켜줄 뿐만 아니라 얘기치 않은 사고를 막아주는 수단으로, 매우 중요한 부분중의
하나라고 할 수 있습니다.
이번 안내서에서는 TwinCAT을 통해 EtherCAT IO들의 Hardware Error, Software Error의
상태를 진단할 수 있는 방법에 대해 알아보도록 하겠습니다.
EtherCAT은 하드웨어 및 소프트웨어 수준에서 광범위한 진단 정보를
제공합니다. 이 진단 정보는 다음 방식에 따라 분류할 수 있습니다.
① Hardware
Error
- 물리적 도구가 영구적 또는 일시적으로 중단되고 프레임이 일부 네트워크
장치에 도달하지 못하는 상태.
- 프레임이 모든 네트워크
장치에 도달하지만 프레임에 포함된 정보가 손상된 상태.
② Software Errors
- 초기화 단계 중에 슬레이브가 Operational
상태에 도달할 수 없는 경우.
- 오류 없이 작동했던 슬레이브가 작동 중에 Operational 상태를 벗어난 경우.
아래에서 각 Hardware Error 와 Software Error에 대한 진단 방법과 추가적으로 TcEtherCAT.lib
라이브러리를 통해 PLC에서 Function Block을
이용하여 EtherCAT Device의 상태를 진단하는 방법에 대해 알아보도록 하겠습니다.
1. Hardware Diagnostics
1) Hardware Status Overview
- EtherCAT 마스터
디바이스는 두 가지 다른 오류 카운터를 지원합니다.
① Rx Errors : 슬레이브 측의 RX 오류 카운터와 유사하며 연속된 전류/전압 값에 문제가 있을 경우
카운트 합니다. 네트워크 카드에 의해 보고됩니다.
② Lost Frames : EtherCAT
루프의 어딘가 중단되어 마스터로 돌아오지 않는 프레임이 발생 했을 경우 카운트 됩니다. 손실된
프레임은 항상 TwinCAT에 의해 손실된 프레임에 포함된 모든 데이터그램에 대해 작업 카운터 에러로
보고됩니다.
-
EtherCAT 슬레이브에 대한 hardware 에러는 수신되는 데이터의 오류를 CRC로 검출할 수 있습니다. EtherCAT IO 모듈에 따라 Port 수가 다르며 각 모듈의 Port 수만큼 CRC가 표현됩니다. (아래 예시 그림 참조)
- 하드웨어 에러는
전원을 켜는 과정에서 발생할 수 있으며 TwinCAT에 의해 계산(Counting)
될 수 있지만 이때 발생하는 에러는 문제를 발생시키지는 않습니다. 따라서 가능하면 하드웨어
문제를 확인할 때는 응용 프로그램이 시작된 후 모든 에러 카운터를 클리어 하고 작업 중에 에러가 카운트 되는지 모니터링 하는 것이 좋습니다.
2) Link Lost Error Counters / Invalid Frame Error Counters
① Link Lost
Error Counters
- 두 네트워크 장치 간의 물리적 연결이 완전히 중단되어 신호가
인접 장치에 도달되지 않을 경우 발생합니다.
- 링크 손실의 가장 가능성이 높은 이유는 다음과 같습니다.
• 손상된 케이블 또는 커넥터, 불량/산화된 접점
• 하나 이상의 슬레이브 장치에 대한 전원 공급 장치 손실
- 포트의 물리적
링크가 중단되면 슬레이브에 의해 해당 Link Lost Counter가 증가합니다.
② Invalid
Frame Error Counters
- 하드웨어 신호가
인접 장치에 도달하더라도 수신된 메시지가 원래 전송된 메시지와 일치하지 않는 경우가 발생합니다.
- 프레임 손상의 가장 가능성이 높은 이유는 다음과 같습니다.
• 외부 EMC 장애(특히
산발적인 카운터 증가의 경우)
• 손상된 장치(특히
빠르고 체계적인 카운터 증가의 경우)
- 하드웨어 신호가
손상되면 슬레이브에 의해 해당 Invalid Frame Counter가 증가합니다.
③ 카운터는 TwinCAT에서 텍스트 지향적인 방식으로 표현됩니다.
3) Emergency Scan
- Emergency
Scan을 통해 네트워크의 영구적인 하드웨어 문제를 빠르게 확인할 수 있습니다. (케이블, 커넥터, 디바이스에 대한 손상)
단, Emergency
Scan을 통한 무작위/산발적 장애는 감지하기가 어렵습니다.
2. Software Diagnostics
1) Software Level – The EtherCAT State
Machine
- 소프트웨어 수준의 진단 정보는 일반적으로 EtherCAT State
Machine Operation과 관련이 있습니다. 슬레이브의 상태가 마스터가 예상한 상태에
있지 않을 때 AL Status Code Register 0x0134에 에러 코드를 기록합니다.
①
Initialization Errors (슬레이브가 시작하는 동안 Operational 상태에 도달하지 않음):
상태 전환
동안 마스터는 ESI 파일 내용을 기반으로 슬레이브에 초기화 명령을 보냅니다. 슬레이브가 하나 이상의 시작 매개변수가 유효하지 않은 것으로 감지하면 해당 상태 전환을 거부합니다.
② Runtime
Errors (슬레이브가 Operational에서 더 낮은 상태로 전환):
적절하게 구성되고
Operational 상태에 제대로 도달한 슬레이브는 이후 작동 중에 오류를 감지하고 자발적으로 더 낮은 상태로 상태 전환을 수행할
수 있습니다.
2) Diag History
- 모든 어플리케이션 별 오류에 대해 CoE 슬레이브 장치는 선택적으로
진단 기록 개체 0x10F3을 지원할 수 있습니다. 이 개체가
지원되는 슬레이브의 경우 TwinCAT에서 “Diag History” 탭을 표시합니다.
3. TcEtherCAT PLC Library
- TwinCAT2, TwinCAT3는 TcEtherCAT.lib 라이브러리를
통해 EtherCAT 네트워크를 주기적으로 진단할 수 있는 FB를
제공합니다.
1) FB_EcGetAllSlaveAbnormalStateChanges
- 마스터에 연결된
모든 슬레이브의 얘기치 않은 EtherCAT 상태 변경을 읽을 수 있습니다. 호출이 성공하면 pBufAddr 매개 변수에서 전송된 버퍼에는 모든
슬레이브의 얘기치 않은 상태 변경 횟수가 UDINT 배열로 포함됩니다.
얘기치 않은 EtherCAT 상태 변경은 EtherCAT
마스터가 요청하지 않은 경우를 의미합니다. (EX : EtherCAT 슬레이브가 OP 상태에서 SAFEOP 상태로 전환되는 경우)
2) FB_EcGetAllSlaveAddr
- 마스터에 연결된 모든 슬레이브의 주소를 읽을 수 있습니다. 호출이
성공하면 매개 변수 pAddrBuf에 전달된 버퍼는 모든 슬레이브의 주소를 UINT 배열로 포함합니다.
3) FB_EcGetAllCrcErrors
- 마스터에 연결된 모든 슬레이브의 CRC 오류 카운터를 읽을 수 있습니다. 슬레이브의 개별 포트에서 CRC 오류가 추가됩니다.
4) FB_EcGetAllSlavePresentStateChanges
- 마스터에 연결된
모든 슬레이브의 EtherCAT 상태가 “Slave is present”에서 “INIT_NO_COMM”으로 변경된 상태를 읽을 수 있습니다. 호출이 성공하면 pBufAddr 매개 변수에서 전송된 버퍼에는 모든
슬레이브의 상태 변경 횟수가 UDINT 배열로 포함됩니다.
EtherCAT 상태가 “Slave is present”에서
“INIT_NO_COMM”으로의
변경은 슬레이브에 대한 연결이 중단되었음을 의미합니다.
5) FB_EcGetConfSlaves
- EtherCAT 마스터 개체 디렉토리에서 구성된 슬레이브 목록을 읽을 수 있습니다.
6) FB_EcGetLastProtErrInfo
- 가장 최근의 Mailbox 프로토콜 오류와 관련된 추가 오류 정보를
읽는 데 사용할 수 있습니다. 오류 없는 Mailbox 명령은
매번 마지막 오류를 재설정합니다.
7) FB_EcGetMasterDevState
- EtherCAT 마스터의 현재 상태를 읽을 수 있습니다.
8) FB_EcGetScannedSlaves
- EtherCAT 마스터 개체 디렉토리에서 현재 사용 가능한(검색된) 슬레이브 목록을 읽을 수 있습니다. 이를 위해 EtherCAT 슬레이브의 EEPROM을 읽는 동안 온라인 검색이
실행됩니다. 연결된 슬레이브 수에 따라 검색 프로세스에 시간이 걸릴 수 있습니다.
9) FB_EcGetSlaveCount
- 마스터에 연결된 슬레이브 수를 확인할 수 있습니다.
10) FB_EcGetSlaveCrcError
- 슬레이브의 개별 포트(A, B 및 C)의 CRC 오류 카운터를 읽을 수 있습니다. 호출이 성공하면 출력 변수 crcError(유형: ST_EcCrcError)에 요청된 CRC 오류 카운터가 포함됩니다. 최대 3개의 포트를 가진 슬레이브에서만 사용할 수 있습니다.
11) FB_EcGetSlaveCrcErrorEx
- 슬레이브의 개별 포트(A, D, B 및 C)의 CRC 오류 카운터를 읽을 수 있습니다. 호출이 성공하면 출력 변수 crcError(유형: ST_EcCrcErrorEx)에 요청된 CRC 오류 카운터가 포함됩니다. 최대 4개의 포트를 가진 슬레이브(예: EK1122)에도 사용할 수 있습니다.
12) FB_EcGetSlaveIdentity
- 개별 EtherCAT 슬레이브 장치의 CAN open ID를 읽을 수 있습니다. 호출이 성공하면 유형이 ST_EcSlaveIdentity인 출력 변수 ID에 요청된 ID 정보가 포함됩니다.
13) FB_EcGetSlaveTopologyInfo
- 토폴로지 정보를 확인할 수 있습니다.
14) FB_EcMasterFrameCount
- 마스터에 구성된 EtherCAT 프레임의 수를 확인할 수 있습니다.
15) FB_EcMasterFrameStatistic
- EtherCAT 마스터의 프레임 통계를 읽을 수 있으며 순환 프레임과 비순환(대기
열) 프레임으로 구별됩니다. 비순환 프레임은 초기화 또는 EtherCAT 슬레이브에 대한 매개 변수 액세스에 사용됩니다. 프레임이
마스터로 돌아가지 못하거나 유효하지 않은 경우 프레임이 손실된 것으로 간주됩니다.
손실된 프레임
수(즉, 손실되거나 잘못된 순환 프레임 수), 초당 순환 프레임 수, 손실 대기 중인 프레임 수(즉, 손실되거나 잘못된 비순환 프레임 수), 초당 대기 중인 프레임 수가 출력 됩니다.
16) FB_EcMasterFrameStatisticClearCRC
- 모든 EtherCAT 슬레이브의
CRC 오류 카운터를 삭제할 수 있습니다.
17) FB_EcMasterFrameStatisticClearFrames
- 손실된 프레임 카운터를 삭제할 수 있습니다.
18) FB_EcMasterFrameStatisticClearTxRxErr
- 네트워크 카드의 미니 포트 드라이버의
오류 카운터를 삭제할 수 있습니다.
위 내용에 대해 심화 내용이 필요하신 경우, 해당 내용을 댓글로 적어 주시면 다음 연재 시 반영하도록 하겠습니다. 문의사항은 아래 연락처로 연락 부탁드립니다. 전화 :
02-2107-3242 (대표전화, 내선번호 1번: 영업 및 마케팅, 내선번호 2번: 기술) 홈페이지 : https://www.beckhoff.com/kr/ 제품문의 : Info-KR@beckhoff.com 기술문의 : support-kr@beckhoff.com |
참고자료
EtherCAT Diagnostic [링크]
Beckhoff Korea
본 문서의 무단전재 및 재배포를 금지합니다
본 문서는 공식 매뉴얼이 아닌, 교육용 참고자료임을 명시합니다
댓글
댓글 쓰기