http://www.kadhoai.com.cn 2026-04-07 23:24:46 來源:
在zai某mou些xie應ying用yong場chang合he中zhong,如ru果guo需xu要yao處chu理li來lai自zi多duo台tai相xiang機ji的de圖tu像xiang時shi,則ze圖tu像xiang記ji錄lu的de精jing確que時shi間jian或huo準zhun確que的de先xian後hou順shun序xu對dui後hou續xu處chu理li至zhi關guan重zhong要yao。若ruo相xiang機ji能neng夠gou提ti供gong時shi間jian戳chuo,則ze可ke為wei不bu同tong的de圖tu像xiang數shu據ju建jian立li時shi間jian基ji準zhun。然而,相機的時間基準要能夠精確匹配,這一點至關重要。通過使用“精確時間協議”(PTP),HK IDS GigE Vision相機(固件版本2.2或以上)能夠輕鬆實現同步。
借助精確時間協議(PTP)同步HK IDS GigE Vision相機
精確時間協議(PTP)是一種時間同步標準(IEEE1588),tashitongguowangluolianjiedeshebeishixianshijiantongbu。zhichicibiaozhundexiangjikezaitedingdezhouqineiyuzhushizhongjiaohuantongbuxinxi。liyonggezifasonghejieshoushijianzhongdeshijianchuoxinxi,xiangjineibudejishuqikeshixianjingquedixiaozhunhetongbu。
所有固件版本為2.2及以上的HK IDS GigE Vision相機都可與PTP兼容!
IEEE1588時間戳是以1970年1月1日0時0分為計時起點,支持1納秒(1 GHz)的時間分辨率。然而,由於延遲和信號運行時的不準確性,聯網設備的時間同步精度達微秒級。
PTP應用案例
PTP作為一種基礎協議,通過為圖像數據提供時間基準,為各種應用奠定基礎。視應用要求及網絡基礎設施的複雜性的不同,PTP可以通過不同的方式來實現。
01 相對時間戳同步
在(zai)本(ben)案(an)例(li)中(zhong),所(suo)有(you)相(xiang)機(ji)都(dou)在(zai)同(tong)一(yi)個(ge)網(wang)絡(luo)。其(qi)中(zhong)一(yi)台(tai)相(xiang)機(ji)為(wei)主(zhu)服(fu)務(wu)器(qi),其(qi)餘(yu)相(xiang)機(ji)為(wei)從(cong)服(fu)務(wu)器(qi)。所(suo)有(you)從(cong)相(xiang)機(ji)的(de)時(shi)間(jian)戳(chuo)與(yu)主(zhu)相(xiang)機(ji)同(tong)步(bu)。相(xiang)機(ji)既(ji)不(bu)提(ti)供(gong)絕(jue)對(dui)時(shi)間(jian)戳(chuo)(實時),同時在無其他操作的情況下,也無法實現同步觸發。

優勢:
■ 在zai該gai應ying用yong場chang合he中zhong,相xiang對dui時shi間jian戳chuo確que定ding所suo有you相xiang機ji圖tu像xiang記ji錄lu的de時shi間jian分fen配pei。此ci外wai,相xiang對dui時shi間jian戳chuo還hai能neng確que定ding哪na一yi張zhang圖tu像xiang為wei第di一yi張zhang,以yi及ji不bu同tong相xiang機ji的de圖tu像xiang時shi差cha大da小xiao。
■ 無需額外的操作和成本,即可為特定的網絡基礎架構生成相對時間戳。
02 利用絕對時間同步時間戳
本案例中,聯網相機與外部主時鍾同步。該PTP主時鍾可以是支持“硬件時間戳”的網卡——若無硬件支持,同步精度將顯著降低。除必要的硬件外,還需要支持PTP的軟件。

優勢:
■ 具備全局(實時)時間戳的圖像內容可跨越當前的應用限製,與任何其他使用實時時間基準的信息相關聯。
■ 對於其它使用全局時間基準的應用場合或評估,圖像內容可以重用。
使用PTP:“相對同步”
硬件設置
兩台不同的固件版本為2.2(支持PTP)的HK IDS GigE Vision相機(GV-526xFA-C和GV-504xCP-M)連至同一網絡交換機。一台額外的主機PC,僅用於控製和配置相機,不涉及相機的PTP同步。
軟件設置
可通過“PtpControl”下的相機功能節點圖查找所有PTP配置功能。隻有固件需為2.2或以上版本的相機才能使用這些功能。我們在主機PC上安裝配套軟件,來設置PTP同步。
將一台相機配置為PTP主時鍾
GV-526xFA-C相機應設置為PTP主時鍾。在軟件中打開相機,並將“PtpEnable”設為“True”,啟用PTP。另外,將“PtpSlaveOnly”設為“False”為相機賦予“主時鍾”角色。
# Configure master camera
PtpEnable = True
PtpSlaveOnly = False
將另一台相機配置為PTP從時鍾
GV-504xCP-M相機應設為PTP從時鍾。同理,將“PtpEnable”設為“True”以啟用PTP。此時,這台相機僅作為從時鍾使用。將“PtpSlaveOnly”仍設為“True”。
# Configure slave camera
PtpEnable = True
PtpSlaveOnly = True
創建主從等級
在完成主從時鍾配置後,主-從等級將自動創建。對於主時鍾相機,可通過“PtpStatus”由“Listening ”變成“Master”來確定。對於從時鍾相機,可通過“PtpStatus”先由“Listening”變為“Uncalibrated”,並在與主時鍾相機同步後變為“Slave”來確定。
在通過相機的新PTP功能完成主從等級創建後,“相對同步”也隨之完成。
啟用時間戳
如果您希望對圖像數據使用已同步相機生成的時間戳,則必須將時間戳作為元數據,啟用元數據(及塊數據)傳輸。
首先,將“ChunkModeActive”設為“True”,以通過圖像緩衝區啟用塊數據傳輸。然後,通過“ChunkSelector”選擇“Timestamp”,並通過“ChunkEnable”開關啟用時間戳。
# activate chunk data creation
ChunkModeActive = True
# enable "ChunkTimestamp"
ChunkSelector = Timestamp
ChunkEnable = True
這時,相機所采集的每一張圖像將具備相應的時間戳,並借助圖像緩衝區(通過塊數據)傳輸至主機PC。這樣,塊數據及時間戳可通過任何視覺標準軟件進行讀取。
圖像采集
如(ru)果(guo)應(ying)用(yong)中(zhong)需(xu)要(yao)對(dui)帶(dai)時(shi)間(jian)戳(chuo)的(de)圖(tu)像(xiang)數(shu)據(ju)進(jin)行(xing)處(chu)理(li),則(ze)圖(tu)像(xiang)的(de)記(ji)錄(lu)時(shi)間(jian)和(he)相(xiang)機(ji)的(de)觸(chu)發(fa)至(zhi)關(guan)重(zhong)要(yao)。這(zhe)種(zhong)情(qing)況(kuang)取(qu)決(jue)於(yu)來(lai)自(zi)多(duo)台(tai)相(xiang)機(ji)的(de)圖(tu)像(xiang)是(shi)否(fou)需(xu)要(yao)完(wan)全(quan)相(xiang)同(tong)的(de)采(cai)集(ji)時(shi)間(jian)(同步圖像采集)以及時間關聯偏差(時間戳抖動)有(you)多(duo)大(da)。根(gen)據(ju)應(ying)用(yong)要(yao)求(qiu),須(xu)選(xuan)擇(ze)適(shi)合(he)相(xiang)機(ji)的(de)觸(chu)發(fa)模(mo)式(shi)。在(zai)做(zuo)出(chu)這(zhe)一(yi)選(xuan)擇(ze)時(shi),要(yao)考(kao)慮(lv)的(de)決(jue)定(ding)性(xing)的(de)因(yin)素(su)不(bu)僅(jin)包(bao)括(kuo)不(bu)同(tong)軟(ruan)件(jian)和(he)硬(ying)件(jian)信(xin)號(hao)模(mo)式(shi)的(de)精(jing)度(du),也(ye)包(bao)括(kuo)部(bu)署(shu)和(he)使(shi)用(yong)所(suo)需(xu)操(cao)作(zuo)和(he)成(cheng)本(ben)。為(wei)檢(jian)查(zha)先(xian)前(qian)配(pei)置(zhi)的(de)“相對同步”,我們使用每秒脈衝數(PPS)信號來觸發相機,以實現同步自由運行。
同步自由運行
顧名思義,在PTP功能啟用的情況下,每台相機(主時鍾相機和從時鍾相機)的PPS信號會每秒生成一個。因此我們可借助PPS信號檢查相機的同步狀態。這一信號被設置為觸發源,因此每秒鍾將觸發一次圖像采集。除了由“相對同步”導致的幾微妙的偏差,相機生成的圖像時間戳應為一致。通過PPS信號實現所有相機同步自由運行的操作如下:
# image acquisition configuration for both cameras
LineSelector = Line2
LineMode = Output
LineSource = PPS
TriggerSelector = ExposureStart
TriggerMode = On
TriggerSource = Line2
# Limit bandwidth on both cameras
DeviceLinkThroughputLimit = 60000000
# Start acquisition on both cameras
Execute AcquisitionStart

同步PPS觸發信號將觸發相機在同一時間點進行圖像采集
讀取時間戳
為wei在zai應ying用yong場chang合he中zhong處chu理li時shi間jian戳chuo和he圖tu像xiang內nei容rong,您nin須xu讀du取qu當dang前qian圖tu像xiang緩huan衝chong區qu的de塊kuai數shu據ju。塊kuai數shu據ju為wei製zhi造zao商shang相xiang關guan的de有you效xiao負fu載zai緩huan衝chong區qu,其qi存cun儲chu布bu局ju通tong常chang未wei知zhi,因yin此ci我wo們men將jiang通tong過guo節jie點dian圖tu來lai讀du取qu各ge個ge元yuan數shu據ju。為wei此ci,所suo有you現xian有you的de元yuan數shu據ju及ji其qi標biao準zhun的de節jie點dian名ming稱cheng將jiang從congGenTL傳輸至節點圖,以便通過標準的API進行訪問。
以下的源代碼片段為您演示如何從圖像緩衝區中提取時間戳。安裝包也為您提供了有關塊數據處理的完整源代碼示例。
// Get buffer from device's datastream
const auto buffer = m_dataStream->WaitForFinishedBuffer(5000);
// check buffer for chunks
if (buffer->HasChunks())
{
// update nodemap with current chunk data
m_nodemapRemoteDevice->UpdateChunkNodes(buffer);
// Get the value of the timestamp chunk
const auto chunktimestamp = m_nodemapRemoteDevice->FindNode<peak::core::nodes::FloatNode>("ChunkTimestamp")->Value();
}
總結
當涉及圖像內容的時間分配時,PTP是(shi)多(duo)相(xiang)機(ji)應(ying)用(yong)場(chang)合(he)中(zhong)一(yi)個(ge)重(zhong)要(yao)的(de)基(ji)礎(chu)功(gong)能(neng),能(neng)夠(gou)輕(qing)鬆(song)實(shi)現(xian)相(xiang)機(ji)間(jian)的(de)相(xiang)對(dui)同(tong)步(bu),無(wu)需(xu)額(e)外(wai)的(de)硬(ying)件(jian)和(he)軟(ruan)件(jian)支(zhi)持(chi)。在(zai)許(xu)多(duo)應(ying)用(yong)場(chang)合(he)中(zhong),相(xiang)對(dui)相(xiang)機(ji)同(tong)步(bu)也(ye)足(zu)以(yi)確(que)保(bao)圖(tu)像(xiang)在(zai)“相同”的時間或以正確的順序使用。相機還配備外部定時器,適用於全局同步。