Ditemukan di Siemens Knowledge Base (SIOS), contoh menarik menggunakan pengontrol baris S7-1200 dan S7-1500 sebagai klien protokol MQTT
Ikuti tautan untuk menemukan perpustakaan itu sendiri dengan blok fungsional MQTT_Client (sumber terbuka, omong-omong) dan catatan penjelasan misalnya. Dokumentasinya sendiri cukup komprehensif, mereka yang mengerti bahasa Inggris dapat dengan aman mengikuti tautan dan tidak membaca catatan ini, sehingga memberi diri mereka beberapa jam penelitian teknik yang menarik. Dan untuk sisanya, kurang berpengalaman dan / atau lebih malas, saya akan memberi tahu Anda secara singkat hal utama dan menunjukkan contoh saya tentang pekerjaan klien, dikerjakan ulang secara kreatif untuk aplikasi yang kurang lebih nyata.
Secara singkat tentang istilah.
MQTT - pengangkutan telemetri antrian pesan. Protokol telemetri untuk olahpesan. Saya merasa sulit untuk menerjemahkan nama dengan benar ke dalam bahasa Rusia.
Pesan - pesan. Secara langsung, data yang dikirimkan itu sendiri. Pesan tersebut terdiri dari beberapa bagian:
Topik, subjek pesan. String karakter dibatasi hingga 200 karakter dalam contoh asli. Untuk menerima pesan, klien harus terlebih dahulu berlangganan ke topik tertentu, yaitu. tema
QoS, kualitas layanan. Tanda tambahan yang menunjukkan apakah menunggu konfirmasi penerimaan pesan atau tidak
Teks pesan, teks pesan. String teks 500 karakter
Protokol dibangun di atas model pelanggan / penerbit, logika umum yang sedikit berbeda dari model klien-server biasa yang umum dalam protokol industri.
- , .. , . , . , . « 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.
Penelitian lebih lanjut telah menunjukkan penggunaan mqtt yang sangat baik sehubungan dengan lingkungan Node-RED. Sebuah program "digambar" pada Node-RED yang menerima data ini dari broker, mengurai string yang diterima dan menulis semua informasi (stempel waktu, nilai) ke database MariaDB. Dia, program di Node-RED memungkinkan untuk mengekstrak informasi untuk jangka waktu tertentu, menampilkannya dalam bentuk tabel, grafik dan mengunggahnya sebagai file .csv.