CANOpen Library su TD570 - LogicLab
Posted: 10/01/2014, 0:08
Salve,
con la presente volevo fare una banale domanda sulla libreria CANOpen di Pixys presente nell'ambiente LogicLab e che io sto adoperando su un TD570 per gestire due motori Phase Motion Ultract TW.
Ho effettuato l'importazione dei file eds dei motori e configurato la risorsa hardware.
Ora devo provvedere a livello di codice di andare a settare il node-id dei due motori (di fabbrica identici) e la baud rate da adoperare. Per fare questo il protocollo CANOpen ed il prodilo DSP402 e DS305 mi dicono che devo attivare il servizio LSS attraverso l'invio di un comando. Per semplicità ne riporto uno:
Frame 1: COB-ID = 7E5h B0 = 04h B1 = 01 => Per selezionare la Modalità di Configurazione
Frame 2: COB-ID = 7E5h B0=11h B1=node-id => Per impostare il node-id
Frame 3: COB-ID = 7E5h B0=13h B1=00h B2=baud rate => Per impostare la baud rate
Nel realizzare queste operazioni attraverso le FBD CAN_WRITE_SDO_WORD mi trovo a dover assegnare i parametri di input della funzione che sono:
Index, sub index ed il valore. da quello che ho capito il COB-ID dovrebbe essere generato in automatico in fase di compilazione mentre io dovrei solo assegnare il node-id, ma non mi trovo con il valore da assegnare all'index e sub index perché non riesco a trovare la corrispondenza fra i byte B0, B1 dei tre frame con quelli dell'object dictionary che mi trovo nel datasheet dei motori. Mi domando se per attivare il servizio LSS devo adoperare funzioni diverse di messaggistica su protocollo CAN e soprattutto dove li reperisco nell'ambiente di programmazione.
con la presente volevo fare una banale domanda sulla libreria CANOpen di Pixys presente nell'ambiente LogicLab e che io sto adoperando su un TD570 per gestire due motori Phase Motion Ultract TW.
Ho effettuato l'importazione dei file eds dei motori e configurato la risorsa hardware.
Ora devo provvedere a livello di codice di andare a settare il node-id dei due motori (di fabbrica identici) e la baud rate da adoperare. Per fare questo il protocollo CANOpen ed il prodilo DSP402 e DS305 mi dicono che devo attivare il servizio LSS attraverso l'invio di un comando. Per semplicità ne riporto uno:
Frame 1: COB-ID = 7E5h B0 = 04h B1 = 01 => Per selezionare la Modalità di Configurazione
Frame 2: COB-ID = 7E5h B0=11h B1=node-id => Per impostare il node-id
Frame 3: COB-ID = 7E5h B0=13h B1=00h B2=baud rate => Per impostare la baud rate
Nel realizzare queste operazioni attraverso le FBD CAN_WRITE_SDO_WORD mi trovo a dover assegnare i parametri di input della funzione che sono:
Index, sub index ed il valore. da quello che ho capito il COB-ID dovrebbe essere generato in automatico in fase di compilazione mentre io dovrei solo assegnare il node-id, ma non mi trovo con il valore da assegnare all'index e sub index perché non riesco a trovare la corrispondenza fra i byte B0, B1 dei tre frame con quelli dell'object dictionary che mi trovo nel datasheet dei motori. Mi domando se per attivare il servizio LSS devo adoperare funzioni diverse di messaggistica su protocollo CAN e soprattutto dove li reperisco nell'ambiente di programmazione.