Mitsubishi MC

MC プロトコル(3E フレーム)で Mitsubishi MELSEC の PLC につなぎます。デバイスの記号、10 進と 16 進の番号、読み取り長。

Markdown で表示

Mitsubishi MC のドライバーは、TCP に載るバイナリの 3E フレーム、つまり Q、L、iQ の系列が話すフレームを使う MC プロトコルで、Mitsubishi MELSEC の PLC と話します。値は、おなじみの MELSEC のデバイスの書き方、つまりデバイスの記号に番号を続けた D100 や M50 のような形で指します。Connector の Mitsubishi MC のドライバーの下に機器を追加してください。パネルは、このプロトコルが使う項目だけを見せます。

接続

項目 意味 既定
ホスト PLC のイーサネットのインターフェースの IP アドレスかホスト名。 空
ポート MC プロトコルの接続の TCP のポート(1 から 65535)。欄が空のときは 5007 が灰色で表示され、機器はそのポートで呼び出されます。0 で保存された機器も同じように表示されます。 5007

機器の見出しは、組み立てられた接続先を見せます。たとえば mcp://192.168.0.20:5007 です。このドライバーには読み出し周期の項目がありません。そのタグは 1 秒に 1 回読まれます。PLC の側には、選んだポートに TCP でバイナリの MC プロトコル(SLMP)の接続が必要です。どこで作るかは PLC の準備 にあります。

PLC の準備

MELSEC の CPU が MC プロトコルを提供するのは、プロジェクトで作った接続の上だけです。また、Ethernet ポートが許可していなければ、RUN 中の書き込みを拒否します。設定はエンジニアリングツールで行い、パラメーターと一緒に CPU へ書き込みます(Online > Write to PLC)。CPU は起動時にこれを読むので、書き込んだあとで CPU をリセットするか電源を入れ直します。

設定 GX Works3(iQ-R、iQ-F) GX Works2(Q、L) 設定がないと
機器のポートでの TCP の MC 接続 Module Parameter > Ethernet Port > Basic Settings > External Device Configuration:SLMP Connection Module を表にドラッグし、Protocol を TCP、Port No. を機器のポートにします。 PLC Parameter > Built-in Ethernet Port Setting > Open Setting:Protocol TCP、Open System MC Protocol、Host Station Port No. に機器のポートを設定した行を作ります。 CPU はそのポートへの接続を拒否し、機器はオフラインのままです。
Communication Data Code をバイナリに Module Parameter > Ethernet Port > Basic Settings:Binary。 PLC Parameter > Built-in Ethernet Port Setting:Binary Code。 CPU は ASCII 文字で答えるか、まったく答えず、どのタグも読めません。
RUN 中の書き込みを許可 iQ-R:Module Parameter > Ethernet Port > Basic Settings の Enable/Disable Online Change を Enable All (SLMP) に。 PLC Parameter > Built-in Ethernet Port Setting の Enable online change (FTP, MC Protocol) にチェック。 CPU は普通に読み出しに応じますが、RUN 中はすべての書き込みを終了コード 0x0055 で拒否します。

Q や L の CPU はポート 5000 から 5009 を自分で使うため、その MC 接続には機器の既定値である 5007 を割り当てられません。5010 などの別のポートを割り当て、機器のポートにもそれを入力します。GX Works2 は Host Station Port No. を 16 進数で表示することがあり、その場合 5010 は 1392 です。データコードは Ethernet ポート全体で 1 つなので、そのポートでこの CPU と ASCII で通信しているほかのプログラムも、バイナリに切り替える必要があります。

CPU がポートを拒否したとき、ASCII で答えたとき、RUN 中の書き込みを拒否したときは、機器のページがどの設定かを、この手順と機器が接続するポートとともに通知で伝えます。通知は CPU が受け入れると自然に消えます。RUN 中に拒否された書き込みについては、書き込みを拒否されたタグを挙げます。診断ログとエージェントも同じ手順を読みます。

アドレス指定

Mitsubishi のタグは、タグの「信号源」のカードの 2 つの項目でアドレスを取ります。

項目 意味 受け付ける値 既定
デバイスアドレス MELSEC のデバイスの記号に番号を続けたもの、たとえば D100。必須です。 自由記述 空
読み取る長さ(バイト。空欄なら自動) 1 回の読み取りで運ぶバイト数。空欄ならデータ型から大きさを決めます。 1 以上、または空欄 空欄

アドレスは大文字と小文字を区別せず、いちばん長く一致する記号が勝つので、SD100 は特殊レジスターの 100 であって、ステップリレー S ではありません。番号は、三菱が 16 進で数えるデバイス(X、Y、B、W、SB、SW、DX、DY)では 16 進、そのほかでは 10 進です(X1F は入力の 0x1F です)。受け付けるデバイスの記号は次のとおりです。

記号 デバイス 番号の数え方
M 内部リレー 10 進
SM 特殊リレー 10 進
L ラッチリレー 10 進
F アナンシエータ 10 進
V エッジリレー 10 進
S ステップリレー 10 進
X 入力 16 進
Y 出力 16 進
B リンクリレー 16 進
SB 特殊リンクリレー 16 進
DX ダイレクト入力 16 進
DY ダイレクト出力 16 進
D データレジスター 10 進
SD 特殊レジスター 10 進
R ファイルレジスター 10 進
ZR 拡張ファイルレジスター 10 進
W リンクレジスター 16 進
SW 特殊リンクレジスター 16 進
Z インデックスレジスター 10 進
TC / TS / TN タイマーのコイル / 接点 / 現在値 10 進
SC / SS / SN 積算タイマーのコイル / 接点 / 現在値 10 進
CC / CS / CN カウンターのコイル / 接点 / 現在値 10 進

土台になっている MC のライブラリは、記号 TT、TM、CT、CM、A も受け付けます。「信号源」のカードの読み取り専用の取得元のアドレス(バス上)の行が、編集しているそばから組み立てられたアドレスを見せます。

データ型

データ型の選択肢には、このドライバーが扱う 4 つの型が出ます。

データ型 自動の読み取り長 備考
Boolean 1 バイト ビットのデバイスでは名指しした 1 つのリレー、ワードのデバイスでは 0 でないワード
Int32 4 バイト 連続する 2 つの 16 ビットのワード、たとえば D100 と D101
Float 4 バイト IEEE の単精度を持つ、連続する 2 つのワード
String 16 バイト 読み取りの中身の、最初の NUL までの文字

ワードのデータは MELSEC 固有のリトルエンディアンで届き、自動的に解釈されます。バイト順の選択肢はありません。32 ビットの値は、連続する 2 つのワードのデバイスにまたがります。16 文字より長い文字列では、保存されている文字に届くよう読み取り長を上げてください。読み取り長はバイト数ですが、プロトコルは 16 ビットのワード単位で運ぶので、奇数の長さは、その最後のバイトを運ぶワードまで切り上げられます。

ビットのデバイス、つまりドライバーが 1 つずつリレーを読むデバイスは、X、Y、M、L、F、V、B、S、TS、TC、SS、SC、CS、CC、SB、DX、DY です。そこでのブール値のタグは、入力したアドレスについてだけ答え、ほかについては答えません。そのほかの記号はすべてワードのデバイスで、タイマーやカウンターの現在値(TN、SN、CN)とリンクレジスター(W、SW)もそこに入り、そこではワードの全体が判断します。0x0100 を持つ D100 は true と読まれます。

PLC が拒否した読み取り(範囲の終わりを越えたアドレスなど)は、そのタグを値のないままにし、エラーが終了コードとマニュアルでの意味を示します。たとえば end code 0xC056 (the request goes past the last address of the device) です。機器のほかのタグは読み続けます。

書き込み

アクセスが読み書きか書き込みのみのタグは、読み取りと同じデバイスアドレスへ書き込めます。ビットのデバイスへのブール値の書き込みは、名指しした 1 つのリレーを立てるか落とすかし、隣には触れません。ほかはすべて 16 ビットのワード単位で書かれます。Int32 と Float は 2 ワード、ワードのデバイスのブール値は 1 ワード、文字列はそのタグの読み取り長の全体で、前に文字の UTF-8 のバイトを、その後ろに 0 を並べ、最後のワードまで切り上げます。したがって、長い文字列の上に短い文字列を書くと値が丸ごと置き換わり、古いものは何も残りません。宣言した長さに収まらない文字は、切り詰められるのではなく、長さを診断ログに残して拒否されます。新しいタグは読み取りのみから始まります。

PLC が拒否した書き込みは拒否として返り、同じように終了コードとその意味を示します。CPU が RUN 中であるために拒否された書き込み(終了コード 0x0055)は、それを許可する設定とともに機器のページにも示されます(PLC の準備 を参照)。

機器検出

このドライバーの MC プロトコルには同報による機器検出がないので、Connector は機器検出のボタンを出しません。機器とそのアドレスは手で追加してください。

知っておくとよいこと

  • このドライバーでは、読み出しはどのタグも 1 秒に固定です。いつもの読み出し周期の項目は出ません。
  • このドライバーが話すのはバイナリの 3E フレームだけで、ASCII は使いません。ASCII コードに設定された接続では何も読めません(PLC の準備 を参照)。
  • 届かない PLC があっても起動時の損はありません。機器は背後で再試行を続け、接続がつながるまでそのタグは品質が悪いものとして読まれます。
  • TCP 接続が開くまでの時間は 5 秒、各要求への応答を待つ時間は 10 秒です。接続を受け入れたのに時間内に答えない PLC は、届かない PLC と同じように切断して再試行します。そのエラーにはポートと、よくある 2 つの理由が示されます。ポートが ASCII コードに設定された Q や L の CPU はバイナリの要求に何も答えないこと、そしてそのポートで MC プロトコルを話さない機器も答えないことです。