bg

MODBUS RTUデバイスからPostgreSQLへのポーリングとログ記録

MODBUS RTUシリアルデバイスからデータを読み取り、解析された値をデータベース構造に従ってPostgreSQLデータベースに直接エクスポートする完全ガイド。

1. プロトコル設定: MODBUS RTU

通信タイプ: アクティブポーリング(RS485/COM上のマスター/スレーブ)

MODBUSはデータをバイナリで送信するため、パーサーは特定の保持レジスタ(例:40001)または入力レジスタを抽出する必要があります。センサーが32ビット浮動小数点数を使用している場合、隣接する2つの16ビットレジスタを読み取り、正しいバイトスワップ(エンディアン)を適用して浮動小数点数を再構築するようにパーサーを設定します。

シリアル接続にこの基本設定を適用してください:

{
  "port": "COM3",
  "baud_rate": 9600,
  "data_bits": 8,
  "stop_bits": 1,
  "parity": "none",
  "protocol": "modbus_rtu_serial",
  "poll_interval_ms": 1000
}
データをクエリして解析するためのMODBUS RTUプラグインの選択

データをクエリして解析するためのMODBUS RTUプラグインの選択

MODBUS RTUクエリキュー:異なるレジスタを読み取るためのカスタム設定

MODBUS RTUクエリキュー:異なるレジスタを読み取るためのカスタム設定

MODBUS RTU を PostgreSQL に接続する準備はできましたか?

2. データベース設定: PostgreSQL

Advanced Serial Data Loggerを実行するサーバーにPostgreSQL ODBCドライバー(psqlODBC)をインストールします。システムDSNを作成するか、SQL Database Professionalプラグインで「192.168.1.100:mydatabase」のような直接接続文字列を使用します。

次のSQLスクリプトを使用してターゲットテーブルを作成してください。 対象スキーマに対してユーザーロールにINSERT権限があることを確認してください。生のセンサーデータからの浮動小数点精度の損失を防ぐために、NUMERICデータ型を使用してください。

CREATE TABLE rs232_logs (
  id SERIAL PRIMARY KEY,
  log_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  device_name VARCHAR(50),
  extracted_value NUMERIC(10, 2)
);
PostgreSQLデータベースコネクタの選択。

PostgreSQLデータベースコネクタの選択。

PgSQLデータベース接続設定。

PgSQLデータベース接続設定。

テーブルにデータを挿入するSQLキュー。

テーブルにデータを挿入するSQLキュー。

3. プロトコル固有のトラブルシューティング

  • タイムアウトまたはCRCエラー: TCPとは異なり、シリアルMODBUS RTUは厳密なタイミングに依存しています、RS485のA/B配線が逆接続されていないこと、ソフトウェアのボーレートとデバイスIDがスレーブデバイスと完全に一致していることを確認してください。
  • デバイスが「Illegal address」エラーコードを返す: MODBUSリクエストで関数#4の代わりに関数#3を使用してみてください。それ以外の場合、正しいレジスタアドレスを使用していることを確認してください。絶対オフセット(40001のような論理アドレスではなく)を指定してみてください。
  • 複数の値を1行のデータ行としてエクスポートしたいのに、ロガーが1値ずつ書き込む: MODBUSプラグイン設定で「すべてのデータを一度にエクスポート」オプションを有効にする必要があります。

4. データベース固有のトラブルシューティング

  • FATAL: パスワード認証に失敗しました: pg_hba.confファイルでData LoggerのIPアドレスからの接続が許可されていること(リモートの場合)、および認証方式がmd5またはscram-sha-256に設定されていることを確認してください。
  • データベース内のすべてのレコードに、同じタイムスタンプの類似レコードが2つあります: 2つのデータエクスポートプラグインを同時に使用していないか確認してください。例えば、ODBC DatabaseとSQL Database Proは、データを並列にエクスポートできるためです。
  • ODBCドライバーをインストールしてDSNを作成しましたが、ソフトウェアで選択できません。: 当社のソフトウェアには32ビットODBCドライバーが必要です。したがって、32ビットODBCアドミニストレーターでDSNを作成するには、このバージョンのドライバーをインストールする必要があります。「ODBC Database」プラグインの「Setup」ボタンを使用して行うことができます。

MODBUS RTU を PostgreSQL に接続する準備はできましたか?

ソフトウェア製品 購入 ダウンロード サポートエリア 連絡先 サイトマップ
著作権 © 1999 - 2026, AGG Software.
無断転載を禁じます。. 利用規約 | プライバシーポリシー