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が出力されます。
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」でログインしてください。
サンプルフローの添付と読込み方法
AMQPの送受信サンプルフローのファイルをこちらに添付します。
INTAconnection Editorにフローを読み込む手順を以下に示します。
①INTAconnection Editorの画面右上にある三本線からメニューを開くことができます。このメニュー一覧の「読み込み」をクリックしてください。
添付画像に、本メニューの具体的な位置を示します。
②「フローの読込み」のダイアログが表示されます。このダイアログにある「ライブラリ」をクリックしてください。
③「ローカル」のフォルダの中にある「AMQP_sample_flow.sbcl」を選択してください。
読込みに成功した場合は、INTAconnection Editor上にフローが表示され、何個のフローと何個のFunctionBoxが読み込まれたかがダイアログに表示されます。