Michele88pp Inserito: 21 ottobre Segnala Share Inserito: 21 ottobre Buonasera a tutti, sto eseguendo all'interno di un FC un'istruzione: "FOR #Long := 0 TO 49 DO ..... END_FOR;" dove #Long è una variabile INT di tipo Temp. Vado online, tasto destro su FOR, CONTROLLA, CONTROLLA LOOP. Nello stato delle variabili contenute all'interno del FOR vengono visualizzati i valori relativi a #Long con valore uguale a 0. Come posso controllare anche gli altri valori di #Long? Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 21 ottobre Segnala Share Inserita: 21 ottobre 1 ora fa, Michele88pp ha scritto: Come posso controllare anche gli altri valori di #Long? cosa vuoi dire? Mettere degli IF potrebbe andarti bene? procedere step by step non è possibile , quindi devi mettere delle condizioni dentro il FOR che puoi visualizzare . Poi Io personalmente non userei variabili con nomi dedicati al linguaggio, ma questa è un'altra storia... Link al commento Condividi su altri siti More sharing options...
Michele88pp Inserita: 22 ottobre Autore Segnala Share Inserita: 22 ottobre Come puoi vedere, controllando il loop, vengono visualizzati solo i valori relativi al valore #Long 0, nonostante la funzione FOR cicili fino al valore di #Long:=4. Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre Perché il loop viene eseguito in una sola scansione, quindi ti da uno solo stato. Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre in 10 millisecondi di scansione di 1 ciclo plc o anche meno non ti puoi aspettare niente altro. Quel IF che hai messo non viene soddisfatto sennò vedresti il valore in LongErr Link al commento Condividi su altri siti More sharing options...
Michele88pp Inserita: 22 ottobre Autore Segnala Share Inserita: 22 ottobre 49 minuti fa, acquaman ha scritto: Perché il loop viene eseguito in una sola scansione, quindi ti da uno solo stato. E non posso selezionare quale stato controllare? un po' come si fa con gli FB con il comando apri e controlla? Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre 22 minuti fa, Michele88pp ha scritto: un po' come si fa con gli FB con il comando apri e controlla? Lo trovo un esempio poco calzante. Nell'SCL ci sono i punti di interruzione: Io che sono più pratico mi creerei una DB con un array da 0 a 49 con tutti i dati che voglio vedere, nel ciclo metto dei mov dove carico i dati che mi interessano indicizzati, cosi mi restano tutti memorizzati. Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre 24 minuti fa, Michele88pp ha scritto: E non posso selezionare quale stato controllare? un po' come si fa con gli FB con il comando apri e controlla? mi sa che non ti è chiaro il concetto di FOR. Se entri in un loop devi uscirne, se non ne esci la CPU va in errore. Se devi testare la cosa sequenzialmente non usare FOR, testala prima a mano con sequenze "comandabili" (controllo di word, s/r o altro) e poi fai il FOR. Altrimenti, usa la funzione del TIA di eseguire il ciclo step by step Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre 2 ore fa, dina_supertramp ha scritto: la funzione del TIA di eseguire il ciclo step by step Sul serio esiste? Mai neanche vista... e cosa fa? ferma il ciclo del plc in attesa che fai "Step Avanti" ? Quindi crolla tutto. Il ciclo macchina va a ramengo.... o no? o è solo per didattica col simulatore? Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre 1 minuto fa, drn5 ha scritto: Sul serio esiste? Mai neanche vista... e cosa fa? ferma il ciclo del plc in attesa che fai "Step Avanti" ? Quindi crolla tutto. Il ciclo macchina va a ramengo.... o no? o è solo per didattica col simulatore? Ho fatto casino tra tool...il TIA non te lo fa fare online, dici giusto!! Ti fa fare i cicli "a step" col simulatore (single scan mode). Le logiche del SICAM invece ti danno la possibilità di farlo online (SICAM Device Manager: ambiente di programmazione RTU A8000 per telecontrollo, usato soprattutto nelle sottostazioni elettriche) ma perché di base l'RTU non elabora come un PLC... Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 22 ottobre Segnala Share Inserita: 22 ottobre se la tua necessità è visualizzare cosa succede nel ciclo FOR ti consiglio di provare una ricorsione singola cioè FOR #Long := 1 to 1 DO poi ti metti in visualizzazione dinamica se hai la necessità di far girare tutti 50 i valori per un debug efficace fai 50 regioni o segmenti qualsivoglia. Una volta risolto riporti il tutto con ciclo FOR univoco Link al commento Condividi su altri siti More sharing options...
Michele88pp Inserita: 23 ottobre Autore Segnala Share Inserita: 23 ottobre 17 ore fa, pigroplc ha scritto: se la tua necessità è visualizzare cosa succede nel ciclo FOR ti consiglio di provare una ricorsione singola cioè FOR #Long := 1 to 1 DO poi ti metti in visualizzazione dinamica se hai la necessità di far girare tutti 50 i valori per un debug efficace fai 50 regioni o segmenti qualsivoglia. Una volta risolto riporti il tutto con ciclo FOR univoco Avevo già pensato questa soluzione, che effettivamente mi risolve il problema. Speravo solo che esistesse un modo meno macchinoso. Grazie mille comunque! Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 23 ottobre Segnala Share Inserita: 23 ottobre Secondo me i cicli di ricorsione dovrebbero essere circoscritti a semplici operazioni che non richiedono poi troppa fatica nel debug. Un paio d'anni fa dovetti mettere mano ad un software fatto da un concorrente dove 18 stazioni della macchina erano richiamate da un puntatore di array con un ciclo FOR. Ogni stazione aveva quindi una struttura di scambio i/o in modo da rendere vana qualsiasi lista incrociata. Ho pesantemente maledetto la genitrice del concorrente che per fare una modifica da mezz'ora mi ha fatto penare 2 giorni. bastava fare 18 richiami in modo almeno da avere la possibilità di aprire il menu contestuale con open and control. Esorto quindi tutti a fare SOFTWARE COMPRENSIBILI E COMMENTATI! Non abbiate paura di perdere il cliente, se siete professionali ed efficaci non vi abbandona! Link al commento Condividi su altri siti More sharing options...
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