Vai al contenuto
PLC Forum


Focas


tam_tam

Messaggi consigliati

Ciao,

sto cercando di utilizzare le librerie focas su PC tramite C# per recuperare il commento del programma in esecuzione su due CN serie 31i e 32i. Riesco a collegarmi, leggere le macro ma non c'è verso di riuscire a leggere i commenti del programma. Utilizzo la funzione cnc_rdprogdir3 della libreria FWLIB32 e la parametrizzo con: type = 2, top_prog = 1, num_prog = 2000. C'è qualcosa che sbalgio? Bisogna chiamare qualche altra funzione prima della cnc_rdprogdir3 per abilitarne il funzionamento?

 

Grazie!

Link al commento
Condividi su altri siti


Nessun errore....la funzione ritorna zero per cui tutto ok ma su num_prog ho zero, è come se non trovasse quel che viene richiesto, tra l'altro il numero di programma attivo viene correttamente letto tramite la cnc_exeprgname

Modificato: da tam_tam
Link al commento
Condividi su altri siti

Il controllo 31i B ha due canali che girano in parallelo e chiamando la stessa identica funzione sul secondo canale (ho scoperto che esiste la cnc_setpath) funziona correttamente mentre sul primo niente da fare fino a quando di colpo sembra essersi sbloccato e ora funziona correttamente anche sul primo canale.

 

L'altro controllo è un i32 B con un solo canale, leggo le macro e lo stato ma nulla da fare con i commenti...

 

Codice:

 

            Focas1.PRGDIR3 prgDir3 = new Focas1.PRGDIR3();
            int top = prgNum;
            short num = 1;
            ReturnCodes.Code returnCode = (ReturnCodes.Code)Focas1.cnc_rdprogdir3(focasHandle, 1, ref top, ref num, prgDir3);

 

prgNum è il numero di programma attivo che viene correttamente letto dalla cnc_exeprgname

Link al commento
Condividi su altri siti

Mah, sembra giusto. Sei sicuro che il problema non sia da un'altra parte? Anche perchè quello che dici

Quote

mentre sul primo niente da fare fino a quando di colpo sembra essersi sbloccato e ora funziona correttamente anche sul primo canale

E' abbastanza strano; ho smanettato molto con le Focas e posso affermare che se una funzione ritorna 0 i dati ci sono e quella funzione in passato l'ho usata.

Se metti un break point subito sotto il richiamo della funzione cosa trovi scritto in top e num ?

Comunque mercoledì rientro in ufficio e ho un simulatore Fanuc per cui in 10 minuti posso fare una prova.

 

 

Link al commento
Condividi su altri siti

Guarda mi viene da pensare sia un problema legato al fatto che va a cercare il programma nel posto sbagliato lato cn perchè se mi ritorna zero la funzione indica che non ha semplicemente trovato quel che è stato richiesto ma non ci sono stati errori. Riesco a leggere il numero del programma attivo non capisco perchè la cnc_rdprogdir3 ritorni zero sia in top che in num e solamente sul 32i

 

Potrebbe esserci un conflitto di versione? Mi sta venendo il dubbio di utilizzare la versione 1 delle focas....provo a vedere se trovo il modo di verificare la versione delle librerie...altro non mi viene in mente nulla...

 

Che versione del cn hai sul simulatore? Se non ti porta via troppo tempo fare la prova con il simulatore te ne sarei grato anche se sono sicuro ti funzioni tutto alla perfezione

 

Grazie!

Link al commento
Condividi su altri siti

Ho provato con un CNC vero, un serie 0i e mi funziona.

Ho buttato giù un metodo "grezzo" giusto per provare, che mi va a leggere 10 programmi a partire dal numero 1 fatto così:

        public int ReadProgramDirectory(ref Exception exc)
        {
            try
            {
                short type = 2;
                int topprg = 1;
                short numprg = 10;
                Focas1.PRGDIR3 prgdir3 = new Focas1.PRGDIR3();
                int ret = Focas1.cnc_rdprogdir3(libHandle, type, ref topprg, ref numprg, prgdir3);

                return 0;
            }
            catch (Exception ex)
            {

                exc = ex;
                return -1;
            }

        }

Se non selezioni prima il path la funzione di default legge il primo.

Io uso le Focas 2

Modificato: da lucios
Link al commento
Condividi su altri siti

Codice uguale identico al mio..il path lo seleziono e difatti funziona sulla macchina 31i che ha due path mentre sul 32i che ha un path solo lo seleziono comunque ma non cambia nulla e ricevo un bello zero sia in top che in numprg. A sto punto il problema penso sia del 32i....non c'è nulla da impostare a livello cn? Nessun parametro oltre alla porta?

 

Grazie!

Fabio

Link al commento
Condividi su altri siti

No, non penso che sia un problema del 32i.

Se le altre funzioni Focas funzionano non c'è nient'altro da settare, almeno a mia conoscenza.

Ma se apri la cartella folder del CN in PROG vedi la lista dei programmi? Puoi postare la foto della schermata della folder?

Modificato: da lucios
Link al commento
Condividi su altri siti

Mi hai dato l'imboccata giusta!!

 

Il programmatore cn ho scoperto che ha messo tutti i programmi sotto cartelle che non sono nè PATH1 nè PATH2 (e neppure PROG che non esiste nel CN). Copiando un programma sotto PATH1 riesco a recuperarne le info. Domanda...sai se esiste un sistema per specificare su quale cartella deve lavorare la cnc_rdprogdir3?

Link al commento
Condividi su altri siti

Che io sappia no, ho visto che esiste la funzione "cnc_wrpdf_curdir" che setta la cartella corrente, ma non l'ho mai utilizzata.

Prova magari a settare la cartella giusta prima di richiamare la cnc_rdprogdir3, magari funziona anche se ho qualche dubbio perchè nella documentazione non è che la cosa sia spiegata molto bene...

Link al commento
Condividi su altri siti

Difatti non funziona e la cnc_wrpdf_curdir mi ritorna sempre EW_ATTRIB che vuol dire parametro dir_kind non valido, peccato che dalla documentazione ci sono solo due valori possibili (1 e 2) e nessuno dei due va...ho provato anche con 0 e 3 con ovviamente lo stesso risultato...bha...

Modificato: da tam_tam
Link al commento
Condividi su altri siti

  • 1 year later...

Buongiorno a tutti,

mi ritrovo a dover approfondire questa tematica per il discorso industria 4.0 nell'azienda dove lavoro.

Non riesco a capire se queste librerie focas, o più precisamente le focas II, sono librerie che vanno installate sul computer della macchina con un normale installer o se vanno flashate in qualche modo sul plc?
inoltre, sono soggette a licensing? qualcuno potrebbe darmi maggiori dettagli a riguardo?

Si trova poca documentazione in giro.

Ringrazio in anticipo.

Link al commento
Condividi su altri siti

1 ora fa, FrancescoP86 scrisse:

mi ritrovo a dover approfondire questa tematica

 

Per favore leggi attentamente il regolamento.

Gli accodamenti son sempre vietati,anche per argomenti simili. Bisogna sempre aprire una nuova discussione.

Questa discussione, inoltre, è ferma da un anno!

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...