Vai al contenuto
PLC Forum


Rslogix 5000 V16 - Add-On Istruction pregi e difetti


simtad

Messaggi consigliati

Salve a tutti, volevo innanzitutto sapere se qualcuno ha avuto modo di utilizzare la versione 16 del RSLogix 5000 , in particolare la nuova funzionalita' denominata Add-On Istruction che permette di creare delle macro custom. Io finora ho sviluppato 7 macchine fra cui slitter laminatoio e riavvolgitrici, la cosa ostica per me' e' l'impossibilita' di poter manipolare l'Add-On istruction creata in modalita' online e la "difficile" interpretazione del blocco creato fra ingressi e uscite . Qualcuno ha utilizzato questa nuova funzionalita? volevo delle opinioni e magari dei suggerimenti per sfruttare al meglio questa cosa che a parer mio e' eccezionale ma manca ancora dell'approccio cosi detto "friendly".

Grazie a tutti

Link al commento
Condividi su altri siti


simtad,come già dici nel tuo post, l'istruzione Add-On è davvero molto utile e funzionale; effettivamente qualche miglioria si potrebbe apportare, per renderla più "friendly".

La funzionalità che segnali delle modifiche online si rende necessaria nel momento in cui si sta collaudando una nuova istruzione, quindi occorre definire al meglio la sua logica... poi una volta collaudata, non si dovrebbe più rendere necessario modificarla online, nel senso che sarà diventata una istruzione nuova, chiusa e finita (diciamo come quelle già esistenti a sistema)

Una cosa interessante di queste Add-On è la possibilità di monitorare in online l'esecuzione della logica di ogni singolo richiamo (dal momento che per ogni istruzione inserita il software genera una nuova istanza) e non una sovrapposizione di tutti i richiami (come avviene utilizzando per esempio JSR e SBR).

Considerando la natura della grafica Ladder di questi sistemi, la possibilità di differenziare In e Out nella grafica dell'istruzione la vedo difficile... infatti anche gli altri blocchi standard hanno lo stesso comune layout (es. il timer, ma ancor più il PID ecc.); tutti i dati sulla stessa linea.

Se hai la possibilità di utilizzare il linguaggio opzionale FBD, in quel caso è molto più chiaro se i pins sono In o Out

- fuzzy logic

Link al commento
Condividi su altri siti

Si certo con il linguaggio FBD gli I e gli O vengono differenziati con la posizione all'interno del blocco grafico , ma in ladder le cose non sono delle migliori <_< <_< <_< , l'unica cosa che puo' aiutare a mio parere la differenziazione fra I e O e' compattere tutte le uscite come dichiarazione parametri e' inserire fra' la fine della serie di I e l'inizio della serie di O un parametro che non sara' utilizzato all'interno del programma chiamato per esempio O_U_T_P_U_T e da li far partire tutti i reali parametri Output.

L'utilizzo del ladder per me' e' importante inquanto posso dare in "pasto" a tecnici meno capaci nella programmazione delle macro sviluppate in FBD e poi richiamate in ladder cosi da facilitarne il commissioning.

Se qualcuno ha altre ide in merito ben vengano

Grazie Fuzzy

:lol:

Link al commento
Condividi su altri siti

Ciao,

Anche io normalmente faccio la compattazione degli I e delle O.

Semplicemente battezzo tutti i segnali della Add-on instruction iniziando con le lettere I,O e IO:

Esempio:

I_Start

I_Stop

I_Emergency

O_Motore_ON

IO_Counter

ciao.

Link al commento
Condividi su altri siti

Ciao,

non sò se ho capito bene il vostro problema, ma per quel che mi riguarda la differenziazione fra In e Out è abbastanza instuitiva se si imposta nelle opzioni della workstation Meù Tool->Option->Ladder editor->Display->Show Input Operand On Left, Output operand on right. Scusate se vi dico una banalità.

Link al commento
Condividi su altri siti

Wow ! :P

ebbravo fortun ! questa mi era proprio sfuggita.... è una delle nuove opzioni disponibili nella versione 17 !

Diciamo che graficamente non è proprio molto funzionale, in quanto un blocchetto diventa molto grande e quindi rende il tutto (a mio modo di vedere) meno leggibile... però si può fare. ;)

E' proprio vero che non si smette mai di imparare... ;) inoltre una ennesima dimostrazione dell'utilità della condivisione delle esperienze e conoscenze.

Alla prossima-

- fuzzy logic

Link al commento
Condividi su altri siti

E anche possibile puntare uno o più elementi di un Array dichiarato come I/O in un Add-On Istruction, senza per questo definire come dimensione dell' Array la dimensione massima.

Vale a dire che se voglio puntare ad esempio l' elemento numero 375 di un Array magari con una dimensione massima di 1500 elementi.

Posso dichiarare un Parametri di I/O come Array con un numero di elementi piccolo magari di 3 o 4 elementi.

perciò se voglio leggere un qualsiasi elemento di un array Real[1500], devo definire un parametro Input/Output di tipo Array

(ad esempio REAL[3]), poi posso definire un altro parametro di Input che serve come puntatore per leggere Array Real[1500].

Read Array :

Block : Real[3] Input/Output 'Array d' ingresso'

N_Element : DINT Input 'Puntatore del Blocco'

Out_value : Real Output 'Valore del elemnto puntato'

Out_value := Block[N_Element];

ecco che se Block è definito come Array di 1500 Real Block [0...1499 of Real]

posso passare come parametro di I/O la Tag "Block"

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