- 博客(88)
- 资源 (7)
- 收藏
- 关注
原创 从工业软件到 AI 智能体:工业 AIoT 技术路线的系统梳理
AI 能理解人的意图,却不能凭空获得可靠的设备数据。沿着设备、协议、数据、平台和工具调用,重新理解工业 AI Agent 的完整技术链路。
2026-09-04 14:00:52
420
原创 IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
物模型回答“一类设备有什么能力”,DC3 的语义模板以模板、位号、指令、事件四个概念补齐采集、控制、上报三条线:位号带读写方向与工程换算,指令带参数契约、超时与八态状态机,事件带类型、级别与告警管线,模板带共享范围、版本与引用保护。本文给出与物模型的六维对照、电机建模五步法、五类对象的字段级配置说明,以及这套语义如何成为智能体的工作接口。
2026-09-04 02:12:29
241
原创 IoT DC3 概念解读:设备——物理实体的平台建模
设备(Device)是 IoT DC3 平台中的核心管理单元,代表接入平台并进行数据交互的具体实体。本文介绍设备的概念、建模要素与生命周期。
2026-09-01 16:10:54
167
原创 IoT DC3 概念解读:设备建模的核心实体
设备是现场一台具体设备在平台里的镜像。这个定义包含两层限定。其一,设备是具体的。某型号温控器"应该有温度、湿度两个位号"是模板的事;车间里编号 TC-001 的那一台、此刻在线、刚上报 25.3 摄氏度的温度读数,才是一个设备。设备不是类型定义,也不是数据本身,而是"那一台"在平台里的数字化身份。其二,镜像不挑剔形态。接入平台并进行数据交互的实体,都可以建模为设备——除了硬件,网关、软件程序乃至数据库都可以。
2026-09-01 15:38:03
326
原创 IoT DC3 参与指南:文档、Demo、CLI 与贡献路径
热门贡献方向:新协议驱动(第 02 篇讲过 SDK 路径)、文档与翻译(双语书长期需要英文校对)、前端体验(Vue 3 + TypeScript)、CLI 工具面扩展。:book.dc3.site(双语在线书,按章节讲解架构、设计与实现)与 docs.dc3.site(操作手册:快速上手、驱动开发指南、选型指南、故障排查)。:docs.dc3.site · book.dc3.site · demo.dc3.site · 贡献指南见仓库 Contributing 章节。| 09 | 四层安全纵深 |
2026-08-30 22:02:48
359
原创 IoT DC3 安全设计:四层纵深防御体系
传统工业平台的安全模型以人为用户主体。智能体接口引入了新的调用方:持有用户签发令牌的程序客户端,可查询设备、读写点位。
2026-08-30 22:01:05
95
原创 从零部署 IoT DC3:四步快速启动实录
"从 clone 到看到数据"的耗时是评估开源平台的重要指标。本文基于 DC3 当前主干演示完整流程。前置条件:JDK 21、Maven 3.9+、Podman 或 Docker 及可联网环境。
2026-08-30 21:59:26
87
原创 MCP 落地工业平台:从大模型对话到设备点位
MCP(Model Context Protocol)由 Anthropic 于 2025 年开源,到 2026 年已成为智能体生态的互操作基础——Claude、Cursor 及各类 Agent 开发框架均以 MCP Server 作为工具暴露的标准形态。,无需为各 AI 客户端分别定制集成。
2026-08-30 21:58:02
144
原创 IoT DC3 AI 能力:Agentic Center 的设计与边界
—模型无法感知实时现场数据;——设备接口的权限控制难以放开;——工业场景要求确定答案。DC3 的 AI Agentic Center(,基于 Spring AI 2)就是围绕这三个卡点设计的。以下先说明当前能力,再说明设计边界。
2026-08-30 21:56:28
293
原创 IoT DC3 时序存储选型:四款数据库可插拔
—按设备取最近趋势、跨设备时段聚合,还是分析时多序列对齐。不同答案对应不同的数据库。定义端口,四个适配器各自对接一款时序数据库,由配置项。
2026-08-30 21:54:46
326
原创 IoT DC3 消息总线:六适配器可插拔设计
消息队列选型的主要成本不在中间件本身,而在:业务代码中散落的发送方、消费方与序列化逻辑一旦绑定特定客户端 SDK,更换队列就意味着大规模重构。dc3-mq/家族里,定义端口与消息语义,六个适配器各自对接一个消息队列——RabbitMQ(默认)、Kafka、Pulsar、MQTT、ActiveMQ、RocketMQ。数据中心等业务方只依赖 core 的接口,不感知底层是哪家。
2026-08-30 21:45:00
241
原创 36 个驱动模块:应对协议碎片化
在产线数据采集的工程实践中,最耗时的问题通常不是并发或存储,而是。同一个车间里,温度传感器说着 Modbus RTU,PLC 是西门子 S7,电表跑着 DLT645,环保监测设备用 HJ 212(SL651 同源的水文规约家族),新采购的网关又是 MQTT。每接一类设备,就要重新学一套报文格式、一套连接管理、一套异常语义。这种碎片化在工业物联网领域已存在二十余年——各协议诞生于不同年代与行业,服务于不同的技术约束,难以彼此取代。平台层的职责,是屏蔽协议差异对上层业务的影响。
2026-08-30 21:41:07
153
原创 十年了,我们把工业物联网平台交给了智能体
入场的老兵(2016 年以驱动接入框架起家,2018 年在 GitHub 开源),在第二阶段补齐了云原生与数据链路,而在第三阶段开局时,它的位置恰好踩在得分点上:多协议接入、云原生、AI 赋能——这句官方定位语的最后半句,“面向智能体演进”,是今年才补上去的,也是未来几年唯一的路线。## 我们没做什么给新读者一个诚实的边界说明:- DC3 不是设备管理 SaaS,不开箱提供行业套件,它提供的是平台底座——接入、建模、存储、告警、AI 调用面,行业逻辑需要你在上面搭;谁掌握的协议多、接入稳,谁就有话语权。
2026-08-30 20:25:04
341
原创 IoT DC3 概念解读:驱动——协议接入的统一抽象
在开源IoT DC3物联网系统中驱动(Driver)扮演着至关重要的角色,它充当了软件系统与物理设备之间的桥梁。驱动的主要功能是依据特定的通信协议连接到设备,并根据设备模板中配置的位号信息进行数据采集和指令控制。不同的设备可能使用不同的通信协议,因此需要匹配相应类型的驱动来实现有效的通信。这类驱动能够与多种不同品牌和型号的PLC进行通信,如西门子、施耐德等,它们通常支持多种协议,包括但不限于Modbus、Profibus等。驱动是一种特殊的软件组件或程序,用于实现上层应用软件与硬件设备之间的交互。
2025-02-10 17:38:00
1139
原创 IoT DC3 概念解读:位号——工业数据的最小语义单元
(例如电动汽车的驱动电机)中,位号用于表示电机运行状态的关键参数,例如转速、电压、电流等。在开源IoT DC3物联网系统中,位号(Point,有的系统也叫Tag、Variable、Node、Signal等)用于。每个位号代表一个具体的物理量或状态信息,通常与传感器、PLC 中的变量或控制系统的输入输出数据相关联。位号数据可以通过 PLC、传感器或数据采集模块读取,并存储在数据库或云端,以供进一步分析。:如果电机温度超过 100°C,则触发高温报警,避免损坏;监测电机运行状态,防止超速或低效运行。
2025-02-10 15:20:56
774
原创 IoT DC3 概念解读:模板——语义模板的基座
一个模板可以看作是一系列具有相似功能或属性的位号的集合。用多个子分类模板表示,为了更精细地管理和分析数据,我们可以创建多个小类别的模板。用一个大而全的模板表示,这种模板包含了某类设备的所有可能需要监控和管理的位号。例如,对于电机这样的设备,一个全面的“例如:以电驱动机设备为例,可以使用一个大而全的模板表示全量位号,也可以使用多个模板来表示子分类位号。模板可以设计为覆盖某类设备的全部位号的大而全的形式,也可以是针对特定功能或应用领域的子集合形式。:记录设备的状态信息,用于长期分析和维护计划。
2025-02-10 15:19:05
979
原创 树莓派物联网入门 - 安装Java(三)
1.下载Java树莓派需要使用arm32版本的Java,下载地址 树莓派 Java使用 scp 上传到 树莓派scp jdk-8u251-linux-arm32-vfp-hflt.tar.gz pi@raspberry:/home/pi在树莓派上解压java压缩包tar zcvf jdk-8u251-linux-arm32-vfp-hflt.tar.gzmkdir -p /usr/local/javamv jdk1.8.0_251 /usr/local/java/配置环.
2020-05-20 22:21:37
1090
1
原创 树莓派物联网入门 - VNC远程登录,带桌面(二)
上一篇文章讲了如何烧制系统、开启ssh登录以及配置连接WiFi 树莓派物联网入门 - 系统安装(一)1.设置VNC在树莓派上执行 sudo raspi-config然后进行如下设置,使用上下左右按键进行控制,如图所示:2.使用VNC进行远程登录如果没有 VNC 请阅读第一篇文章进行安装3.常见问题解决方法如下:项目推荐 DC3是基于Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目..
2020-05-20 22:06:49
650
1
原创 树莓派物联网入门 - 系统安装(一)
提示:安装过程中所需软件均在这儿 树莓派系统安装软件集合1.系统镜像下载树莓派官方提供的镜像下载链接 downloads/raspbian ,如图:选择一个合适的系统镜像进行下载!2.SD卡系统制作2.1 格式化SD卡使用软件 SDCardFormatter 进行SD卡格式化操作,插入SD卡,如图:点击 Format 进行格式化即可!2.2 烧录系统将下载好的镜像压缩文件(.zip)进行解压,插入SD卡,然后使用 win32diskimager 软件进行系统烧录,如图:校验值..
2020-05-20 20:33:46
1778
1
原创 pip使用报错AttributeError: 'NoneType' object has no attribute 'bytes'
easy_install -U pip
2020-02-07 17:52:23
732
原创 正则验证整数和浮点数
这里写自定义目录标题正则验证整数和浮点数涨姿势^?*$+.|( )[\{正则验证整数和浮点数/^-?(([0-9]*(\.[0-9]{1,3})$)|([0-9]+$))/说明:匹配 正整数、0、负整数、正浮点数、负浮点数其中 {1,3},用于限制小数位数涨姿势^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的...
2020-02-07 11:10:53
5899
4
原创 Java实现RTSP流实时转RTMP流(一):基础环境搭建
Java实现RTSP流实时转RTMP流海康摄像头RTSP转RTMP大华摄像头RTSP转RTMP网页播放RTSP视频流FFmpeg实时将RTSP转RTMP
2019-05-27 10:48:49
17859
10
原创 FFmpeg在Window上出现'circular_buffer_size'问题解决方法
FFmpeg在进行rtsp读取时出现:[udp @ 000001e04eafbdc0] 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required) 报错的解决方法
2019-05-27 10:07:27
9154
7
原创 RTSP转RTMP,Nginx和nginx-rtmp-module配置直播推流服务器
开发环境Ubuntunginxnginx-rtmp-moduleVLC media player依赖安装依赖库sudo apt-get updatesudo apt-get install libpcre3 libpcre3-dev openssl libssl-dev编译配置&编译Nginx,使用默认配置,并添加nginx-rtmp模块。./configure...
2019-05-26 11:38:45
4984
4
原创 spring cloud gateway 2 深入了解 - Predicate
Predicate 路径谓词Path谓词spring: cloud: gateway: routes: # 匹配指定路径的路由 - id: path_route uri: http://www.baidu.com predicates: - Path=/baidu/** filt...
2019-05-24 22:04:02
1115
原创 Java读写操作西门子S7系列PLC
项目推荐推荐个人GItHub开源项目(iot-dc3)一个开源的、分布式的物联网(IOT)平台,用于快速开发物联网项目和管理拓展。https://github.com/pnoker/iot-dc3简介Java实现操作西门子S7系列PLC,基于开源项目s7connect实现,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高...
2019-05-15 10:59:47
26222
14
原创 RSA加密算法实现 Java版
RSA加密算法是一种非对称加密算法,其玩法打破了以往所有加密算法的规则.在RSA出现之前,所有的加密方法都是同一种模式:加密解密的规则使用同一种方式.这种长达几个世纪的加密方案有一个致命的缺陷.在传递加密信息时,必须让对方拿到解密的规则才能正常解密.由于加密解密的规则一致,所以保存和传递"密钥",就成了最头疼的问题。
2019-05-15 10:05:29
1321
原创 AES加密算法实现 Java版
什么是AES加密算法?高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准。已经被多方分析且广为全世界所使用。AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据,相对来说安全很多。完善的加密算法在理论上是无法破解的,除非使用穷尽法。使用穷尽法破解密钥长度在128位以上的加密数据是不现实的,仅存在理论上的可能性。统计显示,即使使用目前世界上运算速度最快的计算机,穷尽128位密钥也要花上几十亿年的时间,更不用说去破解采
2019-05-15 09:42:16
934
原创 正则表达式判断全部的正数、负数、和小数以及实数
收藏js 正则表达式 判断全部的正数、负数、和小数/^(\-|\+)?\d+(\.\d+)?$/例子if ('' != value) { if (!/^(\-|\+)?\d+(\.\d+)?$/.test(value)) { return '请填写正确的数字'; } }...
2019-02-27 17:10:04
11146
2
原创 Unable to create tempDir, java.io.tmpdir is set to C:\Windows\
这里写自定义目录标题使用mvn或者手动启动spring boot 程序报以下错误:使用mvn或者手动启动spring boot 程序报以下错误:Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to create tempDir. java.io.tmpd...
2019-02-18 19:24:03
13230
1
原创 Mac上无法在线下载FASHION MNIST数据
编写本地导入FASHION MNIST文件工具文件下载请使用FASHION MNISTimport gzipimport numpy as npfrom tensorflow.python.keras.utils import get_filedef load_data(): base = 'file://./data/' files = [ '...
2018-11-21 23:55:24
919
2
原创 GitHub添加远程仓库
情景你已经在本地创建了Git仓库,然后想在GitHub上创建一个git仓库,并且希望本地、远程两个仓库能进行同步步骤如下登陆Github网站创建一个仓库,Create a new repo 在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库: 目前,在GitHub上的这个learngit仓库
2017-01-17 14:56:12
816
原创 GitHub创建SSH远程登陆
GitHub是一个提供git仓库托管的服务器,只需要注册一个github账号就可以免费使用他的git远程仓库,GitHub官网 当你注册完一个github账号后需要完成一下步骤:第一步:创建SSH Key在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开G
2017-01-17 14:44:16
872
原创 Linux中常用的查看系统信息的操作指令
Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令。
2016-12-19 11:18:30
1059
原创 远程桌面服务当前正忙,因此无法完成您尝试执行的任务。(或者出现黑屏界面)
问题:有段时间登录服务器总是提示:远程桌面服务当前正忙,因此无法完成您尝试执行的任务。在微软找到的原因是:Csrss.exe 进程和某些应用程序 (例如,Microsoft Excel 或 Microsoft Visio) 之间发生的死锁情况下会出现此问题。解决:下载一个修复补丁,安装后重启服务器即可。具体信息在: http://support.microsoft.com/kb/2661332/z
2016-11-23 09:12:03
24247
3
原创 Java操作另一个Java程序使其重启
大概思路:写两个程序,一个负责重启的程序,一个是待重启的程序,在这里为了区分我们假设负责重启的那个程序叫A,待重启的程序叫B,他们都是线程,还要搭配数据库,他是两个程序的桥梁,通过设置信号量进行判断程序状态(不妨设置信号量为Flag),我是这么设置的,0:表示程序正在运行中,1:表示程序需要重启,正准备做关闭自己的操作(只针对待重启的程序B),2:表示B程序已经把自己给关闭了,需要A程序把B程序启动
2016-09-14 17:04:03
4117
16
原创 Java操作Bat文件,启动Bat
有时候遇到过这种情况,需要每天定时打开一个.bat的批处理文件,这时候会选择使用Windows任务计划或者程序启动,但是Windows任务计划往往会出现这种那种情况,而导致该.bat文件不能按时启动,这样就需要借助某些程序了,这里我将分享如何使用Java启动.bat文件。package com.app;import java.io.IOException;public class StartCmd
2016-09-14 16:27:25
8554
53
jdk-8u251-linux-arm32-vfp-hflt.tar.gz
2020-05-20
prosys-opc-ua-java-sdk-client-server-evaluation-2.3.2-781
2018-10-24
VNC-Viewer-6.20.113-Windows-msi.zip
2020-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅