Ale03 Inserito: 30 gennaio 2024 Segnala Inserito: 30 gennaio 2024 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
Roberto Gioachin Inserita: 30 gennaio 2024 Segnala Inserita: 30 gennaio 2024 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:
Ale03 Inserita: 31 gennaio 2024 Autore Segnala Inserita: 31 gennaio 2024 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.
Roberto Gioachin Inserita: 31 gennaio 2024 Segnala Inserita: 31 gennaio 2024 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.
Ale03 Inserita: 31 gennaio 2024 Autore Segnala Inserita: 31 gennaio 2024 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
Roberto Gioachin Inserita: 31 gennaio 2024 Segnala Inserita: 31 gennaio 2024 Ci sono dei parametri da impostare prima dell'esecuzione del posizionamento, ti consiglio di leggere le informazioni del manuale che trovi QUI
Ale03 Inserita: 5 febbraio 2024 Autore Segnala Inserita: 5 febbraio 2024 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
Roberto Gioachin Inserita: 5 febbraio 2024 Segnala Inserita: 5 febbraio 2024 (modificato) 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 Modificato: 5 febbraio 2024 da Roberto Gioachin
Ale03 Inserita: 6 febbraio 2024 Autore Segnala Inserita: 6 febbraio 2024 Grazie mille, adesso funziona 😀🤗🤗
Ale03 Inserita: 12 febbraio 2024 Autore Segnala Inserita: 12 febbraio 2024 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?
Roberto Gioachin Inserita: 12 febbraio 2024 Segnala Inserita: 12 febbraio 2024 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.
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