LabVIEW +
ソフト開発 +
実験・研究装置開発 +
システム開発 +
納入事例 +
会社概要 +
産業用デバイス(温度調節器、モータインバータ、マスフローコントローラ、各種計測センサ等)の多くで標準採用されている通信プロトコルが「Modbus(モドバス)」です。通常はシーケンサー(PLC)を介して制御することが一般的ですが、LabVIEWを用いることでPCから直接Modbus通信(Modbus RTU / Modbus TCP)を確立し、各種機器をダイレクトにコマンド制御・ロギングすることができます。この記事では、元・横河電機R&D出身のエンジニアが、LabVIEWにおけるModbus制御の構築手順と実践ノウハウを解説します。
LabVIEWから機器を制御する際、まずは通信の物理規格を確認します。
LabVIEW標準のVISA通信関数でパケットを直接生成することも可能ですが、VI Package Manager (VIPM) から無料配布されている公式の「NI Modbus Library」を導入するのが最も確実です。これにより「Create Master」「Read Holding Registers」「Write Single Register」などの専用VIが使用可能になります。
LabVIEWプログラム側を「Master(主局)」、接続する産業機器(温調器やインバータ等)を「Slave(従局 / Unit ID)」として設定します。RTUの場合はボーレート・データビット・パリティ(8-N-1など)、TCPの場合は対象機器のIPアドレスを指定してマスターセッションを生成します。
各機器の取扱説明書にある「Modbusレジスタマップ」を参照し、目的のパラメータ(現在値PV、設定値SV、運転・停止コマンド等)に対応するレジスタアドレスとファンクションコードを指定します。
Modbusの1レジスタは16bit(2バイト)データです。温度データや周波数データが32bit浮動小数点数(Single Precision Float)の場合、2つのレジスタ(例:アドレス40001と40002)の値を結合し、LabVIEWの「バイナリ文字列から変換」や「型キャスト(Unflatten from String / Type Cast)」を用いて実数に変換する必要があります。その際、機器によってバイト順序(Big Endian / Little Endian / Byte Swap)が異なるため注意が必要です。
「手元のModbus機器をLabVIEWから動かしたいが通信エラーが出る」「複数台の温調器やインバータを一括集中制御したい」といったお悩みは、仕様が決まっていない段階からお気軽にご相談ください。
お電話でのご相談:048-291-8807
元・横河電機のR&D出身者が直接設計する抜群の技術力
理研や産総研など、公的研究所や大学への豊富な納入実績
コンペ・申請用の相見積もり・指定書類作成も大歓迎