iot-Scada免费Scada组态软件系列教程2-架构设计

 iot-Scada免费Scada组态软件系列教程

系列文章目录

iot-Scada免费Scada组态软件系列教程1-初识iot-Scada

iot-Scada免费Scada组态软件系列教程2-架构设计

iot-Scada免费Scada组态软件系列教程3-各模块详细介绍

iot-Scada免费Scada组态软件系列教程4-二次开发与版本部署


前言

iot-Scada(意为:Internet of things Scada(物联网组态))是罕见的高度抽象组态平台,定位于满足各种物联网场景监控、可视化需求。本系列文章采取总分结构,能够让大家掌握整体的设计原理,再到实际应用。

# 设计思想:认识大局,把控整体,简化细节

# 技术栈:前端Vue + 后端java(springboot / cloud)+ 数据库MySQL

# 技术支持:(qq:907154198)

# demo演示地址:iot-Scada


架构设计

iot-Scada免费Scada组态软件系列教程2-架构设计_第1张图片

 iot-Scada在架构上尽可能做到简化,调用接口即可传入数据更新组态,使用最简单稳定的方式实现,以便小伙伴们后续自行扩展或集成。比如后端实时数据可改为Redis,前置通信可扩展为MQTT或传统socket等。

前端:采用主流Vue实现前后端分离,集成ElementUI、DataV、Quasar等成熟组件,模块清晰、代码少,小白和后端(学过编程的都能看懂)也能快速上手,开发和维护极为简单。

后端:Java语言的Springboot脚手架,代码是几个CURD接口,前端小伙伴都能掌握的那种(是真的)。

数据库:MySQL

基础版数据库表结构

iot-Scada免费Scada组态软件系列教程2-架构设计_第2张图片

对外接收第三方服务推送的信息接口代码:

/**
     * 接收外界发来的实时数据
     */
    @PostMapping("sendCurrentData")
    public R sendCurrentData(@RequestBody ScadaDeviceEntity param) {
        CurrentUser user = FebsUtil.getCurrentUser();
        assert user != null;
        ScadaDeviceEntity deviceEntity = deviceService.getOne(new LambdaQueryWrapper()
                .eq(ScadaDeviceEntity::getDevicecode, param.getDevicecode()));
        if (deviceEntity == null) {
            return R.error("未查询到该资产设备信息");
        }

        deviceEntity.setVal(param.getVal());
        deviceEntity.setUpdatetime(param.getUpdatetime());
        deviceEntity.setThattime(param.getThattime());
        deviceService.updateById(deviceEntity);

        ScadaHistoryEntity historyEntity = new ScadaHistoryEntity();
        historyEntity.setAssetid(deviceEntity.getAssetid());
        historyEntity.setDevicecode(deviceEntity.getDevicecode());
        historyEntity.setThattime(param.getThattime());
        historyEntity.setUpdatetime(new Date());
        Boolean ret = historyService.save(historyEntity);

        ......

        return R.ok("操作成功");
    }

你可能感兴趣的:(iot-Scada,物联网,java,vue.js)