Shinko DCL-33A ユーザーマニュアル

タイプ
ユーザーマニュアル
-1-
通信取扱説明書 DCL-33A (C5)
No. DCL32CJ4 2022.10
この通信取扱説明書(以下,本書)は,DCL-33A(以下,本器)の通信機能について説明したものです。
誤った取扱いなどによる事故防止の為に本書は最終的に本器をお使いになる方のお手もとに,確実に届け
れるようお取り計らいください。
1. システム構成
1.1 USB通信ケーブルCMC-001-3(別売り)を使用した場合のシステム構成
(1.1-1)
1.2 通信変換器 IF-400を使用した場合のシステム構成例
(1.2-1)
配線等の作業を行う時は,本器への供給電源を切った状態で行ってください。
電源を入れた状態で作業を行うと,感電のため人命や重大な傷害にかかわる事故の起こる可能性があります
DCL-33A
No. 0
DCL-33A
No. 1
DCL-33A
No.-30
ホストコンピュータ
通信変換器 IF-400(
別売り
)
RS
-232C RS-485
USB
通信ケーブル
CMC-001-3(
別売り
)
DCL-33A
No. 0
DCL-33A
No. 30
ホストコンピュータ
-2-
2.
2.1 USB通信ケーブルCMC-001-3(別売り)を使用した場合の配線例
(2.1-1)
2.2 通信変換器 IF-400(別売り)を使用した場合の配線例
Dサブ9ピンコネクタの場合
(2.2-1)
ホストコンピュータ
Dサブ 9ピンコネクタ
DCL-33A(
最大
31
)
IF-400(
別売り
)
CDD
または
CPP(
別売り
)
IF-400, DCL-33A
の底面
シールド線
FG
USB
通信ケーブル
CMC-001-3(
別売り
)
ホストコンピュータ
USB
ポート
DCL
-33A の底面
CMC-001-3
CDD
または
CPP(
別売り
)
DCL-33A(最大 31 )
-3-
シールド線について
シールド部に電流が流れないように,シールド線の片側のみを接地してください。
シールド部の両側を接地すると,シールド線と大地の間で閉回路ができ,シールド線に電流が流れて,
ノイズの影響を受けやすくなる場合があります
推奨ケーブル: オーナンバ株式会社 OTSC-VB 2PX0.5SQ または同等品(ツイストペアシールド線を
ご使用ください)
終端抵抗(ターミネータ)について
終端抵抗とは,ターミネータともいい,ホストコンピュータに周辺機器を数珠繋ぎにした時,配線の
終端に取り付ける抵抗のことで,終端での信号の反射を防ぎ,信号の乱れを防ぎます。
本器は,プルアップ抵抗およびプルダウン抵抗を内蔵していますので,通信ライン上に終端抵抗は必
要ありません。
3. 計器の設定方法
PV/SV表示で, キーを押しながら, キーを約3秒間押してください。
補助機能設定モード1の設定値ロック選項目に移行します。
キーを2回押してください。
通信プロトコル選択項目になります。
各設定(選択)項目の設定(選択)は, キーまたは キーで行い,設定(選択)の登録は キーで行います。
キャラクタ
工場出荷初期値
設定(選択)項目名称,説明,設定範囲(選択項目)
通信プロトコル選択
・通信プロトコルを選択してください。
: 神港標準
: MODBUS ASCII モード
: MODBUS RTU モード
: 神港標準(ブロックリー/ライト対応)
: MODBUS ASCII モード(ブロックリード/ライト対応)
: MODBUS RTU
モード
(
ブロックリード
/
ライト対応
)
通信機器番号設
本器を複数台接続して通信を行う場合,各計器に
個別の機器番号を設定してください。
0
95
通信速度選択
・ホストコンピュータ側の通信速度に合わせて,通信速度を選択してください。
: 2400 bps
: 4800 bps
: 9600 bps
: 19200 bps
: 38400 bps
パリティ選択
・パリティを選択してください。
[通信プロトコル選択]で,神港標準または神港標準(ロックリード/ライト対応)
選択した場合,この選択項目は表示しません。
: 無し
: 偶数
:
奇数
ストップビット選択
・ストップビットを選択してください。
[通信プロトコル選択]で,神港標準または神港標準(ロックリード/ライト対応)
選択した場合,この選択項目は表示しません。
: ストップビット 1
:
ストップビッ
2
キーを押してください。
PV/SV 表示戻ります
以上で設定終了です。
-4-
4. 通信手順
ホストコンピュータ(以下,マスター)のコマンド送出で始まり,本器(以下,スレーブ)からの応答で終わり
ます。
・データを伴う応答
読み出しコマンドでは,そのコマンドに対応する設定値または動作状態
等のデータを応答として返します。
・肯定応答
書き込みコマンドでは,その処理終了後,応答として肯定応答を返します。
・否定応答
存在しないコマンドまたは設定範囲を超える値等の時は,否定応答を返
します。
・無応答
以下の場合,応答を返しません。
・グローバルアドレス(神港標準プロトコル)設定時
・ブロードキャストアドレス(MODBUS プロトコル)定時
(4-1) ・通信エラー(フレーミングエラー,パリティエラー)
・チェックサムエラー(神港標準プロトコル)LRC の不一致(MODBUS
ASCII ード)CRC-16 の不一致(MODBUS RTU モード)
マスター - スレーブ間の通信タイミング
マスター側について(プログラム作成上の注意)
マスターは,RS-485規格の通信回線に送信する際,受信側の同期を確実にするため,コマンドの送
出前に1キャラクタ伝送時間以上のアイドル状態(マーク状態)を設けてください
コマンド送出後,スレーブからの応答の受信に備えて1キャラクタ伝送時間以内にトランスミッタを
通信ラインから切り離してください。
マスターからの送信とスレーブからの送信が衝突するのを避ける為,マスターが確実に応答を受信し
たことを確認し,次のコマンドを送信してください。
通信エラーにより,コマンドに対する応答を得られない場合コマンドを送り直すリトライ処理を組
み込んでください。(2回以上のリトライを推奨)
スレーブ側につい
スレーブは,RS-485規格の通信回線に送信する際,受信側の同期を確実にするため,応答データの
送出前に1キャラクタ伝送時間以上のアイドル状(マーク状態)を設けています。
応答データ送出後,1キャラクタ伝送時間以内にトランスミッタを通信ラインから切り離します。
コマンド
データ
コマンド
肯定応答
コマンド
否定応答
コマンド
無応答
マスター スレーブ
-5-
5. 神港標準プロトコル
5.1 伝送モード
神港標準プロトコルは,ASCIIコードを使用します。
コマンド中の8ビットバイナリデータを上位下位4ビットに分けた16進数(09AF)をそれぞれ
ASCII字として送信します。
データ構成 スタートビット: 1ビット
データビット: 7ビット
パリティビット: 偶数
ストップビット: 1ビット
エラー検出: チェックサム方
5.2 コマンドの構成
コマンドは,すべてASCIIコードで構成します。
コマンド下の数字は,キャラクタ数を表しています。
データ(設定値)は,10進数を16進数に変換します。負数は2の補数で表します
(1) 書き込みコマンド
・単一データ書き込み
ヘッダ
(02H)
機器番号 サブア
レス
(20H)
コマンド
種別
(50H)
データ
項目
データ チェック
サム
デリミタ
(03H)
1
1
1
1
4
4
2
1
・複数データ書き込み
ヘッダ
(02H)
機器番号 サブア
レス
(20H)
コマンド
種別
(54H)
データ
項目
1
1
1
1
4
データ チェック
サム
デリミタ
(03H)
4
×
n
2
1
n: データ数
(2) 読み出しコマンド
・単一データ読み出し
ヘッダ
(02H)
機器番号 サブア
レス
(20H)
コマンド
種別
(20H)
データ
項目
チェック
サム
デリミタ
(03H)
1
1
1
1
4
2
1
・複数データ読み出し
ヘッダ
(02H)
機器番号 サブア
レス
(20H)
コマンド
種別
(24H)
データ
項目
読み出し
データ数
n
チェック
サム
デリミタ
(03H)
1
1
1
1
4
4
2
1
(3) データを伴う応答
・単一データ読み出しの応答
ヘッダ
(06H)
機器番号 サブア
レス
(20H)
コマンド
種別
(20H)
データ
項目
データ チェック
サム
デリミタ
(03H)
1
1
1
1
4
4
2
1
-6-
・複数データ読み出しの応答
ヘッダ
(06H)
機器番号 サブア
レス
(20H)
コマンド
種別
(24H)
データ
項目
1
1
1
1
4
データ チェック
サム
デリミタ
(03H)
4
×
n
2
1
n: データ数
(4) 肯定応答
ヘッダ
(06H)
機器番号 チェッ
サム
デリミタ
(03H)
1
1
2
1
(5) 否定応答
ヘッダ
(15H)
機器番号 エラー
コード
チェック
サム
デリミタ
(03H)
1
1
1
2
1
ヘッダ: コマンドおよび応答の始めを表す制御コードで,ASCIIコードを使用します。
書き込みコマンド,読み出しコマンドの場合,STX(02H)固定です。
データを伴う応答,肯定応答の場合,ACK(06H)固定です。
否定応答の場合NAK(15H)固定です
機器番号: マスターが,スレーブを識別する為の番号です。
機器番号094とグローバルアドレス95で,器番号095(00H5FH)20Hを加算し
ASCIIコード(20H7FH)を使用します。
95(7FH)をグローバルアドレスとい,接続されている全てのスレーブに同じコマン
を送りたい時に使います。ただし,応答は返しません。
サブアドレス: (20H)固定です。
コマンド種別: 書き込み,読み出しを識別するためのコードです。
コマンド種別
20H
単一データ読み出し
単一データの読み出しを行います。
24H 複数データ読み出し 連続する複数のデータに対して読み出しを
行います。
(
データ数
最大
100
)
50H
単一データ書き込み
単一データの書き込みを行います。
54H 複数データ書き込み 連続する複のデータに対して書き込みを
行います。
(
データ数
最大
100
)
複数データ読み出し,複数データ書き込みの注意点
複数データ読み出し,複数データ書き込みを行う場合,スレーブが応答データの送
出までに時間が掛かるため,マスターはコマンド送出後,下記のタイムアウト時間
を目安に無応答の判定を行ってください
タイムアウト時間の計算方法
6 ms×データ数
データ項目: コマンドの対象となるデータ分類です。
4桁の16進数をASCIIコードで表します。
7. 通信コマンド一覧(P. 2 338)を参照してください。
データ: 書き込みコマンドにより,データ(設定値)の内容が異なります。
4桁の16進数をASCIIコードで表します。
7. 通信コマンド一覧(P. 2 338)を参照してください。
-7-
チェックサム: 通信誤り検出の為の,2文字のデータです。
デリミタ: コマンドの終わりを表す制御コードで,ASCIIードETX(03H)固定です
エラーコード: エラーの種類を表し,以下の数値をASCIIコードで表します。
エラーコード
1(31H)
存在しないコマンドの場合
2(32H)
未使用
3(33H)
設定値の範囲を超えた場合
4(34H)
書き込みできな状態
(AT
実行中
)
の場合
5(35H)
キー操作による設定モード中の場合
5.3 チェックサムの計算方法
チェックサムは,コマンドまたはデータの受信誤りを検出するために用います。
マスター側にも,スレーブからの応答データのチェックサムを計算するプログラムを作成して,通信
誤りがないことを確認するようにしてください。
チェックサムは,機器番号からチェックサムの前の文字までのASCIIードを加算し,その合計値の
2の補数を16進数で表現した下位2桁をASCIIコード化したものです。
1の補数は,2進数 "0" "1" を反転させた数です。
2の補数は,1の補数に "1" を加えた数です。
[チェックサムの計算]
SV1(0001H)600 (0258H)を書き込む場合の計算例を示します。(5.3-1)
機器番号を0(20H)とします。
(5.3-1)
STX ETXP00010258
02H 20H 20H 50H 30H 30H 30H 31H 30H 32H 35H 38H 03H
チェックサム
チェックサムの計算範囲
[例]
E
45H 30H
0
[上記をASCIIコードで表すと]
20H
20H
50H
30H
30H
30H
31H
30H
32H
35H
38H
0010 0000
0010 0000
0101 0000
0011 0000
0011 0000
0011 0000
0011 0001
0011 0000
0011 0010
0011 0101
0011 1000
10 0010 0000
[16進数] [2進数]
1101 1111
1
1110 0000
E 0
45H 30H
[1の補数]
[2の補数]
[16進数]
[ASCIIコード]
-8-
5.4 コマンド例
コマンド下の数字は,キャラクタ数を表しています。
(1) 機器番号 1PV 読み出し
・マスター側からの読み出しコマンド
ヘッダ
(02H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(20H)
データ項目
[0080H]
(30H 30H 38H 30H)
チェック
サム
(44H 37H)
デリミタ
(03H)
1
1
1
1
4
2
1
・正常時のスレーブ側の応答[PV=25 (0019H)の場合]
ヘッダ
(06H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(20H)
データ項目
[0080H]
(30H 30H 38H 30H)
データ
[0019H]
(30H 30H 31H 39H)
チェック
サム
(30H 44H)
デリミタ
(03H)
1
1
1
1
4
4
2
1
(2) 機器番号 1SV1の読み出し
・マスター側からの読み出しコマンド
ヘッダ
(02H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(20H)
データ項目
[0001H]
(30H 30H 30H 31H)
チェック
サム
(44H 45H)
デリミタ
(03H)
1
1
1
1
4
2
1
・正常時のスレーブ側の応答[SV1=600 (0258H)の場合]
ヘッダ
(06H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(20H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ
[0258H]
(30H 32H 35H 38H)
チェック
サム
(30H 46H)
デリミタ
(03H)
1
1
1
1
4
4
2
1
(3) 機器番号 1SV1 600 (0258H)の書き込み
・マスター側からの書き込みコマンド
ヘッダ
(02H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(50H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ
[0258H]
(30H 32H 35H 38H)
チェック
サム
(44H 46H)
デリミタ
(03H)
1
1
1
1
4
4
2
1
・正常時のスレーブ側の応
ヘッダ
(06H)
機器番号
(21H)
チェック
サム
(44H 46H)
デリミタ
(03H)
1
1
2
1
-9-
(4) 機器番号 1SV1から 25 コマンドの読み出し
・マスター側からの読み出しコマンド
ヘッダ
(02H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(24H)
データ項目
[0001H]
(30H 30H 30H 31H)
読み出しデータ数
25[0019H]
(30H 30H 31H 39H)
チェック
サム
(31H 30H)
デリミタ
(03H)
1
1
1
1
4
4
2
1
・正常時のスレーブ側の応答
ヘッダ
(06H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(24H)
データ項目
[0001H]
(30H 30H 30H 31H)
1
1
1
1
4
データ
[00000000055A・・・0000]
(30H 30H 30H 30H 30H 30H 30H 30H 30H 35H 35H 41H
・・・
30H 30H 30H 30H)
チェック
サム
(43H 38H)
デリミタ
(03H)
100(4
×
25)
2
1
応答のデータ部は,以下のようになります。
データ項目
データ
データ
(16
進数に変換した値
)
0001H
SV1
0
0000H
0002H
入力種類選択
K [-200
1370 ]
0000H
0003H
スケーリング上限設定
1370
055AH
0004H
スケーリング下限設定
-200
FF38H
0005H
小数点位置選択
小数点無し
0000H
0006H
警報
1
動作選択
警報動作無し
0000H
0007H
警報
2
動作選
警報動作無し
0000H
0008H
警報
3
動作選択
警報動作無し
0000H
0009H
警報
4
動作選択
警報動作無し
0000H
000AH
予約
0
0000H
000BH
予約
0
0000H
000CH
予約
0
0000H
000DH
予約
0
0000H
000EH
SV1
0
0000H
000FH
SV2
0
0000H
0010H
予約
0
0000H
0011H
予約
0
0000H
0012H
警報
1
動作点設定
0
0000H
0013H
警報
1
上限警報動作点設定
0
0000H
0014H
警報
2
動作点設定
0
0000H
0015H
警報
2
上限警報動作点設定
0
0000H
0016H
警報
3
動作点設定
0
0000H
0017H
警報
3
上限警報動作点設定
0
0000H
0018H
警報
4
動作点設定
0
0000H
0019H
警報
4
上限警報動作点設定
0
0000H
-10-
(5) 機器番号 1SV1から 25 コマンドの書き込み
SV1 から 25 コマンドのデータ例を以下に示します。
データ項目
データ
データ
(16
進数に変換した値
)
0001H
SV1
2000
07D0H
0002H
入力種類選択
K [-199.9
400.0 ]
0001H
0003H
スケーリング上限設定
4000
0FA0H
0004H
スケーリング下限設定
0
0000H
0005H
小数点位置選択
XXX.X(
小数点以下
1
)
0001H
0006H
警報
1
動作選択
上下限警報個別
000AH
0007H
警報
2
動作選択
上限警報
0001H
0008H
警報
3
作選択
下限警報
0002H
0009H
警報
4
動作選択
警報動作無し
0000H
000AH
予約
0
0000H
000BH
予約
0
0000H
000CH
予約
0
0000H
000DH
予約
0
0000H
000EH
SV1
2000
07D0H
000FH
SV2
0
0000H
0010H
予約
0
0000H
0011H
予約
0
0000H
0012H
警報
1
動作点設定
1000
03E8H
0013H
警報
1
上限警報動作点設定
500
01F4H
0014H
警報
2
動作点設定
1000
03E8H
0015H
警報
2
上限警報動作点設定
0
0000H
0016H
警報
3
動作点設定
-1500
FA24H
0017H
警報
3
上限警報動作点設定
0
0000H
0018H
警報
4
動作点設定
0
0000H
0019H
警報
4
上限警報動作点設定
0
0000H
・マスター側からの書き込みコマンド(上記データを書き込む場合)
ヘッダ
(02H)
機器番号
(21H)
サブ
アドレス
(20H)
コマンド
種別
(54H)
データ項目
[0001H]
(30H 30H 30H 31H)
1
1
1
1
4
データ
[07D000010FA0・・・0000]
(30H 37H 44H 30H 30H 30H 30H 31H 30H 46H 41H 30H
・・・
30H 30H 30H 30H)
チェック
サム
(45H 46H)
デリミタ
(03H)
100(4
×
25)
2
1
・正常時のスレーブ側の応答
ヘッダ
(06H)
機器番号
(21H)
チェック
サム
(44H 46H)
デリミタ
(03H)
1
1
2
1
-11-
6. MODBUS プロトコ
6.1 伝送モード
MODBUS ロトコルには 2つの伝送モード(ASCII モードと RTU モード)があり,以下の構造からなります。
6.1.1 ASCII モー
コマンド中の 8ビットバイナリデータを上位下位 4ットに分けた 16 進数(09AF)をそれぞれ
ASCII 文字として送信します
データ構成 スタートビット : 1 ビット
データビット : 7 ビット
パリティビット : 偶数(無し,奇数) 択可能
ストップビット : 1 ビット(2 ット) 選択可能
エラー検出 : LRC(水平冗長検査)方式
6.1.2 RTU モード
コマンド中の 8ビットバイナリデータをそのまま送信します。
データ構成 スタートビット : 1 ビット
データビット : 8 ビット
パリティビット : 無し(偶数,奇数) 選択可能
ストップビット : 1 ビット(2 ット) 選択可能
エラー検出 : CRC-16(周期冗長検査)方式
6.2 データの通信間隔
6.2.1 ASCII モー
文字間の通信間隔は制限無し。
6.2.2 RTU モード
1.5 文字伝送時間以(通信速度が2400 bps4800 bps9600 bps19200 bps の場合 1.5 文字伝
送時間,38400 bps の場合 750 s)
1つのメッセージを構成するデータの通信間隔は,最大 1.5 文字伝送時間以上長くならないよう連続
して送信するようにしてください。
上記時間より長い場合,マスター側からの送信が終了したものと判断し,通信エラーとなり応答を返
しません。
6.3 メッセージの構成
6.3.1 ASCII モー
ASCII モードのメッセージは,ヘッダ[:(コロン)(3AH)]で始まりデリミタ[CR(キャリッジリター
)(0DH)+LF(ラインフィード)(0AH)]で終わるように構成されています。
データ部は,最2×252 文字。
ヘッダ
(:)
スレーブ
アドレス
機能コード データ エラーチェック
LRC
デリミタ
(CR)
デリミタ
(LF)
6.3.2 RTU モード
RTU モードのメッセージは,3.5 文字伝送時間以上のアイドル後に始まり,3.5 文字伝送時間以上の
アイドル経過で終わるように構成されています。(通信速度が,2400 bps4800 bps9600 bps19200
bps の場合 3.5 文字伝送時間,38400 bps の場合 1.75 ms)
データ部は,最大 252 バイト。
アイドル
3.5
文字
スレーブ
アドレス
機能コード データ エラーチェック
CRC-16
アイドル
3.5
文字
-12-
(1) スレーブアドレス
スレーブアドレスは,スレーブ側個別の機器番号で 095(00H5FH)の範囲で設定します。
マスター側は,要求メッセージのスレーブアドレスによってスレーブ側を指定します。
スレーブ側は,応答メッセージに自身のスレーブアドレスをセットして,マスター側にどのスレー
ブが応答しているかを知らせます。
スレーブアドレ00Hは,ブロードキャストアドレスといい,接続されている全てのスレーブを
定できます。ただし,スレーブ側は応答を返しません。
(2) 機能コード
機能コードは,スレーブ側に対する動作の種類を指示するコードです。(6.3-1)
(6.3-1)
機能コード サブ機能コード
データ
アクセス
03(03H) スレーブからの単一データまたは複数データ読
み出し
04(04H)
スレーブからの状態読み出し
06(06H)
スレーブへの単一データ書き込み
16(10H)
スレーブへの複数データ書き込み
08(08H)
00
要求メッセージの読み返し
43(2BH)
14
機器情報の読み出し
機能コードは,スレーブ側がマスター側に応答メッセージを返す時,正常な応答(肯定応答)または
何らかのエラー(否定応答)を示すのに用いられます。
肯定応答では,元の機能コードをセットして返します。
否定応答では,元の機能コードの最上位ビットに 1をセットして返します。
例えば,機能コードを誤って 13H をセットしてスレーブ側へ要求メッセージを送信した場合,存在
しない機能コードなので最上位ビットに 1をセットし,93H として返します。
また,否定応答では,マスター側にどの種のエラーが発生したかを知らせるため,応答メッセージの
データに(6.3-2)のような異常コードをセットして返します。
(6.3-2)
異常コード
1(01H)
Illegal Function(
存在しない機能
)
2(02H)
Illegal data address(
存在しないデータアドレス
)
3(03H)
Illegal data value(
設定範囲外の値
)
17(11H)
神港標準プロトコルのエラーコード
4
と同じです。
[
書き込みできない状態
(AT
実行中
)]
18(12H)
神港標準プロトコルのエラーコード
5
と同じです。
(
キー操作による設定モード中
)
(3) データ
データは,機能コードにより構成が異なります。
マスター側からの要求メッセージは,データ項目やデータ数,設定データで構成します。
スレーブ側からの応答メッセージは,要求に対するバイト数やデータ,否定応答時は異常コード等
で構成します。データの有効範囲は-3276832767(8000H7FFFH)です。
7. 通信コマンド一覧(P.2338)参照してください。
(4) エラーチェック
ASCII モー
ASCII モードのエラーチェックは,スレーブアドレスからデータの最後までの LRC(水平冗長検査)
を計算し,算出した 8ビットデータを ASCII 文字 2文字に変換してデータの後にセットします
[LRC の計算方]
RTU モードでメッセージを作成します。
スレーブアドレスからデータの最後までを加算し,Xに代入します。
X の補数(ビット反転)をとり,X代入します。
X 1を足し,Xに代入します。
X LRC として,データの後にセットします。
メッセージを ASCII 文字に変換します。
-13-
RTU モード
RTU モードのエラーチェックは,スレーブアドレスからデータの最後までの CRC-16(周期冗長検
)
を計算し,算出した 16 ビットデータを下位上位の順にデータの後にセットします。
[CRC-16 の計算方法]
CRC-16 方式は送るべき情報を生成多項式で割り,その余りを情報の後ろに付加して送信しま
す。(生成多項式: X16+X15+X2+1)
CRC-16 のデータ(X とする)を初期化します。(FFFFH)
1 つ目のデータと Xの排他的論理和(XOR)を取り,Xに代入します
X を右に 1ビットシフトし,Xに代入します。
シフト結果でキャリーが出れば,の結果 Xと固定値(A001H)XOR を取り,Xに代入しま
す。キャリーが出なければへ。
8 回シフトするまでを繰り返します。
次のデータと XXOR を取り,Xに代入します。
を繰り返します。
最後のデータまを繰り返します。
X CRC-16 としてメッセージに下位上位の順でデータの後にセットします。
6.4 メッセージ例
6.4.1 ASCII モー
メッセージ下の数字は,キャラクタ数を表しています。
(1) スレーブアドレ1PV(0100H)の読み出し
・マスター側からの要求メッセージ
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 33H)
データ項目
[0100H]
(30H 31H 30H 30H)
データ数
[0001H]
(30H 30H 30H 31H)
エラーチェック
LRC
(46H 41H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
4
4
2
2
・正常時のスレーブ側の応答メッセージ[PV=600 (0258H)の場合]
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 33H)
応答バイト数
[02H]
(30H 32H)
データ
[0258H]
(30H 32H 35H 38H)
エラーチェック
LRC
(41H 30H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
2
4
2
2
(2) スレーブアドレ1SV1(0001H)書き込み
・マスター側からの要求メッセージ[SV1600 (0258H)に書き込みる場合]
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 36H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ
[0258H]
(30H 32H 35H 38H)
エラーチェック
LRC
(39H 45H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
4
4
2
2
・正常時のスレーブ側の応答メッセージ
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 36H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ
[0258H]
(30H 32H 35H 38H)
エラーチェック
LRC
(39H 45H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
4
4
2
2
・異常時のスレーブ側の応答メッセージ(設定範囲外の値を書き込んだ場合)
異常時の応答メッセージは,機能コードの最上位ビット1をセットし,86H(38H 36H)を返します
エラーの内容して,異常コード 03H(30H 33H 設定範囲外の値)を返します。
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(38H 36H)
異常コード
[03H]
(30H 33H)
エラーチェック
LRC
(37H 36H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
2
2
2
-14-
(3) スレーブアドレ1SV1(0001H)読み出し
・マスター側からの要求メッセージ
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 33H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ数
[0001H]
(30H 30H 30H 31H)
エラーチェック
LRC
(46H 41H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
4
4
2
2
・正常時のスレーブ側の応答メッセージ[SV1=600 (0258H)の場合]
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 33H)
応答バイト数
[02H]
(30H 32H)
データ
[0258H]
(30H 32H 35H 38H)
エラーチェック
LRC
(41H 30H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
2
4
2
2
・異常時のスレーブ側の応答メッセージ(データ項目を間違えた場合)
異常時の応答メッセージは,機能コードの最上位ビットに 1をセットし,83H(38H 33H)を返しま
す。
エラーの内容として,異常コード 02H(30H 32H 存在しないデータアドレス)を返します。
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(38H 33H)
異常コード
[02H]
(30H 32H)
エラーチェック
LRC
(37H 41H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
2
2
2
(4) 機器番号 1SV1から 25 コマンドの読み出し
・マスター側からの要求メッセージ
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 33H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ数
[0019H]
(30H 30H 31H 39H)
エラーチェック
LRC
(45H 32H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
4
4
2
2
・正常時のスレーブ側の応答メッセージ
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(30H 33H)
応答バイト数
[32H]
(33H 32H)
1
2
2
2
データ
[00000000055A・・・0000]
(30H 30H 30H 30H 30H 30H 30H 30H 30H 35H 35H 41H
・・・
30H 30H 30H 30H)
エラーチェック
LRC
(33H 34H)
デリミタ
CR+LF
(0DH 0AH)
100(4
×
25)
2
2
応答のデータ部は,以下のようになります。
データ項目
データ
データ
(16
進数に変換した値
)
0001H
SV1
0
0000H
0002H
入力種類選択
K [-200
1370 ]
0000H
0003H
スケーリング上限設定
1370
055AH
0004H
スケーリング下限設定
-200
FF38H
0005H
小数点位置選択
小数点無し
0000H
0006H
警報
1
動作選択
警報動作無し
0000H
0007H
警報
2
動作選択
警報動作無し
0000H
0008H
警報
3
動作選択
警報動作無し
0000H
0009H
警報
4
動作選択
警報動作無し
0000H
000AH
予約
0
0000H
000BH
予約
0
0000H
000CH
予約
0
0000H
000DH
予約
0
0000H
000EH
SV1
0
0000H
000FH
SV2
0
0000H
-15-
0010H
予約
0
0000H
0011H
予約
0
0000H
0012H
警報
1
動作点設定
0
0000H
0013H
警報
1
上限警報動作点設定
0
0000H
0014H
警報
2
動作点設定
0
0000H
0015H
警報
2
上限警報動作点設定
0
0000H
0016H
警報
3
動作点設定
0
0000H
0017H
警報
3
上限警報動作点設定
0
0000H
0018H
警報
4
動作点設定
0
0000H
0019H
警報
4
上限警報動作点設定
0
0000H
(5) 機器番号 1SV1から 25 コマンドの書き込み
SV1 から 25 コマンドのデータ例を以下に示します。
データ項目
データ
データ
(16
進数に変換した値
)
0001H
SV1
2000
07D0H
0002H
入力種類選択
K [-199.9
400.0 ]
0001H
0003H
スケーリング上限設定
4000
0FA0H
0004H
スケーリング下限設定
0
0000H
0005H
小数点位置選択
XXX.X(
小数点以下
1
)
0001H
0006H
警報
1
動作選択
上下限警報個別
000AH
0007H
警報
2
動作選択
上限警報
0001H
0008H
警報
3
動作選択
下限警報
0002H
0009H
警報
4
動作選択
警報動作無し
0000H
000AH
予約
0
0000H
000BH
予約
0
0000H
000CH
予約
0
0000H
000DH
予約
0
0000H
000EH
SV1
2000
07D0H
000FH
SV2
0
0000H
0010H
予約
0
0000H
0011H
予約
0
0000H
0012H
警報
1
動作点設定
1000
03E8H
0013H
警報
1
上限警報動作点設定
500
01F4H
0014H
警報
2
動作点設定
1000
03E8H
0015H
警報
2
上限警報動作点設定
0
0000H
0016H
警報
3
動作点設定
-1500
FA24H
0017H
警報
3
上限警報動作点設定
0
0000H
0018H
警報
4
動作点設定
0
0000H
0019H
警報
4
上限警報動作点設定
0
0000H
・マスター側からの要求メッセージ(上記データを書き込む場)
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(31H 30H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ数
[0019H]
(30H 30H 31H 39H)
バイト数
[32H]
(33H 32H)
1
2
2
4
4
2
データ
[07D00001・・・0000
(30H 37H 44H 30H 30H 30H 30H 31H・・・30H 30H 30H 30H)
エラーチェック
LRC
(34H 45H)
デリミタ
CR+LF
(0DH 0AH)
100(4
×
25)
2
2
・正常時のスレーブ側の応答メッセージ
ヘッダ
(3AH)
スレーブ
アドレス
(30H 31H)
機能コード
(31H 30H)
データ項目
[0001H]
(30H 30H 30H 31H)
データ数
[0019H]
(30H 30H 31H 39H)
エラーチェック
LRC
(44H 35H)
デリミタ
CR+LF
(0DH 0AH)
1
2
2
4
4
2
2
-16-
6.4.2 RTU モード
メッセージ下の数字は,キャラクタ数を表しています。
(1) スレーブアドレス 1PV(0100H)の読み出し
・マスター側からの要求メッセージ
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(03H)
データ項目
(0100H)
データ数
(0001H)
エラーチェック
CRC-16
(85F6H)
アイドル
3.5
文字
1
1
2
2
2
・正常時のスレーブ側の応答メッセージ[PV=600 (0258H)の場合]
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(03H)
応答バイト数
(02H)
データ
(0258H)
エラーチェック
CRC-16
(B8DEH)
アイドル
3.5
文字
1
1
1
2
2
(2) スレーブアドレ1SV1(0001H)書き込み
・マスター側からの要求メッセージ[SV1600 (0258H)書き込む場合]
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(06H)
データ項目
(0001H)
データ
(0258H)
エラーチェック
CRC-16
(D890H)
アイドル
3.5
文字
1
1
2
2
2
・正常時のスレーブ側の応答メッセージ
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(06H)
データ項目
(0001H)
データ
(0258H)
エラーチェック
CRC-16
(D890H)
アイドル
3.5
文字
1
1
2
2
2
・異常時のスレーブ側の応答メッセージ(設定範囲外の値を書き込んだ場合)
異常時の応答メッセージは,機能コードの最上位ビットに 1をセットし,86H を返します。
エラーの内容として,異常コード 03H(設定範囲外の値)を返します。
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(86H)
異常コード
(03H)
エラーチェック
CRC-16
(0261H)
アイドル
3.5
文字
1
1
1
2
(3) スレーブアドレ1SV1(0001H)読み出し
・マスター側からの要求メッセージ
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(03H)
データ項目
(0001H)
データ数
(0001H)
エラーチェック
CRC-16
(D5CAH)
アイドル
3.5
文字
1
1
2
2
2
・正常時のスレーブ側の応答メッセージ[SV1=600 (0258H)の場合]
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(03H)
応答バイト数
(02H)
データ
(0258H)
エラーチェック
CRC-16
(B8DEH)
アイドル
3.5
文字
1
1
1
2
2
・異常時のスレーブ側の応答メッセージ(データ項目を間違えた場合)
異常時の応答メッセージは,機能コードの最上ビットに 1をセットし,83H を返します。
エラーの内容として,異常コード 02H(存在しないデータアドレス)を返します。
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(83H)
異常コード
(02H)
エラーチェック
CRC-16
(C0F1H)
アイドル
3.5
文字
1
1
1
2
-17-
(4) 機器番号 1SV1から 25 コマンドの読み出し
・マスター側からの要求メッセージ
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(03H)
データ項目
(0001H)
データ数
(0019H)
エラーチェック
CRC-16
(D5C0H)
アイドル
3.5
文字
1
1
2
2
2
・正常時のスレーブ側の応答メッセージ
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(03H)
応答バイト数
(32H)
データ
(00000000055A
・・・
0000H)
エラーチェック
CRC-16
(60D9H)
アイドル
3.5
文字
1
1
1
50(2
×
25)
2
応答のデータ部は,以下のようになります。
データ項目
データ
データ
(16
進数に変換した値
)
0001H
SV1
0
0000H
0002H
入力種類選択
K [-200
1370 ]
0000H
0003H
スケーリング上限設定
1370
055AH
0004H
スケーリング下限設定
-200
FF38H
0005H
小数点位置選択
小数点無し
0000H
0006H
警報
1
動作選択
警報動作無し
0000H
0007H
警報
2
動作選択
警報動作無し
0000H
0008H
警報
3
動作選択
警報動作無し
0000H
0009H
警報
4
動作選択
警報動作無し
0000H
000AH
予約
0
0000H
000BH
予約
0
0000H
000CH
予約
0
0000H
000DH
予約
0
0000H
000EH
SV1
0
0000H
000FH
SV2
0
0000H
0010H
予約
0
0000H
0011H
予約
0
0000H
0012H
警報
1
動作点設定
0
0000H
0013H
警報
1
上限警報動作点設定
0
0000H
0014H
警報
2
動作点設定
0
0000H
0015H
警報
2
上限警報動作点設定
0
0000H
0016H
警報
3
動作点設定
0
0000H
0017H
警報
3
上限警報動作点設定
0
0000H
0018H
警報
4
動作点設定
0
0000H
0019H
警報
4
上限警報動作点設定
0
0000H
-18-
(5) 機器番号 1SV1から 25 コマンドの書き込み
SV1 から 25 コマンドのデータ例を以下に示します。
データ項目
データ
データ
(16
進数に変換した値
)
0001H
SV1
2000
07D0H
0002H
入力種類選択
K [-199.9
400.0 ]
0001H
0003H
スケーリング上限設定
4000
0FA0H
0004H
スケーリング下限設定
0
0000H
0005H
小数点位置選択
XXX.X(
小数点以下
1
)
0001H
0006H
警報
1
動作選択
上下限警報個別
000AH
0007H
警報
2
動作選択
上限警報
0001H
0008H
警報
3
動作選択
下限警報
0002H
0009H
警報
4
動作選択
警報動作無し
0000H
000AH
予約
0
0000H
000BH
予約
0
0000H
000CH
予約
0
0000H
000DH
予約
0
0000H
000EH
SV1
2000
07D0H
000FH
SV2
0
0000H
0010H
予約
0
0000H
0011H
予約
0
0000H
0012H
警報
1
動作点設定
1000
03E8H
0013H
警報
1
上限警報動作点設定
500
01F4H
0014H
警報
2
動作点設定
1000
03E8H
0015H
警報
2
上限警報動作点設定
0
0000H
0016H
警報
3
動作点設定
-1500
FA24H
0017H
警報
3
上限警報動作点設定
0
0000H
0018H
警報
4
動作点設定
0
0000H
0019H
警報
4
上限警報動作点設定
0
0000H
・マスター側からの要求メッセージ(上記データを書き込む場)
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(10H)
データ項目
(0001H)
データ数
(0019H)
バイト数
(32H)
1
1
2
2
1
データ
(07D000010FA0
・・・
0000H)
エラーチェック
CRC-16
(5C89H)
アイドル
3.5
文字
50(2
×
25)
2
・正常時のスレーブ側の応答メッセージ
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(10H)
データ項目
(0001H)
データ数
(0019H)
エラーチェック
CRC-16
(5003H)
アイドル
3.5
文字
1
1
2
2
2
-19-
6.5 診断機能
MODBUSプロトコルには,以下の診断機能があります。
・要求メッセージの読み返
・機器識別情報の読み出し
6.5.1 メッセージの構
ASCIIモード
ヘッダ
(:)
スレーブ
アドレス
機能
コード
データ エラーチェック
LRC
デリミタ
(CR)
デリミタ
(LF)
RTUモード
アイドル
3.5
文字
スレーブ
アドレス
機能
コード
データ エラーチェック
CRC-16
アイドル
3.5
文字
(1) スレーブアドレス
スレーブアドレスは,スレーブ側個々の機器番号で195(01H5FH)の範囲で設定します
マスター側は,要求メッセージのスレーブアドレスによってスレーブ側を指定します。
スレーブ側は,応答メッセージに自身のスレーブアドレスをセットして,マスター側にどのスレ
ーブが応答しているかを知らせます。
ブロードキャストアドレス[0(00H)]の場合,診断機能は働きません。
(2) 機能コード
機能コードは,スレーブ側に対する動作の種類を指示するコードです。
機能コード
サブ機能コード
08(08H)
00(0000H)
要求メッセージの読み返し
43(2BH)
14(0EH)
機器識別情報の読み出し
機能コードは,スレーブ側がマスター側に応答メッセージを返す時,正常な応答(肯定応答)または
何らかのエラー(否定応答)を示すのに用いられます。
肯定応答では,元の機能コードをセットして返します。
否定応答では,元の機能コードの最上位ビットに 1をセットして返します。
例えば,サブ機能コードを誤って 0FHをセットしてスレーブ側へ要求メッセージを送信した場合
存在しないサブ機能コードなので最上位ビットに 1をセットし,ABHとして返します。
否定応答では,マスター側にどの種のエラーが発生したかを知らせるため,応答メッセージのデ
ータに下記のような異常コードをセットして返します。
異常コード
1(01H) Illegal function(存在しない機能)
サブ機能コードが間違っている。
2(02H) Illegal data address(存在しないデータアドレス)
機能コード
43
の場合,
Object ID
00, 01, 02
以外。
3(03H)
Illegal data value(設定範囲外の値)
機能コード 08 の場合,データが 1未満また100 超えた。
機能コード
43
の場合,
Read Device ID code
01, 04
以外。
(3) データ
機能コードにより構成が異なります。
機能コード08(08H)の場合,マスター側からの要求メッセージはサブ機能コード2バイト(0000H)
およびデータn×2バイトで構成しま[n: データ数(最大100)]
スレーブ側からの応答メッセージは,正常な場合,要求メッセージと同じです。
機能コード
1
バイト
08H
サブ機能コード
1
バイト
0000H
固定
データ
n
×
2
バイト
任意値
(
最大
100)
-20-
機能コード43(2BH)の場合,マスター側からの要求メッセージは,サブ機能コード14(0EH)Read
Device ID codeおよObject IDで構成します。
機能コード
1
バイト
2BH
サブ機能コード
(MEI
タイプ
)
1
バイト
0EH
Read Device ID code
(Basic
カテゴリに対
)
1バイト 01/04H
Object ID 1バイト 00 ベンダーネーム
SHINKO TECHNOS CO., LTD.
01 プロダクトコード(形名)
(
) DCL-33A-R/M
02 バージョン(D番号, T番号, MP番号)
(
) Dxx-xxxx-xx, MPxxxx-xx
レーブ側からの応答メッセージは,要求に対するサブ機能コード14(0EH)Read Device ID code
およびObject IDなどで構成します
機能コード
1
バイト
2BH
サブ機能コード
(MEI
タイプ
)
1
バイト
0EH
データ
Read Device ID code
1
バイト
01/04H
Conformity level
1
バイト
01/81H
More Follows
1
バイト
00/FFH
Next Object ID
1
バイト
Object ID number
Number of Objects
1
バイト
List of Object ID
1
バイト
List of Object length
1
バイト
List of Object value
Object length
否定応答の応答メッセージは,異常コードをセットして返します。
機能コード
1
バイト
ABH
異常コード
1
バイト
01/02/03H
(4) エラーチェック
通信誤り検出のための,16ットデータです。
6.3 メッセージの構成の(4) エラーチェック(P. 12, 13)を参照してください。
6.5.2 メッセージ例
RTU ードでのメッセージ例を,以下に示します。
コマンド下の数字は,キャラクタ数を表しています。
(1) スレーブアドレ1,要求メッセージの読み返し
・マスター側からの要求メッセージ[テストデータ 200(00C8H), 60(003CH), 10(000AH)の場合]
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(08H)
サブ機能コード
(0000H)
データ
(00C8003C000AH)
エラーチェック
CRC-16
(E7D9H)
アイドル
3.5
文字
1
1
2
n
×
2
2
・正常時のスレーブ側の応答メッセージ(同じメッセージを返します)
アイドル
3.5
文字
スレーブ
アドレス
(01H)
機能コード
(08H)
サブ機能コード
(0000H)
データ
(00C8003C000AH)
エラーチェック
CRC-16
(E7D9H)
アイドル
3.5
文字
1
1
2
n
×
2
2
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40

Shinko DCL-33A ユーザーマニュアル

タイプ
ユーザーマニュアル