- 博客(73)
- 收藏
- 关注

原创 制造业数字原生的OT数仓建设
在制造企业数字化转型中,如何实现工厂设备数据的联网采集,如何实现OT/IT的融合,是近年来的热门话题。本人在智能制造IT领域工作多年,去年有机会在某家大型制造企业研究院从事IT/OT融合方面工作和进行OT落地建设,结合最近休息时间的思考,给出基于开源技术打造制造业数字原生的OT数仓建设参考思路。关键词:OT数仓 工业物联网 智能工厂 时序库 数据采集 数字化转型IT/OT融合
2021-09-24 17:32:21
5186
1
原创 ubuntu 24.02部署java web服务
ubuntu 24.02 版本推荐使用jdk 21版本部署java web服务,开发后先使用sudo java -jar xxx.jar验证运行结果。启动依赖,在mysql.service启动后加载,避免服务运行时mysql还没有加载完成。sudo journalctl -u webmgr.service -f #查看运行日志。sudo systemctl enable webmgr #开机启动。sudo systemctl start webmgr #启动。
2025-04-16 23:46:14
289
原创 TDengine 3.3.6.3 虚拟表简单验证
提供多个值域,通过tags的vtype字段定义哪个字段有效,使用统一的模型支持数据写入,然后定义查询虚拟表方便查询。涛思新出的版本提供虚拟表功能,完美解决了多值窄表查询时需要写程序把窄表变成宽表的处理过程,更加优雅。测试下来还是很容易的,具体过程见下面代码和执行结果。
2025-04-16 23:26:54
325
原创 InfluxDB写入测试
早几年测试时序库时,采集数据到kafka,然后用不同数据进行存储验证。Influxdb是花时间比较多的,它的数据建模方法、读写方法都需要使用特殊的API。时间久了自己也经常忘记,把当时的测试关键代码记录下来,也方便日后查找。 代码基于java编写。 1、接口数据定义,clientid+tag组合必须唯一2、数据写入
2025-03-16 22:52:29
335
原创 Influxdb cli删除数据步骤
1、下载cli客户端 https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.5-windows-amd64.zip,解压到指定目录。5、执行处理命令,命令格式建议参考https://docs.influxdata.com/influxdb/v2/reference/cli/influx/3、运行powershell,进入第1步解压的客户端目录。下面命令是删除所有指定库和测量名数据的命令。4、配置token,以本机访问为例。
2025-03-16 22:33:01
406
原创 Ubuntu离线docker compose安装DataEase 2.10.4版本笔记
1、先准备一个可以正常上网的相同版本的Ubuntu系统,可以使用虚拟机。2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包,解压并执行install.sh进行安装和启动。4、第3步导出的离线镜像包和dataease-online-installer-v2.10.4-ce.tar,复制到内网环境。DE_MYSQL_PORT由当前目录下的.env文件配置,包括mysql连接账号信息,参考下面红框标记部分。6、执行安装,sudo./install.sh。
2025-01-17 23:22:44
606
原创 Ubuntu 24.04使用docker安装Node-Red
Node-Red是开源是可视化的流计算软件,在Ubuntu 24.04版本下,很容易通过docker进行安装。如果docker文件拉取失败,可以考虑换源,或使用其他具备网络条件的服务器拉取的镜像备份和还原。不具备docker直接拉起条件的,也可以使用本人备份的Node-Red v4.0.5镜像。上面的配置中,数据卷使用当前目录下的data目录,可以用下面命令创建。可以看到容器自动在data目录下创建了自己的文件和子目录,从而实现持久化。如果能正常启动,可以在上面的命令后再加上-d参数,后台运行。
2024-11-30 23:42:34
723
原创 ubuntu基于docker-compose部署mysql5.7和mysql8.0
docker-compose部署系统简单方便,出现问题也可以快速重来。mysql5.7和mysql8.0是两个比较流行的mysql版本。简单部署记录下来,供大家参考。
2024-10-31 22:37:32
648
原创 Ubuntu下搭建自己的Docker镜像仓库
可以试试直接执行:bash -c "$(curl -fsSL https://raw.githubusercontent.com/kubesre/docker-registry-mirrors/main/dockerproxy/install/DockerProxy_Install.sh)"域名注册解析方面,建议使用二级域名:docker,先配置docker的A记录解析到云主机,再配置“*记录”,类型为”CNAME”,记录值为“docker.自己的域名”我的安装日志如下(域名已经做了临时处理,非正式域名)
2024-10-29 22:47:42
1760
原创 ubuntu 24搭建docker私有仓库
docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。安装运行docker-registry可以通过获取官方registry镜像来运行。默认情况下,仓库会被创建在容器的/var/lib/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径。注意需要防火墙开放tcp 5000端口,测试"xx.xx.xx.xx"换成实际的IP(下同),搭建成功的会显示一个json。
2024-09-26 23:39:28
667
1
原创 MQTTnet库的MQTT Client证书连接模式
在证书连接模式下,我们一般可以获取到的是ca.crt、client.crt和client.key,并不能直接得到pem和pfx文件,这时需要转换使用openssl来转换。MQTT为了加强安全性,是支持Tls的安全模式连接的。在安全连接模式下,默认的服务端口由1883变更为8883,且使用CA证书来保证通讯双方的安全性。在openssl的命令行下,执行两个转换语句,即可实现pem和pfx的转换。
2024-07-24 22:50:16
1401
原创 C# 日志框架Serilog使用
C#日志框架Serilog支持多种场景输出,简单验证了一下,比较方便包的安装,推荐直接使用“推荐NuGet包管理器”安装Serilog.AspNetCore,常见的组件都已经集成在一个包中,使用比较方便。
2024-06-24 00:24:18
1255
原创 Prosys OPC UA Simulation Server工程文件备份方法
打开Windows“资源管理器”,找到当前用户下的“.prosysopc”目录。我的windows当前用户是iot,对应的目录就是:C:\Users\Iot\.prosysopc,可以看到有一个prosys-opc-ua-simulation-server目录。用zip备份或直接复制即可备份。他的免费版本不提供工程文件的备份、导入导出功能,每次退出时保存。如果需要工程备份,可以找到他的工程文件目录,手工备份和还原,具体方法如下:、还原时,可以把备份的目录替换现有目录下的文件即可。
2024-05-14 21:10:27
640
原创 小巧简单实用的Linux端口转发工具Rinetd
Linux下实现端口转发有很多种方法,尤其是在可以联网的情况下,更是容易。最近在资源受限的定制系统中,找到一个方便离线安装和使用的端口转发工具Rinetd,安装包仅几十K,而且有很多版本的Linux发行系统的支持。配置的意思是将服务器的1102端口转到到本地的102端口,也可以转发到内网其他机器。找到对应的版本进行下载。版本不是越高越好,和自己环境的发行版本匹配就好。Rinetd的配置文件位于。2、Ubuntu下安装命令。3、配置端口转发配置。
2024-05-09 22:23:41
1056
原创 使用C#和NMODBUS快速搭建MODBUS从站模拟器
浮点、32位整数、字符串等都可以通过调整slave.DataStore.InputRegisters.WritePoints和slave.DataStore.HoldingRegisters.WritePoints所对应的数组来实现。Modbus通讯分为主站和从站,使用RS485通讯时同一个网络内只能有一个主站,多个从站。开发测试时有各种复杂的需求,现有的仪器仪表实物搭建费时费力,可以用C#使用NMODBUS组件快速编写自己的从站仿真器,从而实现各种复杂场景的模拟。
2024-05-05 17:11:38
1897
原创 C#使用NPOI保存DataGridView数据到EXCEL文件
C# DataGridView可以显示各种表格数据,有时需要将结果保存到EXCEL文件中。开源库NPOI支持EXCEL格式文件的读写,可以使用NPOI编写通用的方法,自动将DataGridView控件表格数据保存到EXCEL文件。
2024-03-12 23:57:28
1039
1
原创 基恩士 KV-8000 PLC通讯简单测试
基恩士 KV-8000 PLC支持多种通讯方式,包括:OPC UA、Modbus、上位链路命令等。其中OPC UA需要对服务器和全局变量进行设置,Modbus需要调用功能块。默认支持的是上位链路命令,实际是一条条以回车换行结束的ASCII命令串。
2024-02-04 23:32:56
7317
1
原创 C# OMRON PLC FINS TCP协议简单测试
FINS/UDP运用的是一种嵌套格式数据包,即Ethernet报头、IP报头、 UDP报头和FINS帧。一个UDP数据段(FINS 帧)超过1472字节将被分成若干个数据包来传送。分开的UDP数据将在UDP/IP协议层自动组合。通常不须要关注运用 层的数据分段,但是在一个多层 IP网络中1427字节的UDP包可能无法 发送。在这种系统中就须要运用 FINS/TCP方式。ICF为信息控制域,用于标明指令和响应;RSV为系统保留;GCT为网关允许数目;DNA为目的网络号;DA1为目的节点号;
2024-02-04 22:55:39
3050
原创 C# .Net6搭建灵活的RestApi服务器
C# .Net6后支持顶级语句,更简单的RestApi服务支持,可以快速搭建一个极为简洁的Web系统。推荐使用Visual Studio 2022,安装"ASP.NET 和Web开发"组件。
2024-01-23 23:21:03
1652
原创 C#灵活的任务调度组件FluentScheduler
FluentScheduler是一个C#的灵活的任务调度组件,支持各类任务调度。网上有很多演示代码,此处记录下来,方便自己查找。
2024-01-14 22:39:53
1340
原创 Access数据库C#读写验证
Access数据库是一个相当古老的文件型数据库,主打一个简单+方便,没有复杂的安装过程,没有庞大的后端管理,整个数据库就是一个文件。可以像普通文件一样复制和修改,可以同时读写。 在小型系统中,还是有较多的存量系统在使用Access数据库,相对简单的文件存储,还是有很大的进步。Access是关系型数据库,数据是结构化存储,数据的关系和格式,相对文件严谨很多。
2024-01-01 17:47:58
1304
原创 电表通讯协议DLT645-2007编程
电表有个电力行业推荐标准《DLT645-2007多功能电能表通信协议》,电表都支持,通过该协议读取数据,不同的电表不需要考虑编码格式、数据地址、高低位转换等复杂情况,统一采集。不方便的地方在于这个协议定义得有点小复杂,自己带有各种特殊性定义,编程时一堆的坑。不少电表可以同时支持DLT645-2007和MODBUS RTU协议,但MODBUS协议在不同的电表中,地址都是不同的,需要查阅手册才能搞定。DLT645不同的数据需要发送独立的请求,而Modbus数据地址连接的可以一次读取,各有所长和优势
2023-12-30 23:04:36
3084
原创 VC2005 Socket Server封装库
DLL主要通过FishFlyCommServer.def文件暴露接口,形成标准WinAPI。;FishFlyCommServer.def : 声明 DLL 的模块参数。EXPORTS接收部分仅支持少量数据的接收服务端在客户端被关闭和接收到客户端传送的数据时,会产生事件,提供三种处理方式:消息模式(SKTD_MESSAGE)、回调模式(SKTD_CALLBACK)和查询模式(SKTD_QUERY)查询模式用于服务端对客户端的单向传输模式。
2023-12-24 23:16:46
493
原创 指法练习软件TT
这个是90年代后期读书时写的C语言练习软件,模仿当时的打字练习软件。在技能上使用屏幕直接输出,支持彩色,能够在DOS和Windows98的窗口下运行。
2023-12-24 20:22:12
964
原创 C# Microsoft.ClearScript.V8脚本使用
Microsoft.ClearScript.V8就是一个.NET绑定到Google V8的脚本引擎。它允许.NET应用程序直接从JavaScript代码中调用函数,并返回JavaScript类型。ClearScript.V8可以使用各种JavaScript库(比如jQuery)来提高工作效率,也可以使用它来测试JavaScript代码
2023-05-07 11:23:46
4914
1
原创 Nginx本地指定网络连接反向代理和netsh机器转发
主机使用两块独立的网卡连接到vlan01和vlan02两个子网,这两个子网均存在一个192.168.31.8的设备,在配置时需要为连接vlan01的网卡配置ip 192.168.31.100,连接vlan02的网卡配置ip 192.168.31.200,这两个IP不要和两个子网内的IP有重复。nginx是一款高性能的Web服务器、反向代理服务器以及电子邮件服务器,采用异步、事件驱动的架构,支持高并发、高吞吐量的请求处理。2. 节省硬件资源:占用内存少,CPU占用率低,可以在低配置的服务器上运行。
2023-05-07 00:03:49
1228
原创 使用Dism++和360安全卫士搞定Windows10离线升级
Windows10有很多版本,常见的由1903、1909、20H1、21H2等,在离线状态下,很难下载到匹配的升级补丁。网上可以找到的版本为WSUSOfflineUpdate_V12.6.1,下载后选择对应的版本,执行总是中途终止,也可能与本人使用的网络有关。我这使用的是默认安装,在C:\360Downloads\Software\漏洞补丁目录下,有这些补丁的安装包,采用的是cab格式。第4步收集的补丁,和Dism++工具一起复制到带更新的不能联网机器上,打开Dism++,选中更新,即可完成离线升级。
2023-03-31 22:33:49
4466
原创 TDengine 3.0 写入测试
开启4线程或8线程时,写入速度约2.5W/S。写入过程中Taos CPU占用较低,客户端CPU占用较高。测试环境:4C8G,Win,TDengine-server-3.0.3.0-Windows-x64,VS2022+.Net6.0。TDengine 3.0发布已经一段时间,最近在资源受限的硬件上,想测试一下是否可以满足需求。使用的连接器是官方提供就的TDengine.Connector。
2023-03-21 22:34:05
500
原创 Windows下使用Inpout库直接读写IO设备端口
Windows2000以后,随着系统安全性的提高和驱动机制的改变,设备的I/O操作需要ring0权限,在应用的ring3已经很难使用。早期有WinIo库流行过一段时间,最近有个特殊的需求要在Win7/Win2019/Win10下操作I/O,发现WinIo已经不好使,即使后面更新的WinIo3.0也有驱动签名的问题,不容易使用。后来网上找到了开源的Inpout库,有32位和64为版本,仅安装时需要管理员权限,使用时普通权限即可,非常方便。
2023-03-18 22:27:37
2127
原创 C#开发OPC DA客户端的服务器状态处理
C#开发OPC DA客户端,最简单的方法是使用OpcRcw.Comn.dll,OpcRcw.Da.dll封装的API进行。如何使用C#开发OPC DA Client程序,网上有很多例子,包括各大自动化厂商和OPC服务器厂商都带有相关的示例,本文仅仅讨论如何处理与OPC服务器的连接状态问题。
2023-03-16 23:53:41
1462
原创 C# 使用MQTTnet 4.1 Client通讯异常检测失效处理
C#下的MQTTnet client不能有效检测到网络的异常断开,使用PingAsync() 可以更安全的解决问题
2023-03-15 23:27:21
1731
原创 C# Roslyn编写脚本数据交互示例
Java中的Groovy嵌入式脚本,在C#中类似的实现,找到了Roslyn,入手简单,和原生的C#一样强大,可以快速使用。本文尝试用Demo实现脚本和本体进程之间使用API进行数据交换
2023-02-19 15:47:29
1181
1
原创 C# 使用NModbus 多Slave站编程方法
但NModbus4已经7年多没有更新,测试发现读取数据时,如果长度超出Modbus协议约束的长度,会导致异常造成服务退出,而且这个异常是应用层拦截和屏蔽不了。实际应用中,可以读完一个仪表的数据,然后分类(bool和其他,其他包括word、int、float等)写入,同类的一次更新完,使用也比较方便。实际应用中,常常有将各种RS232、RS485等设备联网,供远程服务器读取的需求,这是采用一台边缘的转换网关,连接多台设备,然后转换为Modbus是一个不错的方案。
2022-11-24 22:23:53
4575
原创 GE IFix OPC服务分析
GE iFix3.5/5.5组态软件,仅提供OPC DA服务,不支持OPC UA。本文对如何读取iFix的OPC数据项进行简单介绍。 iFix的OPC DA服务,在安装好之后枚举时可以看到3个,正确的ProgId是“Intellution.OPCiFIX.1”。 OPC接口支持情况如下:从图上可以看出,iFix OPC DA仅支持OPC2.0接口,不支持3.0接口。数据浏览方面,对数据按类型进行了分类,类型下面是具体的点(对象),每个点有几十个数据属性,表现在OPC接口中,就是一个有效点有几十个相关点
2022-10-26 23:22:47
1283
原创 艾默生Ovation DCS OPC服务分析
艾默生的OPC DA服务器,使用的ProdId为“Ovation.OPCDAServer.1”,GUID值是{A3ABA03B-6CF7-4b13-A264-FD5AA251CC76}。 OPC DA服务器版本方面,有支持OPC3.0的,也有支持OPC2.0的,影响的主要的OPC3.0支持直接读取变量值。 在OPC的浏览层次方面,采用节点、单元、站、变量、变量属性5层结果,第5层为变量的属性值,不同类型的属性值有所差别,几十到上百不等
2022-10-26 00:02:53
2206
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人