Internet industrial de las cosas en PLC Simatic S7-1x00 en el ejemplo del protocolo MQTT

Encontrado en la base de conocimientos de Siemens (SIOS) un ejemplo interesante del uso de controladores de lĂ­nea S7-1200 y S7-1500 como cliente del protocolo MQTT





Enlace a la fuente original .





Siga el enlace para encontrar la biblioteca en sí con el bloque funcional MQTT_Client (código abierto, por cierto) y una nota explicativa, por ejemplo. La documentación en sí es bastante completa, aquellos que saben inglés pueden seguir el enlace con seguridad y no leer esta nota, lo que les permitirá dedicar varias horas fascinantes de investigación en ingeniería. Y por lo demás, menos experimentado y / o más vago, te contaré brevemente lo principal y demostraré mi ejemplo del trabajo de un cliente, reelaborado creativamente para una aplicación más o menos real.





Brevemente sobre los términos.





MQTT: transporte de telemetrĂ­a de cola de mensajes. Protocolo de telemetrĂ­a para mensajerĂ­a. Me resulta difĂ­cil traducir el nombre correctamente al ruso.





Mensaje - mensaje. Directamente, los propios datos transmitidos. El mensaje consta de varias partes:





  • Tema, asunto del mensaje. Una cadena de caracteres limitada a 200 caracteres en el ejemplo original. Para recibir mensajes, los clientes primero deben suscribirse a un tema especĂ­fico, es decir, tema





  • QoS, calidad de servicio. Un cartel adicional que indica si esperar la confirmaciĂłn de la recepciĂłn de un mensaje o no.





  • Texto del mensaje, texto del mensaje. Cadena de texto de 500 caracteres





El protocolo se basa en un modelo de suscriptor / editor, cuya lĂłgica general es ligeramente diferente del modelo cliente-servidor habitual en los protocolos industriales.





- , .. , . , . , . « 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:





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.





Investigaciones posteriores han demostrado un excelente uso de mqtt junto con el entorno Node-RED. Se "dibujĂł" un programa en Node-RED que recibe estos datos del corredor, analiza la cadena recibida y escribe toda la informaciĂłn (marca de tiempo, valor) en la base de datos MariaDB. Ella, el programa en Node-RED hizo posible extraer informaciĂłn para el perĂ­odo de tiempo especificado, mostrarla en forma de tabla, graficar y subirla como archivo .csv.








All Articles