산업현장에서 사용하기 위한 통신방식을 선택하는데 있어서 고성능과 빠른 속도 이외에도 네트워크 진단 기능은 매우 중요한 요소이다. EtherCAT은 별도의 진단 도구 없이도 EtherCAT이 가진 고유의 기능만으로 충분히 시스템 오류를 감지하고 정확한 위치를 찾을 수 있다.
Fig. 8: Cycle-synchronous reaction of the master application
Example 1: Motion control system 모션 제어 어플리케이션은 일반적으로 동시에 동작하는 여러축 (3차원보간등)으로 구성된다. 하드웨어 레벨에서 각 축은 EtherCAT 슬레이브 인터페이스가 있는 모터드라이브에 해당하고 , 각 드라이브의 입출력에 해당하는 프로세서 데이터들은 EtherCAT의 논리적인 읽기 쓰기 명령어(LRW)로 처리된다.
보통 하나의 단일 데이터 그램은 모든 드라이브의 프로세스 데이터를 처리하는데 사용된다. 만약, 드라이브 중 하나에서 전원단락과 같은 자체 오류가 발생해서 정상적인 통신이 이루어지지 않을 때 모션 컨트롤 어플리케이션은 데이터 그램과 연관된 워킹카운터를 확인하여 연관된 작업/드라이버 들이 더 이상 올바르게 동작 하지 않는다는 것을 판단해서 관련된 다른 축을 정지시킬 수 있다. (Fig. 8).
Fig. 9: Cycle-synchronous detection of synchronization error
Fig 10: Cycle-synchronous detection of a topology change
Example 2: Loss of synchronization
EtherCAT의 Distributed Clock 기술은, 확실한 동기화 어플리케이션을 구현하기에 적합한 기능이다. 모든 슬레이브 내에 있는 클록들은 네트워크상의 동일한 시간을 기준으로 자체 시간을 정렬하고 슬레이브들의 동기 이벤트를 생성한다.
주기적으로 전송되는 EtherCAT 프레임을 기점으로 동기화 이벤트가 발생하고, 이벤트를 기점으로 프로세서 데이터가 업데이트된다.
경우에 따라 마스터에서 구현된 프레임 전송시각이 지터에 의해 늦게 전송되어 EtherCAT 슬레이브 자체 동기화 이벤트 발생 이후 프레임이 도달하게 되면, 슬레이브는 이벤트가 누락된 카운트가 증가하게 된다. 이 값이 사용자가 정의한 임계값을 초과할 경우 슬레이브는 SafeOP 상태로 바뀌게된다. PLC 프로그램에서는 더 이상 이와 같은 상황에서 발생하는 워킹카운터 변화를 검출 할 수 있고 특정 애플리케이션에 가장 적합한 방식으로 코드 내에서 동기화 손실을 관리할 수 있다. 또한 이러한 오류가 발생하는 원인을 슬레이브에 정의된 레지스터에 기록되며 이를 마스터가 오류 처리에 필요한 정보로 활용할 수 있다. (Fig. 9).
Example 3: Detection of topology changes
브로드 캐스트 데이터 그램의 워킹 카운터 정보는 하드웨어 장애 또는 슬레이브 일부의 연결 오류로 인해 발생할 수 있는 네트워크 토폴로지의 변화를 주기적으로 모니터링 하기 위해 활용할 수 있다.
브로드캐스트데이터그램은 모든 네트워크 슬레이브에서 처리된다. 따라서 이러한 데이터 그램에 사용되는 워킹 카운터 값은 항상 구성된 슬레이브의 수에 비례하게 된다. 케이블 연결이 끊어지거나 네트워크의 일부 슬레이브가 꺼지면 , 네트워크상의 모든 슬레이브가 프레임을 처리하는 것이 아니기 때문에 브로드 캐스트 데이터 그램에 수신된 워킹 카운터 값이 감소한다. 이 이벤트는 마스터가 각 슬레이브의 링크 상태 레지스터 값을 모니터링하거나 , 네트워크 토폴로지가 변경된 위치를 정확하게 감지하는 데 사용될 수 있다. 그림9는 토폴로지 변경 전과 후의 워킹 카운터 값을 보여준다.(Fig. 10).
Conclusion
워킹 카운터를 통해 EtherCAT은 마스터 애플리케이션이 통신주기와 동기적으로 네트워크 상태를 모니터링 하는 데 사용할 수 있는 강력한 진단 메커니즘을 제공한다. 따라서 PLC 프로그램과 같은 마스터 응용 프로그램은 응용 프로그램 소프트웨어의 작업 카운터를 간단하게 평가하여 네트워크 내의 모든 오류 상태에 즉시 대응하거나, 각 슬레이브가 제공하는 표준 진단 레지스터를 액세스하여 특정 오류를 정확하게 감지할 수도 있다. 이 레지스터의 설명 및 사용법은 이 기사의 두 번째 부분에서 설명한다.