nuovo componente user problemi lettura pin float

Sezione dedicata a Linuxcnc
Rispondi
giorgiofoga
Junior
Junior
Messaggi: 71
Iscritto il: venerdì 25 gennaio 2013, 10:44
Località: padova - (PD)

nuovo componente user problemi lettura pin float

Messaggio da giorgiofoga » martedì 16 dicembre 2014, 17:18

Come da titolo ho modificato il mio componente user_main per leggere un pin in float che è un segnale encoder.n.position => miocomponente.piFloatIN (ovviamente su axis si vede il pi variare al variare dei valori dell'encoder)

Lo scopo è usare il valore per rendere 4 pin float out in uscita in questo modo:

pinfloatOut1 = piFloatIN - 40.0;
pinfloatOut2 = piFloatIN - 200.0;
pinfloatOut3 = piFloatIN - 150.0;
pinfloatOut4 = piFloatIN - 400.0;


Incredibile ma non funziona ... pensare che sullo stesso compponente leggo da una ethernet dei valori che mi arrivano da altro pc e li metto in uscita in questo modo:

pinfloatOut11 = - 40.0;
pinfloatOut21 = - 200.0;
pinfloatOut31 = - 150.0;
pinfloatOut41 = - 400.0;

tutto va alla grande.

Perchè i valori di pinfloatOut'n' non si aggiornano mentre quelli di pinfloatOut'n'1 si?????

Innaig
Senior
Senior
Messaggi: 766
Iscritto il: venerdì 26 settembre 2014, 15:49
Località: Forlì

Re: nuovo componente user problemi lettura pin float

Messaggio da Innaig » martedì 16 dicembre 2014, 17:23

Hai provato a scrivere:
pinfloatOut1 = (piFloatIN - 40.0);

Su cosa programmi?

giorgiofoga
Junior
Junior
Messaggi: 71
Iscritto il: venerdì 25 gennaio 2013, 10:44
Località: padova - (PD)

Re: nuovo componente user problemi lettura pin float

Messaggio da giorgiofoga » martedì 16 dicembre 2014, 18:23

non cambia nulla ..... in C su ubu10.04 e linuxcnc 2.6.3

Non capisco perchè non si aggiornano i valori...... sicuramente è solo una questione di aggiornamento .... ovviamente il valore pinin legato ad un encoder cambia in continuo .... e credo non venga considerato una instanza del ciclo usermain_loop (FOR_ALL_ISTANCE()) ..... se sei pratico.

Ma se anche metto una variabile bit che sicuramente è considerata istanza come "starter" non cambia nulla ..... (es if(miobit) { operazioni con float in e out;}) ..... non so che pesci pigliare.

Innaig
Senior
Senior
Messaggi: 766
Iscritto il: venerdì 26 settembre 2014, 15:49
Località: Forlì

Re: nuovo componente user problemi lettura pin float

Messaggio da Innaig » martedì 16 dicembre 2014, 20:02

Pifloatin che valori assume? Sempre positivi...positivi e negativi... a virgola mobile?
come hai definito pifloatin? Int...float...ecc...
Posta un breve estratto dove comprendi anche le definizioni.

giorgiofoga
Junior
Junior
Messaggi: 71
Iscritto il: venerdì 25 gennaio 2013, 10:44
Località: padova - (PD)

Re: nuovo componente user problemi lettura pin float

Messaggio da giorgiofoga » mercoledì 7 gennaio 2015, 19:37

OK OK....... in realtà ho scoperto che dal lato server (il mio componente prende dati da un sistema di visione collegato via ethernet) ogni tanto (qualche decimo di secondo) invia una stringa errata che termina la connessione .... l'errore si ripete per 3-4 cicli facendo sembrare il componente inabile ad aggiornare i dati ..... scoperto il danno ho risolto sul server.

grazie del supporto.

Rispondi

Torna a “Linuxcnc”