基于Vision Master开发的环境配置
海康 VM 二次开发环境配置介绍VM 版本VisionMaster_CN_STD_V4.4.0_250516。基础安装包。必须安装且应首先安装。Path: C:\Program Files\VisionMaster4.4.0VMDL 版本VisionMaster_DeepLearning_CN_STD_V4.4.0_250516。深度学习工具包。需使用深度学习模块时应安装。安装该工具包前需先安装基础安装包。Path: C:\Program Files\VisionMaster4.4.0\MVDAlgorithmSDKVM 示例版本VisionMaster_Sample_CN_STD_V4.4.0_240813。示例方案安装包。需使用搭建的示例应安装。VMT 版本VisionTrain_CN_STD_V2.3.0_250529。VisionTrain 2.3.0 安装包Path: C:\Program Files\VisionTrain2.3.0异常信息收集工具名称为 AbnormalInfoCollectTool.exe所在路径为…\Applications\Tools\AbnormalInfoCollectTool。环境检测工具名称为VMCollector.exe所在路径为…\Applications\Tools\VMCollector。第一步安装VM 算法开发平台完成安装后包含软件、软件 SDK、软件所需驱动以及算子包 SDK。具体安装路径如下● 软件…\VisionMaster4.4.0\Applications● 软件 SDK…\VisionMaster4.4.0\Development● 软件所需驱动…\VisionMaster4.4.0\Drivers● 算子包 SDKC:\Program Files\VisionMaster4.4.0\MVDAlgorithmSDK编译程序使用VS2022 — C# WinForms/WPF新建 C#为例.NET Framework 框架项目。点击项目属性界面 — 点击生成界面确认项目框架模板为 .NET Framework 4.6.1同时取消平台目标下的勾选“32 位首选”。然后点击菜单工具 — “保存”。第二步添加程序引用项Properties 下的引用选项打开你的 VisionMaster 安装路径下面为教程和本机示例D:/VisionMater4.2.0/Development/V4.x/ComControls/Tool/ImportRef.exe 教程文件夹路径点击此处文件夹下C:\Program Files…\V4.x\ComControls\Tool\ImportRef此工具内容点击引用加载项目路径 — 加载引用进去。此时返回 VS 工程文件中点击“全部重新加载”。第三步加载页面 Form 控件VS 工程中点击 Form1.cs进入“工具箱” — 所有 Windows 窗体全部显示 — 之后选择“添加项” — 选择对应框架 .NET Framework 此时这里会加载稍微几秒钟。之后点击“浏览”选择路径Program Files\VisionMaster4.4.0\Development\V4.x\ComControls\Assembly\确认成功点击工具栏搜索 vm**出现以下控件内容。动态链接库 DLL 介绍及添加说明注意事项支持 .NET Framework要求 4.6.1 版本及以上不支持 .NET Core。在项目属性中的平台目标选择【Any CPU】需去除勾选【首选 32 位】。手动添加 VM 相关动态库引用后需设置库属性中的复制本地为【False】。程序退出前可调用接口释放 VM 相关资源避免在析构函数中调用接口。参数控件和参数渲染控件暂不支持记忆参数订阅框显示的默认方式。独立 Group 控件暂不支持执行和耗时显示功能。另外一种方式为将动态链接库复制到一个文件夹方便后续软件打包。海康的方案显示界面需要使用“VmProcedureConfigControl 接口”。同时在 Form.cs 页面中需要添加两个引用控件usingVM.Core;usingVM.PlatformSDKCS;加载方案时需要额外的 API 接口函数。保存函数 Save() 替换原方案保存SaveAs() 另存文件在自定义路径中。切记运行时要关闭 VM 和 Server不关闭可能报错。结果显示与渲染在进行结果获取之前需要在 VM 中先对流程进行结果配置对应关系输出点击“扳手”图标进行设置。结果显示输出在图片上的信息。数据结果在输出设置。选择数据类型 int参数名称 out0订阅关系绑定对应类型的模块中的程序参数设置一个参数名称选择对应类型配置得到结果。配置好后关闭 VM 软件打开二次开发程序渲染结果输出使用组件为 vmRenderControl 控件。DockFill在执行一次中编辑// 获取结果分为渲染结果和数据结果 加载render panel 为 null// 首先定义并初始化一个流程对象并与在 VM 中配置好的方案下流程做绑定// 将渲染控件的显示源 ModuleSource 绑定流程对象。// 然后格式化输出变量第一个程序1.4 模块参数设置工具箱中提供了两个参数配置控件VmParamsConfigControl 是不带渲染的参数配置控件VmParamsConfigControlWithRenderControl 是带渲染的参数配置控件。出现报错波浪线的时候IMVSOcrModuTool__error。然后将带渲染界面的参数配置控件的 ModuleSource 属性与字符识别工具对象做绑定。// 特别注意需要对应流程中的模块内容有深度学习的要选择Dl。注意看帮助文档C:\Program Files\VisionMaster4.4.0\Development\V4.x\Documentations。1.5 小技巧先添加对应需求的命名空间加引用。例如圆查找空间为 IMVSCircleFindModuCS定义对象实例化其他模块同样如此。捕获异常每个函数都需要捕获异常使用 try — catch。2.1 流程列表获取方案流程模块拖动 ComboBox事件 DropDown。以列表的方式获取当前方案下的所有流程名。每次获取流程名时都需要更新 Items需要获取前做 clear 清空操作。循环遍历流程列表后使用 Add() 接口依次添加到 comboBox1 的 Items 下。流程绑定单个流程使用 BindSingleProcedure() 将 ComboBox 的文本对应的流程绑定到流程配置控件上。流程绑定多个流程BindMultiProcedure()。通过 1.3 获取结果同样可以获取流程的渲染结果和数据结果。使用回调事件函数获取方案中流程的结果并输出。在构造函数中创建回调事件函数VmSolution.OnWorkStatusEventVmSolution.OnWorkStatusEvent;实现函数以 OCR 模块为例以 IMVSocrModuTool 类将流程 OCRDemo 实例化然后将结果转化为 string 类型。通过通讯触发模块tcp/udp客户端服务端来进行数据首发等。