海康工业相机的使用遇到的一些问题

2021-5.24
现在是测试软件的稳定性,我就一直打开相机,发现6个机位同时显示,在检测缺陷到随缘数量的时候界面就会卡住。我最后检查出是网卡的缘故,我现在的电脑是双网卡的,我一个网口接了交换机,交换机上面接了6个相机。另外一个网口接了网线,用来上网用。现在发现只有断网的情况下,界面能够一直稳定工作。 糟糕,打脸,刚刚看了一下,界面又卡住了,软件工作了4个小时就卡住了,搞毛啊。

2021-5-23 20:00
搞了差不多一下午,调试。后来终于找到了问题的关键。可以看我之前发布的gist的代码,在我每一次实例化的时候都会去查找设备列表。由于每一个的激活设备不同,下一次查找到的设备列表可能内部发生了改变。然后就出现之前遇到的问题无法一次初始化六个相机。现在的做法是将获取设备列表的方法放在class外部,也就是只是获取一次设备列表。

海康工业相机的调用

主要是用的工业相机的sdk,这个sdk在下载安装官方软件的时候就会自动附带到开发文件夹里面。
这个就是用的官方的软件
上面的图标就是官方的软件,可以进行一些相机的查看参数的调节。名称就是MVS。
下载链接在(下载链接)
海康工业相机的使用遇到的一些问题_第1张图片
开发的样例是在这个目录里面海康工业相机的使用遇到的一些问题_第2张图片

使用Python完成开发

主要使用的是python+pyqt,pyqt完成了界面的开发。

在开发的过程中,开始客户要求的打开两个相机界面。进行缺陷的检测。但是随着开发的过程,客户要求加到六个相机,于是在界面上就做了一些调整,界面的调整也很简单。由于界面调整好了,六个相机只有两个,也就是在本地调试了能否行得通。发现运行无问题。

在今天六个相机全部到位的情况下,然后使用的交换机。六个相机全部插上去了,但是随缘识别相机,总是有的相机无法open_device,报故障码 show error open device fail! ret = 80000203。

然后相机全部拔掉,一个一个的插上去,发现在插入第四个相机的时候就会出现打不开设备的问题。

我在官方python样例里面看到打开相机使用的是索引。我在单个索引打开的情况下都是能够查看的。同时海康的样例代码里面的ret全是判断返回值,不能说是使用一个索引给他一个变量代表一个相机变量。
例如

cam = Camera()
cam1 = cam.activatecamera(index=0)
cam2 = cam.activatecamera(index=1)

上述代码是不能实现两个相机的调用的,因为sdk里面使用opendevice就是返回一个值(0或1),0就是打开成功1就是打开失败。

cam1 = Camera()
cam2 = Camera()
cam3 = Camera()
cam1.activatecamera(index=0)
cam2.activatecamera(index=1)
cam3.activatecamera(index=2)

后来就是像上面的代码块去实例化三个相机,分别去打开设备。
但是最大的问题就是只能打开三个相机,去activate更多的index的时候就会报错,询问了海康的技术,说是不能使用交换机,需要直连网口。现在等pcie网口来了在调试。
我现在给Camera放在gist上面,
gist代码链接
希望能够帮助到有需求的人,同时也寻求谁也遇到了相同的问题:不能打开更多的设备的问题。是不是真的是交换机的问题?还是什么其他的问题。

你可能感兴趣的:(pytorch,机器学习,python)