接点信号変換器
HR-C8-IN
通信仕様書

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

２０２１年０２月２５日

Ｔ－５５０７８初版

改訂履歴日付

2021/02/25

Ｔ－５５０７８初版

改訂者
溝口改訂

内容

初版

承認

確認

開発課
'21.03.03
野村

開発課'21.02.25
山下作成

（ 3 ）

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

Ｔ－５５０７８初版

（ 4 ）【１】概要
本書は、当社の接点信号変換器（形式：HR-C8-IN）における、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)
マスタ→スレーブ
Start

Address

ﾊﾞｲﾄ数
（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 ）【７】レジスタ一覧
本書は、データの開始アドレスで表記します。
実際の通信電文にそのままセットして伝送してください。
開始アドレス ＝ 4301 (10CDh) の場合
開始アドレスの上位には 10h、下位には CDh をセットします。
【７】－１：Read Input Register(04H)
計測値及び接点状態の読み出しに使用します。
予備のレジスタに対して読み込みを行った場合、値は不定値です。
予備のレジスタの値は使用しないでください。
開始アドレス
レジスタの内容
R/W
データ詳細
4300
R
予備
4301
DI1 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4302
DI1 ON 回数 （下位 16 ビット）R
4303
DI2 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4304
DI2 ON 回数 （下位 16 ビット）R
4305
DI3 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4306
DI3 ON 回数 （下位 16 ビット）R
4307
DI4 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4308
DI4 ON 回数 （下位 16 ビット）R
4309
DI5 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4310
DI5 ON 回数 （下位 16 ビット）R
4311
DI6 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4312
DI6 ON 回数 （下位 16 ビット）R
4313
DI7 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4314
DI7 ON 回数 （下位 16 ビット）R
4315
DI8 ON 回数 （上位 16 ビット）R
範囲：0～99999999
4316
DI8 ON 回数 （下位 16 ビット）R
4317
DI1 ON 時間（上位 16 ビット）R
範囲：0～99999999
4318〃（下位 16 ビット）R
4319
DI2 ON 時間（上位 16 ビット）R
範囲：0～99999999
4320〃（下位 16 ビット）R
4321
DI3 ON 時間（上位 16 ビット）R
範囲：0～99999999
4322〃（下位 16 ビット）R
4323
DI4 ON 時間（上位 16 ビット）R
範囲：0～99999999
4324〃（下位 16 ビット）R
4325
DI5 ON 時間（上位 16 ビット）R
範囲：0～99999999
4326〃（下位 16 ビット）
R
4327
DI6 ON 時間（上位 16 ビット）R
範囲：0～99999999
4328〃（下位 16 ビット）R
4329
DI7 ON 時間（上位 16 ビット）R
範囲：0～99999999
4330〃（下位 16 ビット）R
4331
DI8 ON 時間（上位 16 ビット）R
範囲：0～99999999
4332〃（下位 16 ビット）R↓↓R

Ｔ－５５０７８初版

（ 8 ）

開始アドレス↓43334334

レジスタの内容

R/W↓
DI 入力状態

R

システム状態R

データ詳細
211：DI8（0：OFF、1：ON）
210：DI7（0：OFF、1：ON）
29：DI6（0：OFF、1：ON）
28：DI5（0：OFF、1：ON）
27：DI4（0：OFF、1：ON）
26：DI2（0：OFF、1：ON）
25：DI2（0：OFF、1：ON）
24：DI1（0：OFF、1：ON）
23～20：0
215：システム異常で 1
214～211：メモリ異常で 1
210：通信モジュール異常で 129～20：04335↓

Ｔ－５５０７８初版

予備R↓

（ 9 ）【７】－２：Read Holding Register(03H)【７】－３：Preset Multiple Registers(10H)
装置のバージョン情報の確認や、設定値の読み込み／書き込みに使用します。
下記、R/W 区分が「R」のレジスタに対して書き込みを行っても装置側は無視します。
この時、エラーにはなりません。
下記、R/W 区分が「W」のレジスタに対して読み込みを行うと、「0x0000」を読込みます。
下記、R/W 区分が「Ｗ」または「R/W」のレジスタに対して書き込みを行う時、範囲外の値を指定した場合は、その項目の書き込みを行いません。
サポート外のレジスタに対して読み込みを行った場合、値は不定値です。
開始アドレス
レジスタの内容
R/W
データ詳細
3100
予備
R
3101
デバイス バージョン情報 1R
8 バイト文字列
3102
デバイス バージョン情報 2
R
文字列が「01234567」の場合
3031h,3233h,3435h,3637h の順に3103
デバイス バージョン情報 3
Rセットされます。
3104
デバイス バージョン情報 4
R
3105
予備R
↓
↓
↓
3121
予備
R
3122
RS-485 通信速度
R
1：9600bps、2：19200bps
3123
RS-485 パリティビットR
0：無し、1：奇数、2：偶数
3124
RS-485 ストップビットR
1：1bit、2：2bit
3125
予備
R
3126
LCD 及びランプ ON 時間
R
0：常時 ON、30～3600(秒)
3127
予備
R
3128
予備
R
3129
予備
R
3130
予備
R
3131
予備
R
↓
↓
↓
3200
予備
R

Ｔ－５５０７８初版

（ 10 ）

開始アドレス
↓
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3133
↓

レジスタの内容

R/W
↓
↓
予備
R
DI1 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI1 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI2 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI2 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI3 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI3 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI4 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI4 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI5 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI5 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI6 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI6 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI7 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI7 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI8 On 回数ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI8 On 回数ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI1 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI1 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI2 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI2 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI3 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI3 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI4 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI4 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI5 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI5 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI6 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI6 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI7 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI7 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
DI8 On 時間ﾌﾟﾘｾｯﾄ値（上位 16 ﾋﾞｯﾄ） W
DI8 On 時間ﾌﾟﾘｾｯﾄ値（下位 16 ﾋﾞｯﾄ） W
予備R↓
↓

データ詳細

範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999
範囲：0～99999999【７】－４：Read/Write Multiple Registers(17H)【７】－１～【７】－３の全てのレジスタが利用可能です。

Ｔ－５５０７８初版

（ 11 ）

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

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

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

オーバーランエラー

パリティエラー

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
Code8 ビット
上記表を参照Ｔ－５５０７８初版