PEmicro-erlebniswelt

Programmazione di gruppo con i programmatori Cyclone

Una soluzione di produzione in serie è spesso basata sulla programmazione simultanea di gruppo di diverse schede target per soddisfare i requisiti di velocità e produttività. Questo scenario di programmazione può integrare i programmatori Cyclone in un dispositivo collegato a un pannello di schede da programmare. La programmazione è in genere controllata e monitorata da un computer locale, soprattutto quando vengono aggiunti dati dinamici personalizzati all'immagine binaria principale che viene programmata in ogni target.

La soluzione di programmazione di gruppo di PEmicro consiste nel controllare simultaneamente molti programmatori Cyclone tramite la Cyclone Control Suite. Un mix di immagini di programmazione, target e dati può essere programmato in molti dispositivi simultaneamente, mantenendo un alto livello di prestazioni poiché ogni Cyclone è un programmatore indipendente.

La Cyclone Control Suite offre diversi modi per controllare le operazioni di programmazione di gruppo. La Cyclone Control Console è un'utility a riga di comando che rende la programmazione di gruppo estremamente facile da configurare ed eseguire. Il Cyclone Control SDK si basa su una libreria a collegamento dinamico (DLL o SO) e fornisce un controllo dettagliato della programmazione di gruppo attraverso numerosi strumenti, linguaggi e ambienti sul PC host.

Gang_Programming_Cyclone

Cyclone può essere collegato direttamente al computer host tramite USB o in remoto tramite Ethernet.

1. Programmazione di gruppi con la console di controllo Cyclone


Il modo più veloce per eseguire la programmazione di gruppo è utilizzare la Console di Controllo Cyclone. La Console di Controllo Cyclone è una potente applicazione a riga di comando che può essere utilizzata per controllare uno o più Cyclone contemporaneamente. È possibile aggiungere/rimuovere immagini di programmazione, leggere/impostare impostazioni, avviare operazioni di programmazione e programmare dati dinamici. L'applicazione a riga di comando visualizza messaggi di stato completi e restituisce anche un codice di risultato che indica il successo o il fallimento. L'applicazione può essere avviata tramite uno script, una console o un'altra applicazione

Connessione a più Cyclone

Aprire più Cyclone con la console è semplice. puoi passare un elenco di nomi di cicloni separati da virgole al parametro -ciclone=(ad esempio -ciclone=agnes, colossus, hal9000) oppure utilizzare più parametri -ciclone (ad esempio -ciclone=agnes -ciclone=colossus -ciclone=hal9000). . Le altre operazioni della riga di comando vengono eseguite su tutti i cicloni aperti, compreso l'avvio della programmazione, ad eccezione della programmazione dei dati dinamici (dove il ciclone a cui applicare i dati dinamici viene specificato come parte del parametro). Ecco un esempio di elenco di immagini su due cicloni:

2_(1)

Avvio della programmazione dell'immagine principale su più Cyclon

Le stesse immagini possono essere avviate su più Cyclone contemporaneamente, semplicemente specificando più Cyclone sulla riga di comando. Se ci sono diversi set di immagini su ogni Cyclone, l'uso di descrizioni compresse delle immagini è un buon modo per assicurarsi che venga avviata l'immagine di programmazione appropriata . Se il set di immagini di ogni Cyclone è identico, il numero di immagine corrisponderà. Pertanto, il numero di immagine è un altro modo per lanciare le stesse immagini su più Cyclone . Nell'esempio seguente, l'immagine di programmazione "Green Image v1.0" viene avviata contemporaneamente su tre Cyclones diversi. I cicloni sono indicati con il nome (Agnes, Colossus, HAL9000) e l'immagine è indicata con la descrizione dell'immagine compressa "GreenImagev1.0".

3_(1)

Fornire dati dinamici aggiuntivi per ogni singolo target programmato

Oltre a programmare i dati che fanno parte di un'immagine di programmazione, è possibile programmare dati aggiuntivi in ogni dispositivo target. Questi dati "dinamici" possono essere specificati ogni volta che viene avviata un'immagine di programmazione, consentendo di personalizzarli target per target. I dati dinamici possono essere utilizzati in molti modi: serializzazione personalizzata, configurazione, tracciamento, codifica della data, ecc. È possibile specificare più serie di dati dinamici sulla riga di comando. I dati possono essere forniti come array di byte o come stringa null-terminated.

Come parte del parametro di programmazione dei dati dinamici, è necessario specificare il numero di maniglia del Cyclone. Questo permette di programmare dati dinamici diversi nelle destinazioni associate a ogni Cyclone aperto. Se viene avviato un solo Cyclone , viene utilizzato il valore 1. Se vengono aperti tre Cyclone , viene utilizzato il valore 2. Se sulla riga di comando vengono specificati tre Cyclone , questi saranno numerati 1, 2 e 3 sulla riga di comando in ordine da sinistra a destra.

La sintassi per programmare i dati dinamici come array di byte è la seguente:

   -putdynamicdata=[numero del ciclone], [indirizzo], [dati]

La sintassi per programmare i dati dinamici come stringa a terminazione nulla è:

   -putdynamicstring=[numero del ciclone], [indirizzo], [stringa]

Nell'esempio seguente, programmiamo sia un numero di serie unico generato dall'utente che una stringa di indirizzo IP unica generata dall'utente in due destinazioni diverse associate a due diversi Cyclone :

4_(1)

Recupero dei risultati di successo/errore da Python / Bash / Batch / ecc.

La Console di controllo Cyclone non solo visualizza le informazioni di successo e di errore come stringhe scritte sulla console, ma restituisce anche un codice di errore corrispondente al sistema operativo del PC. Per verificare questo codice di errore è possibile utilizzare un'applicazione o vari linguaggi di scripting. Un codice di errore pari a zero indica un'operazione riuscita, mentre un codice di errore diverso da zero indica un errore.

Ecco un esempio di script Python che può essere utilizzato per recuperare le informazioni di successo/errore dalla Console di controllo Cyclone:

Importa subprocesso
importa sys
P=subprocess.run ("cyclonecontrolconsole -cyclone=Agnes -launchimage=green_serial", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print ("STDOUT print:")
print (P.stdout.decode ())
if P.returncode== 0:
print ("Programmato con successo!")
altrimenti:
print ("Programmazione fallita !!! con codice di errore" + str (P.returncode))
sys.exit (1)
Ecco un esempio di file batch di Windows che può essere utilizzato per ripristinare con successo le informazioni di successo/errore dalla Console di controllo Cyclone:

cyclonecontrolconsole -cyclone=Agnes -launchimage=green_serial
Quando non si verifica più ERRORLEVEL 1
echo programmato con successo!
finito
:Si è verificato un errore
Echo programmazione fallita !!!!!
: fatto
Ecco un esempio di script di shell bash che può ripristinare con successo le informazioni di successo/errore dalla Console di controllo Cyclone:

#! / bin / bash
cyclonecontrolconsole -cyclone=Agnes -launchimage=green_serial
errorReturn=$?
if [$ errorReturn== 0]; then
  Echo 'Successfully programmed!'
otherwise
  echo 'programming failed !!!!! with the error code '$ errorReturn
  Exit 1
fi

2. Programmazione di gruppo con il Cyclone Control SDK

Il Cyclone Control SDK di PEmicro fornisce allo sviluppatore una libreria condivisa caricabile dinamicamente (DLL o SO), un codice applicativo di esempio e la documentazione di supporto per consentire alle applicazioni software personalizzate di controllare direttamente il Cyclone. Sono supportati linguaggi e ambienti come C, C ++, Delphi, C #, Java, Python e Labview.

Le informazioni sui dati binari, le informazioni sugli algoritmi, le operazioni di programmazione e altre impostazioni sono memorizzate in un'immagine SAP che viene archiviata direttamente nella memoria FLASH del Cyclone. Le operazioni di programmazione possono essere avviate sul Cyclone semplicemente premendo un pulsante. Tuttavia, l'SDK consente a un PC di impartire un comando al Cyclone per avviare la stessa sequenza di programmazione e di fornire altre funzioni, come la possibilità di aggiungere dati dinamici a ogni scheda in fase di programmazione e la possibilità di ripristinare le informazioni sugli errori.

 
Connessione a più Cyclone e avvio di un'immagine di programmazione

La connessione a più Cyclone tramite l'SDK è molto semplice. Di seguito è riportato un esempio di codice in C:

5

In questo caso, le operazioni di programmazione vengono avviate su 3 unità Cyclone separate collegate al PC host. Questo funziona anche se tutti i Cyclone sono collegati a porte diverse o in remoto dal PC. Il programma attende il completamento prima di continuare. In sostanza, 3 unità separate vengono programmate in parallelo. Molte unità Cyclone possono essere controllate in parallelo da un unico PC host, poiché il lavoro di programmazione viene svolto sui Cyclone stessi.

 

Fornendo dati dinamici aggiuntivi per ogni singolo obiettivo programmato

Nell'esempio seguente, un numero di serie viene programmato in ciascuno dei target associati ai tre Cyclone.

 

6

A questo scopo, il codice chiama la routine "startDynamicDataProgram". Gli argomenti sono l'handle del ciclone restituito da "connectToCyclone", l'indirizzo da programmare (in questo caso l'indirizzo 0), la lunghezza dei dati da programmare e un buffer di caratteri.

 

Verifica degli errori

L'SDK Cyclone Control offre all'utente la possibilità di verificare la presenza di errori al termine di un comando di programmazione (visualizzato quando checkCycloneExecutionStatus restituisce 0).

7

Per cercare gli errori, chiama la routine "getNumberOfErrors" con l'handle del ciclone come unico argomento. Il valore di ritorno di questa routine è il numero di errori nel ciclone specificato. Se questo valore è 0, non ci sono stati errori. Utilizzando la funzione "getErrorCode" con l'handle del ciclone e il numero di errori (1. il numero di errori), l'utente può recuperare il numero di codice dell'errore che si è verificato. Per maggiori informazioni, inserisci il codice di errore e passalo alla routine "getDescriptionOfErrorCode" nell'SDK di Cyclone Control, che restituisce una descrizione testuale dettagliata dell'errore.

 

Conclusione

Utilizzando la Cyclone Control Suite di PEmicro in combinazione con più Cyclone, è molto facile creare una configurazione di programmazione collettiva. Poiché ogni Cyclone è un programmatore indipendente, è possibile programmare un mix di immagini, target e dati in molti dispositivi contemporaneamente, mantenendo un alto livello di prestazioni. La Console di controllo Cyclone semplifica notevolmente l'impostazione della programmazione di gruppo, mentre l'SDK di controllo Cyclone consente una personalizzazione dettagliata del controllo della programmazione di gruppo da molti strumenti, linguaggi e ambienti.

Programmatore Cyclone

pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Il PEmicro Cyclone FX Universal è un programmatore indipendente per processori ARM e 8/16/32 bit.

1.369,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universal
CYCLONE-LC-UNIV
Il PEmicro Cyclone LC Universal è un programmatore indipendente per processori ARM e 8/16/32 bit.

979,00 €*
pemicro cyclone fx armCyclone FX ARM Header Layout
Cyclone FX ARM
CYCLONE-FX-ARM
Il PEmicro Cyclone FX ARM è un programmatore indipendente per processori ARM.

1.199,00 €*