Aiuto - Cerca - Utenti - Calendario
Versione completa: Pulsante On/off?
PLC Forum -> Forums automazione > AUTOMAZIONE > PLC > Tips & Tricks - PLC esempi di programmazione
xxcellalvi
Ciao a tutti!

Sono nuovo del forum e abbastanza neofita con i PLC e avrei bisogno di un'indicazione su un problema che mi sta dando qualche grattacapo.

Sto usando Siemens S7 (CPU315) in Ladder e vorrei fare una cosa apparentemente molto semplice.

Ho un pulsante che funziona come selezione/deselezione di una modalità (con accensione di una lampada), quindi se premo una volta lui mi seleziona la modalità e se lo ripremo me la deseleziona. Una sorta di Toggle, insomma.

Ho utilizzato un flip/flop (SR) e ho messo in ingresso (su S) lo stato del pulsante con rilevazione del fronte di salita. Poi ho messo in ingresso (su R) sempre lo stato del pulsante con rilevazione del fronte di salita e in AND ho inserito lo stato del FLIP/FLOP (in maniera che resetti solo se il FLIP/FLOP è già settato a 1), ma non funziona.

Sto diventandoci pazzo. Qualcuno mi sa dare un indicazione?
So che quando me lo direte dirò "perché non c'ho pensato prima..." wink.gif

Grazie mille! smile.gif

Ciao,
Ale
Luca Bab
si puo' fare in tanti modi
quello che segue e' uno
M150.0 = pulsante
M160.0 = Lampada

A M 150.0
AN M 160.0
AN M 160.1
S M 160.0
S M 160.1

A M 150.0
A M 160.0
AN M 160.1
R M 160.0
S M 160.1

AN M 150.0
R M 160.1
xxcellalvi
Grazie Luca.

2 cose:

1) Step 7 (5.4) mi da' errore di sintassi se scrivo "A M 150.1" (linguaggio AWL). Forse c'è una notazione diversa? Forse A/AN è l'equivalente di U/UN?

2) io avrei bisogno della versione equivalente in Ladder, ma se cambio linguaggio, la visualizzazione della routine non cambia. Rimane sempre in AWL. C'è forse un modo particolare con Step 7 per vedere l'equivalente in Ladder?

Grazie ancora.

Ciao,
Ale
kamikaze
Nella lista istruzioni , dipende dalla configurazione del tuo Simatic Manager puoi usare annotazioni in Inglese od in Tedesco.

A = AND e' in inglese , in tedesco e' U
AN=ANDNOT e' in inglese , in tedesco e UN
O,=,ON , sono equivalenti sia in tedesco che in inglese.

Per convertire AWL in LADDER, non e' semplice, il linguaggio Ladder , aggiunge annotazioni particolari come NOP , per identificare la posizione degli operandi, il problema maggiore e' nel tuo caso e' che hai 3 set e 2 reset nello stesso segmento.

Dividi cosi':

Segmento 1

A M 150.0
AN M 160.0
AN M 160.1
S M 160.0
S M 160.1

Segmento 2

A M 150.0
A M 160.0
AN M 160.1
R M 160.0
S M 160.1

Segmento 3

AN M 150.0
R M 160.1

Ciao
Ivan
xxcellalvi
Infatti. Però non riesco a passare dalla visualizzazione AWL alla KOP, e quindi non riesco a vedere l'equivalente struttura in Ladder...

Grazie.

Ciao,
Ale
kamikaze
Ho appena modificato il mio precedente messaggio, vedi sopra.
Ciao
Ivan
batta
Se ne è già parlato più volte, e più volte sono stati descritti vari metodi.
Io sono sempre dell'idea che i più pratici siano i seguenti:

Esempio convertibile in ladder:
CODICE
Segmento 1: Rilevo fronte salita pulsante
      U     "Pulsante"
      FP    "XFS_Pulsante"
      =     "FS_Pulsante"

Segmento 2: ON/OFF Selezione
      U     "FS_Pulsante"
      UN    "Selezione"
      O    
      UN    "FS_Pulsante"
      U     "Selezione"
      =     "Selezione"

Esempio NON convertibile in ladder da usare nel caso il Fronte Salita Pulsante serva anche per altri scopi:
CODICE
Segmento 1: Rilevo fronte salita pulsante
      U     "Pulsante"
      FP    "XFS_Pulsante"
      =     "FS_Pulsante"

Segmento 2: ON/OFF Selezione
      X     "FS_Pulsante"
      X     "Selezione"
      =     "Selezione"

Esempio NON convertibile in ladder da usare se il fronte salita pulsante serve solo per il flip-flop
Segmento 1: ON/OFF selezione
CODICE
      U     "Pulsante"
      FP    "XFS_Pulsante"
      X     "Selezione"
      =     "Selezione"

Se qualcuno riesce a farlo in modo ancora più semplice, si faccia avanti smile.gif
speedy72
CODICE
           -------||----|------|/|-----
                 I0.1   |     M0.1  
                        |                     ()M0.0
          ------|| -----|-----|/|-----
               M0.0            I0.1  
              
          
          -----|/|----|--------||-------
                I0.1  |        M0.0         ()M0.1
                      |                        
          -----||---------------||------        
                  M0.1          I0.1

Ho provato a farlo direttamente in ladder (il linguaggio awl non lo conosco) e mi è venuto così
Ciao, Andrea
stefano_
ciao yxy,
innanzi tutto benvenuto in questo forum......
purtroppo per te ho 2 notize bruttine smile.gif ... anzi 3 rolleyes.gif
la prima è che anche io sono ignorante in materia quindi credo di non poterti essere d'aiuto

2) ti consiglio di aprire una nuova discussione ( nella sezione appropriata " logo" e di inserire un titolo attinente alla tua richiesta. Come puoi vedere il titolo di questa discussione è " Pulsante On/off? " e non ha nulla a che fare con il tuo problema. In questo modo hai molte più possibilità di ricevere una risposta ( ad una persona che non sa come risolvere il problema "pulsante on off" potrebbe saper realizzare il programmino che serve a te. ( anche se dovrebbero essere entrambe semplici da risolvere )

3) vedi, nei forum ci si scambiano informazioni più o meno tecniche per la semplice voglia di imparare, di conoscere, quindi si presume che da entrambe le parti ci sia questo obbiettivo.

Facendo ua domanda come la tua lasci capire ( almeno a me è sembrato così ) che non hai fatto un gran che per cercare di imparare ad utilizzare tale plc e quindi che non ti interessa "imparare", "capire", bensì ti interessa solo risolvere il tuo problema,dici solamente che non sai da dove iniziare e che sei ignorante in materia.
Sarebbe stato diverso se tu avessi chiesto un aiuto dicendo che dopo aver letto il manuale e dopo aver tentato di fare il semplice programmino hai un determinato problema e non sai come risolverlo.....

Lungi da me il volerti richiamare od altro .... ci mancherebbe .. non ne ho ne il diritto ne l'intenzione.
Diciamo che questi sono stati dei semplici consigli da parte di un amico ( siamo diventati subito amici .. vedi ! ) laugh.gif
Vedrai che con un pò di impegno do parte tua saranno in molti a volerti aiutarte.....


stefano_
Accidenti... mi sono dilungato troppo e sono arrivato tardi !!! laugh.gif
PLCforum Staff
Questa discussione e' chiusa, la puoi trovare nella nuova sezione PLC raggiungibile a questo indirizzo plc.plcforum.it
PLCforum Staff
Questa discussione e' chiusa, la puoi trovare nella nuova sezione PLC raggiungibile a questo indirizzo plc.plcforum.it
Questa è la versione 'lo-fi' del forum. Per visualizzare la versione completa con molte più informazioni, formattazione ed immagini, per favore clicca qui.