Ale03 Posted January 30 Report Share Posted January 30 Buongiorno, sono un nuovo utente, e per motivi di lavoro mi sto approcciando per la prima volta al mondo PLC Panasonic, Dovrei pilotare un motore passo passo utilizzando un plc Panasonic FP0R-C32P, avrei la necessità di muovere il motore di un certo numero di passi con una certa velocità. Consultando il manuale credo di aver individuato la funzione corretta in "F171_PulseOutput_Trapezoidal". Ho provato a ricopiare il codice presente nel . ma purtroppo mi da errore e non capisco il perché...Ho settato anche l'uscita ad impulsi canale 0 su Y0-Y1. Grazie mille del eventuale aiuto Link to comment Share on other sites More sharing options...
Roberto Gioachin Posted January 30 Report Share Posted January 30 L'esempio che hai copiato è vecchio ed il DUT configurato non corrisponde più a quanto richiesto dalla F171 Nelle dichiarazioni in alto seleziona per "dutTrapez" su tipo, premi il tasto con la freccia in giù e seleziona "F171_PulseOutput_Trapezoidal_Type1_DUT". Poi modifica il terzo "MOVE" e assegna in uscita "dutTrapez.diAccelerationTime" In pratica vanno solamente selezionati i nomi variabili del DUT aggiornato per queste versioni. Ne esce questo: Link to comment Share on other sites More sharing options...
Ale03 Posted January 31 Author Report Share Posted January 31 Buongiorno innanzitutto grazie mille per la risposta. Ho provato a fare le modifiche che mi hai consigliato ma purtroppo mi da ancora errore, ti allego la schermata. Grazie di nuovo in anticipo. Link to comment Share on other sites More sharing options...
Roberto Gioachin Posted January 31 Report Share Posted January 31 Vedo che questa volta non ti dia l'errore nella fase di compilazione, ma nell'esecuzione del programma. Nella tua schermata vedo che l'errore di calcolo si trova all'indirizzo 73 del programma, l'indirizzo si riferisce al compilato, ma premendo il pulsante ti porta una freccia sul punto del tuo programma dove viene generato l'errore di calcolo. L'errore si trova nella funzione F171, questo significa che uno dei parametri è fuori dei limiti, o meglio non è compatibile con la funzione. Link to comment Share on other sites More sharing options...
Ale03 Posted January 31 Author Report Share Posted January 31 Esatto si arresta nel esecuzione della F171. Ma come faccio a capire quale parametro va in errore? I valori impostati con le varie MOVE sono tutti nei limiti ho provato anche a cambiare i valori dwControlCode ma purtroppo appena lo metto in live va in allarme Link to comment Share on other sites More sharing options...
Roberto Gioachin Posted January 31 Report Share Posted January 31 Ci sono dei parametri da impostare prima dell'esecuzione del posizionamento, ti consiglio di leggere le informazioni del manuale che trovi QUI Link to comment Share on other sites More sharing options...
Ale03 Posted February 5 Author Report Share Posted February 5 Ho provato a controllare il manuale e fare le varie modifiche ma continua sempre a darmi lo stesso errore 😵💫... Hai qualche esempio? sicuramente sto sbagliando qualcosa come dici tu ma non riesco a capire cosa Link to comment Share on other sites More sharing options...
Roberto Gioachin Posted February 5 Report Share Posted February 5 (edited) L'errore è sul ControlCode, non è compatibile con la funzione. In questo modo non da nessun errore. I codici di controllo servono per configurare la funzione per i vari tipi di gestione degli impulsi in uscita, con il codice 16#0000 0112 esegui un posizionamento a trapezio. I vari codici li trovi nel manuale che ti ho indicato e che riporto qui Edited February 5 by Roberto Gioachin Link to comment Share on other sites More sharing options...
Ale03 Posted February 6 Author Report Share Posted February 6 Grazie mille, adesso funziona 😀🤗🤗 Link to comment Share on other sites More sharing options...
Ale03 Posted February 12 Author Report Share Posted February 12 Ciao, provo a romperti nuovamente.. il programma sta funzionando ma ho un ultima curiosità sai dirmi perché se inserisco l'istruzione F171 in una funzione (Fun)non mi funziona più? c'è un altro modo per richiamare la generazione di impulsi da più patri del programma? Link to comment Share on other sites More sharing options...
Roberto Gioachin Posted February 12 Report Share Posted February 12 Inseriscila in una FB invece che in una FUN. Molto spesso mi capita di sentire programmatori che non conoscono realmente la differenza fra FUN e FB, e questo vale per tutti i PLC. La FUN (Function) non ha memoria del ciclo precedente, mentre la FB (Function Block) ha memoria della scansione precedente, e questo permette di fare molte cose che non si possono fare con le FUN. Poi c'è sempre la possibilità di dare memoria della scansione precedente anche ad una FUN, utilizzando le variabili In/Out, ma questa è un altra storia. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now