NonSoloBolleDiAcqua
| Inviato il: 18/4/2013,15:55
|
XLuca, non puoi settare il bit come un output (cioè come un qualcosa che viene forzato a livello alto oppure basso) e poi leggere il suo valore. Se esegui l'istruzione
CODICE IOMODE(BIT_VENTOLA) = OUTPUT
devi poi eseguire una
CODICE OUTBIT(BIT_VENTOLA)=0 oppure
CODICE OUTBIT(BIT_VENTOLA)=1
Volendo puoi anche farlo...ma certamente non accade quello che vuoi fare tu. Ipotizzo che tu debba fare:
CODICE IOMODE(BIT_VENTOLA) = INPUT
devi poi eseguire una
CODICE VENTOLA = INPBIT(BIT_VENTOLA)
Poi puoi settate il BIT come output...ma non incrociare le modalità.
Spero di essere stato chiaro...se hai altri dubbi chiedi...sempre se ho capito quello che vuoi fare! Ciao Bolle
CITAZIONE (ElettroshockNow @ 18/4/2013, 16:51) ... per quanto riguarda la forzatura le ho provate penso tutte ......... Lo so...lo so ...il problema era nel firmware non saltavo una virgola...quindi leggeva sempre lo stesso Bit...come hai detto tu esattamente tu. Ora dovrebbe (condizionale) fungere...ma se non dovesse fungere il problema ormai è sotto controllo!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | Luca450Mhz
| Inviato il: 18/4/2013,15:58
|
Con il bit 4 controllo l'accensione o spegnimento di una ventola, quindi è un output (azionamento relè). Per prendere delle decisioni, devo sapere lo stato attuale di un certo output. Ora quando accendo o spengo la ventola (con OUTBIT) salvo il valore in una variabile separata. Non c'è un modo per "leggere" il valore di output che avevo impostato io? O la strada corretta è questa, utilizzando una variabile d'appoggio?
--------------- Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048. Batterie: 24 elementi trazione pesante 315Ah C5 48V.
| | | | ElettroshockNow
| Inviato il: 18/4/2013,16:12
|
Io leggo l'uscita con : IF INPBIT () THEN e funziona !!!! .... Solo ora leggo che non si può .....menomale che il PPTEA non lo sa'
La uso per far lampeggiare i led sul codice di Priespe ....
| | | | NonSoloBolleDiAcqua
| Inviato il: 18/4/2013,16:21
|
CITAZIONE (Luca450Mhz @ 18/4/2013, 16:58) Non c'è un modo per "leggere" il valore di output che avevo impostato io? O la strada corretta è questa, utilizzando una variabile d'appoggio? Perdonami...(forse) ora ho capito! E' possibile senza una variabile di appoggio ..questo è un esempio:
PRAGMA NO_NUM_LINE IOMODE(15)=OUTPUT WHILE TRUE OUTBIT(15)=1 PRINT "1="& INPBIT(15) WAITMS 250 OUTBIT(15)=0 PRINT "0="& INPBIT(15) WAITMS 250 LOOP END
Se lo esegui vedrai 1=1 e 0=0...ma solo nel PPTEA ...il debug è fessacchiotto...non arriva a tale finezze! Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Luca450Mhz
| Inviato il: 18/4/2013,16:28
|
Allora il problema è nel debugger! La checkbox relativa all'input la seleziona/deseleziona. Ma quando deve leggere il valore con
CODICE VENTOLA = INPBIT(BIT_VENTOLA) legge sempre e comunque 0....
Scusa Bolle ho letto solo ora la parte finale del tuo post....
--------------- Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048. Batterie: 24 elementi trazione pesante 315Ah C5 48V.
| | | | MarKoZaKKa
| Inviato il: 18/4/2013,16:46
|
hehe luca lo stesso problema che avevo io agli albori della domotica... come conoscere lo stato delle uscite senza (sprecare) una variabile... quindi ora è possibile... bene bene... e complimenti per averlo fatto capire a Bolle, io non ci sono riuscito all'epoca... sto scherzando, ovviamente...
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | ElettroshockNow
| Inviato il: 18/4/2013,17:57
|
GRANDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE HAI FATTO CENTRO ......
Funziona che è una meraviglia .......grazie milleeeeeeee .........
Tre caffè pagati ...........
| | | | Luca450Mhz
| Inviato il: 18/4/2013,18:00
|
I caffè pagati a chi, a me o a Bolle?!? ahahah
--------------- Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048. Batterie: 24 elementi trazione pesante 315Ah C5 48V.
| | | | | | | NonSoloBolleDiAcqua
| Inviato il: 18/4/2013,18:23
|
Bene bene, il problema era atavico...proveniva dalla versione 1.0...posiamo quindi dire che nessuno aveva usato due cadseq contemporaneamente. Cmq una curiosità...ma dove trovi quelle emoticons?
X Zakka, ora sono elettricista....all'epoca ero elettricista apprendista...piano piano mi miglioro
CITAZIONE (Luca450Mhz @ 18/4/2013, 17:28) Allora il problema è nel debugger! No, il problema non è nel debugger...tant'è che perde il bit di flag nel passaggio...per farlo fungere ci sono le macro che settano solo sul debugger i bit: se vuoi ne parliamo.
State usando i comandi nell'istruzione IF THEN?
Riepilogando...quanto prima faccio uscire l'ultima versione Beta...e mi preparo per la consegna PPTEA ADVANCED con tanto di istallazione, documenti etc...passando per il pre-check del pazientissimo Pino.
Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ElettroshockNow
| Inviato il: 18/4/2013,18:42
|
CITAZIONE ma dove trovi quelle emoticons? Freccetta accanto emoticons
| | | | alessio287
| Inviato il: 18/4/2013,21:23
|
Ciao Bolle,
problemino....
pezzo di codice:
USBOUT="1"&CR_LF CALL LEGGO_FASCE_ORARIE
IF VALORI_FASCE MOD 2 THEN :L0F5 USBOUT="2"&CR_LF LIVELLO = LOW IF VALORI_FASCE = 2 THEN :LBL_LOW_VAL1 LIVELLO = HIGH :LBL_LOW_VAL1 CALL LEGGO_FASCIA_ORARIA(LIVELLO) 'Gestione MIN CALL F_MENU_FASCE_MIN GOTO :L0F6 :L0F5 USBOUT="3"&CR_LF LIVELLO = LOW IF VALORI_FASCE = 1 THEN :LBL_LOW_VAL2 LIVELLO = HIGH :LBL_LOW_VAL2 CALL LEGGO_FASCIA_ORARIA(LIVELLO) 'Gestione ORA CALL F_MENU_FASCE_ORA :L0F6 USBOUT="4"&CR_LF
dove:
SUB LEGGO_FASCIA_ORARIA(PAR1) IDX=CELL_INI_FASCE+(ID_SENSORE-1)*MAX_NUM_SENSORI+(FASCE-1)*MAX_FASCE
IF PAR1 = LOW THEN :LBL_FASCIA_ORARIA_LOW 'fascia oraria HIGH IDX+=2 :LBL_FASCIA_ORARIA_LOW CELL=IDX ORA=REEPROM IDX++ CELL=IDX MIN=REEPROM CALL CHECK_CONGRUITA_ORAMIN SUBEND
Il log stampa: GESTIONE FASCE ORARIE 1 2
e poi si blocca tutto... compreso il fatto che neanche lo STOP funziona...
problema sia 4.1.6
Bye Alessio287
Modificato da alessio287 - 18/4/2013, 22:42
| | | | NonSoloBolleDiAcqua
| Inviato il: 18/4/2013,23:02
|
Interessante...posta tutto il codice...non vedo la LEGGO_FASCE_ORARIE ...spero di trovare il problema...certo ora inizia ad essere dura...inizi a fare cose molto complesse!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | alessio287
| Inviato il: 18/4/2013,23:26
|
Ciao Bolle,
ho ancora un problema mio di programmazione delle fasce... appena sistemato te lo giro... ho l'impressione che il problema sia sulle SUB nel caso che ti ho segnalato visto che dopo la stampa del 2 si blocca tutto e neanche lo STOP PPTEA funziona...
la funzione che manca è:
SUB LEGGO_FASCE_ORARIE LCDPOS=LCD4X20_ROW_4 CALL LEGGO_FASCIA_ORARIA(LOW) RIGA_LCD = " F"&INT(FASCE)&" " & ORA &":" & MIN &" " CALL LEGGO_FASCIA_ORARIA(HIGH) RIGA_LCD=RIGA_LCD & ORA &":" & MIN CALL FILLA_RIGA_LCD LCDWRITE=RIGA_LCD SUBEND
per ora vado avanti senza usare le funzioni con parametro...
Bye Alessio287
| | | | NonSoloBolleDiAcqua
| Inviato il: 18/4/2013,23:29
|
Ok, domani vedo il precompilato...dimenticavo di dirti che non puoi andare oltre le 5 nidificazioni delle sub/gosub...non è che sei andato oltre? CMq manda il codice ...anche se non funge...l'importante è che si verifichi il problema...in questo caso posso verificarlo!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|