Tutorial

pylon: Sistemi di visione USB3 per tempo reale e prestazioni elevate

Ottimizzare i sistemi per Windows e Linux

In questa esercitazione si apprende come impostare le configurazioni a telecamera singola in pylon per ottenere le massime prestazioni nella propria applicazione. L'attenzione si concentra sulle ottimizzazioni per le configurazioni USB3 Vision che tengono conto di telecamere, controller host e cavi.

Avvio rapido - 5 passi per ottenere flussi stabili

  1. Aprire la telecamera nel Viewer del pilone:

  2. Configurare correttamente i driver e il sistema: driver del controller host attuali, impostazioni del sistema operativo adeguate (ad es. priorità in tempo reale)

  3. Controllo mirato della larghezza di banda: limiti sensibili e distribuzione pulita della larghezza di banda USB disponibile → evita la perdita di dati

  4. Ottimizzare i parametri di streaming: Dimensione massima del trasferimento, numero di blocchi di richieste USB (URB) e dimensioni del buffer → trasferimento efficiente, carico minimo della CPU

  5. Utilizzare il monitoraggio e l'analisi degli errori: Avviare il grabbing continuo; contatore di statistiche per frame persi, risincronizzazioni o problemi di memoria → rilevare tempestivamente i colli di bottiglia nella configurazione

Suggerimento

Requisiti per le prestazioni complete del sistema

  • Cavo USB 3.0: in qualità industriale; i componenti di alta qualità riducono gli errori di trasmissione e aumentano la stabilità del sistema.

  • Controller host di alta qualità (controller USB): con driver aggiornati; controller obsoleti o di qualità inferiore spesso causano colli di bottiglia nella larghezza di banda, errori di risincronizzazione e perdita di frame.

  • Memoria del PC (RAM) sufficiente: particolarmente importante per trasferimenti di grandi dimensioni.

Di seguito sono riportati i parametri che è possibile impostare per ottenere le massime prestazioni della configurazione di visione in pylon. Le impostazioni della telecamera sono valide per Windows e Linux. I parametri di sistema aggiuntivi per Linux sono elencati separatamente.

Impostazioni ottimali per le telecamere USB 3.0

Le impostazioni della telecamera influenzano in modo significativo la stabilità e le prestazioni della trasmissione dei dati. L'obiettivo è regolare in modo ottimale la larghezza di banda ed evitare errori.

Questi due parametri nel pylon Viewer hanno un effetto particolare sulla larghezza di banda e sulla stabilità:

  • Modalità limite di velocità del collegamento del dispositivo: Attiva o disattiva l'intero controllo della larghezza di banda Consigliato:

    Attivato, quando la larghezza di banda dell'host controller è limitata

  • Limite di velocità del collegamento del dispositivo: Determina la larghezza di banda massima disponibile della telecamera per la trasmissione dei dati. I colli di bottiglia possono essere evitati riducendo questo valore.

In pylon, accedere all'albero Features All e selezionare Controlling the frame rate come attività comune. I parametri della telecamera si trovano nella voce Controllo dispositivo.

Impostare i parametri USB3 per Windows

I seguenti cinque parametri USB3 sono configurati in pylon alla voce Parametri dello stream. Le impostazioni corrette aumentano le prestazioni e la stabilità del sistema di visione, riducendo il carico della CPU.

  • Dimensione massima di trasferimento (MaxTransferSize)
    Dimensione dei pacchetti di flusso per il trasferimento delle immagini (paragonabile a jumbo frame con GigE). Valori maggiori = prestazioni più elevate, minor carico della CPU; max. = 4 MB a seconda del controller host USB.

  • Numero massimo di URB in coda (NumMaxQueuedUrbs)
    URB = blocchi di richieste USB, cioè richieste USB elaborabili simultaneamente.
    Utilizzato per impostare in modo ottimale la telecamera e il controller host.
    Provare un valore più alto = meno jitter, trasferimento dati più stabile (limite: RAM disponibile del PC); impostazione predefinita = 64

  • Numero massimo di buffer (MaxNumBuffer)
    Numero di buffer dell'immagine - aumentare se l'elaborazione dell'immagine richiede temporaneamente più tempo; valore predefinito = 10

  • Numero di buffer in coda (NumQueuedBuffers)
    Mostra quanto sono stabili il numero di buffer e l'acquisizione dell'immagine; un valore in calo potrebbe essere un'indicazione di perdita di immagine.

  • Priorità del thread del ciclo di trasferimento (TransferLoopThreadPriority)
    Priorità del thread che elabora i trasferimenti USB. Per ottenere le massime prestazioni: avviare pylon Viewer
    con diritti di amministratore e aumentare la priorità da 15 a 25 (max. = 31).

Passare alla struttura Tutte le caratteristiche e selezionare Verifica della perdita di dati immagine della telecamera come attività comune. I parametri USB3 si trovano nella voce Parametri flusso.

Ottimizzare le configurazioni USB3 Vision in Linux

Le impostazioni della telecamera sono le stesse di Windows. Tuttavia, in Linux sono rilevanti alcuni parametri di sistema aggiuntivi:

  • Ricezione della priorità del thread
    Per la trasmissione delle immagini, il thread deve ricevere una
    priorità in tempo reale.

  • Aumentare lo spazio del kernel USB-FS

    • Previene i colli di bottiglia nella memoria del kernel per i trasferimenti USB

    • Particolarmente importante per: trasferimenti di grandi dimensioni

  • Aumentare il limite dell'handle del file / descrittore del file

    • Importante per le confezioni di grandi dimensioni

    • Personalizzazione a seconda del sistema e del carico di lavoro

Impostazione di vari parametri di sistema in Linux

Demo: opzioni di messa a punto

Nella demo si apprende come impostare i vari parametri nel pylon Viewer in modo che il sistema funzioni in modo ottimale e stabile. Per effettuare le impostazioni, è necessario utilizzare il pylon Viewer con i diritti di amministratore.

La configurazione comprende un PC Windows, una telecamera USB3 e il software pylon.

Risoluzione dei problemi & monitoraggio del successo

pylon offre diversi parametri statistici che indicano i problemi in una fase iniziale:

  • Conteggio buffer non riuscito: Immagini corrotte o scartate; indica che si stanno già verificando errori (ad esempio, colli di bottiglia della larghezza di banda).

  • Conteggio dei fotogrammi mancanti: La telecamera ha catturato un'immagine ma non l'ha trasmessa, ad esempio perché il buffer interno della telecamera si è riempito troppo velocemente → indicazione di: frame rate troppo alto, larghezza di banda del controller host troppo bassa

  • Conteggio della risincronizzazione: Errore fatale → il controller host ripristina la connessione → conseguenze: tutte le immagini memorizzate nel buffer della telecamera vengono perse
    Cause: controller host massicciamente sovraccarico, cavo difettoso, alimentazione insufficiente

Per un'analisi precisa: Aprire il visualizzatore di piloni → Caratteristiche Tutte → Parametri del flusso → osservare i valori statistici

Accedere alla struttura Features All di pylon e selezionare Checking whether the camera is losing image data come attività comune. I parametri statistici si trovano nella voce Parametri del flusso.

Facendo clic con il tasto destro del mouse su un parametro (sul lato destro dello schermo, alla voce Caratteristiche), è possibile accedere alla documentazione del prodotto con spiegazioni dettagliate e frammenti di codice sorgente. È possibile accedervi in qualsiasi momento dal pylon Viewer, anche senza una connessione a Internet.

Documentazione dei Prodotti Basler

Sistemi di visione USB3 ottimizzati

Le prestazioni e l'affidabilità di un sistema USB3 Vision dipendono sempre da diversi livelli che devono interagire in modo ottimale.

  • Hardware di alta qualità: Cavo USB3 industriale e controllore host corrente

  • Impostazioni ottimizzate della telecamera: controllo della larghezza di banda, dimensioni dei pacchetti e ritardi

  • Correggere i parametri USB3 in pylon: Dimensioni di trasferimento, URB, Gestione del buffer, Priorità dei thread

  • Monitoraggio del sistema tramite i parametri statistici: conteggio dei buffer non riusciti, conteggio dei frame mancati, conteggio della risincronizzazione

  • Ottimizzazioni aggiuntive sotto Linux: Thread in tempo reale, spazio del kernel e limiti dei file handle

Se configurate correttamente, le configurazioni a telecamera singola consentono di ottenere una trasmissione di immagini in tempo reale stabile, senza perdite e ad alte prestazioni.

Prodotti per sistemi USB 3.0

Vuoi implementare una soluzione analoga? Questi prodotti possono aiutarti.

Come possiamo sostenerti?

Saremo lieti di consigliarti nella scelta dei prodotti più giusti per la tua applicazione.