重量計からMS SQLデータベースへのリアルタイムログ記録
重量計シリアルデバイスをポーリングし、キャプチャしたデータをデータベース構造に従ってMsSQLデータベースに直接エクスポートする完全ガイド。
1. プロトコル設定: RS232重量計
通信タイプ: パッシブリスニング(連続またはオンデマンド印刷)
大幅の産業用重量計は、キャリッジリターン(CR)とラインフィード(LF)で終了するASCII文字列を送信します。ソフトウェアの「ASCIIデータパーサー」モジュールを使用し、データパケットの終了文字に「#0D#0A」を指定します。固定カラム位置または正規表現を使用して数値の重量を抽出できます。さらに、ロガーには一般的な重量計のためのプリセットパーサーが含まれています。
シリアル接続にこの基本設定を適用してください:
{
"port": "COM1",
"baud_rate": 9600,
"data_bits": 8,
"stop_bits": 1,
"parity": "none",
"flow_control": "hardware",
"packet_end": "#0D#0A"
}
デバイスをポーリングして受信データを解析するための重量計プラグインの選択

重量計プラグインの設定:重量計のタイプとポーリング間隔
RS232重量計 を 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. プロトコル固有のトラブルシューティング
- 画面に意味不明な文字が表示される: これはほとんどの場合、ボーレートまたはパリティの不一致を示しています、9600-8-N-1が標準ですが、古いMettler ToledoやOhausの重量計では2400ボーや70-Even-1パリティが使用されることがよくあります。ハードウェアマニュアルを確認してください。
- 安定した重量のみを処理し、中間値を無視することは可能ですか?: フィルタープラグインのいずれかを使用し、例えばデータパケット内に「stable」のシグネチャがないすべてのレコードを無視します。
- 100.0 kg以上の重量値を処理することは可能ですか?: 数式フィルタープラグインを使用すると、数式を使用できます。例えば、次のコマンドを使用します:DISCARD_DATA_PACKET_IF(WEIGHT < 100)。
4. データベース固有のトラブルシューティング
- ユーザーのログインに失敗しました / アクセスが拒否されました: RS232 Data LoggerをバックグラウンドWindowsサービスとして実行する場合、サービスがデフォルトの「Local System」アカウントではなく、db_datawriterロールを持つドメインアカウントで実行されていることを確認してください。または、「SQL Server」認証方式で別のユーザーを作成してください。
- データベースがオフラインの場合、どうなりますか?データは失われますか?: SQL Database Proプラグインを使用してください。データベースがオフラインの間、一時ファイルにデータを書き込み、後で復元することができます。
- 数字を送信する場合のみコードが機能します。文字を送信しようとすると機能しません。: 1. パーサー変数を文字列として宣言する必要があります。 2. テーブルには「VARCHAR」または「NVARCHAR」型の列を含める必要があります。この列のサイズはデータに対して十分である必要があります。 3. データエクスポートプラグインの「Binding」ページで、対応する列のデータ型として「string」を選択する必要があります。