發(fā)布時間:2021-09-16
當(dāng)Basler工業(yè)相機出現(xiàn)debug模式相機經(jīng)常顯示in use, 該如何解決?
現(xiàn)象描述:
當(dāng)出現(xiàn)這個問題時, 打開Basler pylon Viewer, 打開相機時會出現(xiàn)下圖的報錯信息。
如果調(diào)試或者運行pylon SDK的編寫的程序, 報錯信息如下圖所示
原因:
千兆網(wǎng)視覺協(xié)議的標(biāo)準(zhǔn)是通過心跳的這種方式來監(jiān)測相機和網(wǎng)卡的連接, 心跳的這種方式是設(shè)定一個時間, 當(dāng)超過這個時間還沒有監(jiān)測到 相機和網(wǎng)卡的連接時, 相機就會釋放跟網(wǎng)卡的連接, 進(jìn)入一種允許相機被再次連接的狀態(tài)。
使用pylon SDK調(diào)試程序的過程中, 為了防止相機跟網(wǎng)卡的連接斷開, 默認(rèn)狀態(tài)下, 心跳的時間是5分鐘。因此當(dāng)程序調(diào)試運行過程中, 程序 異常中止, 只有五分鐘之后, 相機才會釋放跟網(wǎng)卡的連接, 然后進(jìn)入一種可以被再次連接的狀態(tài)。
解決方案:
(1) 硬件方法:
? 相機斷電
? 相機端或者網(wǎng)卡端的網(wǎng)線重新插拔一下
? 網(wǎng)卡禁用然后重新啟用
(2)代碼方法:
使用pylon SDK編寫的程序調(diào)試狀態(tài)下的心跳的時間雖然默認(rèn)是5分鐘, 但是可以通過pylon SDK設(shè)置這個時間。代碼如下所示:
C++
IPylonDevice *m_pCamera;
CIntegerPtr m_pHeartbeatTimeout = m_pCamera->GetTLNodeMap()->GetNode("HeartbeatTimeout“);
m_pHeartbeatTimeout->SetValue(1000);//單位毫秒
C#
PYLON_DEVICE_HANDLE hDev;
NODEMAP_HANDLE hNodemap;
NODE_HANDLE hNode;
hNodemap = Pylon.DeviceGetTLNodeMap(hDev);
hNode = GenApi.NodeMapGetNode(hNodemap, "HeartbeatTimeout“);
GenApi.IntegerSetValue(hNode, 1000);//單位毫秒
如果以上步驟沒有解決問題, 請聯(lián)系我們?yōu)槟峁┘夹g(shù)支持。
發(fā)布時間:2017-10-25
發(fā)布時間:2017-10-27