Tải thư viện MQTT cho PLC S7-1200 và S7-1500

MQTT client là một giải pháp IoT mạnh mẽ khi bạn muốn thu thập lưu trữ dữ liệu từ PLC S7 1200/ 1500 qua internet realtimerẻ tiền. Server hỗ trợ MQTT hiện có rất nhiều, điển hình là AWS cloud servers.

Bạn có thể dùng thử MQTT free tại đây: https://www.emqx.com/en/mqtt/public-mqtt5-broker.

MQTT Broker có thể cài cùng server web của bạn như Mosquitto.. hoặc bạn thuê 1 Broker độc lập của AWS (Amazone), Azure (microsoft), HiveMQ, MQ… sau có thiết kế web server của bạn như 1 mqtt client để giao tiếp với các client khác qua Broker đó.

Những điểm mạnh của MQTT:

  • Giao thức đóng gói dữ liệu nhẹ
  • Ngốn ít băng thông mạng
  • Tự động reconnect và gửi lại message nếu bị mất kết nối
  • Độ tin cậy mức Qos
  • Tùy chọn mã hóa tin nhận bằng SSL/TLS
  • Xác thực bằng user và password
S7 MQTT 1

Yêu cầu phần cứng của PLC:

  • S7 1500 CPU Firmware 2.2 trở lên. S7 1200 firmware 4.4 trở lên
  • Module thì có thể dùng: CP1243-1 firmware 3.2 trở lên. CP1243-7 LTE firmware 3.2 trở lên
  • Phần mềm: Tia V15.1 trở lên
  • Phần Server lưu ý hỗ trợ MQTT broker, nếu muốn mã hóa thông tin có thể chọn với SSL/TLS.
  • PLC sẻ kết nối tới MQTT broker qua IP tĩnh hoặc domain name (QDA-Qualified Domain Name)

Tải thư viện

Thư viện MQTT cho Tia V15.1, Tia V16 và Tia V17: Tải về tại đây | Link dự phòng

Các kiệu Data Type kèm

1 – LMQTT_typeTcpConnParamData: cấu hình kết nối với MQTT Broker

1.1. PLC S7-1500:

Thông sốData TypeDiễn giải
useQdnBOOLTrue- nếu kết nối qua Domain Name
hwIdentifierHW_ANYHW ID của PROFINET CPU
connectionIDCONN_OUCID của TCP connection
qdnAdressBrokerString [254]URL của MQTT broker, kết thúc bằng ký tự (“.”). ví dụ khi bạn cài broker trên máy tính thì trỏ tới qua dns là ip máy ví dụ: ‘192.168.0.10.’, hoặc dns: ‘broker.emqx.io.’
ipAdressBrokerArray [0..3]of USIntIP address của MQTT broker, ví dụ. 192.168.0.10
ipAdressBroker[0] = 192
ipAdressBroker[1] = 168
ipAdressBroker[2] = 0
ipAdressBroker[3] = 10
localPortUINTLocal port number của CPU PLC
mqttPortUINTRemote port của MQTT broker, ví dụ với dns: ‘broker.emqx.io.’ bạn có thể test ngay kết nối TCp qua port 1883 khi không dùng TLS
activateSecureConnBOOLTrue nếu chọn kết nối với bảo mật TLS
validateSubjectAlternateName
OfServer
BOOLcài true nếu activateSecureConn = true
idTlsServerCertificateUDINTID của chứng chỉ X.509 V3 (thường là chứng chỉ CA)
để xác thực máy chủ TLS. Chỉ dùng khi activateSecureConn = true
idTlsOwnCertificateUDINTID của chứng chỉ X.509 V3 của riêng bạn để xác nhận đối với máy chủ TLS. Chỉ dùng khi activateSecureConn = true

1.2. PLC S7-1200:

s7 mqtt conection

2- Data type “LMQTT_typeParamData”: định nghĩa giao tiếp với MQTT Broker

mqtt parameter

3- LMQTT_typePublishData: cấu trúc data gửi tới MQTT Broker

ParametersData typeMeaning
publishMessageBOOLSet True để truyền dữ liệu cho MQTT Broker, nếu truyển thành công thì Out ra báo “done” và tự reset publishMessage
publishTopicWString [250]Tên của Topic, kích thước có thể định nghĩa ở MAX_SENDBUFFER và MAX_PUBLISH_MESSAGE trong FB
publishMessageDataSTEP 7 V15.1
WString [1500]• STEP 7 V16
WString [800]
Nội dung data gửi đi, kích thước có thể định nghĩa ở MAX_SENDBUFFER và MAX_PUBLISH_MESSAGE trong FB
publishQoSIntĐịnh nghĩa các thức truyền QoS
– “0” for QoS level 0
– “1” for QoS level 1
– “2” for QoS level 2
publishRetainFlagBOOLTrue nếu set lưu Dữ liệu trên MQTT Broker

4- LMQTT_typeSubscribeData: cấu trúc quản lý nhận data từ MQTT Broker

ParametersData typeGiải thích
subscribeToTopicBoolTrue để cho phép nhận data từ subscriptionTopic MQTT Broker
unsubscribeFromTopicBoolTrue để từ chối nhận data từ subscriptionTopic MQTT Broker
subscriptionTopicWString [250]Tên của Topic từ MQTT Broker
subscriptionQoSIntĐịnh nghĩa cấp độ QoS
– “0” for QoS level 0
– “1” for QoS level 1

5- LMQTT_typeSubscriptionData: cấu trúc data nhận được từ MQTT Broker

ParametersData typeDiễn giải
newMessageReceivedBOOLTrue nếu PLC đã nhận được data xong
messageInvalidBOOLLỗi data nhận do: Internal buffer của FB “LMQTT_Client” quá nhỏ, receivingTopic hay receivedMessageData quá nhỏ
receivingTopicWString [400]Tên của subscribed topic nhận được
receivedMessageDataWString [2400]Toàn bộ dữ liệu data nhận được

Các bước Add thư viện:

s7 mqtt

Kéo thả thư viện ra và sử dụng:

s7 mqtt 2

Code chương trình PLC:

S7 MQTT block 2
  • enable (bool): true- connect to MQTT broker, false- disconnect
  • publishData: nếu kết nối thành công thì dữ liệu được publish theo cấu trúc LMQTT_typePublishData
  • subscribeToTopic: nếu kết nối tới MQTT broker tồn tại thì dữ liệu sẻ được nhận vào subscriptionMessage khai báo trong cấu trúc data LMQTT_typeSubscribeData
  • tcpConnParam: cấu hình để thiết lập kết nối thông qua TCP, đóng gói theo cấu trúc data LMQTT_typeTcpConnParamData
  • mqttParam: cầu hình thiết lập kết nối MQTT với MQTT Broker, đóng gói theo cấu trúc LMQTT_typeParamData
s7 mqtt

Đối với MQTT Broker bạn có thể dùng Amazon với AWS IoT support for MQTT.

Nếu muốn test ở local bạn cũng có thể có thể cài đặt và test với MQTT Mosquitto và giám sát qua MQTT Explorer, mình sẽ có video hướng dẫn chi tiết trên kênh youtube Ngọc Automation

Trả lời

Email của bạn sẽ không được hiển thị công khai.