• 検索結果がありません。

(3) FA-M3の電源を投入する。

F- BASIC Ver. 6.3による例

 通信条件

伝送速度: 9600bps

パリティ: なし

データ長: 8ビット ストップビット: 1ビット

プロトコル: パソコンリンク(チェックサムなし)

STX$=CHR$(2)

'定義

ETX$=CHR$(3)

'定義

CR$=CHR$(13)

'定義

LF$=chr$(10)

'定義

RCVCHR$=""

'受信文字列初期化

STOPFLAG=0

'終了フラグ初期化

'

SEND$=STX$+"01010WRDD0001,02"+ETX$

'送信文字列作成

'

BAUD 0,9600

'通信ボーレート設定

open "COM0:(F8N1N7)" as #1

'通信ポートをオープンする

'

interval 5

'タイムアウトタイマ設定

on com(0) gosub *RECEIVECHR

'受信時の割込み処理指定

on interval gosub *TIMEOUT

'タイムアウト時の割込み処理指定

'

print #1,SEND$

'送信

com(0) on

'受信時割込み許可

interval on

'タイマ起動

'

while STOPFLAG=0

'受信終了orタイムアウト待ち

waiti wend '

com(0) off

'受信時割込み許可

close #1

'ポートをクローズする

'

print ">"+SEND$

'送信文字列を画面に表示

print "<"+RCVCHR$

'受信文字列を画面に表示

end

'

'

=== サブルーチン ===

*RECEIVECHR

'受信時割込み処理

interval off

'タイマ起動

RCVCHR$=RCVCHR$+input$(lof(#1),#1)

'受信バッファから文字列を取出す

END$=mid$(RCVCHR$,len(RCVCHR$),1)

select case END$

case LF$

'エコーバック対応

RCVCHR$=""

'受信文字列初期化

case CR$

'受信終了フラグ

STOPFLAG=1

'受信終了フラグをたてる

case else end select

interval on

'タイマ起動

return '

*TIMEOUT

'タイムアウト処理

STOPFLAG=1

'タイムアウトフラグをたてる

RCVCHR$="Time out ! (5 sec)"+CR$

'画面表示用文字列「Time out ! (5 sec)」

return

IM 77C01E01-10

5. Modbus/RTU, ASCII通信プロトコルの解説

5.1 概要

Modbus通信を使用することで,パソコンやPLC(シーケンサ)などと通信を行うことができま す。この通信では,PR300の内部レジスタであるDレジスタへの読出し/書込みを行います。

これ以降の文章では,パソコンなどの上位機器を総称して「上位機器」と表現します。

RS-485通信 最大通信距離 1200m 最大子局接続台数 31台 上位機器

図5.1 Modbus通信接続の概略図

参照

Dレジスタについては,7章を参照してください。

PR300のModbus通信では,伝送モードにASCIIモードとRTUモード(バイナリ方式)を用意し ています。

表5.1ASCIIモードとRTUモード

項目 ASCIIモード RTUモード

データのビット数 7 bit(ASCII) 8 bit(バイナリ)

:(コロン) なし

メッセージの終了マーク メッセージの開始マーク

CR+LF (*2) なし メッセージの長さ (*1)

誤り検出

2N+1 N

データの時間間隔 1秒以下 フレーム間  3.5キャラクタ

水平冗長検査:LRC 周期冗長検査:CRC-16

*1: RTUモードのメッセージの長さを「N」とした場合,ASCIIモードでは2N+1となります。

*2: LFが次の信号を受けることができるようになったことを表す同期キャラクタです。RTUモードではキャラクタ間の 時間間隔で同期がなされます。次のキャラクタを受信するまでに3.5キャラクタの時間があった場合,次に受け取る メッセージは新しいフレームであると認識されます。

Modbus通信では,ステーション番号:01〜99で各PR300を判断します。

注 意

・ PR300には,2ワード単位のデータ(Dレジスタ)があります。

2ワードデータを読出し/書込みする場合は,同時に行ってください。

・ Dレジスタへの書込みデータが有効範囲外の場合,レスポンスは正常として返ります。

IM 77C01E01-10

5.1.1 メッセージ構成

上位機器からPR300に送信するメッセージは,下図のように構成されています。

要素 ステーション番号

(ST-NO)

ファンクション コード

RTUモードのバイト数 なし

ASCIIモードのバイト数 2 2

(1) (2) (3)  (4) (5) (6)

メッセージ開始 マーク

データ エラーチェック メッセージ終了 マーク なし

1 2 2 4n

(可変長)

1 1 2n

(可変長) 2

(1) メッセージ開始マーク

メッセージの始まりを示します。ASCIIモードのみ「:(コロン)」が必要です。

(2) ステーション番号(01〜99)

上位機器が通信先のPR300を識別するための番号です(PR300個々の識別番号:メッセー ジ中では,16進表記)。

00:ブロードキャスティングモード(「5.1.5 ブロードキャスト指定」を参照)

(3) ファンクションコード(「5.2 メッセージ・レスポンス」を参照)

上位機器からの命令(ファンクションコード)を指定します。

(4) データ

ファンクションコードに応じてDレジスタ番号やDレジスタの個数,パラメータ値などを指定 します(メッセージ中では,16進表記)。

(5) エラーチェック

RTUモードの場合 周期冗長検査(CRC-16)方式で行います。

ASCIIモードの場合 水平冗長検査(LRC)方式で行います。

(6) メッセージ終了マーク

メッセージの終了を示します。ASCIIモードのみ「CR+LF」が必要です。

5.1.2 Dレジスタの指定

市販のSCADA等を使用する場合のDレジスタ指定とお客様作成の通信プログラムでのメッセージ のDレジスタ指定は,それぞれDレジスタ番号と異なり,注意が必要です。

お客様作成の通信プログラムの場合は,リファレンス番号から40001を引いた16進数で指定しま す。