技术论坛

 通过阿里云物联网平台实现PLC间的远程通讯

返回主题列表
作者 主题
shine
至圣

经验值: 19950
发帖数: 8944
精华帖: 39
楼主    2020-06-08 14:17:32
主题:通过阿里云物联网平台实现PLC间的远程通讯 精华帖 

怎么实现S7-1500连接阿里云物联网平台已经在另外一个帖子中讲述了,具体看以下链接

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


接下来要实现的功能是两台PLC通过阿里云平台实现PLC间的通讯

在阿里云iot平台建立一个产品,产品下建立两个设备。比如我建立了一个产品叫 S7-1500,两个产品分别是 PLC1和PLC2,产品自定义两个TOPIC,一个 ${deviceName}/user/recv,订阅权限,一个 ${deviceName}/user/send,发布权限。

然后在规则引擎 云产品流转中建立一条规则,数据格式选二进制。


添加规则之后需要编辑规则,分三步,1、处理数据,2、转发数据,3、错误处理

前面两步是必须的,错误处理可选,当出现转发错误的时候,可以进行相应的操作,比如发布错误报警topic给管理员。

1、处理数据,编写SQL。

其实简单的转发不需要“编写”SQL,只要进行简单的选择操作,会自动生成SQL语句。


因为是二进制,全部转发,字段处填入 *,topic只要自定义,产品选择我们刚才建立的S7-1500,设备选PLC1,余下topic部分选择user/send,条件留空,不填


接下来是转发数据,点击添加操作按钮,如下


选择发布到另一个topic,topic选自定义,下面选择S7-1500,PLC2,user/recv,确定就OK了。然后返回上一级,启动该规则,然后再建立一条规则,只是PLC1和PLC2换一下,将PLC2的send转发给PLC1的recv,然后启动规则。

云端设置就完成了,在PLC端,两个PLC各自订阅自己的recv主题,PLC1发布的send主题会自动转发给PLC2,PLC2的会自动转发给PLC1。这样就实现了两个CPU之间的远程通讯,不管他们距离多遥远,只要他们能够连接阿里云服务器,就可以实现通讯。

如果我们套用MODBUS 协议,一个作为主站,按modbus协议组织send 的payload发布,另外一个作为从站,收到主站发布的topic后,按modbus协议组织数据并作为payload发布到服务器,并由服务器转发给主站。就能实现两个站的类modbus通讯了。

费用:

阿里云平台不是免费的,是按使用量收费的,按连接时长和消息条数收费,如果接入的设备少,消息发送频率低的话,费用还是很低廉的。

都是按月计费,连接时长是百万分钟1块钱,消息是百万条最高1.8元,阶梯计费,越多越便宜。

如果按刚才的例子,两台PLC进行远程通讯,24小时在线,每分钟钟进行一次通讯,即PLC1 send、转发到PLC2 recv,PLC2收到后 send,然后转发到PLC1的recv,共4条消息,那么费用就是

时长费用:31*24*60*2 /1000 000 =  0.08928,相当于一台设备5分钱一个月

消息费用:31*24*60*4* 1.8 /1000 000  =0.321408,平均一台设备0.16元。当然,如果消息多,相应的费用也会增加。比如每秒进行一次通讯,两台设备总的消息计费是19.28448?

周杰伦
至圣

经验值: 13745
发帖数: 2031
精华帖: 16
1楼    2020-06-08 14:35:53
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯

2个PLC通过云平台通讯,这个应用场景有哪些啊?

工控毁我青春!
黑猫警长W
至圣

经验值: 18377
发帖数: 2409
精华帖: 1
2楼    2020-06-09 10:17:17
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯


原来是这么收费!

shine
至圣

经验值: 19950
发帖数: 8944
精华帖: 39
3楼    2020-06-09 10:42:34
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯

比如前几天看到的,有人在问一个远程泵站怎么和主控PLC进行通讯,这也是一个解决方案,只要两边都能联网就行。

另外,这里说的是两个PLC,其实可以不是PLC,也可以是其他的站点,比如一个是PLC,一个是PC的应用程序,作为一个MQTT client,实现少量的数据通讯

天芯
至圣

经验值: 18789
发帖数: 2104
精华帖: 0
4楼    2020-06-09 10:58:46
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯

真的是打开眼界!

yecao2006
至圣

经验值: 18019
发帖数: 1524
精华帖: 2
5楼    2020-06-10 08:59:37
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯

大开眼界呀。谢谢

我回来了!继续努力!
HUANGZE75
至圣

经验值: 63260
发帖数: 12669
精华帖: 121
6楼    2020-06-10 13:49:48
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯


5G发展,让万物互联成为可能。楼主的实例也验证了这一点啊,点赞

CoolCool的猪
至圣

经验值: 16713
发帖数: 1307
精华帖: 2
7楼    2020-06-10 17:16:06
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯


云时代已经到来

同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
www123456
至圣

经验值: 12233
发帖数: 2431
精华帖: 86
8楼    2020-06-11 13:41:07
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯

本文是采用modbus协议,实用性很强,楼主的另一篇文章用MQTT 协议(1500支持MQTT客户端)应该也比较适合作为互联网上2个设备之间的通信协议,互联网非实时,节拍很难控制,带宽紧张,所以两端分别采用和服务器以订阅(读)和发布(写)方式传送消息数据比较适合。
modbus tcp,用于局域网内应该比较适合,不知云服务器是否支持?还是自己按mobbus数据报头尾校验二次封装数据?

slide
侠圣

经验值: 2943
发帖数: 347
精华帖: 0
9楼    2020-06-12 16:24:20
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯

我是在阿里云购买的ECS服务器,架设MQTT的服务器,可以用西门子IOT2040采集PLC的数据然后发送给阿里云服务器,在服务器上做个dashboard等页面,可以用网页随时查看PLC的数据,挺方便的,其实不复杂,懂点modbus,mqtt,会linux用centos或者ubuntu架设一个服务器,还是挺好玩的,我没有IOT2040,用的树莓派4B做的网关,ECS服务器新用户价格不贵,或者去买个腾讯云也可。

TIA
www123456
至圣

经验值: 12233
发帖数: 2431
精华帖: 86
14楼    2020-06-17 18:58:14
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯
这种发布,订阅通信方式和主动的高频次读写服务器方式不同,就像我们手机接收的推送信息那样,网络带宽占用还是很少的,比较适合像互联网这种网速不稳定的网络,实时性强的通信也不太适合互联网 。
shine
至圣

经验值: 19950
发帖数: 8944
精华帖: 39
15楼    2020-06-17 22:02:29
主题:回复:通过阿里云物联网平台实现PLC间的远程通讯
使用场景不一样。
这个适合少量数据交换,比如发送一条指令给设备,设备发送报警信息等。如果你要进行数据监控,产生大量消息的话,你可以自建/租用服务器,自己搭建应用服务器
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。