Vai al contenuto
PLC Forum


Sw Step 5


Riccardo

Messaggi consigliati

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

Link al commento
Condividi su altri siti


Matteo Montanari

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

Link al commento
Condividi su altri siti

Matteo Montanari

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

Matteo Montanari

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

Matteo Montanari

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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