Spand Inserito: 15 marzo 2011 Segnala Share Inserito: 15 marzo 2011 Salve,A breve dovrò mettere in funzione una macchina con una CPU313C-DP che comunica con una CU320-2DP che gestisce 5 motori brushless con encoder assoluti. Normalmente utilizzo il telegramma 110 per la comunicazione tra plc e azionamento.In questo caso però mi viene richiesto di permettere al manutentore di fare l'azzeramento dell'asse dall'esterno, ho trovato il parametro per fare l'azzeramento, ma non quello per fare il salvataggio da RAM a ROM. Mi sono informato e ho capito che si rende necessaria una comunicazione aciclica con SFC58 - SFC59, ho guardato un pochino in giro nel forum ma non è che mi sia molto chiaro. Qualcuno può aiutarmi ad approcciare alla cosa?Grazie Link al commento Condividi su altri siti More sharing options...
aristo Inserita: 15 marzo 2011 Segnala Share Inserita: 15 marzo 2011 ...hai valutato la possibilità di installare encoders con tasto di zero oppure con linea di set? Link al commento Condividi su altri siti More sharing options...
Spand Inserita: 15 marzo 2011 Autore Segnala Share Inserita: 15 marzo 2011 Gli encoder sono quelli sui motori 1FK7 Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 16 marzo 2011 Segnala Share Inserita: 16 marzo 2011 SFC58 e 59 servono a comunicare dati tramite Profibus in modo asincrono, il puntatore fa riferimento ad un data set, cioè una formattazione di un messaggio secondo una sintassi ben precisa.per esempio:questo è il richiamo:// RAM TO ROM CALL SFC 58 // SFC 58 call IN0 :=M996.7 // RAM to ROM start bit IN1 :=B#16#54 // B#16#54 (fixed,not to change!)--> Periphery code identification (PE) IN2 :=#HW_address // Logic address of module;from HW Konfig: in example 256(Dec) = 100(Hex) IN3 :=B#16#2F // Dataset number (fixed,not to change!) : DS47(Dec) = 2F(Hex) IN4 :="Para_write".store_RAM_to_ROM //Data Struct with data to write RET_VAL:=MW992 // Error code in transfer error case OUT5 :=M996.4 // BUSY = 1: Write job still running.mentre il "Para_write".store_RAM_to_ROM è una parte di DB:store_RAM_to_ROM STRUCT Job_Nr BYTE B#16#1 Job number (0...255), job identification Job_ID BYTE B#16#2 Job type:Parameter read = 1; Parameter write = 2 Axis_Object_Nr BYTE B#16#1 Axis Object Nr. (Profibus sub ID) CU and not AXIS module Number_of_Parameters BYTE B#16#1 Number_of_Parameters to read/write Parameter_type BYTE B#16#10 Type of Parameter: 10 Value, 20 Description, 30 Text Number_of_SubIndexes BYTE B#16#1 Number of subIndexes to read/write Parameter_Number WORD W#16#3D1 Parameter number P977 copy RAM to ROM Subindex WORD W#16#0 Subindex datatype WORD W#16#4201 42 word, 01hex=1 number of blocks to be downloaded RAM_TO_ROM WORD W#16#1 Parameter ram to rom END_STRUCT questo è l'esempio di scrittura del parametro P977 che guarda caso corrisponde alla scrittura da RAM a ROM.pigroplc Link al commento Condividi su altri siti More sharing options...
Spand Inserita: 16 marzo 2011 Autore Segnala Share Inserita: 16 marzo 2011 Grazie molte, ora comincio a capirci qualcosa. A questo punto la domanda successiva è come mi risponde l'azionamento a questo comando? è possibile avere la spiegazione della struttura dei dati anche per SFC59? Nello specifico dovrei sapere quando il salvataggio è stato completato.Come mai negli esempi si leggono e scrivono 240byte, a cosa servono gli altri? Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 16 marzo 2011 Segnala Share Inserita: 16 marzo 2011 La struttura dei dati fa riferimento al DS47, identico per entrambe le direzioni da e evrso il PLC.L'azionamento conferma la avvenuta ricezione del messaggio attraverso i flag parametrizzati nella SFC, fronte di discesa del busy e assenza di errore.Quanto alla lunghezza di 240 byte è il limite fisico della trasmissione, se vedi la struttura che ti ho allegato della DB nel thread precedente vedi che sono molto meno i byte.Io queste SFC le ho usate una pigna di volte per scambio dati con Sinamics ma non ho mai avuto la necessità di superare i 240 byte....pigroplc Link al commento Condividi su altri siti More sharing options...
Spand Inserita: 18 marzo 2011 Autore Segnala Share Inserita: 18 marzo 2011 La mia domanda sulla lunghezza era per capire come mai cosi tanti byte (240) mi sembra che se ne usino molto meno, forse per questo che non ci capisco molto cosa è il DS47? Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 21 marzo 2011 Segnala Share Inserita: 21 marzo 2011 il DS47 è un data set, cioè un formato dati, in poche parole è suddiviso in intestazione (secondo uno standard predefinito) e un corpo dati che viene definito nell'intestazione. nell'esempio che ti ho postato il corpo dati è composto solamente da una word, RAM_TO_ROM WORD W#16#1 Parameter ram to rommentre nell'intestazione c'è il significato di ciò che viene spedito: Parameter_Number WORD W#16#3D1 Parameter number P977 copy RAM to ROM se invece devi trasferire i sottoparametri dove vengono scritte per esempio delle quote l'intestazione cambierà in funzione dei parametri da trasmettere, mentre la parte dati arriverà facilmente a 240 bytes. se per esempio l'intestazione sono se non erro è lunga 12 bytes hai un pacchetto dati netto di 228 bytes.228 bytes sono 57 Dword e se pensi che puoi trasmettere 64 quote vedi bene che lo devi fare tramite 2 pacchetti separati.pigroplc Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora