errori generazione codice blocchi scicos encoder e udp_send

Forum relativo alle schede FLEX, ERIKA Enterprise, RT-Druid, ScicosLab, ...

Moderator: paolo.gai

Locked
Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

errori generazione codice blocchi scicos encoder e udp_send

Post by Lombo » Fri Jan 07, 2011 3:49 am

Buonasera.
Provando a generare codice per FLEX da scicosLab 4.4b8 ho avuto alcuni problemi. Ma andiamo in ordine: il primo schema compilato è stato il seguente:

Image

Per il quale la compilazione NON ha avuto problemi (Generato il pic30.cof)

Modificando leggermente lo schema nella seguente maniera:

Image

Tralasciando l'inutilità di attaccare l'encoder ad un led (Era giusto una prova...) il prompt di comando visualizzava i seguenti errori:
(...)

CPP flex_daughter_encoder.c
Microchip MPLAB C30 License Manager Version v3_02 (Build Date Nov 9 2007).
Copyright (c) 2005 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has less than 14 days remaining.
c:\Evidence\eclipse\plugins\CO8E38~1.201\ee_base\contrib\scicos\src\pic30\flex_d
aughter_encoder.c: In function 'inout':
c:\Evidence\eclipse\plugins\CO8E38~1.201\ee_base\contrib\scicos\src\pic30\flex_d
aughter_encoder.c:117: warning: implicit declaration of function 'EE_encoder_get
_ticks_f'

c:\Evidence\eclipse\plugins\CO8E38~1.201\ee_base\contrib\scicos\src\pic30\flex_d
aughter_encoder.c:126: warning: implicit declaration of function 'EE_encoder_SW_
get_ticks_f'
AR libee.a
LD
.\libee.a(flex_daughter_encoder.o)(.text+0x46): In function `flex_daughter_encod
er':
c:\Evidence\eclipse\plugins\CO8E38~1.201\ee_base\contrib\scicos\src\pic30\flex_d
aughter_encoder.c:126: undefined reference to `EE_encoder_SW_get_ticks_f'
.\libee.a(flex_daughter_encoder.o)(.text+0x58):c:\Evidence\eclipse\plugins\CO8E3
8~1.201\ee_base\contrib\scicos\src\pic30\flex_daughter_encoder.c:117: undefined
reference to `EE_encoder_get_ticks_f'
make: *** [pic30.cof] Error 1
--------------------------------------------------------
--------------------------------------------------------
DONE... Application successfully compiled!
--------------------------------------------------------
--------------------------------------------------------

To program your FLEX board with the COF file
Debug/pic30.cof you can:

1- use MPLAB IDE from Microchip

2- run the flash.bat script [ICD3 only]
--------------------------------------------------------
Un secondo schema con cui ho avuto problemi è il seguente:

Image

Per i quali ho avuto i seguenti messaggi di errore:
(...)

CPP eecfg.c
Microchip MPLAB C30 License Manager Version v3_02 (Build Date Nov 9 2007).
Copyright (c) 2005 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has less than 14 days remaining.
In file included from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./boa
rd/ee_flex/inc/ee_board.h:107,
from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./ee.
h:248,
from eecfg.c:2:
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:54: error: redefinition of 'EE_daughter_leds_init'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:66: error: previous definition of 'EE_daughter_leds_init' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:63: error: redefinition of 'EE_led_0_on'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:84: error: previous definition of 'EE_led_0_on' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:67: error: redefinition of 'EE_led_0_off'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:85: error: previous definition of 'EE_led_0_off' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:71: error: redefinition of 'EE_led_1_on'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:86: error: previous definition of 'EE_led_1_on' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:75: error: redefinition of 'EE_led_1_off'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:87: error: previous definition of 'EE_led_1_off' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:79: error: redefinition of 'EE_leds_on'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:101: error: previous definition of 'EE_leds_on' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:84: error: redefinition of 'EE_leds_off'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:102: error: previous definition of 'EE_leds_off' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:264: error: redefinition of 'EE_pwm_set_duty'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1067: error: previous definition of 'EE_pwm_set_duty' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:282: error: redefinition of 'EE_pwm_close'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1086: error: previous definition of 'EE_pwm_close' was here
make: *** [obj/Debug/eecfg.o] Error 1
--------------------------------------------------------
--------------------------------------------------------
DONE... Application successfully compiled!
--------------------------------------------------------
--------------------------------------------------------

To program your FLEX board with the COF file
Debug/pic30.cof you can:

1- use MPLAB IDE from Microchip

2- run the flash.bat script [ICD3 only]
--------------------------------------------------------
In realtà io vi ho mostrato gli schemi nell'ordine inverso a come li ho provati io, nel senso: vedendo che nelle nuove palette è possibile avere un encoder hardware e uno software ho creato uno schema per provarli entrambi, all'inizio uno per volta poi possibilmente insieme con modifiche minime, e lo schema era questo:

Image

per il quale ho avuto i seguenti errori:
(...)

CPP eecfg.c
Microchip MPLAB C30 License Manager Version v3_02 (Build Date Nov 9 2007).
Copyright (c) 2005 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has less than 14 days remaining.
In file included from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./boa
rd/ee_flex/inc/ee_board.h:107,
from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./ee.
h:248,
from eecfg.c:2:
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:54: error: redefinition of 'EE_daughter_leds_init'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:66: error: previous definition of 'EE_daughter_leds_init' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:63: error: redefinition of 'EE_led_0_on'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:84: error: previous definition of 'EE_led_0_on' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:67: error: redefinition of 'EE_led_0_off'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:85: error: previous definition of 'EE_led_0_off' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:71: error: redefinition of 'EE_led_1_on'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:86: error: previous definition of 'EE_led_1_on' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:75: error: redefinition of 'EE_led_1_off'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:87: error: previous definition of 'EE_led_1_off' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:79: error: redefinition of 'EE_leds_on'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:101: error: previous definition of 'EE_leds_on' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:84: error: redefinition of 'EE_leds_off'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:102: error: previous definition of 'EE_leds_off' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:264: error: redefinition of 'EE_pwm_set_duty'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1067: error: previous definition of 'EE_pwm_set_duty' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:282: error: redefinition of 'EE_pwm_close'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1086: error: previous definition of 'EE_pwm_close' was here
In file included from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./boa
rd/ee_flex/inc/ee_board.h:107,
from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./ee.
h:248,
from eecfg.c:2:
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:328:1: warning: "EE_ENCODER_SW_PINA" redefined
In file included from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./boa
rd/ee_flex/inc/ee_board.h:98,
from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./ee.
h:248,
from eecfg.c:2:
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1363:1: warning: this is the location of the previous definition
In file included from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./boa
rd/ee_flex/inc/ee_board.h:107,
from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./ee.
h:248,
from eecfg.c:2:
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:329:1: warning: "EE_ENCODER_SW_PINB" redefined
In file included from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./boa
rd/ee_flex/inc/ee_board.h:98,
from c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./ee.
h:248,
from eecfg.c:2:
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1364:1: warning: this is the location of the previous definition
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:339: error: redefinition of 'EE_encoder_SW_init'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1375: error: previous definition of 'EE_encoder_SW_init' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:412: error: redefinition of 'EE_encoder_SW_close'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1396: error: previous definition of 'EE_encoder_SW_close' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:421: error: redefinition of 'EE_encoder_SW_get_ticks'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1402: error: previous definition of 'EE_encoder_SW_get_ticks' was h
ere
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:426: error: redefinition of 'EE_encoder_SW_get_position'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1407: error: previous definition of 'EE_encoder_SW_get_position' wa
s here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:431: error: redefinition of 'EE_encoder_init'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1412: error: previous definition of 'EE_encoder_init' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:461: error: redefinition of 'EE_encoder_close'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1442: error: previous definition of 'EE_encoder_close' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:467: error: redefinition of 'EE_encoder_get_ticks'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1448: error: previous definition of 'EE_encoder_get_ticks' was here

c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:472: error: redefinition of 'EE_encoder_get_position'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1453: error: previous definition of 'EE_encoder_get_position' was h
ere
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:477: error: redefinition of 'EE_encoder_set_IRQ'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1458: error: previous definition of 'EE_encoder_set_IRQ' was here
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_motionboard.h:483: error: redefinition of 'EE_encoder_set_ISR_callback'
c:/Evidence/eclipse/plugins/CO8E38~1.201/ee_base/pkg/./board/ee_flex/inc/ee_flex
_demoboard.h:1464: error: previous definition of 'EE_encoder_set_ISR_callback' w
as here
make: *** [obj/Debug/eecfg.o] Error 1
--------------------------------------------------------
--------------------------------------------------------
DONE... Application successfully compiled!
--------------------------------------------------------
--------------------------------------------------------

To program your FLEX board with the COF file
Debug/pic30.cof you can:

1- use MPLAB IDE from Microchip

2- run the flash.bat script [ICD3 only]
--------------------------------------------------------
Mi pare di capire che si trattino quasi tutte di definizioni multiple che vanno in conflitto fra loro, mentre per il blocco encoder parrebbe non funzionare qualche linkaggio ai file dove si trovano le varie funzioni usate da detti blocchi (Vedi parte in grassetto)
Gli stessi errori li ho avuti usando gli stessi blocchi (encoder e led) relativi però alla motion board (Difatti il codice eseguito mi pare sia lo stesso...)
Per stasera direi che con le segnalazioni può bastare...
Spero sia possibile risolvere questi problemi senza troppe tribolazioni ed in tempo utile.
Distinti saluti e buon anno!

Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by Lombo » Sun Jan 09, 2011 6:33 pm

"Per non sapere né leggere né scrivere", come si dice, ho "Risolto" -O per meglio dire Aggirato- il problema in maniera Molto bruta:
Vedendo che entrambi i blocchi appartenenti alle palette della demoboard e della motionboard richiamavano le funzioni della demoboard,

nel file ee_flex_motionboard.c
presente in C:\Evidence\eclipse\plugins\com.eu.evidence.ee_1.5.1.201012161202\ee_base\pkg\board\ee_flex\src ho commentato i blocchi di codice relativi alle sezioni
pwm out (riga 325), encoder (riga 592)

mentre nel file ee_flex_motionboard.h
presente in C:\Evidence\eclipse\plugins\com.eu.evidence.ee_1.5.1.201012161202\ee_base\pkg\board\ee_flex\inc ho commentato i blocchi di codice relativi alle sezioni
pwm out (riga 222) encoder (riga 322) e Led (riga 49)

Inoltre, nel file flex_daughter_encoder.c
presente in C:\Evidence\eclipse\plugins\com.eu.evidence.ee_1.5.1.201012161202\ee_base\contrib\scicos\src\pic30
ho sostituito la funzione EE_encoder_get_ticks_f() presente alla riga 117 con EE_encoder_get_ticks() in quanto nel file ee_flex_motionboard.h detta fuinzione viene richiamata con questo nome (Senza il "_f" finale, riga 1447) così come ho fatto lo stesso per la funzione EE_encoder_SW_get_ticks_f() * 2.0 presente alla riga 126

In questo modo gli schemi sopra si compilano, non posso valutarne la validità fino a domani quando andrò in laboratorio ma Quantomeno si genera il pic30.cof.
In questo modo però utilizzando i blocchi della motionboard si generano una serie di errori a questo punto più che comprensibili. Per quanto mi riguarda -Forse- il problema Potrebbe essersi risolto in quanto non credo di dover utilizzare blocchi della motionboard, però giustamente ho pensato di segnalare ugualmente la cosa. Domani vi farò sapere se le modifiche apportate funzionano o meno...

paolo.gai
Administrator
Posts: 875
Joined: Thu Dec 07, 2006 12:11 pm

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by paolo.gai » Sun Jan 09, 2011 7:11 pm

Ciao...

Grazie per la mail, ne parlo anche io domani con Dario.

Prima possibile pubblicheremo la fix...

PJ

Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by Lombo » Mon Jan 10, 2011 5:40 pm

Allora,
Ho provati gli schemi con le modifiche descritte sopra. Tralasciando gli encoder, all'inizio il pwm2 non funzionava. Mi sono accorto poi che tra la nuova versione e la vecchia è cambiato il pinout (Vero? file ee_flex_demoboard.c, nei case delle righe 541 e 574, è stato sostituito il pin OC7 con OC3, mi pare. O è così o mi funziona per puro caso :| ) però a quanto ho capito il piedino che PRIMA era dedicato al PWM2 adesso è dedicato all'encoder software, giusto? Quindi con questa modifica vanno in conflitto (Il motore risulta bloccato, difatti)
Poi, non vorrei avere capito male, ma col nuovo blocco encoder è possibile avere DUE encoder di cui uno hardware e uno software, corretto?
La domanda è questa: Quali piedini sono cambiati con la nuova versione, e dove sono migrati? Sono particolarmente interessato ai pin PWM (1 e 2) e degli encoder... Dove si trovano adesso sui connettori "con21", "con17" e "con16" della daugher board?
Potrei andare a cercarmeli sfogliando le varie funzioni dei blocchi pwm ed encoder sparsi tra i vari file, però se fosse possibile risparmiare tempo... ^^
Grazie di tutto!

paolo.gai
Administrator
Posts: 875
Joined: Thu Dec 07, 2006 12:11 pm

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by paolo.gai » Mon Jan 10, 2011 6:07 pm

Ciao,

Abbiamo pubblicato poco fa una versione che compila sia gli encoder che il blocco Discrete State Space System.

Per quanto riguarda la piedinatura: C'e' stata una primissima versione della demo board, la quale non è mai andata in produzione, che aveva alcuni pin leggermente diversi. Il codice funziona sulla versione delle schede attualmenete in commercio...

Se dopo l'update non continua a funzionare, puoi eventualmente spedirci uno dei diagrammi che non ti funzionano cosi' facciamo anche noi una prova?

Grazie,

Paolo

erikadds
Newbie
Posts: 45
Joined: Wed May 12, 2010 9:41 am

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by erikadds » Mon Jan 10, 2011 6:09 pm

Ciao,
grazie per la segnalazione. In effetti ho riscontrato anch'io il problema con gli encoder.
Il problema adesso è stato risolto.
Dal seguente sito http://download.tuxfamily.org/erika/web ... druid_beta
è possibile scaricare il kernel aggiornato.

Poi mi sembra che ci sia un po' di confusione nei blocchi e sulle board.
La demo_board e la motion_board sono mutuamente esclusive.
Non si possono usare blocchi della demo_board per applicazioni con la motion_board e viceversa.

Es. Nel caso riportato sopra hai usato i blocchi della demoboard con i blocchi UDP che sono per la motion_board.
In effetti è facile sbagliarsi con i blocchi per la comunicazione perchè sembrano condivisi però la Demo-board non dispone
di un'interfaccia ethernet e quindi non è possibile usare il protocollo udp.
Durante la compilazione vengono perciò inclusi files relativi alla demoboard e files della motionboard e ciò comporta che alcuni simboli
siano definiti più volte...

Io non so che daughter board hai però nel caso della motion_board ti prego di fare riferimento al file "ee_flex_motionboard.c" con i relativi headers mentre per la demo_board guarda il file "ee_flex_demoboard.c".

Ti informo anche che Paolo ha corretto alcuni files per far compilare anche i blocchi per i modelli nello spazio di stato e per le funzioni di trasferimento.
Questi blocchi adesso compilano e sono pertanto a disposizione per le applicazioni di controllo e filtraggio.

Fammi sapere se i problemi agli encoder sono stati risolti con le ultime modifiche.
Saluti,
Dario

Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by Lombo » Tue Jan 11, 2011 1:27 am

erikadds wrote:Ciao,
mi sembra che ci sia un po' di confusione nei blocchi e sulle board.
La demo_board e la motion_board sono mutuamente esclusive.
Non si possono usare blocchi della demo_board per applicazioni con la motion_board e viceversa.

Es. Nel caso riportato sopra hai usato i blocchi della demoboard con i blocchi UDP che sono per la motion_board.
In effetti è facile sbagliarsi con i blocchi per la comunicazione perchè sembrano condivisi però la Demo-board non dispone
di un'interfaccia ethernet e quindi non è possibile usare il protocollo udp.
Durante la compilazione vengono perciò inclusi files relativi alla demoboard e files della motionboard e ciò comporta che alcuni simboli siano definiti più volte...
Mi sento un pirla -__- Prima di fare Qualunque cosa, ho ripristinato l'installazione precedente togliendo i commenti a tutto ciò che avevo commentato e provando a compilare schemi comprendenti SOLO blocchi della demoboard (Encoder esclusi) e si compilavano senza problemi finchè non aggiungevo l'UDP_send, mentre con schemi equivalenti comprendenti però solo blocchi della motionboard l' UDP_send non creava effettivamente nessun problema.
Gli encoder però si, allora ho installato gli aggiornamenti come suggerito e adesso anche le compilazioni con gli encoder generano il pic30.cof senza problemi. Grazie mille :) Domani vi farò sapere come sono andate le prove sulla scheda.

Ho però comunque dovuto far ricorso alla cartella "Sostitutiva" di cygwin in quanto quella che mi si è creata automaticamente con l'ultima installazione di EE rimane comunque ferma al punto descritto nell'altra discussione (http://erika.tuxfamily.org/forum/viewto ... a77ca#p799) non so da dove possa originarsi il problema...
paolo.gai wrote:Ciao,
Per quanto riguarda la piedinatura: C'e' stata una primissima versione della demo board, la quale non è mai andata in produzione, che aveva alcuni pin leggermente diversi. Il codice funziona sulla versione delle schede attualmenete in commercio...
L'ingegnere che ha lavorato prima di me a questa tesi l'ha consegnata l'estate scorsa, nel Suo progetto non era prevista la selezione del tipo di encoder, comunque non mi sembra Così vecchio come progetto, ritengo che le soluzioni ai problemi di piedinatura siano da cercare altrove... Innanzitutto nella confusione che ho in testa tra palette motionboard e demoboard! >_<
Tuttavia, è corretta la supposizione circa la quale adesso sia possibile contare sulla lettura di DUE encoder, uno hardware e uno simulato in software? L'Ingegnere che ha lavorato al progetto prima di me aveva creato un blocco scicos che implementava un encoder software, volevo sapere se dovevo riutilizzare il suo o potevo rendere la cosa più portabile adoperando la nuova paletta da Voi creata... (E, si, magari i piedini che questa utilizza... :P )

Grazie ancora di tutto, mi scuso per i banali errori in cui sono incorso e Vi ringrazio ancora per il tempo che mi avete dedicato! :D

Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by Lombo » Wed Jan 12, 2011 8:03 pm

Le prove sono andate bene, si compila tutto e funziona come deve funzionare, due encoder compresi :P
Però, come al solito, c'è un però. Vi chiedo un piccolo consiglio.
In laboratirio disponiamo della FLEX full + demo2 pack, ma le relative palette non prevedono l'utilizzo di uscite digitali attivabili a piacere (Per intendersi le palette che sotto demoboard sono chiamate "dig.out".)
Io ne avrei bisogno di Almeno 3 per comandare due motori DC con i due pwm (Va benissimo quello della motionboard) ed un ponte H, comandato appunto da queste uscite. Il mio "predecessore" al progetto, adoperanto le palette della demoboard, ha creato una cosa del genere:

Image

per comandare un ponte H:

http://www.laurtec.it/italiano/Articoli ... or_MOS.png

La negazione dei segnali di comando può essere fatta in hardware con una not, però rimane l'esigenza di avere tre segnali di controllo: due per la direzione dei due motori (Che poi vengono negati per averne 4) e almeno Una abilitazione. Più i due pwm, vabè.
Quello che Vi chiedo è questo: esistono uscite digitali disponibili sulla motion board? Ad esempio utilizzando le palette presenti sotto il menù "Flex"?
Oppure, dato che non utilizziamo alcuna scheda plugin del pacco (Per adesso) posso provare a convertire il blocco "FLEX-DMB-dig.out" per la motionboard? O cercare di reindirizzarli sul connettore "Con 8" che sulla motionboard parrebbe contenere pin non utilizzati (Se tra questi vi sono pin adatti ovviamente, non ho controllato)?
Oppure, infine, mi consigliate di utilizzare il plugin di controllo dei due motori dc? In tal caso però non conosco i collegamenti...

erikadds
Newbie
Posts: 45
Joined: Wed May 12, 2010 9:41 am

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by erikadds » Fri Jan 14, 2011 10:28 am

Ciao,
è possibile usare il blocco FLEX-GPIN per comandare 3 pin che si trovano sui
connettori CON3 e CON4. I pins sono RD13, RD14, RD15 che corrispondono ai numeri
6,7,8 da passare al blocco...
Io però ti consiglio vivamente di utilizzare il blocco FLEX_MTB DCM se hai due motori in
corrente continua visto che esiste il supporto sia software che hardware e impiegheresti
meno tempo per far funzionare il sistema.
Ovviamente ti serve il plugin per i motori DC.
I collegamenti sono come in figura.

Saluti,
Dario
Attachments
mtb_DCMotor_part.PNG
mtb_DCMotor_part.PNG (11.66 KiB) Viewed 6356 times

Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

Re: errori generazione codice blocchi scicos encoder e udp_send

Post by Lombo » Fri Jan 14, 2011 1:31 pm

Mille grazie!
Credo che userò le sucite digitali in quanto mi trovo a lavorare su qualcosa di già fatto (Seppur erroneamente con i blocchi della demoboard :P ) e si tratterebbe quindi di sostituire solo due collegamenti su un connettore, ma per eventuali migliorie future che dovessero richiedere la completa rivisitazione del progetto suggerirò senz'altro di adoperare il plugin indicato.

Lombo
Newbie
Posts: 28
Joined: Tue Nov 16, 2010 3:34 pm
Contact:

Re: errori generazione codice blocchi scicos encoder e udp_s

Post by Lombo » Mon Jan 24, 2011 1:38 pm

Scusatemi,
Ma c'è di nuovo qualcosa che non mi torna... Con i blocchi FLEX-MTB-PWM, mettendo l'ingresso ad uno i motori stanno fermi mentre ponendoli a zero si muovono alla massima velocità. Non dovrebbe essere l'inverso?

erikadds
Newbie
Posts: 45
Joined: Wed May 12, 2010 9:41 am

Re: errori generazione codice blocchi scicos encoder e udp_s

Post by erikadds » Tue Jan 25, 2011 10:00 am

Hai ragione, il comportamento del blocco pwm è esattamente questo...
Il plugin dei servomotori che può essere montato sulla motion board (demo II) si basa
su alcuni transistor che effettuano un'ulteriore inversione. Pertanto con le nostre schede
il funzionamento è quello normale. Usando una diversa interfaccia per i segnali pwm il comportamento
è invertito ma può essere modificato facilmente con pochi blocchi scicos...

Saluti.
Dario

Locked