南计器フローメータ用MODBUS通信プロトコル

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

南计器流量计用MODBUS通信プロトコル

プロトコルの概要

1.1 MODBUS合意内容の一致GB/Z 19582.1/2/3-2004(IEC60870-5)標準的な& nbsp;;;                           

1.2この協定は工場に適用される。LWQZガスインテリジェントタービントラフィック計、 LLQZインテリジェントなルーツメーター、 LUXZインテリジェント旋回渦トラフィック

カウント、 EVC体積補正器などの製品。

1.3主な特徴

デバイスのプロパティ:トラフィック計はMODBUS通信バス上のスレーブです

通信モード: RTU

通信メディア:RS 485

アドレス: 1- 24 7

ボーレート:1200 、2400 、48 0 0、96 00、19200 bps

データサイズ:8 bit

チェック·ビット:チェックなし(2ストップビット)、偶数チェック(1ストップビット)、奇数チェック(1ストップビット)

1.4 特殊性は

本プロトコルはトラフィック計用に開発され、マルチバイトのバイナリ、 ASCII文字列、 BCDコードなどのタイプ変数のデータ通信をサポートします。通信はMODBUSの03H 、07H機能コードを使用し、ユーザー定義の66H機能コードを追加します。

サポートされたMODBUS関数コードの特徴

機能コード、データフレームフォーマットは次のとおりです。

2.1 関数コードの特徴03読み取り開始アドレスはstart_addrスタートアップ。Nデータの単語。テーブルを参照。1。

親局は、addr,03 start_addr_hi start_addr_low N_hi N_low CRCを送信します。

スレーブ応答addr 03 num data 0. data num-1 CRC

例外応答addr 83H error_code CRC

テーブル1。

レジスター·アドレス変数名レジスタ数Nタイプの種類ユニットユニット
0000H作業負荷の累積4BIN南计器流量计用MODBUS通信プロトコル插图3
0004H基準状態の累積4BINNm3
0008H作業条件フロー2BINm3/h
000AH標準フローの流れ2BINNm3/h
000CH気温は2BIN℃
000EH圧力は2BINkPa

そのうち:

南计器流量计用MODBUS通信プロトコル插图1  開始アドレス:start_addr_hi,start_addr_low

2バイトで構成され,順に開始アドレスのハイバイト,ローバイトである;開始アドレスは必ず表1の第1列の数値でなければならず,そうでなければフロー量計がアドレスを返信するエラー(error_code =2); N_hi,N_lowの2バイトで構成され,N個のワード(1個のワードは2個のバイトで構成される)のデータを読み取ることを示す;

南计器流量计用MODBUS通信プロトコル插图1     :データの

南计器流量计用MODBUS通信プロトコル插图1     error_codeコードを表4に示します。

例:例1  EqualLogicの出荷時のデフォルト: Codfor for01 ,Cdrfor for23 ,bpsfor for9600)

南计器流量计用MODBUS通信プロトコル插图1   メインステーション送信:17 0 3 0 0 0 4 0 0 4 0 7 3 E  

アドレス機能コード開始アドレスレジスタ数CRCチェックコード

南计器流量计用MODBUS通信プロトコル插图1  ステーションからの応答: 17 0 3 0 8 0000003 941252 4 E 1 9 D 25

アドレス機能コードバイト数標準累積チェックコード

南计器流量计用MODBUS通信プロトコル插图1  変数データは8バイトのバイナリ数で表される標準累積トラフィックで、上位が先にあり、そのうち最初の6バイトは整数部分で、最後の2つは

個は小数部であり、データは3752229である。144 nm3/h。

南计器流量计用MODBUS通信プロトコル插图1  データパッケージの説明:

1)整数部16進数00 0 0 0 39 41 25は10進数で375 2229に等しい。

2)小数部16进数24E1 16 = 9441 10 / 65536= 0. 14405 10進法。

3)結果は375 2 2 2 9.14、単位: Nm3/hです。

例:例2レジスタデータの読み出し(この例ではカレント积算器に表示されるデータの読み出し)

南计器流量计用MODBUS通信プロトコル插图1  メインステーション送信:17 0 3 0 0 0 0 0 10 46 F 0   

アドレス機能コード開始アドレスレジスタ数CRCチェックコード

南计器流量计用MODBUS通信プロトコル插图1  ステーションからの応答: 17 03 20 00 00 37 12 05 A 0 43 00 00 37 12 05 A 0 43

アドレス機能コード受信バイト数ケース累積基準累積

00 01 CB 6B     00 01 CB 89      00 00 14 00    00 00 65 53    BA 18 

動作条件トラフィック条件トラフィック温度圧力チェックコード

注:ホストが送信したデータフレームがエラーになった場合、スレーブは応答error_codeコードに応答せず、この時点でホストがコマンドを送信し続けることを拒否する。

2.2 関数コードの特徴07トラフィック計を読む。1個のバイトの状態データ。テーブルを参照。2。

親局送信addr 07 CRC

スレーブ応答addr 07 status CRC

テーブル2。

 BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
1ハードウェア障害がある。低トラフィックアラーム。高トラフィック警報の動作バッテリー低電圧1アラームバッテリー低電圧2アラーム瞬時トラフィックの低下キー操作中外部電源あり。
0ハードウェア障害なし動作トラフィックがアラーム最小値を超える動作トラフィックがアラーム上限未満バッテリ电圧がアラーム限度1を超えるバッテリ电圧がアラーム限度2を超える瞬時トラフィックは正常 ボタンなし。外部電源なし

2.3関数コードの特徴66Hトラフィック計の内部履歴データを読み取るためのユーザー定義機能コード。テーブルを参照。3。

テーブル3。

レジスター·アドレス変数名レジスタ数Nタイプの種類説明書は
0063H記録開始時刻1BCDノート1。
0064H現在の時刻。3BCDノート2。
0067H計器生産情報18ASCIIノート3。
0079Hリアルタイム録音。17BCD/BINノート4。
008AH月の記録5BCD/BINノート5。
008FHスタートストップレコード8BCD/BIN背番号6。
0097H切断防止レコード4BCD/BINノート7。

2.3.1最新のM番目のライブ·レコード(1レコード)の読み取り

親局送信addr 66H 00 64H 02H M_hi M_low CRC

スレーブ局応答66H 22H pBIN BIN q0 BIN t BIN p BIN year month day hour minite sec CRC

2.3.2最新のM月レコードの読み取り(1レコード)

親局送信addr 66H 00 65H 02H M_hi M_low CRC

スレーブ応答addr 66H 0AH sum BIN year BCD month BCD CRC

2.3.3最近のM番目の開始/停止レコードを読むEVCは開始/停止レコードなし、1レコード

親局送信addr 66H 00 66H 02H M_hi M_low CRC

スレーブ応答addr 66H 10H sum BIN year BCD month BCD day BCD hour BCD

minite(BCD),sec(BCD), ssflag(byte),0, CRC

2.3.4最近M番目のセンサが切断または接続されたときの記録を読み取る1レコード、機械的カウンタを取り付けたインテリジェント積算計のみ適用マスター局送信addr 66H 00,67H 02H M_hi M_low CRC

スレーブ応答addr 66H 08H year BCD month BCD day BCD hour BCD

minite(BCD),sec(BCD), bkflag(byte),0, CRC

コメント:

南计器流量计用MODBUS通信プロトコル插图1     Mはワードで、2バイトで表され、M_hiはハイバイト、M_lowはローバイトで、最も近いレコードを読み取る場合、M=1、

M=0以上の場合、トラフィック計はトラフィック計内部に保持されているレコード数を0とするシーケンスを返します。

南计器流量计用MODBUS通信プロトコル插图1     psum BIN sum BIN:8バイト8桁の2進数で表される累積量。上位のビットが先、最初の6バイトが整数、次の2バイトが整数

バイトは小数、単位はm 3です。

南计器流量计用MODBUS通信プロトコル插图1     q0(BIN):4バイト8桁の2進数で表される標準状態瞬時トラフィック。上位のビットが先で、最初の3バイトが整数で、次の1バイト

単位: Nm3/h。

南计器流量计用MODBUS通信プロトコル插图1     t BIN:4バイト8桁の2進数で表された温度で、上位が先で、最初の3バイトは整数で、次の1バイトは小数です。

略称はC。

南计器流量计用MODBUS通信プロトコル插图1     p BIN:4バイトの8桁の2進数で表される圧力。上位が先で、最初の3バイトは整数で、次の1バイトは小数である。

略称はKPA。

year,month,day,hour,minite,sec

年(2000年を起点とし、20は非表示)、月、日、時、分、秒を表すシングルバイトBCDコードである。

ssflagはスタート/ストップフラグであり、ssflag=55Hの場合はスタートレコードであることを示し、ssflag=0EEHの場合はストップレコードであることを示します。

bkflagは正常/切断フラグであり、bkflag=55Hの場合、この記録はセンサ線が正常に戻った時の記録であることを示します。bkflag=の場合。

0EEHの場合、この記録がセンサワイヤが切り取られたときの記録であることを示す。

注1:記録開始時間:リアルタイム記録の開始時間を指定するために使用されます。2バイト、時間-分。秒時間はデフォルトで0です。

注2::年月日时、6个バイト、コード、その中の年は1个バイト(2000年を起点とし、20は表示しない):注3:计器:36个バイト、ASCIIコード;その中のメーカーコードは10字、型番は12个バイト、连番は8个バイト、

ソフトウェアバージョン3バイト、日3バイト年月日;

タグ:リアルタイム記録

:一本のリアルタイムデータ記録はすべてで34バイトであり、状態累積量8バイト(8桁の2進数、単位:m3)、基準状況累積量8バイト(8桁の2進数、単位:m3)、瞬時トラフィック4バイト(8桁の2進数、単位:m3/h)、温度4バイト(8桁の2進数、単位:℃)、圧力4バイト(8桁の2進数、単位:kPa)、時間6バイト(BCDコード、年月日時秒)を含む。

注5:月次記録。

1つの月の記録は合計10バイト、標準状况累積量は8バイト(8桁の2進数、単位:m3)、時間は2バイト(BCDコード、年)

月のこと。

注6:発停:1本の発停はすべてで15バイト、标状况积算量は8バイト(8桁の二进数、単位:m3)、6ワード节(コード、年月日时)、発停1バイト(55Hはトラフィックが无から有を示し、EEHはトラフィックが有から无まで)、0(予约バイト);

注7:剪断防止記録:1本の剪断防止記録は8バイトで、時刻6バイト(BCDコード、年月日時秒)、剪断防止フラグ1バイト(55Hはセンサハーネスがオンで正常、EEHはセンサハーネスが切断され異常、記録時間はオンまたは切断された時間)、 0(予約バイト)である。

2.4通信フレームを受信してもトラフィック計が応答しない場合:

2.4.1受信データフレームの通信アドレスバイトがローカルアドレスと異なる場合;

2.4.2受信データフレームの通信アドレスバイト(0に等しい)がブロードキャストアドレスである場合;

2.4.3受信したデータフレームのCRCチェックがエラーになった場合;

2.5.4受信データフレームのコマンドコードが間違っている場合。

2.5 異常な応答

スレーブがローカルに送信されたデータフレームを受信し、 CRCが正しく、異常を検出すると、

スレーブ応答は次のとおりです。addr function_code +128 error_code CRC

注:function_code:ホストコマンドフレームの機能コード(2バイト目)、function_code +128が機能コードです。

バイトの最上位位置1は例外を示します。

テーブル4。

値の値障害の意味
02変数アドレスが無効です
03無効な数値

データ型

テーブル内のデータには、BIN 、BCD、ASCIIの3種類があります。

3.1 BIN:2進数、上位バイトが前、下位バイトが後、それぞれ4つのケースがあります。

1バイト小数なし、符号なし;

2バイト小数なし、符号なし;

4バイト(最后の1バイトは小数、最初のバイトの最上位ビットは符号ビット、1は负の数、0は正の数)       8バイト最后の2バイトは小数を表し、符号なしビット;リアルタイムレコードで表示される量と量の小数位の后の1ワード

セクションのデフォルトは00で、小数点以下は1バイト単位で計算されます。

BCDコード: 1バイトは2桁の値を表し、値の範囲は0-9です。

3.3 ASCIIコード:文字、8ビット、1バイトのASCIIコードで、英語の文字または数字を表します。

特別な注意事項

元のカスタムトラフィック計通信プロトコルと互換性を保つために、特別なコマンド形式を追加しました。

4.1データは8ビットで、パリティはありません。すなわち通信モードCodを10にする.

4.2、トラフィック計のアドレスADDRの出荷時デフォルト値は023、すなわち16進数で17です。

4.3 0 2測定パラメータの読み取り

4.3.1 、トップマシンはフローメータに送信:

55H, 55H, ADDR, 02 ,00, ChkSum

4.3.2トラフィック計が上位コンピュータに応答するデータフレーム:

55H, 55H, ADDR, 02, 18, DevStatus, DevErr, Qm, Qo, t, p, sum, ChkSum

コメント:

南计器流量计用MODBUS通信プロトコル插图1     55H,55Hはデータフレームのガイド文字であり,データフレームの開始を示す;

南计器流量计用MODBUS通信プロトコル插图1     ADDRはトラフィック計の通信アドレス、1バイト、値の範囲は1-247です。

南计器流量计用MODBUS通信プロトコル插图1     02は通信コマンド番号、1バイト、読み取り測定パラメータです。

南计器流量计用MODBUS通信プロトコル插图1     18はデータ长で、1バイトであり、その后に18Hバイトのデータがあることを示す。

南计器流量计用MODBUS通信プロトコル插图1     Qm(動作トラフィック)、Qo(標準トラフィック)、t(温度)、p(圧力)、sum(累積量)。

南计器流量计用MODBUS通信プロトコル插图1     ChkSumはチェックサムで、1バイトで、その値はAddressからChkSumまでの全データの和までの下位8ビットデータである。 南计器流量计用MODBUS通信プロトコル插图1     DevStatus:ステータスコード、1バイト、各ビットの意味を表5に示します。

テーブル5。

 BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
1コマンドが応答しないコール警察に通報睡眠は外部電源あり。減衰要因補償ボタン付き。バッテリーの低電圧流れが少ない。
0命令の応答警察を呼ばない。眠れない。外部電源なし補償なし。ボタンなし。バッテリーは正常。普通の流れ

南计器流量计用MODBUS通信プロトコル插图1     DevErr:障害コード、1バイト、各ビットの意味を表6に示す:

テーブル6。

 BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
1周波数回路の故障温度センサーの異常圧力センサーの異常A/D変换回路のRAMの障害EEPROMエラーシリアルポート通信障害クロック回路の故障
0周波数回路は正常温度センサーは正常圧力センサーは正常A/D変換回路は正常RAMは正常EEPROMは正常シリアル通信は正常時計回路は正常

南计器流量计用MODBUS通信プロトコル插图1  動作トラフィック、標準トラフィック、温度、圧力は、P、SMH、MM、Mの順に、4バイト(単精度)浮動小数点で表されます。

LをF Floatで表すFloatData = ± 0.MH-MM-ML* 2P

南计器流量计用MODBUS通信プロトコル插图1  累積量は6バイトの浮動小数点数で表され、P、SMH、MM、ML、ML1、ML2の順にF(Float)で表される。

FloatData = ±0.MH-MM-ML-ML1-ML2*2P

ここで、P:順序コード、1バイト、16進数の補数で表されます。

SMH:仮数の上位バイト、1バイト、最上位ビット(第7ビット)は符号ビットSであり、S=1はデータが负であることを示し、S=0はデータが正であることを示し、残りの7ビットは小数点数仮数の仮数の上位7ビット、0から6ビットである。

MM:仮数のバイト、1バイト、7から14ビット。

ML:仮数の下位バイト、1バイト、15から23ビット。

ML1:仮数の下位バイト、1バイト、24から31ビット。

ML2:仮数の下位バイト、1バイト、32から39ビット。

例:例3:

南计器流量计用MODBUS通信プロトコル插图1  上位コンピュータがトラフィック計に送信するデータフレーム:

55     55     17      02    00       19   

55H  55H   ADDR   CMD  Len1   ChkSum

南计器流量计用MODBUS通信プロトコル插图1  トラフィック計がホストコンピュータに応答するデータフレーム:

55    55     17      02    18      15         00      00 00 00 00     00 00 00 00      05 50 00 00      07 65 4C CC

55H  55H  ADDR  02   18   DevStatus   DevErr     Qm          Qo          t             p

16 72 82 4A 49 25     E1

sum       ChkSum

南计器流量计用MODBUS通信プロトコル插图1  分数コードの10進数値を境界として仮数を整数と小数に分割し、バイナリから10進変換を行います。南计器流量计用MODBUS通信プロトコル插图1  

データパッケージの説明:

55 55 17 02 18          ---

15

00

00 00 00 00 00 00 00 00 05 50 00 00

07 65 4C CC

--ステータスコード

---障害コード

---トラフィック=0

---標準状態瞬時トラフィック=0

---温度=0.10100 00000000000000000000000000 ×2∧0101=20

---圧力= 0.11001 01 0 1001 1001 100 ×2∧ 0 1 1 1 = 101.2999877 9

16 7 2 82 4 A 49 25----累積量= 0.1 1 10010100001001001001001001001001001001001 ×2∧10110 = 37 5 2229. 1428604125

E 1-チェックサム

4.3.3カスタムフローメータ通信プロトコル小数点数解析

4バイト浮動小数点数と6バイト浮動小数点数を解析する方法については、以下で詳しく説明します。

温度05 50 00 00データ型のにより、P= 05 H= 0101 2 = 5

SMH=(50)H=(01010000) 2      MM=00  ML=00

。SMHの最上位ビットが0なので、仮数は正です。順序コードPは10進数5に変換されるので、仮数が2進数に変換された後、最初の5桁は整数 部分、残りは小数部分です。

FloatData = 0 10100 00000000000000 0 10進数へ

正の整数部小数部

FloatData = 1×24   + 1×22   = 20

圧力07 65 4 C CCここでP= 07 H = 0111 2 =7 SMH = 65 H= 01100101 2 MM= 4C H= 01001100 2 ML= CC H= 11001100 2

SMHの最上位ビットは0なので、仮数は正であり、コードPは10進数に変換されるので、仮数が2進数に変換された後、7ビットは整数 部分であり、残りは小数部分です。

FloatData = 0 1100101 01001100 11001100 1100十進数へ

正の整数部小数部

FloatData= 1×26   + 1×25   + 1×22   + 1×20   + 1×2-2   + 1×2-5   + 1×2-6

+ 1×2-9   + 1×2- 10   + 1×2- 13   + 1×2- 14   = 101.29998779

累積:16 72 82 4 A 49 25ここでP=(16)H=(00010110)2 = 22 SMH=(72)H=(01110010)2 MM=(82)H=(1000010)2 ML=(4 A)H=(01001010)2 ML1=(49)H=(01001001)2 ML2 =(25)H=(00100101)2 SMHの最上位ビットは0であるので、仮数は正であり、符号Pは10進数に変換されるので、仮数が2進数の場合、22ビットは整数部で残りは小数部である。

FloatData = 0 1110010 1000010 0100101 0 01001001 001001 10進数への変換

正の整数部小数部

FloatData =1×221   + 1×220   + 1×219   + 1×216   + 1×214   + 1×28   + 1×25   + 1×22   + 1×20+ 1×2-3   + 1×2-6   + 1×2-9   + 1×2- 12   +1×2- 15   + 1×2- 17   = 3752229.1428604125

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注