- 博客(22)
- 收藏
- 关注
原创 ACS运动控制:ACS SPiiPlus .NET库 - C#上位机开发04-.NET Library (Advanced) Demo高级功能
直接发送ACSPL+命令查看命令返回结果调试和测试章节关键知识点掌握程度项目架构Api类、Axis枚举、MotorStates位运算⭐⭐⭐⭐⭐通信连接TCP/IP连接、Transaction命令⭐⭐⭐⭐轴控制⭐⭐⭐⭐⭐运动控制ToPoint(绝对/相对)、Jog、Halt⭐⭐⭐⭐⭐状态监控定时器刷新、位掩码解析⭐⭐⭐⭐I/O控制位操作、端口读写⭐⭐⭐事件处理回调函数、Invoke跨线程⭐⭐⭐⭐缓冲区程序RunBuffer、程序状态⭐⭐⭐通信终端。
2026-03-25 08:47:41
343
原创 ACS运动控制:ACS SPiiPlus .NET库 - C#上位机开发03-.NET Library (Advanced) Demo项目基础
项目名称:.NET Library (Advanced) Demo开发语言:C#目标框架:.NET Framework 4.8平台:x86核心库:ACS.SPiiPlusNET.dll (v2.50.0.26599)ACSC_AXIS_0 = 0, // 或 ACSC_AXIS_XACSC_AXIS_1 = 1, // 或 ACSC_AXIS_YACSC_AXIS_2 = 2, // 或 ACSC_AXIS_ZACSC_AXIS_3 = 3, // 或 ACSC_AXIS_T// ...
2026-03-25 08:45:20
348
原创 ACS运动控制:ACS SPiiPlus .NET库 - C#上位机开发02-Buffer缓冲区管理
│ ACS运动控制器 ││ │ 缓冲区0 (Buffer 0) │ ││ │ │ 程序代码1 │ │ ││ │ │ - 运动控制 │ │ ││ │ │ - 逻辑判断 │ │ ││ │ │ - I/O控制 │ │ ││ │ 缓冲区1 (Buffer 1) │ ││ │ │ 程序代码2 │ │ ││ ... ││ │ 缓冲区63 (Buffer 63) │ │# 标签命名规则:# 1. 必须以_或A-Z开头# 2. 后续可以是字母、数字、下划线# 3. 不区分大小写(内部转换为大写)
2026-03-24 19:17:15
352
原创 ACS运动控制:ACS SPiiPlus .NET库 - C#上位机开发01-绪论
ACS SPiiPlus .NET库是一个功能强大的软件开发工具包(SDK),用于在Windows平台上通过.NET Framework与ACS运动控制器进行通信。本指南基于官方Demo源代码,为C#上位机开发者提供详细的使用说明和代码示例。
2026-03-24 16:58:16
337
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample16:PLC 方法调用
本示例演示如何通过 ADS 从 .NET 程序调用 PLC 方法。方法参数(“params”)可以直接通过 ADS 传输,执行后返回结果(“result”)。在 PLC 中定义方法并启用 ADS 访问为方法创建句柄通过 ADS Read/Write 命令调用 PLC 方法传输参数并接收返回值TcRpcEnable 属性:启用 PLC 方法的 ADS 访问方法句柄:通过语法创建:用于调用方法IndexGroup参数传递:WriteData 包含输入参数返回值。
2026-03-11 15:40:12
396
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample15:变量名访问
本示例演示如何通过变量名访问没有固定地址的 PLC 变量。当 PLC 变量值超过 10 时,将其重置为 0。连接到 PLC(TwinCAT 3)通过变量名获取变量句柄使用句柄读取变量值显示当前值当值超过 10 时重置为 0按回车键继续,其他键退出变量名访问:通过变量名访问没有固定地址的 PLC 变量:通过变量名获取句柄Read 方法:通过句柄读取数据到 AdsStreamWriteAny:通过句柄写入数据:删除句柄释放资源句柄生命周期:创建 → 使用 → 删除。
2026-03-11 15:39:15
384
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample14:PLC 启停控制
本示例演示如何启动或停止 PLC Runtime 1。连接到 PLC(TwinCAT 3)显示用户菜单(启动/停止选项)读取用户输入(R 或 S)根据用户输入启动或停止 PLC读取并保持当前设备状态ReadState 方法:读取 PLC 当前状态WriteControl 方法:写入控制命令改变 PLC 状态AdsState 枚举:PLC 状态(Run, Stop, Config, Reset 等):设备状态(保持当前状态)StateInfo 类:状态信息容器。
2026-03-10 10:42:03
366
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample13:双字标志位同步写入
本示例演示如何将用户输入的值同步写入到 PLC 的双字标志位(flag double word 0)。连接到 PLC(TwinCAT 3)获取用户输入的值将值写入 PLC 的双字标志位 0处理异常和资源释放WriteAny 方法:通用变量写入方法,支持所有数据类型双字标志位写入:使用 WriteAny 一次性写入整个 WORD(32 位)用户输入:通过控制台获取用户输入的值类型安全:WriteAny 自动处理类型转换。
2026-03-10 10:40:38
367
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample12:双字标志位同步读取
本示例演示如何从 PLC 同步读取双字标志位(double word)并显示在界面上。连接到 PLC(TwinCAT 2)读取 PLC 中的双字标志位变量将读取的值显示在界面上控制台输出读取结果。
2026-03-09 09:21:29
344
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample11:删除句柄
句柄(Handle):PLC 变量的唯一标识符创建句柄释放句柄句柄生命周期:创建 → 使用 → 释放句柄特性:不持久,PLC 重启后失效。
2026-03-09 09:19:41
357
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample09:ADS-Sum命令批量读写
本示例演示如何使用ADS-Sum命令一次性读取或写入多个 PLC 变量。使用单个命令读取多个变量使用单个命令写入多个变量通过句柄数组批量操作变量处理返回的错误代码// 用于存储变量值的结构体// 无符号 16 位整数// 有符号 32 位整数// 布尔值// 用于存储变量句柄信息的结构体// 索引组// 索引偏移// 数据长度(字节数)ADS-Sum 命令:一次性读写多个变量的专用命令ReadWrite 方法:执行 ADS-Sum 命令的核心方法。
2026-03-06 10:31:46
390
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample08:TwinCAT路由器状态检测
本示例演示如何检测 TwinCAT 路由器和 PLC 的状态变化。检测 TwinCAT 路由器的状态变化检测 PLC 的 ADS 状态字变化通过回调函数实时响应状态变化显示路由器和 PLC 的连接状态// 路由器状态变化事件// 事件参数TwinCAT 路由器状态:通过 AmsRouterNotification 检测PLC ADS 状态字:通过 AddDeviceNotification 读取双重通知机制:同时监听路由器和 PLC 状态状态监控:实时显示系统连接和运行状态。
2026-03-06 10:29:25
375
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample07:任意类型变量读写
本示例演示如何使用ReadAny和WriteAny方法读写任意类型的 PLC 变量。读取任意数据类型的变量(基本类型、数组、结构体、字符串)写入任意数据类型的变量读写包含数组和字符串的结构体注册事件通知监控变量变化STRUCTEND_STRUCTEND_TYPESTRUCTEND_STRUCTEND_TYPEVAR(* 基本类型 *)(* 字符串类型 *)(* 结构体类型 *)END_VAR// 因此需要设置 Pack = 1。
2026-03-05 09:22:19
352
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample06:变量声明读取
本示例演示如何从 PLC 读取所有变量声明,并以树形视图显示。从 PLC 加载所有变量符号信息在树形视图中显示变量层次结构显示每个变量的详细信息读取和写入变量值类型数量字节数变量名示例5458545452525151BOOL51ARRAY511-81STRING121STRING_1符号信息加载器:用于从 PLC 读取所有变量声明ITcAdsSymbol 接口:表示 PLC 变量符号符号信息:包含名称、类型、索引、大小等信息。
2026-03-05 09:20:57
340
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample05:时间日期读写
本示例演示如何从 PLC 读取时间和日期,并将时间和日期写入 PLC。从 PLC 读取 TIME 类型变量从 PLC 读取 DATE (DT) 类型变量向 PLC 写入 TIME 类型变量向 PLC 写入 DATE (DT) 类型变量VAREND_VAR// 低 32 位// 高 32 位64 位整数(8 字节)单位:100 纳秒(0.1 微秒)起始时间:1601-01-01 00:00:00 UTCTIME 类型:PLC 时间类型,转换为 .NET TimeSpan。
2026-03-04 13:25:17
323
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample04:字符串读写
本示例演示如何从 PLC 读取字符串并将字符串写入 PLC。从 PLC 读取字符串变量向 PLC 写入字符串变量在界面上显示字符串内容VAREND_VARPLC STRING 类型:包含最大长度字节 + 字符数据ASCII 编码:PLC STRING 使用 ASCII 编码终止符:字符串以 ‘\0’ 结束AdsStream 大小:必须与字符串大小匹配新版本支持:AdsBinaryReader/Writer 简化操作。
2026-03-04 13:22:19
324
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample03:事件驱动读取技术文档
本示例演示如何以最高效的方式读取 PLC 中的多个变量,每个变量具有不同的数据类型,并显示值及其时间戳。读取 7 个不同类型的全局变量使用事件驱动方式接收数据变化显示变量值和时间戳提高读取效率,避免轮询VAR// 7 个不同类型的全局变量// 布尔值// 整数 (16位)// 双整数 (32位)// 有符号字节// 长实数 (64位浮点)// 实数 (32位浮点)// 字符串 (10字符)END_VAR事件驱动读取。
2026-03-03 09:02:28
550
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample02(写入PLC结构体)
Sample02 - Transmitting structures to PLC(将结构体传输到PLC)演示如何从 .NET 应用程序向 PLC 写入结构体数据,结构体中包含不同数据类型的元素。使用AdsStream和按顺序写入结构体字段结构体字节对齐和偏移计算使用将整个流写入 PLC正确处理不同数据类型(INT, DINT, SINT, LREAL, REAL)对比项Sample01(读取数组)Sample02(写入结构体)操作方向从 PLC 读取写入到 PLC数据类型。
2026-03-03 08:59:55
654
原创 .NET Framework与倍福ADS通讯笔记:Beckhoff官方示例 - Sample01(读取PLC数组)
Sample01 - Accessing an array in PLC(访问PLC中的数组) https://infosys.beckhoff.com/english.php?演示如何从 PLC 读取一个包含 100 个 INT 元素的数组,并将内容显示在 ListBox 控件中。使用连接到本地 PLC(端口 851)使用创建变量句柄使用AdsStream和读取和解析数组数据正确的资源清理(和Dispose。
2026-03-02 09:23:25
649
原创 .NET Framework与倍福ADS通讯笔记:通讯读写
是Beckhoff TwinCAT ADS .NET库的核心类,用于在C#应用程序与TwinCAT PLC之间建立通讯连接并执行数据读写操作。建立和管理ADS连接创建和删除变量句柄读写PLC变量订阅变量变化通知异步操作支持。
2026-03-02 09:12:27
734
原创 .NET Framework与倍福ADS通讯笔记:总论
使用属性确保字节对齐每个字段必须使用指定正确的类型字段顺序必须与PLC结构体完全一致Pack=1表示紧凑对齐,避免填充字节示例:配方结构体// 4个布尔值 = 4字节 [ MarshalAs(UnmanagedType . I1) ] public bool bool1;// 4个INT(16位有符号整数)= 8字节 [ MarshalAs(UnmanagedType . I2) ] public short int1;
2026-02-28 16:45:28
807
原创 Markdown编辑器使用方法
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2026-02-28 16:36:38
911
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅