Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Sw Step 5


Messaggi consigliati

Inserito:

Ciao a tutti

Premetto che conosco poco STEP 5 ma in un impianto ho notato che all'interno di un sw di un S5-95U sono presenti queste righe di codice.

    :***

Segmento 2

!
!                                                                      DB 15
+---------+---------+---------+---------+---------+---------+---------+--(A  )-!
Segmento 3

!
!E 8.3     E 8.4     M 134.0                                           M 28.0
+---]/[---+---]/[---+---] [---+---------+---------+---------+---------+--(   )-!
Segmento 4

!
!M 170.0   M 28.0    M 134.2                                           M 28.1
+---]/[---+---] [---+---] [---+---------+---------+---------+---------+--(   )-!
Segmento 5
     :
     :U   M  170.7
     :U   M   28.0
     :L   DW  35
     :SE  T   35
     :U   T   35
     :L   DW  36
     :SA  T   36
     :UN  M   28.0
     :R   T   36
     :***
Segmento 6
!
!M 28.1    M 134.2                                                     A 112.0
+---] [---+---] [---+---------+---------+---------+---------+---------+--(   )-!
!         !
!T 36     !
+---] [---+

Qualcuno mi sa dire che cosa fa?

Grazie

Riccardo


Matteo Montanari
Inserita:

Segmento 2

apre il blocco dati 15 (db15 appunto)

Segmento 3

esegue un controllo tra ingressi e merker interni:

il merker M28.0 (uscita) assume il valore alto (1) solo nelle condizioni di:

E8.3 = 0 (sensore o pulsante non attivo)

E8.4 = 0 (sensore o pulsante non attivo)

M134.0 = 1 (memoria interna attiva)

Segmento 4

esegue un controllo tra ingressi e merker interni:

il merker M28.1 (uscita) assume il valore alto (1) solo nelle condizioni di:

M170.0 = 0 (memoria interna non attiva)

M28.0 = 1 (memoria interna attiva) (vedi segmento precedente)

M134.2 = 1 (memoria interna attiva)

Segmento 5

quanto hai la memoria M170.7 = 1 e M28.0 = 1 attivi il timer T35

il tempo di impostazione del timer è memorizzato nel dw35 della db aperta in precedenza (db15)

trascoso il tempo impostato T35 attiva T36.

L'uscita del timer T36 rimane alta fintanto che hai T35 (il contatto che l'attiva) e anche per il tempo impostato (dw36 db15, stesso sistema del T35)

nel caso il merker M28.0 si riporta a valore 0, l'uscita del timer T36 si azzera (decade, il timer viene resettato)

Segmento 6

esegue un controllo tra ingressi e merker interni:

l'uscita A112.0 (uscita) assume il valore alto (1) solo nelle condizioni di:

M28.1 = 1 (memoria interna attiva)

M134.2 = 1 (memoria interna attiva)

oppure

T36 = 1 (memoria interna attiva) (vedi segmento precedente)

come istruzioni il linguaggio s5 non si differenzia molto dal linguaggio s7

per aver più informazioni sui timer SE ed SA puoi anche consultare il manuale in linea su step7, o manuali cartacei

Inserita:

Grazie

Sai come devo fare per una temporizzazione di marcia e arresto con i tempi aggornabili da mw?

Ciao,Riccardo

Matteo Montanari
Inserita:

cerca di esporre più chiaramente le domande, maggiori sono le informazioni migliore è la risposta / risultato.

i timer s5, come quelli s7 devono ricevere in ingresso un formato di dati particolare, chiamato S5TIME(s7) o KT(s5) e deve essere così formato

15 14 13 12

codice bcd (uguale al decimale sino a 9) per la base dei tempi:

0 = 0,01 secondi

1 = 0,10 secondi

2 = 1,00 secondi

3 = 10,0 secondi

11 10 9 8

codice bcd (uguale al decimale sino a 9) per "centinaia" del valore di tempo

0 .. 9

7 6 5 4

codice bcd (uguale al decimale sino a 9) per "decine" del valore di tempo

0 .. 9

3 2 1 0

codice bcd (uguale al decimale sino a 9) per "unità" del valore di tempo

0 .. 9

se vuoi avere una temporizzazione di 10 secondi puoi usare

3 0 0 1

oppure

2 0 1 0

oppure

1 1 0 0

oppure

0 9 9 9 (in questo caso avrai 9,"99" secondi)

le operazioni da fare sono quelle di sommare in modo logico

il valore del tempo (0 .. 999) con la base dei tempi (0 .. 3)

per poi trasferirla al timer

Inserita:

Cerco di essere più chiaro...

Impostare un tempo non è un problema. Vorrei sapere se esiste un esempio in AWL di come far gestire un'uscita digitale con due temporizzatori (per la marcia e l'arresto). In pratica vorrei capire come posso programmare il PLC in modo che sia in marcia per T1 e sia fermo per T2, riparta per T1 e così via...

Grazie

Ciao

Matteo Montanari
Inserita:

creazione di un flip flop, lampeggio o come lo vuoi chiamare.

soluzione

// creazione del tempo lampeggio OFF

un t1

l kt ???

se t0

nop 0

nop 0

nop 0

nop 0

// creazione del tempo lampeggio ON

u t0

l kt ???

se t1

nop 0

nop 0

nop 0

nop 0

in questo modo hai creato il tuo lampeggio con un duty cycle diverso in fase di ON e fase di OFF

combinalo con la tua applicazione

ripeto che la differenza tra s7 ed S5 non esiste in questi casi

Inserita:

Io avevo pensato di fare così..Dimmi se ti torna:

UN M0

L KT 100.1

SV T 1

U T 1

S M0

U M0

L KT 100.1

SV T 2

U T 2

R M0

L M0

T A1.0

In pratica in base al valore della merker M0 setto o resetto l'uscita A1.0

Una curiosità: ma NOP 0 cosa significa?

Grazie

Ciao, Riccardo

Inserita:

Ma il lampeggio non era più facile così...

u t1

l s5t#1s

se t2

un t 2

l s5t#1s

se t1

e poi uso un contatto del t1...

Matteo Montanari
Inserita:

L'istruzione NOP 0 ti serve se vuoi tradurre in KOP un segmento fatto in AWL.

normalmente io utilizzo solo due tipi di timer

SE uscita sempre bassa sino a quando non ha decrementetato tutto il tempo, devo avere anche l'ingresso di attivazione del timer

SA uscita alta sia con ingresso d'attivazione del timer e per tutta la durata del tempo impostato

altri timer non gli ho mai usati, in quanto non mi piace un valore impulsivo o qualsiasi cosa che possa cambiare di stato se non sono io a volerlo.

dove non è necessario non usare mai dei fronti di salita o memorie set-reset, possono crearti dei problemi in fase di ciclo, dipende sempre dalla complessità dell'impianto ma tutto è più facile da controllare e verificare se ha meno istruzioni.

una buona regola è quello di utilizzare le minime risorse di sistema, il programma è più veloce, hai meno occupazione di memoria, e soprattutto sai dove non funziona in modo molto più rapido.

Inserita:

Ciao

Se io volessi passare il tempo tramite una DW di una DB, ad esempio 30 minuti, che valore devo scrivere all'interno del PLC?

Grazie,Riccardo

Inserita:

KH=3180

Dove 3 è la base tempo = 10sec e 180 il valore di tempo (180x10=1800sec =30min)

Inserita:

Dal manuale dell'S5 non corrisonde questo..non si capisce niente

Inserita:

Io ho scritto il tempo in formato esadecimale (KH). Se lo vuoi in formato tempo (KT)devi scrivere:

L KT 180.3

In ogni caso il tempo è lo stesso.

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...