目次

MP STUDIO 2 · ユーザープロトコル

ユーザープロトコルは、Modbusを使わない機器(CO2センサー、バーコード・QRリーダー、ASCIIコマンドで通信するインバーター・温度調節器、数値表示器など)と、決まったバイト形式でデータをやり取りするための機能です(V1.3.0以降)。やり取りするバイトの形式と送信のタイミングをユーザープロトコルウィンドウで設定すると、機器がプログラムとあわせてその通信を実行します。ラダーでPUT・GETを使ってバイトを1つずつ扱う必要はなく、受信した値はチェックサムまで一致した後で、指定したメモリに書き込まれます。

図1. ユーザープロトコルウィンドウで設定したフレームとトランザクションが機器で実行される流れ

対応製品と通信ポート

ユーザープロトコルは、機器のシリアルチャンネル(通信ポート1~通信ポート3)に設定します。使用できる通信ポートの数は機種によって異なります。

通信ポート 機種
通信ポート1 MPS-8A4R(T)-S · MPS-8A8R(T)-S · MPS-16A8R(T)-R2 · MPS-16A16R(T)
通信ポート1~通信ポート3 MPS-8A8R · MPS-16A8R(T) · MPS-16A8R8T · MPAシリーズ

通信ポートにつながる端子(RS-232・RS-485・UART)とコネクタの図は、製品ページで確認してください: MPS-8A4R-S · MPS-8A4T-S · MPS-8A8R-S · MPS-8A8T-S · MPS-16A16R · MPS-8A8R · MPS-16A8R · MPS-16A8R8T · MPA Series。MPAシリーズは、通信ポート1がRS-232、通信ポート2がRS-485、通信ポート3がUARTです。

動作の仕組み

ユーザープロトコルは、通信ポートごとにフレームとトランザクションで設定します。

通信パターン 開始 動作 使用例
問い合わせ・受信 周期・ラダーのUPTRIG・値が変わったとき 送信フレームを送り、受信フレームを待ちます。 CO2センサー、インバーターの状態読み出し、温度調節器
受信のみ 常時待ち受け 一致するフレームが来ると値を書き込みます。送信はしません。 バーコード・QRリーダー、連続出力の計量器
受信したら応答 常時待ち受け 一致するフレームが来ると、決めた応答フレームをすぐに送ります。 PCのプログラム、Modbus非対応のHMI
送信のみ 周期・ラダーのUPTRIG・値が変わったとき 送信フレームを送り、応答は待ちません。 数値表示器、プリンター、設定コマンド

図2. 4つの通信パターンで機器と相手機器がやり取りする順序

機器では、次のように実行されます。

通信ポートの準備

ユーザープロトコルを使うシリアルチャンネルは、モードがUser Protocolで、このチャンネルをダウンロードに使うがオフになっている必要があります。

図3. 通信ポートウィンドウでシリアル1のモードをUser Protocolに設定した状態

  1. 設定 → 通信ポートを選択し、使用するシリアルチャンネルのタブ(例: シリアル 1)で、ボーレート・データビット・パリティ・ストップビットを相手機器に合わせます。115200以外のボーレートを使う場合は、先にこのチャンネルをダウンロードに使うをオフにしてください。
  2. モードは、このウィンドウでUser Protocolを選んでも、そのままにしてもかまいません。ユーザープロトコルウィンドウでOKを押すと、NormalモードだったポートはUser Protocolに変わり、そのポートのダウンロードの使用がオフになります。

ユーザープロトコルウィンドウ

ウィンドウを開く

図4. 設定メニューのユーザープロトコル…

ウィンドウは開いたままでラダーを編集できます。定義のない通信ポートでは、+ このポートに作成とテンプレートの一覧が表示されます。

図5. 定義のない通信ポートで、空のポートから始めるかテンプレートを選ぶ画面

テンプレート 含まれる内容
CO2・ガスセンサ — 1 秒ごとに問い合わせ 「問い合わせ・受信」(1秒周期)のトランザクションと、ゼロ点コマンドをUPTRIG 3で送る「送信のみ」のトランザクション。2進の値はD100、チェックサムは2の補数和
CO2・ガスセンサ — 受信のみ(センサ通信例・センサが自分で送るとき) 同じCO2の応答フレームを、要求なしで常に待ち受ける「受信のみ」のトランザクション
バーコード・QR リーダ 「受信のみ」のトランザクション。終端文字CR LFまでの文字列をD200から書き込み、文字数をD190に書き込む
インバータ・温度調節器(ASCII 局番コマンド) 「問い合わせ・受信」(0.5秒周期)。ASCII 10進・16進の値、和のチェックサム(ASCII 16進2桁)、NAKのエラー応答

テンプレートの名前とセル(D100・M100など)は、追加した後で自由に変更できます。定義のあるポートにも+ テンプレートから読み込む…で追加でき、名前が重複する場合は末尾に番号が付きます。

画面構成

図6. ユーザープロトコルウィンドウ(CO2センサーのテンプレートで「問い合わせ・受信」のトランザクションを選んだ状態)

ショートカットキーと元に戻す

キー 動作
Ctrl+Enter OK
Esc ウィンドウを閉じます。変更がある場合は、変更を破棄しますか?と確認します。
Ctrl+Z / Ctrl+Y ウィンドウ内での変更を1段階ずつ元に戻す、またはやり直します。ウィンドウ内に戻せる変更がないときは、プログラム全体の元に戻す・やり直しになります。
Ctrl+S プロジェクトを保存します。OKを押す前にウィンドウで変更した内容は保存されません。
Ctrl+T / Ctrl+M ダウンロード / モニタリング
← → · Alt+← Alt+→ · Delete · Insert チップ帯でのチップ間の移動 · チップの並べ替え · チップの削除 · チップの追加

フレーム

フレームは、バイトの順に並べたチップ(フィールド)で作ります。チップの下にはバイトの位置(1バイト目から)が表示され、チェックサムのチップを選ぶと、チェックサムの計算範囲がチップ帯に色付けされます。チップ帯の末尾の+を押してフィールドの種類を選ぶと、チップが追加されます。

図7. チップ帯の+でフィールドの種類を選ぶ様子

フィールド 送信時 受信時
固定 入力したバイトをそのまま送ります。 同じバイトの場合だけ、このフレームとみなします(チップに一致必須と表示)。
値 PLCのセルの値を、決めた形式のバイトに変換して送ります。 バイトを値に変換して、PLCのセルに書き込みます。
文字列 PLCのセルの文字を送ります。 受信した文字をPLCのセルに書き込みます。文字数を別のセルに書き込むこともできます。
読み飛ばし 埋め用のバイトを、決めた数だけ送ります。 その位置のバイトは見ません。
長さ 指定したフィールドのバイト数を入れて送ります。 実際のバイト数と一致するかを確認し、長さが変わるフレームの終わりを決めます。
チェックサム 計算して入れます。 計算して照合します(チップに照合と表示)。一致しない場合は値を書き込みません。

図8. CO2の応答フレーム(9バイト)のフィールドとチェックサムの範囲

固定バイト

バイト欄には、16進、ダブルクォーテーションで囲んだ文字、制御文字名をスペースで区切って入力してください。下に実際のバイトとバイト数が表示されます。

書き方 例 バイト
16進2桁 FF 01 86 FF 01 86
ダブルクォーテーションで囲んだ文字(ASCII) “01R” 30 31 52
制御文字名(NUL~US・SP・DEL) STX ETX CR LF ACK NAK 02 03 0D 0A 06 15
繰り返し(*N、1~255) 00*5 00 00 00 00 00

1つのチップには255バイトまで入力できます。ASCII以外の文字は、16進で入力する必要があります。FFは16進のバイト0xFFとして読みます(フォームフィードの制御文字名としては扱いません)。

値

PLC アドレスに、値をやり取りするセル(例: D100)またはシンボル名を入力し、形式を選んでください。

図9. 値フィールドのプロパティ(2進2バイト、ビッグエンディアン)

形式 設定 例
2 進 バイト数1・2・4、順序(ビッグエンディアン・リトルエンディアン)、符号(なし・あり) 2バイト、ビッグエンディアン: 01 9A ↔ 410
ASCII 10 進 桁数(1~10、空欄で可変)、埋め(0埋め・空白)、符号(なし・負数のみ -・常に +/-)、小数桁(0~9)、小数点(なし・あり) 4桁、0埋め: 100 ↔ “0100” · 小数桁2、小数点あり: 1234 ↔ “12.34”
ASCII 16 進 桁数、送信時の文字(大文字・小文字) 4桁: 6699 ↔ “1A2B”
BCD バイト数1・2・4、順序 2バイト: 1234 ↔ 12 34
REAL 順序(4バイトの実数) 実数のセル(Rなど)とやり取りします。

文字列

長さ

形式(2進1バイト・2進2バイト・ASCII 10進・ASCII 16進)と数える範囲(何番目から何番目までのフィールドか)を設定してください。送信時はその範囲のバイト数を入れ、受信時は実際のバイト数と一致するかを確認します。相手機器がバイト数に別の数を加えて送る場合は、補正(加える数)にその数を入力してください。

チェックサム

種類 計算
和(8 ビット) · 和(16 ビット) 範囲のバイトを足した値の下位8ビット・16ビット
2 の補数和 バイトの和の2の補数(和を0x100から引いた値)
1 の補数和 バイトの和のビットを反転した値
XOR(BCC) 範囲のバイトの排他的論理和(XOR)
CRC-16 下記の種類のいずれか、または手動で設定した値
LRC 範囲のASCII 16進文字を2文字ずつバイトに変換し、足した和の2の補数(Modbus ASCII方式)

CRC-16は、機器によって計算方式が異なります。CRC-16 の種類を選ぶと、多項式・初期値・入力反転・出力反転・最終XORの5つの欄が埋まり、文字列“123456789”で計算したチェック値が表示されます。チェック値が相手機器の取扱説明書にあるcheck値と同じになる種類を選んでください。5つの欄のいずれかを変更すると、手動設定になります。

図10. チェックサムのプロパティにあるCRC-16の種類の一覧

種類 多項式 初期値 反転(入力・出力) 最終XOR チェック値
MODBUS 8005 FFFF あり 0000 4B37
CCITT-FALSE 1021 FFFF なし 0000 29B1
XMODEM 1021 0000 なし 0000 31C3
KERMIT 1021 0000 あり 0000 2189
X-25 1021 FFFF あり FFFF 906E
ARC 8005 0000 あり 0000 BB3D
USB 8005 FFFF あり FFFF B4C8
DNP 3D65 0000 あり FFFF EA82

格納形式の既定は、MODBUSだけがリトルエンディアンで、ほかの種類はすべてビッグエンディアンです。

受信フレームの終わり

受信フレームがどこで終わるかはフレームの形から決まり、チップ帯の上に終わり: …と表示されます。

表示 終わりを決めるもの
終わり: 固定長 N すべてのフィールドの長さが決まっているフレーム
終わり: 長さフィールド(フィールド N) 前にある長さフィールドの値
終わり: 終端文字 … 長さが変わるフィールドの直後にある固定バイト(例: CR LF、ETX)
終わり: N ms 無通信で フレームの末尾の無通信時間 (ms)の間、バイトが来ないこと
終わり: 不明 終わりを決められないため、直す箇所として表示されます。

末尾の無通信時間 (ms)は、フレームを選ぶと右側のプロパティに表示され、20~10000 msの範囲で設定できます(空欄の場合は使いません)。長さが分からない最後のフィールドは、この時間だけ通信がないと終わったものとみなします。受信途中のバイトが残ったまま回線に100 ms以上通信がない場合も、そのバイトを先頭から破棄します。

図11. 受信フレームの終わりを決める4つの方法と、1バイトずつずらして照合し直す仕組み

プレビューと受信バイトの解析

ウィンドウ下部のプレビューには、送信フレームのバイトが16進で表示されます(値のセルは0、長さとチェックサムは計算値)。その下の入力欄に、相手機器が送ったバイト列を1行に1つずつ貼り付けると、受信フレームとして解析し、フィールドごとに値と結果を表示します。16進(FF 86 01)と、STX “01” ETXのような固定バイトの書き方のどちらも使えます。

図12. CO2の応答バイトを貼り付け、D100 = 410と解析した状態

結果 意味
✓ … 固定バイト・長さ・チェックサムがすべて一致しています。✓ の後に、書き込まれる値がフィールドごとに表示されます(図12)。値フィールドのないフレームではこのフレームに一致しますと表示されます。
… 未着です フレームが終わるには、さらにバイトが必要です。
✕ … バイト目が決めた固定バイトと違います このフレームではありません。
✕ チェックサム — 期待値 … チェックサムが一致しません。計算した値もあわせて表示されます。
✕ … 値に変換できません 数字でないか、セルに収まりません。

一致するチェックサムの種類を探す

相手機器の取扱説明書にチェックサムの方式が書かれていない場合や、チェック値が合わない場合に使います。相手機器が実際に送ったフレームを2つ以上貼り付けてください。チェックサムが一致しない場合は、チェックサムの種類・CRC-16の種類・格納形式・範囲の始まりを変えながら、すべてのサンプルに一致する組み合わせを自動で探し、一致する種類を探すの行に候補ごとの「…」に変更ボタンを表示します。サンプルが1つだけでは偶然一致する組み合わせがあり得るため、「…」に変更はサンプルが2つ以上のときだけ押せるようになります。変更した内容は、OKを押すと定義に反映されます。

図13. 2つのサンプルから「2 の補数和 · 2 バイト目から」を見つけた状態

トランザクション

トランザクション一覧でトランザクションを選ぶと、中央の上部にトランザクションの設定が、その下に送信フレームと受信フレームのチップ帯が表示されます。

図14. ASCIIの局番読み取りトランザクション — 送信フレーム、受信フレーム、エラー応答(NAK)

項目 既定値 説明
名前 通信パターンの名前 トランザクションの名前です。ポート内で重複しないようにする必要があります。
通信パターン — 問い合わせ・受信 · 受信のみ · 受信したら応答 · 送信のみ
開始 周期 「問い合わせ・受信」「送信のみ」: 周期 · ラダー UPTRIG 番号 · 値が変わったとき / 「受信のみ」「受信したら応答」: 常時待ち受け
周期 (ms) 1000 10 ms~1時間。前回の開始時点から数えます。
番号 1 ラダーのUPTRIGの番号(1~255)
見るセル · セル数 — 「値が変わったとき」: 見るセルからセル数(1~32)分のいずれかの値が変わると送信します。機器の起動時にも1回送信します。
応答待ち (ms) 200 「問い合わせ・受信」で応答を待つ時間(20~60000 ms)
再試行 2 応答がないとき、または正しくない応答だけが来たときに再送信する回数(0~10)
状態ワード 空欄(使わない) トランザクションの結果を受け取るワードアドレス(下記)
完了ビット 空欄(使わない) トランザクションが終わると1スキャンの間ONになるビットアドレス
受信数セル 空欄(使わない) 「受信のみ」「受信したら応答」: 一致するフレームを受信するたびに1ずつ増えるワードアドレス(65535の次は0)

パターン別の動作

状態ワード

状態ワードは1ワードで、そのトランザクションの最後の結果を表します。

値(16進) 画面の表示 意味
0000 まだ一度も成功していない 機器の起動後、このトランザクションがまだ一度も終わっていません。この定義が機器のプログラムにない場合も0です。
0001 最後のトランザクション成功 最後のトランザクションがエラーなく終わりました。
F000 応答なし(F0) 応答が来ませんでした。
F100 チェックサム誤り(F1) チェックサムが一致しない応答が来ました。
F200 形の違うバイトだけが来ました(F2) 受信フレームと形の違うバイトだけが来ました。
F300 回線ビジー(F3) 送信が進まず、送れませんでした。
F400 値変換失敗(F4) 受信した値が数字でないか、セルに収まりません。送信する値をフレームにできない場合もF4です。
F500 受信バッファあふれ(F5) 応答を待つ間に、受信バッファがあふれました。
F600 エラー応答(F6) エラー応答として設定したフレーム(NAKなど)を受信しました。

図15. 応答待ち・再試行と、状態ワード・完了ビットが変わるタイミング

文字間の隙間を許す

ポートごとの設定で、新しいポートではオンになっています。

図16. 文字間の隙間を許すをオンにしたときとオフにしたときの、要求バイトの送られ方

ラダーからの開始(UPTRIG)

トランザクションの開始をラダー UPTRIG 番号にすると、ラダーのUPTRIGファンクションがそのトランザクションを実行します。ボタンを押したときだけ設定コマンドを送ったり、必要なときだけ値を読み出したりする場合に使います。

  1. トランザクションの開始でラダー UPTRIG 番号を選び、番号(1~255)を入力します。必要に応じて、完了ビットと状態ワードも入力します。
  2. OKを押します。
  3. ラダーにUPTRIGファンクションを挿入し、同じ番号を入力します。ファンクションパネルのSerialport分類にあるUPTRIG: Start User Protocol Triggerを選ぶか、ファンクションの挿入ウィンドウ(Ctrl+E)にUPTRIG 3のように入力して挿入できます。

図17. M3がONになったときにトリガー3のトランザクション(ゼロ点コマンド)を送るラング

UPTRIGの番号セルを編集すると、ユーザープロトコルで設定したトリガー番号が通信ポート・トランザクション名と一緒に表示され、押して選べます。同じ場所のユーザープロトコルを開くを押すと、ユーザープロトコルウィンドウが開きます。

図18. UPTRIGの番号セルで、定義済みのトリガー番号を選ぶ様子

チェックと警告

ユーザープロトコルウィンドウは、直す箇所のチップや欄を赤またはオレンジ色で示し、ウィンドウ下部の行に最初のメッセージを表示します。メッセージを押すとその場所に移動し、ほか N 件を押すとすべてのメッセージが展開されます。赤い直す箇所があると、直す箇所 N — 直すまでプログラムを作りませんと表示され、ダウンロードできません。直す箇所があってもOKは押せるため、作成中の定義が失われることはありません。

図19. ウィンドウ下部の直す箇所と、赤く表示された欄

ラダーとほかの機能については、次の場合をチェックします。

場合 表示
同じ通信ポートでPUT・GET・PUT_LEN・GET_LENを使用 チャンネルが定数なら赤いセル、変数なら警告。同じ受信バッファを両方が読むと、やり取りするバイトが混ざります。
ユーザープロトコルが受信するセルにラダーが書き込む 警告。ラダーが書き込んだ値は、次の受信時に上書きされます。
受信するセル同士が重なる · 状態・完了・受信数のセルが受信するセルと重なる 警告
Modbus機器テーブルや機器の時計(RTC)ブロックが使うセルと重なる 警告
ポートのモードがUser Protocolでない · モードはUser Protocolだが定義がない · ダウンロードの使用がオン エラー。ユーザープロトコルウィンドウでOKを押すと、ほとんどの場合はあわせて修正されます。
機器のRAMが足りない · プログラムがフラッシュに収まらない エラー。ポート・トランザクション・フレームを減らすか、メモリ領域のサイズを小さくする必要があります。
フレームが255バイトを超える、またはフィールドが32個を超える エラー
送受信バッファがフレームより小さい エラー。設定 → データメモリのSERIAL欄でバッファを増やすか、フレームを小さくする必要があります。

ユーザープロトコルが使うセルは、検索・すべて置換・インスペクターの使用箇所・使用データ一覧にも表示されます。すべて置換でアドレスを置き換えると、ユーザープロトコルのセルも一緒に変わります。

シミュレーション

シミュレーション中は、各通信ポートのユーザープロトコルに仮想相手がつながり、ウィンドウにシミュ仮想相手ビューが加わります。相手機器がなくても、ラダーの動作と状態ワード・完了ビットを確認できます。

図20. シミュ仮想相手ビュー(ASCIIの局番読み取りトランザクションの応答と通信記録)

シミュレーションには、OKを押した定義だけが反映されます。直す箇所がある定義はシミュレーションされません。回線ビジー(F3)と受信バッファあふれ(F5)はシミュレーションされず、スキャン時間と相手機器の処理時間も含まれません。仮想相手の設定は保存されません。

モニタリング

トランザクションカードの状態

モニタリング中にユーザープロトコルウィンドウを開くと、状態ワードを設定したトランザクションのカードに最後の結果が表示されます。「受信のみ」「受信したら応答」のトランザクションには、受信数セルの値と、最後に増えてからの経過時間も表示されます。状態は、選択した通信ポートのトランザクションのものだけを読み出します。

図21. モニタリング中のトランザクションカードの状態(CO2 濃度の読み取り — 最後のトランザクション成功)

カードの表示は、状態ワードの表にある画面の表示と同じです。表示された状態を信頼できないときは、灰色でその理由が表示されます。

灰色の表示 意味
PLC のプログラムが異なる 機器のプログラムが、現在のプロジェクトと異なる可能性があります。ダウンロードすると読み出します。
ダウンロード前の設定 モニタリング開始時の定義にないトランザクションです。OKを押してダウンロードし、モニタリングを再開すると読み出します。
PLC 応答なし · 値は不明 · 新しい値なし · 値は不明 モニター通信で新しい値が届いていません。
制限モニタ · 読みません プログラムのチェックエラーがある間は、ユーザーメモリの状態ワードを読み出しません。
ランタイムが書かない値 ユーザープロトコルが書き込まない値です。機器のプログラムが異なるか、ラダーがこのセルに書き込んでいます。

シミュレーション中は、カードに仮想もあわせて表示されます。OKを押していないトランザクションは確定前の設定、停止したシミュレーションはシミュレーション停止 · …と表示されます。

通信記録

ポートのモニタ中の通信記録をオンにしてOKを押し、ダウンロードすると、モニタリング中の通信記録ビューに、機器がその通信ポートで送受信したバイトが1行ずつ表示されます。通信記録をオンにすると、機器のRAMとフラッシュの使用量が少し増えます。

図22. 通信記録ビュー(CO2の要求と応答)

PC直接試験

PC直接試験は、PLCの代わりにPCのCOMポート(USB-RS485・USB-RS232変換器など)を使って、相手機器と直接やり取りする機能です。相手機器をPLCに接続する前に、フレームとチェックサムが正しいかを確認する場合に使います。ウィンドウで変更した定義(OKを押す前の内容)で試験し、デスクトップアプリでのみ使用できます。

図23. PC直接試験ビュー

例

以下の例は、MPS-8A8Rの通信ポート1~通信ポート3に、3つのテンプレートを1つずつ設定した構成です。ほかの機種でも、通信ポートの番号だけを変えて同じ方法で使用できます。

例1. CO2センサーの値を1秒ごとに読み出す

通信ポート1(9600 · 8-N-1)にCO2センサーを接続して1秒ごとに濃度を読み出し、ボタン入力でゼロ点コマンドを送る例です。

  1. 設定 → 通信ポートのシリアル 1を、ボーレート9600、データビット8、パリティなし、ストップビット1に設定します。
  2. 設定 → ユーザープロトコル…で通信ポート1タブを選び、テンプレートのCO2・ガスセンサ — 1 秒ごとに問い合わせを押します。
  3. OKを押します。通信ポート1がUser Protocolモードに変わります。
  4. ゼロ点コマンドを送るラングをラダーに追加します。
ラング 入力 ファンクション 内容
0 M3(NO) UPTRIG 3 M3がONになると、ゼロ点コマンドを1回送ります。
フレーム バイト
CO2 要求 FF 01 86 00 00 00 00 00 79(固定FF・01・86・00*5 + 2の補数和、2バイト目から)
CO2 応答 FF 86 + 濃度2バイト(ビッグエンディアン → D100) + 読み飛ばし4 + 2の補数和
ゼロ点コマンド FF 01 87 00 00 00 00 00 78

センサーがFF 86 01 9A 00 00 00 00 DFを送ると、D100は410(ppm)になり、状態ワードD101は0001(10進で1)になって、完了ビットM100が1スキャンの間ONになります。

図24. 例1をモニタリングしている様子(ウォッチパネルのD100の濃度・D101の状態・M100の完了ビット)

例2. バーコードリーダーの文字を受信する

通信ポート2(9600 · 8-N-1)にバーコードリーダーを接続し、読み取った文字をD200から受信する例です。

  1. シリアル 2を9600 · 8-N-1に設定します。
  2. ユーザープロトコルの通信ポート2タブでテンプレートのバーコード・QR リーダを選び、OKを押します。
項目 値
フレーム「バーコード」 文字列(D200 · 終端文字まで · 最大32 · 受信文字数D190) + 固定CR LF
トランザクション「バーコード受信」 受信のみ · 常時待ち受け · 完了ビットM101 · 受信数セルD191

リーダーがILOGICS-1234とCR LFを送ると、D190は12になり、D200から2文字ずつ(D200 = I・L)書き込まれます。M101が1スキャンの間ONになり、D191が1増えます。空行(CR LFだけ)が来た場合は、文字数0のフレームとして受信します。

図25. 例2の通信記録(文字の表示)と受信数

例3. ASCII局番コマンドでインバーターの値を読み出す

通信ポート3(9600 · 7-E-1)に局番01のASCIIコマンド機器を接続し、番地100の値を0.5秒ごとにD11へ読み出す例です。

  1. シリアル 3を、ボーレート9600、データビット7、パリティ偶数、ストップビット1に設定します。
  2. ユーザープロトコルの通信ポート3タブでテンプレートのインバータ・温度調節器(ASCII 局番コマンド)を選び、OKを押します。
  3. 読み出す番地を入れるラングをラダーに追加します。
ラング 入力 ファンクション 内容
0 @ON MOVE 100 D10 読み出す番地100をD10に入れます。
フレーム 形 例
局番要求 STX “01” “R” + 番地(ASCII 10進4桁 · D10) + ETX + 和(8ビット)ASCII 16進2桁(2バイト目から) 02 “01R0100” 03 “77”
局番応答 ACK “01” “R” + 値(ASCII 16進4桁 · D11) + ETX + 和(8ビット)ASCII 16進2桁(2バイト目から) 06 “01R03E8” 03 “96” → D11 = 1000
局番エラー(NAK) NAK “01” ETX 受信すると状態ワードD12 = F600

トランザクション「局番読み取り」は、「問い合わせ・受信」、周期500 ms、応答待ち300 ms、再試行3回、状態ワードD12です。このテンプレートは文字間の隙間を許すがオフになっているため、要求を一度に続けて送信します。

図26. 例3の通信記録(両方の表示 — 16進と制御文字)

トラブルシューティング

症状 確認すること
状態ワードが0000のまま ダウンロードしたプログラムにユーザープロトコルが含まれているか、トランザクションの開始がトリガーの場合はラダーのUPTRIGの入力がOFF → ONに変わったかを確認してください。
F000(応答なし) PC直接試験で、同じフレームに相手機器が応答するかを確認してください。応答する場合は、通信ポートの番号と端子(RS-232・RS-485・UART)、RS-485の+・-の配線、通信ポート設定を確認してください。相手機器の応答が遅い場合は、応答待ち (ms)を長くしてください。
F100(チェックサム誤り) 相手機器が送ったバイトを2つ以上貼り付け、一致するチェックサムの種類を探すで確認してください。
F200(形の違うバイトだけが来た) 相手機器が送ったバイトをプレビューに貼り付けて、何バイト目が違うかを確認してください。あわせて、局番・先頭バイト、データビット(7・8)とパリティを確認してください。
F400(値変換失敗) プレビューで、値フィールドの形式(桁数・小数桁・16進)とPLCのセルのサイズを確認してください。
F500(受信バッファあふれ) ボーレートに対してスキャン時間が長いと、1スキャンの間に受信バッファを超えるバイトがたまります。スキャン時間を短くするか、設定 → データメモリのSERIAL欄で受信バッファを増やしてください。128バイトのバッファと115200 bpsでは、スキャン時間が約11 msを超えないようにする必要があります。
要求は送信されるが、相手機器が応答しない(文字間の隙間) 相手機器が文字間の隙間を許容していない可能性があります。ポートの文字間の隙間を許すをオフにしてダウンロードし、もう一度確認してください。
長いバーコードの後半だけが入る 文字列の最大文字数より長いコードが来ると、後ろから最大文字数分だけが書き込まれます。Nを最も長いコードより大きく設定してください。
ノイズがあるのに値が入る 機器はパリティエラーをチェックしません。チェックサムのあるフレームで定義してください。
PC直接試験でポートが開かない モニタリング・ダウンロードやほかのプログラムが、そのCOMを使っていないかを確認してください。

確認事項

関連文書

← MP STUDIO 2 ユーザーマニュアルに戻る