不想被淘汰就学它:C#在OPC UA通信中的核心优势与落地技巧

C#调用OPC UA 解决方案 特殊情况可以查看所有命名空间:ns=0;i=2255,也可以用(OpcUaHelper.Tool)工具查看。2、参数传递方式:ns=2;s=参数名(ns表示命名空间索引,一般为2)、UA-.NETStandard-Samples比价有参考价值。 阅读详情

第一章:C# 在工业 4.0 中的 OPC UA 通信(OPCFoundation.NetStandard)

在工业 4.0 的演进中,设备与系统间的互操作性成为核心需求。OPC UA(Open Platform Communications Unified Architecture)作为一种跨平台、安全可靠的通信协议,广泛应用于工业自动化场景。借助 C# 和 OPCFoundation 提供的 OPCFoundation.NetStandard 库,开发者能够在 .NET 环境中轻松实现与 PLC、SCADA 系统等工业设备的数据交互。

环境准备与依赖引入

使用该库前需通过 NuGet 安装核心包:
  • OPCFoundation.NetStandard.Opc.Ua.Client
  • OPCFoundation.NetStandard.Opc.Ua.Stack
可通过 Visual Studio 包管理器或命令行执行:
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Client

建立客户端连接

以下代码展示如何创建 OPC UA 客户端并连接至服务器:
// 创建应用配置
var config = new ApplicationConfiguration
{
    ApplicationName = "IndustrialClient",
    ApplicationType = ApplicationType.Client,
    SecurityConfiguration = new SecurityConfiguration { AutoAcceptUntrustedCertificates = true }
};

// 初始化会话
var endpointUrl = "opc.tcp://127.0.0.1:4840";
var session = await Session.Create(config, new ConfiguredEndpoint(null, 
    new EndpointDescription(endpointUrl)), false, "", 60000, null, null);
上述代码初始化客户端应用,并连接到本地运行的 OPC UA 服务器,超时设置为 60 秒。

读取节点数据

连接成功后,可读取指定节点值:
// 读取节点值示例
var nodeId = NodeId.Parse("ns=2;s=Temperature");
var value = await session.ReadValueAsync(nodeId);
Console.WriteLine($"Current Temperature: {value}");
功能对应类/方法
会话管理Session.Create()
数据读取session.ReadValueAsync()
订阅监控MonitoredItem.SubscribeDataChange()
该技术栈为构建智能工厂中的实时数据采集系统提供了坚实基础。

第二章:OPC UA 基础与 C# 集成环境搭建

2.1 OPC UA 核心架构解析与工业 4.0 关联性

服务导向架构(SOA)设计
OPC UA 采用服务导向架构,将数据访问、报警与事件、历史数据等能力封装为标准化服务。这种松耦合设计使不同厂商设备可基于统一接口交互,支撑工业 4.0 中的灵活集成需求。
分层通信模型
其架构分为三层:安全模型、通信协议和信息模型。其中,安全模型支持加密与身份验证,保障跨企业边界的可信数据交换。

// 示例:创建 OPC UA 安全通道
var channel = new SecureChannel();
channel.Open("opc.tcp://server:4840", SecurityPolicy.Basic256Sha256);
上述代码建立一个使用 Basic256Sha256 加密策略的安全通信通道,确保传输过程中的机密性与完整性。
信息建模能力
OPC UA 支持自定义对象与变量类型,通过节点树表达复杂设备结构,实现语义互操作,是数字孪生系统构建的关键支撑技术。

2.2 使用 .NET Standard 构建跨平台 OPC UA 客户端

为了实现工业自动化系统中的跨平台通信,采用 .NET Standard 成为构建统一 OPC UA 客户端的理想选择。它允许代码在 Windows、Linux 和 macOS 上共享,同时兼容 .NET Framework 与 .NET Core/5+ 运行时。
客户端初始化流程
创建 OPC UA 客户端需配置端点地址与安全策略:
var channel = new TransportChannel(new Uri("opc.tcp://192.168.1.100:4840"), SecurityPolicy.None);
await channel.ConnectAsync();
上述代码建立与 OPC UA 服务器的非加密连接。其中 SecurityPolicy.None 表示不启用安全策略,适用于局域网内调试环境。生产环境建议使用 Basic256Sha256 等加密策略以保障数据完整性与机密性。
跨平台依赖管理
通过 NuGet 引用统一库:
  • Workstation.UaClient:轻量级 OPC UA 客户端库,支持 .NET Standard 2.0
  • System.Text.Json:用于配置序列化处理节点数据

2.3 配置 OPCFoundation.NetStandard 开发环境与依赖管理

在开始使用 OPCFoundation.NetStandard 前,需搭建兼容 .NET Standard 2.0 或更高版本的开发环境。推荐使用 Visual Studio 2022 或 Visual Studio Code 搭配 C# 插件进行开发。
项目初始化与 NuGet 依赖引入
通过 NuGet 包管理器安装核心库:
<PackageReference Include="Opc.UaFx.Client" Version="2.85.0" />
该引用包含 UA 客户端核心功能,支持跨平台运行于 Windows、Linux 及嵌入式设备。
目标框架配置示例
确保项目文件中指定正确的 Target Framework:
<TargetFramework>net6.0</TargetFramework>
.NET 6 提供长期支持并优化了 IoT 场景下的性能表现。
  • 安装完成后,可使用 OpcUaClient 类建立与 OPC UA 服务器的连接
  • 建议启用 nullable 上下文以提升类型安全性

2.4 实现第一个 C# OPC UA 连接与节点读取示例

在工业自动化系统中,OPC UA 是实现设备与应用间安全通信的核心协议。使用 C# 开发 OPC UA 客户端,是集成工业数据的常见方式。
环境准备与库引用
首先通过 NuGet 安装官方 OPC UA SDK:
  • Install-Package Opc.UaFx.Client
该库提供简洁的 API 接口,支持 .NET 6+ 环境下的同步与异步通信。
建立连接并读取节点值
using Opc.UaFx.Client;

var client = new OpcClient("opc.tcp://localhost:4840");
client.Connect();

var value = client.ReadNode("ns=2;s=TemperatureSensor.Data");
Console.WriteLine($"当前温度值:{value}");
上述代码创建一个 OPC UA 客户端,连接至本地服务器(端口 4840),并通过命名空间和节点 ID 读取指定节点数据。其中:
  • ns=2 表示命名空间索引为 2;
  • s=TemperatureSensor.Data 是基于字符串的节点标识符。
断开连接可调用 client.Disconnect(),确保资源释放。

2.5 安全策略配置:Basic256Sha256 与匿名访问对比实践

在 OPC UA 通信中,安全策略的选择直接影响系统的机密性与可用性。Basic256Sha256 提供基于 SHA-256 哈希和 AES-256 加密的强安全性,适用于高敏感数据场景。
安全策略配置示例
<UserTokenPolicy>
  <SecurityPolicyUri>http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256</SecurityPolicyUri>
  <TokenType>Anonymous</TokenType>
</UserTokenPolicy>
该配置启用 Basic256Sha256 加密策略,同时允许匿名访问。加密保障传输层安全,而匿名机制降低客户端接入复杂度。
对比分析
策略类型加密强度身份验证适用场景
Basic256Sha256 + 匿名高强度无测试环境、内部低风险网络
Basic256Sha256 + 用户令牌高强度有生产系统、关键设施
实际部署中,应在安全与便利间权衡,优先保障认证完整性。

第三章:C# 中 OPC UA 核心通信机制深入

3.1 同步与异步读写操作的性能对比与最佳实践

在高并发系统中,同步与异步I/O对性能影响显著。同步操作简单直观,但会阻塞线程直至完成,限制吞吐量。
典型异步读取示例(Go语言)
package main

import (
    "fmt"
    "net/http"
    "sync"
)

func fetchURL(url string, wg *sync.WaitGroup) {
    defer wg.Done()
    resp, err := http.Get(url)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println("Fetched:", resp.Status)
    resp.Body.Close()
}

// 使用:go fetchURL("https://example.com", &wg)
上述代码通过 goroutine 实现非阻塞请求,sync.WaitGroup 管理协程生命周期,显著提升并发效率。
性能对比分析
模式吞吐量延迟资源消耗
同步低高线程密集
异步高低事件驱动
最佳实践建议:I/O密集型任务优先使用异步模型,结合连接池与超时控制,避免资源泄漏。

3.2 订阅机制实现高效数据变更通知(DataChangeNotification)

在分布式系统中,实时感知数据变更是提升响应效率的关键。通过订阅机制,客户端可监听特定数据节点的变更事件,避免频繁轮询带来的资源浪费。
核心实现逻辑
基于观察者模式,服务端在数据变更时主动推送通知至已注册的客户端。以下为使用Go语言实现的简单事件订阅示例:

type DataChangeNotifier struct {
    subscribers map[string]chan string
    mutex       sync.RWMutex
}

func (n *DataChangeNotifier) Subscribe(key string) <-chan string {
    n.mutex.Lock()
    defer n.mutex.Unlock()
    ch := make(chan string, 10)
    n.subscribers[key] = ch
    return ch
}

func (n *DataChangeNotifier) Notify(key, value string) {
    if ch, ok := n.subscribers[key]; ok {
        select {
        case ch <- value:
        default: // 防止阻塞
        }
    }
}
上述代码中,subscribers 维护了键到通道的映射,Notify 方法在数据更新时向所有监听该键的通道发送新值。使用带缓冲的通道和非阻塞发送确保高并发下的稳定性。
应用场景与优势
  • 配置中心动态刷新
  • 缓存一致性维护
  • 微服务间状态同步

3.3 处理复杂数据类型与自定义结构体序列化传输

在分布式系统中,传输自定义结构体时需确保其可序列化。Go语言通过encoding/json和encoding/gob等包支持结构体编码。
结构体标签控制序列化字段
使用结构体标签可精细控制JSON输出字段名与忽略空值:

type User struct {
    ID     int    `json:"id"`
    Name   string `json:"name"`
    Email  string `json:"email,omitempty"`
}
该结构体在序列化时,字段名将转换为小写JSON键,且Email为空字符串时不会输出,减少网络传输开销。
嵌套结构与接口类型的处理
对于包含切片、指针或接口的复杂类型,需确保所有层级均可被编码。例如:

type Order struct {
    Items []Product `json:"items"`
    Meta  interface{} `json:"meta,omitempty"`
}
当Meta传入基础类型或map时,JSON编码器能自动处理,但需警惕循环引用导致的编码失败。

第四章:工业场景下的实战应用技巧

4.1 构建高可用 OPC UA 客户端服务并实现断线重连

在工业自动化系统中,OPC UA 客户端需具备高可用性以应对网络波动或服务器重启等异常情况。实现稳定连接的关键在于建立自动重连机制与会话恢复策略。
重连机制设计
采用指数退避算法控制重连频率,避免频繁请求导致资源浪费。当连接中断时,客户端按间隔时间逐步增加重试周期。
代码实现示例
func (c *OPCUAClient) ConnectWithRetry(ctx context.Context) error {
    ticker := time.NewTicker(initialDelay)
    defer ticker.Stop()

    for {
        select {
        case <-ctx.Done():
            return ctx.Err()
        case <-ticker.C:
            if err := c.connect(); err == nil {
                log.Println("Connected successfully")
                return nil
            }
            ticker = time.NewTicker(min(delay*2, maxDelay))
        }
    }
}
上述代码通过定时器实现指数退避重连。connect() 尝试建立会话,失败后延迟递增,最大不超过 maxDelay,确保系统稳定性。
会话状态管理
使用状态机维护连接生命周期,区分“已连接”、“断开”、“重连中”等状态,确保在故障恢复后能重新订阅数据变更。

4.2 多线程环境下会话管理与资源释放陷阱规避

在高并发场景中,多线程共享会话资源极易引发竞态条件和资源泄漏。若未正确同步访问控制,多个线程可能同时操作同一会话实例,导致状态错乱或连接句柄未及时关闭。
使用同步机制保护共享会话
通过互斥锁确保同一时间仅一个线程操作会话资源:
var mu sync.Mutex
func processSession(session *Session) {
    mu.Lock()
    defer mu.Unlock()
    session.UpdateTimestamp()
    session.Commit()
}
上述代码中,sync.Mutex 防止并发修改会话状态,defer mu.Unlock() 确保锁的及时释放,避免死锁。
资源释放的延迟注册模式
采用 defer 机制注册清理逻辑,保障即使发生 panic 也能释放资源:
  • 每个线程独立持有资源引用
  • 使用 defer session.Close() 延迟释放
  • 避免在循环中遗漏关闭连接

4.3 结合 ASP.NET Core 暴露 OPC UA 数据为 Web API

在工业物联网场景中,将 OPC UA 服务器中的实时数据通过 Web API 对外暴露,是实现跨平台数据集成的关键步骤。ASP.NET Core 凭借其高性能与模块化架构,成为理想的服务承载框架。
服务端集成 OPC UA 客户端
使用 OPC.UA.Core SDK 在 ASP.NET Core 后台服务中建立与 OPC UA 服务器的连接:

var config = new ApplicationConfiguration {
    ApplicationName = "WebApiOpcClient",
    SecurityConfiguration = new SecurityConfiguration { AutoAcceptUntrustedCertificates = true }
};
var endpointUrl = "opc.tcp://127.0.0.1:4840";
var channel = Session.Create(config, null, new EndpointDescription(endpointUrl)).Result;
上述代码初始化 OPC UA 客户端会话,建立与本地 OPC UA 服务器的安全通信通道。其中 AutoAcceptUntrustedCertificates 适用于开发环境,生产环境应配置可信证书。
定义数据访问接口
通过控制器封装节点读取逻辑,对外提供 RESTful 接口:
  • GET /api/opcua/value?nodeId=ns=2;s=Temperature 返回指定节点的当前值
  • 采用轮询机制定时从 OPC UA 服务器读取数据
  • 利用依赖注入管理会话生命周期

4.4 日志记录、异常监控与生产环境部署优化建议

结构化日志输出
在生产环境中,使用结构化日志(如JSON格式)能显著提升日志的可解析性。以下为Go语言中使用log/slog输出结构化日志的示例:
slog.Info("database query executed", 
    "duration_ms", 150, 
    "rows_affected", 23,
    "query", "SELECT * FROM users")
该日志格式便于ELK或Loki等系统自动提取字段,实现高效检索与告警。
异常监控集成
推荐接入Sentry或Prometheus实现异常捕获与指标暴露。通过中间件自动上报HTTP服务错误:
  • 捕获panic并生成错误追踪ID
  • 记录堆栈信息与请求上下文
  • 对接告警通道(如企业微信、PagerDuty)
部署优化策略
优化项建议配置
资源限制CPU: 500m, Memory: 512Mi
就绪探针延迟10秒,间隔5秒
日志保留按天切割,保留7天

第五章:总结与展望

技术演进中的架构选择
现代后端系统在微服务与单体架构之间需权衡取舍。以某电商平台为例,其订单模块从单体剥离为独立服务后,通过gRPC实现跨服务通信,显著降低接口延迟。关键代码如下:

// 订单服务定义
service OrderService {
    rpc CreateOrder(CreateOrderRequest) returns (CreateOrderResponse);
}

// 请求结构体
message CreateOrderRequest {
    string user_id = 1;
    repeated Item items = 2;
    double total_amount = 3;
}
可观测性实践方案
分布式系统依赖完善的监控体系。以下为某金融系统采用的核心指标采集配置:
指标类型采集工具上报频率告警阈值
HTTP延迟(P99)Prometheus15s>800ms
错误率DataDog10s>1%
JVM堆内存OpenTelemetry30s>85%
未来技术融合方向
  • 边缘计算与Kubernetes的深度集成,支持低延迟IoT场景
  • 基于eBPF的无侵入式性能分析,已在部分云原生环境中试点
  • AI驱动的日志异常检测,替代传统规则引擎
[客户端] → HTTPS → [API网关] → [服务网格] → [微服务集群] ↓ [分布式追踪链路] → Jaeger ↓ [指标聚合] → Prometheus → AlertManager
使用C#实现OPC-UA服务端 C#实现OPC-UA服务端前言引入Nuget包初始化节点树实时刷新数据动态添加节点客户端读取历史数据客户端写入数据启动服务端总结 前言 最近接手了一个项目,做一个 OPC-UA 服务端?刚听到这个消息我是一脸懵,发自灵魂的三问“OPC-UA是什么?”、“要怎么做?”、“有什么用?”。 我之前都是做互联网相关的东西,这种物联网的还真是第一次接触。没办法只能打开我的浏览器四处搜索,结果百度了一圈下来发现都是要么是介绍OPC-UA是什么的,要么就是OPC-UA客户端,反正服务端相关的内容是找了半天都没找到,但这是 阅读详情

相关推荐

PLC与机器视觉职业选择:本质、前景与复合技能构建

在工业自动化领域,可编程逻辑控制器(PLC)作为稳定可靠的控制中枢,负责执行确定的逻辑控制与实时信号处理,是制造业设备运行的基石。机器视觉则通过图像采集与算法分析,赋予机器感知与识别能力,实现定位、测量与检测等智能化任务。两者在智能制造体系中协同工作,PLC确保流程稳定执行,机器视觉提供决策依据,共同提升生产质量与效率。从职业发展看,PLC工程师需求广泛,经验积累是关键;机器视觉工程师则聚焦高端应用,算法能力驱动高薪。掌握PLC控制与机器视觉的复合型人才,能打通设备控制与智能感知环节,在自动化集成、缺陷检测

weixin_34187862的博客 363

C#操作OPCUA

C# 使用OPCUA与PLC进行通信

dadaniugege的博客 7585

C# OPCUA 读写结构体

OPCUA读写复杂结构体

weixin_42415843的博客 8539

C#实现访问OPC UA服务器

OPC UA服务器支持三种认证方式,分别是匿名认证、用户认证和证书认证。其中匿名认证安全等级最低,访问不做任何校验。用户认证访问时,OPC UA客户端需要提供用户名及密码认证,只有用户名和密码正确才允许访问。而证书认证,首先需要将客户端公钥证书提供给OPC UA服务器。然后客户端使用其公钥和私钥证书认证,认证成功后才能访问。首先通过NuGet引入最新版OpcUaHelper。订阅节点值发生改变,就会执行订阅事件。...

我的地盘我做主 9222

C# 使用NetStandard.Opc.Ua读写OPC UA数据

OPCFoundation.NetStandard.Opc.Ua是OPC基金会发布的开源OPC UA包,提供Client读写库方便读写OPC 服务器数据。使用时有几点需要注意。

yuming的专栏 1万+

C# 读写opc ua服务器,浏览所有节点,读写节点,读历史数据,调用方法,订阅,批量订阅操作...

OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术难以满足日益复杂的环境,在可扩展性,安全性,跨平台性方面的不足日益明显,所以OPC基金会在几年前提出了面向未来的架构设计的OPC 统一架构,简称OPC UA,截止目前为止,越来越多公司将OPC UA作为开放的数据标准,在未来工业4.0行业上也将大放异彩。 在OPC UA的服务器端。会公开一...

weixin_30708329的博客 5010

【OPC UA】使用C#读取OPC UA电液控数据

当服务器使用OPC UA协议对外发布数据时,可以利用文中介绍的方法,读取服务器数据

song593312107的博客 4434

C#通过OPCUA链接WinCC(C#作为客户端《应用篇》)

C#通过OPCUA链接WinCC(C#作为客户端《应用篇》)

weixin_37928884的博客 3780

C# 读写opc ua服务器

最近了解了一下OPC,上网查了很多资料,整理一下读写操作的代码,以防以后忘了找起来麻烦。 首先先添加opcuahelper组件 其次,再编写OPCUAHelper类 using Opc.Ua; using Opc.Ua.Client; using OpcUaHelper; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography.X509Certi.

luan0125的博客 1万+

C#快速开发OPCUA服务器

为方便演示,此时创建一个控制台应用程序。第三方dll(C++编写的库opcsrv.dll,他人实现)。第一步:创建OpcUa服务器。第三步:运行OpcUa服务器。

低码开发 2135

OPC通信从入门到精通_1_OPC基础知识及简单C#程序编写(OPCDA,OPCUA简介;OPC通信数据流框架图;C#程序编写)

ModbusTCP通信是采用直接方式进行通信,用OPC的方式如何去做呢?PLC作为ModbusTCP服务器,用KepServer作为ModbusTCP客户端,同时作为OPC服务器,PC作为OPC客户端新建项目,加载dll库(利用COM技术写的)添加引用,查看到其中包含了众多方法其中OPCGroups继承于IOPCGroups接口。

分享学习成长历程,Winter is coming! 1万+

【Opc Ua】C# WPF基于 Opc.UaFx.Client 的客户端Demo

C# WPF基于 Opc.UaFx.Client 的客户端 订阅KEPServerEx6 服务器节点数据

cxyhjl的博客 2686

从 C# 访问 OPC 服务器数据:OPC UA 与 OPC DA 的比较

OPC DA 是 OPC 协议的最早版本,主要用于实时数据交换。它在 1996 年由 OPC 基金会发布,广泛应用于 Windows 环境中的工业自动化设备与控制系统之间的通信。OPC DA 提供了一个标准化的数据访问接口,使得不同的设备和软件能够以一致的方式交换数据。实时数据访问:OPC DA 主要用于获取实时数据(如传感器值、设备状态等)。Windows 环境:OPC DA 基于 COM/DCOM 技术,主要在 Windows 系统上运行。简易性和稳定性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3033

OpcUA通讯协议测试和使用方法(C#版本)

介绍了如何使用OPCUA通讯的使用测试场景,以及借助现有的工具快速开发调试,不介绍OPC_UA的原理。

weixin_43642471的博客 1万+

5步轻松上手C# OPC UA应用开发:从零开始的详细指南

OPC UA是一种由OPC基金会开发的工业通信标准。它不仅支持设备之间的数据交换,还提供了安全性和互操作性的保障。OPC UA使用了一种基于服务的架构,使得不同厂商的设备可以无缝通信。通过今天的介绍,相信你已经对如何使用C#开发OPC UA应用有了全面的了解。无论是客户端还是服务器,OPC UA都为我们提供了强大的工具和灵活的机制。希望这篇文章能帮助你在未来的开发中更加得心应手,让应用在工业自动化领域大放异彩!如果你有任何问题或建议,欢迎在评论区留言,让我们一起交流,共同进步!

java专栏 1720

C#实现OPCUA协议读取设备状态数据的实践指南

本文还有配套的精品资源,点击获取 简介:本示例展示了如何使用C#语言和OPCUA协议来读取设备状态数据。介绍了OPCUA的基本概念、C#在工业应用开发中的角色、VS2017作为开发环境、OPCUA客户端与服务器交互、利用SDK实现通信以及读取数据的详细步骤。强调了安全性、异常处理、测试和调试的重要性,并描述了代码结构的关键部分。这为开发者提供了构建高效且安全的设备通信应用程...

weixin_29859471的博客 2852

OPCUA学习

OPCUA github地址是:https://github.com/OPCFoundation/UA-.NETStandard 我这里服务端用的是kepserver 破解版关注微信公众号dotNet工控上位机可以搞到 下面是我测试用例ConsoleReferenceClient的学习心得: Program类的注释: /* ======================================================================== * Copyrigh

weixin_42415843的博客 3016

计算机组成原理实验:手把手教你用模拟程序实现中断机制(附完整代码)

本文通过一个计算机组成原理模拟实验,手把手教你从零实现一个可工作的中断系统。实验详细演示了如何配置中断控制器、编写主程序与中断服务程序,并观察中断响应、现场保护和恢复的全过程,深入解析了中断原理的核心机制。

471

OPC UA使用opc.uafx.advanced开发客户端、服务端

OPC UA使用opc.uafx.advanced开发客户端、服务端

花开莫与流年错_的博客 2497

STM32CubeMX HAL实战:JY901S串口数据解析与姿态解算

本文详细介绍了如何使用STM32CubeMX HAL库实现JY901S六轴姿态传感器的串口数据解析与姿态解算。从基础硬件连接到USART3配置,再到数据接收状态机实现和传感器校准方法,最后深入讲解互补滤波与Mahony滤波算法在姿态解算中的应用。通过实战代码演示,帮助开发者快速掌握无人机、机器人等项目中关键姿态数据处理技术。

weixin_28703489的博客 432

Unity 数字孪生笔记1 工具介绍

前言 工欲善其事必先利其器 流程思考 数字孪生本质上一种基于实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果。 那么这个流程就很简单了。 整个流程分为三块:数据来源-》数据分析-》数据展示 输入数据 首先我们需要考虑我们能拿到什么。第一,实际物体的三维数据从哪里来,第二,实际数据怎么获取到。 模型数据 工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个

Thissky的专栏 1万+
上一篇: C++开发效率翻倍的关键(nlohmann/json 3.11最新特性实战指南)
下一篇: 揭秘PHP 8.2枚举类型:如何高效实现JSON序列化与反序列化
LearnPlex
博客等级 码龄1年 150粉丝 2159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值