Update 0.4

Precedente Home Su

Link per scaricare l'aggiornamento: UpdateLadder0.4.zip (86 Kb)

L'aggiornamento contiene solo i nuovi blocchi e quelli modificati, qui di sotto elencati:

Ladder.mdl (aggiornato): File contenente tutti i blocchi aggiornati
TestNewCounter.mdl (nuovo): Test per il nuovo tipo di contatori implementati nella libreria Ladder;
TestOperators.mdl (nuovo): Test per i blocchi operatore, aggiunti in questa release;
TestLogOperators.mdl (nuovo): Test per i blocchi logici e per quelli di assegnamento da una variabile all'altra;
LDSet.dll (modificato): Permette il corretto funzionamento dei nuovi tipi di blocchi contatore;
LDGet.dll (modificato): Permette il corretto funzionamento dei nuovi tipi di blocchi contatore;

Per scaricare la nuova versione completa (0.4), tornare alla pagina principale.

Informazioni 
(aggiornate al 23/07/01)

Gli aggiornamenti: Versione 0.4 del 22.07.2001

In questa versione sono state aggiunte nuove componenti e ne sono state modificate altre, comprese alcune DLL. I contatori sono stati modificati per permettere l'uso dello stesso contatore (la stessa cella di memoria) in più punti del programma. Con i nuovi contatori, viene incrementato il registro associato al contatore, il cui valore è modificabile anche da sorgenti esterne (ad esempio con la funzione VSET). Il funzionamento del contatore non è stato modificato per cui non è necessario sostituire il blocco nel caso in cui non sia necessario modificare la cella di memoria nella quale è contenuto il conteggio anche in altri punti del programma.

L'importanza della nuova release è sopratutto nella aggiunta degli operatori di somma, sottrazione e moltiplicazione, degli operatori di confronto e della funzione di assegnazione che consente di eseguire delle operazioni più avanzate nella traduzione di un Grafcet.

La descrizione dei blocchi modificati è riportata nella tabella che segue:

Update!

CONTATORE UP (CON): Ha due canali di ingresso, uno dedicato alla linea sulla quale è presente l’impulso da contare, l’altra per il reset del contatore. Come uscita, il blocco ha un segnale che è attivo quando il contatore è arrivato al valore massimo programmato. Nella notazione grafica, oltre a riportare l'indirizzo della cella di memoria incrementata durante il conteggio, è presente il valore max di conteggio, dopo il quale il contatore viene abilitato. Per l'incremento del contatore è sufficiente il fronte di salita del primo ingresso (non importa, poi, se questo rimane attivo o si disattiva), mentre il contatore rimarrà resettato per tutto il tempo in cui l'ingresso di reset è attivo. Per quanto riguarda l'uscita, questa rimarrà attiva per tutto il tempo in cui la variabile di conteggio (in questo caso, OY1) rimarrà maggiore del valore di conteggio (in questo caso, 5), indipendentemente dallo stato del primo ingresso.

Update!

CONTATORE UP-DOWN (CUD): Ha tre canali di ingresso, uno dedicato alla linea sulla quale è presente l’impulso da contare per incrementare il contatore, il secondo dedicato alla linea sulla quale è presente l’impulso da contare per decrementare il contatore, l’altra per il reset del contatore. Come uscita, il blocco ha un segnale che è attivo quando il contatore è arrivato al valore massimo programmato ed un segnale che è attivo quando il contatore è al valore minimo possibile (0). Nella notazione grafica, oltre a riportare l'indirizzo della cella di memoria incrementata durante il conteggio, è presente il valore max di conteggio, dopo il quale la prima uscita del contatore viene abilitato. Per l'incremento del contatore è sufficiente il fronte di salita del primo ingresso (non importa, poi, se questo rimane attivo o si disattiva), così come il decremento sarà effettuato in corrispondenza del fronte di salita del secondo ingresso. Il contatore rimarrà resettato per tutto il tempo in cui l'ingresso di reset è attivo. Per quanto riguarda le uscite, la prima rimarrà attiva per tutto il tempo in cui la variabile di conteggio (in questo caso, OY3) rimarrà maggiore del valore di conteggio (in questo caso, 5), indipendentemente dallo stato del primo ingresso. Per la seconda, vale una condizione analoga, ovvero, rimarrà attiva per tutto il tempo in cui la variabile di conteggio rimarrà a zero.

Update!

CONTATORE PROGRAMMABILE UP (PCON): Ha due canali di ingresso, uno dedicato alla linea sulla quale è presente l’impulso da contare, l’altra per il reset del contatore. Come uscita, il blocco ha un segnale che è attivo quando il contatore è arrivato al valore massimo programmato. Il valore massimo di conteggio è contenuto in una locazione di memoria indicata da pannello. Nel caso riportato al lato, la locazione di memoria che contiene il valore massimo di conteggio è IY2 (byte di input) mentre quella che viene incrementata durante il conteggio è OY1 (byte di uscita). Per l'incremento del contatore è sufficiente il fronte di salita del primo ingresso (non importa, poi, se questo rimane attivo o si disattiva), mentre il contatore rimarrà resettato per tutto il tempo in cui l'ingresso di reset è attivo. Per quanto riguarda l'uscita, questa rimarrà attiva per tutto il tempo in cui la variabile di conteggio (in questo caso, OY1) rimarrà maggiore del massimo valore di conteggio (in questo caso, IY2), indipendentemente dallo stato del primo ingresso.

Update!

CONTATORE PROGRAMMABILE AD INCREMENTO PROGRAMMABILE UP (PICON): Ha due canali di ingresso, uno dedicato alla linea sulla quale è presente l’impulso da contare, l’altra per il reset del contatore. Come uscita, il blocco ha un segnale che è attivo quando il contatore è arrivato al valore massimo programmato. Il valore massimo di conteggio è contenuto in una locazione di memoria indicata da pannello. Anche l'incremento è programmabile ed è indicato in un'altra variabile inseribile da pannello. Nel caso riportato al lato, la locazione di memoria che contiene il valore massimo di conteggio è OY1, quella che viene  incrementata durante il conteggio è OY2, mentre quella in cui viene memorizzato l'incremento da apportare al contatore è OY5. Per l'incremento del contatore di OY5 è sufficiente il fronte di salita del primo ingresso (non importa, poi, se questo rimane attivo o si disattiva), mentre il contatore rimarrà resettato per tutto il tempo in cui l'ingresso di reset è attivo. Per quanto riguarda l'uscita, questa rimarrà attiva per tutto il tempo in cui la variabile di conteggio (in questo caso, OY2) rimarrà maggiore del valore di conteggio (in questo caso, OY1), indipendentemente dallo stato del primo ingresso.

Esempio

Nell'esempio, si vuole far comprendere la sostanza della modifica effettuata sui contatori. Con i quattro rung riportati nell'esempio (il quarto, a dire la verità, non c'entra niente e non mi andava di rimuoverlo), si vuol mostrare come, la stessa variabile OY1 associata al contatore sia possibile modificarla in tre punti diversi del programma (questa operazione non era possibile con il precedente tipo di contatori), anche all'esterno del blocco contatore stesso. Quindi, il valore della variabile OY1 viene incrementata sia in corrispondenza di IB0.0 o IB0.3 attivi (secondo rung, attivazione del blocco CON), sia in corrispondenza di IB0.4 attivo (terzo rung, attivazione del blocco CON). Il valore di OY1 viene posto a zero quando IB0.1 (secondo rung) o IB0.7(terzo rung) divengono attivi, mentre viene posto a 10 quando OB0.2 diventa attivo (primo rung, attivazione del blocco VSET).

Operatori Aritmetici

Introduciamo innanzitutto gli operatori aritmetici. Questi sono stati aggiunti per offrire maggiore flessibilità nella creazione del programma e in particolare nella traduzione di un grafcet in un programma LADDER. Sono tutti blocchi ad un solo ingresso e ad una sola uscita. In uscita c'è la replica dello stato in ingresso, per cui possono essere accodati più blocchi per fare più operazioni in successione su comando di un unico stato di ingresso. L'operazione aritmetica viene effettuata in corrispondenza del fronte di salita del segnale in ingresso. Segue una breve descrizione dei blocchi.

New!

BLOCCO SOMMA (SUM): Un canale in ingresso, il cui fronte di salita abilita l'operazione di somma. Le variabili utilizzate nella somma vengono impostate da pannello e nel simbolo grafico del blocco vengono riportati i primi due termini della somma al di sopra della linea mentre la varibile usata per il risultato viene posta al di sotto della linea. La linea di uscita replica esattamente il valore della linea di ingresso. I termini della somma possono essere qualsiasi a scelta tra BYTE, FLOAT e INTERI. La conversione viene effettuata automaticamente in modo da minimizzare l'errore di arrotondamento

BLOCCO SOTTRAZIONE (SUB): Blocco identico al blocco somma, eccetto l'operazione aritmetica effettuata, corrispondente alla sottrazione. 

BLOCCO MOLTIPLICAZIONE (MUL): Blocco identico al blocco somma, eccetto l'operazione aritmetica effettuata, corrispondente alla moltiplicazione. 

Esempio TestOperators

Esempio molto semplice. In corrispondenza del fronte di salita del segnale degli stati IB3.1, IB3.2 e IB3.3, vengono effettuate, rispettivamente le seguenti operazioni:

OY4 = OY1 + IY2;

OY4 = OY1 + IY3;

OF2 = IF1 + IY5;

In corrispondenza, invece, dell'attivazione del segnale IB0.2, la variabile OY1 viene posta pari a 10.

Operatori Logici di confronto e di assegnazione

New!

OPERATORI LOGICI DI CONFRONTO (LOGOP): Affinché il risultato dell'esecuzione di una serie di operazioni aritmetiche potesse essere monitorata nel risultato, sono state introdotte le operazioni di confronto logico del contenuto delle celle di memoria. Le operazioni permesse sono tutte quelle classiche:

Uguaglianza: ==

Maggiore o Uguale: >=

Minore o Uguale: <=

Maggiore ma non uguale: >

Minore ma non uguale: < 

Diverso: ~=

Il risultato dell'operazione di confronto viene riportato in uscita per tutto il tempo in cui l'ingresso del blocco è attivo. La scelta delle variabili da mettere a confronto viene operata dal pannello del blocco. Anche la scelta della operazione di confronto da effettuare viene scelta da pannello da una lista di operazioni. Non ha importanza il tipo di variabile prescelta per il confronto: possono essere scelti BYTE, FLOAT e INTERI, potendo anche scegliere per il confronto due variabili di tipo diverso.

New!
OPERATORE DI ASSEGNAZIONE (PSET): Molto simile come funzionamento all'operatore VSET di assegnazione di una variabile. Le due variabili vengono scelte da pannello e l'operazione effettuata viene visualizzata sul simbolo grafico del blocco. L'operazione di assegnazione viene effettuata per tutto il tempo in cui il segnale di ingresso è attivo. Così come per il blocco VSET, il segnale di ingresso del blocco viene direttamente riportato in uscita. Non ha importanza il tipo di variabile prescelta per l'assegnazione: possono essere scelti BYTE, FLOAT e INTERI, potendo anche scegliere per l'assegnazione due variabili di tipo diverso. La conversione viene effettuata automaticamente in modo da minimizzare l'errore di arrotondamento.

Esempio TestOperators

In questo esempio vengono utilizzate le proprietà dei blocchi LOGOP e PSET per effettuare una operazione di assegnazione discretamente complessa. In pratica, i due rung sopra riportati effettuano le seguenti operazioni:

SE (IB0.1 è attivo) AND (IY2 > IY3) ALLORA (OY2 = IY2);

SE (IY2 > IY7) ALLORA (attiva OB0.2);

 

Questa pagina è stata aggiornata il 23/07/01.

Leonardo Daga's Warehouseâ, http://leonardodaga.insyde.it
Send any Comments to: leonardo.daga@gmail.com