最近实现了一个小项目,现场有多个不同厂家的设备,用户需要对此进行简单的整合,并实现一些联动控制。
我使用了IOT-Tree Server这个软件轻松实现了,不外乎有如下过程:
1)使用Modbus协议对接现有设备,一些设备由于是模拟量信号,通过AD模块做转换,然后也输出Modbus RTU的协议数据。所有设备通过串口服务器模块转换成了以太网接口。最终整合到一个总的控制设备——这个设备就是IOT-Tree Server运行的边缘设备。
2)本项目使用了一个巴掌大小的嵌入式Arm Linux模块,这个模块使用RK3568主控芯片,主频达2GHz,内存容量有2G/4G大小,Linux是Debian版本。可以轻松跑起IOT-Tree Server使用的Java运行环境。
上面对接设备过程本文就不细讲了,你如果不了解可以参考本系列文章中的以下文章,里面包含项目完成整个过程:
机房自动化监控手把手分享给你 - 10 项目完成总结
这篇文章讲的非常详细,基本上你是0基础都可以通过这个文章慢慢掌握整个过程。
本文想给你分享的是,我如何安装配置这个Linux设备的,并且是如何实现现场多个设备联动的
1 Arm Linux设备及安装配置
我使用的Arm Linux设备是正点原子AtomPi-CA1卡片电脑,主要这个带有一个小外壳,很方便现场安装。这板子长成这样,竟然有两个网口,特别方便现场使用——两个网口一个可以对接现场设备,另一个可以接入用户办公环境,不仅可以实现现场控制,也方便办公人员查看设备监控画面,还保证了设备网络和办公网络的隔离。
相关资料可以到正点原子网站上去查看。
注意,此板子没有时钟保持功能,感觉限制了很多功能,特别是做数据记录的时候。你如果现场需要的功能比较复杂,不建议你使用这个板子。我使用这个做现场实时调度,不需要精确记录时间。
1.1 IOT-Tree的安装配置
由于GitHub上面提供下载release版本,自带的java环境版本都是windows,因此我下载的是iot-tree-xxx.zip文件。文件内部没有对应的java环境,需要自己下载安装。
我使用的是oracle官方网站提供的Linux Arm64对应的压缩包
当前用户登录之后,直接通过ftp把iot-tree和jdk都解压放到了当前用户目录下,如下图:
进入iot-tree目录,修改文件iot-tree.sh。只需要修改一行,设置JAVA_HOME为你解压之后的对应jdk目录。
然后运行命令,使这个文件可运行
chmod +x iot-tree.sh
然后,你就可以直接通过 ./iot-tree.sh命令启动IOT-Tree Server了。但是,我的应用要求设备通电启动之后,IOT-Tree能够自动运行。因此,使用su账号,新增了如下文件:
/usr/lib/systemd/system/iot-tree.service
文件内容如下:
[Unit]
Description=IOT-Tree Server
After=network.target
[Service]
ExecStart=/home/atom/iot-tree/iot-tree.sh linux_nohup
WorkingDirectory=/home/atom/iot-tree
Restart=always
StandardOutput=append:/home/atom/iot-tree/log/syslog.log
StandardError=append:/home/atom/iot-tree/log/syslog.log
SyslogIdentifier=iot-tree
[Install]
WantedBy=multi-user.target
这样,IOT-Tree Server就被配置成了Linux后台运行的服务 。你可以使用如下命令进行服务的管理;
重载系统服务:systemctl daemon-reload
设置开机启动:systemctl enable iot-tree
启动服务:systemctl start iot-tree
停止服务:systemctl stop iot-tree
重启服务:systemctl restart iot-tree
通过以上配置,IOT-Tree在ARM Linux环境就可以随着设备的启动而自动启动了。
2 设备接入配置和监控画面制作
这个还是参考我的系列文章吧。相关内容都类似,我在这里再写都没有下面这些文章详细了。
机房自动化监控手把手分享给你 - 7 监控画面制作
3 使用消息流实现现场设备联动控制
本项目的联动控制非常简单,通过一个Modbus通道,获取厂家1提供的设备数据,根据一定的规则,对厂家2提供的设备做控制输出,以达到节能降耗的目的。
我使用了IOT-Tree的消息流控制机制实现,感觉这个具体控制过程还不如IOT-Tree提供的demo例程,还是参考这个吧:使用消息流程实现控制逻辑
4 总结
现在的Arm Linux系统,配置稍微高一些就可以运行java虚拟机,那么也就可以运行IOT-Tree Server。一旦你的设备安装并运行了IOT-Tree Server,设备就可以有IOT-Tree的大部分能力,你的设备会成为一个功能强大的边缘处理中心。
你如果给设备配置一个HDMI屏+键盘+鼠标,甚至可以直接替代中控室的PC。