关于Scada项目-物联网MQTT协议连接PLC

好久没有更新博客了。原因是从互联网软件向工业互联网进行了一次转行。其实还是有很多相通的地方。这里简单记录一下开发过程。

1.Scada原生架构

分为三个层次,分别是边缘数据采集层,数据转发层,上位机层,工控机层,服务器层。

1.1数据采集层

数据采集层这块,我刚开始开发的时候,使用的解决方案是Kepserver软件+rabbitmq。
Kepserver这个工业采集软件是支持http请求进行配置的。也就是说,我们可以把配置界面在我们系统内可视化,做的非常人性化。然后在软件内部配置rabbitmq的MQTT协议(1883端口的那个)。将变化后的数据发送到rabbitmq,保证数据的顺序性。再由边缘采集服务进行采集,控制数据格式,控制接收数据的接口。这里用的是springcloud的一个微服务哈。也就是1.2的数据转发层。

1.2数据转发层

数据转发层,使用的就是springcloud的一个微服务的形式。一个设备网使用一个数据转发微服务。部署在工控机的虚拟机内部。这个服务需要的转发量其实是很大的,他需要mqtt协议收,mqtt协议发。如果用传统http请求就失去了它的意义。

1.3 上位机层

上位机层主要部署了1.2的数据转发服务和中间件。包括redis,rabbitmq,minio,mysql,nginx,jar包等。还有数据监控用的arthas。这台机器需要内存比较大,而且还要防止内存泄漏。做一些断电重启的功能。尽量关闭数据持久化,毕竟只是数据转发,丢失数据也在所难免。如果做持久化,断电后可能会重启失败。

1.4 工控机层

工控机层主要接入公司内网。连接上位机的数据到公司网络。这里设置了此工厂的数据库,对于总服务器来说,相当于进行了分库分表。

1.5服务器层

服务器进行对应功能的开发。对某个工厂的某个设备,进行一些数据的展示。做一些大屏功能,预测性分析功能。

2.未来Scada方向

互联网的K8S为工业的Scada系统提供了非常好的解决方案。
1.1 1.2 1.3成熟后,可以做成一个成熟的docker容器。这个docker可以进行数据采集,并且转发到对应的mqtt协议。在内部配置转发格式。这个docker容器可以放置在工厂内更加抗干扰的IOT网关盒子内部。

1.4的工控机层直接去掉。让IOT网关直接入服务器的分库分表。(前提是设备都要联网)。1.5的服务器层使用k8s,每次向网关盒子内更新docker容器。

这样,开发者只用专注于服务器+IOT盒子的开发工作。部署工作也大幅度减轻。

目前我们在向这个方向发展。其实上面说的每一条都可以拿出来专门展开讲一讲。如果有需要的可以留言,我再单独出一些细节的博文。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值