3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

三菱Q#QJ7124N-R4_通信プロトコルを使う

Last updated at Posted at 2019-11-14

QJ7124N-R4とは?

image.png
QシリーズC24は,相手機器とQシリーズシーケンサCPUをシリアル通信用のRS-232,
RS-422/485回線で接続し,次に示すデータ交信を実現するためのユニットです。
今回は通信プロトコルを使って通信することです。
そしてその中にある通信プロトコル支援機能を使います。

通信プロトコルとは?

QJ71C24N(-R2/R4)と相手機器間でデータ交信をする際に,相手機器側のプロトコルでデータ送受信を行うデータ交信機能の1つ。GX Configurator-SC( 通信プロトコル支援機能)にて設定を行う。

通信プロトコル支援機能とは?

image.png

簡単なStepとしては:
GX Configurator-SC( 通信プロトコル支援機能)で使用できる機能。
以下に,機能の概要を示す。

  • 相手機器に合わせたプロトコルの設定
  • QJ71C24N(-R2/R4)のフラッシュROMへの,プロトコル設定データの書込み/読出し
  • デバッグ支援機能

Step By Step:

  1. GX Configurator-SC(通信プロトコル支援機能)で,相手機器のプロトコルを選択または作成/編集し, QJ71C24N(-R2/R4)のフラッシュROMにプロトコル設定データを書き込みます。
  2. 専用命令(CPRTCL命令)で,フラッシュROMに書き込んだプロトコルを実行します。

配線

image.png

  • SDA,SDB信号
    • QシリーズC24から相手機器へデータを送信するための信号です。
  • RDA,RDB信号
    • QシリーズC24が相手機器からデータを受信するための信号です。

image.png

専用命令

image.png
専用命令(CPRTCL命令)を使用することにより,一度に最大8プロトコルの連続実行ができます。
送信データ格納エリア,受信データ格納エリアを指定することで,デバイスやバッファメモリを通信パケットに組み込めます。

  • 送信の場合
    • ユーザはチャンネル番号など,システムに依存する可変要素を,指定したデバイスやバッファメモリに設定します。QJ71C24N(-R2/R4)は,ユーザが指定したデバイスやバッファメモリに設定された値を送信パケットの指定位置に自動付加し, パケットを送信します。
  • 受信の場合
    • QJ71C24N(-R2/R4)は,読み出し値など,必要なデータのみをユーザが指定したデバイスやバッファメモリに自動的に格納します。

説明

image.png
image.png

外見

image.png

LED

image.png

I/O割付

image.png

GXWorks2バージョン

image.png

構成

GXWorks側

まずハードウェア構成を設定します。PCパラメータを開きます。
image.png
次はI/O割付設定→右にあるユニット追加のボタンを押します。
image.png
このような画面が出てきます。
ユニット種別はシリアルコミュニケーション…なになにを選びます。
ユニット形名はQ71C24N-R4を選びます。
先頭アドレスはめんどくさいから0にします。
image.png

GX Configurator-SC

エラーなしにモジュール追加できたら、ツール→通信プロトコル支援機能→シリアルコミュニケーションユニットをクリックします。
image.png
新しいプロトコルFileを作ります。
image.png
以下のような画面が出てきます。
追加をクリックします。
image.png
ここで新規追加を選択し、OKを押します。
image.png
新しいプロトコルが1つ追加されました。
通信タイプは通信送信で、パケットはなにも設定してません。
image.png

仮に相手側の送信Formatはこうにします:

<STX>Station+Cmd+<CR><LF>
Station:ASCII ‘00’-’99’
Cmd:ASCII3文字

そして通信Formatはこうにします:

Station+Response+
Station:ASCII ‘00’-’99’
Response:ASCII3ー8文字

まず送信のほうを設定します。
送信の矢印→のとなりにあるパケット設定をクリックします。
image.png
新規追加で固定データを設定します。
image.png
次はASCII制御コードを選びます。
image.png
ここでSTXを選び、插入し、OKを押します。
image.png
次はStationを設定します。
新規追加→変換なし変数をクリックします。
image.png
構成要素名:なくてもエラーにならないけど、わかりやすくするためになにか入れよう。
固定長・可変長:Stationは"00”から”99”までなので固定長でもOKです。
格納エリア:D2000にします。
image.png
Cmdも3文字だけなので、固定長にして3を設定します。
格納はD2001にします。
image.png
こんな感じですね。
image.png
今度受信側を設定します。
image.png
相手側からもらうResponseが3-8文字なので、ここは可変長します。そうしないとTimeoutになります。最大データ長ちょっと余裕をもって10Bytesにします。
可変長なので、受信格納データ以外に受信データ長格納エリアにも設定が必要です。
つまり、最終的になんBytesもらったかをここに書き込んでいます。
D3021:受信データ長格納エリア
D3022-3026:受信格納データエリア
image.png
最後はCRLF入れれば完成です。
image.png
こんな感じになりますね。
あとちょっとメモしないといけないのは、先作ったプロトコルは番号1ですね。
image.png
次は作ったものをユニットに書き込みます。
image.png
もしモジュール1つ以上あれば正しいアドレスを選んでください。
image.png

PLCプログラム

ここから三菱のプログラムを組みます。自分はあまり三菱得意ではないので本当に
簡単なサンプルしか提供できません。まずはモジュールリセットですね。
なんでY0EとY0Fはそれぞれのチャネルをリセットするデバイスなのか、先のアドレス表に参照してください。もし実際に使うシリアル通信のモジュールは1つ以上なら構造体にしたほうが便利かもしれませんね。
image.png
M1はなにかのトリガーですね。1sパルスでもいいですし、Stepでもなんでもいいです。
そのとき相手側とつながってるチャネルを設定し(1,2)、実行するプロトコルの番号を与え、最後は連続実行数を与えておけば基本的はOKです。
連続実行数はサンプル2で説明します。
image.png
まず、Station番号”01”をD2000に書き込みます。
つぎ、Cmdを”CMD"をD2001に書き込みます。
image.png
同じく、なぜX1EがモジュールReadyなのか、先のアドレス表に参照ください。
使用する命令はG.CPRTCLです。GP.CPRTCLはG.CPRTCLのパルスバージョンです。
”通信プロトコル支援機能でフラッシュROMに書き込んでたプロトコル、および特殊プロトコルを実行します”のことができるようです。
実行終わったたらD10(実行結果が格納されたデバイス)が0ならエラーなし、0でなければなにかのエラーがあることです。
image.png
そのとき、D3020はStation名、D3021は受け取ったデータの長さ、D3022からD3026まではもらったデータです。

連続実行数

例えば、いまのデバイスが一つの項目設定するのに、二回コマンドを送らないといけないことにしましょう。つまりHandShakeがあるって感じですね。

<STX>Station+Cmd+<CR><LF>
Station:ASCII ‘00’-’99’
Cmd:ASCII3文字

そして通信Formatはこうにします:

<STX>Station+”ACC"+<CR><LF>

次に、

<STX>Station+Data+<CR><LF>
<STX>Station+”OK"+<CR><LF>
Station:ASCII ‘00’-’99’
Response:ASCII3ー8文字

そのとき、もちろん二回GP.CPRTCLを実行するのも大丈夫ですがこの連続実行数を”2”にすれば、1つめのプロトコルが実行終わったら自動的に2つめのプロトコルを実行してくれる。(確かに最大8まで。)
(S)+3は2番め実行したいプロトコルの番号。
N2は今度2を入れます。
なのでいまの構成だとまず(S)+2のプロトコル(番号2)実行し、終わったら自動的に
(S)+3(番号3)を実行する、だけです。
image.png

以上になりますーお疲れ様です。

3
3
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?