セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-05-14 現在

超簡単!標準アプリのUART機能

UART機能で利用するデータ形式
    超簡単!標準アプリ(App_Twelite)の UART 機能で使用するデータ形式を解説します。

    デジタル・アナログ入出力

    0x81:相手端末からの状態通知

    受信した入力信号の状態を出力します。

    データ形式

    #データ内容備考
    charヘッダ:のみ
    0uint8送信元の論理デバイスID
    1uint8コマンド番号0x81のみ
    2uint8パケット識別子アプリケーションIDより生成
    3uint8プロトコルバージョン0x01のみ
    4uint8LQI0-255
    5uint32送信元のシリアルID0x8???????
    9uint8送信先の論理デバイスID
    10uint16タイムスタンプ1秒で64カウント
    12uint8中継回数
    13uint16電源電圧単位はmV
    15int8-(未使用)
    16uint8デジタル信号LSBから順にDIxへ対応、0がHigh
    MSBが1なら定期送信
    17uint8デジタル信号マスクLSBから順にDIxへ対応、1が有効
    18uint8AI1の変換値アナログ信号の計算を参照、0xFFで未使用
    19uint8AI2の変換値アナログ信号の計算を参照、0xFFで未使用
    20uint8AI3の変換値アナログ信号の計算を参照、0xFFで未使用
    21uint8AI4の変換値アナログ信号の計算を参照、0xFFで未使用
    22uint8AIxの補正値LSBから2ビットずつ順にAIxへ対応
    uint8チェックサムLRC8
    charフッタCR (0x0D/'\r')
    charフッタLF (0x0A/'\n')

    アナログ信号の計算

    AIxの入力電圧 \(V\)は、受信した変換値\(e_{r}\)および補正値\(e_{fr}\)を使って次のように表すことができます。

    $$\begin{align*} V &= e+e_f \\ \text{where} \\ e &= 16e_r \\ e_f &= 4e_{fr} \\ \end{align*}$$

    単位は mV

    出力データの例

    :78811501C98201015A000391000C2E00810301FFFFFFFFFB

    0x80:相手端末の出力変更

    相手端末の出力信号を制御します。

    データ形式

    #データ内容備考
    charヘッダ:のみ
    0uint8送信先の論理デバイスID親機0x00,子機0x01-0x64,全子機0x78
    1uint8コマンド番号0x80のみ
    2uint8書式バージョン0x01のみ
    3uint8デジタル信号LSBからDOxに対応、0でHigh
    4uint8デジタル信号マスクLSBからDOxに対応、1で有効
    5uint16PWM1信号0-1024,0xFFFFで無効
    7uint16PWM2信号0-1024,0xFFFFで無効
    9uint16PWM3信号0-1024,0xFFFFで無効
    11uint16PWM4信号0-1024,0xFFFFで無効
    uint8チェックサムLRC8
    charフッタCR (0x0D/'\r')
    charフッタLF (0x0A/'\n')

    UART 入出力

    0x01:任意のデータの送信

    データ形式

    #データ内容備考
    charヘッダ:のみ
    0uint8送信先の論理デバイスID親機0x00,子機0x01-0x64,全子機0x78
    1uint8コマンド番号0x01のみ
    2[uint8]任意のデータ長さ\(N\)のバイト列(\(N\leqq80\)を推奨)
    uint8チェックサムLRC8
    charフッタCR (0x0D/'\r')
    charフッタLF (0x0A/'\n')

    0x01:任意のデータの受信

    データ形式

    #データ内容備考
    charヘッダ:のみ
    0uint8送信元の論理デバイスID親機0x00,子機0x01-0x64,未設定子機0x78
    1uint8コマンド番号0x01のみ
    2[uint8]任意のデータ長さ\(N\)のバイト列
    uint8チェックサムLRC8
    charフッタCR (0x0D/'\r')
    charフッタLF (0x0A/'\n')

    I2C 入出力

    0x88:I2C 入力

    データ形式

    #データ内容備考
    charヘッダ:のみ
    0uint8送信先の論理デバイスID親機0x00,子機0-0x7F,全子機0x78,自身0xDB
    1uint8パケット識別子0x88のみ
    2uint8応答番号応答メッセージへ出力する番号
    3uint8コマンド番号書き込み0x1,読み出し0x2,読み書き0x4
    4uint8I2Cアドレス7ビット
    5uint8I2Cコマンド最初のコマンドバイト
    6uint8データサイズ0はなし
    7[uint8]データ長さ\(N\)のバイト列
    uint8チェックサムLRC8
    charフッタCR (0x0D/'\r')
    charフッタLF (0x0A/'\n')

    0x89:I2C 出力

    データ形式

    #データ内容備考
    charヘッダ:のみ
    0uint8送信元の論理デバイスID親機0x00,子機0-0x7F,全子機0x78,自身0xDB
    1uint8パケット識別子0x89のみ
    2uint8応答番号応答メッセージへ出力する番号
    3uint8コマンド番号書き込み0x1,読み出し0x2,読み書き0x4
    4uint8結果失敗0、成功1
    5uint8データサイズ0はなし
    6[uint8]データ長さ\(N\)のバイト列
    uint8チェックサムLRC8
    charフッタCR (0x0D/'\r')
    charフッタLF (0x0A/'\n')