Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Manuale di programmazione
***
La comunicazione con lesterno avviente tramite due bus seriali, destinati alla
connessione con i vari dispositivi periferici (sonde, unit di pilotaggio del quadro
di forza, ecc...) e delle centraline fra loro ed al computer centrale, su cui
installato il programma di supervisione SSCNet32.
Caratteristiche
Libreria dei programmi utente contenente fino a 20 ricette . 1
I dispositivi periferici
Le apparecchiature
Questa tabella contiene la lista delle sigle didentificazione dei diversi apparecchi
periferici:
Gli SCU e gli STU gestiscono fino a quattro apparecchiature (sonde, bilance,
quadri di forza, ecc...), due tutti gli altri.
I segnali
Ogni apparecchio periferico provvisto di segnali e/o morsetti di ingresso/uscita,
collegati ai sensori, alle valvole e ai rel dellimpianto. Tali segnali sono
identificati dalle seguenti sigle:
din
Ingresso digitale: un contatto in chiusura, tipo micro switch.
dot Uscita digitale: di un contatto in chiusura di tipo On/Off.
ain Ingresso analogico: un segnale in tensione o corrente, variabile con
continuit nel suo campo scala, proveniente da un sensore.
aot Uscita analogica: un segnale modulabile da 0 al 100% per lattivazione
di valvole proporzionali e simili.
pwm Uscita digitale configurata con valori da 0 a 100, indicanti la percentuale
di tempo in cui il Dot tenuto in On, rispetto ad un intervallo base.
reg Registro di un dispositivo periferico programmabile, utilizzato per
limpostazione dei parametri di programmazione (stg e stj).
set Registro di un dispositivo controllore di loop, usato per impostare il
valore di soglia (stg e stj).
Il programma SBJ
il programma di configurazione della centralina (il sorgente ha estensione SPL)
contenente la descrizione dellimpianto e degli algoritmi di controllo.
I programmi utente
Si tratta dei programmi sviluppati dallutilizzatore della centralina per
lesecuzione ripetitiva di determinati cicli produttivi. Ogni programma utente
comprende una serie di processi predefiniti, detti fasi, che sovrintendono un
particolare processo di regolazione, quali lasciugamento, la stagionatura, ecc...
Il programma corrente, caricato nella memoria di lavoro tramite loperazione
Lettura programma, pu essere eseguito tramite il pulsante START della
centralina.
Configurazione di un controllore
Per rendere operativo il controllore SSC01C bisogna configurarlo con un
programma SBJ; fino a quel momento inerte . I passi da seguire sono questi:
2
1. Scrittura del programma sorgente e di quello delle icone. Tali file hanno
rispettivamente estensione .SPL e .IPL, ad esempio PROG.SPL e
PRGICO.IPL.
2. Compilazione, utilizzando gli appositi compilatori, dei file PROG.SPL e
PRGICO.IPL. I file risultanti avranno estensione .SBJ (quindi PROG.SBJ) e
.IBJ (quindi PRGICO.IBJ).
3. altres disponibile la forma compilata (il sorgente non viene rilasciato) del file
dei caratteri utilizzati dalla centralina, ad esempio FONT.FBJ.
4. Trasferimento dei file FONT.FBJ, PRGICO.IBJ e PROG.SBJ (in questordine)
nella memoria del controllore con il programma di comunicazione SSCTALK.
5. A questo punto consigliabile avviare il programma ed eseguire i test per
verificarne il corretto funzionamento.
Valori di tempo
Sono numeri con formato ore: minuti. secondi. obbligatorio specificare ore e
minuti, il numero di secondi facoltativo.
Esempi:
Temp > 25.6
Urel = 80.0
Tglic = -15
TimDurFas = 1:10.30 # 1 ora, 10 minuti e 30 secondi
TMaxLav = 0:30 # ora
Sebbene il compilatore accetti espressioni miste, convertendo il valore di tempo in
decine di secondi (e viceversa), sconsigliabile mischiare i due tipi di valori.
VARIABILE A # Dichiarazione di una variabile numerica
A:= 1:0.1 # Carica in A il numero 360.1
Le regole
La regola lelemento base del programma. costituita da una condizione logica
che, in base al fatto che sia vera o falsa, determina le azioni da eseguire. Ad
esempio, la regola: SE la temperatura supera il massimo ALLORA accendi il
compressore frigorifero, in SPL si traduce cos:
T > Tmax: ON(Frigo)
Sintassi:
<condizione> [,<condizione>]: <azione> [,<azione>]
<condizione> Ritorna vero se diversa da 0, falsa altrimenti. possibile
concatenare pi espressioni con i sette operatori matematici
+, *, -, /, |, & e % , nonch con gli operatori logici
3
3 Operatore modulo. Restituisce il resto intero di una divisione. Se una o entrambe le variabili presentano una
parte decimale, essa viene ignorata.
Esempi:
5%2 =1
11 % 4 = 3
5.9 % 2.4 = 1
Sintassi Significato
<Espr1> = <Espr2> uguale a
<Espr1> < <Espr2> minore di
<Espr1> <= <Espr2> minore o uguale di
<Espr1> > <Espr2> maggiore di
<Espr1> >= <Espr2> maggiore o uguale di
<Espr1> <> <Espr2> diverso da
T > Tmax: V:= T
Esegue lassegnamento se T maggiore di Tmax.
Segnali dingresso ed uscita. Un segnale ritorna vero se
attivo, falso altrimenti.
Opzioni. Unopzione valutata vera se impostata a SI.
Soglie. Allinterno di una regola una soglia restituisce il suo
valore.
Variabili. Ritornano il loro valore attuale.
Comandi manuali. Un manuale ritorna vero se forzato a On.
<azione> Istruzioni e/o assegnamenti eseguiti se la condizione vera. La
centralina esamina le azioni da sinistra a destra, mantenendo
lordinamento derivato dalla posizione di ognuna.
TIMERSTART(TimDurFase)
ON(FredVent)
ATTIVA Tirata
FINEFASE
V1:= (T-Tmax)*(T+Tmin)
11.9 % 4.1 = 3
4 AND assoluto: se la condizione alla sinistra della virgola falsa, la centralina interrompe istantaneamente
listruzione corrente saltando a quella successiva
Istruzione TIMER
Definisce un timer, ossia un contatore usato per misurare intervalli di tempo.
Esistono due tipi di timer:
A decremento: partono da una soglia impostata via SPL o manualmente e si
fermano (scadono) quando raggiungono lo zero.
Contaore: partono da zero e sincrementano finch una TIMERSUSP o una
TIMERSTOP interrompono il conteggio.
Il formato di visualizzazione standard ore: minuti.
Sintassi:
TIMER <nome> descrizione [,<default>] [,attributi]
Istruzione SOGLIA
Definisce una variabile numerica impostabile manualmente nello schermo
predefinito DATIFASE.
Sintassi:
SOGLIA <nome> descrizione,<min>,<max>,<default> [,attributi]
<nome> Stringa di caratteri valida. Pu comparire in espressioni
matematiche allinterno delle regole.
descrizione Testo visualizzato durante linserimento della soglia.
<min>, <max> Limiti entro i quali deve essere compreso il valore inserito.
<default> Valore predefinito della soglia.
<attributi> HHMM
Visualizza la soglia nel formato ore: minuti.
HHMMSS
Visualizza la soglia nel formato ore: minuti. secondi.
HMSTIM
Questo attributo obsoleto. Usare HHMMSS.
INTERO
Nello schermo predefinito DATIFASE, in corrispondenza della
soglia genera un campo con formato 00000 anzich 000.0.
MMSS
Visualizza la soglia nel formato minuti. secondi.
MSTIM
Questo attributo obsoleto. Usare MMSS.
Esempio:
SOGLIA Tmax Temp. massima ? 0,100,40
La soglia Tmax richiede unimpostazione manuale della temperatura massima,
accettando valori compresi tra 0 e 100. Il default 40.
N.B. Il numero massimo di soglie gestibili in SPL 150 meno il numero di
opzioni.
Istruzione OPZIONE
Definisce unopzione, ossia una variabile impostabile manualmente dalloperatore.
Sintassi:
OPZIONE <nome> domanda , <default>
<nome> Stringa di caratteri valida.
domanda Domanda visualizzata durante limpostazione dellopzione.
<default> Valore predefinito. Accetta ACCESO/SPENTO, SI/NO oppure
ON/OFF.
Istruzione SEGNALE
Definisce un segnale, ossia un morsetto di collegamento ad un dispositivo
periferico, e lo inserisce nella lista dei dispositivi scansionati dal controllore.
Sintassi:
SEGNALE <nome> <dispN.morsNN> [Tipo] [, Zero, FS ] [, CLASSE = <N>,
POTENZA = <N>] [, PERIODO = <N>] [,<attributi>]
<nome> Stringa di caratteri valida.
<dispN.morsNN> Numero e tipo di dispositivo e di segnale. La seguente tabella
contiene le sigle dei vari dispositivi e morsetti, insieme alle
quantit massime ammesse.
<ser> 2 <ain> 0 .. 7
<stg> 2 <pwm> 0 .. 23
<stj> 2 <reg> 0 .. 1
<mdb> 1 <set> 0 .. 1
<Tipo> Tipo di segnale elettrico connesso ai morsetti. Vale S020, per i
segnali in 0-20 mA, e S420, per quelli in 4-20mA. Il default
S020.
<Zero>, <FS> Valori dinizio e fondo scala della sonda collegata ai morsetti.
Il default 0, 100.
PERIODO=<N> Riservato ai segnali di tipo Pwm. Periodo totale del ciclo,
suddiviso in On e Off.
CLASSE= <N> Riservato alla gestione del risparmio energetico. Classe di
consumo del segnale. Accetta soglie, variabili o costanti. Il
valore passato deve essere compreso fra 1 e 7, in caso contrario
sar automaticamente posto a zero.
POTENZA= <N> Riservato alla gestione del risparmio energetico. Potenza del
segnale. Accetta soglie, variabili o costanti.
SEGNALE P scu1.dot1 CLASSE = 1, POTENZA = TSet
SEGNALE P scu1.dot1 CLASSE = 1, POTENZA = V_Kw
SEGNALE P scu1.dot1 CLASSE = 1, POTENZA = 300
<attributi> NOALMFS
5 Si ricordi che il dot0 dello scu1 riservato come uscita di allarme sullSSC01C e non pu essere utilizzato per altri
scopi
Istruzione ALLARME
Definisce un allarme, ossia un evento, per lo pi legato ad anomalie o a
malfunzionamenti dellimpianto, generabile sia tramite SPL sia direttamente dalla
centralina. La sua vita consta di tre distinti momenti.
La generazione alla comparsa della causa che lattiva. Lo schermo predefinito
ALARMLIST riporta la lista degli allarmi non ancora tacitati e rimossi.
La tacitazione, ossia la presa in visione attuata dallutente selezionando
lapposito tasto della centralina.
La rimozione, al cessare della causa che lo aveva generato.
La tacitazione e la rimozione possono avvenire anche in ordine inverso.
Sintassi:
Esempio:
Istruzione MANUALE
Definisce un comando manuale, ossia un deviatore usato per controllare, tramite
la tastiera della centralina, laccensione e lo spegnimento dei dispositivi
dellimpianto. I comandi manuali sono visualizzati nello schermo predefinito
MANLIST.
Sintassi:
MANUALE <nome>,<default>
<nome> Stringa di caratteri valida.
<default> Accetta SI/NO, ON/OFF o ACCESO /SPENTO.
Esempio:
MANUALE M_Ventil, ACCESO
MANUALE M_Estr, SPENTO
# Sezione azionamento dei comandi manuali
M_Ventil: FORZA(Vent)
M_Estr: FORZA(Estr)
Definisce due comandi manuali, M_Ventil e M_Estr, usati per forzare a On i
segnali Vent ed Estr.
Istruzione EVENT
Configura un nuovo evento, detto evento utente.
Sintassi:
EVENT <nome> commento
<nome> Stringa di caratteri valida.
<commento> Messaggio (massimo 80 caratteri) visualizzato nello schermo
predefinito LOGEVENT.
Esempio:
EVENT Ev_Inib Centralina inibita
Altre definizioni
Queste direttive, pur non riguardando la definizione di strutture dati od oggetti
SPL, vanno tuttavia inserite in questa sezione.
Istruzione MODALITY 2
Imposta la seconda modalit di funzionamento delle istruzioni SCADUTO,
SCESO, SALITO, CAMBIATO (La prima di esse relativa ai timer, le altre
riguardano uscite e ingressi digitali). La modalit predefinita la 1.
Il funzionamento il seguente:
1. Non sono pi istruzioni a consumo.
6 UNDEF ha valore indefinito, perci non bisogna mai utilizzarlo con gli operatori > (maggiore) o < (minore).
possibile invece impiegarlo con gli operatori logici = (uguale) e <> (diverso).
A > UNDEF o A < UNDEF Operazioni non consentite.
A = UNDEF o A <> UNDEF Operazioni consentite.
Sintassi:
MODALITY 2
Osservazioni:
Vi possono essere problemi di compatibilit per quegli SPL nei quali il
programmatore ha sfruttato a proprio vantaggio, ricorrendo a trucchi insoliti, le
particolarit delle istruzioni SCADUTO, SCESO, SALITO, CAMBIATO.
Ecco un esempio di SPL incompatibile:
O_AllConSir, SCESO(Freddo): ALARMSTART(A_ConSirena)
SCESO(Freddo): ALARMSTART(A_SenzaSirena)
In questo caso il programmatore vuole generare, alla caduta del segnale Freddo,
un allarme con o senza sirena a seconda dello stato di certa opzione. In modalit 2
se il freddo scende quando lopzione abilitata, gli allarmi vengono generati
entrambi!
Questa porzione di codice dovr essere invece cos riformulato per essere
compatibile con la modalit 2:
O_AllConSir, SCESO(Freddo): ALARMSTART(A_ConSirena)
NOT O_AllConSir,SCESO(Freddo): ALARMSTART(A_SenzaSirena)
Istruzione DIAGPRESMDB
Le presenze dei modulini MDB e i relativi allarmi di mancanza sono gestiti in
maniera dissimile per gli ingressi e per le uscite: mentre lSSC01C rileva run-time
la presenza dei segnali dingresso (Din e Ain), per le uscite (Dot e Aot) ci non
avviene. La presenza di queste ultime determinabile solo grazie alle transazioni
periodiche che la centralina esegue se lSPL contiene la direttiva DIAGPRESMDB.
Sintassi:
DIAGPRESMDB [DIAG_DIN]
Istruzione MASTER
Abilita una centralina per la scrittura delle variabili di rete.
Sintassi:
MASTER
Sebbene questa direttiva possa comparire ovunque, preferibile porla subito dopo
la dichiarazione del modello.
La centralina master va obbligatoriamente cablata come testa della rete, ossia
deve essere la prima centralina sulla rete, partendo dal punto dinizio del cavo di
network.
Se la centralina master resta isolata, le variabili di rete sono poste a UNDEF. Per
evitare questo inconveniente possibile dichiarare una seconda centralina master 8
Istruzione ENERSAVESPL
Riserva al programma SPL il taglio delle uscite analogiche e digitali per la
gestione del risparmio energetico, impedendo alla centralina di eseguire
automaticamente tali operazioni.
Sintassi:
ENERSAVSPL
7In presenza di SPL contenenti Din e Dot con lo stesso indirizzo, per determinare con sicurezza la presenza dei Din,
devono verificarsi tutte queste condizioni.
La centralina deve essere programmata con una EPROM avente versione maggiore o uguale a 5306P.
Il programma SPL deve contenere la direttiva: DIAGPRES DIAG_DIN.
LSSC01C deve essere collegato ad un generatore master (lo slave pu eseguire solo la diagnostica run-time)
8 Questa centralina deve essere la seconda in ordine di collegamento alla rete e va anchessa configurata master.
Istruzione INCLUDE
Inserisce nel programma una porzione di codice posta in un altro file.
Conviene, in presenza di programmi particolarmente lunghi oppure di parti
identiche di codice presenti in pi programmi, spezzare in pi file il codice e
concatenare poi il tutto con una INCLUDE.
Leffetto di questistruzione quello di inserire nel programma principale il
codice del file incluso esattamente al posto dellINCLUDE stessa.
Lestensione IPL caratterizza i file contenenti sezioni di codice da includere nel
programma, quali la definizione delle stringhe usate per gli schermi predefiniti,
oppure quella delle icone, ecc... LINCLUDE di un IPL contenente le istruzioni !
IFDEF o !IFNDEF va posta dopo la corrispondente !DEFINE.
Sintassi:
INCLUDE <nomefile>
<nomefile> Nome del file contenente il codice da concatenare.
Osservazioni:
Il file STRS_ITA.IPL (o gli equivalenti nelle diverse lingue), contenente le
stringhe usate dalla centralina per le proprie maschere, va incluso subito dopo la
dichiarazione del modello, delle eventuali !DEFINE e delle istruzioni direttive
(come la MASTER o la RISERVA DOT0).
Esempio (1):
Supponiamo daver creato il programma principale PRINC.SPL:
e il file TABGLOB.SPL:
Istruzione INOUTSEP
Permette di assegnare agli ingressi e alle uscite (analogiche o digitali) lo stesso
indirizzo senza che lingresso influenzi in alcun modo luscita.
Questa direttiva, infatti, gestisce la comunicazione sul bus MDB in modo da separare
logicamente gli ingressi e le uscite sia digitali sia analogiche. Fino alla Eprom 5313P
gli ingressi e le uscite analogiche non potevano avere il medesimo indirizzo, cosa
possibile per le digitali anche se in questo caso luscita veniva pilotata dallingresso.
Sintassi:
INOUTSEP
Ad esempio i generatori Slave con versione precedente alla 3.1s, non essendo in
grado di riconoscere una tale situazione, si comporterebbero in maniera anomala,
Esempio:
FASE lavoro
TABELLA lav
U<Umin: FINEFASE
U>Umax: FORZA(VcBassa)
U>Umax+DtU: FORZA(VcAlta)
T>Tmax: ESEGUI freddi
T<Tmax: ARRESTA freddi
FASE pausa
TABELLA pau
U>Umax: FINEFASE
U<Umin: FORZA(Umidita)
T>Tmax: ESEGUI freddi
T<Tmax: ARRESTA freddi
La tabella freddi della fase libreria a disposizione di tutte le fasi che devono
effettuare il controllo dei freddi.
Istruzione TABELLA
Definisce una tabella.
Una tabella costituita da una serie di regole. A loro volta le regole sono costituite
da condizioni, che devono essere valutate, e dalle azioni eseguite se la condizione
vera. Le regole di una tabella attiva sono esaminate in sequenza. Dopo lultima
regola della tabella, si riparte dalla prima. Listruzione FINETABELLA interrompe
lesecuzione delle regole contenute in una tabella. Oltre alle regole contenute nella
tabella attiva, vengono esaminate anche quelle contenute nella tabella globale.
Una tabella, per eseguire le regole che la compongono, deve essere attivata con le
istruzioni ATTIVA ed ESEGUI:
Una tabella si disattiva in seguito ad una FINEFASE, ad unATTIVA di unaltra
tabella o ad unARRESTA.
Sintassi:
TABELLA <nome>
<condizione>: <azioni>
<condizione>: <azioni> ...: ... ...
<nome> Stringa di caratteri valida.
<condizione> Condizione da valutare.
<azioni> Azioni eseguite se la condizione valutata vera.
Esempio:
MODELLO Esempio1
FASE Fs1
TABELLA freddo
SEMPRE: FORZA(Fr1)
T>Tmax: ESEGUI piufreddo
La tabella freddo tiene attivo un Dot. Poi, in base al valore della variabile T,
chiama in supporto unaltra tabella che ne attiva un altro. A questo punto entrambe
le tabelle sono attive. In seguito la tabella di supporto viene disattivata.
La funzione UNAVOLTA
Ritorna vero alla prima scansione della tabella, ossia dopo unistruzione
ATTIVA. Se posta nella tabella globale ritorna vero ad ogni accensione o reset
della centralina. Un utilizzo tipico lavvio dei timer, che deve essere eseguito
una sola volta, e non ripetuto continuamente durante una fase.
Sintassi:
UNAVOLTA
Esempio:
TABELLA Lavoro
UNAVOLTA: TIMERSTOP(TmaxL), TIMERSTART(TmaxR),
OFF(Vent),OFF(CA1), LOOPSTOP(Freddo), LOOPSTOP(Caldo)
La funzione ONATTIVA
Ritorna vero una sola volta, al momento dellattivazione di una tabella. Equivale
a UNAVOLTA nelle tabelle normali.
Sintassi:
ONATTIVA
La funzione ONCONT
Ritorna vero in caso di pressione del tasto CONT.
Sintassi:
ONCONT
Esempio:
TABELLA Globale
ONSBJ: PrimaVolta := 1
PrimaVolta: SETLEVEL( 1, 0)
ONSTOP: OLDCRIT1 := LEVEL(1), SETLEVEL( 1, 0)
La funzione ONRESET
Ritorna vero solamente dopo un reset (spegnimento e riaccensione) del
controllore. Equivale a UNAVOLTA nella tabella globale.
Sintassi:
ONRESET
Esempio:
FASE GLOBALE
TABELLA Globale
ONSBJ OR ONRESET: ESEGUI Animazioni
Esegue la tabella Animazioni a seguito di un reset della centralina oppure dopo
linvio di un nuovo programma SBJ.
La funzione ONSBJ
Ritorna vero dopo che la centralina ha ricevuto un nuovo programma SBJ
oppure in caso di cancellazione della memoria.
Sintassi:
ONSBJ
Esempio:
ONSBJ: PrimaVolta := 1
ONSBJ: VAR_KWATT := 12.5 , VAR_KCAL := 73 , VAR_KFRI := 44.2
PrimaVolta: SETLEVEL( 1, 0)
ONSTOP: OLDCRIT1 := LEVEL(1), SETLEVEL( 1, 0)
ONCONT: SETLEVEL( 1, OLDCRIT1)
STATUS(0)<>2: ATTESA := 0
La funzione ONSTART
Ritorna vero se stato premuto il tasto START.
Sintassi:
ONSTART
Sintassi:
TABELLA GLOBALE
ONSTART: VAR_X := 0
SEMPRE: DT0 := FUNTU(T , U)
.
La funzione ONSTOP
Ritorna vero se stato premuto il tasto STOP.
Sintassi:
ONSBJ: PrimaVolta := 1
PrimaVolta: SETLEVEL( 1, 0)
ONSTOP: OLDCRIT1 := LEVEL(1), SETLEVEL( 1, 0)
ONCONT: SETLEVEL( 1, OLDCRIT1)
ONSBJ: VAR_KWATT := 12.5 , VAR_KCAL := 73 , VAR_KFRI := 44.2
STATUS(0)<>2:ATTESA := 0
Se stato premuto il tasto STOP della centralina, salva la criticit nella variabile OLDCRIT1
La funzione ANNO
Ritorna le ultime due cifre dellanno corrente. I valori da 0 a 69 fanno riferimento
al XXI secolo, quelli dal 70 in poi al XX. Quindi 69 equivale al 2069, 70 al 1970.
Sintassi:
ANNO ()
La funzione CAMBIATO
Ritorna vero se il segnale specificato ha cambiato stato nellultimo ciclo di
scansione.
Sintassi:
CAMBIATO (<segnale>)
<segnale> Nome simbolico di unuscita o un ingresso digitale.
Osservazioni:
In modalit di funzionamento normale (MODALITY 1), se un segnale o unuscita
digitale sale per poi scendere immediatamente, le successive due chiamate
dellistruzione CAMBIATO tornano entrambe un vero in quanto la prima
chiamata consuma levento sceso, la seconda levento salito, anche se esse
avvengono a molto distanza fra luna e laltra.
La funzione CHECKSUM ()
Ritorna il valore del codice di checksum del programma SBJ della centralina.
Sintassi:
La funzione EPROM
Ritorna la versione della Eprom corrente.
Sintassi:
EPROM ()
La funzione ERRNET
Ritorna il numero di errori riscontrati sulla rete SSCNet dallultimo azzeramento.
Sintassi:
ERRNET ()
La funzione ENABLED
Si applica ai segnali MDB. Ritorna 1 se il segnale abilitato, 0 se non lo .
Sintassi:
ENABLED (<segnale>)
<segnale> Nome simbolico di un segnale MDB.
La funzione DATA
Ritorna la data corrente.
Sintassi:
DATA ()
La funzione FASE
Ritorna il numero corrispondente alla fase corrente nella lista delle fasi.
Sintassi:
FASE ()
La funzione FASENUM
Ritorna la posizione della fase corrente nella lista delle fasi del programma utente.
Sintassi:
FASENUM ()
La funzione FASEVID
Ritorna il numero della fase a video.
Sintassi:
FASEVID ()
La funzione GIOMESE
Ritorna un numero da 1 a 31 pari al giorno del mese corrente.
Sintassi:
La funzione GIOSETT
Ritorna il giorno della settimana corrente; 1 equivale a luned, 2 a marted, ecc...
Sintassi:
GIOSETT ()
Le funzioni HH, MM ed SS
La funzione HH ritorna lora corrente. Ad esempio, alle ore 13.50 ritorna 13.
La funzione MM ritorna i minuti trascorsi dallinizio dellora. Ad esempio, alle ore
13.50 ritorna 50.
La funzione SS ritorna il numero di secondi trascorsi dallinizio del minuto
corrente.
Sintassi:
HH ()
MM ()
SS ()
La funzione MASTER
Ritorna 1 se lSSC01C il master delle variabili di rete, 0 altrimenti.
Sintassi:
MASTER ()
La funzione MESE
Ritorna il numero del mese corrente.
Sintassi:
MESE ()
La funzione NOMEFASE
Ritorna il nome della fase a video.
Sintassi:
NOMEFASE ()
La funzione NOMEPROG
Ritorna il nome del programma utente caricato nella memoria di lavoro della
centralina.
Sintassi:
NOMEPROG ()
La funzione NOMESTATO
Ritorna una stringa contenente il nome dello stato (Start o Stop) della centralina.
Sintassi:
La funzione OD
una funzione speciale di servizio che permette di prendere visione di qualunque
oggetto interno al controllore.
Sintassi:
OD (<cod>, <num>)
<cod> Codice didentificazione delloggetto. Pu assumere questi
valori:
1: Contatore di timer.
15: Criticit (della classe ennesima).
16: Costo (della classe ennesima).
17: Consumo (della classe ennesima).
18: Soglie di fase a video.
20: Valore di soglia del timer di fase a video.
<num> Numero, da 1 a 256, delloggetto.
Esempi:
IN 13, 3 OD(18,1) # Legge il set 1 relativo alla fase a video
IN 4,12 OD(1,0) # Legge il contatore del timer 0
IN 13,12 OD(20,0) # Legge il set del timer 0 della fase a video
IN 0, 0 OD(7,82) # Legge l'orologio di sistema
IN 0, 0 OD(15,1) # Legge la criticita' della classe 1
IN 0, 0 OD(16,2) # Legge il costo della classe 2
IN 0, 0 OD(17,3) # Legge il consumo della classe 3
La funzione ORA
Ritorna il numero di secondi trascorsi dalla mezzanotte.
Sintassi:
ORA ()
La funzione PROGRAM
Ritorna la posizione del programma utente in esecuzione allinterno della libreria
dei programmi dellSSC01C.
Sintassi:
PROGRAM ()
La funzione PASSLEVEL
Ritorna un valore, compreso fra 1 e 4, corrispondente al livello di password
corrente.
Sintassi:
PASSLEVEL ()
La funzione PUCODE
Ritorna il codice di compatibilit SBJ-PU del programma SBJ corrente.
9
9 Si tratta di un codice, generato automaticamente durante la compilazione di un SBJ, che viene assegnato ad ogni
programma utente creato dalla centralina. La trasmissione ha esito positivo solamente se il programma utente
inviato e lSBJ residente sulla centralina hanno lo stesso codice. Questo per evitare di trasmettere erroneamente ad
un controllore un programma utente incompatibile con il suo SBJ.
La funzione REPEATER
Ritorna 1 se la centralina definita come ripetitore, 0 altrimenti.
Sintassi:
REPEATER ()
La funzione SCADUTO
Ritorna vero se il timer scaduto nellultimo ciclo di scansione, falso
altrimenti.
Sintassi:
SCADUTO (<timer>)
<timer> Nome simbolico di un timer.
La funzione SETTIMANA
Ritorna il numero della settimana corrente, da 1 a 54.
Sintassi:
SETTIMANA ()
La funzione SSCSTAT
Questa funzione obsoleta; utilizzare la funzione STAT.
Sintassi:
SSCSTAT ()
La funzione STAT
Consente di ottenere una serie di informazioni relative allo stato della centralina.
Quando si verificano pi condizioni contemporaneamente, il valore ritornato
pari alla somma dei valori corrispondenti.
Sintassi:
La funzione STATUS
unistruzione di servizio il cui valore di ritorno specifica una serie di
informazioni relative allimpianto. Anzich questistruzione, conviene usare la
STAT, la quale permette di acquisire maggiori informazioni.
Sintassi:
STATUS (<cod>)
<cod> Codice numerico che determina il tipo di valore ritornato.
0: Ritorna 0 se la centralina in allarme fatale, 1 se in Stop
e 2 se in Start.
La funzione TESTIME
Ritorna il tempo di internal test (in secondi) impiegato dallSSC01C ad ogni
riaccensione.
Sintassi:
TESTIME()
Le funzioni di calcolo
La funzione ENTALPIA
Ritorna il valore dellentalpia calcolata in base alla temperatura ed allumidit.
Sintassi:
ENTALPIA (<t>, <u>)
<t> Variabile legata alla temperatura.
<u> Variabile legata allumidit.
La funzione FCT
Ritorna il valore del coefficiente F(y) del parametro di cottura y. possibile
calcolare contemporaneamente un massimo di dieci coefficienti.
Sintassi:
FCT (<var>)
<var> Variabile su cui effettuare il calcolo del coefficiente F(y).
Esempio:
fcot:=FCT(T) # Assegna alla variabile fcot il valore di FCT di T.
La funzione FCTINIT
Inizializza il calcolo del coefficiente F(y) di cottura.
Sintassi:
FCTINIT (<y>, <Var>)
<y> Coefficiente calcolato. Pu valere:
70 per il coefficiente F70.
71 per il coefficiente F71.
<var> Variabile di riferimento per il calcolo del coefficiente F(y).
Esempio:
FCTINIT (70,TP1) # Inizia il calcolo della F70 sulla variabile TP1.
FCTINIT(71,T) # Inizia il calcolo della F71 sulla variabile T.
La funzione FCTSTOP
Termina il calcolo della F(y).
Sintassi:
FCTSTOP (<var>)
<var> Variabile usata per il calcolo del coefficiente F(y).
Esempio:
FCTSTOP(T) #Interrompe il calcolo della FCT di T.
La funzione FUNDVP
Ritorna il valore del deficit di saturazione calcolato in base alla temperatura
rilevata da una sonda a bulbo secco.
Sintassi:
FUNDVP(<t>, <d>)
<t> Variabile legata alla temperatura.
<d> Valore di delta.
La funzione FUNMH
Ritorna il valore del rapporto di miscelazione calcolato in base alla temperatura
rilevata da una sonda a bulbo secco.
Sintassi:
FUNMH(<t>, <d>)
<t> Variabile legata alla temperatura.
<d> Valore di delta.
La funzione FUNSVP
Ritorna il valore della pressione di vapore saturo calcolato in base alla
temperatura rilevata da una sonda a bulbo secco.
Sintassi:
FUNSVP(<t>, <d>)
<t> Variabile legata alla temperatura.
<d> Valore di delta.
La funzione FUNVP
Ritorna il valore della pressione di vapore attuale calcolata in base alla
temperatura rilevata da una sonda a bulbo secco.
Sintassi:
FUNVP(<t>, <d>)
<t> Variabile legata alla temperatura.
<d> Valore di delta.
La funzione FUNRH
Ritorna il valore dellumidit relativa calcolata in base alla temperatura rilevata da
una sonda a bulbo secco.
La funzione FUNSH
Ritorna il valore dellumidit specifica calcolata in base alla temperatura rilevata
da una sonda a bulbo secco.
Sintassi:
FUNSH (<t>, <d>)
<t> Variabile legata alla temperatura.
<d> Valore di delta.
La funzione FUNTU
Ritorna il valore del delta necessario alle funzioni di calcolo dei vari parametri
legati alla sonda a bulbo secco.
Sintassi:
FUNTU (<t>, <u>)
<t> Variabile legata alla temperatura.
<u> Variabile legata allumidit.
Esempio:
# Calcola lumidit relativa (Psicrometrica RH) dopo aver ricavato il delta con la FUNTU.
secco := T,
delta := FUNTU(T,U),
rh := FUNRH(secco,delta),
La funzione COST
Ritorna il valore del costo di una specifica classe.
Sintassi:
COST(<cl>)
<cl> Classe di consumo.
La funzione LEVEL
Ritorna il livello di criticit di una specifica classe di consumo.
Sintassi:
La funzione INCLEVEL
Incrementa il livello di criticit di una specifica classe.
Sintassi:
INCLEVEL(<cl>)
<cl> Classe di consumo.
La funzione SETLEVEL
Imposta il livello di criticit per la classe specificata.
Sintassi:
SETLEVEL(<cl>, <liv>)
<cl> Classe di consumo.
<liv> Livello di criticit assegnato alla classe.
La funzione SETINIB
Ritorna un valore necessario al programma del risparmio energetico di SSCNet
per determinare se la centralina mantenuta in inibizione mediante logiche
ordinarie SPL (quali listruzione BLOCCA).
Questistruzione ha senso unicamente se usata congiuntamente alla dichiarazione
ENERSAVESPL.
Sintassi:
SETINIB(<cl>, <abil>)
<cl> Classe di consumo.
<abil> Indica labilitazione o meno della classe di consumo.
Istruzioni di controllo
Si distinguono le seguenti categorie di istruzioni:
Azioni per il controllo dei rel (Dot).
Azioni per il controllo dei loop analogici e Aot.
Azioni per il controllo dei timer.
Azioni per il controllo degli allarmi.
Azioni per il controllo dello stato della centralina.
Azioni per lassegnamento di un valore a timer, segnali, soglie, opzioni, manuali e
variabili.
Listruzione OFF
Spegne unuscita dello SCU. ininfluente sui segnali accesi (istruzione ON) da
regole contenute nella tabella corrente, in quella globale o in una tabella attiva. Lo
stesso accade se il segnale stato forzato a On (istruzione FORZA).
Sintassi:
OFF(<segnale>)
Listruzione XOFF
Spegne unuscita dello SCU. Differentemente dalla OFF essa prevale
sullistruzione ON.
Sintassi:
XOFF(<segnale>)
Esempio:
Al fine di mantenere inalterata al logica dei programmi, si consiglia di usare
listruzione OFF ovunque ci sia possibile e di utilizzare listruzione XOFF
solamente in caso di passaggio ad unaltra tabella, qualora si voglia spegnere
unuscita digitale con a sinistra la condizione UNAVOLTA oppure ONEXEC. Di
seguito riportiamo un caso tipico:
TABELLA Lavoro
SEMPRE: ON(SolFV)
U < Umin: ATTIVA Pausa
TABELLA Pausa
UNAVOLTA OFF(SolFV)
U > Umax: ATTIVA Lavoro
si invertono le due righe della tabella Lavoro in modo da cambiare tabella prima
dellattivazione del segnale
TABELLA Lavoro
U < Umin: ATTIVA Pausa
SEMPRE: ON(SolFV)
TABELLA Pausa
UNAVOLTA OFF(SolFV)
U > Umax: ATTIVA Lavoro
oppure si utilizza listruzione XOFF.
TABELLA Lavoro
10 Non si tratta di un bug ma una caratteristica di funzionamento del sistema, valevole per ogni versione di SSC01C,
UPC94, UPC93 e SSC92 che sia stata rilasciata.
TABELLA Pausa
UNAVOLTA XOFF(SolFV)
U > Umax: ATTIVA Lavoro
Listruzione BLOCCA
Blocca unuscita dello SCU. Il blocco resta in vigore finch attiva la regola che
lo ha generato. Durante questo periodo eventuali azioni di tipo ON e OFF sul
segnale bloccato sono sospese. Rimosso il blocco, il segnale ritorna allo stato
determinato dallultima ON/OFF eseguita.
In caso di contemporanea esecuzione sullo stesso segnale di una FORZA e di una
BLOCCA, prevale questultima.
Sintassi:
BLOCCA(<segnale>)
Listruzione FORZA
Forza a On il segnale specificato. Nessunazione OFF ha effetto finch attiva la
regola che ha generato la forzatura. Quando questa decade, lo stato del segnale
diviene quello definito dalle ON attive, oppure dalle OFF attive se nessuna ON
attiva, o quello impostato dallultima ON o OFF attiva.
In caso di contemporanea esecuzione sullo stesso segnale di una FORZA e di una
BLOCCA, prevale questultima.
Sintassi:
FORZA(<segnale>)
Listruzione LOOPSTART
Attiva lalgoritmo di regolazione sul loop specificato.
Sintassi:
LOOPSTART(<loop>)
<loop> Nome simbolico di un loop analogico.
Listruzione LOOPSTOP
Disattiva lalgoritmo di regolazione sul loop specificato.
Sintassi:
LOOPSTOP(<loop>)
<loop> Nome simbolico di un loop analogico.
Listruzione ALLOOPSTOP
Disattiva la regolazione su tutti i loop definiti.
Sintassi:
ALLOOPSTOP()
Listruzione SETOUT
Permette di regolare manualmente le uscite analogiche impostando direttamente
i valori di livello su delle specifiche uscite. Questa istruzione pu interagire con i
loop, avendone il sopravvento. Ci significa che quando un loop regola unuscita
analogica, la SETOUT pu correggere il valore di detta uscita, purch la
correzione venga confermata ad ogni giro. Quando viene a mancare la SETOUT,
il loop riprende il sopravvento.
N.B. La SETOUT si comporta in maniera anomala qualora debba regolare
unuscita analogica che non stata dichiarata in nessuna definizione di
loop. In tal caso, il valore impostato dalla SETOUT non viene pi resettato.
Sintassi:
SETOUT(<aot>,<valore>)
<aot> Nome di unuscita analogica.
<valore> Percentuale di campo scala.
Listruzione FORZALOOP
Attiva, per la sola durata del ciclo di scansione corrente, lalgoritmo di
regolazione sul loop specificato. La forzatura si riattiver allorch la regola
contenente FORZALOOP sar nuovamente soddisfatta.
Sintassi:
Listruzione TIMERSTOP
Arresta il timer specificato, azzerandone il contatore. Un timer azzerato valutato
falso se usato allinterno di una condizione.
Sintassi:
TIMERSTOP(<timer>)
<timer> Nome simbolico di un timer.
Listruzione ALLTIMERSTOP
Arresta tutti i timer sprovvisti dellattributo NOSTOP.
Sintassi:
Listruzione ALARMSTART
Attiva un allarme. In presenza di un allarme non fatale (attributo NOFAT) la
centralina spegne le uscite digitali ed azzera quelle analogiche, viceversa non
vengono in alcun modo influenzate.
Listruzione attiva inoltre un cicalino di segnalazione (sempre che lallarme non
sia marcato con lattributo NOBELL), mostra a video il Messaggio dallarme
11
Listruzione ALARMSTOP
Rimuove un allarme senza tacitarlo automaticamente (salvo che non abbia
impostato lattributo NOBELL), ripristinando le uscite digitali e analogiche. Se
lallarme gi stato tacitato, lALARMSTOP lo rimuove dalla lista degli allarmi
attivi.
Sintassi:
ALARMSTOP(<allarme>)
<allarme> Nome simbolico di un allarme.
11 Poich il contenuto del visore del controllore SSC01C programmabile, la visualizzazione facoltativa
Listruzione FINEFASE
Termina la fase corrente. La centralina attiva la fase successiva, se prevista,
altrimenti conclude il programma utente. Questistruzione viene ignorata se
compare nella tabella globale.
Sintassi:
FINEFASE
Listruzione ARRESTA
Arresta una tabella. Se una tabella arresta s stessa le regole poste dopo
questazione sono ignorate (questa operazione non pu essere eseguita nella
tabella globale).
Sintassi:
ARRESTA <tabella>
<tabella> Nome simbolico di una tabella.
Listruzione ATTIVA
Attiva una tabella - che diventer la tabella corrente - disattivando quella da cui
partita la chiamata. Entrambe le tabelle devono appartenere alla medesima fase o
alla fase libreria. Il cambio della tabella immediato; tutte le regole poste dopo
lATTIVA sono ignorate.
Sintassi:
ATTIVA <tabella>
<tabella> Nome simbolico di una tabella.
Listruzione ESEGUI
Attiva una nuova tabella, senza disattivare quella da cui partita la chiamata; in
questo modo possibile eseguire contemporaneamente pi tabelle.
Sintassi:
ESEGUI <tabella>
<tabella> Nome simbolico di una tabella.
Listruzione VIDEO
Accende o spegne il visore della centralina.
Sintassi:
VIDEO(<n>)
<n> Pu assumere questi valori:
Sintassi:
SCANON(<devN>)
SCANOFF(<devN>)
<devN> Sigla composta dal nome dellapparecchiatura (mdb, ssc, scu,
stu, ser, stj, stg)pi il numero della stessa.
Esempio:
Attiva o disattiva, a seconda dei valori delle opzioni, la scansione di alcuni
dispositivi.
O_NOstu: SCANOFF(stu1)
NOT O_NOstu: SCANON(stu1)
O_NOscu: SCANOFF(scu1)
NOT O_NOscu: SCANON(scu1)
Listruzione SKIP TO
Salta alla linea di programma specificata da unetichetta, non eseguendo il codice
compreso fra la SKIP TO e letichetta stessa. Letichetta deve sempre comparire
sotto la SKIP TO, mai sopra.
Sintassi:
SKIP TO <label>
$<Label>
<label> una qualsiasi stringa di caratteri valida.
Esempio:
Se il timer TIncr inattivo, non esegue la TIMERSTART.
NOT SCADUTO(TIncr): SKIP TO L_DOPOINCR
12 bene tener presente che uno SCU genera un allarme se la centralina non lo interroga con regolarit.
Livelli daccesso
Il sistema gestisce fino a tre livelli di password per lutente pi uno riservato
unicamente alla manutenzione. Linserimento della password avviene nello
schermo predefinito CREAPWD.
Livello 4. il livello di massima sicurezza ed detto pubblico poich non
necessita di password. Permette di accedere solamente alle maschere abilitate per
questo livello. il livello predefinito, impostato automaticamente allaccensione
della centralina, dopo un reset e ad ogni mezzanotte.
Livello 3. Permette di accedere alle maschere di livello 3 e 4.
Livello 2. Permette di accedere alle maschere di livello 2, 3 e 4.
Livello 1. Permette di accedere alle maschere di livello 1, 2, 3 e 4.
Livello 0. Riservato ai tecnici incaricati della manutenzione del sistema. Permette
di accedere a quasi tutte le maschere di un SSC01C.
TABELLA PERMESSI
<nome>:<livello>
<nome>:<livello>
<nome> Schermo predefinito, pannello o tasto.
<livello> Livello di password assegnato allo schermo o al tasto
specificati. Accetta valori compresi fra 1 e 4.
Esempio:
TABELLA PERMESSI
START:1
STOP:1
CONT:1
MANLIST:0
TIMERLIST:3
Esempio:
MANUALI = 3
W_MANUALI = 1
Il conoscitore della password associata al livello 3 pu accedere alla videata dei
manuali, ma non pu modificarne i campi, poich questa operazione richiede il
livello 1.
Visore e tastiera
Lelemento fondamentale per la programmazione del video il pannello, il quale
costituito da uno schermo e da una serie di tasti.
Uno schermo contiene la descrizione delle scritte fisse (titoli), dei campi
dimpostazione o di visualizzazione dei dati, nonch delle opzioni di men che
compaiono sul visore del controllore.
I tasti definiscono il passaggio da un pannello allaltro.
Istruzione TASTI
Associa un pannello o uno schermo ai tasti della centralina. Se posta in una
definizione di pannello gli assegnamenti delle funzioni ai tasti sono detti locali e
restano validi finch attivo il pannello, altrimenti sono detti globali e valgono
per tutti quanti i pannelli. Un assegnamento locale prevale su uno globale finch il
pannello in cui contenuto resta attivo. La pressione di un tasto non associato ad
alcun pannello o schermo viene ignorata.
Sintassi:
TASTI <tasto>:<pan/scherm>, <tasto>:<pannello/schermo> ....
<tasto> Uno dei codici tasto riportati nella tabella.
Istruzione PANNELLO
Definisce un pannello.
Sintassi:
PANNELLO <nome>
[<def. tasti>]
[<schermo>]
[<attributi>]
[<def. campi>]
<nome> Stringa di caratteri valida.
[<def. tasti>] Sezione contenente i tasti usati localmente (vedi listruzione
TASTI).
[<schermo>] Nome di uno schermo definito dalloperatore oppure di uno
predefinito.
[<def. campi>] Invece di uno schermo si possono definire direttamente i campi
del pannello.
[<attributi>] ALLCENT
Allinea centralmente campi.
AUTONUM=<NN>
Riservata a pannelli di tipo men. Permette di eliminare dalle
stringhe i numeri indicanti la posizione dellopzione. Tali
numerini sono gestiti automaticamente dalla EPROM, purch
tutte le opzioni di menu inizino con con almeno due spazi.
cos possibile cambiare la posizione delle opzioni di un
men senza dover modificare tutti i file delle traduzioni.
Istruzione SCHERMO
Definisce uno schermo, ossia linsieme dei campi di un pannello. Uno schermo
pu sostituire la dichiarazione di attributi e campi nella definizione di un pannello.
Il suo uso conveniente qualora la struttura dei campi di pi pannelli sia la
medesima.
Sintassi:
SCHERMO <nome>
[<attributi>]
[<def. campi>]
<nome> Stringa di caratteri valida.
[<attributi>] Vedi gli attributi dellistruzione PANNELLO.
[<def. campi>] Definizione dei campi dello schermo.
Istruzioni varie
Listruzione !DEFINE
Definisce una sigla che, passata alle istruzioni !IFDEF o !IFNDEF, permette di
condizionare la compilazione di una porzione di codice al fatto che essa sia stata o
meno definita. buona norma porre questistruzione subito dopo alla
dichiarazione del modello.
Sintassi:
!DEFINE <nome>
<nome> Stringa di caratteri validi.
Listruzione DESCR
Definisce la descrizione che sostituir sullo schermo il nome simbolico di un
oggetto, essendo questultimo chiaro solamente allo sviluppatore del programma.
Sintassi:
DESCR <Oggetto> descrizione
<oggetto> Nome simbolico di un oggetto (loop, segnale, ecc...).
<descrizione> Stringa di caratteri validi.
Esempio:
DESCR TdF Timer di fase
Listruzione ELSE
La logica di questa istruzione analoga a quella dellomonima istruzione
implementata in moltri altri linguaggi di programmazione. Essa viene eseguita
solamente se la condizione dellistruzione precedente ritorna falso.
anche possibile iniziare pi righe consecutive con listruzione ELSE cos da creare
lequivalente dellistruzione ELSE IF presente in altri linguaggi.
Sintassi:
ELSE [, <condizione>] : <azione> [,<azione>]
<condizione> Condizione da valutare.
<azione> Istruzioni e/o assegnamenti eseguiti se la condizione
determinata dallistruzione precedente falsa e se
<condizione> vera.
Esempio (1):
T<>UNDEF, T>TMax, NOT TimRitAT OR O_IgnoraTim: ALARMSTART(A_Tmax)
T=UNDEF OR T<=TMax OR (TRitAT AND NOT O_NoTim): ALARMSTOP(A_Tmax)
Esempio (2):
U>=80: Mess := "Ambiente molto umido"
U<80, U>=60: Mess := "Ambiente medio umido"
U<60, U>=40: Mess := "Ambiente poco umido"
U<40: Mess := "Ambiente secco"
Listruzione HELP
Visualizza nella videata di help una stringa daiuto riguardante un determinato
oggetto.
Sintassi:
HELP <oggetto> <commento>
<oggetto> Nome simbolico di un oggetto (loop, segnale, ecc...).
<commento> Stringa visualizzata nella videata daiuto.
Esempio:
DESCR TdF Timer di fase
Listruzione !IFNDEF
Compila il codice compreso fra la !IFNDEF e la ENDIF se non stata definita con
listruzione !DEFINE una determinata costante.
Sintassi:
!IFNDEF <cost>
ENDIF
<cost> Stringa di caratteri validi.
I campi di un pannello
Le informazioni che compaiono in un pannello attivo (titoli, messaggi dallarme,
valori delle sonde, ecc...) si suddividono in unit logiche dette campi. I campi
modificabili sono evidenziati in rosso se la modalit di modifica abilitata.
I tipi di campo
Il linguaggio SPL gestisce i seguenti tipi di campi:
Campi numerici. Contengono numeri interi o decimali.
Campi alfa numerici. Contengono testi.
Campi timer. Contengono intervalli di tempo nei formati ore: minuti. secondi,
ore:minuti oppure minuti. secondi.
Campo si/no. Contengono valori binari vero/falso.
Listruzione IN
Ogni campo deve essere definito in un pannello o in uno schermo, specificando la
posizione sul visore, il tipo di variabile associata e gli attributi opzionali.
Sintassi:
IN <x> , <y> <testo> [<attributo> , < attributo > , ...]
oppure
IN <x> , <y> <oggetto> [.<spec>] [<attributo > , < attributo > , ...]
Timer Si - Si - Si Si
Segnali - - - - - Si
Soglie - Si - Si - Si
Opzioni - Si - Si - Si
Variabili - - - - - Si
Manuali - - - - - Si
Loop Si - - - - Si
Funzioni - - - - - -
Allarmi - - - - - Si
13 Sebbene ci sia possibile, meglio evitare di utilizzare lattributo BIN per visualizzare soglie anzich variabili.
Le soglie, infatti, compaiono anche nelle maschere di dati fase e di configurazione dellimpianto, dove possibile
modificarle. In questo caso uneventuale soglia definita come binaria verrebbe ugualmente mostrata come
decimale. Inoltre, se si definisse una lunghezza eccessiva dei caratteri del campo, verrebbe mostrato XXXXX o
zero se si selezionasse il campo con il cursore. Qualora fosse assolutamente necessario specificare una soglia
binaria, impostarla con lattributo HIDDEN, in modo che non compaia nelle maschere automatiche.
possibile definire un campo speciale, contenente una lista delle uscite digitali o
dei timer attivi. Il tipo di variabili visualizzate dipende dagli attributi SHOWDOT
e SHOWTIMER.
Sintassi:
FINESTRA <x> , <y>, <z> [<attributi>] LEN = <n> CAMPI SHOWTIMER
oppure
FINESTRA <x> , <y>, <z> [<attributi>] LEN = <n> CAMPI SHOWDOT
Esempi:
FINESTRA 18,5,6 BIANCO:NERO, 3DIN, REVERSE, LEN=3 CAMPI SHOWDOT
PANNELLO Frontale
INPIX 88,184 ICONUM(icofreddo)
Visualizza una delle due icone a seconda del valore di SolFv.
<attributi> CSIZE=<N>
Espande licona con lo stesso criterio usato per i campi. Tener
presente che questa operazione rallenta decisamente il tempo
di caricamento dellicona. Pu assumere i valori da 1 a 15.
TRASP
Colore trasparente sostituito dal colore dello sfondo durante la
visualizzazione dellicona. bene usare con parsimonia
Le funzioni speciali
Si tratta di pseudo schermate che, senza mostrare nulla sul visore, eseguono
alcune funzioni di servizio, terminando automaticamente senza attendere la
pressione di alcun tasto.
Questa tabella contiene la lista delle funzioni speciali:
CANCEPROM Cancella la Eprom contenente il software di gestione. La
centralina va riprogrammata con una nuova Eprom.
CANCMEM Azzera tutti i timer, le variabili e i manuali. Azzera inoltre i dati
per i grafici del PC e dellSSC01C e quelli degli eventi e degli
allarmi storici.
CANCPWD Azzera la password corrente, ponendo la centralina in stato no
password.
14 Per evento sintende unazione compiuta dalla centralina come, ad esempio, la partenza di un timer o la sua
scadenza.
Prerequisiti
Il kit di programmazione delle centraline SSC01C composto da:
15 Per alcuni di questi programmi disponibile anche una vecchia versione. Tali eseguibili si chiamano
SSCTALK.EXE, TRPU.EXE, SSCINF32.EXE, PSEND.EXE e TRANS.EXE.
SGRC parmacot.spl
Compila il file parmacot.spl e, se non rileva errori, genera il codice compilato. Il
nuovo file ha estensione .SBJ (in questo caso: PARMACOT.SBJ). Se la
compilazione va a buon fine appare a video un messaggio indicante:
Il numero di righe compilate.
Il numero di simboli utilizzati e quello dei simboli disponibili. Se si esauriscono i
simboli disponibili la compilazione fallisce e va quindi ripetuta dopo aver
diminuito il loro numero.
Il nome del programma generato dalla compilazione.
Una serie di numeri o codici relativi al programma compilato.
Esempio:
SSCTALK FONT_STD.FBJ 1
Invia il file dei caratteri FONT_STD.FBJ alla centralina con indirizzo 1.
SSCTALK ICONE.IBJ 1 10
Invia il file delle icone ICONE.IBJ alle centraline con indirizzo 1 e 10.
SSCTALK -V3 PROGR.SBJ 1 - 4
Invia il file PROG.SBJ alle centraline con indirizzo 1, 2, 3 e 4, alla velocit di
57600 baud.
Per visualizzare la lista delle istruzioni daiuto, usare il comando SSCTALK senza
parametri.
Esempi:
TRPU READ 5
Salva nella cartella corrente i programmi utente della centralina con indirizzo 5.
TRPU READ 1 10
Legge i programmi utente delle centraline con indirizzo 1 e 10.
TRPU READ 1 - 4
Legge i programmi utente sulle centraline con indirizzo 1, 2, 3 e 4.
TRPU WRITE 15
Trasmette alla centralina con indirizzo 15 i programmi utente precedentemente
salvati nella cartella corrente.
ATTENZIONE: La trasmissione ha successo solo se lSBJ della centralina
destinata ad accogliere il programma utente e quello della centralina usata per la
sua creazione sono compatibili (vedi il capitolo successivo).
FASE Termostato
TABELLA T1
T > SetTemp + DeltaTemp: ON(Freddo), OFF(Caldo)
T < SetTemp - DeltaTemp: ON(Caldo), OFF(Freddo)
Compilazione e trasmissione
Compilare il sorgente per ottenere il formato eseguibile. Il comando da digitare :
SGRC PROG.SPL
Il compilatore, se non rileva errori di sintassi, genera il file PROG.SBJ, altrimenti
segnala a video il tipo di errore e la riga contenente listruzione irregolare.
A questo punto lSBJ pu essere inviato al controllore con indirizzo 1.
SSCTALK PROG 1
16 Ci si pu avvalere di un qualunque editor o word processor, purch i file siano salvati in modalit testo, ossia
utilizzando caratteri ASCII standard.
17 LSSC01C dotato di una libreria in grado di contenere fino a 20 programmi utenti di 20 fasi ciascuno.
18 frequente anche il caso di applicazioni che prevedono una sola fase, e che non prevedono programmi utente,
come nel caso del controllo di celle frigorifere, compressori, ecc.
SKIP TO.............................................................48
SOGLIA..................................................12; 14; 76
SPENTO......................................................14; 21 TIPOFASE....................................................51; 63
SS......................................................................34 TOP....................................................................53
SSCSTAT.....................................................36; 37 TRASP.............................................12; 16; 59; 61
STAT............................................................36; 37 UNAVOLTA.............................................30; 31; 42
STATUS.............................................................37 UNDEF...................................................22; 24; 48
STUCALIB..........................................................62 VARIABILE.........................................9; 13; 22; 61
SX......................................................................59 VARLIST......................................................22; 62
TABELLA..............................25; 26; 28; 29; 30; 76 VERDE...................................................52; 57; 61
TABELLA GLOBALE............25; 26; 27; 28; 61; 64 VERSIONE...................................................11; 63
TABELLA PERMESSI..................................49; 50 VID...............................................................56; 63
TASTI.....................................................50; 51; 63 VIDEO................................................................47
TESTIME............................................................37 VIOLA.....................................................52; 57; 61
TESTO.........................................................11; 12 VIRTUAL............................................................16
TIME..................................................................59 VISIBILE.............................................................22
TIMER..................................12; 13; 14; 25; 26; 45 VISUALIZZA.......................................................29
TIMERCONT......................................................45 XOFF............................................................42; 43
TIMERLIST..................................................50; 62 Y0.......................................................................20
TIMERSTART...............................................10; 45 YESNO..............................................................59
TIMERSTOP................................................13; 45 YMAX.................................................................20
TIMERSUSP................................................13; 45 YMIN..................................................................20
TIPO...................................................................59