アナログ信号変換器
HR-A8
通信仕様書

RS-485(Modbus)インターフェース

２０２０年１０月１４日

Ｔ－５３６３８初版

改訂履歴日付

2020/10/14

Ｔ－５３６３８初版

改訂者
山下

改訂

内容

初版

承認

確認

作成

開発課
'20.10.16
野村開発課'20.10.16
野村開発課'20.10.14
山下（ 3 ）

目次【１】概要 ........................................................................ 4【２】基本仕様 .................................................................... 4【３】送受信シーケンス ............................................................ 4【４】電文の基本構成 .............................................................. 5【５】ファンクションコード ........................................................ 6【６】メッセージ・フレーム構成 .................................................... 6【７】送受信シーケンス ............................................................ 7【８】レジスタ一覧 ................................................................ 9【８】－１：Read Input Register(04H) ............................................ 9【８】－２：Read Holding Register(03H) ......................................... 12【８】－３：Preset Multiple Registers(10H) ..................................... 13【８】－４：Read/Write Multiple Registers(17H) ................................. 13【９】エラー原因と処理内容 ....................................................... 14

Ｔ－５３６３８初版

（ 4 ）【１】概要
本書は、当社のアナログ信号変換器（型式：HR-A8）における、RS-485 通信端子を用いた有線通信の仕様を記したものです。
以降、パソコンやシーケンサ等の上位機器をマスタ、当社のアナログ信号変換器をスレーブと表記します。

【２】基本仕様
インターフェース
通信速度
同期方式
通信制御方式
伝送モード
データ形式

誤り検出

RS-485（Modbus 準拠）
9600bps,19200bps（内部設定式）
調歩同期式（非同期式）
ポーリングセレクション方式（２線式半二重モード）
RTU
スタートビット ： 1bit
データ長 ： 8bit
パリティビット ： 無／偶数／奇数
ストップビット ： 1bit／2bit
CRC-16（X16＋X15＋X2＋1）【３】送受信シーケンス
マスタからの要求電文に対してスレーブが応答電文を返信する形で通信します。
（ただし、ブロードキャスト通信の場合、この限りではありません）
要求電文と応答電文、または応答電文と次の要求電文の間には、3.5 文字以上の無通信時間（サイレントインターバル）を設け、この間は通信電文を出力しないようにします。
マスタ側

要求

１

要

スレーブ側

応tt

答

求

２

１

応tt

上記タイミングチャート内のｔの部分が、サイレントインターバル帯となります。

Ｔ－５３６３８初版

答

２

（ 5 ）【４】電文の基本構成

Start
無通信時間

Address
8 ビット

Function
8 ビット

Data
ｎ * 8 ビット

CRC
16 ビットEnd
無通信時間（１）Start および End
Modbus RTU モード時のフレームは、3.5 文字分の無通信時間（サイレントインターバル）で始まり、3.5 文字分のサイレントインターバルで終わります。
（２）Address（アドレスフィールド）アドレスには、0～247(10 進数)が指定されます。
255 はブロードキャスト用として使用され、スレーブのアドレスには 1～247(10 進数)を使用します。
マスタがスレーブに要求電文を送信する場合には、このフィールドにスレーブのアドレスをセットします。
スレーブがマスタに応答電文を返す場合には、スレーブのアドレスをセットします。
これにより、マスタはどのスレーブからの応答であるかを知ることができます。
（３）Function（ファンクションコード）
ファンクションコードには、1～127(10 進数)が指定されます。
スレーブの種類によって利用可能な値が異なります。
スレーブはファンクションコードの値によって、指定された機能を実行します。
実行後、応答電文を返す場合、要求電文と同じ値を返します。
エラーが発生した場合は、要求されたファンクションコードの最上位ビット(MSB)に１をセットした値を返します。
（４）Data（データフィールド）ファンクションに関連したデータを送信する場合に使用します。
フィールド長は可変で、データが無い場合もあります。
（５）CRC（エラーチェックフィールド）このフィールドは、16 ビットのデータを二つの 8 ビットデータに分けてセットします。
CRC(Cyclical Redundancy Check)演算で計算します。
受信側は、受信電文から計算した CRC 値と電文中のエラーチェックフィールドを比較し、一致しない場合は受信した電文を破棄します。
CRC は、Address～Data までが演算対象となります。スタート及びストップ、パリティビットは演算に含みません。
また、16 ビットの演算結果を、下位バイト、上位バイトの順で付加してください。
具体的な演算方法につきましては、Modbus Organization（下記リンク参照）から入手できる仕様書(MODBUS Protocol Specification)をご確認ください。
http://www.modbus.org/specs.php

Ｔ－５３６３８初版

（ 6 ）【５】ファンクションコード
使用可能なファンクションコードです。

ファンクションコード
03H
04H
10H
17H

要求内容
Read Holding Register
Read Input Register
Preset Multiple Registers
Read/Write Multiple Registers【６】メッセージ・フレーム構成
・Read Holding Register(03H)、Read input Register(04H)
マスタ→スレーブ
Start

Address

Function

開始ｱﾄﾞﾚｽ（上位）

開始ｱﾄﾞﾚｽ（下位）

ﾚｼﾞｽﾀ数（上位）

Function

ﾊﾞｲﾄ数

ﾃﾞｰﾀ 1（上位）

ﾃﾞｰﾀ 1（下位）

開始ｱﾄﾞﾚｽ（下位）

ﾚｼﾞｽﾀ数（上位）

ﾚｼﾞｽﾀ数
（下位）

CRC
（下位）

CRC
（上位）

End

CRC
（下位）

CRC
（上位）

End

スレーブ→マスタ
Start

Address

・Preset Multiple Registers(10H)
マスタ→スレーブ
StartAddress

ﾊﾞｲﾄ数
（N×2）

Function

ﾃﾞｰﾀ 1（上位）

開始ｱﾄﾞﾚｽ（上位）

ﾃﾞｰﾀ 1（下位）ﾃﾞｰﾀ N（上位）

ﾚｼﾞｽﾀ数（下位）ﾃﾞｰﾀ N
（下位）

CRC
（下位）

CRC
（上位）

End

スレーブ→マスタ
Start

Address

Function

開始ｱﾄﾞﾚｽ（上位）

開始ｱﾄﾞﾚｽ（下位）

ﾚｼﾞｽﾀ数（上位）

ﾚｼﾞｽﾀ数
（下位）

CRC
（下位）

CRC
（上位）

開始ｱﾄﾞﾚｽ（下位）

ﾚｼﾞｽﾀ数（上位）

ﾚｼﾞｽﾀ数（下位）End・Read/Write Multiple Registers(17H)
マスタ→スレーブ
Start

Address

開始ｱﾄﾞﾚｽ（上位）

Function

開始ｱﾄﾞﾚｽ（下位）

ﾚｼﾞｽﾀ数（上位）

ﾚｼﾞｽﾀ数（下位）

開始ｱﾄﾞﾚｽ
（上位）

読み込み用
ﾊﾞｲﾄ数
（N×2）

ﾃﾞｰﾀ 1（上位）

書き込み用

ﾃﾞｰﾀ 1（下位）ﾃﾞｰﾀ N（上位）

ﾃﾞｰﾀ N
（下位）

CRC
（下位）

CRC
（上位）

End

スレーブ→マスタ
Start

Address

Function

ﾊﾞｲﾄ数

ﾃﾞｰﾀ 1（上位）

ﾃﾞｰﾀ 1
（下位）

CRC
（下位）

CRC
（上位）

「開始アドレス」：読み込む（または書き込む）レジスタの先頭アドレスをセットします。
「レジスター数」：読み込む（または書き込む）レジスタ数をセットします。
「バイト数」 ：データのバイト数（レジスタ数×2）をセットします。

Ｔ－５３６３８初版

End

（ 7 ）【７】送受信シーケンス
マスタからの要求電文に対してスレーブが応答電文を返信する形で通信します。
スレーブが蓄積しているデータの取得には 3 通りの方法があります。
（１） ファンクションコード 10H と 04H を使用して通信する場合
スレーブ

マスタ
①ファンクションコード 10H 送信
最大・最小・平均 保持フラグに Hold を書き込む①に対する応答

データをレジスタに展開②ファンクションコード 04H 送信(取得したいデータの開始アドレス,〃レジスタ数))②に対する応答

展開した
指定レジスタのデータを送信③ファンクションコード 10H 送信
最大・最小・平均 保持フラグに Clear を書き込む③に対する応答・・・① ファンクションコード 10H をスレーブに送信してください。
→ この操作により、アナログ値をレジスタに割り付けます。
② ファンクションコード 04H をスレーブに送信してください。
→ この操作により、指定したレジスタのデータを返します。
③ファンクションコード 10H をスレーブに送信してください。
→ この操作により、レジスタをクリアします。
※ 開始アドレスを変更しながらファンクションコード 04H を繰り返すことで、残りのデータを抽出することができます。
（ファンクションコード 10H を送信済の場合に限ります。
）

Ｔ－５３６３８初版

（ 8 ）（２） ファンクションコード 17H を使用して通信する場合※ファンクションコード 17H では、「Write」と「Read」を一度に行います。
マスタ

スレーブ

① ファンクションコード 17H 送信
最大・最小・平均 保持フラグに Hold を書き込む

データをレジスタに展開①に対する応答

展開した
指定レジスタのデータを送信②ファンクションコード 17H または 10H 送信
最大・最小・平均 保持フラグに Clear を書き込む②に対する応答・・・
ファンクションコード 17H をスレーブに送信してください。
→ この操作により、アナログ値をレジスタに割り付けます。
その後、指定したレジスタのデータを返します。

（３） ファンクションコード 03H または 04H を使用して通信する場合
マスタ

スレーブ

①ファンクションコード 03H または 04H 送信(取得したいデータの開始アドレス,〃レジスタ数)①に対する応答・・・
ファンクションコード 03H または 04H をスレーブに送信してください。
→ この操作により、指定したレジスタのデータを返します。

Ｔ－５３６３８初版

指定レジスタのデータを送信（ 9 ）【８】レジスタ一覧
本書は、データの開始アドレスで表記します。
実際の通信電文にそのままセットして伝送してください。
開始アドレス ＝ 4301 (10CDh) の場合
開始アドレスの上位には 10h、下位には CDh をセットします。
【８】－１：Read Input Register(04H)
計測値の読み出しに使用します。
予備のレジスタに対して読み込みを行った場合、値は不定値です。
予備のレジスタの値は使用しないでください。
開始アドレス
レジスタの内容
R/W
データ詳細
4348
予備R4349
アナログ最大値 CH1
R4350〃 最小値 CH1
R
範囲：-32768～32767
単位：0.01mA または 0.001V4351〃 平均値 CH1
R4352
〃 瞬時値 CH1
R4353
アナログ最大値 CH2
R4354〃 最小値 CH2
R
範囲：-32768～32767
単位：0.01mA または 0.001V4355〃 平均値 CH2
R4356
〃 瞬時値 CH2
R4357
アナログ最大値 CH3
R4358〃 最小値 CH3
R
範囲：-32768～32767
単位：0.01mA または 0.001V4359〃 平均値 CH3
R4360
〃 瞬時値 CH3
R4361
アナログ最大値 CH4
R4362〃 最小値 CH4
R
範囲：-32768～32767
単位：0.01mA または 0.001V4363〃 平均値 CH4R4364〃 瞬時値 CH4R4365
アナログ最大値 CH5R4366〃 最小値 CH5
R
範囲：-32768～32767
単位：0.01mA または 0.001V4367〃 平均値 CH5
R4368
〃 瞬時値 CH5R4369
アナログ最大値 CH6
R4370〃 最小値 CH6
R
範囲：-32768～32767
単位：0.01mA または 0.001V4371〃 平均値 CH6
R4372
〃 瞬時値 CH6R4373
アナログ最大値 CH7
R4374〃 最小値 CH7
R
範囲：-32768～32767
単位：0.01mA または 0.001V4375〃 平均値 CH7
R4376
〃 瞬時値 CH7R4377
アナログ最大値 CH8
R4378〃 最小値 CH8
R
範囲：-32768～32767単位：0.01mA または 0.001V
4379〃 平均値 CH8R4380〃 瞬時値 CH8R↓↓（次のページへ）※ アナログ最大値／最小値／平均値は、電源リセット または 最後のデータ Hold 実行からの値です。

Ｔ－５３６３８初版

（ 10 ）

（前のページから）
開始アドレス
レジスタの内容
↓↓
4382
予備
4383
最大・最小・平均 保持フラグ

4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
↓

データシリアル№
演算要素数
予備
アナログ最大値 CH1（保持値）〃 最小値 CH1（保持値）〃 平均値 CH1（保持値）〃 瞬時値 CH1（保持値）
アナログ最大値 CH2（保持値）〃 最小値 CH2（保持値）〃 平均値 CH2（保持値）〃 瞬時値 CH2（保持値）
アナログ最大値 CH3（保持値）〃 最小値 CH3（保持値）〃 平均値 CH3（保持値）〃 瞬時値 CH3（保持値）
アナログ最大値 CH4（保持値）〃 最小値 CH4（保持値）〃 平均値 CH4（保持値）〃 瞬時値 CH4（保持値）
↓R/W

データ詳細

R
R

0～65535

R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R

0～655350～65535

215 ：0214 ：0 または 1
213 ：設定初期化によるリセットで 1
212 ：起動時によるリセットで 1
2 5～11：0
2 4 ：入力タイプ変更によるリセットで 1
2 2～ 3：起動時によるリセットで 12 1 ：通信による演算リセットで 1
2 0 ：スイッチによる演算リセットで 1

範囲：-32768～32767
単位：0.01mA または 0.001V

範囲：-32768～32767
単位：0.01mA または 0.001V

範囲：-32768～32767
単位：0.01mA または 0.001V

範囲：-32768～32767
単位：0.01mA または 0.001V（次のページへ）Ｔ－５３６３８初版

（ 11 ）

（前のページから）
開始アドレス
レジスタの内容↓↓4403
アナログ最大値 CH5（保持値）
4404〃 最小値 CH5（保持値）
4405〃 平均値 CH5（保持値）
4406〃 瞬時値 CH5（保持値）
4407
アナログ最大値 CH6（保持値）
4408〃 最小値 CH6（保持値）
4409〃 平均値 CH6（保持値）
4410〃 瞬時値 CH6（保持値）
4411
アナログ最大値 CH7（保持値）
4412〃 最小値 CH7（保持値）
4413〃 平均値 CH7（保持値）
4414〃 瞬時値 CH7（保持値）
4415
アナログ最大値 CH8（保持値）
4416〃 最小値 CH8（保持値）
4417〃 平均値 CH8（保持値）
4418〃 瞬時値 CH8（保持値）
4419
システム状態 Ｈ4420

〃

↓

↓

Ｌ

R/W
↓
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R

R

データ詳細

範囲：-32768～32767
単位：0.01mA または 0.001V

範囲：-32768～32767
単位：0.01mA または 0.001V

範囲：-32768～32767
単位：0.01mA または 0.001V

範囲：-32768～32767
単位：0.01mA または 0.001V
215 ：システム異常で 1210～14：メモリ異常で 1
2 8～ 9：0
2 7 ：液晶異常で 1
2 0～ 6：0
2 8～15：0
2 7 ：CH8 アナログ入力エラー
2 6 ：CH7 アナログ入力エラー
2 5 ：CH6 アナログ入力エラー
2 4 ：CH5 アナログ入力エラー
2 3 ：CH4 アナログ入力エラー
2 2 ：CH3 アナログ入力エラー
2 1 ：CH2 アナログ入力エラー
2 0 ：CH1 アナログ入力エラー↓※ アナログ最大値（保持値）／最小値（保持値）／平均値（保持値）／瞬時値（保持値）は、データ Hold を実行したタイミングの値です。

Ｔ－５３６３８初版

（ 12 ）

【８】－２：Read Holding Register(03H)
装置のバージョン情報の確認や、設定値の読み込み／書き込みに使用します。
下記、R/W 区分が「R」のレジスタに対して書き込みを行っても装置側は無視します。
この時、エラーにはなりません。
下記、R/W 区分が「W」のレジスタに対して読み込みを行うと、「0x0000」を読込みます。
下記、R/W 区分が「Ｗ」または「R/W」のレジスタに対して書き込みを行う時、範囲外の値を指定した場合は、その項目の書き込みを行いません。
サポート外のレジスタに対して読み込みを行った場合、値は不定値です。
開始アドレス
レジスタの内容
R/W
データ詳細3100
予備R3101
デバイス バージョン情報 1R
8 バイト文字列3102
デバイス バージョン情報 2
R
文字列が「01234567」の場合
3031h,3233h,3435h,3637h の順に
3103
デバイス バージョン情報 3
Rセットされます。
3104
デバイス バージョン情報 4
R
3105
予備
R↓↓
↓
3109
予備
R
3110
ユニットタイプ
R0105h：1～5V 計測
0108h：4～20mA 計測
3111
予備
R
↓
↓
↓
3125
予備
R
3126
LCD 及びランプ ON 時間
R
0：常時 ON、30～3600(秒)
3127
予備
R
3128
予備
R
3129
予備
R
3130
RS-485 通信速度
R
1：9600bps、2：19200bps
3131
RS-485 パリティビットR
0：無し、1：奇数、2：偶数
3132
RS-485 ストップビット
R
1：1bit、2：2bit
3133
予備
R↓
↓
↓
3300
予備
R0 固定
3301
予備
R/W
3302
予備
R/W3303
最大・最小・平均 保持フラグ
R/W Clear ：0000h、Hold ：FF00ｈ（0000h→FF00h でデータ Hold 実行）
何もしない：0000h～FEFFh、
FF01h～FFFFh
3304
予備R0 固定↓↓↓※ 最大・最小・平均 保持フラグについて
データ Hold を実行すると、直前までのデータで最大値、最小値、平均値を演算し、アナログ最大値（保持値）／最小値（保持値）／平均値（保持値）／瞬時値（保持値）のデータレジスタを更新します。
同時に、演算用メモリはリセットされ、バックグラウンドで再びデータ収集を開始します。

Ｔ－５３６３８初版

（ 13 ）

【８】－３：Preset Multiple Registers(10H)【８】－２：Read Holding Register(03H) と同じ。

【８】－４：Read/Write Multiple Registers(17H)【８】－１：Read Input Register(04H) と、【８】－２：Read Holding Register(03H) に同じ。

Ｔ－５３６３８初版

（ 14 ）

【９】エラー原因と処理内容
エラー項目
フレーミングエラー

エラー内容
受信した信号の異常。

スレーブ側の処理応答電文は返さず、受信電文を破棄し、受信待ち状態になる。

オーバーランエラー

パリティエラー

CRC エラー

要求電文の CRC とスレーブが計算した CRC が一致しない。

イリーガル
ファンクション

未サポートのファンクションコードを受信。

エラーコード＝0x01 で応答する。

レジスタアドレスエラー

要求レジスタアドレスが存在しない。

エラーコード＝0x02 で応答する。

データ値エラー

データが許容範囲外。
または、設定項目データ数と電文のデータ数が一致しない。

エラーコード＝0x03 で応答する。

要求電文

Start
無通信時間

Address
8 ビット

Function
8 ビット

Dataｎ * 8 ビット

CRC
16 ビット

End
無通信時間

CRC

End

16 ビット

無通信時間+0x80u
エラー応答電文

Start

Address

無通信時間

8 ビット

Error
Function
8 ビット

Error
Code
8 ビット
上記表を参照Ｔ－５３６３８初版