西门子|西门子PLC利用函数块连接MQTT服务器( 二 )



之后会连接阿里云需要PLC接入外网 , 需要连接可以上网的路由器并配置正确的IP地址;

后面会使用域名连接 , 默认的DNS可能无法解析 , 需要在“高级组态”的”DNS”下配置阿里云域名解析服务器(223.5.5.5) , 这可以解析域名可以忽略配置DNS服务器;

二、西门子PLC仿真手上没有PLC也可以学习MQTT Client函数块的使用 , 只需要使用“SIMATIC S7-PLCSIM Advanced V4.0”西门子PLC高级仿真器即可实现S7-1500PLC的仿真运行 。
1、配置虚拟网卡 , 填写PLC参数 , 如下图所示:

2、切回博图界面点击“编译” , 忽略警告 , 再点击下载 , 按照下图配置:

3、再点击“下载” , 第一次使用会弹出几个配置窗口 , 全部选“同意”或者“是” , 经过以上步骤后点击“装载”选择同意 , 选择启动设备:

至此完成博图仿真调试的全部说明 。
三、云平台设备创建1、准备云平台账号 , 这里使用阿里云飞燕平台进行演示 , 你也可以OneNET、腾讯云、华为云、百度云等 , 方法基本类似 , 这个函数库也是使用标准MQTT3.1.1的三要素Client ID、UserName、Password , 因此阿里云的三要素与标准MQTT3.1.1三要素不同也需要转换 , 转换规则可以通过云平台使用手册查询 , 不过阿里云在设备详情下提供了标准MQTT3.1.1三要素的参数可以直接使用 , 使用其他平台的应当根据对应方法进行转换 。
2、进入飞燕物联网平台(https://living.aliyun.com) , 登录自己的阿里云账号 , 没有开通该功能的点击开通(需要实名认证) , 开通的点击进入控制台;
【西门子|西门子PLC利用函数块连接MQTT服务器】
3、没有项目的点击“创建新项目” , 输入名称点击“确定”即可 , 点击“项目”进入“项目详情” , 点击“创建新产品” , 输入产品名 , 配置“功能定义”可以随便选一个后面根据需求在重新定义 , 联网方式一定不要选择“WIFI接入” , 通讯格式使用“ICA标准数据格式(Alink JSON)”;

4、进入“产品详情” , 首先进入的是“功能定义” , 这里先讲如何连接 , 直接跳过“功能定义”与“人机交互” , 在“设备调试” , 选择开发的模组 , 目前没有与阿里云合作的模组 , 直接选择未知模组即可;

5、点击”新增设备” , 创建PLC连接的认证参数 , 进入创建设备的详情界面 , 查询连接MQTT3.1.1所需要的地址、端口、Client ID、UserName、Password , 这里小编们不在飞燕平台下查询 , 需要在“物联网平台”的设备列表下设备详情查询 , 这样就可不用自己去转换三要素;

四、配置MqttDB块1、修改MqttDB块中的参数 , 用于连接阿里云MQTT服务器 , 打开变量组“connparams”在展开变量“mqttBrokerAddress” , 配置参数“qdnAddress”为“a1pc9X6nd09.iot-as-mqtt.cn-shanghai.aliyuncs.com.” , 配置“post”为1883 。
【注意】输入域名需要“.“结束输入 。

2、填入对应的三要素:

3、再次点击编译下载:

五、仿真连接MQTT服务器1、点击在线监控数据 , 需改“connect“为”true“ , 函数块自动连接MQTT服务器;

【注意】阿里云不支持20s的心跳请求 , 最少配置30s , 这里使用120s
2、登录平台查询MQTT状态: