
1.0 机械化 蒸汽机
2.0 电气化时代 电动机取代蒸汽机
3.0 电子信息化时代
4.0 互联网物联网融合
数据是基础,传输到云端,大数据处理。
传输手段,物联网协议。
Codesys IIOT
MQTT 消息队列 基于订阅发布模式的通讯方式 较为简单
Web Client 基于HTTP HTTPS 协议
AWS IOT 亚马逊
Azurn iot 微软
Mail 电子邮件
SNTP 网络时间协议? 同步设备上的时钟
SNMP 网络管理协议 软件工具集
SMS 短信服务
JSON 工具 比较实用的数据格式
纯文本 、跨平台
XML 常用标记语言,很多设备描述文件用XML

设备:常用的PLC、网关。
EtherCAT、Profine在本地传输,不上网

轻量级、发布/订阅 适用物联网
SCADA、HMI、CLOAD、边缘设备Edge Device
一对多
一台发布,多台订阅
一台终端可订阅多台发布

发布者发布到特定的主题,订阅者去订阅特定的主题。
类似关注的微信公众号。
支持层级化主题命名,类似电脑的目录层级。这样的好处是便于归类管理。
QoS0 消息最多一次,不保证送达,消息可能丢失
QoS1消息确保至少送到一次
QoS2消息确保送达
QoS1\2不会丢失,在订阅者上线的时候,会再发一次。
MQTT底层通过TCP/IP传输,支持websocket
如果设置了遗嘱消息,客户端以外断开,会发送遗嘱消息。
发布主题的数据类型是 wstring 大小1024支持中文

MQTT Client SL库
MQTTClient FB 建立MQTT连接
MQTTPublish FB 用于发送消息
MQTTSubscribe FB 订阅消息
MQTTClient FB引脚
输入
xEnable 使能
uiPort 端口
xUseTLS TLS加密时置True
uiKeepAlive 保持活动时间 单位是S默认5S
pbWillMessage 遗嘱消息 指针类型
xWillRetain True时,遗嘱消息保存在服务器
eWillQos 服务质量级别
xCleanSession 清除对话,默认False
wsWsername wsPassword 用户名密码
wsWillTopic 遗嘱主题?
sClientID 客户端的ID
tPing Interval ping服务器?
hCert 客户端正确的句柄?
itfTLSContext 加密,选默认
udiTimeOut 超时
eCommunicationMode通讯模式,默认TCP,也可以选WebSocket
sHostname 服务器IP地址
输出
xConnectedToBroker 连好了输出True
大部分默认就行

MQTTPublish FB引脚
输入引脚
最重要的是
pbPayload 发布内容
udiPayloadSize 发布内容的大小
mqttClient 连接功能块的名字?
wsTopicName 主题
MQTTSubscribe FB 引脚
类似发布

官方案例程序

uiPort设置 uint 1883 要和服务器端口对应上
sHostname 设置了IP地址 string 192.168.1.217(根据实际设置)
ADR(sWillMessage)遗嘱消息 指针类型 ADR提取 String格式
uiWillMessageSize遗嘱消息大小 Dint_TO_UINT转格式,并通过 Stu.StrLenA(ADR(sWillMessage))来 获取

订阅
pvPayload 发布内容 指针 ADR指向sSubscribeMessage
SIZEOF(sSubscribeMessage)获取大小
wstring格式 wsSubcribeTopicFilter 订阅主题
mqttClient MQTT.MQTTClient FB的实例名
mQTTSubscribeProperties MQTT属性变量MQTT.MQTTSubcribeProperties

发布
主题、内容、超时时间
输出引脚
xDone set rsPub1Done
xBusy reset rsPub1Done
xError set rsPub1Error
订阅
订阅到的消息内容 指针
ADR(sSubscribeMessage)
--------------------------------------
程序滚太快,基本上听不清了。
-------------------------------------
通过Codesys的安装程序 installer安装IIoT Libraries SL 然后在Codesys的安装路径下找到“IIoT Libraries SL”文件夹,例如“C:\Program Files\CODESYS 3.5.19.0\CODESYS\IIoT Libraries SL\Examples”可找到对应的example。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删