自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

追赶时代的博客

这是代码的时代,这是大繁荣的时代,扎根代码,寻求真理与一切。

  • 博客(671)
  • 收藏
  • 关注

原创 程序员转向人工智能

《程序员转型AI学习路线速成指南》针对程序员转AI的核心建议:1)基础补足数学(线性代数/概率/优化)与Python工具链(PyTorch/Scikit-learn);2)快速掌握机器学习经典算法和深度学习核心架构(CNN/Transformer);3)选择CV/NLP等细分领域实战,通过Kaggle竞赛和开源项目积累经验;4)突出工程化优势,侧重模型部署能力。建议6个月分阶段突破,利用编程背景跳过基础语法,直接进入项目实践。转型关键在于"学习-实践"闭环,重点培养AI问题解决能力而非死磕理论。

2025-06-12 08:57:31 663

原创 创建型设计模式

本文介绍了五种主要的创建型设计模式及其C++实现:1) 单例模式确保类唯一实例;2) 工厂方法模式通过子类决定实例化对象;3) 抽象工厂模式创建相关对象家族;4) 建造者模式分离复杂对象构建与表示;5) 原型模式通过复制创建新对象。每种模式都包含角色关系图和完整的C++代码示例,展示了线程安全单例、工厂方法实现、抽象工厂应用、建造者流程和原型克隆等关键技术实现。这些模式为对象创建提供了灵活、可复用的解决方案。

2025-06-11 21:14:46 247

原创 ACS的ExtendedSegmentArc1 方法说明

ExtendedSegmentArc1方法用于机器人运动控制中圆弧路径的规划,支持同步/异步调用。该方法需预先定义运动轴,通过圆心坐标、终点坐标和旋转方向(顺时针/逆时针)确定圆弧轨迹。关键参数包括速度控制标志(段末速度需小于当前速度)、20ms时间精度以及用户变量同步功能(支持掩码操作)。调用时需确保运动缓冲区可用,错误信息将返回至Error对象。异步版本需结合ACSC_WAITBLOCK使用,适用于实时性要求高的场景。

2025-06-11 17:32:31 241

原创 ACS启动启动多轴扩展分段运动的函数ExtendedSegmentedMotionV2

摘要:acsc_ExtendedSegmentedMotionExtV2函数用于多轴扩展分段运动控制,取代旧版函数。该函数包含20余个参数,支持多种运动标志(ACSC_AMF_*)控制运动特性,如速度设定、拐角处理、坐标系选择等。关键参数包括轴阵列、起始点坐标、各类速度值、偏差/半径/长度等几何约束,以及外部循环和同步输出配置。特别说明:未指定分段数组时将分配50段缓冲区;外部循环同步需配合输出端口;运动延迟分辨率固定50μs,最大延迟受控制器周期限制。该函数提供了精细的运动轨迹控制能力。

2025-06-11 16:37:50 14

原创 C#简单线程启动的几种方法总结

在C#中创建新线程执行代码的几种方法:1.传统Thread类适用于所有版本,但底层;2.推荐使用Task(.NET4.0+),基于线程池,支持异步;3.ThreadPool适合短期任务;4.BackgroundWorker专用于UI更新;5.Parallel.Invoke(.NET6+)适合并行执行。其中Task.Run是最推荐的简洁高效方式,除非需要特殊线程控制。示例代码展示了各种方法的基本用法。

2025-06-11 15:11:28 360

原创 Aerotech系列(2)Aerotech.A3200.Tasks

本文档详细介绍了A3200控制器编程接口Task类和方法结构,主要包括LoadedProgram(内存中加载的程序)、Program(执行中的程序)、Task(任务控制)三大核心类及其相关组件。LoadedProgram提供程序加载/卸载功能,Program控制程序执行(运行/停止/调试),Task管理任务状态和执行模式。文档包含C++和C#示例代码,展示了程序控制、队列模式操作和错误处理等典型用法。支持的功能包括:程序关联任务、缓冲执行、调试控制、任务状态监控(空闲/错误等)、队列状态管理以及变量容器访问

2025-06-09 21:03:26 778

原创 C# 命令系统的使用

C#命令系统(特别是WPF框架)通过ICommand接口实现UI操作与业务逻辑的解耦,核心组件包括命令接口、路由机制和绑定系统。系统通过CanExecute检查命令可用性,Execute执行操作,并支持状态变更通知。典型实现方式包括自定义RelayCommand、ViewModel命令绑定和内置命令使用,具有关注点分离、状态自动管理、高重用性和易测试等优势。高级应用场景涵盖参数传递、输入手势绑定和复合命令,是构建可维护WPF应用的关键架构模式。

2025-06-06 14:03:01 366

原创 C#中的路由事件(Routed Events)

WPF路由事件是WPF特有的事件系统,允许事件在可视化树中传递,包括冒泡(从源向根)、隧道(从根向源)和直接三种路由方向。其实现基于EventManager、RoutedEvent和RoutedEventArgs类,通过事件路由过程让多个元素处理同一事件。典型应用包括在父容器中统一处理子元素事件、自定义控件事件冒泡以及输入事件处理等场景。路由事件与CLR事件的关键区别在于传播方式和处理机制,它为WPF提供了强大的交互能力基础。

2025-06-06 13:48:52 907

原创 C#中的CLR属性、依赖属性与附加属性

CLR属性是C#中的关键特性,提供封装性、访问控制和验证逻辑。编译后转换为get/set方法,自动属性进一步简化语法。相比依赖属性,CLR属性存储直接,而依赖属性支持绑定、动画等高级功能。依赖属性通过DependencyObject实现值继承和优先级系统,附加属性则允许跨类扩展功能。两者是XAML技术的核心,适用于控件开发和数据绑定等场景。CLR属性保持了简洁语法与灵活控制的平衡,是面向对象编程的基础设施。

2025-06-06 11:49:51 973

原创 C# 中的 IRecipient

摘要:IRecipient<TMessage>是.NET(MVVM Toolkit)中实现松耦合消息传递的核心接口,用于跨组件通信。通过IMessenger(如WeakReferenceMessenger)注册/发送消息,接收方实现Receive方法处理消息。典型应用包括ViewModel间通信、View与ViewModel解耦,支持多消息接收和条件处理。最佳实践建议使用弱引用、明确消息类型、及时取消注册,并注意性能开销。该机制为MVVM架构提供了高效、解耦的交互方案。

2025-06-05 20:03:04 677

原创 ObservableRecipient与ObservableObject

摘要:CommunityToolkit.Mvvm中的ObservableObject和ObservableRecipient是MVVM核心基类。ObservableObject实现INotifyPropertyChanged,支持属性变更通知,适用于简单数据绑定;ObservableRecipient继承前者并扩展消息传递(IMessenger),支持跨ViewModel通信和生命周期管理(IsActive),适合复杂场景。

2025-06-05 16:39:31 558

原创 C#中的依赖注入Dependency Injection, DI

摘要:C#依赖注入(DI)是.NET Core/.NET5+的核心功能,通过IServiceCollection管理服务生命周期(Transient、Scoped、Singleton)。配置步骤包括:1)定义接口与实现类;2)在Program.cs注册服务;3)通过构造函数注入。支持Web/非Web应用(如WPF),可通过AddTransient/Scoped/Singleton注册,并解决循环依赖等问题。典型用法包含多实现注入、工厂模式及生命周期管理注意事项,显著提升代码解耦和可测试性。

2025-06-04 15:30:12 479

原创 System.Threading.Timer 和 System.Timers.Timer

.NET中System.Threading.Timer与System.Timers.Timer的核心区别:Threading.Timer采用回调机制,轻量高效,适合后台任务,需手动管理生命周期;Timers.Timer基于事件驱动,支持UI线程绑定(WinForms),通过Start/Stop控制,更适合事件处理场景。Threading.Timer需注意异常处理和间隔调整,Timers.Timer需设置AutoReset属性。

2025-06-04 11:41:11 531

原创 ACS SPiiPlus 运动控制器的核心托管接口

ACS的核心API 类分析与应用

2025-05-30 10:42:56 519

原创 现场总线(Fieldbus)的配置映射FieldbusMappings 类

FieldbusMappings类管理现场总线通信配置,支持Hilscher卡、Modbus主/从站等多种连接方式。核心功能包括XML配置的序列化/反序列化、名称唯一性验证和变更事件通知。类结构包含多个映射集合,通过泛型接口INamedCollection统一管理。初始化时从XML文件加载配置,变更时通过configurationChangedHandler持久化到XML。名称验证CheckNameExists方法确保变量名合法且不重复,支持多种现场总线变量类型。

2025-05-29 17:24:02 792

原创 Aerotech系列(1)系统架构

Aerotech架构

2025-05-28 20:33:40 1209

原创 高精度模拟量控制命令集

高精度模拟量控制命令集类的设计

2025-05-28 11:58:51 397

原创 多任务控制系统的中央管理器

TasksCollection类是工业控制系统中任务管理的核心组件,实现了多任务状态监控、批量操作和资源调度。其架构采用装饰器模式封装数据,支持TaskMask位运算进行任务组操作。优化建议包括:增强线程安全(添加锁机制)、性能优化(状态缓存)、错误恢复(重试机制)及关键问题修复(掩码运算溢出防护)。扩展功能建议添加任务优先级调度和实时监控事件。典型应用场景包括紧急停止、状态监控和负载均衡。性能优化方案含批量读取加速和结构体布局优化,满足工业控制系统对实时性(延迟<10ms)、可靠性和可扩展性的严苛要求。

2025-05-28 11:19:41 316

原创 自动加工脚本程序变量管理器

数控系统程序变量管理器ProgramVariableCollection的核心功能与优化建议。该组件负责动态管理任务程序变量和系统堆栈变量,通过与编译器集成实现变量解析。文章从架构设计、工业场景优化、问题修复、性能优化等维度进行深入分析,提出线程安全增强、缓存策略、批量操作等改进方案。特别针对资源泄漏、数组越界等隐患提供修复方案,并给出G代码监控、刀具补偿等典型应用场景。优化后的设计可满足工业环境对实时性(访问延迟<10μs)、可靠性和可维护性的严苛要求,适用于数控系统和机器人控制器等实时控制场景。

2025-05-28 11:01:04 616

原创 工业变量集合模板类VariableCollection<TType>实现

VariableCollection<TType>是一个工业控制系统中的强类型变量集合类,主要用于管理硬件信号变量。它支持通过名称和索引两种方式访问变量,并提供高性能的批量读写操作。类内部通过委托模式实现多协议适配,可兼容Modbus、Profinet等工业协议。关键特性包括类型安全、双重索引访问(名称/地址)、批量操作优化通信效率、动态容量管理和上下文隔离。典型应用场景包括模拟量采集和数字量输出控制,能显著提升工业自动化软件的确定性和性能。该类还预留了缓冲池技术、SIMD加速等优化空间。

2025-05-27 11:26:44 963

原创 工业控制系统中输入/输出信号的类型化容器类实现

本文解析了工业控制系统中InputOutputContainer<TType>类的设计与实现,重点阐述了其在IO信号管理中的核心作用。该类采用输入/输出通道严格隔离的设计,通过泛型确保类型安全,支持批量读写操作提升性能(吞吐量可提升10-100倍)。其特点包括:标准化信号命名(符合IEC61131-3)、委托机制实现硬件解耦、线程安全保证等,适用于模拟量监控(如温度传感器)和数字量控制(如急停按钮)等工业场景。文中还提出了预分配缓冲区、信号别名服务等优化建议,体现了工业自动化软件对确定性、可靠性和高性能

2025-05-27 11:01:52 281

原创 工业控制变量系统的神经中枢CoreVariableHelper类

CoreVariableHelper类在工业控制系统中的核心作用,它作为变量管理的中枢模块,实现了三大关键功能:1)变量元数据解析,连接变量名与硬件地址;2)类型系统转换,桥接PLC与C#数据类型;3)上下文路由,按变量类型分配控制环境。类中设计了复合键映射机制和静态构造函数,支持200+种工业协议数据类型的转换,包括Modbus和现场总线信号处理。该实现采用工厂模式、委托注入等设计模式,通过批量处理、零分配设计和编译器句柄池优化性能,确保实时性要求(响应时间<50μs)。

2025-05-26 16:36:44 549

原创 工业控制系统中变量的抽象基类Variable抽象类

本文解析了工业控制系统中Variable抽象类的设计架构。该基类通过委托模式实现硬件访问抽象化,支持多上下文变量管理(全局/任务/IO等),包含核心字段如硬件标识结构体、读写委托等。其特性包括类型安全机制(模拟量/数字量等)、运行时行为优化(减少装箱开销)和工业协议兼容性。典型应用场景展示了对现场总线信号的监控实现,并提出了线程安全锁、事件通知等改进建议。该设计体现了工业控制系统对实时性、可靠性和扩展性的核心要求,是变量抽象层的经典范式。

2025-05-26 15:47:15 400

原创 工业现场总线Fieldbus变量的统一管理容器设计

FieldbusVariableContainer类是一个工业现场总线变量管理容器,支持Modbus TCP(主/从)、驱动器Modbus和Hilscher协议。采用延迟加载和缓存机制优化性能,通过分层架构实现对不同协议变量的统一访问。核心功能包括变量解析、连接信息管理及数组变量处理,严格遵循工业协议规范。设计亮点包括协议抽象、动态扩展和资源安全管理,适用于工业控制场景,建议后续增加异步支持和协议扩展能力。

2025-05-26 15:02:34 681

原创 虚拟输入输出VirtualIO 类的实现

VirtualIO类是工业控制系统中虚拟IO信号的管理核心,提供二进制(bool)和寄存器(double)两类信号处理。二进制信号支持2048点分块读写,通过ChunkBinaryRead/Write优化性能;寄存器信号支持896个数组批量操作。类设计采用硬件抽象模式,通过委托将原生API与业务逻辑解耦,包含索引器快速定位、异常统一处理等工业级特性。典型应用包括PLC信号交互、模拟量处理等场景,其固定内存分配和批量操作策略有效保障了实时性要求。

2025-05-26 14:30:24 838

原创 功能“递归模式”在 C# 7.3 中不可用,请使用 8.0 或更高的语言版本的一种兼容处理方案

摘要:本文展示了C#中控制参数创建器的两种实现方式,分别针对C# 8.0+和早期版本。通过条件编译符号(CSHARP_8_OR_NEWER)隔离不同语法:C# 8.0+使用简洁的switch表达式,而C# 7.3采用传统switch-case语句。项目配置建议在.csproj文件中自动或手动设置语言版本,确保语法兼容性。这种实现方式既保持了功能一致性,又提供了版本适配灵活性,使代码能平滑过渡到新版本语法。

2025-05-26 11:27:44 584 1

原创 控制器参数模板类ControllerParameter<T>的C#实现

本文解析了ControllerParameter<T>类的设计与实现。这是一个内部泛型类,继承自TypedParameter<T>并约束T必须实现IComparable接口,主要用于封装与底层控制器的参数交互。类中包含两个构造函数和核心方法getValue()与setValue(),实现了类型安全的参数读写功能,支持字符串、整数、浮点数等多种数据类型。设计上注重性能优化(如预分配字符串缓冲区)和异常处理,通过抽象底层细节为上层提供简洁的接口。典型应用场景如温度控制器参数的读写操作,体

2025-05-26 10:23:58 428

原创 Linux 系统常用核心库----用户态程序运行的基石

Linux 系统(特别是 x86 架构)的核心动态链接库

2025-05-25 08:58:57 487

原创 用于控制器数据采集和管理的核心类Data

Data 类是一个用于数据采集和管理的核心类,主要用于控制器的诊断数据收集、配置和检索。其主要功能包括数据采集配置、采集控制(立即采集、连续采集、停止采集)、数据检索(同步和带进度回调)以及诊断数据获取。关键组件包括 ContinuousDataCollectionPoller(处理连续数据采集)、AxesDiagPacketRetriever(获取轴诊断数据)和 DataCollectionStatus(封装采集状态)。代码依赖 Wrapper 类与底层硬件交互,并通过 ExceptionResolver

2025-05-23 11:44:35 290

原创 数据流图DFD 和 实体关系图ERD

数据流图(DFD)和实体关系图(ERD)是系统设计中的两种重要工具,分别用于描述数据流动和数据结构。DFD通过外部实体、处理过程、数据流和数据存储等元素,动态展示系统的功能流程,适用于需求分析和系统设计阶段,能够直观地揭示业务流程和数据交互。ERD则通过实体、属性和关系,静态描述数据结构,是数据库设计的基础,能够清晰定义数据模型和约束。以图书馆管理系统为例,DFD用于分析借书流程,展示从读者请求到图书借出的步骤,而ERD用于定义读者、图书和借阅记录之间的关系,便于数据库表的设计。

2025-05-23 11:29:54 71

原创 架构师日常使用工具

架构师工具

2025-05-21 17:47:20 61

原创 CMMI(能力成熟度模型集成)详解及5个级别案例

软件成熟度模型CMMI

2025-05-21 16:42:12 116

原创 在线电商平台系统的“4+1”视图模型应用

4+1视图

2025-05-21 16:33:53 121

原创 RUP的9个核心工作流在电商平台项目中的拆解

本文详细拆解了RUP(Rational Unified Process)在电商平台项目中的9个核心工作流,包括业务建模、需求、分析与设计、实现、测试、部署、项目管理、配置与变更管理、环境。每个工作流都细化了具体操作、角色分工、输入输出和案例细节。

2025-05-21 16:19:21 80

原创 A3200 运动控制系统的核心参数管理类BaseParameters

基本参数管理类

2025-05-21 14:27:50 544

原创 A3200 运动控制系统的全局静态Global类

A3200全局配置静态类

2025-05-20 16:06:59 332

原创 命名常量集合接口INamedConstantCollection<T>实现

INamedConstantCollection<TObject, TName> 是一个泛型接口,旨在定义命名常量集合的基本契约,结合了索引访问和枚举能力。该接口允许通过名称或位置索引访问集合中的元素,并提供了获取元素数量和集合容量的属性。泛型参数 TObject 表示集合中存储的元素类型,而 TName 表示元素名称的类型,且必须实现 IComparable 接口以确保名称可比较。

2025-05-20 15:34:44 348

原创 一个轴信息类AxisInfo实现

AxisInfo 类是一个用于封装和管理运动控制系统中轴信息的类,实现了 INamed<string> 接口。该类通过延迟加载模式优化性能,仅在首次访问时从控制器获取数据,并通过字段缓存已获取的信息。核心属性包括轴编号、名称、类型、伺服速率、最大电流、最大电压、固件版本、FPGA版本、闪存配置状态等。类中使用了异常处理机制和 invalidateData() 方法来清空缓存,强制重新获取数据。AxisInfo 类通过 Controller 对象执行命令和获取参数,适用于获取轴信息、监控轴状态和固件升级检查等

2025-05-20 15:08:22 707

原创 WPF Data Binding 及经典应用示例

DataBinding(数据绑定)是WPF中的核心机制,用于建立UI元素与数据对象之间的连接,实现数据的自动同步。其核心概念包括绑定源(Source)、绑定目标(Target)、绑定路径(Path)和绑定模式(BindingMode)。DataBinding支持多种绑定模式,如OneWay、TwoWay、OneWayToSource和OneTime,确保数据与UI的双向或单向同步。通过XAML语法,开发者可以轻松实现属性绑定、集合绑定、主从绑定、数据转换和命令绑定等操作。

2025-05-19 20:39:34 912

原创 异步委托执行管理器:更新

DelegateSpooler:异步委托执行管理器DelegateSpooler 是一个异步委托执行管理器,核心功能包括委托队列管理、异步任务调度、执行状态跟踪和线程安全控制。它通过管道ID(pipe)组织任务,使用 BeginInvoke/EndInvoke 实现异步执行,并通过锁机制保护共享资源。其设计采用双缓冲任务队列,确保线程安全,并通过后台工作循环持续监控任务状态。DelegateSpooler 适用于硬件控制系统的异步操作和事件聚合处理等场景,但存在内存泄漏和线程池压力等潜在问题。

2025-05-19 16:53:00 715

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除