这个项目厂区监控中心已经实现了对厂区现场各个PLC、传感器等数据的汇总和监控,点数不少。我们在厂区实现的项目效果如下,此项目已经稳定运行了很长时间:

中控室我们直接使用了IOT-Tree这个开源软件,你如果对这个软件不了解,可以github上查看下载。如果你对类似的物联网项目不怎么了解,可以参考我之前的一个“手把手”系列文章——机房自动化监控手把手分享给你。里面也有使用IOT-Tree的详细解决现场问题的过程,这个系列文章你就算没有任何物联网项目经验,基本都可以掌握。

前些时候,用户IT负责人问我们能否把他们两个远程配套站也做个简单的监控,并接入到厂区中控室。我们做了现场调研,发现两个配套站需要监控的设备不多,本地实现比较容易,但距离厂区都有好几公里,如何使用远程通信接入到厂区中控室是个难点。

厂区中控使用厂区内部网络,能够通过宽带上网,但没有固定IP地址,系统不能直接连入。两个配套站一个规模稍大(我们命名为子站A),有人值守也配置普通的宽带网络(没有固定IP),本地需要能够有个简单的控制画面;另一个(命名为子站B)只有一个房间除了定时巡检之外平时无人值守,也没有任何宽带网络,需要直接接入到厂区中控室。

一开始我们以为需要在云端弄一个数据的转发程序,定制开发完成整个通信过程,这个程序需要包含子站B接入到云端数据收集,还有子站A本地监控系统也需要做个数据提取然后通过云端转发,另外还需要做个中控室发出的控制指令通过云端返回,最终到达子站A或子站B。想想都头大!!

后来在IOT-Tree github网上更新的文档发现了  中心-子站远程监控  这篇内容,才知道原来实现这个是多么简单。之前没发现这篇内容也不知道软件存在的这些东西应该如何使用,应该要怪作者比较懒吧:)

参考文档,然后做了一些测试,我们给用户弄了如下方案:

1 技术方案

在子站A实现监控传感器和控制器之后,安装一个带触摸支持的微型工业pc,在上面部署一个IOT-Tree Server,汇总现场设备数据,并实现一个简单的监控画面给值班人员使用。同时,使用已经有的宽带接入到互联网。

让客户用很低的费用租用一个腾讯云虚拟机(基础配置的就够),有个固定公网IP即可。上面部署一个IOT-Tree Server,这个部署实例不仅使用Tcp Server方式接入子站B的设备,同时也启动里面的Apache Active MQ服务,作为子站A和子站B的项目分享MQTT Broker。

在子站B配置一个4G DTU,下面的RS485总线采集和控制现场少量的传感器和设备。然后,使用Tcp Client模式,主动向云端IOT-Tree Server接入。云端的IOT-Tree Server内部配置子站B的项目。

还是画个示意图,比较直观说清楚:

2 子站本地实现

子站A和子站B本地实现和配置IOT-Tree Server的过程,我就不细讲了。其过程和我那个“手把手”系列差不多。稍微不同的是,子站B的IOT-Tree Server在云端,在设置接入时使用Tcp Server方式,你需要配置4G DTU主动连接,通过连接成功之后发送的标识判断链接来源。然后反向访问现场的总线上的设备。而子站A的IOT-Tree在现场,一般通过COM口和Tcp Client方式连接现场设备,配置相关数据点位。

我们也在子站A和子站B的项目中各自画了一个简单的监控画面,只需要展示一些现场设备数据,几个开关就够了。

下面才是我们这篇文章的重点。

3 分享子站A和子站B

3.1 启动云端Apache Active MQ服务

我们在云端部署的IOT-Tree Server实例,不仅是子站B的项目运行服务,同时也是MQTT Broker。我们只需要在管理员界面,点击Services区块的Setup按钮,编辑里面Apache Active MQ的内容,然后启动即可,也就几分钟的事。请注意自己设定三个复杂一些的MQTT连接验证用户名和密码,分别给子站A、子站B和厂区中控的连接。

在此,我给个截图:

需要稍微避免的坑是,你云端MQTT使用的端口,一般是被防火墙限制的,你需要在云服务管理控制台允许对应的端口。然后,测试确定厂区或子站能够正常访问。

3.2 子站A项目分享设置

子站A的IOT-Tree Server实例由于在本地局域网,我们需要在本地打开项目管理主界面,点击上方分享按钮。填写指向的云端MQTT相关信息:

其中,推送时间间隔你如果网络状况好,可以设置短一些,这样子站的项目在运行过程中,就会以这个间隔推送更新数据,当然越短越及时。

配置完成,启动项目要确保上面的这个分享图标变绿——这个说明分享到MQTT Borker成功。

3.3 子站B项目分享设置

子站B项目运行在云端,并且连接的MQTT Broker在同一个IOT-Tree Server实例内部,你只需要设置MQTT主机=localhost,使用分配好的用户密码之外,其他都一样,在此不重复了

两个子站分享也是几分钟的事,此时子站就不需要做什么工作了,中控要接入这两个子站,最终都和MQTT Broker打交道了。

4 中控室IOT-Tree接入子站A和子站B

4.1 获取两个子站的ID号

中控室要接入子站,除了需要连接云端MQTT Borker之外,还需要子站A和子站B的项目唯一Id号作为参数。

在子站项目管理界面,点击项目根节点,然后在主内容区点击“属性”选项卡,把里面的ID属性对应的值复制出来即可,如下所示。

4.2 配置子站A接入

在中控IOT-Tree项目管理界面中,点击左上角接入,在弹出的菜单中选择"IOTTree Node"。你就可以看到弹出接入参数填写对话框。你只需要填写MQTT连接参数和对应子站项目的id即可。如下图:

添加这个接入之后,在项目根节点上鼠标右键,选择“新增通道”如下:

然后把刚才的接入和这个通道关联,如下:

接着,我们启动项目,确保接入sub_a变绿(说明与云端MQTT Broker连接正常)之后,鼠标右键,选择“同步树”。在弹出的对话框点击“开始同步”按钮,就可以把子站的项目树结构和标签都复制到总站的suba通道下面了。下图不是现场实际截图,只是我本地为了方便说明,所以不是实际的连接正常显示:

当提示同步成功之后,点击关闭对话框,就会发现suba通道下面已经把整个子站的项目树都复制过来了——也即是整个子站变成了总站的一颗子树。

还有,你会发现子站定义的监控画面节点也被复制过来了。你可以鼠标右键,选择”访问“就可以在总站这边查看子站A的监控界面了。当然,你点击下达指令也会自动转发执行。

4.3 配置子站B接入

与A类似,不重复了

5 最终效果和总结

最终子站A和子站B在总站项目管理中,变成了两个通道对应的子树。你可以把子站的监控画面整合到总站的总画面中,或者单独使用流量器打开,成为总站独立监控子站的窗口。

可以发现,如果云端通信正常,两个子站已经部署完成的情况下,整个过程是非常简单快速的。

如果你要详细了解这个功能细节,请参考相关文档吧。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐