1.適用製品
XB6S-EC2002+XB6Sシリーズ I/Oユニット
2.使用プラットフォーム
CODESYS プログラミングプラットフォーム
3.問題シーン
ユニットの入力チャネルで入力信号を読み取れない
4.切り分け項目
配線方式/変数アドレスの重複使用/変数更新設定
CODESYSプラットフォームにおいて、実点科技のスライス型リモートI/O EtherCATプロトコルバスカプラXB6S-EC2002及び搭載しているI/Oユニットの入力信号が読み取れない場合、どのように切り分ければよいでしょうか。本文では以下の3つの観点から順を追って切り分けを行う方法を紹介します。
①配線方式が正しいかどうか(チャネル表示灯の点灯有無を判断基準とする)。
②ユニットの変数アドレスが他のプログラム要素に占有されていないかどうか。
③変数更新設定が正しくイネーブルされているかどうか。
ここではXB6S-3200を例に、各シーンにおける具体的な切り分け方法を紹介します。
この種の故障の典型的な特徴は、チャネル表示灯が点灯しないことです。
XB6S-3200を例に、まず配線図を確認します。

XB6S-3200の入力信号はシンクタイプ(NPN)/ソースタイプ(PNP)互換であり、COMの配線によって切り替えます。ソースタイプ(PNP)の入力信号を使用する場合、COMは0Vに接続する必要があります。シンクタイプ(NPN)の入力信号を使用する場合、COMは24Vに接続する必要があります。COMを配線しない場合、入力信号がユニット内部で回路を形成できないため、チャネル表示灯は点灯せず、プログラム上でも当然入力信号を読み取ることができません。
下図に示すように、ユニットの1番目の入力チャネルに紐付けられた変数アドレス「TEST2」がプログラム内でコイルに呼び出されている場合、コンパイルしてもエラーは発生しません。この状態で外部から入力信号があっても、ユニットのI/Oマッピング画面でもプログラム内でも入力値をモニタすることはできません。このコイルに紐付けられた変数の関連付けを解除するか、呼び出されていない変数アドレスに変更することで、初めて入力信号をリアルタイムに読み取れるようになります。

新規プロジェクトのコンフィグレーション作成時、PLCの変数更新設定はデフォルトで無効(タスクで使用されている場合のみ更新)になっています。この場合、ユニットの入力表示灯が点灯していても、入力信号を受信できません。
これをイネーブル1(いずれのタスクでも使用されていない場合はバスサイクルタスクを適用)に切り替え、コンフィグレーションを再度ダウンロードすると、入力変数が外部信号にリアルタイムで追従して更新されるようになります。

以上がXB6S-EC2002および搭載されているI/Oユニットが、CODESYSプラットフォーム上で入力信号を読み出せない場合の一般的なトラブルシューティング方法です。配線→変数アドレス→変数更新設定の順に段階的にチェックすることをお勧めします。