1,OPC UA是设备间的通信,工业场景使用较多,目的是:让不同的工业设备拥有同一种语言,不要你西门子Profinet,他施耐德modbus。他们设备间通信太麻烦,当然这里面也包括PC。
2,MQTT是一种为物联网(一定程度上)应用开发的协议。它解决的是物联网的传感器基于互联网的数据传输(低带宽,不可靠网络传输连续实时数据),定阅/发布使用机制也非常灵活。
3,如果非要给这两个协议搞一个关系,在工业物联网应用中,所谓的智能网关(这个称呼不太准确),它向下收集设备数据(主要PLC),可以采用OPC UA,若向云端传输数据,那么就是采用MQTT。
总结
opc ua是老版本opc da的更新。老版本的opc是绑定在微软dcom架构上的,不能跨平台,设置使用麻烦,特别是必须使用mfc类库编程,现在会的人越来越少。。新的opc ua是基于soap框架,彻底的平台无关,彻底的拥抱互联网。
但是。关键是工业领域更新标准非常缓慢,目前大量dcs系统还停留在opc da,短期内不会大规模升级。再者,opc ua即使大规模铺开,也是在工业自动化领域。
mqtt是iot领域最常用的通信协议,具备消息订阅等功能。常用于手机消息推送等。
简单比较:mqtt协议简单,适合小数据量,低带宽,低硬件资源的设备之间的通信,特别适用于信道不可靠的应用。
opc ua适合数据量稍大的,有一定规模的节点之间的通信,适合于工业领域的自动化系统。
opc ua一般用在plc之间的通信,mqtt可能是小型智能传感器或执行器之间的通信。