StGigE-Package v2.xx (eBUS SDK v3)支援以下的開發環境:
OS
補充情報
舊版本:StGigE-Package v1.xx (eBUS SDK v2)支援以下的開發環境:
OS
請參考下面提供的PDF檔案。其中有記載回復初期設定的方法。
下記的Excel已將計算式內建於其中。
只要輸入顯示的行數後就會計算出最大的Frame Rate。
減少取像的行數(水平方向)會讓Frame Speed提升,但減少垂直方向的行數則否。
日文版: TechNote_GigE02_GigE_カメラ表示ライン数と最大FPS計算_Rev1.0
英文版: TechNote_GigE02_GigE_MaxFrameRate_calculator_from_LineNumber_Rev1.0
POE款式與標準款式的GigE相機,在IO輸出的迴路設計上並不相同。標準款中的輸出迴路的部份,在相機內部有設置Pull up電阻以及Pull up用的電源,但新款式的GigE相機則沒有設置。因此,若需要的話使用者必需要在外部線路上加入這部份的線路以免造成問題。
由於上面提到的變更,原本標準款PoE相機的IO輸出可由示波器觀查,但新的PoE款相機若沒有外部電源輸出的話是無法以示波器量測到輸出的。
這個變更主要是讓客戶可更加自油的設計Pull UP部份的迴路而修改的。
其他詳細資訊請參考以下PDF檔:
使用GigE相機時,我們推薦將網路卡的Jumbo Packet盡可能設置為較大的設定值。若您使用的網路卡不提供Jumbo Packet的設置,我們會建議您更換別的網路卡以維持安定的傳輸效率。Jumbo Packet的設置會影響傳輸效能及安定性,因此請您一定要進行設置。
以下為示範Jumbo Packet的設定方式。(截圖中的影像為示範例)
(Jumbo Frame與Jumbo Frame為同義)
1. 開啟裝置管理員。
2. 在網路卡項目中找到與GigE相機連接的該當網卡。
3. 按右鍵 -> 屬性進行設定。
4. 在詳細設定的標籤頁中找到Jumbo Packet/Jumbo Frame的設定。(這部份會因不同網卡晶片/驅動而不同,請注意)
5. 將值的部份設定為9000 Byte以上(這部份會因不同網卡晶片/驅動而不同,請盡可能設定較高的設定值)
6. 按下OK按鈕並關閉裝置管理員。
Q:使用SDK付屬軟體StCamGigWare的GigEVisionCameraSelection畫面中的IP Address initialization Save將IP Address寫入相機的動作,用程式該如何實作?
A: 請參考下記的Sample Code將IP Address及Subnet Mask存放在Presistent的地方。
將GevCurrentIPConfigurationPersistentIP設為True的話,帶有Persistent屬性的IP Address、Submask以及Default Gateway都會變為有效:
GevCurrentIPAddress: 目前相機的IP Address
GevCurrentSubnetMask: 現在的Subnet Mask
GevPersistentIPAddress:GevCurrentIPConfigurationPersistentIP設為True時,相機在啟動後的IP Address設定值
GevPersistentSubnetMask:GevCurrentIPConfigurationPersistentIP設為True時,相機在啟動的的Subnet Mask設定值
這些相目皆於相機內部設定中。
您可以用StGigEPlayer連接相機後,在Device Control設定視窗中的TransportLayerControl中找到這些項目。
bool SetIPAddress( PvDevice *pDevice, bool bAuto )
{
PvResult pvResult;
PvGenParameterArray *lGenDevice = pDevice->GetGenParameters();
//GevCurrentIPConfigurationPersistentIP設為True讓PersistentIP變為有效
PvGenBoolean *lPersistentIPBoolean = dynamic_cast( lGenDevice->Get( “GevCurrentIPConfigurationPersistentIP” ) );
ASSERT( lPersistentIPBoolean != NULL );
if( bAuto==true ){ //自動(PersistentIP為無效的情況)
pvResult = lPersistentIPBoolean->SetValue(false);
}
else
{
PvGenInteger *lIPAddressParam = dynamic_cast( lGenDevice->Get( “GevCurrentIPAddress” ) );
PvGenInteger *lFlushIPAddressParam = dynamic_cast( lGenDevice->Get( “GevPersistentIPAddress” ) );
PvGenInteger *lSubnetMaskParam = dynamic_cast( lGenDevice->Get( “GevCurrentSubnetMask” ) );
PvGenInteger *lFlushSubnetMaskParam = dynamic_cast( lGenDevice->Get( “GevPersistentSubnetMask” ) );
ASSERT( lIPAddressParam != NULL );
ASSERT( lFlushIPAddressParam != NULL );
ASSERT( lSubnetMaskParam != NULL );
ASSERT( lFlushSubnetMaskParam != NULL );
//IP読込
// 讀取IP設定
PvInt64 lIPAddress = 0;
PvInt64 lSubnetMask = 0;
pvResult = lIPAddressParam->GetValue( lIPAddress ); //取得現在的IP Address
if( pvResult.IsOK() )
pvResult = lSubnetMaskParam->GetValue( lSubnetMask ); //取得現在的Submask
if( pvResult.IsOK() )
pvResult = lFlushIPAddressParam->SetValue( lIPAddress ); //將現在的IP Address設定為Persistent IP
if( pvResult.IsOK() )
pvResult = lFlushSubnetMaskParam->SetValue( lSubnetMask ); //將現在的Submask設定為Persistent Subnet Mask
if( pvResult.IsOK() )
lPersistentIPBoolean->SetValue(true); //將Persistent設為有效
}
return pvResult.IsOK();
}
———-
當新設置網路卡(NIC)或是一台PC上有複數網路卡的情況時,在連接相機時有可能會遇到像下圖中出現subnet not unique這樣的錯誤訊息且無法正確連線。這是因為各個網路上的裝置需要個自設定不同的IP Addesss。一般預設為自動取得IP Address的情況下,會因為自動設置而產生不可預期的問題。一般在使用複數台相機時,我們建議手動設置網卡以及相機的IP來減少這類的問題。
手動設置網路卡(NIC) IP Address的方法
點選:控制台 > 網路共有中心 > 變更網路卡設定。
在要設置IP Address的網卡上按右鍵 > 屬性。
在出現的屬性視窗中找到Internet Protocol Version 4(TCP/IPv4),點選後點下屬性按鈕。
參考下圖將IP設定為固定IP。
Subnet mask設為255的部份,在同一個物理連接下要設定為一樣以防問題發生。如下圖169.254.1.1的部份中,Submask前三項設定為255.255.255的情況下,這張網卡連接的相機IP的前三位都需要設定為169.25.1。
若是同一個環境中有複數的網卡/網路Port的話,這種情況下自動分配的IP可能會造成問題,因此每個網卡/Port都會需要手動設定成不同的IP Address。
您可以參考以下的設定。
第一張網卡:
IP address: 169.254.1.1
Subnet mask: 255.255.255.0
第二張網卡:
IP address: 169.254.2.1
Subnet mask: 255.255.255.0
這樣就可以解決前述的錯誤提示了。
在設定好網卡IP Address後,連接相機時請點選①Show unreachable GigE Vision devices後,在相機出現在列表時如②一般點選相機,再按下③Set IP Address…以進入相機IP設定視窗。(若相機仍沒有出現的話請確認防火牆及防毒軟體的設定)
相機的IP Address,在Subnet mask設為255的部份會自動設置成跟網卡一樣。最後的值請設為跟Host Address(即網卡IP Address)不同的值。
以這邊的舉例來說:
網路卡設定
IP Address: 169.254.2.1
Subnet Mask: 255.255.255.0
相機設定
IP Address: 169.254.2.2
Subnet Mask: 255.255.255.0
就可以解決無法連接的錯誤了。
另一台相機只要照上面的說明再另外設定即可。
SDK所包含的Sample Program,在最初的相機選擇時主要是使用PvDeviceFinderWnd class所提供的GUI視窗來進行的。
若不想使用此GUI視窗的話,可以參考以下的PDF(日文)中的第22頁,2.2 NIC情報:
[搭載CMOS sensor的機種]
CMOS sensor的相機請參考以下連結的計算公式表:
包含的相機型號:
STC_SBS231POE,STC_SCS231POE
STC_SBS312POE,STC_SCS312POE
STC_SBS500POE,STC_SCS500POE
STC_SBA500POE,STC_SCA500POE
STC_SBE132POE,STC_SCE132POE
STC-CMB2MPOE,STC-CMC2MPOE
STC-CMB4MPOE,STC-CMC4MPOE
[搭載CCD sensor的機種]
請參考這裡
“TOO_MANY_CONSECUTIVE_RESENDS”這個錯誤是指有太多重傳要求而發出的錯誤訊息。從相機送出的封包是以順序在傳送的,但若中間發現了有缺少/跳號的部份時就會送出重傳的要求。若這種重傳的要求太多的話會就會出現這個錯誤訊息。這種情況下請確認以下幾點:
1. eBUS Driver是否正確的安裝了?
2. Jumbo Packet是否正確的設定了?
3. 取像用的PC的性能是否足夠?
4. 使用的網路線材是否為Cat. 5e以上等級的線材?
5. 網路線材的長度有多長?
6. 若有使用Switch Hub,請確認該Switch Hub的性能
7. 使用的網路卡的性能
8. 防火牆的設定
9. 防毒軟體的設定。一般會建議將其關閉。