こちらは新しいシリーズで、オーストラリア発のVirtual PLC JasperNodeから様々な検証を展開していきます。最初にRuntime インストール、Hello Worldプロジェクトから始めます!また、今回記事で使用したのはSeeed StudioのR1025です。
さ、FAを楽しもう!

前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
JasperNodeとは?
オーストラリア・ニューカッスルに拠点を置くJasperNodeは、長年にわたりこれらの課題に取り組んできたソフトウェアおよび制御エンジニアのチームによって設立された会社です。彼らは現代のソフトウェア工学とAI応用から得られた実証済みの原則を、産業用制御という独自の領域に適用することを目指しています。

JasperNode 技術アーキテクチャ
(コントローラーランタイム)
JasperNodeは、従来のPLCにおける無差別循環スキャンに取って代わります。これは、決定論的でイベント駆動型の4段階からなる「メインサイクル」を採用しています:
データ入力
外部ハードウェア/ITシステムから全ての値を読み取ります。

イベント準備
値が変更されたタグのみを特定します。

スクリプトの実行
それらの特定の値の変更によってトリガーされるスクリプトをのみ実行します。

データ出力
結果の出力値をすべて単一のバッチで書き込む。

論理言語
制御ロジックはJavaScriptで記述され実行されます。
基本原則(アトミックタグ制御)
変数(「タグ」)は、それ自体に割り当てられた単一のスクリプトによってのみ変更できます。このルールにより、複数のプログラム部分が同じ変数に書き込むという一般的なバグが排除されます。
コアコンポーネント
UIおよびAIチャットから分離され、独立したスレッド(ワーカー)で実行される。
タグエンジン
永続的なパブリッシュ/サブスクライブシステムで、全てのタグ、値を管理し、スクリプト実行をトリガーする。
コネクタマネージャー
OTハードウェアとITシステム間のすべてのデータ入出力(I/O)を管理する。
スクリプトマネージャー
ロジックの開発、実行、バージョン管理を担当する。
バージョン管理
すべてのロジックスクリプトとその変更内容はローカルDB内に保存され、完全な変更履歴とロールバック機能を提供します。
AIエージェント統合
AIエージェントの主な役割は、人間のユーザーからの自然言語プロンプトを実行可能なJavaScript制御ロジックに変換し、タグの作成・変更を行い、コネクタを設定することです。

プロンプト
ユーザーは自然言語コマンドを入力し、ロジックを生成したり、オンサイトのJasperNodeソフトウェアへのコネクタを作成したりします。

文脈化と生成(JasperXにて)
プロンプトは安全にJasperXに送信され、そこで必須のシステムコンテキストが追加されます。AIエージェントは、必要なコネクタ設定、新規タグ(変数)、JavaScript制御ロジックを含む、タスクに必要なすべてのコンポーネントを生成します。

レビューとデプロイ
生成されたコードと設定はユーザーに返送されます。ユーザーは「ヒューマン・イン・ザ・ループ」として、本番システムにデプロイされる前に項目(重要タスク)を確認し承認できます。

接続例
こちらは接続例です。インターネット接続はプログラミング目的のみであり、コードの実行には必要ありません。

サポートされているプロトコル(コネクタ)
JasperNodeは、ハードウェアおよびソフトウェアインフラストラクチャへの接続のために、複数の産業用およびITプロトコルをサポートしています。
Hardware Connectors (OT)
- Modbus TCP(クライアントおよびサーバー)
- Siemens S7 – Siemens PLCの読み取り/書き込み
- イーサネット/IP(試験段階)
- BACnet/IP(試験段階)
- EtherCAT(試験段階)
ソフトウェアコネクタ(IT)
- MQTT – 現代のインダストリー4.0プロトコル(sparkplug Bのみ)
- InfluxDB – データベース・ロギング
- メール – メールを送信する
- HTTPサーバー – ミニAPIサーバーを作成する
- HTTPクライアント – ウェブサイトからデータを読み取る
- Node-RED – タグの読み取りと書き込み
Implementation
Runtimeのインストール
JsperNode社からインストールコマンドをもらい、インストール先のPCで実行します。

Done!Consoleから下図のようなOutputがあれば、JsperNodeのインストールが完了しました。

ダッシュボード
次はJasperNode RuntimeがインストールされたPCのIP Addres:9088をアクセスします。

こちらはJasperNodeのDashboardになります。初期設定ではUser名やPasswordなどの設定が必要です。

次はUsernameとPasswordを入力しLoginします。

Done!これでJasperNodeのDashboardをLoginできました。

アカウントを登録する
下記のURLにアクセスし、赤枠の部分をクリックしてください。
https://www.jasperx.com.au/how-to-use/download

こちらはJasperNodeのアカウント登録画面です。

新しいアカウントを登録しましょう。

Done!こちらはJasperNodeのデバイス管理画面になります。

新規プロジェクトを追加
次は右にある+Addボタンで新規プロジェクトを追加しましょう。

プロジェクト名を入力し→Create Projectをクリックします。

Done!新しいプロジェクト追加されました。

デバイスを接続する
次はプロジェクトを先程JsperNode RuntimeをインストールしたR1025とLinkします。Nodesにある”No Nodes Linked”のところをクリックします。

Nodesの編集画面が表示されます。

右にあるLinkボタンをクリックします。

Node IDとOne-Time passwordの入力画面が表示されます。

先程JasperNode RuntimeインストールしたR1025のWeb serverをアクセスします。

右にある歯車→System Configをクリックします。

Basic Configuration画面が表示され、Node ID欄のコードをCopyします。

先程JasperNodeの管理ページに戻り、Node IDを貼り付け、Send OTPをクリックします。

Done!

そしてJasperNode RuntimeがインストールされているPCのWeb ServerにはOne Time Passwordが表示され、そのPasswordをCopyします。

One-Time Password欄に貼り付け、Link nodeをクリックします。

Done!これでLink完了です。


最後は設定の保存を忘れずに。

また、”Test Connection”ボタンをクリックし、JasperNode RuntimeとServerが接続OKなのでをCheck可能です。

Done!

AIでコードを生成する?!
JasperNodeにはAI ASSITがついており、生成AIで制御コードやTAGを自動生成できます。

みんながCHATGPTと同じように要求を送信すれば、COPY PASTEいらずにコードを直接プロジェクトの生成されます。

Done!今回AI ASSITにPUMPの簡単制御のプログラムを生成してもらいました。

Tag Valueを変更するには隣の鉛筆ICONをクリックして下さい。

Trueを設定します。

最後はSET→RUN ONCEでScriptを一回実行します。

Done!TankのPV値のTagが少しずつ上昇しています。
