回复:1500连接阿里云物联网平台成功

已锁定

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    157

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2020-05-16 19:30:18

7楼

继续。

接下去就是1500的编程了

我没有1500CPU实体,所以测试是通过PLCSIM ADVANCED进行的。想要连接阿里云,就是要访问外网,那么PLCSIM ADVANCED的设置也是要有讲究的,online access 必须选择 virtual eth. adapter,然后下面是通过以太网而不是内部总线 local。切换online access 要没有实例在运行才可以。

接下去就是下载LMQTT库,地址在主贴中有,下载后在项目文件中打开库,把库程序拉的自己的块中进行调用。会自动添加一个FB和几个数据类型


很良心的是,这个FB是开源的,没有加密,可以自由修改。

数据类型中,第一个用于设置连接标志,第二个用于设置mqtt connect的参数,第三个是用于发布的,第四个是用于订阅的,第五个是用于接收订阅的数据的,第六个是用于设置tcp连接的属性的,比如服务器地址,端口号PLC用的哪个接口、连接ID等等

调用库


建一个数据块,保存用到的参数,除了第一个数据类型,其他的每个类型的建一个,因为第一个包含在了第二个中。

enable参数是一个bool类型,1连接服务器,0 断开连接

publishdata参数用于发布主题,subscribetoTopic用于订阅主题,这两个以后再说,测试连接的时候还用不上,tcpConnParam设置连接属性,mqttParam设置mqtt的连接属性,这两个参数要设置正确才能连接的上服务器



先说tcpConnParam

第一个参数 usdQdn,应该设置为1,因为我们要访问的是阿里云的服务器,只能通过域名访问,而不能通过ip地址

第二个参数hwidentifier,网口的设备标识符,新版本的cpu设置为0可以默认使用第一个网口,也可以在组态中查看指定端口的标识符,在这里填入,比如1511cpu上的网口的标识符就是64

connectionID。连接ID,这个做过西门子的网络通讯的都知道,每个连接唯一

qdnAddressBroker 这就是阿里云平台提供的地址,根据如下规则,由productkey和区域代码组成,

格式如下

{productkey}.iot-as-mqtt.cn-shanghai.aliyuncs.com,其中{productkey}用自己的productkey替代

因为使用qdn,所以ipAddressBroker不需要设置

localport 不需要设置,默认0就好了,client不需要指定端口号

mqttPort 设置为1883,mqtt TCP直连时使用的端口号

接下去4个参数不设置,用到安全连接的时候需要,目前只用TCP直连


接下去是mqttParam的参数设置

connectflag

根据阿里云的要求cleanSession必须设置为1,will和willRetain必须设置为0,忘了对connect的qos的要求了,也设置为0.因为连接阿里云是要登录的,所以将username和password设置为1

keepAlive 不能小于30,阿里推荐是300

clientidentifier 这个参数有一点点麻烦,根据mqtt协议,这个字段的长度是23个字节以下,但也允许超过这个长度,而阿里云的设置是远超过23字节的,而西门子的mqtt库设计的时候指定了数据类型是string[23],我们需要把这个给改了。因为这个是从库中拉出来的,需要更新库并重新发布才可以。这是我对库的第一处修改

willtopic和willmessage留空

username和password根据第一个参考连接生成。

总体框架搭好,就这样,就可以进行测试了


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11075条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。