news 2026/4/18 12:08:03

Halcon与C#贴片机,带运动控制部分,四轴运动使用 国内性价比很高的雷赛驱动卡,非常方便...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Halcon与C#贴片机,带运动控制部分,四轴运动使用 国内性价比很高的雷赛驱动卡,非常方便...

Halcon与C#贴片机,带运动控制部分,四轴运动使用 国内性价比很高的雷赛驱动卡,非常方便,程序带注释,懂一点C#和Halcon的改一下可以直接使用。 自带加密算法

贴片机视觉定位系统这玩意儿搞起来挺有意思,尤其是Halcon和C#这对组合。最近用雷赛DMC2410驱动卡做了个四轴运动控制模块,实测国产卡在脉冲控制方面确实稳,关键价格不到进口卡三分之一。

先看Halcon部分的图像处理核心。模板匹配这块建议用NCC算法,对光照变化不敏感。核心代码其实就十几行:

* 创建模板 create_ncc_model (ImageReduced, 'auto', 0, 0, 'auto', 'use_polarity', ModelID) * 实时匹配 find_ncc_model (CurrentImage, ModelID, 0, 0, 0.8, 1, 0.5, 'true', 0, Row, Column, Angle, Score)

这个usepolarity参数实测能提升20%匹配速度,特别是处理金属反光件的时候。记得在循环里加clearwindow,要不然C#的HWindowControl会内存泄漏。

Halcon与C#贴片机,带运动控制部分,四轴运动使用 国内性价比很高的雷赛驱动卡,非常方便,程序带注释,懂一点C#和Halcon的改一下可以直接使用。 自带加密算法

运动控制部分用雷赛的API封装了个运动类:

// 轴初始化 Dmc2410.d2410_board_init(); Dmc2410.d2410_set_pulse_out(0, 0); //轴号,脉冲模式 Dmc2410.d2410_set_speed(0, 1000, 5000); //加减速设置 // 绝对位置移动 public void MoveAxis(int axis, double position) { uint pulse = (uint)(position * 2000); //2000脉冲/毫米 Dmc2410.d2410_set_position(axis, pulse); Dmc2410.d2410_start_move(axis); }

注意脉冲当量要根据丝杆导程和减速比换算,之前在这踩过坑。运动过程中建议用单独线程监控d2410checkdone状态,别在主线程死等。

加密算法搞了个双重验证方案,既有机器码绑定又有时效控制:

string GenerateLicense(string machineCode) { byte[] salt = Encoding.UTF8.GetBytes("SMT_2024"); using var hmac = new HMACSHA256(salt); byte[] hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(machineCode)); return BitConverter.ToString(hash).Replace("-","").Substring(0,16); } bool CheckExpire() { DateTime installDate = File.GetCreationTime(Assembly.GetExecutingAssembly().Location); return (DateTime.Now - installDate).TotalDays < 30; //试用期控制 }

注意别把加密算法写死在代码里,建议用动态生成字节码的方式。之前被反编译过,后来改用运行时生成IL代码才防住破解。

整个方案实测精度能到±0.02mm,不过要注意相机标定环节。运动控制部分建议加上软限位保护,有次调试时轴跑飞差点撞机。完整代码里每个关键函数都加了XML注释,改参数直接看注释就行,不用到处翻手册。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 9:21:28

西门子 S71200 PLC 编程之 TCP/IP 通讯 FB 功能块的妙用

西门子S71200PLC编程TCP/IP通讯FB功能块 以字符串的格式直观显示发送接受数据。 自动计算发送数据长度&#xff0c;简化发送不定长数据过程。 接受不定长数据&#xff0c;转化为对应长度的字符串&#xff0c; 在控制过程中&#xff0c;只需要通过比较字符串来获取反馈状态。在工…

作者头像 李华
网站建设 2026/4/18 8:34:25

AWPortrait-Z商业案例:广告行业的人像生成实践

AWPortrait-Z商业案例&#xff1a;广告行业的人像生成实践 1. 引言 1.1 广告行业对高质量人像内容的需求 在数字营销和品牌推广日益激烈的今天&#xff0c;广告行业对视觉内容的质量要求达到了前所未有的高度。无论是社交媒体广告、电商平台主图&#xff0c;还是线下宣传物料…

作者头像 李华
网站建设 2026/4/18 8:30:42

探索三菱PLC工控板FX1N源码与电路图的奇妙世界

三菱PLC工控板 FX1N源码电路图代码源程序。最近在研究工控领域&#xff0c;三菱PLC工控板FX1N着实引起了我的浓厚兴趣。今天就来和大家唠唠这FX1N的源码以及电路图相关内容&#xff0c;说不定能给同样在这方面探索的小伙伴一些启发。 三菱PLC工控板FX1N简介 FX1N系列可编程序控…

作者头像 李华
网站建设 2026/4/17 12:10:20

Qwen3-Embedding-0.6B效果实测:支持百种语言的嵌入能力

Qwen3-Embedding-0.6B效果实测&#xff1a;支持百种语言的嵌入能力 1. 引言 随着多语言信息检索、跨语言语义理解以及代码与自然语言混合检索需求的增长&#xff0c;高质量文本嵌入模型的重要性日益凸显。阿里巴巴通义实验室推出的 Qwen3-Embedding-0.6B 模型&#xff0c;作为…

作者头像 李华
网站建设 2026/4/7 11:21:34

BGE-M3实战:技术文档智能搜索

BGE-M3实战&#xff1a;技术文档智能搜索 1. 引言 在企业级知识管理场景中&#xff0c;技术文档的高效检索是提升研发效率的关键环节。传统的关键词匹配方法难以应对语义多样性和上下文复杂性&#xff0c;而单一的嵌入模型又往往无法兼顾不同检索需求。BGE-M3 作为由 FlagAI …

作者头像 李华