Vai al contenuto
PLC Forum


Conversione


mazzucconi

Messaggi consigliati

Buongiorno a tutti

vorrei chiedere spiegazione sul perchè facendo una conversione in KOP, da intero 16 bit a intero BCD (I_BCD) la word deve essere per forza dichiarata INT, come indica la guida, mentre in AWL (ITB) posso utilizzare una word dichiarata WORD.

Grazie.

Link al commento
Condividi su altri siti


Apri un blocco di programma, vai su "Strumenti" --> "Impostazioni", seleziona la scheda "KOP/FUP" e togli il segno di spunta da "Controllo tipo di operandi".

Ora puoi usare variabili di formato diverso anche in KOP.

Link al commento
Condividi su altri siti

Batta ne sai una più del diavolo...

Io uso pochissimo il KOP, e assolutamente mai per i calcoli.

Questa cosa l'ho imparata da qualche parte qui, sul forum :rolleyes:

Link al commento
Condividi su altri siti

ah cavoli, funziona solo in KOP, pensavo che funzionasse anche in awl per gli FC parametrizzati creati da me dove ad esempio dichiaro come ingresso una word e di conseguenza posso collegare solo variabili dichiarate come word oppure non dichiarate (esempio DB generati dalla cpu oppure array di dati). Era interessante poterci collegare un int.

Io uso il kop per le sequenze di marcia arresto e altre cosette del genere; solo awl per calcoli.

Link al commento
Condividi su altri siti

premetto uso quasi esclusivamente AWL ma avolte faccio i calcoli anche KOP coma mai voi non utilizzate anche il KOP per i calcoli

Link al commento
Condividi su altri siti

perchè con alcuni calcoli ci sono limitazioni e, parere personale, la lettura del programma è più snella e lo spazio utilizzato (sia di memoria che per scansione) è nettamente inferiore.

Prova ad esempio a convertire una serie di calcoli matematici fatti da KOP ad AWL. Vedrai quanto codice in più per nulla

Link al commento
Condividi su altri siti

Proprio come dice ken.

Facciamo un esempio semplicissimo: Totale = Var_1 + Var_2 + Var_3

in AWL diventa:

      L     #Var_1
      L     #Var_2
      +I    
      L     #Var_3
      +I    
      T     #Totale
In KOP dovresti usare un box ADD_I per sommare Var_1 + Var_2 e mettere il risultato in VarAppoggio. Poi dovresti usare un altro box ADD_I e sommare VarAppoggio + Var_3 e mettere il risultato in Totale. Questo, mettendo i due box nello stesso segmento, uno di seguito all'altro, tradotto in AWL diventa:
      U(    
      L     #Var_1
      L     #Var_2
      +I    
      T     #VarAppoggio
      UN    OV
      SAVE  
      CLR   
      U     BIE
      )     
      SPBNB _001
      L     #VarAppoggio
      L     #Var_3
      +I    
      T     #Totale
_001: NOP   0
La differenza mi pare evidente. Si potrebbe semplificare un po' mettendo i due box su due segmenti distinti. Il risultato sarebbe il seguente:
//Segmento 1
      L     #Var_1
      L     #Var_2
      +I    
      T     #VarAppoggio
      NOP   0

//Segmento 2
      L     #VarAppoggio
      L     #Var_3
      +I    
      T     #Totale
      NOP   0

Il codice risulta così poco più lungo dell'AWL ma, per visualizzare in questa maniera un calcolo appena un po' lungo, consumi la rotellina del mouse ;)

E poi, sarà forse solo questione di abitudine, ma una sequenza di calcoli in AWL mi pare più leggibile, oltre ad occupare molto meno spazio a video.

A mio avviso, il KOP è imbattibile per la visualizzazione di rami con logica booleana un po' complessi, ma non certo per i calcoli.

Link al commento
Condividi su altri siti

si sulla lunghezza del programma sono pienamente daccordo ma se devi incrementare una variabile tramite un mercher di clock devi usare degli spb in Kop interrompi solo il ramo e il gioco fatto quando ai diversi spb nello stesso fc diventa molto difficile da gestire poi penso che sia sempre una cosa soggettiva

Link al commento
Condividi su altri siti

A mio avviso, il KOP è imbattibile per la visualizzazione di rami con logica booleana un po' complessi, ma non certo per i calcoli.

Quoto!

Poi, per quanto rigurada la visualizzazione dei rami nei file sequenziali diventa anche molto comodo .

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