mcpField
L
LabJack T-series DAQ

LabJack T-series DAQ

ローカル
github.com科学・教育235 週間前に更新

LabJack T-series DAQ について

LabJack T-series DAQは、LJMライブラリを使うLabJack T4、T7/T7-Pro、T8向けのMCPサーバーです。アナログ・デジタル入力、熱電対、波形の読み取りと出力設定に対応し、実機での検証はまだ行われていません。

主な機能

  1. 01アナログ入力と機器温度の読み取り
  2. 02熱電対測定値の取得
  3. 03デジタル入力状態の確認
  4. 04波形のストリーミングと保存
  5. 05DACとデジタル出力の設定

活用シーン

  1. 01アナログチャンネルを読み浮遊入力を確認
  2. 02指定レートで波形を取得し統計量を計算
  3. 03熱電対を読み温度変化を追跡
  4. 04DAC出力を設定してループバック値を確認

MCP 対応

MCPサーバーとして、LabJackの機器情報、アナログ・デジタル読み取り、熱電対測定、ストリーミングのツールと、DAC・デジタル出力の制御ツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"k-dense-ai-labmcp-labjack": {
"command": "uvx",
"args": [
"labmcp-labjack"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
起動コマンドuvx labmcp-labjack
設定が必要な環境変数
LABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025
LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)
LABMCP_READ_ONLYSet to 1 to disable all state-changing tools
LABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilabmcp-labjack0.1.3

ツール

12

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

LabJack T-series DAQ — MCP サーバー

AI エージェントが、LabJack の公式 LJM ライブラリを通じて、LabJack T4、T7/T7-Pro、T8 DAQ デバイスのアナログ入力の読み取り、波形のストリーミング、熱電対の読み取り、デジタルラインの確認を行えるようにします。また、許可を得た場合は DAC とデジタル出力を設定できます。

パッケージlabmcp-labjack
計測器LabJack T4、T7、T7-Pro、T8(および各 OEM バージョン)
インターフェースUSB、Ethernet、WiFi(T7-Pro)
プロトコルLJM ライブラリ + T-series Modbus レジスターマップ(T-Series Datasheet、レジスターマップ ljm_constants.json、labjack-ljm Python ラッパー)
ステータス🧪 シミュレーション済み:シミュレーション用 LJM バックエンドでテスト済みですが、実機ではまだ検証されていません。実機テストを報告する

ハードウェアなしで試す

uvx labmcp-labjack --simulate --check
uvx labmcp-labjack --simulate --option sim_model=T8 --check     # T4, T7, T7-Pro (default) or T8

シミュレーターでは、2 V / 10 Hz の正弦波を AIN0 に、サーミスタ分圧回路(約 2.5 V)を AIN1 に、DAC0 を AIN2 にフィードバック接続し、LM34 冷接点センサーを AIN3 に、熱電対機能の使用時には約 37 °C の熱電対を AIN0-AIN3 に接続します。その他の入力は接地されています。

LabJack を接続する

  1. labjack.com/support/software/installers/ljm から LJM(ネイティブライブラリと USB ドライバー)をインストールします。labjack-ljm Python パッケージはこのサーバーと一緒に自動でインストールされますが、ネイティブライブラリが必要です。
  2. ほかの LabJack ソフトウェア(Kipling、LJLogM、LJStreamM)を終了します。 USB 経由でデバイスを使用できるプロセスは、一度に 1 つだけです。
  3. 接続をテストします。
    uvx labmcp-labjack --check                                  # first LabJack found
    uvx labmcp-labjack --address 470012345 --check              # by serial number
    uvx labmcp-labjack --address 192.168.1.207 --option connection_type=ETHERNET --check
    uvx labmcp-labjack --option device_type=T4 --check          # only open a T4
    
    --address は LJM 識別子です。シリアル番号、IP アドレス、デバイス名、または ANY(デフォルト)を指定します。

MCP クライアントに追加する

Claude Code

claude mcp add labjack -- uvx labmcp-labjack --address 470012345

Claude Desktop / Cursor / Windsurf(claude_desktop_config.json、.cursor/mcp.json、…)

{
  "mcpServers": {
    "labjack": {
      "command": "uvx",
      "args": ["labmcp-labjack", "--address", "470012345"]
    }
  }
}

測定を許可しつつ DAC とデジタル出力のツールをブロックするには、--read-only を追加します(set_outputs_safe は引き続き使用できます)。別のプログラムがラインを駆動していた場合でも、set_outputs_safe が常にそれらのラインを解放するようにするには、--option safe_dio=FIO0,FIO1 を追加します。ほかのクライアントでは、uvx labmcp config labjack --client vscode(cursor、codex、claude-code も指定可能)を実行して設定スニペットを生成してください。

ツール

ツール種類説明
get_command_log👁 読み取り機器に送信したコマンドと受信した応答のうち、最新のものを返します(新しいものが末尾)。デバッグや実行内容の記録に便利です。
get_connection_info👁 読み取り接続されている機器(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、有効な安全制限を報告します。最初に呼び出してください。
get_device_info👁 読み取り接続されている LabJack(モデル、シリアル番号、ファームウェア、接続)を識別し、利用可能な機能(アナログ入力、有効な入力範囲、分解能インデックス、DAC 範囲、デジタルライン、ストリームレート)を一覧表示します。チャンネルを設定する前に呼び出してください。
read_analog_inputs👁 読み取り1 つ以上のアナログ入力を一度読み取り(コマンドと応答)、電圧を返します。
read_device_temperature👁 読み取りLabJack の内蔵温度センサー(°C、約 ±2 °C)と推定周囲気温を読み取ります。T8 では、各 AIN 端子の隣にあるセンサーの値も返します。ストリーム実行中は読み取れません。
read_digital_inputs👁 読み取りデジタル I/O ラインの論理レベルと方向(入力/出力/アナログ)を報告します。
read_thermocouple👁 読み取りT7/T8 の AIN 熱電対拡張機能を使用して熱電対(タイプ B、C、E、J、K、N、R、S、T)を読み取り、測定電圧と冷接点温度とともに °C を返します。
reconnect🛑 安全機器との接続を閉じて再度開きます(電源を入れ直した後やケーブルを再接続した後などに使用します)。
set_digital_output⚠️ 危険デジタルラインを出力に設定し、High(3.3 V)または Low(0 V)にします。
set_outputs_safe🛑 安全出力を安全な状態にします。ストリームを停止し、DAC0 と DAC1 を 0 V に設定して、このサーバーが駆動したすべてのデジタルライン(および safe_dio オプションのライン)を入力に戻します。あるいは dio_mode='low' で Low にします。作業終了時や異常が見られる場合に使用してください。
stream_analog👁 読み取り1 つ以上のアナログ入力でハードウェアタイミングの波形を取得し(LJM ストリームモード)、チャンネルごとの統計情報とダウンサンプリングした波形を返します。必要に応じてすべてのデータを CSV に保存できます。
write_dac⚠️ 危険アナログ出力(DAC0/DAC1)を DC 電圧に設定します。変更するか set_outputs_safe を呼び出すまで、出力はこの値を維持します。

get_connection_info、get_command_log、reconnect は、すべての LabMCP サーバーに組み込まれています。コマンドログには、すべての LJM レジスタの読み取りと書き込みが記録されます。

安全制限

制限デフォルト説明
max_dac_voltage_v5 Vエージェントが設定できる DAC 電圧の上限(ハードウェア:T4/T7 は 0~5 V、T8 は 0~10 V)
max_stream_duration_s60 sハードウェアタイミングストリームの最長時間
max_scan_rate_hz10 000 Hzストリームのスキャンレートの上限(デバイスの最大値が適用されます)

起動時に上書きできます。例:--limit max_dac_voltage_v=2.5。制限は、何かが送信される前にチェックされます。ストリームの合計サンプル数も 200 万に制限されます。

プロンプトの例

  • 「AIN0~AIN3 を ±1 V の範囲で読み取り、どのチャンネルが浮いているように見えるか教えてください。」
  • 「AIN0 と AIN1 を 5 kHz で 2 秒間ストリームし、それぞれの RMS とピーク・ツー・ピークを教えてください。また、データを ~/data/run12.csv に保存してください。」
  • 「AIN2 のタイプ K 熱電対を 1 分間、10 秒ごとに読み取り、まだ温度が上昇しているか教えてください。」
  • 「DAC0 を 1.25 V に設定し、AIN2 のループバックを確認して、誤差をミリボルトで報告してください。」
  • 「現在、どのデジタルラインが出力になっていますか。また、それぞれのレベルはいくつですか?」
  • 「作業は終了です。すべての出力を安全な状態に戻してください。」

注意事項

  • モデルごとの差異は適用されます。 有効な入力範囲(AIN#_RANGE)と分解能インデックスは、LabJack のレジスターマップに基づきます。T7 は ±10/±1/±0.1/±0.01 V、インデックス 0~8(T7-Pro は 0~12 ですが、9~12 はストリーミングできません)、T8 は ±11~±0.018 V、インデックス 0~16(全入力で共有されるインデックスは 1 つ)、T4 は固定範囲(AIN0-3 は ±10 V、AIN4-11 は 0~2.5 V)、インデックス 0~5 です。DAC の範囲は T4/T7 が 0~5 V、T8 が 0~10 V です。
  • 設定は保持されます。 read_analog_inputs で設定した範囲、分解能、差動設定は、変更するか電源を入れ直すまでデバイスに保持されます。省略された設定はそのまま維持されます。読み取り結果にはすべて、測定時の基準(GND、T7 の負入力、または T8 の絶縁端子)が報告されます。
  • デジタルラインを読み取っても方向は変わりません。 read_digital_inputs は DIO_STATE/DIO_DIRECTION のビットマスクを使用します。(FIO3 など単一ラインのレジスターを読み取ると、そのラインは入力に切り替わります。)
  • T4 の柔軟な I/O。 AIN4-AIN11 は FIO4-EIO3 と端子を共有します。デジタル出力になっているラインの AIN は、読み取りによってアナログに切り替わり、駆動中の対象が解放されるため、サーバーは読み取りを拒否します。
  • set_outputs_safe のデフォルトは input で、T シリーズの電源投入時の状態(プルアップ付き入力)です。接続されたリレーボードがプルアップされた入力を「オン」とみなす場合は、代わりに dio_mode="low" を使用してください。
  • 熱電対は AIN 拡張機能(AIN#_EF_INDEX 20~30)を使用します。cjc="internal" の場合、CJC レジスターは文書化されたデフォルト値 TEMPERATURE_DEVICE_K(アドレス 60052)に設定されます。この値は T8 ファームウェアによって各チャンネル固有の端子センサー(TEMPERATURE#_CAPTURE)に対応付けられます。cjc="lm34" は LabJack の LM34 変換(55.56 K/V、255.37 K)を使用します。入力が開放されている場合は valid=false が返されます(デバイスは -9999 を報告します)。
  • ストリームは LabJack の stream_basic.py の例に従います(内部クロック、トリガーなし、自動セトリング)。ストリームの実行中は、コマンド応答方式のアナログ読み取りはデバイスによってブロックされます。スキャンがスキップされた場合(バッファーオーバーフロー)は報告され、空のままになります。set_outputs_safe は実行中のストリームを待機しません。次の読み取り時に停止し、部分的な結果が aborted: true とともに返されます。停止を迅速に行うため、ストリームは 1 スキャン/秒以上で実行され、必ず 2 回以上スキャンします。max_stream_duration_s の制限では、実際の実行時間が確認されます。返される波形は各ブロックの最小値と最大値を保持してダウンサンプリングされるため、短いスパイクも失われません。save_path には新しい .csv ファイルを指定する必要があります(既存のファイルが上書きされることはなく、ストリーミングの前にパスが確認されます)。
  • LJM ラッパーをインポートすると、 ネイティブライブラリーが見つからない場合に標準出力へ出力されます。サーバーはそのインポート出力をリダイレクトするため、MCP の標準入出力チャンネルが破損することはありません。また、明確なインストール方法を案内します。

ハードウェア検証

モデルファームウェアインターフェース検証者日付
まだありません:最初に検証を報告してください

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。