
回复
作为一个曾在工厂调试设备到凌晨的开发者,今天要分享HarmonyOS在工业监控中的实战!当初用分布式管理做设备监控时,被老师傅夸「比传统系统快3倍」,快来看看这些干货~
去年帮车间改监控系统,老师傅拍着机器说:
层级 | 职责 | 车间实例 |
---|---|---|
采集层 | 抱传感器大腿,收温度电流数据 | 电机上的温度传感器 |
监控层 | 盯着数据,发现异常就喊人 | 中控室的监控大屏 |
控制层 | 听指令干活,调设备参数 | 变频器(调电机转速) |
import { mdns } from '@kit.NetworkKit';
// 创建设备扫描仪,像保安查工牌
let scanner = mdns.createDiscoveryService(this.context, '_industry_monitor._tcp');
// 发现设备时记工牌信息
scanner.on('serviceFound', (设备) => {
console.log(`找到设备:${设备.serviceName},IP:${设备.hostName}`);
// 存设备IP到「花名册」
});
// 开始巡逻查设备
scanner.startSearchingMDNS();
import { http } from '@kit.NetworkKit';
// 定时收数据,像收车间日报
function 收数据() {
http.request(
'http://中控室IP:8080/data',
{
method: 'POST',
extraData: JSON.stringify({
电机温度: 65.2,
电流: 2.3,
运行状态: '正常'
})
},
(err, data) => {
if (!err) {
console.log('数据已上报中控室');
} else {
console.log('上报失败,先存本地日记');
// 存本地缓存,等网好再发
}
}
);
}
// 每30秒收一次
setInterval(收数据, 30000);
// 工程师调电机转速
function 调转速(设备IP, 新转速) {
http.request(
`http://${设备IP}:8080/control`,
{
method: 'POST',
extraData: JSON.stringify({
指令: '调转速',
参数: 新转速
})
},
(err, data) => {
if (!err) {
console.log(`设备已调到${新转速}转/分钟`);
} else {
console.error('调转速失败,检查权限');
}
}
);
}
现在这套系统在车间跑了半年,最爽的是有次电机轴承快烧了,系统提前10秒报警,省了一台电机的钱~ 但记得第一次调试时,把变频器参数调错,电机突然加速把老师傅吓一跳😂