luca31989 Inserito: 6 marzo Segnala Inserito: 6 marzo Ciao a tutti, per un progetto devo utilizzare degli assi elettrici in modalità di sincronizzazione. Ho creato una Function block che si chiama motion contenente i seguenti fb: MC_Power MC_Reset MC_MoveJog MC_Movrerelative MC_Moveabsolute MC_Halt MC_Home MC_MoveVelocity MC_Stop MC_GearIn Per ogni fb precedentemente elencato ho creato una DB di istanza. Questo però risulta scomodo quando devo richiamare quel blocchetto per N volte. E' possibile creare una DB di istanza nelle statiche della FB principale (ossia quella che richiama le viare MC)? Se si come? Grazie Luca
dina_supertramp Inserita: 6 marzo Segnala Inserita: 6 marzo (modificato) Modo "manuale" Vai nell'area static dell'FB dichiara un nuovo dato e come tipo di dato dichiara MC_....... Per vederlo disponibile nei tipi di dati devi aver richiamato almeno una volta l'istruzione all'interno dell'FB. Modo "automatico" Ogni volta che trascini un istruzione di motion dalla biblioteca, quando ti viene chiesta la creazione del DB d'istanza dichiara multi-istanza. Modificato: 6 marzo da dina_supertramp
dina_supertramp Inserita: 6 marzo Segnala Inserita: 6 marzo Quello che stai chiedendo, in ambiente Siemens è chiamato: DB a multi-istanza. Cioè sta istanziando un DB (in questo caso quello dell'oggetto motion) all'interno di un DB che è già d'istanza (quello dell'FB).
luca31989 Inserita: 8 marzo Autore Segnala Inserita: 8 marzo Ciao, grazie per la info. L'axis come lo dichiaro? Ho provato sia in input che in InOut di tipo ANY_DB ma non funziona. Funziona solo se trascino l'oggetto tecnologico. Ciao Luca
Mattia Spoldi Inserita: 8 marzo Segnala Inserita: 8 marzo TO_PositioningAxis se asse di posizionamento TO_SpeedAxis se asse di velocità TO_SynchronousAxis se asse sincrono
luca31989 Inserita: 8 marzo Autore Segnala Inserita: 8 marzo Ciao, Grazie per le info. Che tu sappia ne esiste uno generico che raggruppa tutti e tre? Altrimenti dovrei fare tre librerire cambiando il tipo di oggetto tecnologico. Grazie ancora Luca
Mattia Spoldi Inserita: 9 marzo Segnala Inserita: 9 marzo (modificato) prova a guardare qui https://support.industry.siemens.com/cs/document/109822593/simatic-s7-1500t-using-ref_to-and-db_any-with-technology-objects?dti=0&lc=en-IT Modificato: 9 marzo da Mattia Spoldi
Mattia Spoldi Inserita: 9 marzo Segnala Inserita: 9 marzo (modificato) ti allego un sorgente che avevo iniziato a fare per fare la stessa cosa, l'ho abbandonato perchè avere un blocco di motion che fa tutto non mi piace, però fino a dove ero arrivato funzionava nel caso volessi usarlo, è da completare con le funzioni mc che mancano, ma in ogni caso, toglierei la parte degli assi sincroni e la gestirei a parte Modificato: 9 marzo da Mattia Spoldi
luca31989 Inserita: 24 marzo Autore Segnala Inserita: 24 marzo Ciao a tutti, scusate il ritardo... sto sviluppando la libreria e sto provando i blocchetti mc jog e velocity. In jog mi funziona correttamente ma quando richiamo il blocchetto mc_velocity il motore rimane fermo. Rimane fermo anche se do lo stesso riferimento di velocità e il comando di velocità. Il blocchetto restituisce in esecuzione e in velocità ma il motore rimane fermo. Qualcuno sa aiutarmi? Grazie mille
dina_supertramp Inserita: 24 marzo Segnala Inserita: 24 marzo Verifica che al drive arrivi il riferimento di velocità, il comando di start e le abilitazioni, andando online sul drive. Non so cosa stai usando ma se è un drive Siemens puoi vedere facile i singoli bit delle parole di scambio col plc. Il blocco move velocity ti dà errori quando lo attivi? #Error ed #ErrorId
luca31989 Inserita: 24 marzo Autore Segnala Inserita: 24 marzo No, non da alcun errore... mi restituisce il bit "InVelocity", il bit error rimane a zero e il bit error id resta a zero. Non ho controllato che il drive riceva il bit corretto, ma ho controllato che al drive venisse scritto il setpoint. Il setpoint non viene scritto pur avendo messo una costante in ingresso al drive. Domani verifico e vi faccio sapere. Nel frattempo grazie mille
Mattia Spoldi Inserita: 26 marzo Segnala Inserita: 26 marzo ma per curiosità, sei partito a lavorare dal mio esempio o ne hai inventato uno tu?
beppeconti Inserita: 26 marzo Segnala Inserita: 26 marzo (modificato) Per chi non vuole farsi tutta la gestione da zero si possono utilizzare la librerie della Siemens "LAxisBasics" e "LAxisCtrl" https://support.industry.siemens.com/cs/document/109749348/simatic-s7-1500-s7-1500t-standard-application-axis-control?dti=0&lc=en-IT occhio che il blocco MC_MoveVelocity lavora sul fronte di salita del comando a differenza del blocco MC_MoveJog che lavora sul comando alto Modificato: 26 marzo da beppeconti
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