系统平台可以配置Mqtt客户端,可以发送和接受Mqtt消息。
SIM 模拟器模式
添加Broker 填写Mqtt服务器地址和端口号,如:10.25.32.55,端口1883
点击Broker下一级Group 此页配置连接mqtt服务器的账号和密码,如 xxxxxxx
Client Id为自动生成可不修改,消息接收Quality of Service 选择0 -At Most Once (最多1次)。
打开SMC 选择 Wonderware-Gateway 选择 ConmetMqttBroker 在右侧 Device Items 中填写
Mqtt topic 如:amq/topic/Test
在SMC中点击Wonderware-Gateway 添加OPC Group 此节点可以连接SIM模拟器或其他IO。
点击New_OPC_000下级 New_OPCGroup_000配置OPC 模拟连接。刷新率10000ms,
OPC Item Prefix (PORT.PLC.)
选择 MQTT Publish Items 页签选择New_MQTT_BROKER_000.New_MQTTGroup_000 Group。
填写Item ID : amq.topic
Reference Item:Tag1 MQTT Syntax:amq.topic/Tag1
在SMS Diagnostic 中点击MQTTPlugin 显示点位状态和值。
打开SMC 配置 Wonderware -SIM 模拟器,点击OI.SIM.1->Configuration->PORT->PLC
点击Device Items Name栏填写 SItem1,Tag1,Tag2 注意 S开头是字符串,T开头是数值。
二、OPC Client 模式
打开系统平台在添加OPCClient 命名CMMqttClient 配置Attributes JSONPayload,
I/O Write to: CMMqttClient.Default.SItem4
系统平台CMMqttClient General 页签设置Server node:localhost, Server name:OI.GATEWAY.2
打开Scan Group 添加Default ScanGroup,在Attribute 下添加
New_MQTT_BROKER_000.New_MQTTGroup_000.amq.topic/SItem4
在系统平台如何发送Mqtt消息到消息队列:
dim payload as string;
payload =
"{"+StringChar(34)+"line_ent_name"+StringChar(34)+":"+StringChar(34)+Me.var_lineName+StringChar(34);
payload = payload +
","+StringChar(34)+"Timestamp"+StringChar(34)+":"+StringChar(34)+Now()+StringChar(34);
payload = payload +
","+StringChar(34)+"part_serial"+StringChar(34)+":"+StringChar(34)+
Me.stp_partSerial1+StringChar(34);
payload = payload +
","+StringChar(34)+"station_code"+StringChar(34)+":"+StringChar(34)+
Me.var_stationCode +StringChar(34);
payload = payload + ","+StringChar(34)+"part_status"+StringChar(34)+":"+
Me.stp_partStatus1 +"}";
WSProxy.Mqtt_Part_OffLine =
payload;