シーメンスナレッジベース(SIOS)で、MQTTプロトコルのクライアントとしてS7-1200およびS7-1500ラインコントローラーを使用した興味深い例が見つかりました。
リンクをたどって、MQTT_Client機能ブロック(ちなみにオープンソース)と説明文などを含むライブラリ自体を見つけてください。ドキュメント自体は非常に包括的であり、英語を知っている人はリンクを安全にたどることができ、この記事を読まないため、数時間のエンジニアリング研究を行うことができます。そして、残りの、経験の浅い、および/または怠惰な、私はあなたに主なことを簡単に説明し、多かれ少なかれ実際のアプリケーションのために創造的に作り直されたクライアントの仕事の私の例を示します。
用語について簡単に説明します。
MQTT-メッセージキューイングテレメトリトランスポート。メッセージング用のテレメトリプロトコル。名前を正しくロシア語に翻訳するのは難しいと思います。
メッセージ-メッセージ。直接、送信されたデータ自体。メッセージはいくつかの部分で構成されています。
トピック、メッセージの件名。元の例では、200文字に制限された文字列。メッセージを受信するには、クライアントは最初に特定のトピックにサブスクライブする必要があります。トピック
QoS、サービス品質。メッセージの受信確認を待つかどうかを示す追加の記号
メッセージテキスト、メッセージテキスト。500文字のテキスト文字列
このプロトコルは、サブスクライバー/パブリッシャーモデルに基づいて構築されており、その一般的なロジックは、産業用プロトコルで一般的な通常のクライアントサーバーモデルとは少し異なります。
- , .. , . , . , . « Modbus». , .
-, MQTT, , (). . . , , , , . , .
, MQTT.
— publisher. , ( ) (topic).
— subscriber. , . .
. — .
MQTT , . , . .
, . . , , TCP/IP .
(. ) LMQTT_Client. , — Step 7. Options → Global Libraries → Open library. :
MQTT — S7-1200 S7-1500. , S7-1214. , S7-1500 , S7-1200 — ip-. LMQTT_Client Program Files . . MQTT_Client MQTTExchange:
, , . .
enable — MQTT, . .. TRUE
publishData — () . ( done error), , QoS
subscribeToTopic — , , (, ),
, : tcpConnParam mqttParam. OB100 . .
( « » ) . . ID , 64. Hardware ID .
— . TCP/IP, connection ID. 1 4096, , «», . - , «1»
— IP- , .
«» ip-. ip- . mosquitto Windows. .
. ( ). mosquitto.exe, 1883 ( MQTT) .
, . 192.168.0. 192.168.1., — , , . , , ip-, , , ip.
, , « » «» ip-.
router address,
— , . , 1884, 1883. :
— . . S7-1214.
. , «SIMATIC» ( ). . , .
. Last will. — «» ( !). , . « » , . «» , .
. . . — .
activateSecureConn — , , . OPC UA . Open User Communications (SecOUC). . .
, , , . , , . enable LMQTT_Client:
, enable tcpEstablished mqttEstablished «», , . , — «» enable - . . , , . :
— 5 , , . 5 , . . .
, - , . , , . , — , , . , . . subscribeToTopic, , «» .
( , ) #SubscriveToTopics « » 1. , , , , ( ).
— «global». . (, , )
. « » = 1, …
… «», (global) «»
… «» , done error. done «» №2. — .
№2. . , «». , .
100 , ( №3).
№3 №1, . №3 « » (#SubscriveToTopics) « ».
mosquitto_pub.exe -h myhost.mydomain.ru -t global -m «kill all humans»
,
myhost.mydomain.ru —
global — «global»,
kill all humans — global
subscriptionsMessage:
, global «kill all humans»
newMessageReceived . . , .
— . , . . , 10 , . 10 « » « » 1:
SCL, LAD. , — .
4 , , — . «» , personal0. . , REAL_TO_WSTRING . , , , — . — 500 , . , , . , . , , ( , ).
« » . , « » « ».
MQTT , personal0 ( ):
, . . personal0 exterminate, Q0.0 «».
:
mosquitto_pub.exe -h host.domain.ru -t personal0 -m «exterminate»
:
( newMessageReceived), . . , .
, . , , , . , , , , «» . , , . (, , , ) . , , — . GSM-, , , ip-. , , « ». , . ,
, , , , M2M (-). , .
, () . , , , WinCC Advanced.
さらなる研究により、Node-RED環境と組み合わせたmqttの優れた使用法が示されています。ブローカーからこのデータを受信し、受信した文字列を解析してすべての情報(タイムスタンプ、値)をMariaDBデータベースに書き込むプログラムがNode-REDで「描画」されました。彼女、Node-REDのプログラムは、指定された期間の情報を抽出し、それを表、グラフの形式で表示し、.csvファイルとしてアップロードすることを可能にしました。