SLMP通信の設定手順|FX5UとFX5UCでPLC間通信する方法

SLMP通信の設定手順|FX5UとFX5UCでPLC間通信する方法

カテゴリ: 電気・FA技術
タグ: 電気設計 比較・選定

はじめに

三菱PLC同士でデータをやり取りしたいとき、候補になる通信方式のひとつが SLMP通信 です。

特にFX5シリーズではEthernetポートを標準搭載している機種が多く、追加ユニットなしでPLC間通信を検討できます。

CC-Link IE Field BasicではPLC間通信できるのか?でも触れていますが、CC-Link IE Field BasicはリモートI/Oやインバータ接続向けであり、PLC間通信の本命として考える通信方式ではありません。基礎的な位置づけの整理はCC-Link IE Field Basicとは?にまとめています。

では、FX5同士で、

  • 起動指令を送る
  • 運転中信号を共有する
  • 異常コードを渡す
  • Dレジスタを読み書きする
  • MデバイスをON/OFFする

といった通信をしたい場合、どうすればよいのか。

現場目線では、まず SLMP通信 を検討するのが分かりやすいです。

この記事では、FX5実機を想定して、SLMP通信の設定手順と注意点を整理します。


SLMP通信とは

SLMPは、三菱PLCなどの機器とEthernet経由でデータをやり取りするための通信方式です。

ざっくり言うと、

Ethernet経由で、相手PLCのデバイスを読み書きする通信

です。

CC-Link IE Field Basicが、リモートI/Oやインバータなどを周期的に扱うフィールドネットワーク寄りなのに対して、SLMPは相手PLCのDレジスタやMデバイスを読みに行く、または書き込むような使い方に向いています。

三菱電機のSLMP関連マニュアルでは、SLMP対応機器に接続して他局PLCへデータ変更などの制御を行う場合、相手PLC側プログラムにインターロックを構成し、システム全体が常に安全に動作するようにする必要があると注意されています。

つまり、SLMPは便利ですが、通信できることと、安全に使えることは別です。


今回想定する構成

この記事では、次のような構成を想定します。

主PLC:FX5U
従PLC:FX5UC-32MT/D
接続:Ethernetハブ経由
用途:主PLCと従PLC間でDレジスタ・Mデバイスをやり取りする

イメージとしては、主PLCが従PLCの情報を読みに行き、必要に応じて指令を書き込む構成です。

FX5U(主側)
  │
  │ Ethernet
  │
スイッチングハブ
  │
  │ Ethernet
  │
FX5UC(従側)

ここでは説明を分かりやすくするため、以下のようなデータをやり取りする想定にします。

用途主PLC側従PLC側
起動指令M100M1000
停止指令M101M1001
従側運転中M200M1100
従側異常M201M1101
異常コードD200D1000
現在ステップD201D1001

※アドレスは例です。実際は既存プログラムと重複しない範囲を使います。


SLMP通信を使う前に決めること

設定に入る前に、次の内容を決めておきます。

項目
主PLCのIPアドレス192.168.3.10
従PLCのIPアドレス192.168.3.20
サブネットマスク255.255.255.0
通信方式TCPまたはUDP
読み出すデバイスD1000、M1100など
書き込むデバイスM1000、D100など
通信異常時の処理異常停止、出力OFF、リセット待ちなど

ここを決めずに設定を始めると、あとで何を読んでいるのか、どちらが正なのか分からなくなります。

実務では、先に通信デバイス表を作るのがおすすめです。


手順1:IPアドレスを設定する

まず、各PLCのEthernetポートにIPアドレスを設定します。

GX Works3で、

パラメータ
→ FX5UCPU または FX5UCCPU
→ ユニットパラメータ
→ Ethernetポート

を開き、IPアドレスとサブネットマスクを設定します。

例:

機器IPアドレスサブネットマスク
主PLC FX5U192.168.3.10255.255.255.0
従PLC FX5UC192.168.3.20255.255.255.0
PC192.168.3.100255.255.255.0

同じネットワーク内で重複しないIPアドレスを設定します。

IPアドレスが重複すると、通信できたりできなかったりする不安定な状態になります。


手順2:通信相手機器を設定する

次に、通信相手機器の設定を行います。

FX5 CPUユニットのバージョンによって、設定の考え方が変わる場合があります。

三菱電機のFAQでは、シンプルCPU通信機能に対応しているFX5 CPUユニットと、対応していないFX5 CPUユニットを接続する場合について、ファームウェアバージョン1.110以降のFX5 CPUユニットでは、GX Works3の「Ethernetポート」→「応用設定」→「シンプルCPU通信設定」から、交信相手の機器種別を「SLMP対応機器(QnA互換3Eフレーム)」に設定すると説明されています。

また、ファームウェアバージョン1.110未満のFX5 CPUユニットでは、GX Works3の「Ethernetポート」→「基本設定」→「相手機器接続構成設定」からSLMP接続機器を設定すると説明されています。

つまり、実機ではまず次を確認します。

  • FX5 CPUのファームウェアバージョン
  • GX Works3のバージョン
  • 使用する通信設定画面

ここを確認せずに手順だけ真似すると、画面構成が違って迷いやすいです。


手順3:通信方式を決める

SLMPでは、TCPまたはUDPを使う構成があります。

どちらを使うかは設備の考え方によります。

通信方式特徴現場での考え方
TCP接続を確立して通信する確実性を重視したい場合に使いやすい
UDP接続確立なしで通信する軽い通信に向くが、異常時処理を意識する

PLC間通信で、起動指令や異常コードのような重要な情報を扱う場合は、個人的にはTCPの方が考えやすいです。

ただし、設備標準や相手機器の仕様がある場合は、それに合わせます。iQ-FシリーズのFX5UCPU、FX5UCCPU、FX5UJCPUでは、CPUユニット上のEthernetポートでUDPとTCPの両方に対応した通信設定が可能です(各社SLMPクライアントドライバの対応状況もあわせて確認してください)。


手順4:読み書きするデバイスを決める

次に、どのデバイスを通信に使うかを決めます。

例として、従PLC側に次の領域を用意します。

従PLC側の送信用デバイス

デバイス内容
M1100従PLC 運転中
M1101従PLC 異常中
M1102従PLC 原点復帰完了
D1000異常コード
D1001現在ステップ
D1002サイクルカウント

従PLC側の受信用デバイス

デバイス内容
M1000主PLCからの起動指令
M1001主PLCからの停止指令
M1002主PLCからのリセット指令
D1100主PLCからの品種番号
D1101主PLCからの指示値

ポイントは、送信用と受信用を分けることです。

同じデバイスを両方のPLCが書き込む設計にすると、どちらの値が正しいのか分からなくなります。


手順5:通信デバイス表を作る

SLMP通信では、通信デバイス表を作っておくと保守が楽になります。

例:

No.方向デバイス内容備考
1主→従M1000起動指令1ショットまたは保持
2主→従M1001停止指令異常時はOFF
3主→従M1002異常リセット立上りで処理
4従→主M1100運転中状態監視
5従→主M1101異常中異常停止条件
6従→主D1000異常コードHMI表示用
7従→主D1001現在ステップデバッグ用

この表を作っておくと、後からHMI画面やラダーを確認するときにかなり楽です。


手順6:通信確認用の簡単なラダーを作る

いきなり本番の工程信号を通信させるのではなく、まずはテスト用のデバイスで通信確認をします。

例えば、従PLC側で次のようなテストを作ります。

X0がONしたら D1000 に 1234 を入れる
X1がONしたら M1100 をONする

主PLC側から従PLCのD1000やM1100を読めるか確認します。

通信確認では、最初から複雑な制御に入れない方がよいです。

まずは、

  1. 1ビット読めるか
  2. 1ワード読めるか
  3. 1ビット書けるか
  4. 1ワード書けるか

を順番に確認します。


手順7:パラメータを書き込む

Ethernet設定や通信設定を変更したら、PLCへパラメータを書き込みます。

GX Works3でプログラム入力後に変換し、「オンライン」→「シーケンサへ書込み」から必要な項目にチェックを入れて書き込みます。

実務では、書き込み対象を確認します。

  • パラメータ
  • プログラム
  • デバイス初期値
  • コメント

通信設定を変えたのにパラメータを書き込んでいない、というミスはよくあります。

また、設定変更後はPLCの再起動が必要になる場合があります。実機の動作に合わせて確認します。


手順8:通信テストを行う

設定後は、次の順で確認します。

  1. PCから各PLCへPING確認
  2. GX Works3で各PLCへ接続確認
  3. 主PLCから従PLCのテストデバイスを読む
  4. 主PLCから従PLCのテストデバイスへ書く
  5. 通信異常時の動作を確認する

ここで大事なのは、正常時だけでなく、通信断も確認することです。

例えば、

  • LANケーブルを抜く
  • 従PLCの電源を切る
  • ハブの電源を切る
  • IPアドレスを間違えた状態を確認する

などです。

本番運用では、通信できないときにどう止まるかが重要です。


通信異常時の設計

SLMP通信で一番重要なのは、通信異常時の扱いです。

三菱電機のSLMP関連マニュアルでは、通信障害でリモート他局PLCに問題が起きた場合、即時対応できないことがあるため、通信障害発生時のシステムとしての処理方法を決めること、相手PLC側プログラムにインターロックを構成することが注意されています。

現場では、最低限以下を決めておきます。

項目
通信異常検出一定時間応答なしで異常
異常時の出力起動指令OFF、動作許可OFF
復帰条件通信復旧+作業者リセット
自動再開原則しない
HMI表示「従PLC通信異常」など具体表示

特に、主PLCから従PLCへ起動指令を出す構成では、通信断時に起動指令が保持されたままにならないようにします。通信復旧後にいきなり動き出さないための復帰設計の考え方はPLC異常停止後に安全復帰する設計方法でまとめています。


現場でおすすめの信号設計

PLC間通信では、単純に起動指令だけを送るのではなく、ハンドシェイクを作る方が安全です。

例:

主PLC → 従PLC:起動要求
従PLC → 主PLC:起動要求受信
従PLC → 主PLC:動作中
従PLC → 主PLC:完了
主PLC → 従PLC:完了確認

最低限、次のような信号を用意しておくとトラブル解析しやすいです。

信号内容
通信正常相手PLCと通信できている
起動要求主側から従側へ起動指令
起動受付従側が起動条件OKで受け付けた
動作中従側が動作中
完了従側の処理完了
異常従側異常
異常コード異常内容の数値

通信だけでなく、設備の状態遷移が見えるようにするのがポイントです。


よくあるトラブル

1. PINGは通るがSLMP通信できない

IPアドレスは合っていても、通信設定や相手機器設定が合っていない可能性があります。

確認ポイント:

  • IPアドレス
  • サブネットマスク
  • ポート設定
  • TCP/UDPの違い
  • 相手機器接続構成設定
  • シンプルCPU通信設定
  • ファームウェアバージョン

特にFX5 CPUのファームウェアバージョンによって設定画面・設定方法が変わる場合があるため、三菱電機のFAQ情報を確認しておくとよいです。

2. 書き込みはできるが読み出しできない

読み出し先デバイスや点数指定が間違っている可能性があります。

確認ポイント:

  • デバイス種別
  • 先頭番号
  • 読み出し点数
  • ビット/ワードの扱い
  • 相手PLC側で使っているデバイス範囲

DデバイスとMデバイスでは扱いが違うため、最初はDレジスタ1点、Mデバイス1点のように最小構成で確認します。

3. 通信がたまに途切れる

通信が不安定な場合は、ネットワーク構成も確認します。

確認ポイント:

  • ハブの電源
  • LANケーブル
  • ノイズ源との距離
  • IPアドレス重複
  • 無線区間の有無
  • 通信周期が短すぎないか
  • 複数機器から同時アクセスしていないか

設備内のEthernetは、事務所LANと違ってノイズや電源環境の影響を受けやすいです。

4. 通信復旧後に設備が勝手に動く

これは危険です。

通信が復旧した瞬間に、前回の起動指令や保持データで設備が動く設計は避けるべきです。

対策:

  • 通信復旧後は起動許可をOFFにする
  • 作業者リセットを必要にする
  • 起動指令は1ショット化する
  • 通信異常中に受信データを無条件で信用しない
  • 復旧後は状態確認ステップを通す

SLMP通信に限らず、PLC間通信は復帰設計が重要です。


実務でのおすすめ構成

個人的には、FX5同士の簡単なPLC間通信では、次のような構成が扱いやすいです。

主PLC:通信を管理する側
従PLC:状態を公開する側

主PLC → 従PLC
・起動要求
・停止要求
・リセット要求
・品種番号

従PLC → 主PLC
・通信正常
・運転中
・完了
・異常
・異常コード
・現在ステップ

ポイントは、主従関係を明確にすることです。

両方のPLCが同じデバイスを自由に書き換える設計にすると、原因調査が難しくなります。


まとめ

FX5同士でPLC間通信を行う場合、CC-Link IE Field Basicよりも、SLMP通信を検討した方が分かりやすいケースがあります。

ポイントをまとめると、次の通りです。

  • SLMPはEthernet経由で相手PLCのデバイスを読み書きする通信
  • FX5同士のDレジスタ・Mデバイス共有に使いやすい
  • 事前にIPアドレス、通信方式、使用デバイスを決める
  • FX5 CPUのファームウェアバージョンにより設定画面が変わる場合がある
  • バージョン1.110以降ではシンプルCPU通信設定、1.110未満では相手機器接続構成設定を使うケースがある
  • 最初はテストデバイスで読出し・書込みを確認する
  • 通信異常時のインターロックと復帰条件を必ず作る
  • 通信復旧後に自動再開させない設計が安全

現場で大事なのは、通信を成立させることだけではありません。

本当に重要なのは、

通信が切れたときに安全に止まり、復旧後に勝手に動かないこと

です。

SLMP通信は便利ですが、設備制御に使う以上、必ず異常時の設計とセットで考えるべきです。


関連記事

▼PLC間通信の前提知識・復帰設計もあわせて確認したい方へ


tkappy

WRITTEN BY

TKappy

関西在住の生産技術エンジニア。PLCプログラミング、産業技術、ガジェットの知見を「TECH & ROOTS」として発信しています。詳しく見る

← 目次に戻る