Esempio: CANopen
Prodotto: CODESYS CANopen Manager SL
Questo esempio riguarda l'interfaccia di programmazione dello stack di comunicazione del master CANopen e dello slave CANopen. Il progetto contiene esempi per SDO, NMT, diagnostica e configurazione dinamica dei parametri di comunicazione (baud rate, ID di rete, ID del nodo) e molti altri.
Descrizione
Il progetto contiene diversi esempi per l'utilizzo dell'interfaccia di programmazione dello stack CANopen Master e CANopen Slave. Gli argomenti trattati sono i seguenti:
SDO (expedited, segmented, block), accesso al dizionario degli oggetti
Gestione della rete (NMT)
Diagnostica (stato CANopen, EMCY)
Gestore di eventi per il dizionario degli oggetti e la macchina a stati del gestore CANopen
Riconfigurazione: modifica dinamica della velocità di trasmissione, dell'ID di rete e dell'ID del nodo
Accesso alla configurazione CAN tramite la libreria di diagnosi del dispositivo
Informazioni aggiuntive
Il progetto include uno stack CANopen Master e uno stack CANopen Slave che comunicano tra loro tramite CANbus. Per la messa in servizio del progetto sono necessarie due interfacce CAN interconnesse. Il modo più semplice per implementare ciò è utilizzare il file CODESYS Control Win controller e un adattatore USB-CAN a 2 canali, come PEAK PCAN-USB Pro o due adattatori a 1 canale.
Affinché la comunicazione funzioni, il rispettivo componente del sistema di runtime deve essere inserito nel file di configurazione.
Per ulteriori informazioni, vedere: Configurazione dell'esecuzione.
Il progetto può essere utilizzato anche su qualsiasi controllore con due interfacce CAN mediante un aggiornamento del dispositivo del PLC. Il progetto si articola in tre aree:
CANbus Examples
ChangeBaudrate
: Modifica dinamica del baud rate in modalità runtime mediante riconfigurazioneEnableDisableCANbus
: Attivazione e disattivazione dinamica di un CANbus in modalità runtime mediante riconfigurazioneGetCANbus
: Ricerca generica di un'istanza CANbus ingegnerizzata tramite la libreria di diagnosi del dispositivo
CANopen Master examples
Diagnostica
ReceiveEMCYFromAllDevicesExample
: Ricezione di messaggi di emergenza tramiteCiA405.RECV_EMCY
ReceiveEMCYFromOneDeviceExample
: Ricezione di messaggi di emergenza per uno specifico dispositivo tramiteCIA405.RECV_EMCY_DEV
GetCANopenKernelStateExample
: Rilevamento dello stato del kernel CANopen tramiteCIA405.GET_CANOPEN_KERNEL_STATE
GetStateExample
: Rilevamento dello stato CANopen di uno slave tramiteCIA405.GET_STATE
Gestione della rete
GetCANopenManagerNodeIDExample
: Rilevamento dell'ID del nodo CANopenManager tramite CiA405.GET_CANOPEN_KERNEL_STATE
: Invio di richieste NMT tramite CIA405.NMT
SDO (trasferimento dati aciclico)
ExpeditedReadExample
: Lettura di un oggetto <= 4 byte tramite SDO (expedited transfer) tramiteCiA405.SDO_READ4
ExpeditedWriteExample
: Scrittura di un oggetto <= 4 byte tramite SDO (expedited transfer) tramiteCIA405.SDO_WRITE4
SegmentedAndBlockReadExample
: Lettura di un oggetto di qualsiasi lunghezza tramite SDO (trasferimento segmentato o trasferimento a blocchi) medianteCiA405.SDO_READ_DATA
SegmentedAndBlockWriteExample
: Scrittura se un oggetto di qualsiasi lunghezza tramite SDO (trasferimento segmentato o trasferimento a blocchi) tramiteCiA405.SDO_WRITE_DATA
Funzioni API generali
CANopenManagerAPI
: Dimostra l'utilizzo di tutti i metodi e le proprietà dell'istanza CANopenManagerCANopenManagerEventHandler
: Implementazione esemplare di un gestore di eventi CANopenCANopenRemoteDeviceAPI
: Dimostra l'uso di tutti i metodi e le proprietà di un'istanza CANopenRemoteDevice
CANopen Slave examples
Diagnostica
GetLocalDeviceInfoExample
: Dimostra la lettura dello stato CANopen e dell'ID del nodo
Gestione della rete
ChangeNodeIDExample
: Modifica dell'ID del nodo in modalità runtimeNMTExample
: Modifica dello stato CANopen locale
Dizionario degli oggetti
ReadObjectExample1
: Lettura di un oggetto dal dizionario oggetti localeReadObjectExample2
: Esempio alternativo diReadObjectExample1
WriteObjectExample1
: scrittura del valore di un oggetto nel dizionario degli oggettiWriteObjectExample2
: Esempio alternativo diWriteObjectExample1
CountObjects
: attraversa tutti gli oggetti del dizionario oggetti tramite_3SCSS.ObjectIterator
GetPDOInfo
: esempio aggiuntivo di attraversamento del dizionario degli oggettiObjectDictionaryEventHandler
: Implementazione esemplare di un gestore di eventi di dizionario oggetti
Requisiti di sistema e restrizioni
Sistema di programmazione | CODESYS Development System (versione 3.5.14.0 o successiva) |
Sistema di esecuzione | CODESYS Control Win (versione 3.5.14.0) |
Componenti aggiuntivi | Due interfacce CAN |
Avviso
SCARICAMENTO Progetto