Vai al contenuto
PLC Forum


Cp1L-Em Calcolo % In Testo Strutturato (Oppure Fb)


gianff

Messaggi consigliati

dovrei ricavare la (%) percentuale di una variabile ( in testo strutturato )

esempio con calcolatrice 1000 x 70% = 700

in pratica

variabile in ingresso resistenza fissa 1000w

variabile in ingresso un termoregolatore mi dice che sta erogando 70% (questa variabile cambia nel tempo)

variabile in uscita = potenza utilizzata effetivamente 700w

non riesco a utilizzare la % in testo strutturato

mentre riesco con molti altri calcoli normali

ma dovrei farlo su 60 termoregolatori

Link al commento
Condividi su altri siti


Supponiamo che il valore letto da termoregolatore lo hai in Percento[n], con n da 0 a 59, puoi fare una semplicissima routine così

NumTermo := 60; // Numero di Termoregolatori Letti
ResFissa := 1000; // Valore fisso
FOR n := 0 TO (NumTermo - 1) DO
Potenza[n] := (ResFissa * Percento[n]) / 100;
END_FOR;
In Potenza[n] avrai convertito il valore di ogni percentuale in watt.
Link al commento
Condividi su altri siti

cosi faccio fatica

non so definire ingressi/uscite/interne

ti dico quello che utilizzo adesso

CP1L-EM + EJ1N-TC4....celciux

------

R1..... resistenza ( ingresso ) UINT ..sarebbero diverse taglie da 100w.....8000w

P1..... percentuale ( ingresso) UINT ... sarebbe 0%.100,0%

D1..... divisore ( interna ) UINT

U1......risultato ( uscita) UINT

attualmente in via limitata per i numeri che a un ceto punto oltrepassano il 65535 / e perdo anche i valori dopo la virgola

eseguo

D1=:R1/100; ( R1 resistenza diviso 100 ) il 100 sarebbe la percentuale massima ipotetica !! e ottengo un divisore D1

U1=:D1*P1; ( D1 divisore per percentuale P1 ) ottengo la potenza utiliizata inviata a U1

esempio 1000w : 100 = 10...(D1)

divisore (D1) 10 * ( P1 )50..% = 500W.......... D1*25..%=250W ......D1*15..%=150W

non esiste proprio la % in OMRON ST.

Modificato: da gianff
Link al commento
Condividi su altri siti

Ah, aspetta. Sul CP1 non puoi scrivere il software in linguaggio strutturato, puoi farlo solo nelle FB.

Visto che parlavi di ST davo per scontato che avevi un CJ.

Il CP1 non gestisce il passaggio di matrici alle FB, per cui lascerei perdere l'uso della FB in testo strutturato. Inoltre non si può usare l'indirizzamento indiretto passando puntatori.

Comunque sia, io lavorerei con le matrici a prescindere (intese come aree sequenziali di dati omogenei).

I valori delle resistenze li metti in una matrice di INT (indice 0-59), che immagino sia costante, quindi magari ne assegni i valori alla prima scansione. Chiamiamola Resistenze[0..59] in D0-D59

Poi i valori di percentuale letti dal termoregolatore li metti in una matrice di INT (indice 0-59), chiamiamola Percento[0..59] in D100-D159.

Il risultato lo ritroveremo in un'altra matrice di INT chiamata Potenza[0..59] in D200-D259.

Definisci questi simboli nella relativa tabella.

Poi ti crei tre puntatori alle prime word di ciascuna delle tre matrici, pRES, pPERC e pPOT relativamente.

Quindi se esegue un loop FOR in ladder (non si può usare nelle FB, per cui lascialo fuori) con un paio di registri di appoggio per i valori intermedi

Ecco l'esempio, testato e funzionante

post-64103-0-54422300-1405414370_thumb.j

Link al commento
Condividi su altri siti

ci provo

non vedo la prima rung ( oppure non serve) idem i commenti

-----

con CP1L-EL sto scrivendo in testo strutturato nelle prove che sto facendo !!!!!

P1D:=R1/100; U1:=( P1D*P1)/100;
P2D:=R2/100; U2:=( P2D*P2)/100;
P3D:=R3/100; U3:=( P3D*P3)/100;
P4D:=R4/100; U4:=( P4D*P4)/100;

PERCENT:= U1+U2+U3+U4;

Modificato: da gianff
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...