実験機器からMS SQLデータベースへのリアルタイムデータログ記録
RS232インターフェースの実験機器をポーリングし、キャプチャしたデータをデータベース構造に従ってMsSQLデータベースに直接エクスポートする完全ガイド。
1. プロトコル設定: 研究室機器
通信タイプ: パッシブリスニング / 双方向(RS232またはUSB仮想COM)
分光光度計、滴定装置、血液分析装置は、専用のASCIIフォーマットやASTM E1381/E1394プロトコルを使用することが多いです。機器が生のASCIIを出力する場合は、「ASCIIデータパーサー」を使用します。ASTMを使用する場合は、専用の「ASTMデータパーサー」プラグインを使用して、ヘッダー(H)、患者(P)、オーダー(O)、結果(R)の各レコードを正しく展開する必要があります。
シリアル接続にこの基本設定を適用してください:
{
"port": "COM4",
"baud_rate": 9600,
"data_bits": 8,
"stop_bits": 1,
"parity": "none",
"parser_type": "astm_e1381",
"ack_nak_handshake": true
}
研究室機器データパーサー

ASTMプロトコルパーサー設定
研究室機器 を Microsoft SQL Server に接続する準備はできましたか?
2. データベース設定: Microsoft SQL Server
Data LoggerのODBCエクスポートモジュール内で、組み込みのSQL Server Native ClientまたはOLE DBプロバイダーを使用します。ロガーサービスアカウントにデータベースアクセス権がある場合、Windows認証がシームレスにサポートされます。
次のSQLスクリプトを使用してターゲットテーブルを作成してください。 高頻度の産業用シリアルログ記録には、DATETIMEの代わりにDATETIME2を使用して、より高い精度のタイムスタンプを実現してください。
CREATE TABLE SerialData ( RecordID INT IDENTITY(1,1) PRIMARY KEY, LogTime DATETIME2 DEFAULT SYSUTCDATETIME(), PortID NVARCHAR(20), SensorReading FLOAT );

ロガー内のMicrosoft SQL Serverコネクタ。

SQLServerデータベース接続設定。例:SQL Express。

SQLキュー。
3. プロトコル固有のトラブルシューティング
- 機器が全くデータを送信しない: 機器によっては、「印刷」ボタンを押したときだけにデータを送信するか、ホストコンピューターからの特別なコマンドを必要とします。
- 機器が1つのレコードを送信した後、送信を停止する: 多くの研究室機器は、データブロックを受信した後にACK(確認応答)文字を必要とします。データロガーで「ACK/NAKハンドシェイク」機能を有効にすると、応答が返され、機器は次のバッチを送信するよう促されます。
- プログラムがすべてのデータを抽出しない。一部のフィールドが欠落している: デフォルトでは、ロガーは重要なデータのみを抽出します。ASCIIデータパーサープラグインを使用して自分のパーサーを作成するか、サポートチームにお問い合わせください。
4. データベース固有のトラブルシューティング
- ユーザーのログインに失敗しました / アクセスが拒否されました: RS232 Data LoggerをバックグラウンドWindowsサービスとして実行する場合、サービスがデフォルトの「Local System」アカウントではなく、db_datawriterロールを持つドメインアカウントで実行されていることを確認してください。または、「SQL Server」認証方式で別のユーザーを作成してください。
- データベースがオフラインの場合、どうなりますか?データは失われますか?: SQL Database Proプラグインを使用してください。データベースがオフラインの間、一時ファイルにデータを書き込み、後で復元することができます。
- 数字を送信する場合のみコードが機能します。文字を送信しようとすると機能しません。: 1. パーサー変数を文字列として宣言する必要があります。 2. テーブルには「VARCHAR」または「NVARCHAR」型の列を含める必要があります。この列のサイズはデータに対して十分である必要があります。 3. データエクスポートプラグインの「Binding」ページで、対応する列のデータ型として「string」を選択する必要があります。