钢化炉参数如何保存,海康工业相机功能模块-参数保存、加载、批量复制参数

海康工业相机功能模块-参数保存与加载 前言相机参数保存的快速方法相机参数导入导出的操作方法UserSetLoad 加载相机内部参数FeatureLoad/FeatureSaveFileAccess 功能MVS导入导出功能 几种方法的优缺点比较

前言

前面一篇文章,讲了工业相机参数如何设置与获取,使用sdk能够将自己想要的参数快速的配置进自己的程序,但是,在实际使用中,我们会发现,sdk配置的参数似乎在断电只会就消失啦,不能实现断电生效??? 软件开发过程中,只能够配置常见的参数,一些偏门的参数,非常见的相机调试参数,如何批量设置进相机、如果断电能够保存??? 这一篇文章就是来介绍、解决这个问题

相机参数保存的快速方法 MVS如何操作

参考相机用户手册提供的方法,主要操作分为3步

修改参数后,通过User Set Selector 参数下拉选择其中一套User Set 参数,例如选择"User Set 1"(你的参数保存在哪里)通过User Set default参数下拉选择其中一套User Set 参数,例如选择"User Set 1"(相机重新上电后,加载那套参数)点击User Set Save 处的“Execute”,即可将参数保存到用户参数中(实际有效的保存操作) 在这里插入图片描述 sdk接口如何调用-UserSetSave方法 参考在MVS里面的操作,主要是三句话的调用 //初始化部分,放在Opendevice之后即可nRet = MV_CC_SetEnumValue(handle, "UserSetSelector", 1);if (MV_OK != nRet){printf("error: SetEnumValue UserSetSelector fail [%x]\n", nRet);}nRet = MV_CC_SetEnumValue(handle, "UserSetDefault", 1);if (MV_OK != nRet){printf("error: SetEnumValue UserSetDefault fail [%x]\n", nRet);} //设置Command型节点-发送参数保存命令//大部分参数修改完成后,调用此命令进行保存,不建议频繁调用nRet = MV_CC_SetCommandValue(m_handle, "UserSetSave");if (MV_OK != nRet){printf("error: SetCommandValue fail [%x]\n", nRet);} 相机参数导入导出的操作方法 UserSetLoad 加载相机内部参数 方法1: UserSetLoad 加载相机内部参数 上面讲了,使用UserSetSave方法,相机支持3套用户参数保存,那么我们可以将不同的参数保存到不同的UserSetSelector里面,然后使用UserSetLoad 把参数再调出来,实现不同参数组合的切换 代码实现也很简单 参数保存,参考上面的伪代码,参数加载如下: nRet = MV_CC_SetEnumValue(handle, "UserSetSelector", 1);//切换不同的参数组if (MV_OK != nRet){printf("error: SetEnumValue UserSetSelector fail [%x]\n", nRet);}nRet = MV_CC_SetCommandValue(m_handle, "UserSetLoad");//loadif (MV_OK != nRet){printf("error: SetCommandValue fail [%x]\n", nRet);} FeatureLoad/FeatureSave 方法2:FeatureLoad/FeatureSave 参考MVS提供的示例程序:C:\Program Files (x86)\MVS\Development\Samples\VC\VS\SimpleSamples\ParametrizeCamera_LoadAndSave 关键代码: // ch:打开设备 | en:Open devicenRet = MV_CC_OpenDevice(handle);if (MV_OK != nRet){printf("Open Device fail! nRet [0x%x]\n", nRet);break;}printf("Start export the camera properties to the file\n");printf("Wait......\n");// ch:将相机属性导出到文件中 | en:Export the camera properties to the filenRet = MV_CC_FeatureSave(handle, "FeatureFile.ini");if (MV_OK != nRet){printf("Save Feature fail! nRet [0x%x]\n", nRet);break;}printf("Finish export the camera properties to the file\n\n");//--------------------------------------------------------------------------printf("Start import the camera properties from the file\n");printf("Wait......\n");// ch:从文件中导入相机属性 | en:Import the camera properties from the filenRet = MV_CC_FeatureLoad(handle, "FeatureFile.ini");if (MV_OK != nRet){printf("Load Feature fail! nRet [0x%x]\n", nRet);break;}printf("Finish import the camera properties from the file\n");// ch:关闭设备 | Close devicenRet = MV_CC_CloseDevice(handle);if (MV_OK != nRet){printf("ClosDevice fail! nRet [0x%x]\n", nRet);break;}

调用MV_CC_FeatureSave接口,可以将相机参数导出到本地,形成一个.ini结尾的文件,打开这个文件可以看见相机的参加参数,例如曝光、增益等 在这里插入图片描述 修改这个文件中的你想要修改的参数值,再调用MV_CC_FeatureLoad可以重新导入修改之后的参数 如果是批量应用的话,事先导出一份ini文件,然后使用FeatureLoad的接口,就可以实现批量化的参数设置,减少人员调试

当然,这个功能暂时也有几个缺点:

只能导出部分参数,只能导出Streamable属性为YES的参数,为NO的参数无法导出,这个属性取决于相机,相机支持就能导出;目前根据观察,海康大部分相机的常见参数,都是YES啦,因此,也无需更多的关心这个问题 在这里插入图片描述不同固件版本、不同相机型号,ini文件不能互相导入无法与MVS客户端互相兼容,MVS不支持ini文件导入 FileAccess 功能 方法3:FileAccess 功能 这个功能,是将方法1中的userset参数读出与重新写入,不过,导出来的文件是bin文件,不能够被直接阅读与修改 示例程序:C:\Program Files (x86)\MVS\Development\Samples\VC\VS\SimpleSamples\ParametrizeCamera_FileAccess 关键代码: MV_CC_FILE_ACCESS stFileAccess = {0};stFileAccess.pUserFileName = "UserSet1.bin";stFileAccess.pDevFileName = "UserSet1";if (1 == g_nMode){//ch:读模式 |en:Read modeg_nRet = MV_CC_FileAccessRead(pUser, &stFileAccess);if (MV_OK != g_nRet){printf("File Access Read fail! nRet [0x%x]\n", g_nRet);}}else if (2 == g_nMode){//ch:写模式 |en:Write modeg_nRet = MV_CC_FileAccessWrite(pUser, &stFileAccess);if (MV_OK != g_nRet){printf("File Access Write fail! nRet [0x%x]\n", g_nRet);}}

如果想要断电生效,还需要参考方法1,useset对参数进行保存 缺点:

bin文件不能被阅读与修改.要求相机型号、固件版本号一致 MVS导入导出功能

方法4:MVS导入导出功能 MVS此功能的实现与FileAccess 功能一致,导出的都是userset参数 版本要求:MVS3.2.1版本及其以上 使用方法很简单,链接相机后,在属性界面的上方找到导入/导出的图标按钮,点击即可,生成.mfs后缀的文件即可 在这里插入图片描述

几种方法的优缺点比较 方法优点缺点UserSetLoad (推荐使用)操作简单、MVS、sdk都可以操作实现批量机台复制操作不易FeatureLoad/FeatureSaveini文件可读性高,批量机台复制简单、参数修改简单需代码开发;MVS不兼容FileAccess批量复制简单,与MVS兼容文件不可读,不可被修改;MVS导入导出(推荐使用)批量复制简单,SDK可兼容文件不可读,不可被修改;
钢化炉图片洛阳兰迪钢化炉名特钢化炉兰迪钢化炉物理钢化炉格拉斯通钢化炉运通钢化炉兰迪机器钢化炉参数怎么设置钢化炉参数设置钢化炉的操作参数表钢化炉工艺参数指南钢化炉操作参数图片资料冬季钢化炉参数怎么调整钢化炉技术参数钢化炉参数设定的推算过程钢化炉产能如何计算钢化炉技术手册罗志祥又在台湾跨年复出了蒙古短调歌曲大全塔罗牌看人物性格唐三使用魂骨融合技正能量的抖音名字霸气十足古惑仔2完整版国语御天漫画免费下拉式奇妙漫画取人之长补己之短的小故事一岁宝宝可以喝苹果山楂水吗森系头像 仙气手机电池容量排行表