Vai al contenuto
PLC Forum


Lampeggio Di Un'uscita. Codice.


Messaggi consigliati

Inserito:

Network 1

LD I0.0

AN T33

TON T37, 20

Network 2

LD I0.0

AN T33

= Q0.0

Network 3

LD T37

TON T33, SMW28

Ho scritto, seguendo una guida, il codice sopra dove portando a on I0.0 l'uscita q0.0 deve lampeggiare.

Ho fatto il test con il simulatore S7_200_ING ma quando attivo i0.0 luscita rimane attiva senza lampeggiare.

Errore nel codice? Uso una cpu 214.

Grazie


Inserita: (modificato)

vitaminadhl,

Prova cosi, non lo ho provato ma dovrebbe andare..

Controlla che la SMW28 non sia a zero.

Network 1

LD I0.0
AN T33
TON T37, 20

Network 2 

LD I0.0
A  T37
TON T33, SMW28


Network 3 
LD I0.0
A  T37
= Q0.0

Modificato: da Savino
Inserita:

Ciao,

se non è importante la velocità di lampeggio e possono bastarti 0.5 sec. on e 0.5 sec. off di cadenza, puoi utilizzare lo SM0.5:

LD I0.0
A SM0.5
= Q0.0

Più semplice di così non c'è niente! ;)

Inserita:

Innanzitutto GRAZIE per l'interessamento,

ho provato il codice di Savino ma, almeno sul simulatore, sembra non funzionare... Il codice postato da busanela è valido ma purtroppo non consente di impostare un tempo di on/off.

Se si trova una soluzione dove poter impostare il timer di on/off bene, altrimenti mi adatterò al codice con SM0.5!

Grazie ancora ;)

Inserita:

SMB28 e SMB29 sono 2 byte che assumono un valore dipendente dalla posizione dei 2 potenziometri a bordo.

Sei sicuro che il simulatore "simuli" anche i 2 potenziometri ?

Inserita: (modificato)

vitaminadhl,

ho provato il codice di Savino ma, almeno sul simulatore, sembra non funzionare
<_<

Guarda, purtroppo non ne ho sotto il simulatore ne una CPU, ma il codice per S7300 sotto postato funziona.

A meno che non mi sia sbagliato a trasformarlo per S7200, controlla che l'impostazioni della base per i timer sia giusta.

 

      Network 1

      U     E     0.0
      UN    T     33
      L     S5T#1S
      SE    T     37
      NOP   0
      NOP   0
      NOP   0
      NOP   0

      Network 2

      U     E     0.0
      U     T     37
      L     S5T#1S
      SE    T     33
      NOP   0
      NOP   0
      NOP   0
      NOP   0

      Network 3

      U     T     37
      =     A     0.0


KOP:
                     T 37
| E 0.0  T 33   +-----------+
|               |  S_EVERZ  |
+--[ ]---[/]----+ S       Q +-----------
|               |           |
|               |           |
|        S5T#1S + TW   DUAL +..
|               |           |
|               |           |
|             ..+ R    DEZ  +..
|               +-----------+
|
|
|                     T 33
| E 0.0  T 37   +-----------+
|               |  S_EVERZ  |
+--[ ]---[ ]----+ S       Q +-----------
|               |           |
|               |           |
|        S5T#1S + TW   DUAL +..
|               |           |
|               |           |
|             ..+ R    DEZ  +..
|               +-----------+
|
|
|
|                    
|   T 37                      A 0.0  
|                
+---[ ]-----------------------( )-----+   Lamapda
|                
|                
|         
|              
|                
|

Modificato: da Savino
FattoreDiPotenza
Inserita: (modificato)

Spesso il simulatore , emula la CPU , utilizzando una frequenza di elaborazione del programma se non uguale , quasi simile a quella dalla microporcessore del tuo PC.

Fatto stà che la simulazione di tempi molto brevi o lampeggi , si possono rilevare inaspettatamente non funzionanti.

Prova in "configuration"-->"adjust speed of simulation" e portalo al minimo.

Prova anche dei trigger più generosi , dai 3 secondi in sù o più e vedi se funziona , ma dubito.

Poi se funziona così deve funzionare anche nella realtà.

Il codice di Savino è corretto , anche se la dizione che usa è più riconducibile ad un S5 o S7-300/400.

In quello che tu hai postato nel primo messaggio ,personalmente ravvedo solo un errore nel segmento 3

Scrivevi:

Network 3
LD T37
TON T33, SMW28
Sarebbe più corretto prendere il valore di SMB.. farlo transitare in AC0 (primo accumulatore) ed usare AC0 come valore di caricamento timer.
LD     I0.0
MOVB   SMB28, AC1
TON    T37, AC1
Stai attento anche al numero di temporizzatore che usi , numeri diversi hanno base tempi diversi. Nell'esempio che hai riportato , usi un time base 10ms e un timer base 100ms. Vedi qui le tipologie.
[b]Tipo          Risoluzione    Valore max.    Numero del temporizzatore[/b]
TONR              1 m        32,767 s        T0, T64        
                            10 ms        327,67 s         T1-T4, T65-T68        
                          100 ms        3276,7 s        T5-T31, T69-T95
TON, TOF                  1 ms        32,767 s        T32, T96        
                            10 ms        327,67 s        T33-T36, T97-T100        
                          100 ms        3276,7 s        T37-T63, T101-T255

Modificato: da FattoreDiPotenza
Inserita:

verificato il codice di savino su una vecchia cpu214 rel1.01 funziona

il codice di vitaminadhl funziona se

Network 2

LD I0.0

AN T33

A T37

= Q0.0

saluti

Inserita:

ve

rificato il codice di savino su una vecchia cpu214 rel1.01 funziona

Grazie mille miro970 per l'info.

Comunque, penso che il problema di vitaminadhl potrebbe essere nella errata impostazione della base per i tempi oppure una ripetizione di qualche variabile nel resto del programma.

Basterebbe fare un monitoraggio per capire.

Inserita:

Grazie Miro per la disponibilità, ho verificato anche io il codice postato da Savino su una 214 e funziona perfettamente, ho fatto la correzione al mio e funziona anche cosi.

Nel simulatore anche se settavo SMB28 non funzionava! Credo sia un problema legato al simulatore!

Grazie di cuore a TUTTI!

  • 1 year later...
Inserita:

Oppure si potrebbe scrivere.

SEG1

LD I0.1

BTI SMB28,VW100 ; LEGGE IL POTENZIOMETRO ANALOGICO (O) E RIPORTA IL VALORE COME INTERO IN "VW100"

SEG2

LD I0.1

AN T33

TON T37,20

SEG3

LD I0.1

A T37

TON T33,VW100

SEG4

LD I0.1

A T37

= Q0.0

monitorando anche il secondo potenziometro si potrebbe regolare anche il T37. con un'altra VW.

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...