PinokkioPLC Inserito: 19 maggio 2014 Segnala Share Inserito: 19 maggio 2014 Buonasera, ho creato un banale programma nel quale vado ad utilizzare le istruzioni SET e RESET, però i conti non mi tornano.... vi spiego meglio il tutto dopo aver postato due screenshot del mio programma: Allora nel primo segmento, quando vado ad attivare #SegnaleStart attraverso il simulatore di ingressi, (#SegnaleStop e sempre ad 1 essendo un contatto NC, dunque lascio il pulsantino attivo) come potete vedere mi si attiva l'uscita, il problema però sorge non appena vado a mettere a 0 tale #SegnaleStart riportando il pulsante di ingresso alla posizione di riposo, in tal caso grazie all'istruzione SET la variabile #SegnaleValvola non mi dovrebbe restare ad 1? Perchè come è possibile notare nella seconda immagine, non appena stacco #SegnaleStart l'uscita mi ritorna a 0? L'istruzione SET non permette di memorizzare la condizione logica al suo ingresso, anche dopo che questa è cambiata, ovvero se per un istante il ramo che mi va alla bobina SET mi da un RLO pari ad 1, poi se questo ramo mi torna a 0, comunque grazie alla bobina SET l'uscita mi dovrebbe restare ad 1, a meno che non entri in gioco l'istruzione RESET, ma qui non entra in gioco.... cosa è successo? Perdonate la mia ignoranza e GRAZIE per l'aiuto. Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 19 maggio 2014 Autore Segnala Share Inserita: 19 maggio 2014 (modificato) Non riesco proprio a capire per essere sicuro che il RESET non mi andasse a creare qualche problema con il SET, ho proprio eliminato il secondo segmento, però comunque dopo essersi attivata la bobina di SET, appena l'RLO del ramo mi torna a 0, la bobina di SET mi ritorna a 0, non capisco l'istruzione SET non sarebbe alla fine una autoritenuta che mi mantiene il valore PS: Mi è passata una cosa per la testa, però non sò se è un'altra mia cavolata...... io quella che sto usando è una FC dunque non ha un blocco dati di memoria, forse è questo il motivo per il quale non mi resta memorizzato il valore di #SegnaleValvola ? Modificato: 19 maggio 2014 da PinokkioPLC Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 19 maggio 2014 Segnala Share Inserita: 19 maggio 2014 Fai una prova: sostituisci la bobina "segnale valvola" (Q0.0) con un merker qualsiasi(cioè area M anzichè Q). Poi crea un terzo segmento dove assegni all'uscita lo stato del merker... Vedi che succede Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 20 maggio 2014 Autore Segnala Share Inserita: 20 maggio 2014 In seguito ai consigli dell'amico Matteo, ho modificato come di seguito il programma, ovvero ho utilizzato una variabile temporanea di blocco,da settare o resettare, il cui valore poi mi determina il segnale da inviare in uscita: Dunque sembra che le istruzioni SET e RESET non possano essere utilizzate direttamente per un segnale in uscita ad una FC, il perchè non lo sò e vorrei capirlo...... qualcuno ha mai riscontrato lo stesso problema? come ha risolto? Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 20 maggio 2014 Segnala Share Inserita: 20 maggio 2014 quando tali istruzioni le uso sia come attivazione che come disattivazione di un medesimo bit, io ho l'abitudine di interbloccare le istruzioni SET o RESET con il negato del bit dell'operando sul quale vo a intervenire, ciò evita che all'interno del programma si attivi e si disattivi un bit sul quale decida di intervenire in attivazione o disattivazione e viceversa. in parole povere se voglio fare un SET M1 prima dell'istruzione SET M1 inserisco il contatto negato NC di M1, in tal modo l'istruzione SET M1 avviene solo se il bit M1 è disattivato e ovviamente al contrario per l'istruzione RESET Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 20 maggio 2014 Autore Segnala Share Inserita: 20 maggio 2014 quando tali istruzioni le uso sia come attivazione che come disattivazione di un medesimo bit, io ho l'abitudine di interbloccare le istruzioni SET o RESET con il negato del bit dell'operando sul quale vo a intervenire, ciò evita che all'interno del programma si attivi e si disattivi un bit sul quale decida di intervenire in attivazione o disattivazione e viceversa. in parole povere se voglio fare un SET M1 prima dell'istruzione SET M1 inserisco il contatto negato NC di M1, in tal modo l'istruzione SET M1 avviene solo se il bit M1 è disattivato e ovviamente al contrario per l'istruzione RESET Dopo provo, potrei imparare qualche altra cosa, in quanto sn un principiante , inoltre devo provare anche la stessa cosa con una FB e vedere se anche questa mi crea problemi..... a breve aggiornamenti....... Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 20 maggio 2014 Autore Segnala Share Inserita: 20 maggio 2014 (modificato) quando tali istruzioni le uso sia come attivazione che come disattivazione di un medesimo bit, io ho l'abitudine di interbloccare le istruzioni SET o RESET con il negato del bit dell'operando sul quale vo a intervenire, ciò evita che all'interno del programma si attivi e si disattivi un bit sul quale decida di intervenire in attivazione o disattivazione e viceversa. in parole povere se voglio fare un SET M1 prima dell'istruzione SET M1 inserisco il contatto negato NC di M1, in tal modo l'istruzione SET M1 avviene solo se il bit M1 è disattivato e ovviamente al contrario per l'istruzione RESET Se ho ben capito, intendevi questo: però anche in questo modo il problema non mi si è risolto appena attivo con il pulsantino l'ingresso che mi rappresenta lo START l'uscita mi viene settata ad 1, poi appena stacco il pulsantino (lo riporto al suo stato di riposo) l'uscita mi ritorna subito a 0, invece mi dovrebbe restare ad 1 essendo quella una operazione di SET, non capisco perchè non sia possibile questa cosa...... finora solo come indicato da Matteo sn riuscito a mantenere l'uscita ad 1, ovvero utilizzando una variabile temporanea nella FC. PS: Nel secondo segmento ho anche provato con un contatto NA però non mi cambia niente, non và lo stesso Modificato: 20 maggio 2014 da PinokkioPLC Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 20 maggio 2014 Autore Segnala Share Inserita: 20 maggio 2014 Me lo sentivo che il problema fosse la FC....... ho rifatto lo stesso programma utilizzando una FB ed adesso tutto funziona perfettamente, anche staccando il pulsante START l'uscita mi rimane attivata ad 1, grazie all'operazione di SET..... dunque mi sembra di capire che il problema sia dovuto al fatto che la FC non ha un blocco dati che gli memorizzi gli aggiornamenti, o qualcosa del genere..... PS: Questo esercizio l'ho pescato dal sito della Siemens, nei manuali didattici sull'S7-1200 ed è riportato utilizzando una FC..... https://www.swe.siemens.com/italy/web/AD/ProdottieSoluzioni/HomeSCE/Pages/ManualididatticiPLCSIMATICS7-1200.aspx (primo PDF) Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 20 maggio 2014 Autore Segnala Share Inserita: 20 maggio 2014 Purtroppo ho la testa dura e mi piace cercare di capire le cose..... dopo una piccola ricerca sul perchè SET e RESET creassero problemi in una FC, ho trovato questa pagina della Siemens: http://support.automation.siemens.com/IT/llisapi.dll?func=cslib.csinfo&objId=22303713&nodeid0=10805384&load=treecontent&lang=it&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=IT Non ho capito moltissimo, in quanto le mie basi sull'argomento sono ancora scarsine però andando a sostituire la variabile di OUTPUT con una variabile di INPUT/OUTPUT adesso anche la FC non mi crea problemi PS: Perdonatemi per il monologo e tutti i msg inviati, però questa cosa ad un principiante come me può creare un bel pò di problemi, dunque condividere la probabile soluzione, penso sia una cosa utile Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 20 maggio 2014 Segnala Share Inserita: 20 maggio 2014 Mi sembrava troppo strano e te lo stavo scrivendo, ma tu mi hai anticipato. La definizione OUTPUT vuol dire che quel parametro lo utilizzi solo come output, quindi non dovresti mai analizzarlo come input. Se, invece, lo definisci come INPUT/OUTPUT, allora lo analizzi come ingresso e lo piloti come uscita. Naturalmente stiamo parlando solo di blocchi FC: con gli FB, che hanno un DB di istanza, è tutto un altro pianeta. Se non ricordo male, con il Microwin sarebbe andato in errore compilando il blocco: magari hai scoperto un'altro bachetto del TIA ... Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 20 maggio 2014 Autore Segnala Share Inserita: 20 maggio 2014 (modificato) Il problema mi sembra di averlo risolto, però alcuni dubbi mi sono rimasti, dati la mia inesperienza.... non riesco a capire quando il segnale #SegnaleValvola nel mio programma viene utilizzato come input, perchè alla fine in entrambi i segmenti io quel valore logico lo butto fuori dal blocco, e dunque utilizzo solo come uscita. Forse, è utilizzato come ingresso per la valutazione del secondo segmento per vedere il suo valore? magari hai scoperto un'altro bachetto del TIA ... Sarebbe la fortuna del principiante.... un ignorantone in materia che scopre qualcosa Modificato: 20 maggio 2014 da PinokkioPLC Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 20 maggio 2014 Segnala Share Inserita: 20 maggio 2014 Mi associo alla domanda posta da Michele.... Anch io sono curioso... Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 21 maggio 2014 Segnala Share Inserita: 21 maggio 2014 Oddio ... appena sveglio volete farmi ragionare così tanto ? In ogni caso: - secondo me, la domanda corretta non è quella, ma come fa il firmware a convertire le istruzioni di set/reset in linguaggio macchina ? posso solo supporre che in qualche modo "legge" il bit per effettuare il set/reset - ho appena voluto provare con il Microwin e con l'istruzione SR il compilatore segnala "Errore 35", mentre con i singoli set e reset lo accetta; quindi sicuramente con l'istruzione SR effettua anche la lettura del bit, oltre alla scrittura, ed è per quello che segnala l'errore - che nel TIA per qualche motivo abbiamo utilizzato la stessa "conversione" per le 3 istruzioni ? o magari c'è davvero un baco non solo nella mancanza di segnalazione, ma proprio nella definizione di OUTPUT Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 21 maggio 2014 Segnala Share Inserita: 21 maggio 2014 generalmente prima di scrivere una "bobina" il firmware o sistema operativo del plc verifica alcuni stati tra cui il risultato logico combinatorio che viene salvato in un registro apposito .Tale risultato viene calcolato in base alle varie diramazioni della logica comunque il fatto di non settare direttamente le uscite e' una cosa che si sente da parecchi anni , e personalmente l'ho sempre rispettata senza approfondire .Un programma ladder vien dapprima compilato in codice IL e poi in assembly in modo trasparente al programmatore Puo' essere che le macro usate dal firmware abbiano dei bachi o dei limiti nel settaggio diretto delle uscite Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 21 maggio 2014 Autore Segnala Share Inserita: 21 maggio 2014 Che bel casino.... ad ogni modo utilizzerò le istruzioni di SET e RESET in una FC come variabili di input/output ed avrò risolto tutti i problemi Link al commento Condividi su altri siti More sharing options...
Giuseppe Signorella Inserita: 22 maggio 2014 Segnala Share Inserita: 22 maggio 2014 (modificato) ad ogni modo utilizzerò le istruzioni di SET e RESET in una FC come variabili di input/output Non è che nella FC precedentemente avevi dichiarato il bit di set e reset come variabile locale? (temp)? Ciao Modificato: 22 maggio 2014 da Giuseppe Signorella Link al commento Condividi su altri siti More sharing options...
PinokkioPLC Inserita: 22 maggio 2014 Autore Segnala Share Inserita: 22 maggio 2014 Salve Giuseppe, inizialmente i bit set e reset li ho utilizzati in una variabile di sola uscita ed il programma mi creava problemi, poi come indicato nel messaggio #4 ho utilizzato una variabile temporanea di appoggio ed il problema si è risolto, però questa soluzione non mi piaceva ed ho cercato in rete delle informazioni, arrivando ad una FAQ della Siemens riportata nel messaggio #9 la quale dice che queste istruzioni devono essere utilizzate in una variabile di ingresso/uscita altrimenti si hanno problemi, il motivo non l'ho perfettamente capito, ma ciò è dovuto essenzialmente alla mia poca conoscenza di tutto l'argomento, magari tra qualche mese di studio forse riuscirò a capire il motivo in maniera precisa , per adesso mi devo accontentare di far funzionare il programma Link al commento Condividi su altri siti More sharing options...
lucio67 Inserita: 17 maggio 2020 Segnala Share Inserita: 17 maggio 2020 Ciao volevo chiederti se mi puoi aiutare devo fare un set_reset con un FB ho impostato il pulsante di start e di stop come input nelle variabili locali e simulando vedo che cambiano stato quindi sono ok il problema è il merker di appoggio che devo settare e resettare anche se lo imposti come InOut non rimane settato dove devo inserirlo ? grazie Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 18 maggio 2020 Segnala Share Inserita: 18 maggio 2020 discussione ferma da 6 anni! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 18 maggio 2020 Segnala Share Inserita: 18 maggio 2020 lucio67 forse non hai letto il regolamento prima di accettarlo, altrimenti sapresti che non ci si può accodare ad altre discussioni, ma si deve sempre aprirne una nuova. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati