Vai al contenuto
PLC Forum


Aiuto programmazione Plc S7/300


Dragonfly

Messaggi consigliati

Buon giorno a tutti.Sono nuovissimo del forum e anche per quanto riguarda il mondo del plc.Siccome sto facendo pratica con i segnali analogici,in quando con i digitali me la cavicchio,volevo chidervi delle cose.Io ho una fabbrica con 10 pt100 quindi analogica d'ingresso e qui non ho problemi,poi ho 3 inverter che devo pilotare tramite uscite analogiche,quindi inviare al suo potenziometro dei valori per modulare la velocità,poi una valvola modulante che devo regolare in base al flusso e per ultimo ho un serbatoio dove c'è un galleggiante che muove un potenziometro il quale mi fornisce 9 livelli diversi sul display .Cone fare il programma visto che non capisco tanto dei segnali analogici?

Grazie mille per la pazienza.

:smile:

Link al commento
Condividi su altri siti


Uscite analogiche.

W#16#6c00 in esadecimale (27648 in decimale) è il valore massimo quindi, se in tensione sarà 10Vcc. ora, se vuoi far funzionare il tuo inverter al massimo dovrai scrivere sull'indirizzo dell'uscita analogica 27648, se vorrai farlo funzionare al 50% dovrai scrivere 13824.

per il potenziometro che trasduce un livello la stessa cosa ma al contrario. Leggi l'ingresso analogico, 27684 = massimo valore ingresso, 0 minimo valore. con alcuni comparatori potrai visualizzare i tuoi 9 livelli.

Link al commento
Condividi su altri siti

Ok con ingresso analogico ci sono.Per l'uscita non riesco a capire bene,non per te,tu sei stato chiarissimo,il problema è mio ovviamente.Se possibile fare un esempio pratico in modo che riesca a capire .Grazie sempre per la pazienza.

 

Link al commento
Condividi su altri siti

è una proporzione. c'è un blocco siemens che fa la scalatura lo trovi nelle biblioteche. mi sembra sia fc105-fc106 (scale e unscale). non l'ho mai usato quindi non so dirti. al limite premi F1 sopra il blocco e ti apparirà l'..

comunque sia è una proporzione. parlando in percentuale 100% = valore massimo quindi:

100% : 27648 = Valore attuale : X

il valore attuale è la percentuale che vorrai scrivere sull'uscita analogica

X il valore da scrivere in realtà

con un blocco move in kop potrai scrivere la tua variabile sull'uscita analogica. in awl invece sarà:

L x (valore da scrivere

T PAW (indirizzo)

 

Link al commento
Condividi su altri siti

Allora per quanto riguarda fc105(scale) potrei scrivere cosi' con set point:

SEGMENTO 1

U M0.0

= L0.0

BLD103

CALL"SCALE"

IN=PEW752

HI_LIM:=1,000000e002

LO_LIM:=0,000000e000

BIPOLAR:=L0.0

RET_VAL:=MW10

OUT:=MD20

SEGMENTO 2(CONVERSIONE DA REALE A INTERO)

LMD20

RND

TMD22

NOP0

SEGMENTO 3(SET POINT ALTO)

LMD22

LL#80

>=D

=M0.1

SEGMENTO 4(SET POINT BASSO)

LMD22

LL#10

<=D

=M0.2

SEGMENTO 5(OPERAZIONE OR)

U(

O M0.0

O M0.1

)

=M0.3

Per favore ditemi se per quanto riguarda GLI INGRESSI ANALOGICI CI SONO..

Per quanto riguarda le uscite analogiche potreste scrivermi un esempio pratico grazie.

 

Link al commento
Condividi su altri siti

Per comandare un inverter con un uscita analogica basta usare la FC106 UNSCALE. L'esempio che ti ho messo sotto è semplicissimo: nell'ingresso IN metti la velocità che vuoi dare all'inverter (numero reale). Con gli ingressi Lo_LIM e HI_LIM stabilisci che grandezza è per te la velocità che imposti: se ad esempio LO=0.0 e HI=100.0 allora comandi l'inverter con la velocità percentuale (30%; 50% ecc) della velocità massima impostata per quell'inverter. Se invece vuoi impostare la velocità in metri al secondo (esempio tipico un nastro trasportatore) allora misuri alla velocità massima dell'inverter quanti metri al secondo ti fa il nastro trasportatore e scrivi questa velocità su Hi_LIM.

La FC UNSCALE mette sull'uscita analogica il valore corretto compreso tra 0 e 27648 necessario a mandare il giusto livello di segnale all'ingresso analogico dell'inverter. Nota che ho messo :P sull'indicazione dell'analogica di uscita per aver accesso alla periferia.

Un'ultimo consiglio: lo so che il mondo è pieno di ottimi programmatori Siemens che programmano in awl, ma per iniziare non ti conviene usare kop? tra l'altro tia portal è molto più votato al kop e all'uso del simbolico. Ciao

Unscale.png

Link al commento
Condividi su altri siti

Grazie massimo_fra.Quidi io in ingresso posso scrivere per esempio 27648?Cioe scrivendo cosi io gli invio il Max del segnale per esempio 20mA giusto?

Link al commento
Condividi su altri siti

su unscale dipende dal valore di HI_LIM.

27648 rappresenta 20ma oppure 10V scritti sull'uscita analogica direttamente.

se utilizzi unscale, il blocco scriverà su pawxxx 27648 quando in all'ingresso in ci sarà un valore parai a quello di HI_LIM.

nell'esempio che ti ha fatto massimo_fra è una variabile. potrebbe essere anche un valore fisso.

Link al commento
Condividi su altri siti

Ok grazie mille veramente ragazzi....adesso vi pongo un altra domanda...Io devo pilotare una valvola modulante 0-10V che si apre e si chiude a secoda della temperatura del fluido....se uso una funzione "scale" dove all'ingresso metto una pew125(pt100) e l'uscita ad esempio md20  di "scale" la inserisco all'ingresso di "unscale"  la valvola si aprirà e chiuderà tra 0[LO_LIM]e100[HI_LIM] impostati in "unscale"?

 

Link al commento
Condividi su altri siti

Il PID è la regolazione continua di una variabile in funzione della oscillazione della variabile stessa dovuta ad errori  legati a limiti fisici e costruttivi dell'impianto.

Il PID compensa questi errori cambiando il valore della variabile d'uscita in funzione dell'errore.

Nella sezione "Didattica" trovi questo

Ti aiuterà a capire.

 

Link al commento
Condividi su altri siti

I miei punti interrogativi erano dovuti al messaggio che ho scritto prima(

Ok grazie mille veramente ragazzi....adesso vi pongo un altra domanda...Io devo pilotare una valvola modulante 0-10V che si apre e si chiude a secoda della temperatura del fluido....se uso una funzione "scale" dove all'ingresso metto una pew125(pt100) e l'uscita ad esempio md20  di "scale" la inserisco all'ingresso di "unscale"  la valvola si aprirà e chiuderà tra 0[LO_LIM]e100[HI_LIM] impostati in "unscale"?)così può funzionare o no?

Link al commento
Condividi su altri siti

Il fatto è che teoricamente funziona (col simulatore).

E' "sul campo" che avresti problemi.

Se provi a mettere un termometro ,vedrai che il suo valore varia a causa di molti fattori (es, lo scambio termico)

Per avere una stabilità si usa proprio il PID, che corregge in positivo o in negativo in ingresso le variazioni presenti in uscita.

Link al commento
Condividi su altri siti

Ti consiglierei di leggere quello che ti ho consigliato prima e quello che ha consigliato Livio.
Fare le cose senza sapere il perchè non serve a niente.

 

Link al commento
Condividi su altri siti

Sto leggendo mano mano...Se faccio una cosa del genere

L PEW128(set point)

T MW10

L 500

+I

T MW12(soglia alta)

L MW 10

L 500

-I 

T MW14(soglia bassa)

L PEW128(temperatura)

L MW12

>I

S A124.0

L PEW128

L MW14

<I

R 124.0

Cosi con isteresi dovrei risolvere il problema dello scambio termico ecc

 

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