0.前言
最近接手新项目,用海康威视旗下的HIK ROBOT Vision Master机器视觉软件做二次开发相关的项目,写一篇博客记录一下学习过程。
参考视频:https://www.bilibili.com/video/BV1tq4y1j7RP?p=1
其他参考资料:软件自带的开发文档。
IDE:VS 2022
语言:C#、C++
框架:dotNET Framework 4.6.1
软件版本:VM 4.3.0(本文都用VM缩写代指Vision Master)
1.配置环境
新建一个winForm工程,右击工程属性,目标框架修改为:.NET Framework 4.6.1。
在生成中,目标平台首选32位取消勾选,输出路径绑定为:D:\Program Files\VisionMaster4.3.0\Applications。
打开App.config配置文档,再去VisionMaster4.3.0\Applications中找到VisionMaster.exe.config,将全部内容复制到App.config中替换。
1.1 添加新控件
切换到设计窗口,找到工具箱,右击Windows所有窗体,点击选择项,点击浏览去刚才的Applications文件夹中找这个库:VisionMaster4.3.0\Development\V4.x\ComControls\Assembly\VMControls.Winform.Release.dll,会自动导入一些控件:
回到VS的工具箱中,可以看到新增控件:
1.2 链接各种库文件DLL
在引用中,添加动态链接库和依赖库。开发文档中提供了两种引入方式:手动添加和小工具一键导入。
推荐第二种,先只添加基础库测试:
回到VS中:
重新加载后,多了这些链接项,也可以手动加入。
1.3 新建VM工程和写入功能
将这个工程保存到本地,后缀名为.sol文件。
回到VS 2022,在winForm中拖入一个VmRenderControl控件作为显示,拖入两个Button和一个ListBox来更新数据。
加载方案 按钮:
private void button1_Click(object sender, EventArgs e)
{
string message;
VmSolution.Load("D:\\Users\\Desktop\\test0820.sol", "");
message = "Load Sol Success.";
listBox1.Items.Add(message);
listBox1.TopIndex = listBox1.Items.Count - 1;
}
方案执行 按钮:
private void button2_Click(object sender, EventArgs e)
{
IMVSCircleFindModuTool circleFindModuCs = (IMVSCircleFindModuTool)VmSolution.Instance["流程1.圆查找1"];
VmProcedure vmProcedure = (VmProcedure)VmSolution.Instance["流程1"];
vmRenderControl1.ModuleSource = circleFindModuCs;
Task.Run(() =>
{
vmProcedure.Run();
});
}
最后的效果: