Vai al contenuto
PLC Forum


Utilizzo Delle Parentesi


Messaggi consigliati

matrixsellone
Inserito: (modificato)

Ciao a tutti ..

è rientrato un tecnico dal cantiere dicendomi di avere riscontrato alcuni problemi con il seguente codice:

O "T55"

O(

L "Analogiche".EW_TTx97

L "SetPoint".SpT_SalaTrafo

>R

)

S "A_Vx97"

L "SetPoint".SpT_SalaTrafo

L 3.000000e+000

-R

T #L_REAL

L "Analogiche".EW_TTx97

L #L_REAL

<R

R "A_Vx97"

Si tratta di un avviamento di un ventilatore con setpoint di temperatura impostato a priorità di reset.

Come vedete, il codice originale, sulla funzione di Reset, non usa le parentesi nel confronto tra la temperatura TTx97 e quella della sala trafo.

Cosi com'è, l'uscita non risulta rimanere ad uno fissa (suppondendo che la logica sia corretta).

Possibile che l'assenza delle paretetesi possa influire sull'RLC?!?!

Scrivendo l'ultima istruzione come segue:

U(

L "Analogiche".EW_TTx97

L #L_REAL

<R

)

R "A_Vx97"

la questione sembra essersi sistemata.

Grazie mille.

Modificato: da matrixsellone

Inserita:

Dipende lo stato dell' RLC prima dell'ultima operazione perchè messa così prende lo stato dalla sottrazione e lo mette in AND.

Bastava metterci un SET prima della comparazione per separare l'operazione dal confronto.

Inserita:

La sottrazione non influenza l'RLC, e cosa più importante, nemmeno il bit di stato ER, di conseguenza il codice iniziale è privo di ambiguità. Il tecnico deve aver fatto confusione, infatti lui stesso ammette che il problema "SEMBRA" risolto. A mio avviso o il problema non è mai esistito, o se c'è di sicuro quella modifica delle parentesi non l'ha eliminato.

Inserita:

Non è del tutto vero. A me è già successo una cosa del genere e mettendo le parentesi o forzando l'RLC con un SET il tutto funzionava.

Il problema sorge dopo le operazioni matematiche.

Inserita:

Ciao a tutti,

ho fatto questa prova ho scritto la logica :

U(

L "Analogiche".EW_TTx97

L #L_REAL

<R

)

R "A_Vx97"

ho cambiato la visualizzazione in Kop oppue fup ,

ho cambianto nuovamente la visualizzazione ancora in awl,

automaticamemte vengono tolte le parentesi !!!

L "Analogiche".EW_TTx97

L #L_REAL

<R

R "A_Vx97"

non è stata scritta la stessa cosa ?

Prova a scrivere il pezzo di logica in un segmento separato !

ciao kla

Inserita:
Cosi com'è, l'uscita non risulta rimanere ad uno fissa (suppondendo che la logica sia corretta).

Condivido che la logica non sembra avere di per se errori di codice.

Forse il differenziale di 3. Gradi? decimi? Se la misura si è spostata mentre ci si concentrava sul codice la soluzione non è stata la parentesi.

L'istruzione S resetta ER, quindi il confronto per il reset è affidabile.

matrixsellone
Inserita:

Per Mubeta -- si tratta di un differenziale di 3 gradi su di una temepratura ambiente .. impossibile che si abbiano variazioni cosi repentine .. a meno di problemi sulla PT100.

Comunque la maggioranza di voi mi conferma che la presenza o meno delle parentesi non è influente ai fini dell'RLC, il che mi rassicura sulla correttezza del codice.

Eventualmente inserirò un ritardo di tipo SE per evitare eventuali oscillazioni della lettura analogica.

Grazie mille per le risposte.

Inserita:

Confermo che le parentesi non cambiano assolutamente nulla.

Se qualcosa non funziona bene, la causa è da ricercare da un'altra parte.

Inserita:

Ad essere pignoli, con e senza parentesi non è per niente la stessa cosa:

con la parentesi, infatti, bisogna specificare per forza anche l'operatore relazionale (U oppure O), di conseguenza il risultato dell'interrogazione che andiamo a fare è messo sempre in relazione con l'RLC precedente. Se poi abbiamo l'accortezza di arrivare al nostro confronto sempre con l'ER=0, non incorriamo in errori perché l'ER è sempre prioritario ignorando di fatto la nostra volontà di collegare l'RLC attuale con il precedente.

Quando invece scriviamo un confronto senza parentesi (e quindi senza operatori U/O), siamo blindati in quanto perfettamente scollegati dall'RLC precedente, è come se l'ER fosse a 0, anche se in realtà può essere a 1. Ecco perché in KOP le parentesi vengono omesse dal traduttore, per evitare errori subdoli e nascosti.

Nel caso spefico del topic, con o senza parentesi produce gli stessi risultati perché in caso di parentesi siamo tutelati da ER che viene impostato a 0 da S "A_Vx97", nel caso di senza parentesi lo saremmo in tutti i casi possibili, in quanto scollegati dalle precedenti relazioni.

Esempio:

L "SetPoint".SpT_SalaTrafo

L 3.000000e+000

==R // ****** ISTRUZIONE MODIFICATA: PRIMA ERA "-R "

T #L_REAL

L "Analogiche".EW_TTx97

L #L_REAL

<R

R "A_Vx97"

In questo caso il reset dipende ancora *esclusivamente* dal risultato del "<R", senza mai essere influenzato dal precedente esito del "==R".

Se invece scriviamo con le parentesi in questo modo:

L "SetPoint".SpT_SalaTrafo

L 3.000000e+000

==R // ****** ISTRUZIONE MODIFICATA: PRIMA ERA "-R "

T #L_REAL

U(

L "Analogiche".EW_TTx97

L #L_REAL

<R

)

R "A_Vx97"

il reset avviene solo entrambe le condizione sono soddisfatte, in quanto l'ultimo confronto è relazionato in AND con lo stato dell'RLC precedente, a sua volta condizionato dal confronto "==R".

Spero di aver detto con sufficiente chiarezza quello che ho in mente...

Un saluto

Inserita:

Mi sono accorto adesso che il mio post sembra essere una risposta per smentire o puntualizzare su quello che dice Batta, ma è solo una coincidenza, la mia è una risposta collegata al mio precedente intervento. Anzi, grande stima per Batta e per altri che hanno tanto da insegnarci.

Inserita:
Mi sono accorto adesso che il mio post sembra essere una risposta per smentire o puntualizzare su quello che dice Batta

Tranquillo, che non avevo interpretato il tuo post in contrapposizione al mio.

Anzi, devo dire che, mentre io mi ero limitato a confermare che nel caso in questione con o senza parentesi non cambiava nulla, tu hai spiegato nei dettagli il perché :)

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