(section_coe_parameter)=
# CoEパラメータ

EtherCATサブデバイスとメインデバイスの間で行われる通信データには、周期パケットによりデータ交換が行われるプロセスデータオブジェクト（PDO）と、メインデバイスからのハンドシェーク方式であるMaibox通信によるデータ交換が行われるサービスデータオブジェクト（SDO）の2種類があります。

いずれもCANopen over EtherCAT（CoE）と呼ばれるCANopenの規格に従ったデータフォーマット規約のオブジェクトディクショナリ（OD）に準じてPDO・SDOデータが構成され、EtherCAT上でデータ交換できます。

TwinCAT上では、任意のサブターミナルを選択したあと、`CoE - Online`タブからODを一覧することができます。

CoEのODは、青下線で示した`Index`と、赤下線で示した`Subindex`という階層構造で一覧構成されます。

![](assets/2024-03-29-13-05-01.png){align=center}

サブデバイスの仕様により異なりますが、PDOデータは、このODの任意の`Index`を選択してマッピングして構成することができます。構成設定を行った後、サブデバイスが`OP`状態になるとマッピングされた`Index`のODのデータグラムによる周期通信が行われます。

ここでは、CoEパラメータを操作する二つのユースケースについてご説明します。

スタートアップパラメータ
    : Beckhoff製のサブデバイスには基本的にメモリバックアップする機構はありません。したがっていちど電源OFFすると設定情報は消滅します。しかしEtherCATの仕組みとしてシステム起動あと、`INIT` -> `PREOP` -> `SAFEOP` -> `OP` という状態遷移を行い、この経過中にメインデバイスに保存しておいたサブデバイスの設定情報を回復する機能が備えられています。これは「スタートアップパラメータ」に登録しておくことで実現可能です。この取り扱い方についてご説明します。

PLCからのCoEパラメータ操作
    : `OP` に遷移したあと、任意のパラメータを変更する方法として、CoEパラメータの読み書きを行うPLCのファンクションブロックが用意されています。この取り扱い方法について説明します。


```{toctree}
:caption: 目次

startup_parameter
../coe_sdo_access/index
```