User picture

News INTAconnection Trial Package AMQPのサンプルフローの紹介

By ILC 永坂

Feb. 3, 2024, 6:34 p.m.

Details:

INTAconnection Trial Packageをダウンロードいただき、誠にありがとうございます。ILCの永坂と申します。

本ポストは、INTAconnection Trial Packageで制御処理を作成する一助となるべく同梱されている、INTAconnection Editorで使用できるサンプルフローについて紹介いたします。

ここでは、AMQPのサンプルフローについて紹介いたします。

サンプルフローの読込み方法とAMQPのサンプルフローを動かすための環境構築方法は、本ポストのリプライで紹介しております。

このEditor上に描かれている内容(フロー)を「プログラム書込み」でConnected PLCに書き込むことにより、Connected PLCで演算や通信処理を動かすことができます。

AMQPとは何か

AMQP(Advanced Message Queue Protocol)とは、アプリケーションや組織間でビジネスメッセージを受け渡すための通信プロトコルです。

AMQPのFunctionBoxはこのプロトコルを使用してメッセージを受け渡すことができます。

AMQPのFunctionBoxはPub/Subモデルに基づいたメッセージの伝達を行います。

AMQPのサンプルフローの内容

AMQPのサンプルフローを添付画像にて示します。

このフローではAMQPブローカーへの接続から、メモリに格納されたデータのサブスクライブとパブリッシュの処理を行っています。

以下にフローの内容を順番に説明します。

①メモリ領域の確保と接続

MemAllocate FunctionBoxを使用し、2つのメモリ領域を確保します。

メモリ名“outMem”はSubscribeするメッセージを、メモリ名“inMem”はPublishするメッセージを格納するために使用します。

Connect FunctionBoxを使用し、Connect FunctionBoxの入力端子2で指定した宛先のAMQPブローカーに接続を試みます。

②AMQPブローカーにPublishするJSONデータを用意します。

JSON_SetValue FunctionBoxを使用してメモリに書き込む値を、JSON情報識別ID“TestA”として設定しています。

設定した値はJSON_Serialize FunctionBoxを使用してネットワークで送信できるように変換しています。

③Subscriber FunctionBoxを使用して、接続しているAMQPブローカーにルーティングキー“KeyA”として保存されているメッセージをSubscribeします。

Subscribeしたデータはメモリ名“outMem”に格納します。

Subscriber FunctionBoxのプロパティで、キュー名に指定されたものがAMQPブローカーに存在しない場合、AMQPブローカー上にキューが新規作成されます。

AMQPブローカーに、指定したルーティングキー“KeyA”として保存されているメッセージが存在する場合は処理が成功し、0が出力されます。

受信したメッセージはメモリ名“outMem”に読み込み、JSONデータとしてJSON情報識別ID“TestB”に格納します。

④Publish FunctionBoxを使用して、メモリ名“inMem”のデータをAMQPブローカーに対してPublishします。

このとき、メッセージのルーティングキーは“KeyA”としてPublishします。

Publishの処理が成功した場合は0が出力されます。

Post Image
Post Image
コメントするにはこちらからサインインしてください。
User picture
ILC 永坂
Feb. 3, 2024, 6:43 p.m.

AMQPブローカー構築例

通信フローの相手先となるAMQPブローカーを、Windows上のRabbitMQ Serverで構築する方法を記載します。

1.https://www.rabbitmq.com/which-erlang.htmlから、使用するRabbitMQのバージョンとRabbitMQの導入に必要なErlang/OTPのバージョンの対応表を確認してください。

2.Erlang/OTPのソースコード、ドキュメント、Windows用インストーラが提供されているページを示します。

リンクはhttps://erlang.org/download/otp_versions_tree.htmlです。添付画像のページに遷移します。

手順1を実施のうえで、Erlang/OTPのインストーラをダウンロードし、管理者アカウントを使用してインストールしてください。

3.RabbitMQ Serverのインストーラの場所を示します。

リンクはhttps://www.rabbitmq.com/install-windows.html#installerです。

「Direct Downloads」からRabbitMQのインストーラをダウンロードし、インストールしてください。

4.rabbitmq-pluginsのコマンドを有効にします。システム環境変数のPATHに、RabbitMQがインストールされたフォルダsbin

(例: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.12.1\sbin)を追加してください。

5.コマンドプロンプトで rabbitmq-plugins enable rabbitmq_management を実行してください。started 3 plugins.と出力された場合は成功です。

6.コマンドプロンプトで rabbitmq-plugins enable rabbitmq_tracing を実行してください。Started 1 pluginsと出力された場合は成功です。

7.http://127.0.0.1:15672/から、RabbitMQ Management ログイン画面が表示されます。UsernameとPasswordは「guest」でログインしてください。

Post Image
User picture
ILC 永坂
Feb. 5, 2024, 11:27 a.m.

サンプルフローの添付と読込み方法

AMQPの送受信サンプルフローのファイルをこちらに添付します。

INTAconnection Editorにフローを読み込む手順を以下に示します。

①INTAconnection Editorの画面右上にある三本線からメニューを開くことができます。このメニュー一覧の「読み込み」をクリックしてください。

添付画像に、本メニューの具体的な位置を示します。

②「フローの読込み」のダイアログが表示されます。このダイアログにある「ライブラリ」をクリックしてください。

③「ローカル」のフォルダの中にある「AMQP_sample_flow.sbcl」を選択してください。

読込みに成功した場合は、INTAconnection Editor上にフローが表示され、何個のフローと何個のFunctionBoxが読み込まれたかがダイアログに表示されます。

Post Image