全ツール・ライブラリは MIT License で公開しています。個人・商用問わず無料で自由にご利用いただけます。
商用利用OK 改変OK 再配布OK

用途から選ぶ PLCツール

まず「既存のアプリで確認・試験したい」のか「自分のプログラムに通信機能を組み込みたい」のかを決めると、必要なツールを絞れます。ライブラリは、PLCの通信方式とプログラムを動かす環境の両方に合わせて選びます。

目的に応じたツール・実装の選び方
やりたいこと候補使い方の例
WindowsでPLCの値を確認するPLC Scopeデバイス範囲を監視し、接続設定と読み出した値を確認する。
実設備なしでPLCのPID制御を試すPID Process Simulator温度・液面・流量などの応答を模擬し、トレンドで制御の動きを確認する。
データ収集スクリプトを作るPythonライブラリPLCから読み出した値を、自作スクリプトで時刻とともにCSVへ保存する。
Windowsアプリに通信を組み込む.NETライブラリC#で作成する監視画面や常駐サービスからPLCに接続する。
既存のフローにPLCデータを追加するNode-REDノード読み出しノードを既存の表示・記録フローにつなぐ。
組み込み機器や常駐処理で使うC++・Rustライブラリ対応するボードやOS、通信方式を確認してファームウェアや常駐プログラムに組み込む。
Factory I/Oと実機PLCを連携するSLMP / Host Link GatewayFactory I/OのModbus TCP/IP ClientとPLCの間をWindowsゲートウェイで中継する。

通信方式は、三菱MELSECのEthernet通信ならSLMP、KEYENCE KVならHost Link、JTEKT TOYOPUCならComputerLinkが候補です。MELSECのシリアル通信にはMCプロトコル用のC++実装があります。対応機種・通信設定・言語ごとの対応範囲は、それぞれのドキュメントで確認してください。

言語と通信方式の比較を見る(英語)

PLC通信ライブラリの導入手順

  1. PLCと接続方式を確認する。 CPU・通信ユニットの型式、使用するプロトコル、Ethernetまたはシリアルの接続条件を確認します。
  2. 実行環境に合う実装を選ぶ。 使用する言語の対応プロトコルを確認し、パッケージ一覧(英語)から導入先と手順を開きます。
  3. PLC側とクライアント側の設定を合わせる。 EthernetではIPアドレス・ポート・TCP/UDPなど、シリアルでは通信速度などを、選択したプロトコルの手順に沿って設定します。
  4. 少数のデバイスを読み出して確認する。 各実装のGetting startedにある例を使い、対象機種で有効なデバイスの値を確認してから、自分の収集・表示処理へ組み込みます。

使用例:接続確認からデータ収集へ

Windows PCからPLCの値を記録する場合は、最初にPLC Scopeで接続先とデバイスの値を確認します。次に、同じ通信方式に対応するPythonライブラリのサンプルで読み出しを確認し、時刻と値をCSVへ保存する処理を追加します。収集間隔やデバイス数は実際の応答時間を測りながら調整します。

PLC Scopeは接続確認に使うアプリ、Pythonライブラリは収集処理を作るための部品です。アプリケーションの紹介(英語)と、下記の各リポジトリから用途に合うものを選べます。

PLC 通信ライブラリ

Python・C#(.NET)・C++・Rust・Node-RED で使えるPLC通信ライブラリ。自動化スクリプトやWindowsアプリからPLCと直接通信できます。

Documentation

PLC通信ライブラリまとめサイト

自作PLC通信ライブラリのドキュメント・対応プロトコル・使い方をまとめたサイトです。

PLC通信 ドキュメント まとめサイト
まとめサイトを見る

三菱 MELSEC SLMP通信ライブラリ

plc-comm-slmp-python

Mitsubishi MELSEC iQ-R/Q シリーズ向け高性能・厳密型 Python クライアント。

Python SLMP iQ-R/Q
GitHub

plc-comm-slmp-dotnet

Mitsubishi iQ-R/Q シリーズ向け .NET 実装。C# アプリケーションから簡単に利用可能。

C# .NET SLMP
GitHub

plc-comm-slmp-cpp-minimal

組み込みシステム向けの最小限 C++ SLMP 実装。リソース制約のある環境でも動作。

C++ 組み込み 軽量
GitHub

node-red-contrib-plc-comm-slmp

Node-RED から Mitsubishi MELSEC iQ-R/Q シリーズへ SLMP 通信できるノード。

Node-RED SLMP iQ-R/Q
GitHub

plc-comm-slmp-rust

Mitsubishi MELSEC 向けの非同期 Rust SLMP クライアント。Binary 3E/4E の TCP/UDP 通信に対応。

Rust SLMP TCP/UDP
GitHub

三菱 MELSEC MCプロトコル シリアル通信ライブラリ

plc-comm-mcprotocol-serial-cpp

RS-232C/RS-485 経由の MELSEC MC プロトコル通信に対応した C++ ライブラリ。MCUファームウェアやホスト側ツールで利用可能。

C++ MC Protocol RS-232C/RS-485
GitHub

KEYENCE KV Host Link通信ライブラリ

plc-comm-hostlink-python

KEYENCE KV シリーズ用 Python Host Link クライアント。

Python KEYENCE KV
GitHub

plc-comm-hostlink-dotnet

KEYENCE KV シリーズ用 .NET 9.0 クライアント。C# から簡単にKV通信が可能。

C# .NET 9 KEYENCE KV
GitHub

node-red-contrib-plc-comm-kvhostlink

Node-RED から KEYENCE KV シリーズへ Host Link 通信できるノード。

Node-RED KEYENCE KV Host Link
GitHub

Node-REDへの導入手順(英語)
KV Host Link APIリファレンス(英語)

plc-comm-hostlink-rust

KEYENCE KV シリーズ向けの非同期 Rust Host Link クライアント。TCP/UDP 通信と型付き read/write に対応。

Rust Host Link KEYENCE KV
GitHub

JTEKT TOYOPUC ComputerLink通信ライブラリ

TOYOPUCの対応機種・PLC設定・ライブラリの導入手順(英語)

plc-comm-computerlink-python

JTEKT TOYOPUC 用 Python クライアント。

Python TOYOPUC
GitHub

plc-comm-computerlink-dotnet

JTEKT TOYOPUC 用 .NET ライブラリ。

C# .NET TOYOPUC
GitHub

Factory I/O PLC連携ゲートウェイ

MELSEC / KEYENCE

Factory I/O SLMP / Host Link Gateway

Factory I/O の Modbus TCP/IP Client と、MELSEC SLMP または KEYENCE Host Link 対応PLCを中継する Windows ゲートウェイ。

Windows Factory I/O Modbus TCP SLMP / Host Link
GitHub

PLC 監視・分析・シミュレーション

リアルタイム監視、データ分析、PLC通信・PID制御の試験やシーケンス制御の練習に使えるツール群。

MELSEC / KEYENCE / TOYOPUC

PLC Scope

MELSEC SLMP・KEYENCE Host Link・TOYOPUC Computer Link に対応した Windows PLC 監視・デバイス書込ツール。

Windows .NET 9 監視・書込
GitHub
シーケンス制御の練習

シーケンス道場 3D

シーケンス制御作業の実技練習用に、作業盤を3Dで再現したWindowsアプリ。配線やスイッチ操作を練習し、実機PLC・シミュレータと通信して自作ラダーで動きを確認できます。

Windows 3D作業盤・配線練習 SLMP / Host Link / Modbus TCP
GitHub
MELSEC SLMP

PLC Sim — SLMP (.NET)

実機PLCなしでSLMP通信を試験できるWindowsアプリ。TCP・UDP、3E・4E、バイナリ・ASCII形式に対応し、デバイスメモリ・通信電文の確認や異常応答の注入ができます。

Windows SLMP応答シミュレータ TCP / UDP
GitHub
PID制御シミュレーション

PID Process Simulator

実設備なしでPLCのPID制御を試せるWindowsアプリ。PLCから操作量(MV)を受け取り、温度・液面・流量などの応答を計算してプロセス値(PV)を返します。ダミーPLCだけでも試せます。

Windows MELSEC SLMP GX Simulator 3 トレンド・CSV出力
GitHub
OMRON

SysmacVariableBackupViewer

Sysmac Studio の XML バックアップファイルを読み込み、変数一覧を見やすく表示・分析できるビューアー。

OMRON Sysmac Studio XML解析
GitHub
OMRON

SysmacDataTraceViewer

Sysmac Studio の Data Trace CSV ファイルを読み込み、グラフ表示・分析が可能なビューアー。

OMRON Data Trace CSV分析
GitHub

Windows ユーティリティ

FA業務・日常の開発作業を効率化するWindowsデスクトップアプリ。

Window Rescue

画面外や極小サイズになったウィンドウを見える位置・サイズへ戻すWindows 11用アプリ。ウィンドウ一覧やショートカット、トレイから操作でき、新しいウィンドウの表示先も指定できます。

PDF_Title_to_Filename

PDFのメタデータからタイトルを自動抽出してファイル名を変更する軽量Windowsアプリ。大量のPDFファイルを効率的に整理できます。

Network_Preset_Switcher

複数のネットワーク構成(IPアドレス等)を保存し、ワンクリックで切り替えできるWindowsデスクトップアプリ。現場ごとに異なるネットワーク環境への接続を効率化します。

その他のリポジトリもチェック

上記以外にもリファレンス・サンプルコードなど多数公開しています。
スターやフォークも大歓迎です!

GitHub プロフィールを見る