927 / 928 / 929 TRAX+F/G e 929 SuperMAX+ (solo SW) 940 / 941 / 942 / 943 PROX+F/G Terminali Programmabili per Rilevazione Presenze, Controllo Accessi e Produzione MANUALE UTENTE Revisione 2.9 Benvenuto Congratulazioni per avere acquistato questo prodotto TMC. Troverete che esso non é solo facile da utilizzare, ma anche da installare e da configurare per le vostre esigenze di rilevazione presenze, controllo accessi, raccolta dati di produzione, ecc., sia in collegamenti pointto-point, sia in rete multipoint TMC NET92 o Ethernet. © Copyright 1993..2010 TMC S.r.l. Le specifiche possono essere soggette a cambiamenti senza preavviso. Le caratteristiche tecniche e funzionali descritte in questo manuale sono valide per unita‘ equipaggiate di piastre PROX+F/G Revisione 8 o TRAX+F/G Revisioni 2 e 3 (#929), dotate di versione di firmware A1 o successive. Questo apparecchio è conforme a tutte le normative applicabili per la marcatura CE solo se sono rispettate le istruzioni di installazione e uso riportate in questo manuale. L’apparecchio rientra anche nei limiti delle normative FCC parte 15 classe A. AXESS TMC S.r.l. - Via della Filanda, 22 40133 Bologna - Italia Tel. +39 051 3519311 Fax +39 051 3519399 mailto:[email protected] http://www.axesstmc.com ATTENZIONE: un terminale nuovo generalmente è inviato con le batterie scariche. Dovrebbe essere ricaricato per almeno 24 ore prima di utilizzarlo. Il terminale si accende automaticamente quando viene alimentato. Può essere acceso in ogni momento premendo sul logo E 0 (TRAX+F/G). (PROX+G) o sul tasto nasconde un tasto (PROX+F), sul tasto che ATTENZIONE: le pile e le batterie in Italia sono considerate rifiuti urbani pericolosi e vanno smaltite secondo la normativa in vigore (D.P.R. 915/1982 e disposizioni successive). ATTENZIONE: il contenitore metallico del PROX+F/G è dotato di una serratura che garantisce l’inaccessibilita‘ del suo interno a chi non sia dotato della relativa chiave. Al momento della spedizione, la serratura è sbloccata e la chiave, fornita in doppia copia. Una volta terminata l’installazione del terminale e chiusa la serratura, ATTACCATE ALLE CHIAVI UN’ETICHETTA CHE CONSENTA DI INDIVIDUARE IL CORRISPONDENTE TERMINALE E RIPONETELE IN UN LUOGO SICURO. ATTENZIONE: i terminali inviati in riparazione possono essere sottoposti a test che causano la perdita del contenuto della memoria. I dati contenuti nel terminale NON SONO COPERTI DA GARANZIA. Prima di inviare il terminale in riparazione, è quindi indispensabile prendere nota della sua parametrizzazione e scaricare dalla memoria i dati ritenuti importanti. INDICE i INDICE Benvenuto 1 INDICE i 1 INTRODUZIONE 1 1.1 Struttura del manuale 1 1.2 1.2.1 Presentazione dei terminali PROX+F/G e TRAX+F/G Caratteristiche tecniche 1 2 2 INSTALLAZIONE 4 2.1 2.1.1 Collocazione fisica e fissaggio Personalizzazione etichette dei tasti funzione A..E (solo PROX+F) 4 4 2.2 Le schede a circuito stampato 4 2.3 2.3.1 2.3.2 Le porte seriali COM1 e COM2 La porta COM1 sul PROX+F/G: morsetti o RJ11 La porta COM2 sul PROX+F/G: RS232, RS485 o “Current Loop” 6 7 7 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.15 2.4.16 2.4.17 Collegamenti Collegare l’alimentazione Collegare i relè Collegare gli INPUT optoisolati Collegare la rete TMC NET92: terminale SLAVE Collegare la rete TMC NET92: terminale MASTER Collegare il computer via RS232 Collegare il computer via RS485 (solo PROX+F/G) Collegare il computer via “Current Loop” (solo PROX+F/G) Collegare una stampante Collegare il computer via Ethernet Collegare il modem Collegare un’Interfaccia “Half Duplex” (solo PROX+F/G) Collegamento del lettore interno magnetico, barcode o di prossimità Collegare penne ottiche, CCD, LASER per barcode al connettore RJ11 Collegare un secondo lettore magnetico al connettore strip secondario Collegare un lettore di prossimità esterno Collegare altri dispositivi di INPUT via RS232 9 9 9 10 11 12 15 16 16 17 18 20 21 22 23 23 24 24 2.5 Le batterie ricaricabili 25 2.6 La RAM-Card (solo PROX+F/G) 26 2.7 Il sensore antisabotaggio (solo PROX+F/G) 26 2.8 Il pulsante di “reset” 26 3 USO DEL TERMINALE 29 3.1 Uso della tastiera 29 3.2 3.2.1 3.2.2 Prima accensione “Restart” del terminale Segnalazioni mostrate al “restart” 29 30 31 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 Il menu di gestione interattiva Regolazione dell’orologio-datario Gestione delle tabelle di Controllo Accessi Parametri di configurazione Reset dei parametri di configurazione Manutenzione del file system Configurazione Ethernet Configurazione del Modem Attivazione di funzioni opzionali del firmware 31 32 33 35 35 35 38 43 45 INDICE ii 3.4 Struttura del codice di un badge 47 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.5.10 3.5.11 3.5.12 Rilevazione presenze Formato di visualizzazione di orario e data Inversione del verso di lettura dei badge Abilitazione di lettori addizionali esterni su RS232 Controllo validità del badge Visualizzazione codice badge Gestione ora legale e solare Registrazione su file e controllo memoria piena Controllo di gruppo Black List di gruppi Visualizzazione dati di presenza e messaggi personali Abilitazione dei codici causale Digitazione manuale del codice personale 47 47 52 52 52 52 52 52 53 53 53 56 58 3.6 Controllo accessi 58 3.7 Controlli aggiuntivi comuni a rilevazione presenze e controllo accessi 60 3.8 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 Controlli aggiuntivi in controllo accessi Differenziazione fra ingresso e uscita Il controllo anti-passback Il controllo del PIN Abilitazione alla lettura in funzione dello stato delle linee di input 1 e 2 Specializzazione dei lettori “slave” 60 60 60 61 62 62 4 GESTIONE REMOTA 63 4.1 Introduzione 63 4.2 Host computer collegato via COM1/COM2 63 4.3 Host computer collegato via NET92 64 4.4 Host computer collegato via Ethernet 64 4.5 4.5.1 4.5.2 4.5.3 4.5.4 Messaggi spontanei in modo OFFLINE Messaggi di restart Accessi e presenze in modo “semi-OnLine” Trasmissione eventi generati dagli INPUT Trasmissione dei dati ricevuti da COM1/COM2 64 65 65 66 66 5 CONFIGURAZIONE 67 5.1 5.1.1 5.1.2 Parametri di comunicazione RS232/RS485 per COM1/2 La configurazione di basso livello La gestione dei messaggi ricevuti via linea seriale 67 67 67 5.2 5.2.1 5.2.2 Modalità di comunicazione e gestione master/slave della Net92 Il funzionamento “ON-LINE” (tempo reale) Il funzionamento “SEMI ON-LINE” 68 70 72 5.3 Attivazione di eventi temporizzati 72 5.4 5.4.1 Sincronizzazione degli orologi di un impianto Terminale utilizzato come “master clock” 72 72 5.5 5.5.1 Contatori degli “Input” e registrazione eventi Rilevazione dello stato degli input e allarmi (solo PROX+F/G) 73 74 5.6 5.6.1 I parametri di configurazione del terminale Tabella riassuntiva dei parametri 74 75 5.7 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.5 File di supporto Formato dei file I file in rilevazione presenze I file per il controllo accessi I file di registrazione dati o eventi I file di transazioni definite dall’utente Altri file 97 97 97 101 104 105 106 INDICE iii 6 INTERPRETE COMANDI E PROCEDURE UTENTE 109 6.1 6.1.1 6.1.2 6.1.3 6.1.4 L’Interprete dei comandi o “shell” Comandi di shell in stato online Il “File System” “Shell busy” Comandi di “shell” 109 109 110 110 110 6.2 6.2.1 6.2.2 6.2.3 I “prompt” Dispositivi di input e modalita‘ di introduzione dati La maschera di input Tablecheck 123 124 126 127 6.3 6.3.1 Comandi ‘%’ ESEMPIO: Proporre un dato da immettere in un prompt 128 132 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.4.7 6.4.8 6.4.9 Transazioni definite dall’utente I file di definizione della transazione Riferimenti ai dati già prodotti Comandi ‘@’ per transazioni utente File di definizione in formato « sorgente » Transazioni “Semi ON-LINE” Un altro esempio di PROC_x I file dati registrati dalle transazioni utente La transazione speciale PROC_V Come sfruttare la stampante 133 134 135 136 142 142 143 145 145 148 6.5 Uso totale del terminale: programmazione in linguaggio “C” 148 7 BOOTLOADER E RIPROGRAMMAZIONE DEL FW 149 7.1 Aggiornamento rapido del firmware 149 7.2 7.2.1 Il Bootloader Reset lungo con il pulsante di reset 149 150 7.3 7.3.1 7.3.2 7.3.3 Organizzazione della “main flash” Cancellazione della “main flash” Programmazione della “main flash” Files del firmware di base 150 151 151 152 7.4 7.4.1 7.4.2 Cambiare la lingua Cambiare la lingua dal bootloader Cambiare la lingua impostando il parametro 88 152 152 153 8 GESTIONE DEL DISPLAY 154 8.1 Caratteristiche specifiche dei display grafici 154 8.2 Formattazione delle stringhe per display grafici 155 8.3 8.1.1 8.1.2 Visualizzazione di icone e immagini bitmap sui display grafici Il comando BMP Icone nell’applicazione di Rilevazione Presenze 156 157 157 8.2 8.2.1 Mappa dei caratteri per display alfanumerici Caratteri aggiuntivi standard 158 160 9 APPENDICI 161 9.1 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 9.1.7 9.1.8 Versioni speciali e funzioni opzionali del firmware Ricezione dei comandi di shell attraverso la porta Ethernet integrata (solo TRAX+F/G) Modi “master” NET92 Interfaccia Ethernet integrata usata come “gateway implicito” Net92 (solo TRAX+F/G) Transcodifica lettori “HID” con uscita in emulazione magnetica “Clock&Data” Gestione lettori con uscita “Wiegand” Doppio lettore magnetico (o di prossimità) Gestione di un modem GSM Gestione lettori RFID 13.56MHz R&W (Read and Write) 161 161 161 161 161 161 162 162 162 INDICE iv 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 9.2.7 Uso dei terminali con FW per la gestione di un modem GSM TRAX+G/GSM Collegare un modem GSM esterno Accensione del terminale Test del modem GSM Configurazione del modem GSM Invio e ricezione di brevi messaggi di testo (SMS) Domande ricorrenti (FAQ) 162 163 164 164 166 167 169 169 9.3 9.3.1 9.3.2 9.3.3 9.3.4 Badge barcode e magnetici Consigli per la realizzazione dei badge barcode Utilizzo dei lettori barcode alla luce solare Manutenzione dei lettori ottici Manutenzione dei lettori magnetici 170 170 171 172 172 9.4 I programmi di supporto 172 9.5 9.5.1 9.5.2 Supporto tecnico Supporto informativo prevendita Supporto postvendita 173 173 173 9.6 Commenti e suggerimenti 174 INTRODUZIONE 1 1 INTRODUZIONE 1.1 Struttura del manuale Questo manuale descrive le modalità d’installazione e le caratteristiche di configurazione e operative dei terminali PROX+F/G e TRAX+F/G. Il manuale contiene anche tutte le indicazioni per i programmatori che intendono gestire il terminale con i propri programmi applicativi. Nel capitolo 2 sono descritte le possibili topologie di installazione e le connessioni da effettuare durante l’installazione. Il capitolo 3 presenta alcuni casi di uso del terminale da parte dell’utente finale, nelle situazioni di rilevazione presenze, controllo accessi e gestione transazioni definite dall’utente. Il capitolo 4 presenta le modalità di colloquio tra il terminale e l’host computer utilizzato come stazione di controllo in collegamento remoto. La configurazione del terminale, discussa invece nel capitolo 5, permette di determinarne la modalità di funzionamento, scegliendo fra quelle disponibili (in ogni caso dovrà prima essere decisa la topologia dell’installazione, condizionata dal numero dei terminali e dalle distanze in gioco).È qui descritta quella particolare modalità di funzionamento del terminale chiamata “ON LINE”. In questo stato la “consolle” del terminale è direttamente sotto il controllo del computer “host”. Nel capitolo 6 sono descritti ed esemplificati tutti i comandi riconosciuti dall’interprete comandi del terminale e disponibili tramite i canali di comunicazione. La possibilità’ di costruire transazioni di raccolta dati personalizzate è una delle caratteristiche salienti dei terminali PROX+F/G e TRAX+F/G: sempre in questo capitolo è approfondita questa modalità di “programmazione” basata principalmente su sequenze di “prompt”. Nel capitolo 7 è descritta una parte fissa del firmware del terminale chiamata “BOOTLOADER”, e viene spiegato come cancellare e riprogrammare la memoria flash ed impostare la lingua del terminale. Nel capitolo 8 è descritto come sfruttare le caratteristiche specifiche dei display grafici del PROX+G e TRAX+G e sono elelencati i caratteri visualizzabili dal display (grafico o alfanumerico) del terminale. Infine, il capitolo 9 contiene alcune note relative alla realizzazione di badge barcode, alla manutenzione dei lettori ottici e magnetici, seguite dalla descrizione di alcuni programmi di supporto. Si conclude con informazioni sul servizio di supporto pre-post vendita. 1.2 Presentazione dei terminali PROX+F/G e TRAX+F/G PROX+F/G e TRAX+F/G rappresentano i sistemi evoluti TMC di raccolta dati, compatti e versatili, progettato per rispondere alle esigenze di rilevamento delle presenze in uffici, fabbriche, ospedali e cantieri, nonché per il controllo dell’attività delle macchine operatrici e degli addetti alla produzione. PROX+F/G e TRAX+F/G sono in primo luogo dei moderni sistemi marcatempo che possono utilizzare l’orologio interno, pilotarne degli esterni e attivare la sirena ad intervalli prefissati. La flessibilità del loro sistema di archiviazione e di programmazione li qualifica come sistemi completi di gestione del tempo e quindi delle presenze. Funzione residente e complementare alla rilevazione delle presenze è quella del controllo accessi per fasce orarie, anch’essa autonomamente gestita da PROX+F/G e TRAX+F/G. PROX+F/G e TRAX+F/G sono anche dei potenti strumenti di controllo della produzione; Permettono di acquisire tempi e unità prodotte dalle macchine e dagli operatori, sulla base dei quali il sistema informativo centrale può restituire informazioni elaborate anche in tempo reale. PROX+F/G e TRAX+F/G sono installabili come unità autonome oppure collegate in configurazione punto a punto su linea seriale, o multi punto su rete NET92 o Ethernet. Essi supportano lettori di codici a barre, magnetici, di prossimità a radiofrequenza e sono dotati di ampia capacità di memoria, di un display ben leggibile, di tastiera multi funzionale e di linee di input/output. Fra le caratteristiche specifiche del PROX+F/G è da menzionare l’eventuale presenza di una RAM-Card per programmi e dati. Questa memoria è vista e gestita dal sistema operativo dotato di file-system, come un drive logico addizionale. Essa è conforme agli standard elettrici PCMCIA relativi alle SRAM-Card per Personal Computer portatili (PROX+F/G però memorizza i dati su RAM-Card secondo uno standard ottimizzato INTRODUZIONE 2 proprietario che consente di registrare i dati numerici anche in forma impaccata, con conseguente dimezzamento dello spazio occupato), può essere letta e scritta in tempi 20 volte inferiori a quelli necessari per un’unità a disco e rappresenta una interessante alternativa al trasferimento dei dati via rete NET92, Ethernet o via modem. E’ disponibile presso la TMC un software di trasferimento file fra RAM-Card (naturalmente in formato compatibile PROX+F/G) e unità a disco del PC stesso. Il software è in grado di gestire esclusivamente RAM-Card inserite in uno slot PCMCIA interno al PC; sono esclusi quindi tutti i lettori PCMCIA collegati al PC tramite altri tipi di interfaccia (seriale, parallela, ecc.). E’ necessario che siano presenti sul PC i “Card Services” PCMCIA. PROX+F, PROX+G e TRAX+G 1.2.1 Caratteristiche tecniche Tastiera: Display retroilluminato: Lettore integrato: a membrana, numerica+ABC/funzionale a 24 tasti (PROX+F/G) o 20 tasti (TRAX+F/G) LCD 2x16 (PROX+F, TRAX+F) o 4x20 (solo PROX+F) caratteri alfanumerici, oppure grafico 240x128 (PROX+G) o 128x64 (TRAX+G) pixel nessuno, oppure magnetico, barcode I.R. o di prossimità: 125KHz, 64 bit sola lettura H4102 compatibile; oppure ISO1443/A Mifare; oppure ISO15693 LEGIC. Decoder Magnetico: traccia 2 ISO Decoder Barcode: autodiscriminante. EAN 8,EAN 13, UPC, 2/5 Interleaved, max 255 elementi (barre+spazi) Code 39 max 23 caratteri Buzzer: Batteria di backup: piezoelettrico mono-tono NiCd ricaricabile, autonomia di 24 ore frazionabili (PROX+F/G) NMh ricaricabile, autonomia di 4 ore frazionabili (TRAX+F/G) (con lettore magnetico, durata inferiore con barcode e prossimità e con eventuale modem GSM) _____________________________________________________________________________ COM1: (1) RS232: 1200..38400 Bps (PROX+F/G), 1200..9600 Bps (TRAX+F/G) full duplex, handshake: SW o HW COM2 (solo PROX+F/G): - RS232: 1200...38400 Bps, full duplex, handshake: SW o HW; oppure - RS485: 1200...38400 Bps, half duplex, ACK/NAK o Net92 oppure - Current Loop: 1200...4800 Bps, full duplex, handshake SW. NET92: RS485, 9600, 19200, o 57600 Bps, protocollo NET92, slave o master. Ethernet (solo TRAX+F/G): Ethernet 10 Base-T su connettore RJ45, protocollo UDP Lettore ausiliario: Connettore RJ11 per lettore barcode esterno, pin-strip 5 pin per secondo lettore magnetico _____________________________________________________________________________ RAM: (2) 128 Kb (TRAX+F/G #927 e #928, PROX+F/G), 512Kb (TRAX+G #929) Input digitali 4 optoisolati sul PROX+F/G, 1+1(in alternativa all’utilizzo della COM1) sul TRAX+F/G Output digitali 3 Relè N.A.(2A @30Vdc) sul PROX+F/G, 1 solo N.A. o N.C. sul TRAX+F/G Tensione di alimentazione: 9 - 14 Vdc (PROX+F/G), 9 - 36 Vdc (TRAX+F/G) Corrente assorbita: 350 mA max (PROX+F), 400 mA max (PROX+G), 150mA max (TRAX+F/G) Temperatura di funzionamento: da -5 a 50 ºC Temperatura di magazzinaggio: da -25 a 50 ºC Umidità : da 0 a 100% (no barcode) Dimensioni (L x H x P)(mm): Massa: 185x190x90 (PROX+F) - 185x250x95 (PROX+G) - 130x200x100 (TRAX+F/G) 1,95 Kg (PROX+F) - 2,5 Kg (PROX+G) - 0,7 Kg (TRAX+F/G) INTRODUZIONE 3 (1) Solo sul PROX+F/G, la porta COM1 è replicata su un connettore RJ11 in parallelo ai segnali sulla morsettiera a vite. La COM2 e la Net92 si trovano solo sulla morsettiera a vite. (2) Solo sul PROX+F/G, la memoria RAM è espandibile fino a 1MB con RAM Card opzionale. INSTALLAZIONE 4 2 INSTALLAZIONE 2.1 Collocazione fisica e fissaggio Il terminale viene installato, solitamente, “a parete”, o comunque ad un supporto fisso che ne garantisca l’inamovibilità. Il fondo del contenitore metallico di un PROX+F/G o la staffa di fissaggio del TRAX+F/G possono essere avvitati a tasselli nel muro o ad un altro tipo di alloggiamento filettato, attraverso i rispettivi quattro fori. ATTENZIONE: il contenitore metallico del PROX+F/G è dotato di una serratura che garantisce l’inaccessibilita‘ del suo interno a chi non sia dotato della relativa chiave. Al momento della spedizione, la serratura è bloccata e la chiave, fornita in doppia copia, è nel sacchetto vicino alle carte di Test. Una volta terminata l’installazione del terminale e chiusa la serratura, ATTACCATE ALLE CHIAVI UN’ETICHETTA CHE CONSENTA DI INDIVIDUARE IL CORRISPONDENTE TERMINALE E RIPONETELE IN UN LUOGO SICURO. 2.1.1 Personalizzazione etichette dei tasti funzione A..E (solo PROX+F) A ... E sia l’esecuzione di PROX+F consente di associare ai tasti funzione funzioni presenti nel “firmware” base del terminale (gestione causali, revisione dei dati di presenza, ecc.), sia l’esecuzione di transazioni definite dall’utente (Cfr. § 6.4). In ogni caso è possibile associare un’etichetta mnemonica relativa all’operazione eseguita da un certo tasto funzione, semplicemente riempiendo l’apposito talloncino rettangolare. A tale scopo, il terminale viene spedito con il lembo sinistro della parte superiore della tastiera non attaccato: è possibile sollevarlo per rimuovere e riposizionare il talloncino rettangolare. Al termine dell’operazione si dovrà rimuovere la pellicola antiadesiva per fissare definitivamente il lembo della tastiera. N.B. Con una certa accortezza è possibile distaccare un’altra volta il lembo della tastiera per cambiare successivamente il talloncino, evitando però di distaccare tutta la tastiera dall’involucro metallico oppure solo lo strato più superficiale. 2.2 Lato con lembo adesivo da spellicolare dopo l’eventuale personalizzazione dei tasti Le schede a circuito stampato All’interno del contenitore del PROX+F c’è normalmente un’unica scheda a circuito stampato (mostrata in figura 1a), contenente l’unità centrale di elaborazione, la memoria (di base e su RAM-Card) e tutti i componenti necessari all’interfacciamento del terminale nelle configurazioni previste. La scheda del PROX+G include anche un adattatore per il display grafico (vedi figura 1b). Il TRAX+F/G, invece, è composto da due diverse schede a circuito stampato: una main board contenente l’unità centrale di elaborazione e la memoria (vedi figura 1c) e una scheda di I/O con tutti i connettori necessari all’interfacciamento (vedi figura 1d). Da notare che tutti i circuiti integrati direttamente collegati alla morsettiera di I/O (RS232, RS485, Optoisolatori), che sono quelli più suscettibili di guasti per problemi o errori di interfacciamento, sono montati su zoccolo per avere la massima semplicità di sostituzione (in caso di PROX+F/G, inoltre, questi circuiti sono tutti presenti in almeno due pezzi, e quindi, quando non tutte le possibilità di interfacciamento sono utilizzate, in pratica il terminale ha i componenti di rimpiazzo già a disposizione al suo interno). Si faccia riferimento allo shortform contenuto nella scatola di ogni terminale per ulteriori dettagli “pratici” sui componenti delle schede a circuito stampato. INSTALLAZIONE In 1 + In 1 In 2 + In 2 In 3 + In 3 In 4 + In 4 - Re 3 Re 2 Re 1 Ponticelli di configuraz. della Com2 RTS CTS TX RX GND RTS - I CTS - O TX - D RX - DGND D DVcc GND Barcode RJ11 o 2o lettore Pin-Strip 2o lettore COM1 RS232 su RJ11 Connettore batteria Relé Connettore lett. interno Connettore tastiera Connettore display 2x16 PCMCIA Pulsante di reset Reg. orologio Non toccare! NET92 RS485 IC Contrasto display Connettore display 4x20 COM1 RS232 IC FLASH COM2 RS232 IC COM2 RS485 IC Figura 1a: Scheda del PROX+F Contrasto Display ( senso orario = più scuro ) Adattatore Display Grafico Figura 1b: Scheda del PROX+G 5 INSTALLAZIONE 6 Cavo alla scheda di I/O Pin-Strip 2o lettore (solo #927 e #928) Connettore Tastiera Contrasto Display Connettore lett. interno Pulsante di Reset Figura 1c: Main Board del TRAX+G Cavo alla Main Board Relé interno Connettore Ethernet RJ45 Connettore batteria Pin-Strip 2o lettore (solo #929) J101: Ponticelli per Power over Ethernet Barcode RJ11 o 2o lettore J100: Ponticello per relé N.A. o N.C. RJ45 per Ethernet RJ11 per lettori barcode 654321 RJ45 standard per Ethernet 10 Base - T Re Re In- In+ DSR RX TX Gnd D 1 Abilitazione (out) 2 Segnale (in) 3 + 5V 90mA (out) 4 LED (out) 5 GND 6 Trigger (in) D- Vdc Gnd Figura 1d: Scheda di I/O del TRAX+G e connettori 2.3 Le porte seriali COM1 e COM2 PROX+F/G è dotato di due porte di comunicazione seriali multifunzionali (COM1 e COM2), utilizzabili entrambe per tutte le funzioni di comunicazione seriale previste dal terminale. Le due porte hanno però alcune differenze HW. Nei collegamenti RS232 a tre fili con gestione software dell’handshake (XON/XOFF), i segnali RTS e CTS devono essere cortocircuitati, e il corrispondente parametro COMxHSK deve essere al valore di INSTALLAZIONE 7 default ‘36’. Il cortocircuito tra RST e CTS si ottiene in modo differente per COM1 e COM2. TRAX+F/G dispone di una single porta seriale RS232 optoisolata (COM1), che deve essere abilitata dall’altro dispositivo mantenendo l’ingresso DSR del TRAX+F/G’s ad un livello “alto”. Sono possibili solo connessioni RS232 a 3+1 fili con gestione software dell’handshake (vedi § 2.4.6 e § 2.4.11). 2.3.1 La porta COM1 sul PROX+F/G: morsetti o RJ11 La porta COM1, solo in standard elettrico RS232, ha la particolarità di essere disponibile sia tramite connessione con morsetti a vite, sia tramite connettore standard RJ11. Attenzione: per evitare conflitti sui segnali, non si devono fare collegamenti contemporanei sul connettore RJ11 e sui morsetti interni della porta COM1 In caso di collegamento a 3 fili il cortocircuito RTS-CTS deve essere fatto coumunque sulla morsettiera, anche se la connessione avviene su RJ11. Il cortocircuito RTS-CTS non e‘ necessario se al connettore RJ11 è connesso il cavetto di collegamento verso un’EtherLite. La tabella seguente contiene la corrispondenza fra i pin dei connettori a 25 e a 9 pin per lo standard EIA RS232-C ed il connettore RJ11 utilizzato in PROX+F/G, che si comporta sostanzialmente come un DTE. Segnale PC Transmit Data Receive Data Request To Send Clear To Send Signal Ground Data Terminal Ready DB25 pin 2 3 4 5 7 20 DB9 pin 3 2 7 8 5 4 RJ11 su PROX+F/G 3 4 5 2 1-6 N.C. 123456 2.3.2 La porta COM2 sul PROX+F/G: RS232, RS485 o “Current Loop” La porta COM2, disponibile solo con morsetti a vite, è configurabile, mediante ponticelli come RS232, oppure come RS485, oppure come porta “Current Loop” attiva a 20 mA. L’utilizzo come “Current Loop” è disponibile solo quando PROX+F/G risulta alimentato dalla rete elettrica, e non durante il suo funzionamento con alimentazione a batteria. In tutte queste configurazioni vengono utilizzati gli stessi cinque morsetti, che assumono funzioni diverse in relazione alla configurazione dei ponticelli (vedere Figura 2). In caso di collegamento RS232 a 3 fili, il cortocircuito RTS-CTS viene effettuato automaticamente configurando i ponticelli come mostrato in figura 2 in alto. La scelta del tipo di interfacciamento dipende in genere dalle caratteristiche delle apparecchiature da collegare, dalle distanze in gioco e dall’ambiente fisico interessato. N.B. Nel caso di utilizzo come “Current Loop” devono essere usati i morsetti identificati come RTS - I (Input) e CTS - O (Output) , rispettivamente al posto di RXD e TXD. Il cavo è comunque descritto al § 2.4.8. La velocità massima garantita in modo Current Loop è di 4800 Baud. Attenzione: al fine di non danneggiare PROX+F/G, non usate configurazioni dei ponticelli diverse da quelle indicate nella Figura 2. INSTALLAZIONE 1. RS 232 handshake software , “3 fili” 2. RS 485 3. Current Loop 4. RS 232 handshake hardware , “5 fili” Figura 2: Configurazione ponticelli COM2 8 INSTALLAZIONE 2.4 9 Collegamenti La parte fondamentale di una buona installazione risiede nel corretto collegamento di tutti i cavi che fanno capo ad ogni terminale. Quasi tutte le connessioni del terminale sono effettuate tramite morsetti a vite; in generale è sufficiente inserire nei morsetti i capi dei fili da collegare, spelati per circa mezzo centimetro e ben attorcigliati. È comunque consigliabile l’uso di capicorda da chiudere con le apposite pinze di serraggio (crimp); ciò è praticamente indispensabile nel caso vi siano più fili convergenti in un unico morsetto. 2.4.1 Collegare l’alimentazione Il terminale viene fornito opzionalmente con un alimentatore da 12Vdc/600 mA continui, non stabilizzati, da collegare agli appositi morsetti all’estremità della fila di connettori. Il filo nero liscio va collegato al morsetto di terra (GND), quello nero zigrinato al positivo (Vcc). N.B. TRAX+G può essere alimentato anche attraverso le due coppie non utilizzate del cavo Ethernet. Per selezionare la modalità PoE (Power over Ethernet), I due ponticelli J101 sulla scheda di I/O devono essere chiusi (vedi figura 1d). Quando i fili sono collegati correttamente e l’alimentatore è inserito in una presa di rete elettrica, il display del terminale deve illuminarsi. Se questo non avviene, provate a scambiare i fili. Lo stato di “alimentazione collegata e display illuminato” non corrisponde necessariamente al funzionamento del terminale: se il display non mostra alcun contenuto occorre premere il tasto nascosto sotto il logo E 0 (PROX+F), il tasto (PROX+G) o il tasto (TRAX+F/G) per mettere in funzione il terminale. È consigliato l’utilizzo di un gruppo di continuità con funzione di filtro di rete che alimenta sia i dispositivi NET92, sia il computer host. In generale la linea di alimentazione dei dispositivi elettronici deve essere “privilegiata”, ovvero non deve essere la stessa che alimenta macchinari o apparecchi che possono provocare forti sbalzi sulla tensione di rete a causa di picchi di assorbimento. I terminali PROX+F/G devono essere alimentati localmente, ciascuno col proprio alimentatore fornito in dotazione: PER ALIMENTARE I TERMINALI PROX+F/G NON UTILIZZATE LA TENSIONE FORNITA DAL PSLD/3 o PSLD/3I. Gli alimentatori di sicurezza da 600 mA con trasformatori a doppio isolamento disponibili per i terminali devono essere collegati alla linea di alimentazione a tensione di rete (privilegiata). Non è possibile collegare più di un PROX+F/G ad ogni alimentatore da 600mA. 2.4.2 Collegare i relè I contatti normalmente aperti dei tre relè di cui è dotato PROX+F/G sono collegati ai sei morsetti a vite situati all’estremità sinistra della morsettiera (cioè in posizione opposta a quella dei morsetti di alimentazione), identificabili dalle diciture RE1, RE2, RE3 presenti sul circuito stampato. Anche sul TRAX+F/G i due contatti del singolo relè interno sono situati all’estremità sinistra della morsettiera (vedi contatti “Re” in figura 1d), ma in più essi sono configurabili come normalmente aperti (N.A.) o normalmente chiusi (N.C.), a seconda della posizione del ponticello J100 sulla scheda di I/O (vedi figura 1d). In alternativa, il relè interno può essere usato per controllare fino a quattro #909 TeleRelays esterni. Ogni relè è in grado di commutare un carico massimo di 2A, e comunque la potenza comandata non deve superare i 60 Watt. Il terminale dispone di comandi per attivare i relè per tempi programmabili, fino ad un massimo di 32 secondi circa, oppure con attivazione stabile fino alla ricezione di un opportuno comando di rilascio. ATTENZIONE: l'alimentatore del terminale NON deve essere utilizzato per fornire l'alimentazione necessaria ad attivare eventuali elettroserrature. Inoltre, i cavi di attivazione delle elettroserrature devono essere tenuti il più lontano possibile dai cavi di alimentazione e dati del terminale. E' sempre consigliabile installare un filtro soppressore di disturbi elettrici posizionandolo il più vicino possibile ai contatti dell'elettroserratura. Allo scopo è ad esempio sufficiente porre in parallelo ai contatti dell'elettroserratura un "varistore" (o VDR, Voltage Dependent Resistor) che tagli tutti gli impulsi aventi tensione superiore alla tensione di alimentazione dell'elettroserratura stessa. La figura seguente illustra il collegamento del filtro al terminale: INSTALLAZIONE 10 ATTENZIONE: la tensione che giunge al terminale (in particolare ai morsetti dei relè e ai morsetti degli input optoisolati) deve essere inferiore a 42Vac o 60 Vdc. Una tensione superiore deve essere ridotta per mezzo di un trasformatore a doppio isolamento. ATTENZIONE: Se si vuole utilizzare un relè di servizio, per esempio per pilotare una sirena a 220V, utilizzare per questo una alimentazione separata, altrimenti, se il relè di servizio assorbe poco e si vuole utilizzare l’alimentazione del terminale, aggiungere un varistore da 50V oppure un diodo in controfase sulla bobina. 2.4.3 Collegare gli INPUT optoisolati • PROX+F/G è dotato di 4 linee di ingresso optoisolate che corrispondono ai morsetti I1, I2, I3, I4. • TRAX+F/G è dotato di una linea di ingresso optoisolata (“IN”), più un ingresso ausiliario “IN2” sui morsetti RX e GND (solo nel caso in cui non si utilizzi la porta RS232 COM1), come mostrato qui sotto in figura 3: ININ2IN+ IN2+ Figura 3: Ingressi digitali del TRAX+F/G Le linee di input sono utilizzabili per far funzionare il terminale come contapezzi, oppure come registratore/ gestore di eventi variabili nel tempo. Ogni sensore deve essere pilotato da una corrente continua (almeno 2mA per il PROX+F/G e 5mA per il TRAX+F/G). Ogni coppia di morsetti è contraddistinta quindi dai simboli (+) e (-), che indicano rispettivamente il polo di entrata e di uscita della corrente. Il sensore deve essere sottoposto ad una tensione costante compresa fra 5 e 30Vdc, per essere mantenuto in uno stato attivo. ATTENZIONE: Per non danneggiare gli accoppiatori ottici non superate in nessun modo 30 mA (in caso di PROX+F/G) o 40mA (in caso di TRAX+F/G), che corrispondono a 30Vdc sulla morsettiera: se necessario, collegate un resistore esterno di caduta in serie. Il terminale attribuisce un valore logico “zero” (input inattivo) all’assenza di corrente, un valore logico “uno” (input attivo) altrimenti. È possibile impostare il terminale affinchè sia sensibile alle transizioni ON-OFF/OFFON dei segnali di ingresso, oppure alle sole transizioni OFF-ON. La politica di gestione degli input (e degli output in funzione degli input) è impostabile tramite i seguenti parametri (vedi § 5.5 per ulteriori dettagli): 33InputMode, 36-Input1, 37-Input2, 38-Input3, 39-Input4, 46-Out2Set, 47-Out3Set, 48-Out2Reset, 49- INSTALLAZIONE 11 Out3Reset, 65-InputCtrl e 69-InputEdge. Le linee di ingresso vengono campionate 16 volte al secondo: questo significa che affinché le variazioni sui livelli degli impulsi elettrici vengano correttamente rilevate, questi livelli devono rimanere stabili per almeno 1/16mo di secondo, quindi la larghezza di un impulso non deve, in ogni caso, essere inferiore a 65ms. Questo significa anche che la frequenza del segnale di ingresso non deve superare il valore massimo di 8 cicli al secondo, con un duty cycle del 50%. Variazioni ad una frequenza maggiore di 8Hz o che rimangono stabili per meno di 1/16mo di secondo non saranno rilevate. NB: L’input ausiliario IN2 del TRAX+F/G (disponibile solo nel caso in cui non si utilizzi la porta RS232 COM1) viene controllato solo se il parametro 11-COM1Baud è stato precedentemente impostato a ‘0’, inoltre la relativa frequenza di campionamento è dimezzata, pertanto la massima frequenza del segnale di ingresso è 4Hz con un duty cycle del 50%. 2.4.4 Collegare la rete TMC NET92: terminale SLAVE NET92 è il sistema TMC di collegamento tra terminali, basato sullo standard elettrico RS485 e su un protocollo di comunicazione “a polling”, gestito da un master, con rilevazione e correzione degli errori, di concezione originale TMC. Il protocollo permette di gestire fino a 254 terminali per master. È però possibile collegare ad ogni tratto di linea di comunicazione RS485 fino a 31 terminali. I concentratori PSLD/3 e PSLD/3I supportano due linee RS485 (e quindi 62 terminali), mentre l’adattatore MicroLD supporta solo una linea RS485, con al massimo 5 terminali. E’ possibile utilizzare altri concentratori PSLD/3 in cascata, configurati come ripetitori di segnale, quando si deve superare questo limite per raggiungere il massimo di 254 terminali. Il cavo necessario per effettuare il collegamento NET92 deve contenere almeno due doppini intrecciati, ed essere schermato: un doppino è utilizzato per i segnali dati, mentre l’altro serve per collegare fra loro i riferimenti GND dei terminali presenti sul tronco di linea. Infine, la calza metallica esterna è utilizzata per “schermare” i doppini interni da disturbi elettromagnetici di vario tipo e deve essere collegata a massa. Lo schema di interconnessione è del tipo a “BUS” (e quindi NON A “STELLA”): ogni segmento RS-485 è in grado di collegare fino a 31 terminali per una lunghezza massima di 1200 m, con la sola eccezione dei segmenti collegati ad un adattatore MicroLD (fino a 5 terminali per una lunghezza massima di 100 m). Mediante l’uso di ripetitori di segnale, è possibile aumentare la lunghezza massima, oppure sezionare il cablaggio della rete NET92. I due morsetti di connessione NET92 sono identificati dai simboli di alimentazione del terminale. e e sono situati alla sinistra dei morsetti Sul terminale la connessione NET92 avviene facendo arrivare i capi di uno dei due doppini, e facendoli quindi ripartire, direttamente sui morsetti a vite contrassegnati con e (vedere la Figura 3). Occorre poi collegare fra loro gli schermi dei vari tratti di cavo, in modo da garantire la continuita‘ elettrica dello schermo lungo tutto il segmento di rete. LO SCHERMO NON DEVE ESSERE CONNESSO AI MORSETTI GND DEI TERMINALI, ma la sua unica connessione deve essere realizzata al morsetto GND dell’adattatore di linea PSLD/3 (o PSLD/3I, o MicroLD) posto in vicinanza del computer. I morsetti GND dei terminali sono connessi fra loro utilizzando i fili del secondo doppino intrecciato presente nel cavo NET92, facendoli arrivare ambedue su ogni morsetto GND e quindi facendoli ripartire verso il terminale successivo. Come lo schermo del cavo, anche questi fili devono essere connessi al morsetto GND dell’adattatore di linea PSLD/3 (o PSLD/3I, o MicroLD). Occorre poi collegare un resistore terminatore da 120Ω ¼ W in parallelo ai morsetti NET92 dei dispositivi posti alle estremita‘ di ogni segmento di rete. Se la rete è pilotata da un adattatore TMC PSLD/3 (o PSLD/3I, o MicroLD), le terminazioni sono necessarie solo sui morsetti e dell’ultimo terminale del segmento, in quanto gli adattatori TMC sono terminati internamente. INSTALLAZIONE 12 Alimentatore 12 Doppio isolamento Alimentatore 12 Doppio isolamento GND DD PROX Slave n Vcc Gnd D Rispettate sempre la polarita` dei pin DD. La loro inversione pregiudica il dell'impianto GND Usare i fili della coppia per collegare fra loro morsetti GND dei Max 31 terminali su un segmento D Collegare lo schermo. Lo schermo e’ conesso SOLO al GND del Line Driver Ai morsetti NET92 dei PROX posti estremita` del segmento occorre collegare una resistenza terminatrice da 120 Ohm 1/4 PROX Slave 1 Doppio doppino intrecciato e schermato Lo schermo e’ conesso SOLO al GND del Line Driver ELABORATORE LINE DRIVER Figura 4: Cablaggio terminali slave Dal punto di vista elettrico, quindi, i terminali devono essere collegati sulla linea tutti in parallelo, mantenendo tutti la stessa polarità dei fili. Allo scopo di assicurare una perfetta riuscita del collegamento, si consiglia di utilizzare dei capicorda per unire i fili già spelati, in arrivo e in partenza, da introdurre nel morsetto. Su ogni connettore del concentratore di rete TMC, a cui deve fare capo una linea, i due contatti identificati con e dovranno essere collegati mantenendo la stessa polarità usata sui terminali. Il funzionamento slave del terminale si ottiene impostando il parametro 18-NETMode a ‘0’ (valore di default). Per ulteriori dettagli Cfr. § 5.2. 2.4.5 Collegare la rete TMC NET92: terminale MASTER Il terminale può essere configurato, oltre che come slave (Cfr. § 2.4.4), anche come master di rete NET92, collegando l’elaboratore ad una delle porte COM1/COM2 (anche mediante un’interfaccia #983 EtherLite o WiLite connessa in RS232) o alla porta Ethernet integrata (solo TRAX+F/G). Il terminale può pilotare fino a 31 terminali TMC compatibili col protocollo multipoint NET92. Il funzionamento master può essere sia continuo (parametro 18-NETMode impostato a valori superiori a ‘4’) oppure temporaneo (comando “LOGON”). Per ulteriori dettagli Cfr. § 5.2. Attenzione: tutti i valori del parametro 18 superiori a ‘4’ sono impostabili sul TRAX+F/G solo se è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. § 3.3.8). Solo in caso di PROX+F/G, per evitare problemi elettrici dovuti agli sbilanciamenti del potenziale di massa e in alternativa alla connessione RS232 diretta, è possibile collegare l’elaboratore al PROX+F/G master per mezzo dell’interfaccia “Current Loop” TMC #984 optoisolata ed autoalimentata. Sul PROX+F/G occorre utilizzare la porta COM2 e configurare i ponticelli in modo da gestire l’interfaccia elettrica “Current Loop” (Cfr. § 2.3.2 e 2.4.8). INSTALLAZIONE 13 Il cavo necessario per effettuare il collegamento contiene due doppini intrecciati e schermati: un doppino è utilizzato per i segnali dati, mentre l’altro serve per collegare fra loro le “masse” dei terminali presenti sul tronco di linea. Infine, la calza metallica esterna è utilizzata per “schermare” i doppini interni dalle radiazioni elettromagnetiche. Lo schema di interconnessione è sempre a “BUS”: ogni segmento RS485 è in grado di collegare fino a 31 terminali, per una lunghezza massima di 1200m. Sul terminale la connessione NET92 avviene facendo arrivare i capi di uno dei due doppini, e facendoli quindi ripartire, direttamente sui morsetti a vite contrassegnati con e . Occorre poi collegare fra loro gli schermi dei vari tratti di cavo, in modo da garantire la continuita‘ elettrica dello schermo lungo tutto il segmento di rete. LO SCHERMO NON DEVE ESSERE CONNESSO AI MORSETTI GND DEI TERMINALI, ma la sua unica connessione deve essere realizzata ad un morsetto di terra locale. I morsetti GND dei terminali sono connessi fra loro utilizzando i fili del secondo doppino intrecciato presente nel cavo NET92, facendoli arrivare ambedue su ogni morsetto GND e quindi facendoli ripartire verso il terminale successivo. Occorre poi collegare un resistore terminatore da 120Ω ¼ W in parallelo ai morsetti NET92 dei dispositivi posti alle estremita‘ del segmento di rete. In un cablaggio nel quale sia presente un terminale master occorre quindi sempre collegare due resistori terminatori. La seguente figura 5a illustra il cablaggio fra un PROX+F/G master, connesso all’host mediante un’interfaccia “current loop” (TMC #984), ed un PROX+F/G slave. 12 Vdc double insulated power supply unit 12 Vdc double insulated power supply unit Always pay careful attention to the polarity of the D and D signals: serious problems can arise if they are the wrong way round. GND D D The shield can be left disconnected, or can be connected to a local ground A terminator resistor of 120 Ohm 1/4 W must be connected to the NET92 screw terminals of the PROX at the end of the NET92 trunk. Double twisted shielded pair PROX Slave n I GND O Gnd Vcc D GND D RX - D TX - D CTS - O RTS - I Gnd Vcc D D GND RX - D TX - D CTS - O RTS - I Use the wires of the second twisted pair to connect the GND of all PROXs PROX Master Double shielded twisted pair The GND connector must be connected to an Earth in ONE POSITION ONLY The shield can be connected to an Earth TMC #984 C.L.-RS232 COMPUTER Figura 5a: Cablaggio Terminale Master – Terminale Slave Le figure 5b e 5c seguenti illustrano i cablaggi fra un PROX+F/G Master e terminali NET92 slave generici (#914 HotMAX in questo esempio). Per il cablaggio elettrico e le terminazioni valgono gli stessi criteri espressi in precedenza. In ogni caso, gli alimentatori utilizzati devono essere di sicurezza e a norme. INSTALLAZIONE 14 12 Vdc double insulated power supply unit The shield can be left disconnected, or can be connected to a local ground Always pay careful attention to the polarity of the D and D signals: serious problems can arise if they are the wrong way round. Use the wires of the second twisted pair to connect the GNDs of the terminals Double shielded twisted pair 12 Vdc double insulated power supply unit Connect the reader's GND to the twisted pair which is being used as an Earth line DATA DATA* Gnd Vcc D D GND RX - D TX - D GND CTS - O RTS - I MAX 914 PROX Master 12 Vdc double insulated power supply unit MAX 914 Double shielded twisted pair GND DATA DATA* A terminator resistor of 120 Ohm 1/4W must be connected to the NET92 screw connectors of the terminal at the end of the NET92 trunk The second twisted pair should be connected to an Earth IN ONE POSITION ONLY Connect the reader's GND to the twisted pair which is being used as an Earth line The shield can be connected to an Earth TMC #984 C.L.-RS232 COMPUTER I GND O GND D D Figura 5b: Cablaggio Terminale Master - HotMAX Slave con alimentazioni separate. INSTALLAZIONE 15 12 Vdc double insulated power supply unit Always pay careful attention to the polarity of the D andD signals: serious problems can arise if they are the wrong way round. The shield can be left disconnected, or can be connected to a local ground Single shielded twisted i Power supply line with a common GND. Connect the GNDs on the MAXs to the GND on PROX MAX 914 RT SI GND CT SO TX -D G N D D D Vc c Gn d PROX Master DATA DATA* MAX 914 Double shielded twisted i GND The second twisted pair should be connected to an Earth IN ONE POSIT ION ONLY DATA DATA* The shield can be connected to an Earth A terminator resistor of 120 Ohm 1/4W must be connected to the NET92 screw connectors of the terminal at the end of the NET92 trunk DD D RX - GND Approved power supply TMC #984 C.L.-RS232 COMPUTER I GND O Figura 5c: Cablaggio Terminale Master - HotMAX Slave con alimentazione comune. 2.4.6 Collegare il computer via RS232 Il metodo più semplice per collegare un elaboratore/PC al terminale è tramite il canale di comunicazione asincrono standard RS232. • PROX+F/G è dotato di due porte di comunicazione utilizzabili indifferentemente a questo scopo: COM1 e COM2, ognuna con 5 contatti sui morsetti a vite: TX, RX, CTS, RTS/DTR, GND. La porta COM1 è replicata su un connettore RJ11 situato all’interno di PROX+F/G con il seguente significato dei pin: 1:GND=6 2:RTS 3:RX 4:TX 5:CTS 1 2 3 4 51 6 Schema di equivalenza tra i pin del connettore RJ11 interno e i collegamenti sulla morsettiera per COM1. • TRAX+F/G è dotato di una sola porta di comunicazione (COM1) con 4 contatti su morsettiera a vite: TX, RX, GND e DSR. Il DSR è in realtà un segnale di abilitazione, e deve essere mantenuto ad un livello “alto” di tensione dal PC. Il tipo di cavo da impiegare dipende generalmente dalle caratteristiche del software di comunicazione INSTALLAZIONE 16 utilizzato: in particolare dal tipo di controllo di flusso, hardware o software. TRAX+F/G consente solo il controllo di flusso software. Solo in caso di PROX+F/G, è possibile bloccare le trasmissioni del computer verso il terminale abbassando un segnale di controllo, in ingresso sul connettore RS232 del computer (di solito il CTS, pin 8 nel DB9), il cavo deve essere realizzato secondo lo schema seguente (handshake hardware): PROX+F/G: TX -------------RX -------------CTS -------------RTS -------------GND -------------- :HOST-PC/DB9 :HOST-PC/DB25 2 = RX ------------ 3 = RX 3 = TX ------------ 2 = TX 4 =DTR o 7=RTS ---- 20=DTR o 4=CTS 8 = CTS ------------- 5 = CTS 5 = GND ------------- 7 = GND Schema di collegamento PROX+F/G -PC per handshake hardware. In questa configurazione il parametro COMxHsk (Parm.10 o Parm.20) deve avere valore dispari (Cfr. § 5.6.1 per tutte le possibilita‘ offerte dai parametri 10 e 20). Nel caso invece che sia gestito un controllo software XON/XOFF (per esempio con il programma CTW32) è possibile usare un semplice cavo a tre fili in caso di PROX+F/G, realizzando un ponticello con uno spezzone di cavo che unisca i morsetti RTS e CTS (solo per COM2 questa operazione viene effettuata implicitamente attraverso la configurazione dei ponticelli n.1, vedi fig.2), o un cavo a 3+1 fili in caso di TRAX+F/G. Mantenete il valore di default (36) del parametro COMxHsk. Il cavo deve essere realizzato secondo lo schema seguente: PROX+F/G: :HOST-PC/DB9 :HOST-PC/DB25 :TRAX+F/G TX --------------------2 = RX -----3 = RX ------------------------------ TX RX --------------------3 = TX -----2 = TX ------------------------------ RX GND --------------------5 = GND -----7 = GND -------------------------- GND RTS=CTS 4 = DTR -----20 = DTR ------------------------- DSR Schema di collegamento Terminale-PC per handshake software. 2.4.7 Collegare il computer via RS485 (solo PROX+F/G) Per collegare il computer usando la COM2 di PROX+F/G come linea RS485 si deve usare la configurazione dei ponticelli illustrata al § 2.3.2, Figura 2. Valgono quindi le indicazioni per il cablaggio dell’impianto date al § 2.4.4, Figura 4, usando però i morsetti TXe RX- invece dei morsetti e indicati nella figura. Questo collegamento può essere utilizzato per connessioni “multipoint”, con più di un PROX+F/G collegati “in parallelo” sullo stesso cavo. Può essere usato il Protocollo NET92 vedi param. 22-COM2PAR=5, oppure messaggi ascii con il comando IDLE. In questo caso di connessione multipoint è necessario configurare il parametro 67-RadioIdle a ‘2’ (bit 1=1). . 2.4.8 Collegare il computer via “Current Loop” (solo PROX+F/G) Per collegare il computer usando la COM2 come interfaccia “Current Loop” è sufficiente un qualsiasi cavo a quattro fili. Due fili sono utilizzati per il “loop” di trasmissione e quindi connessi al morsetto (O) e GND, e gli altri due per il “loop” di ricezione e quindi connessi al morsetto (I) e GND (i due poli negativi devono quindi essere connessi allo stesso morsetto di massa). INSTALLAZIONE 17 CL-232 Gnd Vcc D D GND RX - D CT SO TX - D GND RTS - I RX TX CTS RTS I GND O COM2 port configuration jumpers Figura 6: Collegamento “Current Loop” L’interfaccia “Current Loop” di PROX+F/G è di tipo attivo, con lo stato “mark” (bit di valore logico 1) associato alla circolazione di corrente; presso la TMC è disponibile un adattatore di interfaccia optoisolato RS232/C.L. (TMC # 984) adatto ad essere collegato alla porta seriale dell’elaboratore. L’uso dell’interfaccia “Current Loop” è consigliata tutte le volte che si vogliono superare i normali limiti RS232 in un collegamento point-to-point (copertura di distanze maggiori di 20 m a 2400 Baud), e comunque si cerchi la massima immunita’ dalle interferenze elettriche (problemi legati alla massa comune delle apparecchiature collegate, ecc.). È quindi il modo più economico per raggiungere distanze di centinaia di metri. Il migliore collegamento si ottiene utilizzando un cavo contenente due doppini intrecciati e schermati, con un filo di ogni coppia utilizzato per la connessione del segnale GND (vedi figura 6). Per le velocità, fare riferimento alla seguente tabella. Collegamento fino a Velocità massima 500 m 1.200 m 4.800 Baud 2.400 Baud 2.4.9 Collegare una stampante Una stampante seriale asincrona dotata di connettore standard a 25 pin può essere collegata ad una delle due porte COM1 o COM2 (solo PROX+F/G) via RS232 con un cavo analogo a quello illustrato al § 2.4.6. • In caso di PROX+F/G è in genere usato l’handshake hardware in quanto si suppone che la stampante fornisca un segnale di “busy” (attivo nello stato logico “falso”) associato al suo pin DTR. In questo modo PROX+F/G interrompe temporaneamente l’invio dei dati negli istanti in cui il buffer della stampante risulta pieno (e il pin DTR è in stato OFF) oppure, se presenti, nelle fasi di “ritorno carrello”, ecc. • In caso di TRAX+F/G è consentito solo l’handshake software. Assicuratevi di avere connesso il morsetto DSR del TRAX+F/G ad un pin costantemente mantenuto ad un livello “alto” di tensione dalla stampante quando accesa. Per abilitare il terminale all’uso della stampante occorre impostare il parametro di configurazione 00-Printer al valore ‘1’ o ‘2’ (solo PROX+F/G), in relazione alla porta usata per il collegamento. INSTALLAZIONE 18 Per il collegamento della stampante ad un PROX+F/G che risulti anche connesso ad una rete NET92 il cui concentratore è situato a notevole distanza, è indispensabile utilizzare la porta COM2 con interfaccia “Current Loop”, collegando i quattro fili del cavo come segue: PROX+F/G: RTS-(I) GND CTS-(O) GND ----------------------------------------------------- STAMPANTE RX+ (BUSY*+) RX- (BUSY*-) TX+ (DATA+) TX- (DATA-) Schema di collegamento PROX+-stampante attraverso l’interfaccia Current Loop. Verificate il valore dei parametri di configurazione COMxHSK (handshake), COMxBaud (baud rate), COMxPar (parità), in modo che siano compatibili con i corrispondenti parametri impostati sulla stampante utilizzata. 2.4.10 Collegare il computer via Ethernet TRAX+F/G può essere subito collegato via Ethernet e gestito da un computer connesso alla vostra LAN-WAN o ad Internet, da qualunque parte del mondo esso si trovi: è sufficiente inserire il cavo Ethernet 10-Base-T nel connettore RJ45 (vedi figura 1d), e assicurarsi che la porta Ethernet integrata sia abilitata (ciò è sempre vero nel caso dei terminali EtherTRAX+F/G con un codice prodotto (o part number, p/n) del tipo 927.x4x.xx o 928.x4x.xx); in caso contrario occorre inserire l’apposita chiave di attivazione firmware (cfr. § 3.3.8). E’ anche possibile collegare TRAX+F/G ad una rete Ethernet wireless mediante una scheda TMC #983 WiLite esterna, solo in connessione NET92-RS485 (vedi sotto). PROX+F/G, invece, può essere collegato via Ethernet solo mediante una scheda TMC #983 EtherLite o WiLite. Queste interfacce vi consentono di sfruttare appieno la rete ed il cablaggio in cui avete già investito o intendete investire. Esse usano il protocollo TCP/IP in ambiente Ethernet (via cavo 10 Base-T a 10Mbit/s in caso di EtherLite; wireless 802.11b a 11Mbit/s in caso di WiLite), utilizzato anche per l’inter-networking. Attenzione: in tutti i casi (TRAX+F/G collegato su LAN tramite porta Ethernet integrata, TRAX+F/G collegato su WAN tramite scheda WiLite, PROX+F/G collegato tramite scheda EtherLite o WiLite), il terminale potrebbe non essere in grado di comunicare con il PC host nel caso in cui quest’ultimo disponga di 2 schede di rete configurate in teaming: in questo caso, se possibile, si raccomanda di configurare le suddette schede di rete in load balancing per un corretto funzionamento. Mentre la scheda EtherLite è stata appositamente progettata per essere installata all’interno del terminale PROX+F/G (è fornita con 3 piedini adesivi che possono essere usati per fissarla sulla parte posteriore dei terminali PROX+F/G, quella cioè che viene fissata al muro ed è priva di componenti elettronici), la WiLite deve sempre essere montata esternamente. Attenzione: quando viene montata internamente, il lampeggio dei LED dell’EtherLite potrebbe causare lo spegnimento del PROX+F/G a causa del suo sensore antisabotaggio fotosensibile. La migliore posizione per l’EtherLite tale da evitare questo problema è mostrata in figura 7. La corrente assorbita dall’EtherLite/WiLite è piuttosto bassa, il che quasi sempre significa che può essare alimentata in parallelo dallo stesso alimentatore usato per il terminale, connettendo i morsetti a vite Vcc e GND sulla scheda #983 a quelli sul terminale (vedi figura 7): l’assorbimento aumenterà di 80mA (EtherLite)/ 60mA (WiLite), pertanto verificate dapprima la compatibilità con l’alimentatore nel caso non l’abbiate acquistato da TMC. Ma soprattutto verificate che la tensione di alimentazione fornita non ecceda i 14V (solo in caso di EtherLite). Quando l’EtherLite è montata internamente, ne risulta una perfetta integrazione che rende disponibile un terminale PROX+F/G dotato di connettore Ethernet interno: il cavo di connessione Ethernet 10-Base-T può uscire da una presa a muro ed entrare nel foro rettangolare alla base della parte fissa del PROX+F/G assieme ai cavi di alimentazione o di ogni altro tipo che debbano arrivare al PROX+F/G (vedi figura 7). EtherLite/WiLite e PROX+F/G possono essere connessi in RS232 o in NET92-RS485. I due casi saranno ora analizzati separatamente, vedi anche figura 7. Connessione RS232 Questa connessione viene normalmente usata quando l’EtherLite/WiLite collegata al PROX+F/G è ad esso dedicata, cioè quando deve interfacciare alla Ethernet solo questo terminale. La connessione fra la porta seriale dell’EtherLite/WiLite e la COM1 del PROX+F/G è particolarmente facile perché entrambe sono disponibili su un connettore RJ11. Le schede TMC #983 sono fornite con un cavetto RJ11 di 30 cm a questo scopo. Si noti che nel caso dell’EtherLite il cavo deve essere rovesciato, cioè un RJ11 deve essere rivolto verso l’alto e l’altro verso il basso, mentre nel caso della WiLite il cavo deve essere dritto, cioè entrambi gli RJ11 devono essere rivolti verso l’alto. INSTALLAZIONE 19 Una volta collegata l’alimentazione, si connettano le due porte RS232 con il cavo fornito e si configurino i due dispositivi con la stessa baud rate (vedi §3.3.6). Non effettuare nessun corto circuito fra i segnali CTS e RTS della COM1 sulla morsettiera a vite del PROX+F/G. EtherLite/WiLite e PROX+F/G sono ora pronti per comunicare. Connessione RS485 Potete scegliere questa connessione ogni volta che desiderate collegare una WiLite esterna ad un TRAX+F/G, oppure quando la porta COM1 del PROX+F/G è già destinata ad altri tipi di collegamento, oppure se intendete utilizzare una EtherLite/WiLite per collegare un certo numero di terminali alla rete Ethernet. Impianti del genere quasi sempre prevedono un’alimentazione distribuita. Ciò significa che dovrete fare riferimento ai commenti del paragrafo §2.4.4 sulla necessità di connettere assieme tutti i GND dei vari dispositivi. LO SCHERMO DEVE ESSERE MESSO A TERRA IN UN SOLO PUNTO (meglio se vicino alla scheda #983). Non deve mai essere connesso ad un GND (eccetto l’uscita GND di un PSLD/3, che guarda caso è anche la messa a terra). La rete multipunto RS485 pilotata dall’EtherLite/WiLite (che gestisce il protocollo Net92 autonomamente) è realizzata portando i segnali D e D* dai suoi morsetti agli omologhi connettori a vite sul terminale più vicino (generalmente il PROX+F/G in cui è contenuta), e da qui al terminale successivo; la resistenza terminatrice da 120 Ohm deve essere posizionata sui connettori dell’ultimo terminale. Cavo dall’alimentatore a 12Vdc Connessioni Non collegare la RS485 dell’EtherLite quando si usa la connessione RS232 Cavo per condividere l’alimentazione fra EtherLite e Prox+F/G (connessi in parallelo sui morsetti a vite) Cavetto RJ11 per la connessione RS232 da EtherLite a Prox+F/G Cavo Ethernet Cavo RS485Net92 (conness. alternativa) Connessione RS485-Net92 fra EtherLite e Prox+F/G: può essere usata invece della RS232 Alla COM1 su RJ11 Migliore posizione dell’EtherLite Figura 7 INSTALLAZIONE 20 2.4.11 Collegare il modem Un modem seriale asincrono dotato di interfaccia RS232 può essere collegato alla porta di comunicazione seriale COM1 oppure COM2 (solo PROX+F/G). Il modem deve necessariamente essere di tipo MNP a correzione d’errore V42. Ricordiamo che le configurazioni di default delle porte di comunicazione del terminale sono le seguenti: “9600N81” per COM1 e “2400N81” per COM2. È consigliabile collegare modem “veloci” alla porta COM1 e modem “lenti” alla porta COM2: in caso di “reset” dei parametri, riuscirete comunque a collegarvi via modem. Di default, su ambedue le porte è attivato l’handshake software XON/XOFF. La porta COM1 può essere connessa attraverso i morsetti a vite interni oppure, in alternativa, per mezzo del connettore RJ11 (solo PROX+F/G) con cavetto RJ11 e adattatore RJ11/DB9 (o DB25). • Affinché TRAX+F/G possa trasmettere, il segnale DSR deve essere mantenuto ad un livello “alto” di tensione dal modem. Si può usare solo un handshake di tipo software (ad esempio XON/XOFF). • Affinchè PROX+F/G possa trasmettere, è necessario che il segnale CTS si trovi ad un livello logico “alto”: se si utilizza un handshake software (ad esempio XON/XOFF) con la connessione COM1 sui morsetti interni, è possibile ad esempio collegare il morsetto CTS al morsetto RTS mediante uno spezzone di conduttore ed utilizzare i soli segnali GND, TX e RX. La porta COM2, oltre ad essere configurata per mezzo di appositi parametri, lo può essere anche per mezzo di ponticelli: per il collegamento di un modem sono interessanti solo la prima e l’ultima configurazione descritte al § 2.3.2 (figura 2). La configurazione di ponticelli N.1 è adatta alla gestione di un handshake software (ad esempio XON/XOFF): in questo caso non è necessario effettuare la connessione fra i morsetti RTS e CTS, in quanto questa connessione è realizzata dai ponticelli. È sufficiente così utilizzare i soli segnali GND, TX e RX. La configurazione di ponticelli N.4 (sempre in figura 2) è adatta alla gestione di un handshake hardware: affinchè PROX+F/G possa trasmettere, è necessario che il modem gestisca il segnale CTS. In tutti i casi, è necessario collegare fra loro i segnali DSR e DTR del modem affinchè esso possa connettersi e comunicare correttamente. In generale, una connessione terminale-modem con handshake software può essere realizzata mediante un cavo configurato nel modo seguente (nel caso si utilizzi la porta COM1 su connettore RJ11, si faccia riferimento allo schema di equivalenza fra i segnali del PROX+F/G ed i pin del connettore RJ11 riportato al § 2.4.6): PROX+F/G: TX -------------RX -------------GND -------------RTS CTS :MODEM/DB25 2 = TX -------------3 = RX -------------7 = GND -------------6 = DSR -----------20 = DTR :MODEM/DB9 :TRAX+F/G 3 = TX ------------------------TX 2 = RX ------------------------RX 5 = GND ------------------------ GND 6 = DSR ------------------------ DSR 4 = DTR Schema di collegamento Terminale-Modem per handshake software. In generale, una connessione PROX+F/G-modem con handshake hardware può essere realizzata mediante un cavo configurato nel modo seguente (nel caso si utilizzi la porta COM1 su connettore RJ11, si faccia riferimento allo schema di equivalenza fra i segnali del PROX+F/G ed i pin del connettore RJ11 riportato al § 2.4.6): PROX+F/G: TX -------------RX -------------CTS -------------RTS -------------GND -------------- :MODEM/DB25 :MODEM/DB9 2 = TX -----------3 3 = RX -----------2 5= CTS -----------8 4 = RTS ------------7 7 = GND ------------5 6=DSR 6 20=DTR 4 Schema di collegamento PROX+F/G-Modem per handshake hardware. Verificate il valore del parametro di configurazione COMxBaud (baud rate) relativamente alla velocità del modem utilizzato; inoltre controllate che in generale i parametri di comunicazione RS232 asincrona impostati sul terminale COMxBaud (baud rate), COMxPar (parità) e gli stop bit (fissi a 1) siano gli stessi di quelli impostati per la linea seriale dell’host al quale è collegato il modem all’altro capo della linea telefonica. INSTALLAZIONE 21 Il modem dovrà essere programmato in modalità autoanswer-risposta automatica (comando ATS0=1, che fa rispondere dopo uno squillo), senza colloquio col terminale (comando ATE0Q1, che disabilita l’eco dei caratteri e l’invio dei codici di risposta dal modem), senza controllo del pin DTR (comando AT&D0). Queste impostazioni possono essere comodamente effettuate per mezzo del terminale stesso, utilizzando il menu interattivo, come descritto al § 3.3.7. In alternativa, è possibile programmare il modem collegandolo ad un PC dotato di un programma di emulazione di terminale seriale. È necessario memorizzare queste impostazioni nella memoria non volatile del modem stesso (di solito tramite un comando tipo AT&W), in modo da autoconfigurarsi ad ogni successiva accensione. Per la sintassi esatta di ogni comando, consultate il manuale utilizzatore fornitovi insieme al modem, oppure richiedetelo al costruttore/importatore. Nel caso desideraste effettuare la configurazione manualmente e non per mezzo del menu interattivo del terminale, riportiamo di seguito la procedura di configurazione e test per modem Hayes / Conexant in modalità “silenziosa”: 1) Collegate il modem ad un computer dotato di un programma di emulazione di terminale seriale configurato ad una velocita‘ di 2400 baud, parita‘ N (nessuna), 8 bit di lunghezza parola e 1 bit di stop, echo locale disabilitato. 2) Accendete il modem e accertatevi che il LED AA (AutoAnswer o Risposta Automatica) sia acceso. 3) Digitate in sequenza: un paio di ENTER ({CR} o chr(13)), AT {CR} ATS14? {CR} Se il modem è gia‘ correttamente configurato, non si deve ottenere alcun effetto a video fino alla digitazione del comando ATS14?: dopodichè deve essere visualizzato un numero di tre cifre corrispondenti al valore contenuto nel registro 14. Nel caso in cui il modem restituisca l’eco dei tasti digitati, oppure risponda “OK” oppure “0” dopo l’invio di un comando terminato con {CR}, proseguite nel modo seguente: 4) Digitate: ATE0Q1{CR} AT&W {CR} 5) Spegnete il modem e andate al passo 2). È possibile che la registrazione dell’impostazione dei registri del modem nella sua memoria “non volatile” non abbia successo al primo colpo (sembra che succeda, ma molto raramente). Alla riaccensione, cioè, non ci si ritrova il funzionamento “silenzioso” desiderato. Ciò non significa che è stata persa la configurazione memorizzata, ma che questa in effetti non era stata memorizzata affatto: occorre quindi ripetere i passi prima specificati. Una volta riacceso il modem e constatato il suo corretto funzionamento, la parametrizzazione non sara‘ piu‘ persa. Suggerimento: il programma che sta comunicando col terminale (quello ad esempio che provvede a scaricare i dati di presenza), una volta ottenuto il “CONNECT 9600/REL” dovrebbe innanzitutto inviare la coppia di caratteri {EOT}{CR} fino alla ricezione di {EOT} ??{CR}, in modo tale da ripulire il buffer del terminale dai caratteri spuri intercorsi (es. “+++”), o per interrompere una eventuale fase di “LOAD” precedente non terminata in maniera corretta. 2.4.12 Collegare un’Interfaccia “Half Duplex” (solo PROX+F/G) PROX+F/G: TX RX RTS CTS GND Dispositivo Half Duplex -------------TX -------------RX -------------RTS -------------CTS -------------GND Schema di collegamento PROX+F/G - Dispositivo Half Duplex INSTALLAZIONE 22 Chiamiamo “Half Duplex” tutti quei dispositivi di comunicazione dati che richiedono un segnale elettrico per commutare dallo stato di ricezione alla trasmissione, e vice versa. Il segnale utilizzato da PROX+F/G è l’RTS, che viene attivato quando il terminale vuole trasmettere impostando il corretto valore del parametro COMxHSK. Solo per COM2, il parametro 67-RadioIdle permette di aggiungere un ritardo fisso di 20 ms al termine di ogni stringa trasmesso prima di disattivare l’RTS. Permette anche di fare partire il PROX+F/G in modalita‘ “IDLE”, necessario quando si vuole avere piu‘ terminali che usano in modo selettivo quel canale di comunicazione (comunicazioni multi-point). I ponticelli devono essere configurati per “handshake hardware” (Cfr. §2.3.2 e §2.4.6). 2.4.13 Collegamento del lettore interno magnetico, barcode o di prossimità Il lettore montato normalmente all’interno del terminale è collegato alla scheda a circuito stampato per mezzo di un connettore strip a cinque pin. Ogni terminale dispone poi di un ulteriore connettore strip per un eventuale lettore secondario. La figura seguente illustra la posizione di entrambi i connettori strip sulle schede di PROX+F/G e TRAX+F/G, ed il significato di ciascun pin: Figura 8 INSTALLAZIONE 23 2.4.14 Collegare penne ottiche, CCD, LASER per barcode al connettore RJ11 La conformita‘a tutte le normative per la compatibilita‘ elettromagnetica (marcatura CE) è stata verificata con l’apparecchio collegato a dispositivi (penne, CCD, LASER) in plastica. Qualora sia collegata una penna ottica metallica, sono comunque rispettate le norme per la compatibilita‘ elettromagnetica relative all’emissione e alla suscettibilita‘ condotte e irradiate, escluse le scariche elettrostatiche applicate direttamente sul corpo metallico della penna. ATTENZIONE: La qualita‘ dei Barcode e Carte Magnetiche utilizzate con il terminale deve essere tale da rientrare entro i limiti di tolleranza specificati dagli standard, altrimenti non ci riterremo responsabili di un’eventuale mancata decodifica. I lettori di codici a barre esterni vanno collegati tramite un connettore plastico di tipo RJ11 (a 6 poli). • Sul TRAX+F/G la presa RJ11 è situata in corrispondenza dell’apertura inferiore del terminale, a fianco della morsettiera (vedi figura 1d). • Sul PROX+F/G la presa RJ11 interna (si veda la posizione nelle figure 1a e 8) può essere raggiunta facendo passare il cavo attraverso il foro posteriore del contenitore: non è possibile scollegare il lettore senza aprire PROX+F/G (occorre quindi possedere la chiave di sblocco della serratura del terminale). I lettori con connettore RJ11 sono normalmente forniti da TMC, dato che questo tipo di connessione - peraltro piuttosto pratico - non è normalmente impiegato dai fabbricanti di dispositivi di lettura barcode. La figura seguente illustra il significato dei pin del connettore RJ11: Connettore RJ11 123456 Per lettore barcode (fw standard) 1 Abilitazione (out) 2 Segnale (in) 3 + 5V (out) 4 LED (out) 5 GND 6 Trigger (in) Per lettore magnetico (fw speciale “2”) 1 N.c. 2 Segnale (in) 3 + 5V (out) 4 N.c. 5 GND 6 CLK (in) Figura 9 Il terminale decodifica automaticamente i codici a barre stampati in standard Interleaved 2/5 (40 caratteri numerici), Code-39 (lunghezza massima 23 caratteri alfanumerici utili piu‘ 2 terminatori), Code-128, EAN-8, EAN-13, EAN-128 and UPC. La discriminazione fra un tipo e l’altro è effettuata automaticamente e non è possibile configurare il terminale in modo da inibire o abilitare la decodifica di un certo tipo di barcode: tutti gli standard supportati saranno sempre automaticamente decodificati. Scanner CCD e Laser dotati di decoder interno sono disponibili con uscita “emulazione-penna” o RS232. Questi lettori leggono normalmente diversi standard di barcode addizionali a quelli nativi del terminale. Le versioni in emulazione di penna emettono il codice letto transcodificato in C39 (e quindi rimane il limite di 23 caratteri max di lunghezza del codice). Le versioni RS232 possono invece essere collegate alla porta COM1 o COM2 (Cfr. § 2.4.17) con il limite di 120 caratteri. 2.4.15 Collegare un secondo lettore magnetico al connettore strip secondario ATTENZIONE: La qualita‘ dei Barcode e Carte Magnetiche utilizzate con i nostri sistemi deve essere tale da rientrare entro i limiti di tolleranza specificati dagli standard, altrimenti non ci riterremo responsabili di un’eventuale mancata decodifica. Un terminale nel quale sia installato uno speciale firmware di controllo, identificato dalla versione speciale “2”, INSTALLAZIONE 24 è in grado di supportare fino a due lettori di carte magnetiche: uno collegato al connettore strip per il lettore interno di base e l’altro al connettore strip secondario (vedi figura 8). Nota: nel PROX+F/G i connettori strip sono disposti al contrario (vedi figura 8), cosicchè il pin 1 del lettore interno si trova di fronte al pin 5 del lettore secondario e viceversa; nei TRAX+F/G #927 o #928 il connettore strip secondario è situato sulla main board, proprio come il connettore del lettore interno, mentre nei TRAX+G #929 il connettore strip secondario è situato sulla scheda di I/O, adiacente al connettore RJ11 (vedi figure 1c, 1d e 8). In alternativa è anche possibile collegare il secondo lettore magnetico al connettore RJ11 per lettori barcode il quale, si noti, è elettricamente connesso in parallelo allo strip secondario (vedi figura 9 per il significato che assumono i pin dell’RJ11 in caso di versione speciale “2” del firmware): questo significa che non è possibile collegare un qualunque lettore secondario ed un dispositivo di lettura di codici a barre come una penna o una pistola CCD contemporaneamente: il massimo numero di dispositivi di input gestibili senza utilizzare le porte COM1/2 è sempre due. La versione speciale “2”, in ogni caso, non supporta le pistole CCD. In questo caso sono da configurare correttamente i parametri 70-BCMGRevs e 71-AuxDir. Il bit 2 del parametro 68-PresMode agisce anche per il secondo lettore magnetico. Attenzione: si raccomanda di impostare il bit 7 del parametro 81-ExtraComm a 1, in modo tale da massimizzare l’acquisizione delle letture effettuate sul secondo lettore. Nei prompt, se si desidera abilitare il secondo lettore magnetico, occorre inserire il flag ‘B’ (come se fosse un lettore barcode). Le versioni speciali “2” del firmware possono essere scaricate dalla sezione “Firmware” all’interno della Partners Area del sito web TMC (www.axesstmc.com), e sono riconoscibili dal nome del file, che è del tipo 940x2ynn.xbh in caso di PROX+F, 941x2Gnn.xbh in caso di PROX+G, 927x2ynn.xbh in caso di TRAX+F/G #927 o #928 e 929x2Gnn.xbh in caso di TRAX+G #929. 2.4.16 Collegare un lettore di prossimità esterno Un lettore di carte di prossimità esterno TMC #904 RFID o RFID/2, con uscita in grado di emulare il segnale emesso da un lettore magnetico, può essere connesso mediante il connettore strip normalmente destinato al lettore interno. Se è già presente un lettore interno (magnetico, barcode o di prossimità) quest’ultimo deve essere spostato sul connettore strip secondario parallelo e adiacente all’RJ11 per lettori barcode. NB: Analogamente al caso di collegamento di lettore magnetico secondario (Cfr. §2.4.15), è necessario il firmware modificato per due lettori magnetici, a meno che il lettore interno non sia barcode. Attenzione: si raccomanda di impostare il bit 7 del parametro 81-ExtraComm a 1, in modo tale da massimizzare l’acquisizione delle letture effettuate sul lettore collegato allo strip secondario. Inoltre, per evitare che il terminale “perda” eventuali letture effettuate sul lettore di prossimità esterno durante il refresh del display (che causano comunque l’emissione di un beep), è consigliabile impostare il bit 7 del par. 72-PrmptDflt a 1. Altri lettori di prossimità con interfaccia seriale RS232 possono invece essere collegati alla porta COM1 o COM2 (Cfr. §2.4.17). 2.4.17 Collegare altri dispositivi di INPUT via RS232 In generale è possibile collegare tutti i dispositivi che trasmettono dati in modo seriale asincrono RS232 (caratteri in standard ASCII). Occorre, in questo caso, scegliere l’opportuna configurazione hardware e software, cioè definire il tipo di cavo, l’impostazione dei ponticelli se si vuole usare la COM2 di PROX+F/G e i parametri di configurazione delle porte di comunicazione COM1/2 (handshake, velocità, parità, carattere terminatore o lunghezza della parola). Nel caso di uso di “handshake” software (XON/XOFF o ACK/NAK), ricordate che: • PROX+F/G non può trasmettere alcun carattere se non ha il segnale CTS attivo: se il dispositivo da connettere non ha un segnale stabile attivo da collegare al CTS di PROX+F/G, quest’ultimo può essere collegato con un filo addizionale al morsetto RTS adiacente. • TRAX+F/G non può trasmettere alcun carattere se il segnale DSR non è “alto”: se il dispositivo da connettere non ha un segnale stabile “alto” da collegare al DSR di TRAX+F/G, quest’ultimo può essere collegato con un filo addizionale al morsetto Vdc. I dispositivi di input in RS232 possono in generale essere alimentati prelevando la tensione in parallelo alla 12Vcc del terminale. Attenzione: non alimentate in parallelo al terminale dispositivi con tensione di INSTALLAZIONE 25 alimentazione inferiore a 9V. 2.5 Le batterie ricaricabili ATTENZIONE: un terminale nuovo generalmente è inviato con le batterie scariche. Appena ricevuto, collegate i fili dell’alimentatore agli appositi morsetti e inserite la spina in una presa di corrente, lasciandolo costantemente in carica per almeno 24 ore prima di accenderlo mediante il tasto nascosto sotto il logo (PROX+F), il tasto E (PROX+G) o il tasto 0 (TRAX+F/G). ATTENZIONE: le pile e le batterie in Italia sono considerate rifiuti urbani pericolosi e vanno smaltite secondo la normativa in vigore (D.P.R. 915/1982 e disposizioni successive). Il terminale è fornito di un pacco di quattro batterie stilo ricaricabili (4 x 1.2 V Ni Cd) da 700 mAh; alla consegna le batterie sono normalmente scariche. Il ciclo di ricarica inizia rapidamente per proseguire poi in modo più lento (carica di mantenimento in modo “trickle”). La carica massima si raggiunge in circa tre giorni, mantenendo il terminale costantemente alimentato. L’autonomia delle batterie dipende dal tipo di utilizzo del terminale; sul PROX+F/G una carica completa consente almeno 24 ore di funzionamento ininterrotto e almeno 700 letture di badge (senza retroilluminazione del display), mentre sul TRAX+F/G consente almeno 4 ore di funzionamento (con display retroilluminato). Il tempo di funzionamento in assenza di alimentazione da rete può comunque essere distribuito in un periodo più lungo: il terminale è programmabile per spegnersi dopo un certo periodo di inattività (nessun evento di comunicazione o pressione di tasti da parte di un operatore) in assenza di alimentazione. Questo periodo è impostabile mediante il parametro 29-TPwrOff, il cui valore rappresenta il numero di minuti che il terminale attende prima di spegnersi automaticamente per inattività in assenza di alimentazione: il suo valore default è di 10 minuti. Solo su TRAX+F/G, una ricarica veloce alternativa (che richiede solo 3 ore!) può essere forzata impostando il parametro 29-TPwrOff = 254. La ricarica veloce viene anche effettuata automaticamente dopo che il terminale si è spento a causa della batteria ormai troppo scarica. Come tutti gli altri casi in cui il terminale è spento (da tastiera o in seguito ad un comando di spegnimento), E (PROX+F), il tasto (PROX+G) l’accensione avviene sia per mezzo del tasto nascosto sotto il logo 0 o il tasto (TRAX+F/G), sia automaticamente al ritorno dell’alimentazione dalla rete elettrica. La ritenzione dei dati nella memoria interna in stato di batteria scarica (nel senso che il terminale si rifiuta di accendersi) è di almeno un mese. La ritenzione dei dati in RAM-Card è indipendente dalle batterie ricaricabili e comunque di circa quattro anni (con la batteria al litio interna alla RAM-Card completamente carica). È inoltre possibile rimuovere le batterie Ni-Cd per parecchi minuti conservando i dati in memoria interna grazie alla presenza di un condensatore di ritenzione dati sulla scheda CPU. La figura seguente illustra il significato dei pin del connettore delle batterie ricaricabili: Connettore batterie ricaricabili 1 2 1 + Vdc 2 GND Figura 10 INSTALLAZIONE 26 2.6 La RAM-Card (solo PROX+F/G) PROX+F/G è dotato internamente di un connettore a 68 pin per RAM-Card in standard JEIDA -PCMCIA, collocato sopra la scheda a circuito stampato (vedi Figura 11 sotto). Le CARD a 68 pin sono usate anche in versione PROM/FLASH; in PROX+F/G, invece, viene impiegata la versione SRAM (memoria statica ad accesso casuale in lettura e scrittura) con batteria tampone incorporata; ciò permette la massima flessibilità nella gestione dei dati. La RAM-Card può contenere, oltre ai dati, anche un’applicazione PROX+F/G scritta in linguaggio ‘C’, compilata e caricata in un’apposita partizione riservata a questo uso: risulta così possibile ‘vestirè PROX+F/G con un’applicazione personalizzata che ne utilizzi tutte le potenzialità di gestione dati e comunicazione. Le memorie RAM-Card utilizzabili da PROX+F/G hanno capacità comprese nell’intervallo da 64K a 1M byte, quest’ultima divisa in due partizioni logiche B e C da 512 Kbyte ciascuna. La batteria al litio, interna alla RAM-Card, garantisce la conservazione dei dati fino a quattro anni, in mancanza di alimentazione esterna; la batteria della RAM-Card è comunque sostituibile e PROX+F/G avverte quando questa operazione deve essere effettuata, ovvero quando, entrando in modo supervisione mediante la F 0 , il display visualizza il messaggio sequenza di tasti RAM LOW CARD: BATTERY La batteria al litio non si scarica quando la RAM-Card è inserita all’interno di un PROX+F/G alimentato a rete. Nel caso invece che PROX+F/G sia alimentato dalle proprie batterie tampone, la pila interna alla RAM-Card inizia a scaricarsi solo dopo qualche settimana. La RAM-Card, anche se ordinata insieme a PROX+F/G, viene fornita non installata, con batteria a parte. Prima di inserire la RAM-Card, controllate che non sia inserito lo switch di protezione dalla scrittura (“Write Protect”), altrimenti PROX+F/G restera‘ bloccato nella fase di inizializzazione, su una delle videate mostrate ai § 3.2 o 3.2.1. Le operazioni di inserimento e estrazione della RAM-Card devono essere effettuate con PROX+F/G spento. 2.7 Il sensore antisabotaggio (solo PROX+F/G) L’apertura del contenitore di PROX+F/G è rilevata dal sensore antisabotaggio, che provoca lo spegnimento istantaneo del terminale. Qualora PROX+F/G sia configurato come “slave” di una rete NET92 (par. 18NETMode=0), il tentativo di sabotaggio può essere immediatamente rilevato dall’elaboratore centrale, che verifica la prolungata mancanza di risposta al “polling” da parte del terminale e può quindi provvedere a registrare / segnalare una situazione di allarme. 2.8 Il pulsante di “reset” Il terminale è dotato internamente di un pulsante di “reset” che produce effetti diversi in funzione del tempo per il quale rimane premuto in modo continuativo. In generale questo pulsante è da utilizzare soltanto in casi di blocco del terminale (causati ad esempio da errori di programma in procedure utente), oppure dopo un aggiornamento di EPROM che causa malfunzionamenti, oppure a seguito di un caricamento di programma in RAM-Card non terminato correttamente. Per effettuare il “reset” su PROX+F/G, aprite il contenitore e premete il pulsante rosso mostrato in Figura 1. Per effettuare il “reset” su TRAX+F/G, rimuovete la parte posteriore del contenitore, e usando un cacciavite sottile premete il pulsante nero situato dietro la piccola rientranza indicata dalla scritta “RESET >”, sul bordo inferiore destro della main board (vista da dietro). La posizione del pulsante di reset è anche mostrata in Figura 1d, guardando però la main board dal davanti. Una breve pressione del pulsante causa semplicemente il “restart” del terminale, ovvero produce gli stessi effetti di un comando di shell “%%”, o dello spegnimento seguito dalla riaccensione. Il “restart” del terminale provoca l’azzeramento dei contatori “minori” (contatori associati agli eventi di input, Cfr. § 5.5 e seguenti). Una pressione protratta per un tempo superiore ai 2 secondi causa la cancellazione totale ed INSTALLAZIONE 27 irreversibile di tutti i dati contenuti in tutti i drive logici presenti (RAM base ed eventuale RAM-Card dalla quale viene rimosso, se presente, anche il programma personalizzato) e la reimpostazione di tutti i parametri ai valori di default (compreso l’indirizzo contenuto nel parametro 19-Address, che viene posto a ‘0’). Non è richiesta ulteriore conferma alla cancellazione della RAM-Card. Questa operazione provoca l’azzeramento sia dei contatori “maggiori” che “minori” (contatori associati agli eventi di input). A questo punto, le operazioni da eseguire sono le stesse descritte al §3.2 per adattare alla vostra applicazione i valori dei parametri che differiscono dai rispettivi valori di default. ATTENZIONE: L’apertura del terminale e tutte le operazioni interne DEVONO ESSERE ESEGUITE DA PERSONALE SPECIALIZZATO. PROX+F/G e TRAX+F/G sono apparecchiature con classe di sicurezza 3, EN 60950 - IEC 950, e non contengono parti sotto tensione maggiore di 42.4 Vac o 60 Vdc. USO DEL TERMINALE 29 3 USO DEL TERMINALE 3.1 Uso della tastiera PROX+F/G è dotato di una tastiera a membrana numerica+ABC/funzionale, con 24 tasti (20 nel caso del TRAX+F/G). E L’accensione dell’apparecchio avviene per mezzo del tasto nascosto sotto il logo (PROX+F), il tasto 0 (TRAX+F/G). Lo spegnimento da tastiera è effettuato mantenendo premuto il (PROX+G) o il tasto . per circa 3 secondi. Lo spegnimento da tastiera può essere disattivato impostando a ‘1’ il bit 0 tasto A .. E del parametro 58-ExtraBits. Ad alcuni tasti funzionali della colonna sono associate funzioni di gestione standard, come la revisione dati di presenza, introduzione di codici causali, ecc., mentre alla F 0 è associata la possibilità di entrare in modo supervisore per effettuare varie operazioni sequenza di manutenzione della configurazione e del file system del terminale. F ed alla sequenza sono rispettivamente associate la commutazione temporanea o Al tasto stabile della direzione di strisciamento del badge in rilevazione presenze. A .. E , F Ai tasti funzionali associare transazioni scritte dall’utente. A .. F E e F 1 .. F 9 è possibile F F Tutte le sequenze di tastiera in cui è presente il tasto , si ottengono premendo e quindi (dopo F avere rilasciato ), il tasto funzionale o numerico al quale è associata la funzione stessa. Se non viene F termina e viene emesso un breve premuto un altro tasto entro circa 4 secondi, l’effetto del tasto “beep”. 3.2 Prima accensione Terminata l’installazione, dopo avere completato tutte le connessioni, avrete sicuramente già provato ad accendere il terminale (cfr. § 3.1). Alla prima accensione dopo l’uscita dallo stabilimento di produzione, il terminale dovrebbe chiedere di selezionare la lingua desiderata da un menu: Language: 0 English 0 I tasti e consentono di scorrere l’elenco, mentre i tasti numerici posizionarsi rapidamente sulla lingua corrispondente, secondo la seguente tabella: .. 9 consentono di 0 – Inglese 1 – Francese 2 – Spagnolo 3 – Tedesco 4 – Italiano 5 – Portoghese 6 – Olandese 7 – Danese 8 – Ceco 9 – Ungherese Reset & Off A Premete per selezionare la lingua desiderata. Vi verrà chiesto di premere il tasto per confermare, quindi il terminale ripartirà con la lingua selezionata e tutti i parametri impostati ai loro valori di default (Cfr. § 5.6.1 i numeri fra parentesi). Il comportamento del terminale al “restart” è descritto al § 3.2.1. Se invece le batterie si erano completamente scaricate o erano state staccate, alla prima accensione il terminale deve aver mostrato il messaggio: USO DEL TERMINALE 30 SYSTEM RESTART Ciò significa che il contenuto della memoria, controllato durante i test iniziali, non corrisponde a quello di un terminale correttamente configurato. Segue poi il messaggio: Start PROX? (Clr)=NO (oppure “Start Start TRAX?” TRAX? in caso di TRAX+F/G) In questo caso, premendo il tasto (cfr. § 7.2). CLR è possibile entrare in una parte del firmware chiamata “Bootloader” La pressione di un qualsiasi altro tasto (e comunque dopo circa 3 secondi) causa, in questa situazione, l’inizializzazione del terminale in base ai parametri di default (Cfr. § 5.6.1, valori contenuti fra parentesi tonde). L’indirizzo di rete viene inizialmente impostato a 254. Se state installando per la prima volta piu‘ di un terminale, ricordatevi di modificarne gli indirizzi di rete in modo che non vi siano due o piu‘ terminali aventi lo stesso indirizzo. Il terminale provvede automaticamente a ricordarvi di modificare l’indirizzo di rete emettendo un segnale acustico e visualizzando i seguenti messaggi in sequenza continua: CHECK TIME & PARAMETERS.. OPERATOR PASSWORD:_____ Durante quest’ultimo messaggio è possibile entrare nel menu di gestione e cambiare almeno l’indirizzo di rete (parametro 19-Address). Queste operazioni sono descritte nei paragrafi §3.3e §3.3.3. Dopo avere impostato l’indirizzo di rete ed essere usciti dal menu di gestione interattiva, il terminale riparte con la lingua di default (inglese), a meno che non sia già stata impostata in precedenza una lingua diversa. Seguite le istruzioni al § 7.4 per cambiare la lingua se necessario. L’impostazione dell’indirizzo di rete può essere effettuata anche attraverso la rete NET92: dopo avere spento e riacceso il terminale, è sufficiente che il software di gestione si prepari a colloquiare con il terminale di indirizzo 254, imposti il valore desiderato nel parametro 19-Address (CFG 19 nn) e quindi invii un comando di “restart” (ad esempio “%%”). Da questo momento il terminale è configurato con il nuovo indirizzo NET92. 3.2.1 “Restart” del terminale Il terminale mantiene memorizzate tutte le configurazioni impostate sia interattivamente da tastiera, sia tramite appositi comandi inviati attraverso i canali di “shell”; alcune di queste impostazioni sono rese effettive soltanto al momento del “restart” del terminale stesso. Il “restart” può essere ottenuto sia spegnendo e riaccendo il terminale, sia inviando ad esso un comando di “shell” tipo “%%”, “%%1”, ecc. (Cfr. § 6.1.4). Durante il restart, se il terminale è collegato ad un dispositivo che effettua il “polling” sulla porta Net92 (ad esempio un altro terminale “master” Net92, oppure un’interfaccia #983 EtherLite, oppure un PC via PSLD/33I-MicroLD), automaticamente lo “sente” e lo segnala emettendo un “beep”. Al momento del “restart” (utilizzato anche per riportare il terminale in uno stato neutro, ad esempio dopo l’interruzione di una fase di comunicazione terminata non correttamente), il display del terminale mostra per qualche istante alcune informazioni relative alla propria configurazione interna. Sono mostrate la release di firmware installato, la configurazione della memoria (per la spiegazione dei simboli visualizzati Cfr. § 6.1.4, descrizione del comando di shell “%XI”) e infine il proprio indirizzo identificativo in rete TMC NET92 preceduto da un identificatore della velocita‘ di comunicazione NET92 (Cfr. § 5.6.1, Param. 81-ExtraComm), come USO DEL TERMINALE 31 nell’esempio seguente: Prox rB80_0 by TMC BF 025 Dopo un “restart” il terminale abilita, come applicazione base, la rilevazione presenze (Cfr. § 3.5): all’uscita dalla configurazione successiva al restart verrà quindi presentato il display tipico di questa applicazione: 21:32 esce-> Mar 05/01 <-entra N.B.: Dipendentemente dal valore di opportuni parametri di configurazione, e a seconda che si disponga di un display 2x16, 4x20 oppure grafico, il formato delle informazioni visualizzate può essere diverso. Si veda il § 3.5 per ulteriori dettagli. Per configurare il funzionamento del controllo accessi (procedura connessa alla rilevazione presenze), ed attivare altre procedure da associare ai tasti funzione, occorre impostare i parametri opportuni e caricando i file dati necessari. Queste operazioni possono essere effettuate per mezzo dei menu interattivi oppure dal computer di controllo. 3.2.2 Segnalazioni mostrate al “restart” Vi sono alcune situazioni di errore che sono evidenziate sul display del terminale al momento del “restart”: in tali casi occorre un intervento manuale dell’operatore atto a ripristinare il corretto funzionamento del terminale. Una condizione di errore è rilevata nel caso in cui il terminale riscontri una situazione anomala nei suoi parametri di configurazione: in questo caso il display visualizza alternativamente il messaggio CONTROLLARE OROLOGIO+PARAM.. e il messaggio di richiesta per entrare in “modo supervisore”, mostrato all’inizio del § 3.3. Affinchè il terminale esca da tale situazione occorre che l’operatore controlli i parametri di configurazione del terminale e ne modifichi almeno uno: queste operazioni sono descritte ai § 3.3 e 3.3.3. 3.3 Il menu di gestione interattiva Per accedere da tastiera al menu di gestione, quando un’applicazione è già operativa, si utilizza la F 0 ; verrà quindi richiesto il codice operatore, inizialmente (di default) combinazione di tasti impostato a “54321”: CODICE OPERATORE:_____ (È possibile modificare questa “password” impostando la stringa contenuta nel parametro di configurazione 89Password). Il campo di introduzione è di tipo ‘mascherato’, cioè ogni cifra inserita è sostituita a video da un asterisco ‘*’. Se il codice inserito è errato, il terminale visualizza temporaneamente il messaggio Codice non valido! per poi tornare alla gestione principale, di solito rilevazione presenze/controllo accessi. Se il codice operatore è corretto, il terminale mostra il seguente schermo: USO DEL TERMINALE 32 COMANDI: Imposta l’orario Premendo il tasto si abilita la procedura visualizzata, con i tasti invece le altre opzioni disponibili: COMANDI: Imposta la e è possibile richiamare data COMANDI: Gest.Tab.Accessi COMANDI: Modif. Parametri COMANDI: Elenco File COMANDI: IP Config. COMANDI: Modem setup COMANDI: Firmware key N.B.: tutte le operazioni di gestione interattiva disponibili tramite i menu di configurazione, possono anche essere effettuate attraverso i canali di comunicazione COM1, COM2, NET92 o Ethernet configurati (anche tutti contemporaneamente) per comunicare con l’interprete comandi presente a bordo del terminale. 3.3.1 Regolazione dell’orologio-datario La prime due voci del menu di gestione interattiva del terminale sono relative alla impostazione dell’orario e della data. Nel caso dell’orario è possibile specificare ora, minuti e secondi; alla pressione di orario: verrà attivato il nuovo USO DEL TERMINALE 21:37:15 __:__:__ 33 attuale esatto Per quanto riguarda la data, invece, occorre introdurre l’ordinale del giorno della settimana (0=Domenica, 1=Lunedi..6=Sabato), seguono quindi le due cifre meno significative dell’anno, il mese e il giorno del mese: Mar Dom=0 _ 92-12-28 __:__:__ 3.3.2 Gestione delle tabelle di Controllo Accessi Dopo avere selezionato la voce “Gest.Tab.Accessi”, si entra in un sottomenu che permette di modificare da tastiera i tre file che regolano il controllo accessi individuale, ovvero rispettivamente AXCARDS, AXPOOLS e AXTIMET (Cfr. § 3.6 e § 5.7.3); consigliamo di controllare se i parametri relativi alle posizioni e lunghezze del codice di sistema, del codice personale del badge, ecc. sono correttamente impostati (parametri 41, 42, 43, 44, 45, 91). GEST.ACCESSI: Modifica codici alla pressione di , il display mostra il prompt di introduzione di un nuovo codice personale di tessera (il numero di caratteri in introduzione è uguale al valore impostato nel parametro 43-BadgeLun); il terminale in questo momento accetta l’introduzione dati tramite la lettura del codice personale contenuto in un badge. Numero ______ Tessera: ATTENZIONE: in questo stato non si devono effettuare comandi di SHELL via COM1 e COM2: queste porte sono allocate per un eventuale dispositivo di input collegato via porta seriale. Se il codice personale introdotto esiste già nel file AXCARDS, se ne potrà modificare il pool di appartenenza, altrimenti il terminale richiede di confermare l’introduzione in AXCARDS del nuovo codice personale: Cod.inesistente: Enter=Aggiunge Premendo un qualunque tasto diverso da , il terminale torna in fase di introduzione di un numero tessera, altrimenti è mostrato il display di richiesta del pool di appartenenza del codice personale introdotto (di default è mostrato il pool “00”): Codice:333333 pool:00 Se è attivata la gestione del PIN (il bit 0 del parametro 74-Security è impostato a ‘1’) ed è abilitata la possibilita‘ di editare il PIN da tastiera (il bit 3 del parametro 74-Security è impostato a ‘1’), allora il display mostra la richiesta di introduzione di quattro caratteri numerici corrispondenti al PIN da associare al codice personale che state introducendo. Codice:333333 PIN:____ USO DEL TERMINALE 34 L’introduzione del dato è effettuata in modo “mascherato” (al posto di ogni carattere digitato viene visualizzato un “*”). Anche in fase di revisione dati, per sicurezza il PIN è visualizzato come “****”; per lasciarlo invariato è sufficiente proseguire premendo . Se vi sono carte per le quali il PIN non deve essere mai richiesto, è sufficiente definire per esse un PIN uguale a “0000”. Quando il cursore si trova sul campo ‘pool’ di una tessera, è possibile procedere alla cancellazione della C tessera stessa, premendo il tasto ; il terminale chiede conferma dell’operazione LR Codice:333333 C:conferma canc. C Alla pressione di , il codice sarà “cancellato” dal file AXCARDS, mentre la pressione di un qualsiasi altro tasto farà abortire l’operazione di cancellazione. LR La cancellazione non è fisica, bensì logica: al codice personale originario il terminale sostituisce un codice composto di soli zeri: non assegnate mai una tessera avente il codice personale composto di soli zeri, in quanto il terminale lo tratterà come “record cancellato”. La voce di menu GEST.ACCESSI: Modifica pool consente la modifica del file AXPOOLS, contenente i possibili 100 pool (insiemi costituiti al massimo di sei , il display mostra le fasce diverse fasce orarie) diversi di appartenenza delle tessere; alla pressione di orarie associate al pool “00”, mentre con le frecce si può scorrere l’intervallo di pool da “00” a “99”: pool: fasce: Premendo di nuovo il tasto 00 ______ , si entra in fase di modifica delle fasce orarie associate al pool: pool: fasce: 00 ______ Come vedremo in seguito, la gestione accessi contenuta nel terminale prevede un massimo di 26 diverse fasce orarie , da “A” a “Z”: in fase di modifica del campo “fasce”, poiché si tratta di un campo strettamente alfabetico, i tasti numerici del terminale vengono “rimappati” nel modo seguente, a seconda del numero di pressioni consecutive e ravvicinate dello stesso tasto: 2 La voce di menu in ‘A’, ‘B’, ‘C’ 3 in ‘D’, ‘E’, ‘F’ 4 in ‘G’, ‘H’, ‘I’ 5 in ‘J’, ‘K’, ‘L’ 6 in ‘M’, ‘N’, ‘O’ 7 in ‘P’, ‘Q’, ‘R’, ‘S’ 8 in ‘T’, ‘U’, ‘V’ 9 in ‘W’, ‘X’, ‘Y’, ‘Z’ USO DEL TERMINALE 35 GEST.ACCESSI: Modifica fasce consente infine di effettuare la manutenzione dell'archivio AXTIMET: alla pressione di , il display mostra gli orari di inizio e fine validità della fascia oraria "A"; notiamo che tutte le fasce orarie non inizializzate hanno gli orari impostati al valore impossibile "99:99": A: 99:99 00000000 99:99 Anche qui, premendo di nuovo il tasto A: 99:99 00000000 , si entra in fase di modifica degli orari associati alla fascia: 99:99 La seconda riga contiene gli otto indicatori posizionali che consentono di specificare per ogni giorno della settimana (Domenica, Lunedi,.., Sabato e Festività) se la fascia oraria è attiva (valore diverso da "0") oppure no ("0"). 3.3.3 Parametri di configurazione Con la scelta di menu “Modif.Parametri” si entra nel sottomenu che permette di modificare tutti i parametri scalari che determinano il comportamento del terminale. La configurabilità del terminale è oggetto dei paragrafi successivi, mentre la tabella riassuntiva di tutti i parametri è al § 5.6.1. È mostrato per primo il parametro 00-Printer: sulla prima riga del display è visualizzato il numero del parametro e il suo identificativo mnemonico, mentre sulla seconda riga è visualizzato il valore attuale del parametro stesso. Par:00 0 Il tasto Printer consente di entrare in fase di modifica del valore del parametro, mentre i tasti e 0 .. 9 consentono di posizionarsi rapidamente sul consentono di scorrere l’elenco; i tasti numerici primo parametro della corrispondente decade (00..90), mentre la successiva pressione permette di visualizzare ciclicamente i parametri della decade corrente (00..09, 10..19 e così via). Una volta modificato il ; fanno eccezione i valore di un parametro, questo deve essere confermato con la pressione di parametri costituiti da un solo carattere, per i quali l’introduzione del nuovo valore coincide anche con la sua conferma. 3.3.4 Reset dei parametri di configurazione All’interno del sottomenu “Modif.Parametri” è anche possibile riportare tutti i parametri ai rispettivi valori di D default premendo il tasto e quindi confermando l’operazione con : il terminale reimposta tutti i parametri ai valori di default (con l’eccezione del par. 19-Address, cioè l’indirizzo di rete Net92, che è mantenuto invariato) ed effettua un restart. Questa operazione ha lo stesso effetto di un comando “%%1”. Fate attenzione nell’effettuare questa operazione, perchè alcuni file possono diventare illeggibili se creati quando i rispettivi parametri chiave avevano valori diversi da quelli di default. 3.3.5 Manutenzione del file system La voce “Elenco File” del menu’ di configurazione mostra l’elenco dei file presenti nei vari drive del terminale (cfr. § 6.1.2). Dopo la visualizzazione temporanea del numero di byte ancora disponibili sul drive A , è mostrato il nome del primo file presente, insieme alla sua dimensione in byte. A: free: 096012 USO DEL TERMINALE A: PRE40507 36 000250 Mediante i tasti e è possibile visualizzare il nome e la dimensione degli altri file presenti sul drive corrente; se il display mostra nella riga superiore anche una freccia orizzontale, allora significa che si tratta di un PROX+F/G su cui è presente una RAM-Card, ed è quindi possibile scorrere ciclicamente i vari drive A, B e . C (se presente), premendo appunto il tasto A: PRE40507 000250 Al momento del passaggio sul drive B, oltre alla consueta informazione relativa al numero di byte ancora disponibili sul drive B, nella posizione più a sinistra della seconda riga di display è mostrato temporaneamente lo stato del drive. Uno spazio bianco indica la normale formattazione del drive B, effettuata senza riservare 32 Kbyte per il caricamento di un programma 'custom' ottenuto per mezzo dell'apposito ambiente di sviluppo in linguaggio ‘C’ fornito dalla TMC separatamente: B: free: 259080 La presenza di una “F” indica la formattazione del drive B con riserva dei 32 Kbyte per programma ‘custom’ (programma non ancora caricato in memoria): B: F free: 226568 La presenza di una “P” indica la formattazione del drive B con riserva dei 32 Kbyte per programma ‘custom’ (e programma presente in memoria): B: P free: 226568 Una possibilità di gestione dei drive (anche se non è mostrata per motivi di spazio sul display) è offerta dal D tasto funzione che consente proprio di riformattare il drive corrente. Il terminale chiede conferma dell’operazione (ricordiamo che si tratta di un’operazione irreversibile, in quanto sarà poi impossibile recuperare i file cancellati per mezzo di una formattazione), come nel seguente esempio: Format Alla pressione di formattazione: DRIVE B? , il display visualizzerà temporaneamente il seguente messaggio di avvenuta Formatted B. E Se invece viene premuto il tasto (attivo solo nel caso del drive B) al posto del tasto , PROX+F/G formatterà il drive B riservando 32 Kbyte di memoria per il successivo caricamento di un programma ‘custom’ sviluppato in linguaggio ‘C’; il display visualizzerà temporaneamente il seguente messaggio: USO DEL TERMINALE 37 Formatted B. (+PRG BANK) La pressione di quando siamo posizionati sul primo file del drive corrente, provoca la visualizzazione temporanea del messaggio A: <first file> La pressione di quando ci si trova posizionati sull'ultimo file del drive corrente, provoca la visualizzazione del seguente messaggio temporaneo (che è anche l’unico mostrato in caso di file system vuoto): A: <last file> Quando si è posizionati su un file, premendo il terminale mostra il seguente display: C:Clr B:Prt :Sh PRE40507 000250 È possibile cancellare il file corrente premendo il tasto di cancellazione conferma all'operazione di cancellazione file CLR : il terminale chiede ulteriore Conf.Cancella=C PRE40507 000250 CLR Premendo di nuovo il tasto di cancellazione terminale. , il file è definitivamente rimosso dalla memoria del B (se la stampante È possibile anche stampare il contenuto del file corrente, premendo il tasto funzione è stata correttamente configurata tramite il parametro 00-Printer ed i parametri di impostazione delle caratteristiche del canale asincrono COM1/COM2 utilizzato per la connessione). Se la stampante non è configurata (parametro 00 impostato a 0), il terminale emette un segnale acustico e visualizza temporaneamente il messaggio Stampante disabilitata! È possibile anche visualizzare il contenuto del file, premendo . Il display mostra sulla prima riga il nome del file, mentre sulla seconda sono mostrati in sequenza i primi 16 caratteri di ogni linea di dati contenuta nel C file; la pressione del tasto di cancellazione interrompe la visualizzazione e riporta alla gestione file, mentre la pressione di qualunque altro tasto fa scorrere i record più rapidamente. LR L’ultima possibilità di gestione file, non mostrata per motivi di spazio sul display e disponibile solo sui terminali PROX+F/G, è offerta dal tasto che consente di copiare il file corrente su un altro drive; PROX+F/G richiede quindi di specificare l’identificativo del drive logico destinazione PRE40507 CopyTo: A , B C , PROX+F/G esegue la copia del file e A questo punto, premendo uno dei tasti oppure visualizza la conferma dell’avvenuta operazione (ad esempio, nel caso di copia sul drive B): USO DEL TERMINALE PRE40507 CopyTo:B 38 ok! Ricordiamo che il tasto funziona in ogni caso come escape, ovvero consente di abbandonare l’operazione in corso di esecuzione. 3.3.6 Configurazione Ethernet Se il vostro terminale è un PROX+F/G al quale avete collegato una scheda #983 EtherLite o WiLite (sulla COM1 o sulla Net92), oppure un TRAX+F/G con porta Ethernet integrata (eventualmente connesso ad una scheda WiLite esterna sulla Net92), il menu “IP Config.” è il modo più semplice per impostare i parametri di configurazione Ethernet. Il terminale si accorge automaticamente quando una scheda EtherLite/WiLite è collegata alla sua porta Net92 se l’indirizzo di rete RS485 del terminale è contenuto nell’intervallo di interrogazione ciclica (polling) dell’EtherLite/WiLite (default: 1..31) e se quest’ultima è stata precedentemente impostata per comunicare attraverso la sua porta RS485 con protocollo Net92 a 57600 baud (questa non è la configurazione di default, ma per impostarla è sufficiente premere il pulsante di RESET dell’EtherLite/WiLite per almeno due secondi e rilasciarlo quando il LED VERDE è ACCESO, si veda il manuale utente dell’EtherLite per ulteriori dettagli). Se viene rilevato il polling effettuato da una scheda EtherLite/WiLite, il PROX+F/G passa direttamente alla configurazione della stessa, mentre il TRAX+F/G chiede quale interfaccia Ethernet (quella integrata, sempre presente, oppure la WiLite esterna) si desidera configurare: Config. external ethernet? 1=Yes Premere integrata. 1 per configurare la WiLite esterna, o qualunque altro tasto per configurare la porta Ethernet Se non viene rilevato nessun polling sulla Net92, invece, il TRAX+F/G passa direttamente alla configurazione della porta Ethernet integrata, mentre il PROX+F/G chiede se l’EtherLite/WiLite sia stata in effetti collegata alla COM1: Extern. ethernet on COM1? 1=Yes 1 Premere per confermare, o qualunque altro tasto per interrompere la procedura nel caso in cui l’EtherLite/WiLite sia connessa alla porta Net92, ma per qualche ragione (ad esempio perché non è stata configurata correttamente) il PROX+F/G non ne “sente” il polling. Di default l’EtherLite/WiLite è impostata per comunicare attraverso la sua porta RS232 a 9600 baud, 8 bit di dati, nessuna parità e handshake software XON/XOFF. La porta COM1 del PROX+F/G va configurata nello stesso modo, impostando i corrispondenti parametri al loro valore di default, come mostrato nella seguente tabella: PROX+F/G Par. Valore di default 10 36 11 4 12 0 13 0 14 13 15 120 Se le configurazioni dell’EtherLite/WiLite e del PROX+F/G non corrispondono, vedrete il seguente messaggio: USO DEL TERMINALE 39 EtherLite.. No reply Se invece l’interfaccia Ethernet comunica correttamente, dovreste vedere il seguente messaggio temporaneo: EtherLite.. Master not set Questo messaggio significa che un parametro essenziale per il funzionamento, l’indirizzo IP del PC che controlla il terminale (Master), non è ancora stato impostato. L’interfaccia Ethernet invia i pacchetti contenenti i messaggi che riceve dal terminale a tale indirizzo, quindi se questo parametro è ancora impostato a 0.0.0.0 (default), l’interfaccia non sa a chi mandare questi dati. Non solo: in questo stato l’interfaccia non inoltra al terminale i messaggi (pacchetti UDP di tipo DATA) che riceve dal lato Ethernet, ma accetta solo comandi di configurazione Ethernet (pacchetti UDP di tipo CMD). Se il Master è già stato impostato, allora il messaggio visualizzato potrebbe essere “Master ready” (se il PC Master sta rispondendo con una conferma ai pacchetti inviati dall’interfaccia Ethernet) oppure “Waiting ARP” (se il PC Master è spento o irraggiungibile) oppure ancora “Master not ready” (se il PC Master è raggiungibile ma il programma di controllo, che deve gestire la porta UDP su cui trasmette l’interfaccia, non è attualmente in esecuzione). Dopo il messaggio temporaneo, il terminale mostra il primo parametro Ethernet che può essere impostato da questo menu: l’indirizzo IP locale (A). Local Address 192.168.1.240 L’indirizzo IP di default (192.168.1.240) è normalmente incompatibile con la sottorete Ethernet nella quale l’interfaccia dovrà operare. Inoltre, se ci sono più interfacce Ethernet nella stessa sottorete, esse devono avere indirizzi IP diversi. La prima cosa da fare, pertanto, è assegnare un nuovo e definitivo indirizzo IP in modo tale da consentire le comunicazioni su Ethernet. Attenzione: la modifica dell’indirizzo IP locale (A), sia nel caso venga effettuata tramite il menu “IP Config.”, sia mediante l’invio di un pacchetto UDP di tipo “comando di configurazione IP”, comporta automaticamente l’impostazione del parametro 19-Address al valore ‘1’, ma solo nel caso in cui il suo attuale valore sia ancora quello di default (‘254’). NB: in alternativa, se si sta usando una scheda #983 EtherLite con firmware r.59 o successive (no WiLite), o l’interfaccia Ethernet integrata di un TRAX+F/G con firmware r.86 o successive, è possibile abilitare la gestione del protocollo DHCP per l’assegnazione automatica di un indirizzo IP locale (A) dinamico. Vengono inoltre ricevuti dal server DHCP, e memorizzati, i valori della Subnet Mask (S) e l’indirizzo IP del Gateway (G). Analizziamo separatamente i due casi: • EtherLite: il DHCP viene abilitato impostando l’indirizzo IP locale (A) al valore 0.0.0.0 ed effettuando il restart della scheda (che viene comandato automaticamente all’uscita dal menu “IP Config.”). Una volta abilitato il DHCP, se si rientra nel menu gli eventuali cambiamenti di configurazione dei parametri S e G non hanno effetto, mentre è possibile impostare un qualunque indirizzo IP locale (A) statico diverso da 0.0.0.0 al posto di quello attualmente assegnato dal server DHCP, il che equivale in effetti a disabilitare il DHCP al restart della scheda. • TRAX+F/G: il DHCP viene abilitato impostando a ‘1’ il bit 0 del parametro 20-EthIPMode e riavviando il terminale (il valore 0.0.0.0 non ha effetto). Una volta abilitato il DHCP, se si rientra nel menu gli eventuali cambiamenti di configurazione dei parametri A, S e G non hanno effetto. Tornando al menu, il tasto consente di entrare in fase di modifica del valore del parametro, mentre i e consentono di scorrere l’elenco dei parametri Ethernet impostabili (sono di seguito tasti visualizzati i valori di default): Subnet Mask 0.0.0.0 USO DEL TERMINALE 40 Tramite la Subnet Mask (S) l’interfaccia Ethernet capisce se il PC Master si trova nella stessa sottorete o se per raggiungerlo dovrà passare dal Gateway (se il PC Master si trova nella stessa sottorete non è necessario impostare questo parametro). Ad esempio, se l’indirizzo IP locale (A) è 10.0.1.55, il Master (M) è 10.4.1.1 e la Subnet mask (S) è 255.255.0.0, l’interfaccia confronterà i primi 2 byte di A ed M e capirà di trovarsi in una sottorete differente dato che essi sono diversi, pertanto indirizzerà i pacchetti all'indirizzo fisico del Gateway (G) invece che a quello del Master. Remote Master 0.0.0.0 Questo è il parametro fondamentale cui si accennava in precedenza: l’indirizzo IP del PC Master (M). ATTENZIONE: se, all’accensione, M è diverso da 0.0.0.0, l’interfaccia Ethernet cerca di contattare il PC Master per verificare che sia pronto a ricevere dati. Questa procedura implica delle ritrasmissioni periodiche che terminano solo quando il Master risponde correttamente. Se sono presenti router su linee ISDN o PST, assicuratevi che il Master sia in grado di rispondere sempre in tempi brevi per evitare innalzamenti dei costi telefonici. Se si pensa che il Master possa non rispondere, si raccomanda di lasciare M al valore di default 0.0.0.0, ed impostarlo al valore effettivo solo quando necessario. A tale scopo, il software TMC “TRAXiT” provvede automaticamente, spuntando la checkbox “Disattiva al termine della sessione”, a reimpostare M a 0.0.0.0 al termine di ogni sessione di scarico dati in impianti OFFLINE. Questa checkbox va utilizzata solamente negli impianti dove tra il Master ed i terminali è presente un router telefonico. Gateway Addr. 255.255.255.255 Si tratta dell’indirizzo IP del Gateway (G). Se il PC Master si trova nella stessa sottorete non è necessario impostare questo parametro). Ack 2 Timeout Imposta il timeout delle comunicazioni Ethernet/UDP (parametro T): se dopo la trasmissione di un pacchetto non se ne riceve l'ACK (cioè la conferma) entro questo tempo, lo stesso pacchetto viene ritrasmesso. Il parametro T può assumere valori compresi fra 1 e 15 secondi (il default è 2). Poll. 31 Cycle Questa voce di menu, che ha effetto solo sulle schede #983 EtherLite o Wilite, imposta il limite superiore degli indirizzi Net92 sui quali effettuare l'attività ciclica di polling (parametro N). Può assumere valori compresi fra 2 e 254, anche se in ogni caso sullo stesso segmento di rete Net92 non è possibile collegare fisicamente più di 31 dispositivi (per questo motivo il default è proprio 31, presupponendo indirizzi compresi fra 1 e 31). Indipendentemente dal valore di questo parametro, per sicurezza, il ciclo di polling passa sempre anche per l'indirizzo 254 (indirizzo di default per i terminali TMC). Per quanto riguarda il TRAX+F/G senza WiLite, questo valore non è significativo in quanto normalmente l’interfaccia Ethernet integrata non effettua alcun polling sulla Net92 (dalla quale peraltro è logicamente e fisicamente disgiunta). Il polling Net92 da parte dell’interfaccia Ethernet integrata viene “emulato” solo sui terminali per i quali è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK03_N92GATEWAY (cfr. 3.3.8), e in questo caso l’intervallo di polling è fisso (1..31). Le tre successive voci del menu non rappresentano parametri di configurazione, ma sono informazioni su stato interfaccia / modalità operativa, versione di firmware e indirizzo fisico (MAC) dell’EtherLite. Status cs USO DEL TERMINALE 41 Il primo ed il secondo carattere visualizzati sulla seconda linea rappresentano, rispettivamente, lo stato dell’interfaccia (già reso noto dal messaggio temporaneo visualizzato entrando nel menu “IP Config.”) e la modalità operativa, con il significato mostrato nella seguente tabella: Stato interfaccia Modalità operativa c In attesa della configurazione minima per lavorare (parametro M non impostato); corrisponde al messaggio “Master not set” visualizzato entrando nel menu “IP Config.” f Ricerca fisica del Master: il PC Master non ha ancora risposto alla richiesta ARP che l’interfaccia Ethernet invia automaticamente all'accensione verso l'indirzzo IP specificato nel parametro M (PC master spento o irraggiungibile); corrisponde al messaggio “Waiting ARP” visualizzato entrando nel menu “IP Config.” a Ancora in attesa della conferma all'ultimo pacchetto trasmesso. Se questo stato si presenta all'accensione significa che il PC master è raggiungibile ma non ha confermato il pacchetto INIT (mancanza logica del Master, che non ha attivato il programma di controllo che gesti della porta UDP su cui trasmette l’interfaccia); corrisponde al messaggio “Master not ready” visualizzato entrando nel menu “IP Config.” n Tutto normale: interfaccia Ethernet pronta; corrisponde al messaggio “Master ready” visualizzato entrando nel menu “IP Config.” e Errore di stato (solo schede #983 EtherLite o WiLite): i dati nella EEPROM si sono corrotti ed è necessario un reset hardware per reinizializzarla s Modalità di funzionamento standard: pacchetti con header TMC e trasmissioni sulla porta UDP configurata. Questa è l’unica modalità possibile in caso di interfaccia Ethernet integrata del TRAX+F/G b Modalità broadcast (solo schede #983 EtherLite con parametro M impostato a 255.255.255.255 e protocollo Net92 disabilitato): i dati ricevuti da seriale vengono trasmessi in broadcast alla porta UDP configurata+1, senza header TMC (trasmissione UDP-trasparente). In questa modalità lo stato interfaccia è sempre 'n' in quanto non si esegue né ricerca fisica (ARP) né logica (INIT) del Master, ed i pacchetti non attendono mai conferma t Modalità UDP-trasparente (solo schede #983 EtherLite o WiLite con protocollo Net92 disabilitato): i dati ricevuti da seriale vengono trasmessi sulla porta UDP configurata+1, senza header TMC. In questa modalità lo stato interfaccia non assumerà mai il valore 'a' in quanto non è richiesto di confermare i pacchetti trasmessi con ACK e non viene mai trasmesso il pacchetto INIT L’informazione seguente è la versione del firmware dell’interfaccia Ethernet (che non ha nulla a che vedere con il firmware di base del terminale, anche se nel caso del TRAX+F/G è incluso nello stesso file con cui il firmware di base viene distribuito): EthLite 56l FW Ver Il carattere che segue le due cifre della versione è un identificativo del prodotto, con il seguente significato: l EtherLite w WiLite e Interfaccia Ethernet integrata TRAX+F/G (firmware di base in esecuzione) b Interfaccia Ethernet integrata TRAX+F/G (bootloader in esecuzione) o EtherBox (prodotto obsoleto) t EtherTRAX+P (prodotto obsoleto) Segue poi l’indirizzo fisico (MAC) della sezione Ethernet, espresso in cifre esadecimali: MAC Address 000424:12:56:78 Nel caso della scheda EtherLite o dell’interfaccia Ethernet integrata del TRAX+F/G, tale indirizzo comincia sempre con “000424” che è l'identificativo registrato dei prodotti Ethernet TMC. La stessa cosa non si può dire per la WiLite. Infine, è possibile impostare la porta UDP usata per le comunicazioni Ethernet: verranno gestiti tutti e soli i pacchetti ricevuti su questa porta UDP (anche se provenienti da una porta UDP sorgente diversa), mentre tutti gli altri saranno scartati. Le risposte ai comandi verranno comunque inviate alla porta UDP sorgente dei comandi stessi, anche se diversa da quella qui impostata, ed eccezione del caso in cui il bit 2 del parametro 20-EthIPMode (vedi) venga impostato ad ‘1’. Nel caso dell’EtherLite, il valore corrente della porta UDP standard non viene mostrato: UDP ? Port USO DEL TERMINALE 42 In caso di interfaccia Ethernet integrata del TRAX+F/G o WiLite, invece, viene mostrato il valore esadecimale della porta UDP (due coppie di cifre separate da un punto). Il valore di default è 2133h = 8499: UDP Port 21.33 In tutti i casi, per modificare la porta UDP è necessario introdurre il nuovo valore valore espresso in cifre esadecimali ‘0’..’9’, ‘A’..’F’ (due coppie di cifre separate da un punto), secondo la modalità di introduzione dati alfanumerici descritta al § 6.2.2. Solo in caso di WiLite, inoltre, il menu “IP Config.” comprende cinque ulteriori voci: SSID L’SSID è l’identificativo della rete WiFi utilizzata: poiché il valore di default è nullo, la WiLite cercherà di registrarsi al primo Access Point (AP) acceso, entro la sua portata ed operante sullo stesso canale di comunicazione (vedi parametro successivo) che riesce a trovare. Si raccomanda perciò di impostare un SSID uguale a quello dell’AP che deve effettivamente essere utilizzato. Questo parametro è alfanumerico e ha una lunghezza massima di 32 caratteri, ma il menu “IP Config.” consente di introdurne non più di 16 (secondo la modalità di introduzione dati alfanumerici descritta al § 6.2.2). è possibile commutare alla modalità di introduzione NB: Una volta entrati in modifica, premendo il tasto si può ritornare alla modalità lettere maiuscole. lettere minuscole, mentre premendo Una volta impostato un valore non nullo, per reimpostare l’SSID al valore di default occorre inserire un 0 ). carattere ‘-’ (premendo rapidamente per 5 volte il tasto La successiva voce di menu consente di impostare il canale di comunicazione WiFi, che deve essere lo stesso dell’AP (default 11). Channel 11 La successiva voce di menu mostra la qualità della comunicazione con l’AP (“BSSQ” sta per Base Signal Quality, indicatore che assume valori nell’intervallo 0..92 e che deve risultare >60 per una buona qualità): WiFi Quality BSSQ=70 In caso di TRAX+G, inoltre, la schermata viene completata dai dati relativi ad altri due indicatori: “ASL” (Average Signal Level, deve risultare >90) e “NSL” (Noise Signal Level, deve risultare <25): Quality BSSQ=70 ASL=120 NSL=5 La successiva voce di menu consente di impostare la modalità di crittografia WEP, che deve essere la stessa impostata sull’AP: WEP 0 Il valore di default ‘0’ significa WEP disabilitato; gli altri valori consentiti sono ‘64’ e ‘128’, rispettivamente per WEP a 64 oppure 128 bit, in modalità fissa Shared Key); solo in caso di TRAX+F/G, sono ammessi anche i valori ‘O64’ e ‘O128’ (con la lettera ‘o’ maiuscola in fronte), rispettivamente per WEP a 64 oppure 128 bit, in modalità fissa Open System. USO DEL TERMINALE 43 L’ultima voce di menu mostra il valore corrente della chiave WEP, ma il funzionamento è diverso a seconda del tipo di terminale. In caso di TRAX+G, la chiave WEP, che è sempre formata da 13 byte (anche se impostando il WEP a 64 bit solo i primi 5 byte sono significativi) viene visualizzata in un’unica schermata come 13 coppie di cifre esadecimali separate da punti, e può essere modificata introducendo il nuovo valore nello stesso formato, secondo la modalità di introduzione dati alfanumerici descritta al § 6.2.2: WEP key FF.FF.FF.FF.FF.FF.FF. FF.FF.FF.FF.FF.FF In caso di PROX+F/G e TRAX+F, invece, la chiave WEP viene visualizzata su tre schermate successive, così suddivisa: i primi 5 byte, che sono anche gli unici significativi in caso di WEP a 64 bit, compaiono nella prima schermata, contrassegnata “1/3”, mentre i restanti sono mostrati nelle due schermate seguenti (“2/3” e “3/3”), 4 byte ciascuna. Poiché la chiave WEP non viene inizializzata e non può essere impostata usando questo menu su PROX+F/G e TRAX+F, ne consegue che apparirà un valore significativo soltanto se precedentemente impostato con un apposito comando diretto, inviato mediante connessione RS232 o Ethernet wireless (si faccia riferimento, in proposito, allo shortform della scheda #983 WiLite): WEP key 1/3 FF.FF.FF.FF.FF Solo in caso di TRAX+F/G, infine, una volta entrati nel menu “IP config.”, è possibile riportare tutti i parametri D e dell’interfaccia Ethernet integrata o della WiLite esterna ai rispettivi valori di default, premendo il tasto alla richiesta di conferma (NB: per ripristinare la configurazione di default di successivamente un’eventuale EtherLite esterna, invece, è sempre necessario tenere premuto l’apposito pulsante di reset situato sulla scheda): Reset parametri? Se si è cambiato il valore di almeno un parametro relativo ad una scheda #983 EtherLite o WiLite, all’uscita dal sottomenu “IP Config.” il terminale invia i relativi comandi di impostazione, seguiti da un comando di restart della scheda, necessario per rendere effettive le modifiche; sul display appare il seguente messaggio: Restarting EtherLite! In caso di cambiamenti relativi all’interfaccia Ethernet integrata del TRAX+F/G, invece, il terminale stesso effettua un restart. 3.3.7 Configurazione del Modem La voce “Modem setup” fornisce un semplice mezzo per impostare i parametri di funzionamento del modem eventualmente connesso alla porta seriale. Solo in caso di PROX+F/G, come prima cosa viene chiesto su quale delle sue porte seriali (COM1 o COM2) è connesso il modem: Modem port [1,2]:_ Poiché i comandi di configurazione per i chipset Rockwell/Conexant e 3Com/U.S. Robotics non sono compatibili, il terminale chiede a questo punto di specificare il tipo di modem: USO DEL TERMINALE 44 3Com/USRobotics =Ye s Premete se state usando un modem 3Com/U.S. Robotics, o qualunque altro tasto se state usando un diverso tipo di modem. L’operazione procede quindi con la richiesta del numero di squilli per la risposta automatica del modem (AUTOANSWER, valori da ‘0’ a ‘9’, ‘0’=risposta automatica disattivata) e del tipo di handshake da impostare: ‘0’=SOFTWARE, ‘1’=HARDWARE (NB: il TRAX+F/G è in grado di gestire solo l’handshake SOFTWARE, pertanto l’unico valore che ha senso impostare in questo caso è ‘0’): Risp.squilli n:_ Hsk[0=SW,1=HW]:_ Una volta inseriti tutti i dati richiesti, il terminale invia i comandi di configurazione “AT” appropriati (sintassi “HAYES” compatibile) al modem connesso all’unica porta di comunicazione seriale disponibile (in caso di TRAX+F/G) o a quella precedentemente selezionata (in caso di PROX+F/G). La trasmissione di questi comandi avviene secondo le caratteristiche di comunicazione definite nei parametri COMxBaud, COMxPar e COMxLF relativi alla porta COM1/2 utilizzata. Affinchè i comandi abbiano effetto, naturalmente occorre che il modem sia alimentato e correttamente connesso al terminale. Se l’invio dei comandi è avvenuto correttamente e si è ricevuta conferma da parte del modem, sulla seconda linea del display deve apparire temporaneamente il seguente messaggio: Risp.squilli OK n:1 In caso contrario, l’invio dei comandi non è andato a buon fine, pertanto l’operazione deve essere ripetuta dopo aver identificato e rimosso la causa del fallimento. Infine il terminale configura il parametro di gestione dell’handshake COMxHSK in modo da essere compatibile con il tipo di handshake impostato. • Handshake SOFTWARE Il terminale invia al modem i seguenti comandi: AT&F AT&D0&R1Q1E0S0=x (dove x è il numero di squilli impostato per la risposta automatica) AT&K4 oppure (solo per 3Com/U.S. Robotics) AT&H2&R1&I2 AT&W&W1 Il parametro di gestione dell’handshake (10-COM1HSK per COM1 o 20-COM2HSK per COM2) è impostato al valore di default ‘36’. Per il collegamento PROX+F/G-modem può essere utilizzato un cavo a soli 3 fili come descritto al § 2.4.11, mentre per il collegamento TRAX+F/G-modem occorre utilizzare un cavo a 4 fili come descritto nello shortform allegato al prodotto. • Handshake HARDWARE (questa scelta ha senso solo in caso di PROX+F/G) Il terminale invia al modem i seguenti comandi: AT&F AT&D0&R1Q1E0S0=x (dove x è il numero di squilli impostato per la risposta automatica) AT&K3 oppure (solo per 3Com/U.S. Robotics) AT&H1&R2&I0 AT&W&W1 Il parametro di gestione dell’handshake (10-COM1HSK per COM1 o 20-COM2HSK per COM2) è impostato al valore ‘1’. Per il collegamento PROX+F/G-modem deve essere utilizzato un cavo a 5 fili come descritto al § 2.4.11. Il valore x che segue il comandi ‘S0’ provvede ad impostare il modem affinchè risponda automaticamente ad una chiamata in arrivo dopo il numero di squilli definito (‘0’..’9’, ‘0’=risposta automatica disattivata). L’ultimo comando inviato al modem (AT&W&W1) causa la registrazione permanente della configurazione nella memoria del modem stesso. In questo modo, l’operazione di configurazione fin qui descritta può essere eseguita ‘una tantum’ oppure solo quando si desidera modificare la configurazione attuale del modem. USO DEL TERMINALE 45 Al termine della configurazione, se è stata modificata la gestione dell’handshake, affinchè la nuova impostazione abbia effetto, occorre effettuare un “restart” del terminale. 3.3.8 Attivazione di funzioni opzionali del firmware L’ultima voce del menu, “Firmware key”, consente di attivare, previa richiesta di apposite chiavi firmware a TMC, uno o più moduli firmware opzionali per estendere le funzionalità del terminale. ATTENZIONE: solo i “bootloader” (cfr. Capitolo 7) r.14 o successivi (prodotti dopo il 09/12/2003) supportano la gestione delle chiavi di attivazione firmware. Inoltre si raccomanda di caricare sul terminale un firmware di base r.74 o successivo prima di procedere all’attivazione. Si noti anche che alcune funzionalità (ad esempio la gestione dei lettori con uscita “Wiegand” o dei modem GSM) richiedono anche il caricamento di una versione speciale del firmware di base OLTRE alla relativa chiave di attivazione. 3.3.8.1 Richiesta delle chiavi di attivazione firmware a TMC Per richiedere le chiavi di attivazione firmware è necessario specificare le seguenti informazioni per ogni terminale di cui si vogliono estendere le funzionalità: 1. Codice prodotto 2. Numero di serie 3. Identificatore unico del terminale 4. Lista delle chiavi di attivazione firmware richieste Codice prodotto e numero di serie Il codice prodotto (o part number, p/n) ed il numero di serie (o serial number, s/n) sono stampati su una stessa etichetta, di cui si possono trovare due copie: una è situata all’interno dell’involucro metallico dei terminali PROX+F/G o sotto la staffa di fissaggio dei terminali TRAX+F/G, mentre la seconda si trova sulla scatola di cartone con cui il terminale è stato consegnato. Identificatore unico del terminale L’identificatore unico del terminale (o ID) è un numero esadecimale di 10 cifre memorizzato all’interno del terminale. Vi si può risalire in due modi diversi: • Selezionare la voce “Firmware Key” nel menu di gestione interattiva del terminale. L’identificatore unico viene mostrato sul display, ad esempio: ID (press key) 47:70:DB:33:B0 • Solo per i terminali TRAX+F/G: inviare al terminale il comando “////h” . Il terminale risponde con una stringa le cui ultime 10 cifre esadecimali rappresentano l’identificatore unico, ad esempio: 00:04:24:47:70:DB:33:B0 Lista delle chiavi di attivazione firmware richieste E’ possibile attivare uno o più moduli firmware, la lista delle relative chiavi di attivazione è la seguente: USO DEL TERMINALE Terminale Chiave Firmware (FWK) Descrizione 940 Prox+F FWK04_HID Transcodifica lettori “HID” con uscita “Clock&Data” (*) FWK05_WIEGAND Gestione lettori con uscita “Wiegand” (*) 943 Prox+G FWK07_GSM Gestione modem GSM (*) 927 Trax+F/G FWK01_ETHERNET Abilitazione comandi di shell via Ethernet FWK02_MAXMASTER Abilitazione modi “master” Net92 FWK03_N92GATEWAY Gestione sottorete Net92 via Ethernet FWK04_HID Transcodifica lettori “HID” con uscita “Clock&Data” (*) FWK05_WIEGAND Gestione lettori con uscita “Wiegand” (*) FWK07_GSM Gestione modem GSM (*) 942 Prox+F 941 Prox+G 928 Trax+G 46 (*) = richiedono anche il caricamento di una versione speciale del firmware di base, da effettuare prima di inserire la chiave di attivazione, secondo le modalità descritte al § 7.1. 3.3.8.2 Inserimento della chiave di attivazione firmware Ogni chiave è un numero di 16 cifre esadecimali (ad es. A86BFC5ADCFFFFFF), ed è valida solo per il terminale il cui identificatore unico è stato usato per generarla. Una volta che TMC vi ha fornito la chiave (e solo dopo aver caricato l’eventuale versione speciale del firmware di base, per le funzionalità che lo richiedono), è necessario inserirla nel terminale: selezionando la voce “Firmware Key” nel menu di gestione interattiva del terminale, l’identificatore unico viene mostrato sul display, come descritto al § 3.3.8.1. Premendo un qualunque tasto, appare una schermata del genere: Flag (press FE:FF:FF:FF key) Queste 8 cifre esadecimali corrispondono a 32 flag bit che descrivono quali moduli firmware sono attualmente attivati (se un bit è uguale ad uno significa che il relativo modulo firmware non è attivato). Premendo ancora un qualunque tasto, il display mostra: Insert key ________________ A questo punto inserite la chiave di attivazione usando la tastiera e alla fine confermate premendo il tasto (l’inserimento abortisce automaticamente dopo circa 12 secondi di inattività): la modalità di inserimento delle lettere ‘A’..’F’ e delle cifre ‘0’..’9’ nei prompt alfanumerici (come questo) è descritta al § 6.2.2 (è anche possibile, durante questo prompt, inviare il comando “%E{14}Kfirmwarekey{255}”, dove {14} e {255} rappresentano i singoli caratteri ASCII chr(14) e chr(255), e il campo firmwarekey va rimpiazzato dalla chiave di attivazione). Se la chiave è valida ed è stata inserita correttamente, il display mostrerà il seguente messaggio (in caso contrario sarà necessario effettuare nuovamente l’operazione): Key valid! N.B. L’attivazione di un modulo firmware è un’operazione irreversibile: la relativa chiave può essere cancellata solo presso il centro assistenza della TMC. USO DEL TERMINALE 3.4 47 Struttura del codice di un badge Un’ installazione di terminali è generalmente progettata per gestire un gruppo di utenti limitato, tipicamente i dipendenti di una azienda. Si può quindi presumere che i badge degli utenti (solitamente codificati in modo standard) abbiano tutti una parte di codice comune che ne permette la discriminazione rispetto a quelli estranei all’azienda. Questa parte del codice, che possiamo chiamare “chiave di sistema”, è identificata da una posizione fissa, all’interno del badge, e da un contenuto particolare. Sul terminale il controllo della chiave di sistema è abilitato attraverso il parametro 41-BadgeSys, che identifica la posizione iniziale della chiave di sistema. La stringa che costituisce la chiave di sistema vera e propria, lunga al massimo 9 caratteri, è specificata invece dal parametro 91-BadgeKey. Per i badge magnetici e barcode solo numerici, i caratteri di BadgeKey devono essere solo numerici. Per i barcode in standard Code39, i caratteri di BadgeKey possono essere alfanumerici. Se il parametro 41-BadgeSys è lasciato a zero, il codice di sistema non verrà controllato. La parte che caratterizza individualmente ogni singolo badge, e che deve essere gestita nelle transazioni, è il cosiddetto codice personale; la posizione e lunghezza di quest’ultimo, all’interno del badge, sono individuate rispettivamente dai parametri 42-BadgeCod e 43-BadgeLun. Il codice personale deve essere costituito da soli caratteri numerici. Attenzione: per il codice personale, la posizione iniziale nel badge, è la zero. Nel caso si utilizzi un lettore di badge esterno, collegato via RS232, è previsto che la posizione del codice personale possa essere diversa da quella considerata nel parametro 42; esiste quindi un parametro specifico: 61-AuxBdgNum. La chiave di sistema presente nei codici ricevuti attraverso questi lettori ausiliari può essere controllata impostando correttamente il valore del parametro 62-AuxBdgSys. Nelle applicazioni standard di rilevazione presenza e controllo accessi il terminale controlla sempre il codice di sistema (se questo controllo è abilitato) ed estrae sempre il codice personale. Nelle transazioni programmabili dall’utente, e in quelle on-line, questo filtro è attivabile o meno ad ogni singolo inserimento (prompt con il flag C, cfr. § 6.2.1). 3.5 Rilevazione presenze La parte di configurazione della rilevazione presenze concerne l’aspetto del display, i dispositivi di lettura (eventualmente connessi tramite i canali di comunicazione seriale COM1 o COM2), il formato delle tessere riconosciute e dei dati da memorizzare, la possibilità di introdurre codici causali ad una oppure a due cifre. Altre possibilità, in rilevazione presenze, sono attivate mediante il caricamento dei file WMSG, PRSTAT, EXITCODS, EXITFKEY, AXGROUPS (Cfr. § 5.7.2 e § 5.7.3). 3.5.1 Formato di visualizzazione di orario e data Tramite il parametro 01-TimeFmt si determina il formato delle informazioni visualizzate nella parte alta del display (orario e data). Il valore ‘3’ (default per il parametro 01) fa mostrare sul display ora e minuti senza i secondi, il giorno della settimana, e la data in formato giorno/mese (GG/MM). Sui display alfanumerici 2x16 e 4x20 la schermata appare così: 12:05 esce-> Mar 15/06 <-entra Sul display del PROX+G, invece, la schermata è la seguente (le tre icone sul bordo destro del display sono A , B C ): e associate, rispettivamente, ai tasti funzione USO DEL TERMINALE 48 12:05 Mar 15/06 Sui display del TRAX+G, infine, la schermata è la seguente: 12:05 Mar 15/06 Si veda al § 8.1.2 come fare per cambiare a proprio piacimento le icone dei terminali con display grafico nell’applicazione di rilevazione presenze. Il valore ‘1’ fa mostrare sul display l’orario completo di secondi, assieme al giorno della settimana e al giorno del mese (GG), come nel seguente esempio: 12:05:08 esce-> Mar 15 <-entra Il valore ‘2’ fa mostrare sul display l’orario con i secondi e la data in formato GG/MM: 12:05:08 esce-> 15/06 <-entra N.B. Sul display 4x20 la visualizzazione nei casi di parametro 01-TimeFmt a ‘1’ o ‘2’ è la stessa, e prevede l’orario completo di secondi, il giorno della settimana e la data in formato GG/MM: 12:05:08 esce-> Mar 15/06 <-entra N.B. La dimensione del carattere utilizzato per l’orario non consente di mostrare i secondi sul TRAX+G (per il quale quindi i valori del parametro 01-TimeFmt ‘1’ e ‘2’ non hanno effetto, e anzi causano un degrado delle prestazioni: si raccomanda pertanto di mantenere il valore di default ‘3’, l’unico effettivo), mentre sul PROX+G ciò è possibile ma fortemente sconsigliato, in quanto il refresh del display ogni secondo comporta uno “sfarfallio” continuo (comunque, come nel caso del display 4x20, i valori ‘1’ e ‘2’ sono equivalenti, con l’orario completo di secondi, il giorno della settimana e la data in formato GG/MM). Se il parametro 01 ha valore ‘1’ ‘2’ o ‘3’, nel record registrato sul file di registrazione dei passaggi avvenuti PREammgg è comunque inclusa la registrazione dei secondi. Se sommiamo ‘10’ al valore corrente del parametro 01, le visualizzazioni suddette non cambiano rispetto a quelle relative ai valori ‘1’, ‘2’ o ‘3’, ma sul file non sono memorizzati i secondi, consentendo il risparmio di un byte per ogni record registrato (i file di presenze sono registrati in forma impaccata - packed, ovvero due cifre per ogni byte). Se invece sommiamo ‘16’ al valore corrente del parametro 01, cambia soltanto il formato della data, che viene viene visualizzata nel formato americano MM/GG invece dello standard GG/MM. Analogamente, sommando ‘32’ la data viene visualizzata nel formato tedesco GG.MM.AA, comprensivo dell’anno corrente (ciò è possibile, per motivi di spazio, solo sui terminali con display grafico). USO DEL TERMINALE 49 Infine, sommando ‘128’ al valore corrente del parametro 01, l’orario viene visualizzato nel formato 12 ore AM/PM invece che nel formato standard 24 ore, come negli esempi seguenti: 12:05p esce-> 12:05 Mar 15/06 <-entra pm Mar 15/06 Il parametro 02-DirMode determina l’aspetto dell’ultima linea del display, il meccanismo di attribuzione della direzione di entrata o uscita alla lettura effettuata tramite badge (magnetico o barcode) e, solo in caso di D . Questo parametro specifica inoltre PROX+G, la visualizzazione dell’icona associata al tasto funzione se è previsto l’uso di un dispositivo esterno di acquisizione del codice personale, connesso tramite i canali di comunicazione seriale asincrona RS-232 COM1/COM2. Quando il parametro 02 ha valore ‘0’, la direzione di passaggio è considerata fissa in USCITA e sull’ultima linea del display appare il contenuto del parametro 93-Company (ad esempio il nome dell’azienda o un messaggio di saluto); tutti i passaggi verranno registrati con direzione/causale uguale a ‘0’ (sempre che non siano stati abilitati i codici causale ad inserimento manuale). Il valore ‘6’ ha lo stesso effetto sul display ma la direzione di passaggio è considerata fissa in ENTRATA; tutti i passaggi verranno registrati con direzione/causale uguale a ‘1’ (sempre che non siano stati abilitati i codici causale ad inserimento manuale). Se il parametro 93-Company, ad esempio, contiene la stringa “ACME S.p.A.”, sui display alfanumerici 2x16 e 4x20 la schermata appare così (NB: Nel caso di display 4x20, se il parametro 93-Company non è vuoto il suo contenuto viene visualizzato a partire dalla terza riga del display, indipendentemente dal valore del parametro 02, si veda la descrizione del parametro 93-Company per i dettagli): 12:05 Mar 15/06 ACME S.p.A. Sui display grafici di PROX+G e TRAX+G, invece, la scritta viene automaticamente centrata: 12:05 Mar 15/06 ACME S.p.A. 12:05 Mar 15/06 USO DEL TERMINALE 50 ACME ACME S.p.A. Con un valore del parametro 02 compreso tra ‘1’ e ‘3’ il terminale accetta il badge strisciato in entrambi i versi, ma l’effetto entrata/uscita è determinato dallo stato del terminale (che sui display alfanumerici 2x16 e 4x20 viene indicato sul display con tre possibili grafie corrispondenti ai valori del parametro): 12:05 Mar [<- 15/06 12:05 Mar ->] 15/06 12:05 Mar 15/06 <entrata> In caso di PROX+G e TRAX+G, invece, è disponibile una sola icona per l’entrata ed una per l’uscita, quindi il display ha lo stesso aspetto per tutti i valori del parametro 02 compresi tra ‘1’ e ‘3’ (in caso di PROX+G, D ): inoltre, con questi valori viene visualizzata anche l’icona associata al tasto funzione 12:05 Mar 15/06 12:05 Mar 15/06 Con un valore del parametro 02 compreso tra ‘1’ e ‘3’, il terminale attribuisce la direzione alla lettura automaticamente in base a quattro fasce orarie, delimitate dagli orari specificati nei parametri 04-RevDir1, 06RevDir2 e 08-RevDir3. Il primo intervallo di tempo, da mezzanotte all’orario del parametro 04, predispone il terminale ai passaggi in ENTRATA, il secondo intervallo, dall’orario del parametro 04 a quello di 06, predispone ai passaggi in USCITA (tipicamente per le pause di mezzogiorno); il terzo intervallo, dall’orario del parametro 06 a quello del 08, sarà di nuovo in ENTRATA (pomeridiana), e infine, dall’orario del parametro 08 a mezzanotte, predispone ancora per l’USCITA. (commuta la direzione La direzione automaticamente attribuita può essere commutata mediante il tasto F solo per la prossima lettura) o la sequenza (commuta la direzione per tutte le successive letture). USO DEL TERMINALE 51 Quando il parametro 02 assume i valori ‘4’ o ‘5’ l’attribuzione della direzione di passaggio è determinata solo dal verso di strisciamento della tessera nel lettore. Come mostrato sul display, con il valore ‘4’ (default per il parametro 02) l’entrata avviene strisciando il badge da destra verso sinistra (e si esce verso destra), viceversa si entra strisciando verso destra col parametro 02=5. 12:05 esce-> Mar 15/06 <-entra 12:05 Mar 15/06 entra-> <-esce Solo per quanto riguarda il PROX+G, sommando 128 al valore corrente del parametro 02 il terminale D visualizza in ogni caso l’icona associata al tasto funzione (con i consueti valori 0, 4, 5, e 6 tale icona non viene mostrata), ad esempio il valore 132 (4+128) ha come effetto la seguente schermata: 12:05 Mar 15/06 Il parametro 71-AuxDir invece consente di determinare se la direzione di passaggio (entrata o uscita) per un lettore barcone, magnetico o di prossimità addizionale (collegato al connettore RJ11 o al connettore strip secondario, oppure ancora a COM1/COM2) debba essere uguale o opposta a quella selezionata per il lettore principale (valori ‘0’ o ‘4’ rispettivamente). Questa opzione può essere utile ad esempio nel caso in cui il terminale ed il lettore secondario siano situati uno all’esterno ed uno all’interno di un ambiente protetto. Dopo una lettura valida, il terminale generalmente visualizza un messaggio indicante il verso di lettura e comunque simile al seguente, se il codice personale ha lunghezza minore o uguale a 10 caratteri (par. 43BadgeLun): 12:05 Mar 15/06 entra:000001 Qualora invece il codice personale abbia lunghezza superiore a 10 caratteri, sara‘ mostrato un messaggio simile al seguente: 12:05 Mar 15/06 [<-000001000002 NB: Se viene implicitamente selezionata una direzione fissa (par. 02-DirMode = ‘0’, ‘6’), e se non viene associata la direzione opposta ad un lettore ausiliario (cioè se i bit 0, 1, 2 del par. 71-AuxDir sono tutti a ‘0’), allora viene visualizzato soltanto il codice personale, senza l’indicazione della direzione: 12:05 Mar 15/06 000001 USO DEL TERMINALE 52 3.5.2 Inversione del verso di lettura dei badge Nel caso di badge codificati con un codice a barre non esiste uno standard che determina la posizione e la direzione di stampa del codice. In generale il codice puo’ essere stampato (o applicato) in una certa posizione anche capovolto, non permettendo quindi al terminale di determinare l’effettivo verso di lettura. Il terminale puo’ usare l’informazione relativa al verso di lettura per discriminare le timbrature di entrata da quelle di uscita: è quindi importante potere usare badge con barcode stampato nel modo piu’ comodo o eventualmente gia‘ esistenti. Un discorso analogo vale per i badge magnetici, che però non possono essere codificati in modo inverso rispetto allo standard: potrebbe comunque essere necessario installare il lettore magnetico interno in modo inverso. Il parametro 70-BCMGRevs permette di gestire i casi di inversione nella stampa dei badge barcode e nel montaggio dei lettori magnetici rispetto allo standard del terminale. Il bit 0 del parametro influenza il verso di lettura dei barcode, mentre il bit 1 influenza il verso dei badge magnetici. 3.5.3 Abilitazione di lettori addizionali esterni su RS232 Se il parametro 02-DirMode è aumentato di 10 o 20 rispetto al valore corrente, sono accettati anche codici ricevuti rispettivamente attraverso i canali di comunicazione seriale asincrona COM1 o COM2. Questa possibilità è utilizzata di solito con sistemi di identificazione automatica che effettuano la lettura del supporto contenente l’informazione, la decodificano e quindi trasmettono l’informazione su una linea di comunicazione seriale. In questa configurazione è di solito necessario impostare anche il parametro 61AuxBdgNum che permette di specificare una posizione di codice personale, all’interno del codice ricevuto, diversa da quella specificata nel parametro 42, che è invece relativa ai codici letti e decodificati dal terminale. Il parametro 71-AuxDir consente fra l’altro di determinare il verso del passaggio (entrata o uscita) per i codici ricevuti da COM1, COM2. 3.5.4 Controllo validità del badge Altri parametri che influenzano il comportamento del terminale in rilevazione presenze sono quelli relativi al controllo di validità del codice della tessera e della parte di codice da memorizzare - parametri 40, 41, 42, 43 & 91, illustrati nel § 3.4. Controlli vincolanti sulla singola tessera possono essere impostati abilitando le funzioni di controllo accessi (parametro 44 e file AXCARDS, AXPOOL e AXTIMET, cf. § 3.6). Questo normalmente comporta l’attivazione di un relè, che può essere evitata impostando il bit 5 del parametro 58 a ‘1’ (cf. § 5.6.1). 3.5.5 Visualizzazione codice badge Il parametro 03-ShowBadge determina il tempo di visualizzazione del codice del badge al momento della lettura, espresso in ottavi di secondo (Es. il valore ‘16’ mostra il codice personale del badge per due secondi). La visualizzazione viene disabilitata quando il parametro ha valore ‘0’. 3.5.6 Gestione ora legale e solare Se desiderate che il terminale gestisca automaticamente il cambio dell’ora legale e solare, occorre impostare i parametri 50-SummerTim e 52-WinterTim, ambedue inizializzati di default alla data non valida 99/00. Se impostate con date valide, una volta superata ognuna di esse, il terminale carica nei corrispondenti parametri una data non valida: ricordatevi quindi di reimpostarle per l’anno seguente. Se i parametri sono inizializzati col valore ‘88/00’, alle ore 00:00 dell’ultima domenica di marzo e di ottobre, il terminale imposta automaticamente le date di inizio e fine ora legale. Affinchè ciò accada, naturalmente occorre mantenere il terminale alimentato e acceso anche durante la notte, o almeno dalle 23:59 alle 03:00 di ogni giorno. 3.5.7 Registrazione su file e controllo memoria piena Normalmente il parametro 45-RecAccess deve essere impostato ad un valore diverso da 0, altrimenti il terminale non creerà i file giornalieri di rilevazione presenze/controllo accessi. Controllate che il parametro 59-FreeMode sia impostato al valore desiderato (il valore di default è ‘0’, che causa il blocco della registrazione dati quando la memoria è piena), in modo ad esempio da evitare la comparsa di qualsiasi messaggio al riempimento della memoria dati. Ricordiamo che il file-system del terminale si può riempire a causa di due motivi distinti: USO DEL TERMINALE 53 1) lo spazio disponibile è esaurito (il comando di shell “SPACE” restituisce il valore “000000”). 2) il terminale cerca di creare un nuovo file (ad esempio un nuovo file PRExxxxx alla mezzanotte) in un drive che ne contiene già 62 (TRAX+F/G #927 e #928, PROX+F/G) oppure 96 (TRAX+G #929). I file giornalieri (PRExxxxx, PFxxxxx, ecc.) sono creati automaticamente nel drive logico con identificativo piu‘ alto (drive A in caso di TRAX+F/G o PROX+F/G senza RAM-Card, drive B in caso di PROX+F/G con RAM-Card avente capacita‘ massima di 512 KB, drive C se RAM-Card con capacita‘ di 1 MB). Quando è installata una RAM-Card con capacita‘ di 1 MB, il PROX+F/G registra i dati sul drive C; quando questo si è riempito, passa automaticamente a registrare dati sul drive B. 3.5.8 Controllo di gruppo Un ulteriore livello di selezione dei badge letti può essere attivato caricando sul terminale il file AXGROUPS. Quando questo file è presente, il terminale verifica che almeno uno dei codici del file corrisponda alla prima parte del codice personale estratto dal badge. Questo controllo viene comunque effettuato dopo l’eventuale verifica del codice di sistema. Il file AXGROUPS ha record di lunghezza variabile, ognuno dei quali non deve essere più lungo della lunghezza del codice personale estratto dal badge (valore del parametro 43-BadgeLun). Questo file può essere usato per abilitare solo una parte delle tessere, identificando dei gruppi o, al limite, definendo per intero tutte le tessere abilitate. 3.5.9 Black List di gruppi Se il parametro 44-Access vale ‘2’ il file AXGROUPS viene usato come black-list, cioè le tessere con codice che hanno riscontro in questo file sono considerate non valide. Questo tipo di utilizzo del file AXGROUPS non è compatibile con le funzioni più specifiche di controllo accessi, abilitate da valori superiori del parametro 44; il relè è però attivato ad ogni passaggio valido. 3.5.10 Visualizzazione dati di presenza e messaggi personali Per abilitare la visualizzazione di messaggi da mostrare al momento della lettura di un certo badge, è sufficiente caricare sul terminale il file WMSG. Ogni linea di questo file deve iniziare con il codice personale dell’utente al quale è destinato il messaggio e proseguire quindi con il prompt da mostrare. Questo prompt non è da usare per richiedere dati all’utente, ma permette di visualizzare informazioni per l’utente (nome, cognome, ecc.), oppure di specificare comandi ‘%’ (Cfr. § 6.3), utilizzabili per chiudere relé, stampare testi, lanciare procedure definite dall’utente (simulando la pressione di un tasto funzionale - vedere comando “%K” al § 6.3), ecc. Possono esistere piu’ messaggi aventi lo stesso codice (saranno mostrati in sequenza), ed è anche possibile inserire all’interno del codice uno o più caratteri “_” (“underscore” o chr(124)), che funzionano come caratteri jolly, cioè valgono per qualunque cifra nelle rispettive posizioni. Un altro file che ha lo stesso formato di WMSG è PRSTAT. Il suo scopo è specificamente quello di contenere i dati consuntivi dell’elaborazione dei dati di presenza degli utenti (ore lavorate normali, straordinari, permessi, ferie ecc.). Puo’ anche essere usato per fornire informazioni di qualsiasi altro tipo, indirizzate a persone specifiche, e mostrate solo su richiesta dell’utente stesso. Per visualizzare i messaggi contenuti in PRSTAT, l’utente deve premere il tasto funzione sono abilitati i codici causale) e quindi strisciare il proprio badge. A (due volte se È chiaro che questa funzione sara’ disponibile solo se il programma di rilevazione/ gestione presenze sul computer che raccoglie i dati provvede a preparare e a mantenere aggiornato sul terminale il contenuto del file PRSTAT. A ; il valore ‘0’, disabilita la Il parametro 63-A_mode controlla il comportamento del tasto funzione visualizzazione dei dati di presenza e dei messaggi eventualmente presenti nel file PRSTAT, mentre il valore A ‘2’ sposta queste funzioni dal tasto a B (utile ad esempio se si desidera associare una transazione A ). Sommando il valore ‘4’ ad uno dei valori precedenti, la funzione di utente al tasto funzione ? (solo PROX+F/G), mentre visualizzazione dei dati di presenza è replicata sul tasto funzione sommando il valore ‘32’, la funzione di visualizzazione dei dati di presenza è replicata sul tasto funzione D . Se ad esempio A_mode è impostato a ‘1’ (default per il par. 63) e non è presente il file PRSTAT, premendo il A , il display mostra temporaneamente il messaggio tasto USO DEL TERMINALE 54 DATI DI PRESENZA passa il badge Dopo avere strisciato il badge (in alternativa è anche possibile introdurre il codice personale dell’utente per mezzo della tastiera, si vedano le possibili varianti ottenibili sommando ‘8’ al valore del parametro 63A_mode), in caso di display 2x16, la prima riga del display mostra la data (a partire da quella corrente) cui si riferiscono le timbrature visualizzate in sequenza, una alla volta, sulla seconda riga, complete di orari e versi di passaggio relativi a quel badge. Nota: quando il terminale è configurato come “master” controllo accessi col parametro 18-NETMode=6 (cfr. §5.2), in fase di revisione dei dati di presenza è possibile visualizzare anche i passaggi effettuati su tutti i terminali “slave” aventi indirizzo NET92 minore o uguale al valore impostato nel parametro 57-Listing; poiché il valore di default di tale parametro è ‘0’, normalmente vengono visualizzate solo le timbrature effettuate sul terminale “master” (utile se il “master” controllo accessi viene usato anche per la rilevazione delle presenze in locale). Se non è stato effettuato nessun passaggio in corrispondenza della data attualmente visualizzata, la seconda riga rimane vuota. Sempre sulla prima riga (all'estrema destra) è mostrato un contatore ciclico (1..9) che consente di valutare il numero delle timbrature effettuate, e che in corrispondenza dell’ultima timbratura relativa alla data attualmente visualizzata si trasforma poi in una freccia verso sinistra. Mar 15/06 esce: 12:05 1 Durante la revisione dei dati di presenza, i tasti e provocano rispettivamente la visualizzazione dei dati di presenza dei giorni precedenti e successivi. Il tasto (disponibile solo in caso di PROX+F) fa fa ricominciare da capo la visualizzazione dei passaggi del giorno attualmente visualizzato. Il tasto visualizzare il prossimo record, accelerando la fase di revisione. La pressione di un qualsiasi altro tasto fa interrompere la funzione di visualizzazione dei dati di presenza, che termina comunque per timeout qualche secondo dopo che è stato mostrata l’ultima timbratura del giorno attualmente visualizzato. Nel caso in cui siano abilitati i codici causale (cfr. § 3.5.11) l’aspetto della seconda riga del display è diverso in corrispondenza delle timbrature per le quali sia stata inserita la causale. Se la direzione di passaggio viene sostituita dalla causale (a 1 o 2 cifre), la schermata è del tipo: Mar 15/06 cod:23 12:05 1 Se invece la direzione di passaggio viene registrata separatamente dalla causale a 2 cifre si vedrà: Mar 15/06 esce: 12:05 1 23 In caso di display 4x20, in fase di revisione dei passaggi vengono mostrate fino a sei timbrature giornaliere per schermata invece che una sola, con a fianco la direzione indicata dalla cifra 0 (uscita) o 1 (entrata) oppure la causale se specificata. In questo caso il contatore ciclico (1..9) indica il numero della schermata e appare solo se alla data attualmente visualizzata sono state effettuate almeno 6 timbrature con quel badge, altrimenti appare solo la freccia verso sinistra: Mar 15/06 12:01 0 12:03 1 12:05 23 12:02 12:04 1 1 Sul display grafico del PROX+G, invece, in fase di revisione dei passaggi per ogni schermata vengono mostrate fino a 32 timbrature su un massimo di 8 giorni, disposte a 4 per riga seguendo l’ordine entrata/uscita/entrata/uscita per evidenziare le timbrature non effettuate o le timbrature consecutive con la stessa direzione, ad eccezione del caso par. 02-DirMode = 0, 6 e 71-AuxDir = 0, in cui non c’è l’indicazione USO DEL TERMINALE 55 della direzione e le timbrature sono tutte una di seguito all’altra. In alto a sinistra compare il codice personale dell’utente, mentre non è presente alcun contatore ciclico. La prima schermata comincia dalla data corrente e mostra anche i giorni successivi ancora privi di timbrature, come nell’esempio seguente: Cod:000001 1506 1606 1706 1806 1906 2006 2106 2206 Ma Me Gi Ve Sa Do Lu Ma entra ____ exit 1205 entra exit Durante la revisione dei dati di presenza, i tasti e provocano rispettivamente la visualizzazione dei dati di presenza dei giorni precedenti e successivi a quelli mostrati nella schermata corrente (ogni schermata comincia dall’ultimo giorno mostrato nella schermata precedente). Se vi sono schermate non vuote successive a quella corrente, in basso a destra compare il simbolo “>”. La pressione di un qualsiasi altro tasto fa interrompere la funzione di visualizzazione dei dati di presenza, che termina comunque per timeout dopo qualche secondo di inattività. L’esempio seguente mostra alcuni casi di utilizzo dei codici causale (cfr. § 3.5.11): Cod:000001 0906 Me 1006 Gi 1106 Ve 1206 1306 1406 1506 Sa Do Lu Ma entra exit entra 0930-34 1230 1400 0830 1130-45 exit 1800 0830 1230 1800-56 1900 1400 ____ 0830 ____ 1400 1800 1230 1205 > L’utente con codice 000001 il giorno 09/06 è entrato alle 09:30 invece che alle 08:30 avendo chiesto un’ora di permesso (causale 34); il giorno 10/06 è uscito alle 11.30 per una trasferta (causale 45) senza più rientrare; il giorno 11/06 ha lavorato regolarmente fino alle 18.00, quando ha iniziato un’ora di straordinario (causale 56) conclusasi alle 19.00. In caso di TRAX+G, la filosofia è la stessa ma le dimensioni ridotte del display consentono di visualizzare solo fino a 8 timbrature su un massimo di 4 giorni, disposte a 2 per riga seguendo l’ordine entrata/uscita, come mostrato nelle seguenti schermate di esempio, ad eccezione del caso par. 02-DirMode = 0, 6 e 71-AuxDir = 0, in cui non c’è l’indicazione della direzione e le timbrature sono tutte una di seguito all’altra: Cod:000001 entra 1506 Ma ____ 1606 Me 1706 Gi 1806 Ve exit 1205 USO DEL TERMINALE Cod:000001 entra 1306 Do 1406 Lu 0830 1400 1506 Ma ____ 56 exit 1230 1800 1205 > Se invece A_mode è impostato a ‘1’ (default per il par. 63) ed è presente il file PRSTAT, dopo avere premuto il A tasto e strisciato il badge, il terminale richiede di specificare il tipo di informazioni desiderate dall’utente A:Giornalieri B:Generali A Premendo il tasto funzione si ottengono le informazioni relative alle presenze giornaliere, mentre con B sono visualizzati i messaggi contenuti in PRSTAT che hanno come destinatario il possessore del badge. 3.5.11 Abilitazione dei codici causale Sono previste due modalità di inserimento di un codice causale del passaggio, quando questo sia diverso dallo standard (causale di entrata/uscita). Le due modalità possono essere abilitate contemporaneamente. A Nel primo modo l’introduzione del codice causale viene richiesta dall’utente premendo il tasto funzione leggendo il proprio badge, e quindi digitando una o due cifre corrispondenti al codice richiesto. , Per abilitare questo metodo di introduzione è sufficiente assegnare al parametro di configurazione 60CauseMode un valore corrispondente al numero di cifre del codice causale (si consigliano sempre 2 cifre con direzione separata, valore 3). Quando è presente il file EXITCODS (che contiene una linea di testo per ogni causale descritta - Cfr. § 5.7.2) è possibile vedere sul display la descrizione della causale scelta. La presenza di questo file permette di scegliere come codice causale solo uno di quelli elencati nel file stesso. Nel secondo modo la causale è associata direttamente a uno dei tasti funzione B .. E ed F A .. F E F 1 9 eventualmente anche ed .. F . Alla pressione del tasto funzione appare la descrizione della causale scelta. Questo stato può essere temporaneo o stabile a seconda di come viene scritto il prompt (vedi oltre). Per attivare questo metodo è necessaria la presenza del file EXITFKEY. Il file EXITFKEY è composto da una coppia di linee di testo per ogni tasto funzione al quale si desidera associare una causale; nella prima linea deve apparire il codice causale da inserire nel record del file PREammgg (Cfr. § 5.7.2), e nella seconda il prompt (Cfr. § 6.2) da visualizzare alla pressione del tasto funzione corrispondente. È possibile fare funzionare queste selezioni in modo temporaneo aggiungendo in fondo ai prompt il comando ‘%’ di temporaneità (%Dn, cfr. § 6.3). Se per mezzo del parametro 60-CauseMode è stata abilitata l’introduzione di un codice causale, la prima A pressione del tasto funzionale attiva la richiesta di strisciare il badge: Leggere il badge (segue causale) Si consiglia comunque di abilitare sempre la causale standard separata di entrata/uscita (parametro 60CauseMode uguale a ‘3’): in questo caso la seconda linea dei display alfanumerici rimane uguale a quella mostrata nella schermata standard di rilevazione presenze (e determinata dal valore del parametro 02DirMode, cfr. § 3.5.1): (segue causale) entra-> <-esce USO DEL TERMINALE 57 In caso di display grafico, se il par. 60-CauseMode è uguale a ‘3’, tutte le scritte e le icone già presenti sullo schermo rimangono immutate poichè l’avviso “(segue causale)” viene inserito nello spazio ancora disponibile: 12:05 Mar 15/06 (segue causale) 12:05 Mar 15/06 (segue causale) Segue la richiesta di digitazione della causale del passaggio (una seconda pressione del tasto permette comunque di visualizzare i dati di presenza, Cfr. § 3.5.10): A Cod.causale:__ La digitazione del codice causale mostrerà la descrizione della causale stessa solo se è stato caricato il file corrispondente (“EXITCODS”). Solo in questo caso viene fatto un controllo di validità del codice causale. Se non sono previste le descrizioni delle causali è possibile introdurre qualsiasi codice causale, senza limitazioni (a una o due cifre in relazione al valore del parametro 60-CauseMode). Se l’operatore non passa il badge nel lettore, oppure non inserisce un codice causale entro un certo tempo, l’operazione viene annullata, Una possibilità ulteriore di indicare una causale di passaggio diversa dallo standard, consiste nell’utilizzo dei B .. E F o delle sequenze tasti funzione dopo avere caricato sul terminale il file EXITFKEY. A .. F E ed F 1 .. F 9 , In questo caso alla pressione di uno dei tasti funzione apparirà un messaggio predefinito che descrive la causale richiesta, ad esempio: 12:05 uscita Mar 15/06 servizio Attenzione: in tutti i casi, ed in modo particolare sui display grafici, la posizione e la formattazione di questo messaggio dipendono dai caratteri di controllo inseriti nei prompt caricati in EXITFKEY (vedi descrizione del file, § 5.7.2). La successiva lettura del badge verrà registrata con il codice causale preassegnato a quel tasto funzione. L’effetto della pressione del tasto funzione/causale vale sempre per la lettura di un solo badge: dopo la lettura, il terminale torna allo stato normale. È possibile che il terminale sia configurato in modo da attendere per un tempo limitato la lettura del badge, dopo la pressione di un tasto causale (questa possibilita’ non dipende da un parametro di configurazione ma dai prompt caricati in EXITFKEY, nei quali sia specificato un timeout di attesa - comando %Dt -Cfr § 6.3). USO DEL TERMINALE 3.5.12 58 Digitazione manuale del codice personale Questa opzione è disponibile solo in due casi: a) se il parametro 28-K_Mode è stato impostato a ‘1’ oppure b) se è abilitata l’introduzione di codici causali (a condizione che il parametro 63-A_mode abbia un valore inferiore a ‘16’). Nel caso a) la digitazione manuale del codice è intesa come una funzionalità standard del terminale (per esempio nel caso in cui per tutti o per alcuni utenti non si vogliano utilizzare dei badge), e prevede che sul terminale venga caricata una transazione utente chiamata PROC_K, che consente la digitazione del codice mediante un prompt di introduzione dati (Cfr. § 6.2). Tale prompt definisce anche il formato di visualizzazione della richiesta del codice e l’eventuale timeout di attesa. Per dettagli sul funzionamento e un esempio di PROC_K si veda la descrizione del parametro 28-K_Mode (Cfr. § 5.6.1). Nel caso b) la digitazione manuale del codice è intesa come un’eccezione (per esempio in caso di dimenticanza o smarrimento del badge), e deve essere autorizzata da una persona che deve strisciare il B proprio badge prima di fare digitare il codice, e viene attivata premendo il tasto dopo avere premuto A (cioè alla richiesta del badge seguito da causale). Registrazione senza badge Leggere il badge d’autorizzazione Assieme al codice digitato manualmente viene sempre richiesto anche il codice causale. Cod.personale :______ Cod.causale:_ Questo tipo di transazione produce sempre due record nel file di presenze (“PREammgg”): il primo con codice causale “9” (o “99” se sono abilitate le causali a due cifre) contiene il badge della persona che autorizza, il secondo contiene il codice digitato e la causale introdotta manualmente. Le entrate e uscite normali corrispondono ai codici causali “1” e “0” rispettivamente (oppure “10” e “00” nel caso di causali a due cifre). È sempre possibile annullare la transazione in corso con il tasto di cancellazione CLR o il tasto . La procedura di digitazione manuale del codice personale previa autorizzazione mediante badge altrui può essere disabilitata sommando il valore ’16’ al valore corrente del par.63-A_mode. 3.6 Controllo accessi L’applicazione di controllo accessi è una variante dell’applicazione di rilevazione presenze. Nella rilevazione presenze l’aspetto principale rimane la memorizzazione del passaggio effettuato, mentre nel controllo accessi è maggiormente significativa la verifica di validità del badge e quindi l’attivazione, o meno, del relè per aprire il varco controllato. In questo caso è possibile anche abilitare o disabilitare la registrazione degli accessi effettuati. Le funzioni di controllo accessi del terminale vengono attivate per mezzo del parametro di configurazione 44Access con valori diversi da zero e con il caricamento dei file AXCARDS, AXPOOLS, AXTIMET, AXGROUPS. USO DEL TERMINALE 59 Il parametro 45-RecAccess regola invece la memorizzazione del dato del passaggio: se ‘0’ non registra alcun dato relativo ai passaggi, ‘1’ registra tutti i passaggi validi (valore di default), ‘2’ memorizza anche le letture di badge non riconosciuti come validi in un file separato, NOTOKAX. Normalmente, in rilevazione presenze, il parametro 44 mantiene il valore ‘0’, nessun relè viene quindi attivato alla lettura di un badge valido. Con il parametro 44-Access impostato al valore ‘1’, ogni badge valido (secondo i criteri della rilevazione presenze, Cfr. § 3.5) causa l’attivazione del relè numero 1 per un tempo specificato dal parametro 30RelayDoor. Mediante il parametro 32-RelayExit (per default impostato ad ‘1’), è possibile attivare un relè differente per i passaggi che avvengono in uscita, ad esempio il relé 1 per l’entrata e il 2 per l’uscita (NB: in caso di TRAX+F/G, affinché ciò sia possibile, deve essere stata attivata la gestione dei relè remoti #909 TeleRelay, impostando il parametro 56-TeleRelay a ‘1’). Un valore del parametro 44-Access uguale a ‘2’ regola solo l’uso del file AXGROUPS (Cfr. § 5.7.3) considerato come black list. Se AXGROUPS non esiste, l’accesso è negato a tutti i badge. Se AXGROUPS esiste, l’accesso è negato ai soli badge appartenenti ai gruppi elencati in AXGROUPS stesso. Non è effettuato alcun controllo su AXCARDS. Un valore del parametro 44-Access uguale a ‘3’ consente di abilitare all’accesso i badge appartenenti ai gruppi presenti in AXGROUPS oppure elencati in AXCARDS (con in piu‘ gli ulteriori controlli attivati dall’eventuale presenza dei file AXPOOLS e AXTIMET). Il file AXGROUPS deve esistere (eventualmente vuoto), altrimenti il terminale non procede con i controlli su AXCARDS. Se il parametro 44 assume il valore ‘4’ viene controllata l’esistenza del file AXCARDS, e la presenza in quest’ultimo del codice personale estratto dal badge, con in piu‘ gli ulteriori controlli attivati dall’eventuale presenza dei file AXPOOLS e AXTIMET. Il file AXGROUPS non deve essere presente; in caso contrario, affinchè sia possibile effettuare l’accesso, occorre elencare in AXGROUPS tutti i gruppi di appartenenza dei badge elencati in AXCARDS. Se il parametro 44 vale invece ‘5’, AXGROUPS non deve essere presente e AXCARDS funziona come blacklist. L’accesso è negato a tutti i badge il cui codice personale è presente in AXCARDS. In questa modalità i file AXPOOLS e AXTIMET non sono usati. Se il parametro 44 è impostato al valore ‘6’, il funzionamento del controllo accessi è analogo a quello ottenuto col valore ‘5’ ma, dopo una lettura, ogni nuovo codice personale viene “appeso” nel file AXCARDS. In questo modo, essendo AXCARDS usato come black-list, il secondo tentativo di accesso di un badge otterrà esito negativo (modo “passaggi singoli”). Naturalmente occorre che l’host effettui una gestione accorta del file AXCARDS, ad esempio azzerandolo alla mezzanotte, oppure annullando i codici personali (ad esempio mediante comandi tipo “DBC”, Cfr. § 6.1.4) ai quali concedere un altro accesso, ecc. Di solito Il file AXGROUPS non è presente; in caso contrario può essere utilizzato per elencare i gruppi di badge abilitati alla modalita‘ ‘passaggio singolo’ descritta. Anche in questa modalità i file AXPOOLS e AXTIMET non sono usati. Sommando ‘16’ ai suddetti valori del parametro 44, quando il terminale è configurato come “master” controllo accessi (parametro 18-NETMode = ‘6’, ‘7’) gli eventuali controlli sui file AXGROUPS, AXCARDS, AXPOOLS e AXTIMET vengono eseguiti soltanto per i tentativi di accesso effettuati sui lettori slave, ma non per le letture effettuate in locale sul terminale master, che sono quindi considerate come semplice “rilevazione presenze”. Se il codice personale non è presente (in funzionamento normale) l’accesso non è considerato valido; quando invece il codice è presente deve contenere anche il “pool” di appartenenza, (Cfr. § 3.3.2) che viene controllato nel file AXPOOLS. NB: lo stesso codice personale può essere ripetuto più volte nel file AXCARDS, ed essere associato a diversi “pools”. La ricerca del codice prosegue sempre fino alla fine del file. Il file AXPOOLS è composto da un numero di stringhe - ciascuna di 6 caratteri - pari al numero di “pool” previsti (max 99). Se il “pool” specificato per una tessera non esiste, la tessera non è mai valida. Ognuna delle sei lettere del record del pool seleziona una delle 26 possibili fasce orarie descritte nel file AXTIMET. Il descrittore di una fascia oraria è un record che specifica un intervallo orario (ora/minuti di inizio e ora/minuti di fine) e la sua validità per i giorni feriali della settimana più quelli festivi. Affinché un badge sia valido occorre che almeno una delle fasce orarie specificate dal suo pool sia valida al momento della lettura. Non è necessario che tutti i sei caratteri del record di un pool siano lettere di fasce orarie esistenti. Se la fascia oraria (‘A’..’Z’) non esiste (Es. la lettera è ‘X’ ed il file ha solo dieci record), la tessera è considerata valida. Se invece, al posto di una lettera è presente un carattere il cui valore ASCII è inferiore ad “A” o superiore a “Z” (es: “-”, “0”=zero o “_”)la fascia corrispondente non è mai valida. USO DEL TERMINALE 60 Per la struttura esatta dei file si veda il relativo § 5.7.3. Dopo una lettura valida, il terminale generalmente visualizza un messaggio indicante il verso di lettura e comunque simile al seguente, se il codice personale ha lunghezza minore o uguale a 10 caratteri (par. 43BadgeLun): 12:05 Mar 15/06 entra:00001 Qualora invece il codice personale abbia lunghezza superiore a 10 caratteri, sara‘ mostrato un messaggio simile al seguente: 12:05 Mar 15/06 [ 000010000002 NB: Se viene implicitamente selezionata una direzione fissa (par. 02-DirMode = ‘0’, ‘6’), e se non viene associata la direzione opposta ad un lettore ausiliario (cioè se i bit 0, 1, 2 del par. 71-AuxDir sono tutti a ‘0’), allora viene visualizzato soltanto il codice personale, senza l’indicazione della direzione: 12:05 3.7 Mar 00001 15/06 Controlli aggiuntivi comuni a rilevazione presenze e controllo accessi Il parametro 68-PresMode consente di determinare alcuni dettagli di funzionamento del terminale in rilevazione presenze / controllo accessi: è infatti possibile abilitare/disabilitare il funzionamento del tasto di inversione della direzione entrata/uscita. Sempre tramite il parametro 68-PresMode è possibile fare in modo di evitare due letture dello stesso badge nello stesso minuto, o evitare che utenti inesperti effettuino letture multiple consecutive. In caso di errore, è comunque possibile effettuare una nuova lettura subito dopo avere premuto il tasto C . o il tasto di cancellazione LR Nel caso si utilizzino lettori ad inserimento, che quindi genererebbero la registrazione di un passaggio durante l’inserzione ed uno durante l’estrazione, è possibile abilitare la decodifica del badge nella sola fase di estrazione dal lettore. 3.8 Controlli aggiuntivi in controllo accessi Una volta attivata la gestione del Controllo Accessi, questa può essere affinata in modo da soddisfare la necessita‘ di controlli speciali. Il terminale consente di differenziare la gestione delle transazioni di ingresso e uscita, di attivare il controllo anti-passback e di controllare un codice segreto (PIN, Personal Identification Number) associato al codice personale del badge. Inoltre è possibile abilitare la lettura del badge in funzione dello stato delle linee di input digitali 1 e 2 (ad esempio quando occorre controllare l’effettiva presenza dell’utente su una pedana o per mezzo di un rilevatore biometrico). 3.8.1 Differenziazione fra ingresso e uscita Per quanto riguarda il controllo accessi, il bit 3 del parametro 68-PresMode può essere utilizzato per configurare il terminale in modo che consenta sempre il transito in uscita anche fuori fasce orarie; è sufficiente che il badge sia compatibile con le caratteristiche impostate per mezzo dei parametri 41, 91, 42 e 43. Il controllo può essere rafforzato consentendo l’uscita solo ai badge elencati in AXGROUPS/AXCARDS (parametro 44-Access con valore maggiore di ‘2’). 3.8.2 Il controllo anti-passback Il controllo anti-passback consiste in generale nel far sì che un badge il cui ultimo transito sia stato di “entrata” USO DEL TERMINALE 61 possa solo uscire, mentre un badge il cui ultimo transito sia stato di “uscita” possa solo entrare. Il controllo può essere impostato per mezzo del bit 5 del parametro 68-PresMode. Il bit 7 può essere impostato in modo che se per il badge letto non esiste nessuna registrazione nei vecchi file PRExxxxx, allora per tale badge è accettata solo la transazione di INGRESSO (si suppone che l’utente fosse fuori). Se il parametro 18-NETMode è stato impostato con il valore “6” o “7” tutti i controlli sono effettuati anche sugli eventuali lettori ‘slave’ #914 HotMAX o #916 EnTRAX collegati al terminale configurato come master di rete NET92. Il verso di un passaggio effettuato su uno ‘slave’ è determinato dal verso impostato nel file AXGATES. (Cfr. § 5.6.1per una descrizione dettagliata del parametro 18-NETMode). Nel caso di abilitazione dei codici causale in modalità ‘1’ o ‘2’ la direzione dell’ultimo passaggio viene ricavata dal bit meno significativo (parita‘) della prima cifra della causale. Ciò vuole dire che se la prima cifra della causale è pari equivale ad un’uscita, altrimenti ad un’entrata. Qualora i controlli impostati causassero il rifiuto della lettura, il display del terminale visualizza temporaneamente il messaggio 21:32 gia’ Mar 05/06 passato 3.8.3 Il controllo del PIN In Controllo Accessi, oltre a tutti i controlli impostabili principalmente per mezzo dei parametri 44-Access e 68PresMode, è possibile fare in modo che il terminale richieda all’utente anche un numero identificativo personale (PIN: Personal Identification Number) di quattro caratteri. Affinchè ciò avvenga è necessario impostare a ‘1’ sia il bit 0 sia almeno uno dei bit 1 e 2 del parametro 74-Security. Occorre che il parametro 44-Access sia impostato a ‘4’ e che in ogni record del file AXCARDS siano presenti il codice personale, il pool di appartenenza e i quattro caratteri numerici del PIN associato al codice personale. Se il bit 1 del parametro 74-Security è impostato a ‘1’, il terminale richiede il PIN al momento di una lettura effettuata in INGRESSO, mentre il bit 2 controlla la richiesta del PIN per le letture in USCITA. Solo in caso di PROX+F/G, il bit 4 abilita l’accettazione di un PIN di “accesso sotto minaccia”, che causa l’attivazione non solo del relé che viene normalmente usato in Controllo Accessi inserendo il vero PIN, ma anche del relé numero 3 del terminale, utilizzabile ad esempio per segnalare l’allarme in modo “silenzioso”. Il tempo di attivazione del relè è stabilito dal parametro 30-RelayDoor. Il PIN di “accesso sotto minaccia” è calcolato nel modo seguente: se l’ultima cifra del vero PIN è pari, questa va sostituita con la cifra di valore successivo; se l’ultima cifra è dispari, questa va sostituita con la cifra di valore precedente. Esempi: se il vero PIN è “1234”, il PIN di allarme diventa “1235”, “9999” diventa “9998”, “0001” diventa “0000”. Qualora il PROX+F/G sia collegato in modo ONLINE con un elaboratore, invece di utilizzare l’attivazione del relè 3 per pilotare un dispositivo di allarme, la si può utilizzare per pilotare a sua volta uno degli input digitali del terminale stesso (ad esempio Input3). Configurando opportunamente i parametri 65-InputCtrl, 69InputEdge, 33-InputMode e il parametro 38-Input3 è possibile far sì che il terminale trasmetta una segnalazione di allarme in tempo reale sul canale di comunicazione con l’elaboratore (ad esempio sulla NET92). Di conseguenza l’elaboratore può poi effettuare altre operazioni di attivazione allarmi, ecc. Il bit 5 del parametro 74-Security abilita l’attivazione del relè numero 3 del terminale qualora sia stato introdotto un PIN errato per tre volte consecutive. Il tempo di attivazione del relè è stabilito dal parametro 30RelayDoor. NB: nel TRAX+F/G questo bit ha effetto solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’. In questo caso, il TeleRelay che viene attivato in seguito all’introduzione di un PIN errato per tre volte consecutive è quello avente indirizzo ‘3’ (se presente). Il bit 6 abilita la richiesta di PIN solo durante le fasce orarie associate al pool ‘09’. Le transazioni di Controllo Accessi devono comunque sottostare ai controlli impostati mediante il parametro 44-Access e i file AXCARDS, AXGROUPS, ecc., mentre l’ulteriore controllo sul PIN è effettuato soltanto nei giorni e nelle ore associate al pool ‘09’. Se sono soddisfatte le condizioni per la richiesta del PIN, dopo la lettura di una carta, il terminale visualizza la richiesta: 08:19 Mar PIN:____ 10/10 Se l’utente introduce i quattro caratteri del PIN corretto, il terminale attiva il relè 1 come normalmente accade USO DEL TERMINALE 62 per il Controllo Accessi. Se l’utente non introduce i quattro caratteri richiesti entro una decina di secondi, il terminale ritorna alla videata principale di Rilevazione Presenze/Controllo Accessi. Una volta introdotto un PIN errato, se la seconda richiesta di PIN è lasciata andare in timeout, non è intrapresa nessuna azione. Se è introdotto un PIN errato per la seconda volta, una terza richiesta lasciata andare in timeout causa ugualmente l’attivazione del relè 3 di allarme (se il bit 5 del parametro 74-Security è impostato a ‘1’). Lo stesso effetto è ottenuto introducendo un PIN errato per tre volte di seguito. Se alla prima richiesta del PIN l’utente abbandona l’operazione premendo il tasto di cancellazione quando il prompt di richiesta è ancora vuoto, non è intrapresa nessuna azione. CLR C alla seconda richiesta del PIN causa l’attivazione del relè 3 di L’abbandono dell’operazione mediante allarme (se il bit 5 del parametro 74-Security è impostato a ‘1’), come se fossero stati effettuati TUTTI i tentativi. LR Una volta entrato in stato di allarme, il terminale non accetta piu‘ letture della stessa carta che l’ha causato; ad ogni lettura viene visualizzato il messaggio di errore 08:19 Badge Mar 10/10 non valido Per sbloccare questa situazione è necessario il passaggio di un’altra carta o un restart del terminale. 3.8.4 Abilitazione alla lettura in funzione dello stato delle linee di input 1 e 2 È possibile far sì che il terminale accetti una lettura di badge in funzione dello stato delle linee di input digitali 1 e 2 (quest’ultimo è disponibile sui TRAX+F/G solo in alternativa all’uso della porta RS232 COM1). Il controllo non è effettuato per le letture provenienti da lettori ‘slave’ aggiuntivi #914 HotMAX o #916 EnTRAX collegati al terminale configurato come master di rete NET92. Impostando il bit 2 del parametro 45-RecAccess a ‘1’ (equivalente ad aggiungere il valore ‘4’ ai tre valori principali 0, 1 e 2), il terminale accetta una nuova lettura in direzione di INGRESSO solo se la linea INPUT1 è attiva. Impostando il bit 3 del parametro 45-RecAccess a ‘1’ (equivalente ad aggiungere il valore ‘8’ ai tre valori principali 0, 1 e 2), il terminale accetta una nuova lettura in direzione di USCITA solo se la linea INPUT2 è attiva. 3.8.5 Specializzazione dei lettori “slave” Qualora il terminale sia configurato per operare come “Master” Controllo Accessi di un insieme di terminali aggiuntivi TMC #914 HotMAX o #916 EnTRAX connessi sulla rete NET92, è possibile specializzare ciascun lettore in modo da soddisfare le piu‘ sofisticate esigenze. Caricando il file AXGATES è possibile determinare il verso associato ad ogni lettore, identificato dal proprio indirizzo NET92 (1..31). Caricando il file AXTGATE è possibile definire quali “pool” sono abilitati ad utilizzare un determinato lettore ausiliario e in quali fasce orarie. Un lettore può quindi essere utilizzato da tutti i possessori di carte associati ad un determinato “pool”; per quanto riguarda le fasce orarie di abilitazione, è possibile fare riferimento ad un “pool” diverso. Ricordiamo che in questo caso occorre che siano presenti anche i file AXCARDS, AXPOOLS e AXTIMET. Per maggiori dettagli sulle strutture di questi file, Cfr. § 5.7.3. GESTIONE REMOTA 63 4 GESTIONE REMOTA 4.1 Introduzione Per gestione del terminale si intende l’insieme delle operazioni che si devono effettuare affinché quest’ultimo svolga correttamente il compito richiesto. La gestione remota si aggiunge a quella effettuabile attraverso la consolle e avviene attraverso le linee di comunicazione di cui il terminale è dotato. Per potere effettuare questa gestione è stato definito un set di comandi, riconosciuti dalla parte del “firmware” del terminale che possiamo chiamare “interprete comandi” (shell). I comandi riconosciuti permettono di modificare i parametri di configurazione del terminale, trasmettere e ricevere file, gestire il file system e permettono inoltre di passare alla modalità di controllo “ONLINE” del terminale stesso. La modalità in cui è possibile inviare i comandi senza con ciò interferire con l’attività della consolle, è chiamata “OFFLINE”. La modalità “CONSIDLE” permette invece di “congelare” la consolle facendole visualizzare il messaggio Terminale non disponibile Da questo momento potremo usare tranquillamente tutti i comandi disponibili, con la sicurezza che i dati dei file non possano cambiare durante le comunicazioni, in quanto non è possibile effettuare transazioni di rilevazione presenze, controllo accessi o transazioni definite dall’utente. Se il terminale è configurato come “master”, viene anche sospesa l’attivita‘ di gestione dei terminali connessi sul ramo NET92. Tutti i comandi possono essere trasmessi sia tramite i canali seriali COM1 o COM2 che tramite i canali RS485 NET92 o Ethernet. Alcune differenze tra COM1/2 e NET92 riguardano la generazione spontanea di messaggi da parte del terminale, come ad esempio i messaggi di “restart”, l’invio dell’identificativo dei tasti funzione privi della corrispondente transazione utente e gli eventi generati dagli input digitali che generano eventi di trasmissione dati. 4.2 Host computer collegato via COM1/COM2 Per fare comunicare il terminale con un qualsiasi altro tipo di elaboratore è naturalmente necessario che velocità di comunicazione e struttura dei caratteri coincidano (lunghezza parola, numero di bit di stop, tipo di parità). • PROX+F/G può essere configurato per velocità di comunicazione su canale RS232 asincrono da 1200 a 38400 Bps (parametri 11 per COM1 e 21 per COM2). • TRAX+F/G può essere configurato per velocità di comunicazione su canale RS232 asincrono da 1200 a 9600 Bps (parametro 11, solo COM1). La lunghezza di parola è di 8 bit senza parità, oppure 7 con parità pari o dispari (parametri 12 per COM1 e 22 per COM2). Il terminale trasmette sempre due bit di stop, mentre è sufficiente un solo bit di stop in ricezione. Per maggiori dettagli si veda il capitolo relativo alla configurazione del terminale. Le stringhe di comando per il terminale sono generalmente terminate dal carattere CR, così come i messaggi di risposta. È comunque possibile ridefinire il carattere terminatore dei messaggi ricevuti dal terminale mediante i parametri 14 per COM1 e 24 per COM2, mentre il carattere terminatore dei messaggi trasmessi dal terminale può essere ridefinito mediante i parametri 16 per COM1 e 26 per COM2 (può essere utile ridefinire i terminatori soprattutto nell’uso delle porte COM1 o COM2 come interfaccia di raccolta dati o per la gestione remota, non per l’uso della “shell”). GESTIONE REMOTA 4.3 64 Host computer collegato via NET92 Gli stessi comandi che possono essere trasmessi tramite le porte COM1/2 sono accettati via NET92. La comunicazione tramite NET92 può avvenire per mezzo di un concentratore “intelligente” (PSLD/3I, #982) oppure usando le primitive di comunicazione fornite da TMC (librerie DLL o controllo OCX) e gli adattatori PSLD/3 (#981) o MicroLD (#985). In caso di utilizzo con PSLD/3I la modalità di comunicazione è analoga alla connessione diretta COM1/2. L’unica differenza avvertibile consiste nella struttura del messaggio: ogni messaggio scambiato nelle due direzioni è preceduto dalle tre cifre che corrispondono all’indirizzo del terminale (si veda anche il manuale PSLD/3I). Qualora si utilizzino le funzioni di comunicazione in tempo reale della libreria NET92C.DLL, la funzione “SendMsg()” deve essere usata per inviare comandi (con lo stesso formato di quelli per COM1/2), mentre con “PollTerm()” si ricevono le corrispondenti stringhe di risposta. Qualora si utilizzino le funzioni di comunicazione batch della libreria PROXC.DLL, la funzione “SendCommand()” deve essere usata per inviare comandi (con lo stesso formato di quelli per COM1/2). Questa funzione attende e quindi restituisce le corrispondenti stringhe di risposta. Qualora si utilizzino le funzioni di comunicazione in tempo reale del controllo POLLENGINE.OCX, il metodo “SendMessage()" deve essere usato per inviare comandi (con lo stesso formato di quelli per COM1/2), mentre le corrispondenti stringhe di risposta vengono ricevute automaticamente e notificano un evento “messageReceived()” all’applicazione contenitore. NET92C.DLL, PROXC.DLL e POLLENGINE.OCX possono essere scaricati dalla sezione “Utility & SW” nella Partners Area del sito web della AXESS TMC (www.axesstmc.com). I file impaccati (*.zip) includono anche i manuali utente, dove potete trovare ulteriori dettagli. 4.4 Host computer collegato via Ethernet La comunicazione via Ethernet può avvenire usando le primitive di comunicazione fornite da TMC (libreria DLL o controllo OCX). In caso di PROX+F/G è necessario disporre di una scheda di interfaccia #983 EtherLite o WiLite. In caso di TRAX+F/G, se l’interfaccia Ethernet integrata non è abilitata, occorre introdurre l’apposita chiave di attivazione firmware FWK01_ETHERNET (cfr. §3.3.8). Qualora si utilizzino le funzioni di comunicazione batch della libreria PROXC.DLL, la funzione “SendCommand()” deve essere usata per inviare comandi (con lo stesso formato di quelli per COM1/2) direttamente alla shell del terminale, mentre con la funzione “EboxCommand()” si inviano comandi specifici per l’interfaccia Ethernet. Queste funzioni attendono e quindi restituiscono le corrispondenti stringhe di risposta. Qualora si utilizzino le funzioni di comunicazione in tempo reale del controllo ETHERCTRL.OCX, il metodo “SendMessageTo()" deve essere usato per inviare comandi (con lo stesso formato di quelli per COM1/2) direttamente alla shell del terminale, mentre con il metodo “SendCommand()” si inviano comandi specifici per l’interfaccia Ethernet. Le corrispondenti stringhe di risposta vengono ricevute automaticamente e notificano, rispettivamente, un evento “MessageRecv()” o un evento “CommandReply()” all’applicazione contenitore. PROXC.DLL e ETHERCTRL.OCX possono essere scaricati dalla sezione “Utility & SW” nella Partners Area del sito web della AXESS TMC (www.axesstmc.com). I file impaccati (*.zip) includono anche i manuali utente, dove potete trovare ulteriori dettagli. 4.5 Messaggi spontanei in modo OFFLINE Il terminale può inviare al controllore alcuni messaggi particolari, di propria iniziativa, anche in modalità “OFFLINE”. Si possono avere messaggi di restart, di eventi di input, di richiesta funzione non supportata (pressione di un tasto funzionale al quale non è associata una transazione utente PROC_x) e anche ritrasmissioni di messaggi ricevuti da porta seriale. La porta sulla quale vengono inviati i messaggi spontanei (in seguito denominata canale ONLINE corrente) è quella sulla quale è stato inviato l’ultimo comando ONLINE, CONSIDLE o %% (o messaggio online temporaneo preceduto dal carattere {ESC}). Questa impostazione rimane anche se il terminale viene spento. GESTIONE REMOTA 65 Il canale ONLINE impostato per default alla prima accensione o dopo un reset lungo (cfr. §2.8) o l’invio di un comando di reset %%1 (cfr. §6.1.4) è la NET92. 4.5.1 Messaggi di restart Questi messaggi sono trasmessi dal terminale subito dopo una accensione o un comando di reset. Tutti hanno il carattere “!” in prima posizione. I messaggi di restart vengono inviati su tutte le porte disponibili: NET92, Ethernet integrata (solo TRAX+F/G), e anche sulle seriali COM1 e COM2, tranne quella che eventualmente è stata configurata per la connessione ad una stampante (par. 00-Printer=1,2). Il messaggio “!!!” è trasmesso tutte le volte che il terminale “riparte”, in seguito ad una normale accensione I effettuata mediante il tasto , oppure in seguito alla ricezione di un comando di reset “%%”. Il messaggio “!>” è trasmesso al controllore NET92 (o direttamente al PC Master, nel caso in cui il canale ONLINE corrente sia la porta Ethernet integrata del TRAX+F/G) nel momento in cui quest’ultimo, dopo una pausa, ricomincia ad interrogare i dispositivi e, nel frattempo, il terminale avrebbe voluto trasmettere qualche dato. In questo caso il computer controllore dovrebbe scaricare i dati (file) accumulati dal terminale durante il periodo di permanenza in OFFLINE. Il messaggio “!?1” viene trasmesso se al restart il terminale ha trovato una configurazione non valida e ha ripristinato automaticamente tutti i parametri ai valori di default, oppure dopo avere ricevuto un comando “%%1”. “!?2” è segnale di una ripartenza con formattazione del drive A del terminale (RAM base), oppure la ricezione di un comando “%%2”. “!?3” è segnale di una ripartenza con formattazione del drive B (RAM-Card, solo PROX+F/G) oppure la ricezione di uno dei comandi “%%3” o “%%5”. “!?4” è trasmesso rispettivamente dopo la riformattazione del drive C (RAM-Card con capacità di 1 Mbyte, solo PROX+F/G), ad esempio in seguito alla ricezione di un comando “%%4”. "!?8" segnala una situazione di ”stack overflow“: il terminale è ripartito dopo avere corrotto la zona di memoria RAM riservata allo stack. Ciò è dovuto a chiamate a funzioni interne profondamente innestate. Questo messaggio non dovrebbe mai essere generato dal terminale (situazione critica). "!?9" segnala una situazione di “queue overflow”: il terminale è ripartito poiché non era più in grado di gestire tutti gli eventi in coda (messaggi in entrata/uscita, letture di badge, ecc.). Ciò può essere dovuto, ad esempio, ad un pesante traffico sulla rete. Questo messaggio è solo un avviso di situazione anomala. Alla stringa “!?9” sono accodati 16 caratteri ASCII, ciascuno corrispondente ad un evento in coda. Il messaggio termina con il carattere {255}. 4.5.2 Accessi e presenze in modo “semi-OnLine” Se il parametro 18-NETMode ha valore “3”, la transazione di rilevazione presenze/controllo accessi prevede la trasmissione del record corrispondente al computer controllore sul canale online corrente (invece della registrazione nel file interno “PREammgg”), effettuando comunque preventivamente i controlli di validità abilitati. Quando la trasmissione del record si conclude con esito positivo, l’host ha a disposizione un tempo definito (determinato dal parametro 66-WaitOnLin) per inviare al terminale una risposta sullo stesso canale. Se questa risposta non viene inviata, oppure la trasmissione stessa non ha buon fine, il terminale procede con la memorizzazione sul file interno. Qualunque tipo di messaggio di risposta ha invece l’effetto di evitare la memorizzazione del record sul terminale. Il messaggio di risposta viene trattato a tutti gli effetti come un “prompt” (Cfr. § 6.2). In questo caso particolare non ne viene però considerato l’impiego come richiesta di inserimento di un dato, ma come semplice messaggio da visualizzare, con la possibilità ulteriore di aggiungere comandi di tipo ‘%’ in fondo al record. In sintesi lo scopo è quello di produrre un messaggio sulla seconda linea del display, concatenando eventualmente il comando di attivazione di un relè. Il messaggio di risposta può essere inviato sia senza, sia con {ESC} iniziale. Se il messaggio è ricevuto dal terminale entro il tempo di attesa specificato al parametro 66, non si ha nessun effetto differente tra messaggistica con e senza {ESC} iniziale. Se invece il messaggio arriva dopo che il terminale ha gestito il record internamente, si hanno le seguenti differenze: GESTIONE REMOTA 66 a) messaggio senza {ESC} iniziale: il messaggio viene considerato come comando per l’interprete comandi e quindi, non essendo riconosciuto fra i comandi validi, è ritrasmesso con appesa la stringa “ ??” b) messaggio con {ESC} iniziale: viene comunque proposto sul display e, se non contiene una sequenza “{ESC}%Dx” rimarrà visualizzato fino al prossimo evento gestito dalla consolle. 4.5.3 Trasmissione eventi generati dagli INPUT Dopo avere abilitato la generazione di eventi su almeno una delle linee di input (impostando ad un valore diverso da zero almeno uno dei parametri 36..39, Cfr. § 5.6.1), configurando il parametro 65-InputCtrl ad un valore diverso da zero e il parametro 33-InputMode affinchè gli eventi di input siano trasmessi ONLINE, ad ogni evento di input (parametro 69-InputEdge) il terminale inviera‘ un messaggio all’host. Ricordiamo che il terminale effettua il campionamento dello stato delle linee di input sedici volte al secondo; per evitare sovrapposizioni di messaggi nei buffer interni del terminale (e quindi situazioni anomale di funzionamento, evidenziate da messaggi “QUEUE OVERFLOW” sul display), occorre effettuare il “polling” (e quindi liberare la coda dei messaggi) con una cadenza maggiore o uguale alla massima cadenza di generazione eventi di input prevista per tale terminale. Cfr. § 5.5 per maggiori dettagli riguardo i parametri relativi alla gestione delle linee di input e relativi contatori . 4.5.4 Trasmissione dei dati ricevuti da COM1/COM2 Se abilitiamo la ritrasmissione sul canale ONLINE corrente dei dati ricevuti su COM1 e/o COM2 (impostando i corrispondenti parametri 13-COM1In e 23-COM2In al valore 5), il terminale replichera‘ questi messaggi accodando ad essi un carattere diverso a seconda del canale seriale di origine (Cfr. § 5.6.1, parametri 13 e 23). Anche in questo caso, per evitare sovrapposizioni di messaggi nei buffer interni (e quindi situazioni anomale di funzionamento, evidenziate da messaggi “QUEUE OVERFLOW” sul display), occorre effettuare il “polling” (e quindi liberare la coda dei messaggi) con una cadenza maggiore o uguale alla somma delle massime cadenza di invio messaggi sulle linee di comunicazione COM1 e COM2. CONFIGURAZIONE 67 5 CONFIGURAZIONE 5.1 Parametri di comunicazione RS232/RS485 per COM1/2 Le modalità di comunicazione delle porte seriali del terminale dipendono dal valore dei parametri 10..16 per COM1 e dai corrispondenti analoghi parametri 20..26 per COM2 (solo PROX+F/G). Vengono descritti quindi solo quelli di COM1. 5.1.1 La configurazione di basso livello Il parametro 10-COM1Hsk determina i tipi di “handshake” possibili attraverso il valore di sette flag binari. Questo parametro può assumere valori da 0 a 127, considerando i sette flag come potenze di due. • Il bit 0 abilita o disabilita l’handshake software XON/XOFF in ricezione e, in caso di PROX+F/G, determina la funzione del pin di uscita RS232 RTS/DTR: se il bit-0 vale ‘0’ questo pin ha funzione di RTS, viene cioè attivato quando PROX+F vuole trasmettere; se vale uno ha significato di DTR (o CTS da un altro punto di vista), e il segnale viene mantenuto attivo (alto) se PROX+F può ricevere e basso quando vuole bloccare la trasmissione di dati verso di sé. Questo secondo modo (bit-0=1) è alternativo all’handshake software XON/XOFF: se il bit-0 vale ‘0’, risulta attivo l’handshake XON/XOFF in ricezione, mentre se il bit-0 vale ‘1’, il terminale non trasmette l’{XOFF} a buffer pieno, ma in caso di PROX+F/G abbassa invece il segnale DTR. • Il bit 1, se posto a uno, attiva l’handshake software di tipo ACK/NAK sulla ricezione (ha senso solo se la comunicazione avviene con parità attivata): quando il terminale riceve correttamente risponde con ACK, altrimenti {NAK} per chiedere la ritrasmissione. • Il bit 2, se posto a uno, attiva l’handshake software XON/XOFF sulla trasmissione: la ricezione di un carattere {XOFF} blocca la trasmissione del terminale fino alla successiva ricezione di un {XON}. • Il bit 3, se posto a uno, attiva l’hanshake software ACK/NAK sulla trasmissione: dopo ogni stringa trasmessa dal terminale, questo attende un carattere {ACK} per trasmettere il messaggio successivo, oppure {NAK} per ritrasmettere il precedente. • Il bit 4, se posto a uno, disabilita la trasmissione di XOFF/XON per controllare il flusso dei caratteri ricevuti anche se bit 0 = 0. • Il bit 5, se posto a uno, e solo in caso di handshake software XON/XOFF su PROX+F/G (bit-0=0), mantiene alto il segnale RTS per tutta la sessione di comunicazione, non solo durante la trasmissione. • Il bit 6, NoAutoOffRTS, è riservato ad alcune applicazioni specifiche sviluppate in ‘C’. I bit 2 e 3 non possono essere contemporaneamente a uno (ma possono essere a zero). Il valore di default (10-COM1Hsk = ‘36’) abilita il controllo XON/XOFF sia in ricezione che in trasmissione e utilizza il pin di controllo in uscita RS232 come RTS stabile alto. I parametri 11-COM1Baud e 12-COM1Par determinano la velocità di trasmissione e la parità (vedi tabella riassuntiva, § 5.6.1). Valori di default: 9600 Baud, no parity, 8 bit per COM1; e 2400 Baud, no parity, 8 bit per COM2. Il parametro 14-COM1TC fissa il carattere terminatore dei messaggi ricevuti sulla porta: normalmente vale 13 ({CR} o Return). Se viene posto a 255 i messaggi in ricezione sono considerati a lunghezza fissa e pari al valore del parametro 15-COM1MLS. Il parametro 16-COM1LF determina invece il tipo di terminazione dei messaggi trasmessi: se vale ‘1’ (default) ogni messaggio viene terminato dalla coppia {CR}{LF}; con ‘2’ viene trasmesso solo {CR}, ‘3’ trasmette {ETX}, ‘0’ non fa trasmettere terminatori. 5.1.2 La gestione dei messaggi ricevuti via linea seriale I parametri 13-COM1In e 23-COM2In determinano diversi modi di trattamento dei messaggi ricevuti, rispettivamente, sulla COM1 e sulla COM2. Con ‘0’ (zero) è abilitato l’interprete comandi del terminale. Affinchè non si creino conflitti e l’interprete comandi funzioni correttamente, è necessario che il parametro 00-Printer sia impostato a ‘0’. Se ad esempio si inviano dei comandi di shell alla porta COM1 mentre 00-Printer=‘1’, l’unica risposta ricevuta sarà l’eco del comando stesso, CONFIGURAZIONE 68 pertanto non possono funzionare tutti i comandi che restituiscono più di una linea (come ad esempio DIR e TYPE). Lo stesso vale se si utilizza la porta COM2 con 00-Printer=’2’. Con ‘1’ o ‘3’ la porta seriale funziona solamente in ricezione e memorizza tutti i dati ricevuti in un file specifico (COM1DAT o COM2DAT) senza interferire con la consolle utente, né con le altre comunicazioni (il valore ‘3’ fa registrare i dati in modo impaccati: usatelo solo per stringhe costituite esclusivamente di caratteri numerici). Il valore ‘2’ causa una ridirezione permanente nel buffer della tastiera (per connettere dispositivi di input accessori alla consolle del terminale). Il valore ‘4’ è usato da versioni software particolari, come ad esempio nel caso di un programma ‘custom’ scritto in linguaggio ‘C’: produce un evento di messaggio ricevuto al programma di consolle senza ridirigere i dati nel buffer di tastiera. Il valore ‘5’ ha senso se il terminale è collegato ad un computer attraverso un canale ONLINE: causa la trasmissione di ogni messaggio ricevuto dalla porta seriale sul canale ONLINE corrente (al messaggio viene accodato un carattere particolare, che dipende dalla porta seriale su cui è stato ricevuto). Il valore ‘6’ è analogo al valore ‘1’, ma inoltre ogni messaggio ricevuto lancerà automaticamente la transazione utente PROC_L (è consigliabile impostare il parametro 13 a ‘1’ all’interno della PROC_L, se è possibile ricevere altri messaggi ma non si vuole che questi ne interrompano l’esecuzione, e quindi reimpostarlo a ‘6’ all’uscita). Esempio: collegando una tastiera esterna via RS232, è necessario porre il parametro 15 a ‘1’, il 14 a ‘255’, e il 13 a ‘2’ per permettere che ogni singolo tasto premuto sia visualizzato sul display del terminale. 5.2 Modalità di comunicazione e gestione master/slave della Net92 Il parametro 18-NETMode definisce la modalità di comunicazione sul canale online corrente. Inoltre, ma solamente su NET92, il terminale puo’ funzionare sia come master che come slave, dipendentemente dal valore di questo parametro. Il canale online corrente può essere impostato inviando ad una delle porte disponibili un comando ONLINE, CONSIDLE o %% (o un messaggio online temporaneo preceduto dal carattere {ESC}). Questa impostazione rimane anche se il terminale viene spento. Il canale online impostato per default alla prima accensione o dopo un reset lungo (cfr. §2.8) o l’invio di un comando di reset %%1 (cfr. §6.1.4) è la NET92. • Il valore di default ‘0’ corrisponde ad un funzionamento slave completamente offline. In questa modalità sono disponibili i comandi della “shell” e il terminale trasmette sul canale online corrente solo in seguito a comandi ricevuti dal master/host computer, o nei casi particolari di messaggi spontanei offline (cfr. §4.5). Il comando ONLINE è comunque sempre disponibile. • Il valore ‘1’ permette la trasmissione sul canale online corrente dei tasti funzione premuti, nel caso in cui il terminale non contenga una procedura che gestisce la funzione richiesta. Il messaggio trasmesso è formato dal carattere “#” seguito dal codice del tasto premuto (Cfr. §5.2.1). In seguito alla trasmissione del tasto funzione premuto, e solo se il par. 66-WaitOnLin è impostato ad un valore diverso da ‘0’, il terminale entra in modalità online: se entro il tempo specificato da tale parametro il computer controllore non trasmette un prompt sul canale online corrente, il terminale ritorna in modalità offline. • Il valore ‘2’ corrisponde al tentativo di funzionamento online (Cfr. §5.2.1) tutte le volte che il terminale viene acceso: se entro il tempo specificato dal parametro 66-WaitOnLin il computer controllore non trasmette un prompt sul canale online corrente, il terminale ritorna in modalità offline attivando l’ultima procedura usata oppure quella determinata dal comando PROC f (Cfr. §6.1.1). • Il valore ‘3’ (modo SemiOnLine) ha un significato diverso da ‘1’ solo per la transazione di raccolta dati presenze/controllo accessi. Con questo valore il terminale cerca di trasmettere il record di presenza al computer master (sul canale online corrente) prima di memorizzarlo internamente. Se entro il tempo specificato dal parametro 66-WaitOnLin il computer controllore non trasmette un messaggio, il terminale procede come nel caso offline, applicando i criteri locali per la validazione del badge, ed eventualmente memorizzando il record. Se il par. 66-WaitOnLin è impostato a ‘0’, dopo ogni transazione di raccolta dati presenze/controllo accessi, il terminale risulta in stato di online per un tempo indefinito. Il successivo comando di “shell” per il terminale deve essere preceduto da un comando OFFLINE (se si desidera far tornare il terminale in stato offline). In alternativa, se si desidera mantenere il terminale in ONLINE, i successivi comandi di “shell” devono essere inviati seguendo la sintassi alternativa “@command” (Cfr. §6.1). • Il valore ‘4’ non è attualmente utilizzato. CONFIGURAZIONE 69 I valori superiori possono essere impiegati solo in configurazioni in cui il terminale assuma la funzione di “master” NET92, cioè controlla altri terminali “slave”, mentre la connessione con il computer controllore avviene via COM1/COM2 (eventualmente attraverso l’interfaccia #983 EtherLite connessa in RS232) o la porta Ethernet integrata (solo TRAX+F/G). • Il valore ‘5’ è associato alla modalita‘ di semplice raccolta dati: in questa configurazione si possono avere un massimo di 31 terminali collegati al “master” su NET92. I dati vengono memorizzati, assieme a orario e indirizzo del lettore, sul file N92ammgg. Ad ogni dato ricevuto, il “master” invia al corrispondente terminale il messaggio standard “Confermato!”: questa funzionalità può essere utile se si utilizzano terminali TMC di tipo #922 TRAX+, dotati di tastiera e display. • Il valore ‘6’ è associato alla configurazione di controllo accessi, quando il terminale controlla fino a 31 lettori #914 HotMAX o #916 EnTRAX slave. L’abilitazione all’accesso è la stessa del controllo di validità dei badge letti direttamente sul “master” in rilevazione presenze/controllo accessi. I dati vengono registrati sul file PREammgg, che contiene due caratteri in più (indirizzo del lettore slave sul quale è avvenuta la lettura o ‘00’ per lettura effettuata sul “master”). Se non esiste il file “AXGATES”, le transazioni provenienti dai lettori slave sono registrate con direzione “0”, altrimenti il carattere in AXGATES di posizione uguale all’indirizzo del lettore ne stabilisce la modalità di funzionamento: “2” non fa registrare la transazione, ma viene effettuato il test sul badge per l’attivazione del relé sul lettore slave, diverso da “2” fa registrare la transazione con ‘direzione’ uguale al carattere specificato. Questa ultima funzionalità potrebbe essere utilizzata per registrare una ‘causale automatica’ relativa alla lettura di un badge su un particolare lettore. Occorre ricordare che il file AXGATES deve essere caricato sul terminale mediante il comando “LOAD AXGATES 1” e che il contenuto del file viene letto solo al “restart”. Dopo ogni caricamento di un nuovo file AXGATES è quindi necessario inviare un comando di “reset” affinchè le nuove impostazioni abbiano effetto. • Il valore ‘7’ (simile al ‘6’) è associato alla configurazione di controllo accessi, quando il terminale controlla fino a 31 lettori #914 HotMAX o #916 EnTRAX slave. L’abilitazione all’accesso è la stessa del controllo di validità dei badge letti direttamente sul “master” in rilevazione presenze/controllo accessi. I dati vengono registrati sul file PREammgg, la cui struttura resta invariata (non sono aggiunti i due caratteri che identificano l’indirizzo del lettore). Se non esiste il file “AXGATES”, le transazioni provenienti dai lettori slave non sono registrate, ma viene effettuato il test sul badge per l’attivazione del relé sul lettore slave, altrimenti tutto funziona esattamente come specificato per il valore ‘6’. • Il valore ‘8’ serve per la gestione di terminali “slave” su NET92 da parte di programmi applicativi specifici caricati sul “master”. • Il valore ‘9’ viene usato temporaneamente nel modo “gateway” attivato dal comando LOGON (Cfr. § 6.1.1). • Una particolare modalità master definita “gateway continuo” può essere aggiunta al normale funzionamento dei modi “slave”, sommando 16 ai rispettivi valori del parametro 18 (quelli inferiori a ‘4’): i risultanti valori del parametro 18 che hanno senso sono 16, 17, 18 e 19. In questa modalità il terminale è anche in grado di gestire la rete NET92 per comunicare con fino a 31 terminali slave connessi sulla porta NET92 (HotMAX, EnTRAX, TRAX, PROX, ecc.). L’elaboratore, collegato ad una delle porte seriali COM1/COM2 (eventualmente attraverso un’interfaccia #983 EtherLite o WiLite connessa in RS232) o alla porta Ethernet integrata (solo TRAX+F/G), può inviare un messaggio ad un determinato terminale semplicemente facendo precedere il messaggio dal simbolo “>” e da due caratteri numerici che costituiscono l’indirizzo del terminale destinatario. Se il terminale destinatario riesce a ricevere il messaggio, il “gateway” non produce nessun eco, altrimenti invia all’elaboratore il messaggio “?*” (analogo al messaggio di errore generato dal tentativo di inviare un messaggio dopo avere effettuato il “LOGON” su un terminale inesistente). L’elaboratore può anche inviare un messaggio ‘broadcast’ che è ricevuto da tutti i terminali NET92 attivi semplicemente indirizzando il messaggio all’indirizzo “00”. In questo caso il “gateway” non produce mai l’eco. Per contro i messaggi in arrivo dai terminali sono rediretti all’elaboratore preceduti dal simbolo “<” e da due caratteri numerici che costituiscono l’indirizzo del terminale che ha generato il messaggio. Le letture provenienti dai terminali slave sono semplicemente redirette dal “gateway” verso l’elaboratore; non sono memorizzate in nessun caso. Grazie a questa modalità di funzionamento è possibile, ad esempio, predisporre un’applicazione dove i terminali slave vengono gestiti in “online” da un PC di controllo che è collegato solo ad una porta COM1/COM2 o Ethernet del “gateway”, e che ha installato un software appropriato. Attenzione: tutti i valori del parametro 18 superiori a ‘4’ (modi “master” e “(master)gateway continuo”) sono impostabili su TRAX+F/G solo se è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. §3.3.8). • Un’altra particolare modalità di funzionamento può essere attivata sommando 128 al valore corrente del CONFIGURAZIONE 70 parametro 18 (solo TRAX+F/G): ciò abilita la gestione dell’interfaccia Ethernet integrata come “gateway implicito” NET92, solo quando essa è configurata con il parametro C che vale ‘3.4’ (che significa trasmissione sulla porta RS485 con protocollo NET92 a 57600 baud). In pratica viene emulato il comportamento dei vecchi #926 EtherTRAX+P, nei quali l’interfaccia Ethernet è di fatto un dispositivo autonomo (come le schede #983 EtherLite o WiLite) che funziona da gateway per il terminale stesso e per tutti gli altri eventuali terminali connessi ad esso sulla stessa sottorete NET92. E’ possibile comunicare con fino a 31 terminali slave connessi sulla porta NET92 (HotMAX, EnTRAX, TRAX, PROX, ecc.): i messaggi da/per i terminali ricevuti/trasmessi attraverso la porta Ethernet integrata sono preceduti da un singolo carattere il cui codice ASCII è l’indirizzo NET92 del mittente/destinatario: tale carattere viene implicitamente aggiunto o filtrato dalle primitive di comunicazione fornite da TMC (cfr. § 4.4). Solo i seguenti valori del parametro 18 sono consentiti: 128, 129, 130, 131, 134 e 135. Questi valori, inoltre, fanno sì che il comando Ethernet ‘Z’ restituisca una stringa di 31 cifre nella quale vengono effettivamente evidenziati con la cifra ‘1’ in una certa posizione tutti i terminali slave di indirizzo omologo che rispondono al polling sulla NET92 (il comando ‘Z’ funziona, per motivi di compatibilità software, anche in tutti gli altri casi in cui la porta Ethernet integrata sia abilitata, ma l’unica posizione con la cifra ‘1’ è quella corrispondente all’indirizzo Net92 del terminale con la porta Ethernet, se compreso fra 1 e 31). I valori 134 e 135 comportano una modalità di funzionamento alternativa. Se c’è un programma di controllo in esecuzione su un PC host connesso via Ethernet e raggiungibile, tutto funziona come con il valore 128: i messaggi provenienti da terminali slave #914 HotMAX o #916 EnTRAX sulla NET92 vengono immediatamente trasmessi all’host (sistema ONLINE con l’interfaccia Ethernet integrata del TRAX+F/G funzionante come “gateway implicito” ). Se per qualche ragione (programma di controllo non in esecuzione o PC host spento o non raggiungibile) TRAX+F/G non riceve conferma ad un pacchetto UDP precedentemente inviato, esso commuta automaticamente alla modalità di funzionamento corrispondente ai valori 6 o 7, rispettivamente: i seguenti messaggi provenienti dai terminali slave #914 HotMAX o #916 EnTRAX sulla NET92 saranno processati internamente (sistema OFFLINE con TRAX+F/G funzionante come “master controllo accessi”). Quando il programma di controllo in esecuzione sul PC host diverrà funzionamento nuovamente raggiungibile, TRAX+F/G ritornerà automaticamente alla modalità di corrispondente al valore 128, e così via. Attenzione: i valori ‘128’ e superiori del parametro 18 hanno effetto su TRAX+F/G solo se sono state precedentemente inserite le apposite chiavi di attivazione firmware FWK01_ETHERNET (non necessaria se il terminale ha già la porta Ethernet integrata abilitata alla ricezione dei comandi di shell) e FWK03_N92GATEWAY (cfr. §3.3.8). I valori ‘134’ e ‘135’ richiedono anche la chiave FWK02_MAXMASTER (vedi sopra). 5.2.1 Il funzionamento “ON-LINE” (tempo reale) La modalità di funzionamento “on-line”, è attivata inviando al terminale il comando “ONLINE”, oppure è prefissata all’accensione dal parametro 18-NETMode con il valore 2. In questa modalita‘, la “consolle” del terminale dipende completamente dal computer controllore. Il computer controllore, dopo il comando ONLINE, deve inviare un prompt valido entro il tempo specificato dal parametro 66-WaitOnLin (se non lo fa, il terminale tornerà in modo “off-line” mostrando sul display il messaggio “NO RESPONSE”). Il dato introdotto dall’utente nel campo di input del “prompt” mostrato, verrà subito trasmesso al controllore, che dovrà sempre inviare un nuovo prompt entro il tempo suddetto. Una volta ricevuto un prompt, il terminale può restare in attesa indefinita dell’introduzione di un dato (o della pressione di un tasto funzione) da parte dell’utente. Il terminale può anche ricevere nel frattempo un nuovo prompt che sostituisca quello mostrato correntemente. Il comando OFFLINE trasmesso al terminale lo fa tornare all’inizio della procedura di consolle precedentemente in corso (rilevazione presenze, controllo accessi, ecc.). Durante lo stato di funzionamento on-line il terminale non riconosce i normali comandi di shell, bensì li mostra sul display come messaggi per l’operatore. Si può usare il comando CONSIDLE per attivare la shell comandi: in questo stato il terminale mostra il messaggio “terminale non disponibile” fino alla ricezione di una nuova sequenza ONLINE seguita da un “prompt” oppure di un definitivo OFFLINE. In alternativa, è possibile mantenere il terminale in modo on-line ed eseguire un comando di shell (che non è quindi rediretto al display) semplicemente ponendo il prefisso “@” prima del comando stesso (@DIR, @TYPE, ecc.). Questa regola non è applicabile ai comandi @ONLINE, @OFFLINE, @CONSIDLE ed ai vari “reset” (@%%, @%%1, ecc.). Esempio: ONLINE :K:Inserisci dato ___ // Entra in modo ONLINE // Visualizza prompt CONFIGURAZIONE 71 @DIR // Invia risultato DIR al PC @DEL AXCARDS // Cancella file :K:Inserisci altro dato ___ // Visualizza prompt ... Con parametro 18-NETMode impostato a ‘0’, mentre il terminale è in stato di “on-line” dovuto alla ricezione di un comando “ONLINE” seguito da un “prompt”, la pressione dei seguenti tasti provoca l’invio sul canale “on-line” delle sequenze di caratteri specificati a destra (anche se al tasto funzione è associata una transazione utente): A #A ... E F #E A #a F E #e F F #f ... CLR #bs ? #? F ? #{chr(159)} #R F #{chr(135)} … F #q F #p #up F #{chr(126)} #dn F #{chr(127)} 0 0 ... 9 F 9 0 #0 9 #9 ... F _ F #m Con parametro 18-NETMode impostato a ‘0’, mentre il terminale è in stato di “on-line” dovuto alla ricezione di un comando {ESC}+”prompt”, la pressione di un tasto funzione fa abortire il prompt: i tasti rimanenti sono trasmessi regolarmente. Con parametro 18-NETMode impostato per funzionamento “on-line” (valori compresi fra ‘1’ e ‘3’ o fra ‘17’ e ‘19’), mentre il terminale è in stato di “on-line” dovuto alla ricezione di un comando “ONLINE” seguito da un “prompt”, la CONFIGURAZIONE 72 pressione dei tasti (funzionali e non) causa un comportamento indipendente dalla presenza di PROC_x associate al tasto premuto (vongono ignorate). Se invece il terminale è in stato di “on-line” dovuto alla ricezione di un comando {ESC}+”prompt”, i tasti sono tutti trasmessi, a meno che al tasto funzione sia associata una procedura. In ogni caso, se il terminale è in stato di “on-line” dovuto alla ricezione di un comando {ESC}+”prompt”, i codici “#up” e “#dn” non sono trasmessi. 5.2.2 Il funzionamento “SEMI ON-LINE” Il cosiddetto modo “semi on-line”, attivato impostando il parametro 18-NETMode al valore 3, è riconosciuto ed utilizzato solo dalla procedura di rilevazione/controllo accessi. Con questo valore, il terminale cerca di trasmettere al computer controllore il record generato dalla lettura del badge prima di registrarlo nel file giornaliero PREammgg (si noti che se il parametro 27-Storage è impostato a ‘4’, questo record viene sempre trasmesso col prefisso ‘#R’). Se non riceve alcun messaggio entro il tempo di attesa specificato dal parametro 66-WaitOnLin, il terminale registra il record nel file PREammgg. Il messaggio ricevuto può possedere o meno il carattere {ESC} in prima posizione. La presenza di {ESC} in prima posizione dà luogo ad un comportamento diverso nel caso in cui il messaggio possa giungere al terminale dopo il tempo di attesa specificato dal parametro 66-WaitOnLin: in quest’ultimo caso, se il messaggio è privo di {ESC} iniziale, non sarà riconosciuto dalla shell comandi e sarà quindi ritrasmesso all’host con appesi i due punti interrogativi “??” che segnalano un “errore di sintassi”, senza nessun effetto sulla visualizzazione. Se invece il messaggio ha il carattere {ESC} iniziale, esso sarà utilizzato come “prompt” on-line e quindi sarà visualizzato comunque (analogamente a quanto descritto al § 5.2.1) senza che l’host abbia la percezione di essere arrivato in ritardo. 5.3 Attivazione di eventi temporizzati È possibile attivare eventi temporizzati caricando sul terminale il file ALARMTB e contemporaneamente impostando il parametro 34-Alarms con un valore diverso da ‘0’. ALARMTB contiene un record per ogni differente orario/giorno della settimana nel quale si desidera attivare un relè per il tempo specificato, oppure lanciare la transazione utente specificata. Il numero di record (e quindi di eventi attivabili) è limitato solo dalla memoria disponibile. Naturalmente occorre impostare il file ALARMTB in modo da non attivare relè eventualmente collegati ad orologi esterni, contatti di porte di accesso, ecc. Per lanciare transazioni utente eseguibili solo in modo automatico (e quindi non richiamabili in alcun modo da tastiera), caricate sul terminale transazioni con nomi PROC_F, PROC_G e così via. Per ulteriori informazioni, consultate il paragrafo relativo alla struttura dei file, §5.7.5. 5.4 Sincronizzazione degli orologi di un impianto Può sorgere la necessita‘ di mantenere sincronizzati fra loro tutti gli orologi di un impianto. Per quanto riguarda l’orologio/datario dei terminali TMC, in un cablaggio NET92 o Ethernet, il problema si risolve facendo in modo che l’elaboratore invii con cadenza regolare (una volta al giorno oppure una volta alla settimana) un comando di impostazione della data/ora a tutti i terminali. Qualora si desiderino sincronizzare altri orologi elettrici è consigliabile utilizzare le possibilita‘ di sincronizzazione offerte dai terminali PROX+F/TRAX+F. 5.4.1 Terminale utilizzato come “master clock” È possibile configurare il terminale affinché emetta un segnale di sincronizzazione ad ogni cambio di minuto: questo impulso può essere applicato agli orologi elettrici esterni dell’impianto che si desidera mantenere sincronizzati. Per fare ciò è sufficiente impostare il parametro 31-RelayMstr ad un valore diverso da ‘0’, indicante il numero di ottavi di secondo per cui il relé 3 deve restare chiuso allo scoccare di un nuovo minuto. Naturalmente occorre controllare che i contatti del relè 3 non siano gia‘ utilizzati per pilotare sirene, contatti di porte di accesso, ecc. NB: nel TRAX+F/G questo parametro ha effetto solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’. In questo caso, il TeleRelay che viene attivato allo scoccare di ogni minuto è quello avente indirizzo ‘3’ (se presente). CONFIGURAZIONE 5.5 73 Contatori degli “Input” e registrazione eventi Con il parametro 65-InputCtrl si abilita il controllo dell’attività delle linee di ingresso fotoaccoppiate del terminale. Affinchè siano gestiti gli eventi generati dai cambiamenti di stato degli input (eventi di azzeramento dei contatori minori, ecc.), occorre impostare questo parametro ad un valore maggiore di ‘0’. Se ‘0’, gli eventi generati dai cambiamenti di stato delle linee di input sono ignorati e il terminale si limita a decrementare e ricaricare i contatori minori. Il parametro 33-InputMode determina invece il trattamento e l’eventuale registrazione dell’evento. Ad ogni linea di input è associato un contatore ad otto bit (chiamiamo questi contatori “minori” per differenziarli da altri di cui si parlerà più avanti). Questi contatori hanno un valore di ricarica particolare, specificato dai parametri 36-Input1, 37-Input2 (effettivo su TRAX+F/G solo se si utilizza anche l’input ausiliario IN2, disponibile solo in alternativa all’uso della porta RS232 COM1), 38-Input3 e 39-Input4 (questi ultimi due effettivi solo su PROX+F/G). I contatori minori vengono riferiti nei comandi di shell con le lettere a,b,c,d (Cfr. § 6.1.1 e § 6.3, comandi “%I...”). Il test delle linee di input è eseguito solo se il relativo valore di ricarica contenuto nei parametri 36..39 è diverso da zero. Il campionamento viene effettuato sedici volte al secondo, il che significa che ogni cambiamento di stato, per essere riconosciuto, deve permanere almeno 1/16 di secondo, cioè 62,5ms. Questo significa anche che la massima frequenza del segnale di ingresso e' 8Hz, con duty cycle del 50%. N.B. L’input ausiliario IN2 del TRAX+F/G (disponibile solo in alternativa all’uso della porta RS232 COM1) viene testato soltanto se il parametro 11-COM1Baud è stato precedentemente impostato al valore ‘0’, inoltre la frequenza di campionamento di questo input è dimezzata, quindi la massima frequenza del segnale di ingresso è 4Hz con duty cycle del 50%. Il terminale decrementa il contatore di un input dipendentemente dal valore di un corrispondente bit del parametro 69-InputEdge: se tale bit vale ‘0’ ad ogni variazione di stato, se vale 1 solo sulle transizioni “da livello basso a livello alto”. Il valore di default ‘0’ corrisponde quindi ad un decremento dei contatori di tutti e quattro gli input sia sulle transizioni “da livello alto a livello basso” che “da livello basso a livello alto”; se posto a 15, tutti e quattro gli input decrementano il contatore solo sulle transizioni “da livello basso a livello alto”. Attenzione: l’ordine dei bit del parametro 69 è invertito: il bit 0 è relativo all’input 4, il bit 3 all’input 1. NB: in caso di TRAX+F/G, se si utilizza solo l’unico input standard IN1 allora l’unico bit del parametro 69InputEdge che ha effetto sul comportamento del terminale è il bit 3 (+8), per cui tutti i valori compresi fra 0 e 7 sono equivalenti fra loro (bit 3=’0’), così come quelli compresi fra 8 e 15 (bit 3=’1’). Se si utilizza anche l’input ausiliario IN2 (disponibile solo in alternativa all’uso della porta RS232 COM1) allora anche il bit 2 (+4) ha effetto. Quando il contatore di una linea raggiunge il valore zero, è generato un evento e il contatore stesso è di nuovo inizializzato con il suo valore di ricarica (contenuto nei ai parametri 36..39). Attenzione: per attivare un contatore inattivo occorre che il suo valore di ricarica sia diverso da zero all’accensione o al restart del terminale. Ad esempio, se prima il parametro 36 aveva valore zero e si desidera attivare la gestione eventi sui cambiamenti di stato dell’input 1, non è sufficiente inviare un comando del tipo “CFG 36 2” (Cfr. § 6.1.1), ma occorre anche spegnere e riaccendere il terminale, oppure inviare un comando di “restart”. A fronte di un evento, il terminale può eseguire una combinazione delle seguenti azioni: registrare l’evento sul file dedicato INPUTS, inviare un messaggio all’host, verificare se è presente una situazione che richiede la generazione di un allarme (azionamento di un relè). Il parametro 33-InputMode è infatti formato da due gruppi di quattro bit (due “nibble”). I bit del nibble piu’ significativo (7,6,5,4) determinano (se posti a uno) la scrittura dell’evento sul file INPUTS; i bit del nibble meno significativo (3,2,1,0) determinano invece la trasmissione on-line dell’evento. In ogni nibble il bit meno significativo è relativo all’input-1 quello piu’ significativo all’input-4. NB: in caso di TRAX+F/G, solo il bit 4 ed il bit 0 sono effettivamente collegati alle variazioni dell’unico input standard IN1. Se si utilizza anche l’input ausiliario IN2 (disponibile solo in alternativa all’uso della porta RS232 COM1), il bit 5 ed il bit 1 sono collegati alle variazioni di quest’ultimo. Gli altri hanno effetto solo in caso di utilizzo dei comandi %+A..%+D (Cfr. § 6.3). Esempio: un valore del parametro 33-InputMode uguale a 139 (10001011 in binario) causa la registrazione su file degli eventi relativi all’ input 4, e la trasmissione immediata all’host, sul canale online corrente, di ogni evento relativo agli input 1, 2 e 4. Il terminale possiede anche quattro ulteriori contatori che chiameremo “maggiori”: nei comandi di shell “%I...” che trattano i contatori, questi contatori maggiori sono individuati dalle lettere A,B,C,D. Ad ogni evento (azzeramento di contatore minore), il terminale incrementa il contenuto del contatore maggiore relativo all’ingresso che ha generato l’evento stesso. I contatori maggiori hanno un ciclo di conteggio fisso pari a 10.000. Arrivati a 10.000 ripartono automaticamente da zero. CONFIGURAZIONE • 74 I contatori “minori” sono azzerati automaticamente ad ogni “restart” del terminale. I contatori “maggiori” sono azzerati automaticamente solo da una operazione di “reinizializzazione” dei parametri, sia effettuata da tastiera - Cfr. § 3.3.4- sia per mezzo del comando “%%1”. Il parametro 65-InputCtrl determina il formato di registrazione degli eventi sul file INPUTS (cfr. § 5.7.4): un valore ‘1’ fa registrare solo l’orario dell’evento; ‘2’ e ‘3’ causano anche la registrazione di 2 cifre relative al giorno del mese in cui si è verificato l’evento. Il formato dei messaggi trasmessi on-line è invece sempre lo stesso e coincide con il formato dei record nel file INPUTS con il valore ‘1’, poiché il giorno del mese in cui si è verificato l’evento non è significativo in caso di gestione on-line. Se il parametro 65-InputCtrl è impostato al valore ‘3’, la registrazione sul file avverrà solo in seguito agli eventi di overflow sui contatori maggiori, mentre tutti gli eventi, compresi quelli che non danno luogo ad overflow, continueranno ad essere trasmessi on-line. Se il bit 6 del parametro 58-ExtraBits è impostato a ‘1’, i messaggi trasmessi on-line ad ogni evento vengono inviati col prefisso ‘#^’, in modo da distinguerli da quello che potrebbe essere un qualunque codice numerico trasmesso on-line in seguito alla lettura di un barcode o all’introduzione di un dato da tastiera, mentre non viene in alcun modo alterato il formato di registrazione degli eventi sul file INPUTS. A livello di interprete comandi (Cfr. § 6.1.1) o di transazioni utente, sono disponibili comandi per controllare il valore di tutti i contatori ed eventualmente azzerarli (“%I...” e “%R...”). 5.5.1 Rilevazione dello stato degli input e allarmi (solo PROX+F/G) La possibilità di generare allarmi è qui intesa come la possibilità di potere attivare un relè a fronte di una particolare configurazione degli ingressi optoisolati di PROX+F/G. È possibile comandare l’attivazione dei relè 2 e 3 in relazione allo stato delle linee di input. Questa possibilità è abilitata per mezzo dei parametri 46-Out2Set, 47-Out3Set, 48-Out2Reset e 49-Out3Reset. Il test delle linee di input, al fine di pilotare i relè, viene eseguito nel momento in cui si verifica un evento qualsiasi, come descritto nel paragrafo precedente; l’attivazione dei relè dipende quindi anche dai parametri 36-Input1..39Input4. Il parametro 46-Out2Set determina lo stato delle linee di ingresso che comanda la chiusura del relè numero 2. Questo parametro è interpretato come se fosse formato da due maschere di quattro bit: i quattro bit più significativi determinano quali linee di input influenzano lo stato del relè (i bit a uno identificano gli input validi); i quattro bit meno significativi corrispondono allo stato richiesto sulle linee di input per attivare il relè. Esempio: se il parametro 46 ha valore 177 (=10110001 in binario) il relè due viene chiuso quando l’input 1 è attivo e il 2 e il 4 sono inattivi, mentre non viene considerato lo stato dell’input 3. L’attivazione del relè è stabile: è necessario si verifichi la condizione di rilascio del relè, determinata dal parametro 48-Out2Reset, perché questo venga disattivato. Il parametro 47-Out3Set ha le stesse funzioni del parametro 46-Out2Set, ma controlla l’attivazione del relè numero 3. Il parametro 48-Out2Reset determina lo stato delle linee di ingresso che comanda l’apertura del relè numero 2. La struttura a coppia di maschere di quattro bit è la stessa dei due parametri precedenti. Il parametro 49-Out3Reset determina ovviamente la condizione di disattivazione del relè numero 3. 5.6 I parametri di configurazione del terminale La maggior parte delle modalita‘ operative del terminale può essere determinata attraverso l’impostazione di opportuni parametri di configurazione. I parametri possono essere di tipo numerico, alfabetico, data ed ora; la “shell comandi” del terminale prevede il comando “CFG nn” che può essere utilizzato sia per impostare un parametro, sia per richiedere il suo valore corrente. Occorre prestare attenzione ai parametri di tipo data e di tipo ora, in quanto la stringa utilizzata per l’impostazione è diversa da quella ottenuta alla richiesta del valore corrente. Ad esempio, per impostare il parametro di tipo ora 04-RevDir1 alle 18:30 occorre usare il comando “CFG 04 1830” (senza il carattere “:”). La richiesta del valore corrente restituisce la stringa “CFG 04 18:30” (con il carattere “:”). Analogamente per i parametri di tipo data (ad esempio il 50-SummerTim) che prevedono il carattere “/” come separatore. Alcuni parametri numerici sono interpretati dal terminale in base alla loro configurazioni di bit (valore binario) piuttosto che al valore numerico (valore decimale). CONFIGURAZIONE 75 La determinazione del valore decimale associato ai parametri definiti “a bit” richiede un minimo di attenzione. Ad ogni bit è associato un valore numerico uguale alla potenza di 2 corrispondente alla posizione del bit interessato; il bit 0 è quello di peso piu‘ basso, il bit 7 è quello di peso piu‘ alto. Il valore numerico associato ad una certa configurazione di bit deve essere determinato sommando i valori che si ottengono moltiplicando il valore di ciascun bit (0 o 1) per la potenza di 2 corrispondente al suo peso (0..7). 20 = 1 21 = 2 2 2 = 4 3 2 = 8 24 = 16 25 = 32 26 = 64 27 = 128 bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7 Esempio: vogliamo impostare il parametro 68-PresMode in modo da attivare i controlli associati ai bit 0, 2, 4 e 7. Il valore decimale col quale impostare il parametro è ottenuto nel modo seguente: (bit 0) (bit 2) (bit 4) (bit 7) 1+ 4+ 16+ 128 1+4+16+128=149. Il parametro 68-PresMode dovra‘ quindi essere impostato per mezzo del comando “CFG 68 149”. 5.6.1 Tabella riassuntiva dei parametri Nella tabella sottostante per ogni parametro viene specificato l’intervallo dei valori ammessi, e il valore di default al reset del terminale. Un segnale indica che il valore del parametro viene usato dal terminale solo al reset (invio del comando “%%” da shell oppure spegnimento e riaccensione). Un parametro è identificato dal numero sequenziale 00..99; eventuali differenze nel nome, dovute ad aggiornamenti del firmware successivi alla stampa di questo manuale, non sono significative. 00 Printer 0..2 (0) Connessione della stampante. 0 : non connessa. 1 :connessa alla porta COM1. Attenzione: Non impostare questo valore se si utilizza la COM1 come shell comandi, altrimenti l’unica risposta ricevuta sarà l’eco del comando stesso, pertanto non possono funzionare tutti i comandi che restituiscono più di una linea (come ad esempio DIR e TYPE). 2 : connessa alla porta COM2 (solo PROX+F/G). Attenzione: Non impostare questo valore se si utilizza la COM2 come shell comandi, altrimenti l’unica risposta ricevuta sarà l’eco del comando stesso, pertanto non possono funzionare tutti i comandi che restituiscono più di una linea (come ad esempio DIR e TYPE). 01 TimeFmt 1..255 (3) Determina: a) il formato di data e ora sul display in rilevazione presenze e b) se vengono memorizzati o meno i secondi nei record dei passaggi (Cfr. § 3.5.1). 1: orario completo di secondi, giorno della settimana e giorno del mese (GG) (PROX+F 2x16/TRAX+F) oppure orario completo di secondi, giorno della settimana e data in formato GG/MM (PROX+F 4x20/PROX+G) 2: orario completo di secondi, data in formato GG/MM (PROX+F 2x16/TRAX+F) oppure orario completo di secondi, giorno della settimana e data in formato GG/MM (PROX+F 4x20/PROX+G) 3: orario senza i secondi, giorno della settimana e data in formato GG/MM (valore raccomandato e il solo effettivo in caso di TRAX+G) +10: la memorizzazione dei record di presenza/passaggio avviene senza l’indicazione dei secondi. Cancellate tutti i file PRExxxxx quando modificate questo parametro sommando o sottraendo 10. +16: la data viene mostrata nel formato americano MM/GG invece che nel formato standard GG/MM +32: la data viene mostrata nel formato tedesco GG.MM.AA invece che nel formato standard GG/MM (solo PROX+G/TRAX+G) +128: l’orario viene mostrato nel formato 12 ore AM/PM invece che nel formato standard 24 ore CONFIGURAZIONE 02 DirMode 0..164 76 (4) Tipo di rilevamento del senso di entrata / uscita e aspetto dell’ultima linea del display in Ril.Presenze/Contr.Accessi. 0: display = contenuto del param.93, direzione implicita “uscita”. Dopo una lettura valida, viene visualizzato soltanto il codice personale, senza l’indicazione della direzione, ad eccezione dei casi in cui venga associata direzione opposta ad un lettore ausiliario (cioè se almeno uno fra i bit 0, 1, 2 del parametro 71-AuxDir è impostato ad ‘1’). Analogamente, in fase di revisione dati di presenza (cfr. § 3.5.10), le timbrature non vengono incolonnate secondo il criterio della direzione, ma sono disposte una di seguito all’altra; fanno eccezione gli stessi casi suddetti, più il caso in cui il bit 7 del parametro 71-AuxDir è impostato ad ‘1’ (vedi). per lanciare l’eventuale transazione PROC_ , dove ‘ ’ = {BEL} = chr(7) E’ possibile usare il tasto (vedi § 6.4.1). ; vedi nota (*) 1: display = “[<-” o “[->” (secondo le fasce orarie) e uso standard di 2: display = “->]” o “<-]” (secondo le fasce orarie) e uso standard di ; vedi nota (*) ; vedi nota (*) 3: display = “<entrata>” o “<uscita>” (secondo le fasce orarie) e uso standard di 4: display = “esce entra” (verso di lettura badge); vedi nota (*) 5: display = “entra esce” (verso di lettura badge); vedi nota (*) 6: display = contenuto del param.93, direzione implicita “entrata”. Vale tutto quanto detto per il valore 0. +10 : attiva anche la porta COM1 per lettori ausiliari (Cfr. param.71). +20 : attiva anche la porta COM2 per lettori ausiliari (solo PROX+F/G,Cfr. param.71). D (con i +128 (solo PROX+G): mantiene in ogni caso visualizzata l’icona associata al tasto funzione consueti valori 0, 4, 5, e 6 tale icona non viene mostrata). Vedi anche § 8.1.2. (*) NB: in caso di display grafico (terminali PROX+G o TRAX+G), i valori 1 e 2 non funzionano correttamente: al loro posto può essere usato il solo valore 3, ed in questo caso le scritte “<entrata>” e “<uscita>” sono sostituite da un’unica icona “IN” e “OUT”. Anche nei casi dei valori 4 e 5 le scritte sono sostituite dalle rispettive icone. Vedi anche § 3.5.1 e § 8.1.2. 03 ShowBadge 0..99 (6) Tempo di visualizzazione del codice personale del badge in rilevazione presenze e controllo accessi, in ottavi di secondo. Se non desiderate visualizzare questa informazione, impostate un valore uguale a zero. 04 RevDir1 HH:MM (11:00) Ora di commutazione dallo stato di ingresso a quello di uscita per i DirMode da 1 a 3. 06 RevDir2 HH:MM (13:00) Ora di commutazione dallo stato di uscita a quello di ingresso per i DirMode da 1 a 3. 08 RevDir3 HH:MM (15:30) Ora di commutazione dallo stato di ingresso a quello di uscita per i DirMode da 1 a 3. 10 COM1HSK 0..127 (36) Modo Handshake per le comunicazioni sulla COM1 - valido a bit. In caso di PROX+F/G, affinchè la trasmissione dati sia abilitata, occorre mantenere il segnale CTS a livello alto durante tale fase, collegandolo al segnale RTS con un ponticello (nel caso di collegamento a 3 fili) o ad un segnale mantenuto alto dall’altro dispositivo (nel caso di collegamento a 5 fili). In caso di TRAX+F/G, affinché la trasmissione dati sia abilitata occorre mantenere il segnale DSR a livello alto, collegandolo ad un segnale mantenuto alto dall’altro dispositivo (collegamento a 4 fili). bit 0 (+1): DTR/RTS. 0-Handshake software: il terminale implementa il protocollo XON/XOFF per controllare il flusso dei caratteri ricevuti e, in caso di PROX+F/G, il segnale RTS viene alzato prima di trasmettere una stringa e abbassato dopo avere trasmesso il terminatore; 1-Handshake hardware: la trasmissione di XON/XOFF per controllare il flusso dei caratteri ricevuti è disabilitata e, in caso di PROX+F/G, il pin RTS viene utilizzato come se si trattasse in realtà di un DTR, ovvero per controllare il flusso dei caratteri ricevuti. NB: in caso di TRAX+F/G, mancando i segnali RTS e CTS, il bit 0=1 equivale in pratica a bit 0=0 e bit 4=1: ciò significa che non vi è alcun controllo di flusso (sconsigliato). CONFIGURAZIONE 77 bit 1 (+2): RX/ACK. 1: ACK/NAK inviati dopo la ricezione di un messaggio. Il terminale invia un {NAK} se durante la ricezione si sono verificati errori di parita‘. bit 2 (+4): TX/XON. 1: XON/XOFF controllati dal terminale durante la trasmissione dati verso l’elaboratore, il quale quindi può regolare il flusso dei caratteri ricevuti dal terminale tramite i caratteri {XON} e {XOFF}. NB: i bit 2 e 3 non possono essere contemporaneamente a 1. bit 3 (+8): TX/ACK. 1: ACK/NAK controllati durante la trasmissione. Se riceve un {NAK}, il terminale ritrasmette l’ultimo messaggio inviato. NB: i bit 2 e 3 non possono essere contemporaneamente a 1. bit 4 (+16): NOXON. 1: disabilita la trasmissione di XOFF/XON per controllare il flusso dei caratteri ricevuti anche se bit 0=0. bit 5 (+32): RTSOFF (solo PROX+F/G). 1: mantiene alto il segnale RTS per tutta la sessione di comunicazione, non solo durante la trasmissione. Da usare solo in caso di handshake software (bit 0=0). bit 6 (+64): No AutoOffRTS. Riservato ad alcune applicazioni specifiche sviluppate in ‘C’. Esempio: Il valore di default ‘36’, che corrisponde a bit 2=1 e bit 5=1 (4+32=36), cioè controllo XON/XOFF abilitato sia in ricezione che in trasmissione e RTS sempre alto, è il valore consigliato in caso di handshake software e collegamento PROX+F/G a 3 fili (con ponticello RTS-CTS), e può essere usato anche in caso di collegamento TRAX+F/G a 4 fili. Il valore ‘1’, invece, è quello standard in caso di handshake hardware con collegamento a 5 fili (solo PROX+F/G). 11 COM1Baud 0..6 (4) Velocità di comunicazione per COM1 (baud). 1 = 1200 2 = 2400 3 = 4800 4 = 9600 5 = 19200(*) 6 = 38400(*) 0 = Porta COM1 non utilizzata, input ausiliario IN2 abilitato(solo TRAX+F/G) (*) solo PROX+F/G Attenzione: le velocità 19200 e 38400 bps non possono essere usate in modo indipendente su COM1 and COM2: se una porta COM è impostata a 19200, l’altra non può essere impostata a 38400, ma soltanto a velocità identica o inferiore. 12 COM1Par 0..4 (0) Parità dei caratteri trasmessi via COM1 e lunghezza parola. 0 : Nessuna e 8 bit 1 : Dispari e 7 bit 2 : Pari e 7 bit 3 : Dispari e 8 bit 4 : Pari e 8 bit 13 COM1In 0..6 (0) Modalità di trattamento dei messaggi ricevuti dalla COM1. 0 : funziona come shell comandi. 1 : registrazione diretta nel file COM1DAT. 2 : in caso di prompt con flag “1” scarta il messaggio dopo la ridirezione nel buffer di tastiera. 3 : analogo a 1 ma in formato packed. 4 : riservato a software custom. 5 : ritrasmissione diretta sul canale ONLINE corrente (cfr. §4.5); alla stringa ricevuta da COM1 viene accodato un carattere “ ’ “=chr(39). 6 : come ‘1’, ma ogni messaggio ricevuto lancerà automaticamente la transazione utente PROC_L (è consigliabile impostare il parametro 13 a ‘1’ all’interno della PROC_L, se è possibile ricevere altri messaggi ma non si vuole che questi ne interrompano l’esecuzione, e quindi reimpostarlo a ‘6’ all’uscita). 14 COM1TC 0..255 (13) Valore ascii del carattere terminatore dei messaggi ricevuti dal terminale su COM1. Se “255” viene usata la lunghezza max=Com1MLS. CONFIGURAZIONE 15 COM1MLS 1..120 78 (120) Lunghezza prefissata delle stringhe in ricezione. Vale solo se Com1TC=255. 16 COM1LF 0..4 (1) Carattere terminatore delle stringhe trasmesse da COM1. 0 : nessun carattere aggiunto dal terminale. 1 : CR-LF. 2 : solo CR. 3 : solo ETX. 4 : solo Ctrl+Z = chr(26). 17 TxFileCk 0..1 (0) Se ‘1’, al termine di ogni trasmissione di file dal terminale ad host (ottenuta mediante i comandi TYPE o DBL), dopo il numero di record trasmessi, viene accodato un checksum costituito da un numero di 6 caratteri, ottenuto sommando fra loro i valori ASCII di tutti i caratteri trasmessi, ed effettuandone il modulo 2^15 (il massimo valore che il checksum può assumere è quindi 32767). Si intendono qui i dati ‘nettì, privi di terminatori, indirizzo di terminale, ecc. Vedere es. comando TYPE. 18 NETMode 0..147 (0) Seleziona la modalità di comunicazione sul canale online corrente ed il funzionamento come master o slave sulla NET92 (Cfr. §5.2 per una spiegazione più dettagliata dei vari modi di funzionamento associati ai valori del parametro 18). Il canale online corrente può essere impostato inviando ad una delle porte disponibili un comando ONLINE, CONSIDLE o %% (o un messaggio online temporaneo preceduto dal carattere {ESC}). Questa impostazione rimane anche se il terminale viene spento. Il canale online impostato per default alla prima accensione o dopo un reset lungo (cfr. §2.8) o l’invio di un comando di reset %%1 (cfr. §6.1.4) è la NET92. 0 : “slave” normale completamente passivo (modalità OFFLINE). 1 : “slave” con trasmissione online dei codici dei tasti funzione per i quali non è stata caricata in memoria la corrispondente procedura utente PROC_x. In seguito alla trasmissione del tasto funzione premuto, e solo se il par. 66-WaitOnLin è impostato ad un valore diverso da ‘0’, il terminale entra in modalità ONLINE. 2 : “slave” con partenza ONLINE ad ogni reset. 3 : “slave” come 1, piu’ la trasmissione immediata dei passaggi/ presenze (modo SEMI-ONLINE, si veda anche il parametro 27-Storage). 4 : non usato 5 : “master” per raccolta dati passiva da terminali NET92 (p.es. #921 AdapTrax o #922 TRAX+). I record vengono registrati nel file N92ammgg). 6 : “master” controllo accessi per un massimo di 31 lettori slave #914 HotMAX o #916 EnTRAX. Il file PREammgg contiene due caratteri in più (indirizzo dello slave sul quale è avvenuta la lettura o ‘00’ per lettura effettuata sul master). Se non esiste il file “AXGATES”, le transazioni provenienti dagli slave sono registrate con direzione “0”, altrimenti il carattere in AXGATES di posizione uguale all’indirizzo dello slave ne stabilisce la modalità di funzionamento: “2” non fa registrare la transazione, ma viene effettuato il test sul badge per l’attivazione del relé sul terminale slave, diverso da “2” fa registrare la transazione con ‘direzione’ uguale al carattere specificato. 7 : “master” controllo accessi per un massimo di 31 lettori slave #914 HotMAX o #916 EnTRAX. La struttura del file PREammgg resta invariata (l’indirizzo dello slave non è registrato). Se non esiste il file “AXGATES”, le transazioni provenienti dagli slave non sono registrate, ma viene effettuato il test sul badge per l’attivazione del relé sul terminale slave, altrimenti tutto funziona esattamente come specificato per il valore ‘6’. 8 : “master” con gestione a programmi “custom” 9 : (riservato) “master” stato temporaneo in fasi “LOGON” (cfr. §6.1.4). NB: Una particolare modalità master definita “gateway continuo” può essere aggiunta al normale funzionamento dei modi “slave”, sommando 16 ai rispettivi valori del parametro 18 (quelli inferiori a ‘4’): i CONFIGURAZIONE 79 risultanti valori del parametro 18 che hanno senso sono 16, 17, 18 e 19. In questa modalità il terminale è anche in grado di gestire la rete NET92 per comunicare con fino a 31 terminali slave connessi sulla porta NET92 (HotMAX, EnTRAX, TRAX, PROX, ecc.). I messaggi da/per i terminali sono ricevuti/trasmessi attraverso i canali COM1/COM2 o la porta Ethernet integrata (solo TRAX+F/G), preceduti dal prefisso “<NN” o “>NN” (Cfr. comando “>NNmessaggio”). Attenzione: tutti i valori del parametro 18 superiori a ‘4’ (modi “master” e “(master)gateway continuo”) hanno effetto su TRAX+F/G solo se è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. §3.3.8). NB: Un’altra particolare modalità di funzionamento può essere attivata sommando 128 al valore corrente del parametro 18 (solo TRAX+F/G): ciò abilita la gestione dell’interfaccia Ethernet integrata come “gateway implicito” NET92, solo quando essa è configurata con il parametro C che vale ‘3.4’. In pratica viene emulato il comportamento dei vecchi #926 EtherTRAX+P: è possibile comunicare con fino a 31 terminali slave connessi sulla porta NET92 e aventi indirizzi compresi nel range 01..31 (HotMAX, EnTRAX, TRAX, PROX, ecc.); i messaggi da/per i terminali ricevuti/trasmessi attraverso la porta Ethernet integrata sono preceduti da un singolo carattere il cui codice ASCII è l’indirizzo NET92 del mittente/destinatario: tale carattere viene implicitamente aggiunto o filtrato dalle primitive di comunicazione fornite da TMC (cfr. § 4.4). Attenzione: il terminale la cui interfaccia Ethernet funge da “gateway” viene indirizzato come se fosse un qualunque terminale slave connesso al bus NET92, pertanto anch’esso deve avere un indirizzo compreso nel range 01..31. Solo i seguenti valori del parametro 18 sono consentiti: 128, 129, 130, 131, 134 e 135. I valori 134 e 135 comportano una modalità di funzionamento alternativa. Se c’è un programma di controllo in esecuzione su un PC host connesso via Ethernet e raggiungibile, tutto funziona come con il valore 128 (sistema ONLINE con l’interfaccia Ethernet integrata del TRAX+F/G funzionante come “gateway implicito” ). Se il programma di controllo non è in esecuzione o il PC host è spento o non raggiungibile, TRAX+F/G commuta automaticamente alla modalità di funzionamento corrispondente ai valori 6 o 7, rispettivamente (sistema OFFLINE con TRAX+F/G funzionante come “master controllo accessi”). Quando il programma di controllo in esecuzione sul PC host diverrà nuovamente raggiungibile, TRAX+F/G ritornerà automaticamente alla modalità di funzionamento corrispondente al valore 128, e così via. Attenzione: i valori ‘128’ e superiori del parametro 18 hanno effetto su TRAX+F/G solo se sono state precedentemente inserite le apposite chiavi di attivazione firmware FWK01_ETHERNET (non necessaria se il terminale ha già la porta Ethernet integrata abilitata alla ricezione dei comandi di shell) e FWK03_N92GATEWAY (cfr. §3.3.8). I valori ‘134’ e ‘135’ richiedono anche la chiave FWK02_MAXMASTER (vedi sopra). 19 Address 1..254 (254) Indirizzo del terminale come “slave” NET92 e in collegamenti “multipoint” su COM2. 20(1) EthIPMode (solo TRAX+F/G con firmware r.86 o successive) 0..15 (0) Modalità di gestione Ethernet - valido a bit. bit 0 (+1): modalità DHCP. Se impostato a ‘1’ abilita la gestione del protocollo DHCP per l’assegnazione automatica di un indirizzo IP locale (A) dinamico. Vengono inoltre ricevuti dal server DHCP, e memorizzati, i valori della Subnet Mask (S) e l’indirizzo IP del Gateway (G). Reimpostando questo bit a ‘0’, i valori correnti di A, S e G vengono comunque mantenuti fino a diversa impostazione, da effettuarsi utilizzando il menu “IP Config.” (cfr. § 3.3.6). Al contrario, una diversa impostazione effettuata in questo modo non avrà effetto finché questo bit rimane impostato a ‘1’. bit 1 (+2): modalità AllMaster. Se impostato a ‘1’ l’interfaccia Ethernet integrata accetta e inoltra al terminale tutti i messaggi (pacchetti UDP di tipo DATA) che riceve dal lato Ethernet, qualunque sia l’indirizzo IP sorgente, reimpostando a run-time il parametro Master (M) se diverso da esso. Reimpostando questo bit a ‘0’, il valori corrente di M viene comunque mantenuto fino a diversa impostazione, da effettuarsi utilizzando il menu “IP Config.” (cfr. § 3.3.6). bit 2 (+4): modalità FixDestPort. Se impostato a ‘1’ il terminale risponde sempre verso la porta UDP impostata utilizzando il menu “IP Config.” (default 2133h=8499, cfr. § 3.3.6), qualunque sia la porta UDP sorgente dei comandi ricevuti. Modalità resa disponibile per ragioni di compatibilità con le versioni di firmware di interfaccia Ethernet precedenti alla 57. bit 3 (+8): modalità KeepAlive. Se impostato a ‘1’ il terminale invia spontaneamente, ad ogni minuto, un messaggio equivalente alla risposta al comando “////h” all’indirizzo IP impostato come Master (M). Le prime 12 cifre esadecimali della stringa inviata rappresentano l’indirizzo fisico (MAC) dell’interfaccia Ethernet integrata. Questa impostazione non richiede un riavvio del terminale. CONFIGURAZIONE 80 bit 4 (+16): modalità Flagged per KeepAlive. Se impostato a ‘1’, e se anche il bit 3=’1’, il terminale si comporta come nella modalità KeepAlive standard, tranne che per un particolare: nel messaggio inviato spontaneamente ad ogni minuto, l’ultimo carattere separatore è un “punto” (‘.’) invece del “due punti” (‘:’). Questa impostazione non richiede un riavvio del terminale, e può essere usata all’interno di una PROC per segnalare all’host un cambiamento di stato o una richiesta di servizio. 20(2) COM2HSK (solo PROX+F/G) 0..127 (36) Modo Handshake per le comunicazioni sulla COM2 - valido a bit. Affinchè la trasmissione dati sia abilitata, occorre mantenere il segnale CTS a livello alto durante tale fase, collegandolo al segnale RTS (operazione effettuata implicitamente configurando i ponticelli della COM2 per il collegamento RS232 a 3 fili) o ad un segnale mantenuto alto dall’altro dispositivo (nel caso di collegamento a 5 fili). bit 0 (+1): DTR/RTS. 0-Handshake software: PROX+F alza il segnale RTS prima di trasmettere una stringa, e lo abbassa dopo avere trasmesso il terminatore; PROX+F implementa il protocollo XON/XOFF per controllare il flusso dei caratteri ricevuti. 1-Handshake hardware: PROX+F utilizza il pin RTS come se si trattasse in realtà di un DTR, ovvero per controllare il flusso dei caratteri ricevuti. La trasmissione di XON/XOFF per controllare il flusso dei caratteri ricevuti è disabilitata. bit 1 (+2): RX/ACK. 1: ACK/NAK inviati dopo la ricezione di un messaggio. PROX+F invia un {NAK} se durante la ricezione si sono verificati errori di parita‘. bit 2 (+4): TX/XON. 1: XON/XOFF controllati da PROX+F durante la trasmissione dati verso l’elaboratore, il quale quindi può regolare il flusso dei caratteri ricevuti dal terminale tramite i caratteri {XON} e {XOFF}. NB: i bit 2 e 3 non possono essere contemporaneamente a 1. bit 3 (+8): TX/ACK. 1: = ACK/NAK controllati durante trasmissione. Se riceve un {NAK}, PROX+F ritrasmette l’ultimo messaggio inviato. NB: i bit 2 e 3 non possono essere contemporaneamente a 1. bit 4 (+16): NOXON. 1: disabilita la trasmissione di XOFF/XON per controllare il flusso dei caratteri ricevuti anche se bit 0=0. bit 5 (+32): RTSOFF. 1: mantiene alto il segnale RTS per tutta la sessione di comunicazione, non solo durante la trasmissione; l’RTS è abbassato solo dopo la ricezione del comando IDLE. Da usare solo in caso di handshake software (bit 0=0). bit 6 (+64): No AutoOffRTS. Riservato ad alcune applicazioni specifiche in ‘C’. Esempio: Il valore di default ‘36’, che corrisponde a bit 2=1 e bit 5=1 (4+32=36), cioè controllo XON/XOFF abilitato durante la trasmissione e RTS sempre alto, è il valore consigliato in caso di handshake software con collegamento a 3 fili. Il valore ‘1’, invece, è quello standard in caso di handshake hardware con collegamento a 5 fili. 21 COM2Baud (solo PROX+F/G) 1..6 (2) Velocità COM2 (baud). 1 = 1200 2 = 2400 3 = 4800 4 = 9600 5 = 19200 6 = 38400 (*) Attenzione: le velocità 19200 e 38400 bps non possono essere usate in modo indipendente su COM1 and COM2: se una porta COM è impostata a 19200, l’altra non può essere impostata a 38400, ma soltanto a velocità identica o inferiore. 22 COM2Par (solo PROX+F/G) Parità COM2 e lunghezza parola. 0 : Nessuna e 8 bit 1 : Dispari e 7 bit 2 : Pari e 7 bit 3 : Dispari e 8 bit 4 : Pari e 8 bit 5 : Protocollo slave NET92 0..4 (0) CONFIGURAZIONE 23 COM2In (solo PROX+F/G) 0..5 81 (0) Modalità di trattamento dei messaggi ricevuti dalla COM2. 0 : funziona come shell comandi. 1 : registrazione diretta nel file COM2DAT. 2 : in caso di prompt con flag “2” scarta il messaggio dopo la ridirezione nel buffer di tastiera. 3 : analogo a 1 ma in formato packed. 4 : riservato a software custom. 5 : ritrasmissione diretta sul canale ONLINE corrente (cfr. §4.5); alla stringa ricevuta da COM2 viene accodato un carattere “ ` “=chr(96). 6 : come ‘1’, ma ogni messaggio ricevuto lancerà automaticamente la transazione utente PROC_L (è consigliabile impostare il parametro 23 a ‘1’ all’interno della PROC_L, se è possibile ricevere altri messaggi ma non si vuole che questi ne interrompano l’esecuzione, e quindi reimpostarlo a ‘6’ all’uscita). 24 COM2TC (solo PROX+F/G) 0..255 (13) Carattere terminatore dei messaggi ricevuti da PROX+F in COM2. 255 : viene usata la lunghezza max=Com2MLS. 25 COM2MLS (solo PROX+F/G) 1..120 (120) Lunghezza prefissata delle stringhe in ricezione; vale se COM2TC=255. 26 COM2LF (solo PROX+F/G) 0..3 (1) Terminazione delle stringhe trasmesse da PROX+F su COM2. 0 : nessun carattere aggiunto da PROX+F. 1 : CR-LF. 2 : solo CR. 3 : solo ETX. 27 Storage 0..12 (0) Imposta globalmente la modalità di registrazione dati prodotti dalle transazioni utente. 1..4: questi valori producono gli stessi effetti dei comandi @S1..@S4 (Cfr. § 6.4.3), che se specificati in una transazione utente scavalcano l’impostazione del parametro 27-Storage. Inoltre, se il parametro 27Storage è impostato a ‘4’, in modo SemiOnLine (parametro 18-NetMode impostato a ‘3’) il record generato dalla lettura di un badge viene sempre inviato all’host computer con il prefisso ‘#R’. +8: nel caso in cui sia stata selezionata la modalità di registrazione su “singolo record” (valori da ‘1’ a ‘4’), sommando il valore ‘8’ la registrazione dei dati viene disabilitata, in modo tale da massimizzare la velocità di esecuzione (utile per transazioni molto complesse): in questo caso il record viene creato comunque, ma contiene invariabilmente la stringa “not supported” (con in testa il carattere identificativo della transazione se è selezionata la modalità ‘4’). 28 K_Mode 0..1 (0) Se ‘1’, abilita l’esecuzione di una specifica PROC_K quando un tasto numerico viene premuto durante il funzionamento standard in rilevazione presenze / controllo accessi, per consentire l’inserimento manuale standard di un codice personale (cfr. §3.5.12). Poiché non è possibile determinare la direzione in base al verso di strisciamento, questa funzionalità è incompatibile con i valori 4 e 5 del par. 02-DirMode. Attenzione: la PROC_K deve essere presente e deve contenere un prompt con il flag ‘K’ e un numero di underscores pari al valore corrente del par. 43-BadgeLen: la prima posizione verrà automaticamente riempita dalla cifra corrispondente al tasto premuto per lanciare la transazione. Inoltre, prima di uscire, la PROC_K deve impostare il par. 97-Param1 al valore inserito nel prompt, ed è meglio prevedere un timeout sul prompt stesso. Un possibile esempio di PROC_K (in formato “sorgente”, cfr. §6.4.4) è il seguente: @ PROC_K ; titolo non mostrato @W.a ; salta alla linea .a in caso di timeout @@CFG 97 A ; imposta il par.97 ad un valore nullo :Kf0.:{FF}Prego digitate|il vostro codice:|______{ESC}%D{40} ; prompt con timeout di 5 secondi @!97 ; imposta il par.97 al valore inserito .a @Qd ; esce senza salvare i dati e senza controllo sulla CONFIGURAZIONE 82 ; lunghezza totale del codice (par.42+par.43) 29 TPwrOff 0..255 (10*) Tempo di spegnimento automatico in caso di inattività in mancanza di alimentazione, in minuti. 0: spegne al primo cambio di minuto. 254: solo sul TRAX+F/G, attiva la ricarica veloce della batteria (si completa in 3 ore, mentre la normale ricarica “lenta” impiega più di 50 ore a batteria scarica, anche se la velocità di ricarica è maggiore all’inizio e decresce all’aumentare del livello di carica). Appena impostato questo valore parte la ricarica, il parametro 29-TPwrOff viene poi reimpostato automaticamente al valore di default (10 minuti). N.B. la ricarica veloce si attiva anche automaticamente dopo che il terminale si è spento da solo per batteria scarica. 255 : non spegne mai. (*) Solo sui terminali 929.05x.20 SuperMAX+ il valore di default del parametro è 60 invece di 10. 30 RelayDoor 1..255 (4) Tempo di attivazione (in 1/8sec) dei relè in Controllo Accessi. NB: il valore ‘1’ significa “relé NON attivato”. Solo i valori da ‘2’ in su fanno effettivamente attivare il relé. 31 RelayMstr 0, 2..255 (0) Tempo di attivazione del relè 3 per pilotare orologi passivi (in 1/8sec); se ‘0’, il terminale non è attivo come “master clock”. NB: nel TRAX+F/G questo parametro ha effetto solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’. In questo caso, il TeleRelay che viene attivato allo scoccare di ogni minuto è quello avente indirizzo ‘3’ (se presente). 32 RelayExit 0..4 (1) Relè da attivare in caso di passaggi-presenze in direzione di uscita; se ‘0’ non attiva alcun relè. Di default, in uscita attiva il relé 1. NB: Nel PROX+F/G il valore ‘4’ non è consentito, essendoci solo 3 relé. Nel TRAX+F/G questo parametro può assumere tutti i valori da ‘1’ a ‘4’ solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’. In questo caso, il TeleRelay che viene attivato per i passaggi in uscita è quello avente l’indirizzo specificato dal par. 32. Se invece par. 56=0, allora l’unico valore che ha effetto è ‘1’, che attiva l’unico relé interno. 33 InputMode 0..255 (0) Determina il modo di trattamento degli eventi di input, nel caso in cui la gestione degli eventi sia attivata (par. 65-InputCtrl diverso da ‘0’). E’ valido a bit: il “nibble” superiore comanda la scrittura degli eventi sul file INPUTS, il “nibble” inferiore la trasmissione ON-LINE degli eventi. bit [7,6,5,4]: rispettivamente abilitano la scrittura record in INPUTS per gli eventi di input4, input3, input2, input1. bit [3,2,1,0]: rispettivamente abilitano la trasmissione ON-LINE degli eventi di input4, input3, input2, input1. NB: in caso di TRAX+F/G, solo il bit 4 ed il bit 0 sono effettivamente collegati alle variazioni dell’unico input standard IN1. Se si utilizza anche l’input ausiliario IN2 (disponibile solo in alternativa all’uso della porta RS232 COM1), il bit 5 ed il bit 1 sono collegati alle variazioni di quest’ultimo. Gli altri hanno effetto solo in caso di utilizzo dei comandi %+A..%+D (Cfr. § 6.3). 34 Alarms 0..3 (0) Se diverso da ‘0’ attiva la gestione degli eventi temporizzati descritti nel file ALARMTB. In caso di PROX+F/G, il file deve esistere sul drive A se il parametro vale ‘1’, sul drive B se ‘2’, sul drive C se ‘3’. In caso di TRAX+F/G, i valori ‘1’, ‘2’ e ‘3’ sono equivalenti. 35 Rel.NotOk 0..255 (0) Attiva il relè 2 per il tempo specificato (in 1/8 sec) in caso di accesso negato (risposta “Badge non valido” in Controllo Accessi). Se ‘0’, il relè non viene attivato. CONFIGURAZIONE 83 NB: nel TRAX+F/G questo parametro ha effetto solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’. In questo caso, il TeleRelay che viene attivato in caso di accesso negato è quello avente indirizzo ‘2’ (se presente). 36 Input1 0..255 (0) Base di conteggio delle variazioni sull’IN1 per generare un evento. 0 : disabilita il controllo dell’input1. 37 Input2 0..255 (0) E’ significativo sul TRAX+F/G solo se si utilizza l’input ausiliario IN2 (disponibile solo in alternativa all’uso della porta RS232 COM1). Come il parametro 36 ma relativamente all’input 2. 38 Input3 0..255 (0) E’ significativo solo sul PROX+F/G. Come il parametro 36 ma relativamente all’input 3. 39 Input4 0..255 (0) E’ significativo solo sul PROX+F/G. Come il parametro 36 ma relativamente all’input 4. 40 BadgeTk 0..255 (4) Tipo di decodifica del lettore di badge. 0 = Solo lettore barcode interno. bit 0 (+1): solo nel caso in cui sia caricata la versione speciale “H” del firmware di base e inserita la chiave di attivazione firmware FWK04_HID (cfr. § 9.1.4), forza la decodifica delle carte HID secondo il formato 26bit H10301 a 8 cifre (3+5), indipendentemente dal numero di bit contenuti nella carta. bit 1 (+2): abilita decodifica lettore barcode o magnetico interno (decoder standard traccia 2 ISO). bit 2 (+4): abilita decodifica lettore barcode o magnetico interno + barcode esterno su connettore RJ11 o magnetico esterno su connettore strip secondario. bit 3 (+8): abilita il controllo del check digit Modulo 10 IBM sui codici a barre in standard Interleaved 2/5. Il controllo del check digit dei barcode in standard EAN-8 ed EAN-13 viene sempre effettuato e non può essere disabilitato. Quando è letto un barcode tipo Code-39, è applicato il checksum Modulo 43. I codici a barre stampati con check digit errato sono rifiutati. bit 4 (+16): vengono accettati anche codici di badge con lunghezza inferiore alla somma dei parametri 42 e 43: il codice personale restituito è composto dalle cifre residue lette a partire dalla posizione specificata dal par. 42, giustificate come segue in base al valore del bit 4 del par. 71-AuxDir: Par. 71.bit4=’0’: le cifre vengono allineate a destra, con tanti zeri ‘0’ di riempimento a sinistra quanti sono necessari per raggiungere la lunghezza specificata dal par.43. Par. 71.bit4=’1’: le cifre vengono allineate a sinistra, con tanti spazi ‘ ’ di riempimento a destra quanti sono necessari per raggiungere la lunghezza specificata dal par.43. (1) bit 6 (+64) : solo per i terminali FingerTRAX+G con lettore RFID 13.56MHz R&W aventi un p/n del tipo 929.xxx.34, disabilita la ricerca dei template delle impronte memorizzati sulle carte Mifare, in modo tale che sia possibile utilizzare il solo UID delle carte ed effettuare la verifica sulla base dei template memorizzati sul file system del terminale. (1) bit 7 (+128) : solo nel caso in cui sia caricata la versione speciale “M” del firmware di base (cfr. § 9.1.8), abilita la trasmissione immediata di tutti i messaggi ricevuti dal lettore 13.56MHz R&W all’host computer, sul canale online corrente. (2) Solo nel caso in cui sia caricata la versione speciale “H” del firmware di base e inserita la chiave di attivazione firmware FWK04_HID (cfr. § 9.1.4), ciascuna configurazione dei bit 5, 6 e 7 seleziona un diverso ( ) formato di decodifica delle carte HID * , secondo la seguente tabella: bit 7 (+128)(2) bit 6 (+64)(2) bit 5 (+32) 0 0 0 Rilevamento automatico delle carte, sono supportati i seguenti formati: 26bit H10301 - 8 cifre (3+5) 37bit H10304 (16bits site code+19bits key code) - 12 cifre (5+7) 34bit H10306 - 10 cifre (5+5) 32bit (12bits site code + 16bits key code) - 9 cifre (4+5) 40bit formato Wiegand - 9 cifre (4+5) 0 0 1 36bit (17bits site code + 16bits key code) - 11 cifre (6+5) CONFIGURAZIONE 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 84 37bit H10302 (35bits key code) - 11 cifre 32bit (12bits site code + 18bits key code) - 10 cifre (4+6) 36bit (8bits site code + 24bits key code) - 11 cifre (3+8) 36bit (12bits site code + 20bits key code) - 11 cifre (5+6) 35bit Corporate 1000 - 11 cifre (4+7) 32bit (15bits site code + 15bits key code) - 10 cifre (5+5) ( ) * A meno che non sia impostato il bit 0=’1’, nel qual caso viene forzata sempre la decodifica 26bit H10301 a 8 cifre (3+5). 41 BadgeSys 0..99 (0) Posizione della chiave di sistema nel codice del badge. La prima cifra del badge corrisponde alla posizione “1”. 0 : non controllata. 42 BadgeCod 0..99 (0)* Posizione del codice personale nel codice del badge. La prima cifra del badge corrisponde alla posizione “0”. Nota: è possibile definire una posizione diversa del codice personale in caso di lettura proveniente dal connettore RJ11 per lettori barcode o dallo strip secondario per lettori magnetici o di prossimità, impostando il parametro 82-ExtBdgCod ad un valore diverso da quello di default (‘0’). *Se è stato effettuato un reset dei parametri dopo avere caricato una versione speciale “H” o “D” del firmware di base (cfr. § 9.1.4 e 9.1.5), o in ogni caso se il terminale esce dalla fabbrica con un firmware di questo tipo, questo parametro assume il valore di default ‘3’, in modo tale da gestire correttamente il formato HID 26 bit H10301. 43 BadgeLen 1..16 (6)* Lunghezza del codice personale che parte da BadgeCod. Quando modificato cancellate i tutti i file PREammgg. *Se è stato effettuato un reset dei parametri dopo avere caricato una versione speciale “H” o “D” del firmware di base (cfr. § 9.1.4 e 9.1.5), o in ogni caso se il terminale esce dalla fabbrica con un firmware di questo tipo, questo parametro assume il valore di default ‘5’, in modo tale da gestire correttamente il formato HID 26 bit H10301. 44 Access 0..22 (0) Controllo accessi. 0 : disabilitato. 1 : attiva il relè 1 in direzione di entrata se il codice di sistema è riconosciuto; di default il parametro 32 è impostato per attivare il relé 1 anche in direzione d’uscita. Modificate il valore del parametro 32 per attivare relé diversi a seconda della direzione di passaggio. 2 : come 1 ma il file “AXGROUPS” è usato come black list. Se AXGROUPS non esiste, l’accesso è negato a tutti i badge. Se AXGROUPS esiste, l’accesso è negato ai soli badge appartenenti ai gruppi elencati in AXGROUPS stesso. Non è effettuato alcun controllo su AXCARDS. 3 : abilita all’accesso i badge appartenenti ai gruppi presenti in AXGROUPS oppure elencati in AXCARDS (con in piu‘ gli ulteriori controlli attivati dall’eventuale presenza dei file AXPOOLS e AXTIMET). Il file AXGROUPS deve esistere (eventualmente vuoto), altrimenti il terminale non procede con i controlli su AXCARDS. 4 (valore usato nella maggior parte delle applicazioni di Controllo Accessi): Viene controllata l’esistenza del file AXCARDS, e la presenza in quest’ultimo del codice personale estratto dal badge, con in piu‘ gli ulteriori controlli attivati dall’eventuale presenza dei file AXPOOLS e AXTIMET. Il file AXGROUPS non deve essere presente; in caso contrario, affinchè sia possibile effettuare l’accesso, occorre elencare in AXGROUPS tutti i gruppi di appartenenza dei badge elencati in AXCARDS. 5 : AXGROUPS non deve essere presente e AXCARDS funziona come black-list. L’accesso è negato a tutti i badge il cui codice personale è presente in AXCARDS. In questa modalità i file AXPOOLS e AXTIMET non sono usati. 6 : il funzionamento del controllo accessi è analogo a quello ottenuto col valore ‘5’, ma ogni nuovo codice CONFIGURAZIONE 85 personale viene “appeso” nel file AXCARDS. In questo modo, essendo AXCARDS usato come black-list, il secondo tentativo di accesso di un badge otterrà esito negativo (modo “passaggi singoli”). Naturalmente occorre che l’host effettui una gestione accorta del file AXCARD, ad esempio azzerandolo alla mezzanotte, oppure annullando i codici personali (ad esempio mediante comandi tipo “DBC”, Cfr. § 6.1.1) ai quali concedere un altro accesso, ecc. Di solito Il file AXGROUPS non è presente; in caso contrario può essere utilizzato per elencare i gruppi di badge abilitati alla modalita‘ ‘passaggio singolo’ descritta. Anche in questa modalità i file AXPOOLS e AXTIMET non sono usati. Quando impostate il par. 44 a ‘6’, è importante disabilitare eventuali impostazioni del par. 68 atte a controllare doppie letture o riletture entro l’ultimo minuto. Sommando il valore 16 ai valori precedenti, quando il terminale è configurato come “master” controllo accessi (parametro 18-NETMode = ‘6’, ‘7’) gli eventuali controlli sui file AXGROUPS, AXCARDS, AXPOOLS e AXTIMET vengono eseguiti soltanto per i tentativi di accesso effettuati sui lettori slave, ma non per le letture effettuate in locale sul terminale master, che sono quindi considerate come semplice “rilevazione presenze”. 45 RecAccess 0..14 (1) Determina la modalita‘ di registrazione dei dati prodotti in rilevazione presenze/controllo accessi. Consente di accettare letture di badge condizionate dallo stato delle linee di input. 0 : non registra alcun accesso e non crea file giornalieri presenze/accessi. 1 : attiva la registrazione degli accessi validi (normale in registrazione presenze). 2 : attiva la registrazione di tutti i tentativi di accesso. Gli accessi non validi sono registrati nel file NOTOKAX. Il file NOTOKAX è creato sul drive A o B (se presente, solo su PROX+F/G) del terminale; il drive C non è interessato. • Sommando il valore 4 ai valori precedenti, il terminale accetta una nuova lettura in direzione di INGRESSO solo se la linea INPUT1 è attiva. Il controllo non è effettuato per le letture provenienti da eventuali lettori slave #914 HotMAX o #916 EnTRAX collegati al terminale configurato come master di rete NET92. • Sommando il valore 8 ai valori precedenti, il terminale accetta una nuova lettura in direzione di USCITA solo se la linea INPUT2 (disponibile sui TRAX+F/G solo in alternativa all’uso della porta RS232 COM1) è attiva. Il controllo non è effettuato per le letture provenienti da eventuali lettori slave #914 HotMAX o #916 EnTRAX collegati al terminale configurato come master di rete NET92. 46 Out2Set (solo PROX+F/G) 0..255 (0) Valido a bit, determina la configurazione di input che attiva il relè 2 al verificarsi di un evento sui contatori degli input. Il “nibble” alto maschera gli input da considerare, il nibble basso determina lo stato richiesto per chiudere il relè 2. 47 Out3Set (solo PROX+F/G) 0..255 (0) Come il parametro 46 ma relativamente al relè 3. 48 Out2Reset (solo PROX+F/G) 0..255 (0) Valido a bit, determina la configurazione di input che disattiva il relè 2 al verificarsi di un evento sui contatori degli input. Il “nibble” alto maschera gli input da considerare, il nibble basso determina lo stato degli input che, se non corrispondente, determina l’apertura del relè 2. 49 Out3Reset (solo PROX+F/G) 0..255 (0) Come il parametro 48 ma relativamente al relè 3. 50 SummerTim GG/MM (99/00) Data di spostamento dell’orologio di una ora avanti allo scattare dell’orario impostato dal par.87-TimeShift. Superata questa data, il sistema carica nel parametro 50 una data non valida: ricordatevi quindi di reimpostarla. Se il parametro è inizializzato col valore ‘88/00’ (tramite il comando “CFG 50 8800”), alle ore 00:00 dell’ultima domenica di marzo, il terminale carica automaticamente il param. 50 con la data di inizio validita‘ ora legale e carica il param. 52 col valore ‘88/00’ (tale valore sara‘ utilizzato l’ultima domenica di ottobre dell’anno corrente per impostare automaticamente la data di fine ora legale). Naturalmente, per eseguire l’impostazione automatica delle date di inizio e fine ora legale, occorre che il terminale resti alimentato e acceso anche durante la notte, o almeno dalle 23:59 alle 04:00. 52 WinterTim GG/MM (99/00) CONFIGURAZIONE 86 Data di spostamento dell’orologio di un’ora indietro allo scattare dell’orario impostato dal par.87-TimeShift. Superata questa data, il sistema carica nel parametro 52 una data non valida: ricordatevi quindi di reimpostarla. Se il parametro è inizializzato col valore ‘88/00’ (tramite il comando “CFG 52 8800”), alle ore 00:00 dell’ultima domenica di ottobre, il terminale carica automaticamente il param. 52 con la data di fine validita‘ ora legale e carica il param. 50 col valore ‘88/00’ (tale valore sara‘ utilizzato l’ultima domenica di marzo dell’anno successivo per impostare automaticamente la data di inizio ora legale). Naturalmente, per eseguire l’impostazione automatica delle date di inizio e fine ora legale, occorre che il terminale resti alimentato e acceso anche durante la notte, o almeno dalle 23:59 alle 04:00. 54(1) Finger 0..124 (0) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G e FingerPROX+F aventi p/n del tipo 928.xxx.3x, 929.xxx.3x, 942.xxx.3x o 942.xxx.4x. 0 = “shortcode” non usati. 1, 2, 3, 4 = lunghezza degli “shortcode” utilizzabili, in modalità verifica, per l’inserimento dei codici da tastiera al posto dei codici personali completi. L’associazione fra gli “shortcode” e i corrispondenti codici personali viene effettuata mediante il caricamento del file SHORTKEY. +8: utilizzo del file NOFINGER: alcuni utenti possono essere esentati dalla verifica dell’impronta (ad esempio nei casi particolari in cui la registrazione o il riconoscimento delle dita abbiano sistematicamente esito negativo). Il file NOFINGER contiene, per ciascuno di questi utenti, il relativo codice personale più un flag che determina se l’esenzione debba avvenire in tutti i casi oppure solo quando venga quantomeno usato un badge per l’identificazione dell’utente. +16: solo per terminali FingerTRAX+G Mifare R&W aventi p/n del tipo 929.xxx.34 e versioni di applicativo finger 3.6 o successive, imposta la modalità “Privacy”: in fase di registrazione delle impronte e dopo la scansione del dito, le domande “Salvo su Term.?” e “Salvo su Carta?” non vengono proposte poiché viene automaticamente selezionata l’opzione “salvataggio solo su carta Mifare”, in modo tale da garantire la privacy dell’utente (i dati personali non risiedono sul terminale). +32: solo per versioni di applicativo finger 3.4 o successive, la verifica dell’impronta non viene richiesta in seguito alle letture effettuate su lettori barcode, magnetici o di prossimità esterni collegati all’apposito connettore RJ11 o al connettore strip secondario. +64: solo per terminali FingerTRAX+G Mifare R&W aventi p/n del tipo 929.xxx.34 e versioni di applicativo finger 3.6 o successive, imposta la modalità “Doppia impronta su carta”: in fase di registrazione delle impronte e al momento di effettuare il salvataggio sulla carta Mifare, viene richiesto il numero della partizione o slot in cui verrà effettuata la scrittura (‘0’ o ‘1’). Attenzione: 1) per salvare due impronte sulla stessa carta è necessario utilizzare carte Mifare da 4Kbytes; 2) non è possibile usare carte Mifare da 1KByte con singola impronta in modalità “Doppia impronta”, mentre è possibile usare l’impronta contenuta nello slot ‘0’ di una carta Mifare da 4Kbytes anche in modalità “Singola impronta”; 3) per procedere con la registrazione della seconda impronta è necessario non avere salvato la prima impronta dello stesso utente sul terminale; 4) se si dovessero salvare sulla stessa carta due impronte relative a codici utente diversi, verranno considerati validi solo l’impronta e il codice utente contenuti nello slot ‘0’. Nota: per ulteriori dettagli sul formato dei file SHORTKEY e NOFINGER, si faccia riferimento allo specifico ”929 FingerTRAX+G Addendum” o “942 FingerPROX+F Addendum”. 54(2) Finger 0..240 (0) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G/SU e FingerPROX+F/SU aventi p/n del tipo 929.xxx.5x o 942.xxx.5x. Valido a bit. bit 4 (+16): Se impostato a ‘1’ disabilita l’uso del file USERCODS: gli unici codici identificativi associati agli utenti sono degli “shortcode” di 4 cifre che vengono scelti a piacere, in fase di registrazione delle impronte, nell’intervallo 0001…9999. Nelle transazioni, poi, a tali codici vengono aggiunti tanti ‘0’ di riempimento a sinistra quanti ne sono necessari per raggiungere la lunghezza impostata dal parametro 43-BadgeLen. Normalmente, invece, è possibile associare agli utenti dei codici identificativi qualsiasi, lunghi fino a 16 cifre (la lunghezza deve comunque coincidere col valore del parametro 43-BadgeLen). Ciascuno di questi codici viene internamente associato ad uno “shortcode” di 4 cifre (generato in maniera sequenziale crescente a partire dal valore 0001) mediante il file USERCODS, cui viene automaticamente aggiunto un record in fase di registrazione dell’impronta di un nuovo utente. bit 5 (+32): Se impostato a ‘1’ la verifica dell’impronta non viene richiesta in seguito alle letture effettuate su lettori barcode, magnetici o di prossimità esterni collegati all’apposito connettore RJ11 o al connettore strip secondario. bit 6 (+64): Se impostato a ‘1’ disabilita l’accesso al menu di gestione del sensore di impronte mediante CONFIGURAZIONE 87 A . pressione dei tasti bit 7 (+128): Se impostato a ‘1’ attiva il funzionamento in modalità “Autoscan ON”, ovvero “Identificazione 1:N” permanente: è sufficiente appoggiare il dito sul sensore per procedere alla scansione dell’impronta e all’identificazione dell’utente, mediante confronto sequenziale con ciascuna impronta memorizzata nel modulo biometrico. Normalmente, invece, è impostata la modalità “Autoscan OFF”, ovvero “Verifica 1:1” permanente, in cui l’utente deve prima introdurre il suo codice identificativo, tramite lettura di badge o digitazione da tastiera, per procedere alla scansione dell’impronta e alla verifica di identità mediante singolo confronto con l’impronta memorizzata nel modulo biometrico e associata al codice introdotto. Tuttavia, anche quando ci si trova in modalità “Autoscan OFF”, è possibile passare temporaneamente in modalità ? (solo in caso di FingerPROX+F/SU) oppure i tasti o “Identificazione 1:N” premendo il tasto (solo in caso di FingerTRAX+G/SU), e quindi appoggiando il dito. Nota: per ulteriori dettagli sul formato del file USERCODS, si faccia riferimento allo specifico ”929 FingerTRAX+G/SU Addendum” o “942 FingerPROX+F/SU Addendum”. 55(1) FingerExt 0..5 (0) Presente solo sui terminali FingerTRAX+G con lettore RFID 13.56MHz R&W aventi un p/n del tipo 929.xxx.34. Valido a bit. bit 0 (+1): Se impostato a ‘1’, in fase di registrazione delle impronte su carta Mifare, il codice utente e i relativi template vengono salvati a partire dal settore 1 della carta (blocco 04), invece che a partire dal settore 0 (blocco 01) come avviene normalmente. bit 2 (+4): Se impostato a ‘1’, in fase di registrazione delle impronte, per ogni nuova impronta registrata con successo viene trasmesso sul canale online corrente un messaggio di conferma in tempo reale, il cui formato è il seguente: #&FE<chr(162) o chr(163)><usercode> dove <usercode> è il codice identificativo dell’utente su 11 cifre (con eventuale riempimento di zeri a sinistra), ed è preceduto da un carattere ASCII chr(162) o chr(163) a seconda che si tratti della prima o della seconda impronta registrata per quell’utente. Analogamente, in fase di cancellazione di un utente, per ogni utente cancellato viene trasmesso sul canale online corrente il messaggio #&FD<chr(162) o chr(163)><usercode> 55(2) FingerExt 0..92 (0) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G/SU e FingerPROX+F/SU aventi p/n del tipo 929.xxx.5x o 942.xxx.5x. Valido a bit. bit 2 (+4): Se impostato a ‘1’, in fase di registrazione delle impronte, per ogni nuova impronta registrata con successo viene trasmesso sul canale online corrente un messaggio di conferma in tempo reale, il cui formato è il seguente: #&FE<longcode>-<shortcode> dove <longcode> è il codice identificativo dell’utente su 16 cifre (con eventuale riempimento di zeri a sinistra), e <shortcode> è il codice di 4 cifre che gli è stato internamente associato. Nota: se il file USERCODS è disabilitato (bit 4 del par.54-Finger a ‘1’), il campo <longcode> è sempre fisso a zero. Analogamente, in fase di cancellazione di un utente, per ogni utente cancellato viene trasmesso sul canale online corrente il messaggio #&FD<longcode>-<shortcode> bit 3 (+8): Se impostato a ‘1’, in fase di registrazione delle impronte, per ogni nuova impronta registrata con successo viene chiesto a video se esportare immediatamente il/i template di quell’utente, inclusi quelli eventualmente già registrati in precedenza (prompt “Export templates?”), accodando i dati al file FINGER (se presente) o creandolo (se non presente). bit 4 (+16): “Privacy bit” – Ha effetto solo sui terminali FingerTRAX+G/SU con lettore RFID 13.56MHz R&W, aventi un p/n del tipo 929.xxx.54. Se impostato a ‘1’, in fase di registrazione delle impronte, per ogni nuova impronta registrata con successo, non viene chiesto se salvare i dati nel modulo biometrico (prompt “Salvo su Term.?”), né se salvarli su carta Mifare (prompt “Salvo su Carta?”): i dati biometrici vengono sempre automaticamente salvati solo sulla carta Mifare, che rimane in possesso dell’utente garantendone così la privacy. bit 5 (+32): Se impostato a ‘1’ la verifica dell’impronta non viene richiesta in seguito alle letture effettuate su lettori barcode, magnetici o di prossimità interni collegati al connettore strip primario. bit 6 (+64): Ha effetto solo sui terminali FingerTRAX+G/SU con lettore RFID 13.56MHz R&W, aventi un p/n del tipo 929.xxx.54. Se impostato a ‘1’, abilità la modalità “doppia impronta su carta Mifare”: è possibile memorizzare sulla stessa carta Mifare da 4Kbytes fino a 2 impronte dello stesso utente. Se è impostata la modalità “privacy” (bit 4 a ‘1’), dopo la prima registrazione viene salvata sulla carta solo la prima impronta, ma poiché in seguito alla seconda registrazione anche la prima impronta deve essere riscritta sulla stessa carta (questa volta assieme alla seconda), dopo la prima registrazione i dati relativi alla prima impronta vengono comunque salvati in automatico anche nel modulo biometrico. In ogni caso, dopo la seconda registrazione, i dati relativi ad entrambe le impronte vengono rimossi dal modulo biometrico. CONFIGURAZIONE 88 Se invece non è impostata la modalità “privacy” (bit 4 a ‘0’), per le stesse ragioni descritte nel caso precedente ne consegue che: 1) affinché sia possibile registrare entrambe le impronte su carta è necessario rispondere sempre “SI” alla richiesta di salvataggio nel modulo biometrico “Salvo su Term.?” relativa alla prima registrazione; 2) affinché sia possibile registrare almeno un’impronta anche nel modulo biometrico è necessario rispondere sempre “SI” alla richiesta “Salvo su Term.?” relativa alla seconda registrazione (altrimenti verrebbero rimossi anche i dati relativi alla prima impronta, se presenti). 56 TeleRelay 0..1 (0) Ha effetto solo sul TRAX+F/G. Se viene impostato a ‘1’ il TRAX+F/G è in grado di gestire fino a 4 relé remoti #909 TeleRelay. In questo caso il relé interno non è più disponibile (viene usato per generare gli impulsi di attivazione per i relé remoti). 57 Listing 0..31 (0) Quando il terminale è configurato come “master” controllo accessi col parametro 18-NETMode=6, in fase di A , vedi par. 63-A_mode per le revisione dei dati di presenza (in seguito alla pressione del tasto possibili varianti) è possibile visualizzare anche i passaggi effettuati su tutti i terminali “slave” aventi indirizzo NET92 minore o uguale al valore impostato in questo parametro. Poiché il valore di default è ‘0’, normalmente vengono visualizzate solo le timbrature effettuate sul terminale “master” (utile se il “master” controllo accessi viene usato anche per la rilevazione delle presenze in locale). Nota: questo parametro è significativo su TRAX+F/G solo se è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. §3.3.8). 58 ExtraBits 0..255 (0) Parametro che definisce alcune modalita‘ di funzionamento speciali del terminale. Valido a bit. . bit 0 (+1): Se impostato a ‘1’ disabilita lo spegnimento del terminale effettuato per mezzo del tasto bit 1 (+2): Se impostato a ‘1’ disabilita l’emissione di un “beep” alla pressione di ogni tasto mentre il terminale è in attesa di una lettura di RIlevazione Presenze o Controllo Accessi. Il beeper è comunque abilitato in tutti gli altri casi. bit 2 (+4): Se impostato a ‘1’ causa l’esecuzione della procedura PROC_V ogni volta che il terminale accetta una lettura di badge in Rilevazione Presenze / Controllo Accessi. In alternativa, impostando anche il bit 4 ad ‘1’, è possibile eseguire la PROC_V anche in seguito ad ogni lettura di badge non valida. La procedura PROC_V viene richiamata solo in seguito a letture di badge effettuate sui lettori di “consolle” (slot interno, esterno, barcode su RJ11, addizionali su RS232); le letture effettuate su lettori “slave” su NET92 non causano l’esecuzione della PROC_V. Per maggiori dettagli, Cfr. §6.4.8. bit 3 (+8): Se impostato a ‘1’ disabilita la cancellazione del contenuto del display prima di visualizzare: 1) Il prossimo record del file WMSG (Cfr. § 5.7.2) in rilevazione presenze; 2) Il prossimo record del file mostrato con il comando di procedura “@Mfilename” (Cfr. § 6.4.3); 3) Il prossimo prompt della procedura in esecuzione. bit 4 (+16): Se impostato a ‘1’, e se anche il bit 2 è impostato a ‘1’, causa l’esecuzione della procedura PROC_V anche in seguito ad ogni lettura di badge non valida. E’ possibile in questo modo registrare la lettura in maniera diversa, compresa la causa della non validità del badge (ad es. chiave di sistema errata o codice troppo corto, codice non strettamente numerico, carta già passata, carta non abilitata), oppure forzarne in qualche modo la registrazione nel file PRExxxxx. Per maggiori dettagli, Cfr. §6.4.8. Attenzione: non impostate ad ‘1’ il bit 4 se non avete precedentemente caricato una PROC_V valida. bit 5 (+32): Se impostato a ‘1’ disabilita l’attivazione del relé 1 dopo una lettura di badge anche nel caso in cui il parametro 44 sia impostato ad un valore >0. Ciò consente di effettuare la semplice rilevazione presenze ma con il controllo della validità dei singoli badge. bit 6 (+64): Se impostato a ‘1’ i messaggi trasmessi on-line in seguito ad ogni evento di input (Cfr. § 5.5) vengono inviati col prefisso ‘#^’, in modo da distinguerli da quello che potrebbe essere un qualunque codice numerico trasmesso on-line in seguito alla lettura di un barcode o all’introduzione di un dato da tastiera. bit 7 (+128): Se impostato a ‘1’ inverte i colori dello sfondo e delle scritte nei terminali con display grafico (ha effetto solo su PROX+G e TRAX+G). Esempio: Se il parametro 58 vale 12 (8 + 4 = bit.2 + bit.3) è abilitata l’esecuzione di PROC_V e non viene cancellato il display nei casi 1,2,3, su elencati. 59 FreeMode 0..3 (0) Modalita‘ di gestione delle situazioni di ‘file-system pieno’. CONFIGURAZIONE 89 0 : blocca la registrazione dati se la memoria è piena, o è stato raggiunto il limite di 62 (TRAX+F/G #927 e #928, PROX+F/G) oppure 96 file (TRAX+G #929). Richiede la password per attivare la gestione di sistema 1 : a memoria piena visualizza un messaggio di “memoria piena” e uno di “cancellazione file più vecchio” tra i vari PREammgg e PFxammgg. 2 : a memoria piena visualizza solo il messaggio di “cancellazione file più vecchio” tra i vari PREammgg e PFxammgg. 3 : a memoria piena cancella il file più vecchio tra i vari PREammgg e PFxammgg senza messaggi di avvertimento. Ricordiamo che il file-system del terminale si può riempire a causa di due motivi distinti: 1) lo spazio disponibile è esaurito (il comando di shell “SPACE” restituisce il valore “000000”). 2) il terminale cerca di creare un nuovo file (ad esempio un nuovo file PRExxxxx alla mezzanotte) in un drive che ne contiene già 62 (TRAX+F/G #927 e #928, PROX+F/G) oppure 96 (TRAX+G #929). In caso di PROX+F/G, i file giornalieri (PRExxxxx, PFxxxxxx, ecc.) sono creati automaticamente nel drive logico con identificativo piu‘ alto (drive A se il terminale non possiede RAM-Card, drive B se RAM-Card con capacita‘ massima di 512 KB, drive C se RAM-Card con capacita‘ di 1 MB). Quando è installata una RAMCard con capacita‘ di 1 MB, il terminale registra i dati sul drive C; quando questo è pieno, passa automaticamente a registrare dati sul drive B. 60 CauseMode 0..3 (0) A ) in rilevazione Abilitazione del codice causale digitato manualmente (associato al tasto funzione presenze. 0 : codici causali (tasto funzione A) disabilitati. 1 (valore NON consigliato) : abilitazione causale a una cifra: nei record all’interno del file PREammgg viene riservata solo una cifra per la direzione (0 o 1) o, in caso venga inserita, per la causale (2..8, il valore 9 è riservato per la procedura di autorizzazione che consente l’inserimento manuale di un codice utente, si veda il §3.5.12), che stabilisce implicitamente se si tratti di una timbratura in entrata (in caso di valore dispari: 3, 5 o 7) o in uscita (in caso di valore pari: 2, 4, 6 o 8), e quindi in quale colonna debba essere mostrata in fase di revisione dati di presenza sui terminali con display grafico, si veda il §3.5.10. 2 (valore NON consigliato) : abilitazione causale a due cifre: nei record all’interno del file PREammgg vengono riservate due cifre. Se non viene inserita alcuna causale, la prima cifra è relativa alla direzione (0 o 1), e la seconda è sempre 0. Se viene inserita una causale (01..09 o 11..98: i valori 00 e 10 sono equivalenti, rispettivamente, ad uscita e ad entrata senza causale, mentre il valore 99 è riservato per la procedura di autorizzazione che consente l’inserimento manuale di un codice utente, si veda il §3.5.12), la prima delle due cifre, che compare al posto della direzione, stabilisce implicitamente se si tratti di una timbratura in entrata (in caso di valore dispari: 1, 3, 5, 7 o 9) o in uscita (in caso di valore pari: 0, 2, 4, 6 o 8). Ad esempio, sono considerate timbrature in entrata quelle con causale 12 o 30 e in uscita quelle con causale 01 o 20 (e come tali vengono incolonnate in fase di revisione dati di presenza sui terminali con display grafico, si veda il §3.5.10). 3 (valore consigliato) : abilitazione con 2 cifre piu’ direzione passaggio separata: nei record all’interno del file PREammgg vengono riservate tre cifre, una per la direzione (0 o 1) e due per la causale (01..98, il valore 00 è equivalente a nessuna causale inserita, il valore 99 è riservato per la procedura di autorizzazione che consente l’inserimento manuale di un codice utente, si veda il §3.5.12). N.B. Cancellate i file PREammgg quando variate il parametro da 0 o 1 a 2 o 3. 61 AuxBdgNum 0..99 (0) Posizione del codice personale nei codici ricevuti da lettori ausiliari collegati via COM1/2, abilitati con il parametro 02 (il par. 61 equivale al par. 42 usato per tutti gli altri lettori). 62 AuxBdgSys 0..99 (0) Posizione della chiave di sistema nei codici ricevuti da lettori ausiliari collegati via COM1/2, abilitati con il parametro 02 (il par.62 equivale al parametro 41 usato per tutti gli altri lettori); se ‘0’ (zero), il codice non è controllato. 63 A_mode 0..15 Abilitazione del tasto funzione (1) A in rilevazione presenze. 0: disabilita sia la funzione di revisione dati che quella di introduzione causale tramite il tasto funzione e permette di usare una transazione custom con il file PROC_A. A CONFIGURAZIONE 90 1: abilita la funzione di revisione dati (se non sono abilitate le causali, par. 60=0) oppure quella di A . introduzione causale (se sono abilitate le causali, par. 60 diverso da 0) associata al tasto funzione B (da usare nel caso 2: replica la funzione di visualizzazione dei dati di presenza sul tasto funzione siano abilitate le causali, par. 60 diverso da 0). • Sommando il valore ‘4’ ad uno dei valori precedenti, la funzione di visualizzazione dei dati di presenza (solo PROX+F/G). è replicata sul tasto funzione ? • Sommando il valore ‘8’ ad uno dei valori precedenti, all’interno della funzione di revisione dati non viene abilitata la tastiera, pertanto non è possibile l’inserimento manuale del codice personale, ma solo tramite una lettura di carta. NB: in caso di firmware con estensione per sensore di impronte, è ancora possibile inserire il codice manualmente oltre che tramite una lettura di carta, ma diventa necessaria la verifica dell’impronta anche per poter accedere alla revisione dati, con l’eccezione di tutti e soli i casi in cui l’utente sia esentato dalla verifica anche durante le timbrature in rilevazione presenze (utilizzo del file (1) NOFINGER, vedi descrizione del parametro 54 -Finger). • Sommando il valore ‘16’ ad uno dei valori precedenti, la funzione di “digitazione manuale autorizzata del codice personale” (cfr. §3.5.12) viene disabilitata. • Sommando il valore ‘32’ ad uno dei valori precedenti, la funzione di visualizzazione dei dati di presenza è replicata sul tasto funzione D . 64 ShowMsg 2..255 (16) Tempo di visualizzazione dei messaggi temporanei sul display, in ottavi di secondo. 65 InputCtrl 0..7 (0) Modalita‘ di gestione degli eventi generati dagli input digitali o dai comandi “%+A”..”%+D” 0: Il terminale si limita a decrementare ed eventualmente ricaricare i contatori minori, ignorando gli eventi generati dai cambiamenti di stato delle relative linee di input all’azzeramento dei contatori. 1: quando un contatore minore si azzera, il terminale lo ricarica e incrementa il corrispondente contatore maggiore. Se la registrazione degli eventi sul file INPUTS è abilitata (vedi par. 33-InputMode), ogni evento è registrato insieme all’orario; se la trasmissione ON-LINE degli eventi è abilitata, ad ogni evento viene inviato un messaggio nello stesso formato dei record memorizzati nel file INPUTS (cfr. § 5.7.4). 2: come 1, ma nel file INPUTS, insieme all’orario, è registrato anche il giorno del mese in cui si è verificato l’evento. 3 : come 2, ma nel file INPUTS vengono registrati solo gli “overflow” sui contatori maggiori. • Sommando il valore ‘4’ ad uno dei valori precedenti si provoca l’esecuzione automatica della procedura PROC_Q ogni volta che si verifica un evento di input (ricaricamento di un contatore ‘minore’ o incremento di un contatore ‘maggiore’). Ad esempio, il valore ‘6’ combina il funzionamento del valore ‘2’ con il lancio automatico della procedura PROC_Q ad ogni evento di input. Lo stesso effetto si ottiene in seguito agli eventi generati dai comandi “%+A”..”%+D”, che non sono mai ignorati (anche con par. 65=’0’ o ‘4’). 66 WaitOnLin 0..255 (80) Tempo di attesa massimo per la ricezione di una risposta dal computer “host” dopo che il terminale ha trasmesso un messaggio in modalità “ONLINE”, in ottavi di secondo. Se impostato a ‘0’, il terminale non attende un prompt di conferma alla lettura, e riutilizza il prompt precedente (scartando però eventuali comandi ‘%’ presenti in coda al prompt stesso, vedi § 6.3). Se ‘0’ e il parametro 18-NETMode=’2’, al restart sul display resta visualizzato indefinitamente il messaggio di presentazione (Cfr. § 3.2.1) mentre viene eseguito un prompt del tipo :BMK:, almeno fino alla ricezione di un diverso comando/prompt. Se ‘0’ e il parametro 18-NETMode=’3’, dopo ogni transazione di raccolta dati presenze/controllo accessi, il terminale risulta in stato di ONLINE per un tempo indefinito. Il successivo comando di “shell” per il terminale deve essere preceduto da un comando “OFFLINE” (se si desidera far tornare il terminale in stato OFFLINE). In alternativa, se si desidera mantenere il terminale in ONLINE, i successivi comandi di “shell” devono essere inviati seguendo la sintassi alternativa “@command” (Cfr. § 6.1). 67 RadioIdle 0..3 (0) CONFIGURAZIONE 91 Ha effetto solo sul PROX+F/G. Modalita‘ di gestione delle comunicazioni ‘multipoint’ su COM2. Valido a bit: bit 0: se ‘1’, al termine della trasmissione PROX+F/G attende circa 20ms prima di abbassare di nuovo il segnale RTS. Può essere usato per aumentare la compatibilita‘ con alcuni tipi di modem. bit 1: se ‘1’ causa lo stato di “IDLE” su COM2 (Cfr. § 6.1.1, comando IDLE) a partire dall’accensione del PROX+F/G. 68 PresMode 0..255 (2) Funzioni ausiliarie in rilevazione presenze. Valido a bit: bit 0 (+1): se ‘1’ abilita il controllo per non accettare due volte consecutive lo stesso badge se nel frattempo (e nello stesso giorno) non sono stati letti altri badge . bit 1 (+2): se ‘1’ abilita il funzionamento del tasto di inversione direzione di passaggio bit 2 (+4): se ‘1’ abilita la decodifica del badge nella sola fase di estrazione dall’eventuale lettore magnetico ad inserimento Attenzione: NON impostare questo bit in caso di lettore magnetico a strisciamento o di prossimità, altrimenti risulterebbe impossibile effettuare letture. bit 3 (+8): se ‘1’ abilita sempre i passaggi di uscita in controllo accessi (se il badge è compatibile con i parametri 41,91,42,43) bit 4 (+16): se ‘1’ abilita sempre i passaggi di uscita come per il bit 3, ma in piu‘ devono essere soddisfatti (se presenti) i controlli impostati sui file AXGROUPS e AXCARDS (par. 44 con valore maggiore di 2), oltre al controllo sull’anti-passback, se impostato mediante il bit 5. In pratica, in uscita non sono effettuati controlli sui file AXPOOLS e AXTIMET. bit 5 (+32): se ‘1’ abilita il controllo anti-passback: un badge il cui ultimo transito sia stato di “entrata” potra‘ solo uscire. mentre un badge il cui ultimo transito sia stato di “uscita” potra‘ solo entrare. Tutti i controlli sono effettuati anche sugli eventuali lettori slave #914 HotMAX o #916 EnTRAX collegati al terminale configurato come master di rete NET92. Il verso di una transazione effettuata su uno ‘slave’ è determinato dal verso determinato nel file AXGATES. Lo stato corrente del badge è stabilito dal verso dell’ultima registrazione nei file PREammgg; il terminale effettua una ricerca su tutti i file PRE presenti sul drive di registrazione, a partire dal piu‘ recente e proseguendo a ritroso fino al piu‘ vecchio. Ha senso abilitare questo controllo solo se tutte le transazioni di presenza/accesso sono registrate sullo stesso terminale. bit 6 (+64): se ‘1’ rifiuta la lettura dello stesso badge nello stesso minuto. bit 7 (+128): se ‘1’, anti-passback abilitato (bit 5=’1’) e per il badge letto non esiste nessuna registrazione nei vecchi file PRExxxxx, allora per tale badge è accettata solo la transazione di INGRESSO (si suppone che l’utente fosse fuori). Se però si ha bit 3=’1’ oppure bit 4=’1’, il terminale effettua i controlli definiti per il bit 3, quindi lascia uscire. 69 InputEdge 0..15 (0) Determina il funzionamento del decremento dei contatori associati alle linee di input. Valido a bit. Se il bit relativo ad un input vale uno, il decremento è effettuato solo sulle transizioni OFF-ON. Se invece vale zero il decremento è effettuato sia sulle transizioni OFF-ON che ON-OFF. In questo caso, se il parametro 36-Input1 (o 37, 38, 39, in caso di PROX+F/G) è stato impostato a ‘1’, viene generato un evento di input (in seguito all’azzeramento del contatore corrispondente) per ciascun cambiamento di stato della linea. bit 0,1,2,3: rispettivamente per IN4 (+1), IN3 (+2), IN2 (+4), IN1 (+8). Esempio: il valore 7 significa che il contatore associato all’ input 1 viene decrementato ad ogni cambiamento di stato della linea, mentre i contatori associati agli input 2, 3 e 4 vengono decrementati di una sola unità in corrispondenza ad ogni impulso. NB: in caso di TRAX+F/G, se si utilizza solo l’unico input standard IN1 allora l’unico bit che ha effetto sul comportamento del terminale è il bit 3 (+8), per cui tutti i valori compresi fra 0 e 7 sono equivalenti fra loro (bit 3=’0’), così come quelli compresi fra 8 e 15 (bit 3=’1’). Se si utilizza anche l’input ausiliario IN2 (disponibile solo in alternativa all’uso della porta RS232 COM1) allora anche il bit 2 (+4) ha effetto. 70 BCMGRevs 0..35 (1) Inverte la valutazione del verso di lettura dei badge, per discriminare correttamente le transazioni di entrata e di uscita anche nei casi di inversione della stampa di badge barcode o del montaggio di lettori di badge magnetici. Non viene usato per le letture nei prompt delle procedure. Valido a bit. bit 0 (+1): inversione del verso di lettura dei badge barcode. bit 1 (+2): impostare a ‘1’ per lettori di badge magnetici montati in modo inverso rispetto allo standard del terminale. bit 2 (+4): applica la transcodifica “Crosspoint” a 9 cifre (compatibile con i lettori di prossimità AceProx) al decodificatore magnetico. CONFIGURAZIONE 92 bit 3 (+8): applica la transcodifica EM4102 di soli 4 bytes su 11 cifre decimali ai badge di prossimità 125KHz (invece che di 5 bytes su 14 cifre decimali come nella transcodifica TMC standard). bit 4 (+16): applica la transcodifica nordeuropea “Unique” su 5 bytes ai badge di prossimità 125KHz: rispetto alla transcodifica TMC standard, i nibble dei 5 bytes non vengono ribaltati su se stessi prima della conversione su 13 cifre decimali. bit 5 (+32): applica la seguente transcodifica “a gruppi” su 5 bytes ai badge di prossimità 125KHz: rispetto alla transcodifica TMC standard, il byte più significativo viene convertito singolarmente in decimale su 4 cifre, i 2 bytes seguenti vengono convertiti in decimale su 5 cifre, e i 2 bytes meno significativi vengono anch’essi convertiti in decimale su 5 cifre. Il codice ottenuto concatenando i vari gruppi è costituito da 4+5+5=14 cifre decimali come nella transcodifica TMC standard. bit 6 (+64): applica la transcodifica “Dating” su 5 bytes ai badge di prossimità 125KHz: rispetto alla transcodifica TMC standard, i 3 nibble più significativi vengono convertiti come gruppo singolo in decimale su 4 cifre, il nibble seguente viene azzerato e dà luogo ad una cifra decimale fissa a ‘0’, e i 3 bytes meno significativi vengono anch’essi convertiti in decimale su 8 cifre. Il codice ottenuto concatenando i vari gruppi è costituito quindi da 4+1+8=13 cifre decimali. bit 7 (+128): applica la transcodifica “Cronos” su 5 bytes ai badge di prossimità 125KHz: rispetto alla transcodifica TMC standard, i nibble dei 5 bytes non vengono ribaltati su se stessi, inoltre tutte le coppie di nibble all’interno di ciascun byte vengono scambiate fra loro, dopodiché il byte più significativo viene convertito singolarmente in decimale su 3 cifre, e i 4 bytes meno significativi vengono convertiti in decimale su 10 cifre. Il codice ottenuto concatenando i due gruppi è costituito quindi da 3+10=13 cifre decimali. 71 AuxDir 0..159 (0) Determina la direzione del passaggio in caso di uso di lettori ausiliari. Valido a bit: se il bit vale ‘0’ il passaggio ha la stessa direzione del lettore di base interno, se ‘1’ ha direzione opposta bit 0 (+1): direzione per il lettore su COM1. bit 1 (+2): direzione per il lettore su COM2 (solo PROX+F/G). bit 2 (+4): direzione per il lettore barcode collegato tramite connettore RJ11 o magnetico esterno collegato al connettore strip secondario. Nota: se almeno uno fra i bit 0, 1, 2 vale ‘1’, allora sia in seguito ad una lettura valida, sia in fase di revisione dati di presenza, vengono sempre visualizzate le direzioni associate ai passaggi, anche nel caso in cui il valore del parametro 02-DirMode sia ‘0’ o ‘6’. bit 3 (+8): solo per i TRAX+G #929 con versione speciale “I” del firmware di base (929xIGnn.xbh) per doppio lettore HID, disabilita la transcodifica HID per le sole letture effettuate sul lettore collegato al connettore strip secondario. bit 4 (+16): ha effetto solo se il bit 4 del par.40-BadgeTk è impostato a ‘1’. In tal caso, determina il modo in cui i codici personali vengono giustificati per raggiungere la lunghezza specificata dal par.43: - se vale ‘0’ le cifre vengono allineate a destra, con zeri ‘0’ di riempimento a sinistra - se vale ‘1’ le cifre vengono allineate a sinistra, con spazi ‘ ’ di riempimento a destra bit 7 (+128): in fase di revisione dati di presenza (cfr. § 3.5.10), forza la visualizzazione con l’incolonnamento delle timbrature secondo il criterio della direzione, anche nel caso in cui i bit 0, 1, 2 siano tutti a ‘0’ e il valore del parametro 02-DirMode sia ‘0’ o ‘6’. 72 PrmptDflt 0..191 (1) Determina quali dispositivi di input devono essere attivati in caso di “Prompt” senza prefisso ( : ... : ). Valido a bit. I dispositivi specificati nel prefisso di un prompt si aggiungono a quelli determinati in PrmptDflt. bit 0 (+1): tastiera. bit 1 (+2): barcode interno. bit 2 (+4): barcode o magnetico esterno su RJ11 o strip secondario. bit 3 (+8): COM1. bit 4 (+16): COM2 (solo PROX+F/G). bit 5 (+32): lettore magnetico standard. F bit 6 (+64): la semplice pressione del tasto causa l’esecuzione della transazione PROC_F. Attenzione: in questo caso non sarà più possibile accedere al menu di gestione interattiva attraverso la F 0 : l’unico modo per reimpostare il terminale sarà pertanto via shell comandi. sequenza di tasti bit 7 (+128): dopo l’introduzione di un dato in un prompt, mantiene abilitato il dispositivo di input che è appena stato utilizzato (lettore magnetico o barcode), in modo tale che all’interno di una transazione definita dall’utente sia possibile accettare un’altra lettura anche se il corrispondente successivo prompt non è ancora CONFIGURAZIONE 93 stato attivato. Da usare anche nel caso in cui venga connesso un lettore di prossimità esterno (Cfr. § 2.4.16). Nota: i cambiamenti di questo parametro hanno effetto anche sul funzionamento del menu di configurazione di sistema. 73(1) ClkExtSyn (0) Nota: questo parametro era utile nei vecchi sistemi con “master clock”, ed è improbabile che sia usato in un sistema moderno. Ha effetto solo su terminali PROX con versioni di firmware r.x44 o precedenti. 73(2) Rnd. Rate 0..255 (0) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G e FingerPROX+F aventi p/n del tipo 928.xxx.3x, 929.xxx.3x, 942.xxx.3x o 942.xxx.4x. Se diverso da ‘0’ imposta la modalità di verifica casuale delle impronte. In questo modo si può velocizzare l’esecuzione delle transazioni, mantenendo la verifica casuale come deterrente verso utenti non autorizzati. 0 = dopo avere letto una carta o digitato il proprio codice, il terminale chiede sempre all’utente di (1) appoggiare il dito sul sensore (a meno che non venga usato il file NOFINGER, vedi par.54 Finger). 1..255 = frequenza delle richieste di verifica dell’utente tramite impronta: a valori più alti corrispondono richieste più frequenti. 74 Security 0..255 (0) Determina le modalita‘ di gestione del PIN in Controllo Accessi, la gestione del relè da attivare in caso di allarme (accesso sotto costrizione, troppi tentativi errati di introduzione del PIN, ecc.) e consente di proteggere la “shell” comandi del terminale che diviene accessibile solo dopo un’operazione di autenticazione (Cfr. § 6.1.4, comando “PW”). bit 0 (+1): abilita la gestione generale del PIN in Controllo Accessi (ogni record nel file AXCARDS contiene quattro caratteri numerici in piu‘). Per attivare la richiesta del PIN in INGRESSO e/o in USCITA, occorre agire sul valore dei bit 1 e 2. bit 1 (+2): abilita la richiesta di PIN per le transazioni di Controllo Accessi in direzione di INGRESSO. bit 2 (+4): abilita la richiesta di PIN per le transazioni di Controllo Accessi in direzione di USCITA. bit 3 (+8): abilita la possibilita‘ di editare il PIN da consolle del terminale (Cfr. § 3.3.2). bit 4 (+16) (solo PROX+F/G): abilita l’accettazione di un PIN di “accesso sotto minaccia”, che causa l’attivazione non solo del relé che viene normalmente usato in Controllo Accessi inserendo il vero PIN, ma anche del relè numero 3 del terminale, utilizzabile ad esempio per segnalare l’allarme in modo “silenzioso”. Il tempo di attivazione del relè è stabilito dal parametro 30-RelayDoor. Il PIN di “accesso sotto minaccia” è calcolato nel modo seguente: se l’ultima cifra del vero PIN è pari, questa va sostituita con la cifra di valore successivo; se l’ultima cifra è dispari, questa va sostituita con la cifra di valore precedente. Esempi: se il vero PIN è “1234”, il PIN di allarme diventa “1235”, “9999” diventa “9998”, “0001” diventa “0000”. bit 5 (+32): abilita l’attivazione del relè numero 3 del terminale qualora sia stato introdotto un PIN errato per troppe volte consecutive. Il tempo di attivazione del relè è stabilito dal parametro 30-RelayDoor. NB: nel TRAX+F/G questo bit ha effetto solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’. In questo caso, il TeleRelay che viene attivato in seguito all’introduzione di un PIN errato per tre volte consecutive è quello avente indirizzo ‘3’ (se presente). bit 6 (+64): abilita la richiesta di PIN solo durante le fasce orarie associate al pool ‘09’. Le transazioni di Controllo Accessi devono comunque sottostare ai controlli impostati mediante il parametro 44-Access e i file AXCARDS, AXGROUPS, ecc., mentre l’ulteriore controllo sul PIN è effettuato soltanto nei giorni e nelle ore associate al pool ‘09’. bit 7 (+128): abilita la necessita‘ di sbloccare la “shell” comandi prima di poter effettuare operazioni tramite uno dei canali di comunicazione COM1/COM2/NET92/Ethernet integrata (solo TRAX+F/G). È quindi necessario inviare un comando “PW password”, dove “password” è costituito dalla stringa contenuta nel parametro 89-Password. Per maggiori dettagli sul comando “PW”, consultate. § 6.1.1. Se questo bit è impostato a ‘1’, dopo ogni “restart” la “shell” è in stato di blocco. 75 Custom1 0..255 (0) 76 Custom2 0..255 (0) 77 Custom3 0..255 (0) CONFIGURAZIONE 78 Custom4 0..255 (0) 79 Custom5 0..255 (0) 80 Custom6 0..255 (0) 94 Parametri numerici preallocati utilizzabili per applicazioni custom in RAM-Card o da PROC_x (Cfr. § 6.4). Nelle PROC_x questi parametri possono anche essere impostati e testati con i comandi “@!NN” e “@?PNN” rispettivamente (Cfr. § 6.4.3). In piu‘ il valore di ogni parametro può essere incrementato o decrementato per mezzo dei comandi “%+75”..”%+80”, “%-75”..”%-80” (Cfr. § 6.3). 81 ExtraComm 0..255 (0) Consente di impostare la velocita‘ di comunicazione (baudrate) in rete NET92, da utilizzare sia in modalita Master che Slave. Il valore impostato è mostrato sul display al “restart” del terminale con un carattere particolare che precede l’indirizzo NET92 del terminale stesso. 0: NET92 a 57600 Baud. Carattere visualizzato al restart: “ “. 1: NET92 a 9600 Baud. Carattere visualizzato al restart:”.”. 2: NET92 a 19200 Baud. Carattere visualizzato al restart:”:”. Bit 2 MSG916 (+4): Sommando ‘4’ ai suddetti valori, se il terminale è configurato come “master” controllo accessi (parametro 18-NETMode = ‘6’, ‘7’), in seguito ad ogni tentativo di accesso effettuato su un #916 EnTRAX slave, il terminale fa visualizzare sul display dell’EnTRAX il messaggio di conferma “OK..” (in caso di accesso valido) oppure il messaggio di badge non valido (in caso di accesso fallito). I messaggi sono nella stessa lingua in cui è stato impostato il terminale. Bit 3 NO922ACCEPT (+8): Se impostato a ‘1’ disabilita l’invio ai terminali slave NET92 del messaggio di conferma “Accepted!” quando il parametro 18-NetMode=’5’. Bit 4 NONET92 (+16): Solo per la programmazione in ‘C’. Se impostato a ‘1’, quando un terminale slave NET92 smette di rispondere al polling viene generato un evento interno TERM_OFF. Bit 5 USETGATE (+32): Se impostato a ‘1’ quando il terminale è configurato come “master” controllo accessi (parametro 18-NetMode=’6’, ‘7’), gli accessi sul terminale “master” sono considerati validi solo se nel file AXTGATE (cfr. § 5.7.3) è presente almeno un record relativo al lettore “00”, e dipendentemente dai pools e dalle fasce orarie ivi specificate. Bit 6 N92PROCL (+64): Se impostato a ‘1’ quando il terminale è configurato in uno dei modi “master” NET92 comporta l’esecuzione della transazione utente PROC_L (se presente) in seguito alla ricezione di un messaggio proveniente da un terminale slave. Il funzionamento cambia secondo il valore del parametro 18NetMode: • 18-NetMode=’5’: tutti i messaggi ricevuti dai terminali slave vengono registrati nel file N92 (invece che nel file N92ammgg come di consueto) nel formato “NN<messaggio>”, dove NN è l’indirizzo dello slave, e comportano l’esecuzione della PROC_L. Se si vuole disabilitare l’invio del messaggio di conferma “Accepted!” rimane necessario impostare il bit NO922ACCEPT a ‘1’. • 18-NetMode=’6’, ‘7’: PROC_L viene eseguita solo quando si ricevono messaggi costituiti da codici che soddisfano i criteri di controllo accessi correntemente applicati. Tali codici vengono registrati sia nel file PREammgg come di consueto (se previsto) che nel file N92, nel formato “NNHHMM…CCCC[NN]”, dove NN è l’indirizzo dello slave e ciò che segue è una stringa avente lo stesso formato del record che viene registrato nel file PRE. Nonostante il test di validità del codice venga effettuato automaticamente prima del lancio della PROC_L, l’attivazione del relé sullo slave non è automatica, e se necessaria va forzata usando il comando “@@>NN%Ot” all’interno di PROC_L. Bit 7 NOIDLE (+128): Se impostato a ‘1’, il terminale entra in una modalità di funzionamento “intensificato”. Nota: si consiglia di usare questa impostazione solo se necessaria, come ad esempio nei casi in cui il terminale debba gestire un secondo lettore magnetico o di prossimità (Cfr. § 2.4.15 e 2.4.16), o in caso di TRAX+F/G inserito in reti Ethernet ad elevatissimo traffico di pacchetti. 82 ExtBdgCod 0..255 (255) Posizione del codice personale nel codice del badge in caso di lettura proveniente dal connettore RJ11 per lettori barcode o dallo strip secondario per lettori magnetici o di prossimità. La prima cifra del badge corrisponde alla posizione 0. 255 : la posizione del codice personale coincide con quella specificata dal parametro 42-BadgeCod per le letture effettuate sul lettore interno. 83 UDPCrypt (0) CONFIGURAZIONE 95 Non ancora utilizzato. 84 FPSecure 1..13 (3) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G e FingerPROX+F aventi p/n del tipo 928.xxx.3x, 929.xxx.3x, 942.xxx.3x o 942.xxx.4x. 1, 2, 3, 4, 5 = livello di sicurezza da usare in fase di verifica delle impronte; il valore di default ‘3’ rappresenta il livello medio. Il valore ‘1’ imposta il livello minimo, che garantisce un minore tasso di rifiuti errati o FRR (False Rejection Ratio), a scapito di un maggiore tasso di accettazioni errate o FAR (False Acceptance Ratio); il valore ‘5’ imposta il livello massimo, che determina ovviamente la situazione opposta. +8: in fase di registrazione delle impronte, possono essere richieste fino a 3 acquisizioni dell’impronta, per consentire una maggiore accuratezza (per default viene richiesta una sola acquisizione). 85 FPRng0 0..99 (0) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G/SU e FingerPROX+F/SU aventi p/n del tipo 929.xxx.5x o 942.xxx.5x. (2) Valido solo se il bit 4 del parametro 54 -Finger è impostato a ‘0’ (default - uso del file USERCODS). Ha lo scopo di definire un limite inferiore per gli “shortcode” generati in automatico in fase di registrazione dell’impronta di un nuovo utente. Lo shortcode più basso che può essere generato è pari a (Par.85x100)+1. NB: Affinché sia possibile generare degli shortcode validi deve sempre essere Par.85<Par.86, con l’eccezione del caso Par.85=Par.86=0 (default). L’impostazione dei parametri 85-FPRng0 e 86-FPRng1 è utile nel caso in cui si intenda procedere alla registrazione delle impronte degli utenti su diversi terminali e condividerle successivamente. Normalmente infatti, quando viene usato il file USERCODS, su ciascun terminale gli shortcode vengono generati automaticamente in maniera sequenziale a partire dal valore 0001, con la conseguenza che utenti diversi registrati su terminali diversi verrebbero associati agli stessi shortcode, rendendo impossibile sia la fusione degli archivi di impronte che quella dei vari file USERCODS. Da qui la necessità di forzare ciascun terminale ad operare su sottoinsiemi separati di shortcode, in maniera tale che non ve ne siano mai due uguali. Con questo sistema la dimensione di ciascun sottoinsieme è sempre un multiplo di 100. Esempio: volendo suddividere un parco utenti in sottoinsiemi di 200 persone da registrare su terminali diversi, occorre impostare sul primo terminale Par.85=0 e Par.86=2 (shortcode nell’intervallo 0001..0200), sul secondo Par.85=2 e Par.86=4 (shortcode nell’intervallo 0201..0400), e così via. 86 FPRng1 0..100 (0) Presente solo sui terminali con sensore di impronte integrato FingerTRAX+G/SU e FingerPROX+F/SU aventi p/n del tipo 929.xxx.5x o 942.xxx.5x. (2) Valido solo se il bit 4 del parametro 54 -Finger è impostato a ‘0’ (default - uso del file USERCODS). Ha lo scopo di definire un limite superiore per gli “shortcode” generati in automatico in fase di registrazione dell’impronta di un nuovo utente. Lo shortcode più alto che può essere generato è pari a (Par.86x100). Fanno eccezione i casi Par.86=0 e Par.86=100 (equivalenti fra loro), in cui lo shortcode più alto è 9999. NB: Affinché sia possibile generare degli shortcode validi deve sempre essere Par.85<Par.86, con l’eccezione del caso Par.85=Par.86=0 (default). Vedi descrizione del par.85-FPRng0. 87 TimeShift 0..3 (0) Imposta l’orario in corrispondenza del quale l’orologio viene portato avanti di un’ora nel passaggio all’ora legale (DST), e al tempo stesso l’orario al quale l’orologio viene riportato nel ritorno all’ora solare. Le date dei cambiamenti, invece, vengono impostate mediante i parametri 50-SummerTim e 52-WinterTim. Nel caso dell’Unione Europea, ad esempio, tutti i paesi membri effettuano il passaggio all’ora legale contemporaneamente, alle 01:00 UTC/GMT. Analogamente il ritorno all’ora solare avviene per tutti alle 02:00 UTC/GMT. Poiché l’Unione Europea coinvolge diversi fusi orari adiacenti (WET=UTC+0, CET=UTC+1, EET=UTC+2), ne consegue che l’orario locale del cambio (e quindi il valore del par.87) deve essere diverso per ciascun fuso orario. Nel caso del Nord America, invece, generalmente lo spostamento avviene sempre alle 02:00 ora locale, sia in regime di ora solare che in regime di ora legale. In questo caso, il par.87 deve essere lo stesso per tutti i fusi orari coinvolti, ma deve essere impostato ad un valore diverso in corrispondenza di ciascun cambiamento di orario. Nella tabella seguente trovate i valori da assegnare al par.87 a seconda del fuso orario in cui vi trovate (per gli altri paesi fate riferimento alle specifiche regole locali). Si noti che il valore di default ‘0’ è del tutto equivalente al valore ‘2’, quindi è valido per tutti i paesi dell’Europa centrale. Regione Fuso Orario Valore del par.87 Passaggio all'ora legale Ritorno all'ora solare CONFIGURAZIONE Unione Europea WET 1 01:00 → 02:00 02:00 → 01:00 CET 0/2 02:00 → 03:00 03:00 → 02:00 3 03:00 → 04:00 04:00 → 03:00 0/2 02:00 → 03:00 - - EET Nord America Qualunque 1 96 02:00 → 01:00 Glossario: DST = Daylight Saving Time; UTC = Coordinated Universal Time; GMT = Greenwich Mean Time; WET = Western European Time; CET = Central European Time; EET = Eastern European Time 88 BootMode 0..255 (0) Consente di accedere all’area “Bootloader” del firmware (Cfr. § 7.2), per cancellare e riprogrammare la memoria flash (Cfr. § 7.3.1 e 7.3.2) o impostare la lingua del terminale (Cfr. § 7.4). 89 Password Str[5] (54321) Password che deve essere introdotta da tastiera per accedere alle funzioni di supervisore o che deve essere fornita per accedere alla “shell” del terminale (se bit 7 del parametro 74-Security è impostato a ‘1’). Una stringa vuota evitera‘ la richiesta di digitazione della password per entrare in modo supervisore, mentre sara‘ sufficiente fornire una qualsiasi stringa come argomento del comando “PW” (es. “PW 99999”) per accedere alla “shell”. NB: è consigliabile specificare nel parametro 89-Password sempre cinque caratteri numerici. Specificando caratteri alfabetici, non sarà più possibile entrare in modo ‘supervisore’ dalla tastiera del terminale. 91 BadgeKey Str[9] () Chiave di sistema per i badge, da 1 a 9 caratteri. Per i badge magnetici e barcode solo numerici, i caratteri di BadgeKey devono essere solo numerici. Per i barcode in standard Code-39, i caratteri di BadgeKey possono essere alfanumerici; anche in questo caso i caratteri che costituiscono il codice personale del badge devono essere solo numerici. 93 Company Str[32] () Nel caso di display 2x16, i primi 16 caratteri di questa stringa (se non vuota) compaiono sulla seconda riga del display se il parametro 02-DirMode è impostato al valore ‘0’ oppure ‘6’. Nel caso di display 4x20 (solo PROX+F), questa stringa (se non vuota) compare a partire dalla terza riga (il carattere ‘|’ o Pipe=chr(124), può essere usato per posizionarsi sulla linea successiva), indipendentemente dal valore del parametro 02-DirMode. E’ anche possibile usare il carattere di controllo ASCII {FF}=chr(12) all’inizio della stringa per mostrare un messaggio su tutto il display: la prima linea verrà aggiornata con ora e data corrente in corrispondenza del primo cambio di minuto, mentre la seconda verrebbe sovrascritta immediatamente, pertanto è necessario usare uno o più caratteri di pausa {US}=chr(31) per farla permanere almeno per il tempo specificato dal parametro 64-ShowMsg. In caso di display grafico, questa stringa (se non vuota) compare nella parte bassa dello schermo se il parametro 02-DirMode è impostato al valore ‘0’, ‘6’, ‘128’ o ‘134’. Se la stringa non è troppo lunga (fino a 21 caratteri nel caso dei valori ‘0’ e ‘6’) sarà centrata e visualizzata correttamente, altrimenti i caratteri speciali SetFont=chr(24), SetCursor=’@’=chr(64) o Pipe=’|’=chr(124) possono essere usati per cambiare il tipo e le dimensioni del font, posizionare il cursore, giustificare e saltare alla linea successiva, allo scopo di dare alla stringa l’aspetto desiderato (si veda l’apposito addendum per terminali con display grafico). NB: sempre in caso di display grafico, se la parte iniziale di questa stringa è del tipo “@x”, al momento della visualizzazione (in tutti i casi descritti precedentemente) viene automaticamente eseguita la procedura PROC_x, se presente. Tale procedura può essere utilizzata, ad esempio, per visualizzare una o più icone definite dall’utente in un qualunque punto dello schermo. 95 TelNum Str[13] () Numero di telefono che il terminale chiama nelle sessioni di trasmissione dati. Non è attualmente usato dal software standard. 97 Param1 Str[16] () Parametro stringa preallocati utilizzabile per applicazioni custom in RAM-Card o da PROC_x (Cfr. § 6.4). Prima di lanciare automaticamente l’esecuzione della PROC_V (Cfr. § 6.4.6) in seguito ad una lettura di Rilevazione Presenze o Controllo Accessi, il sistema memorizza nel parametro 97-Param1 una stringa contenente alcuni dati relativi alla lettura appena effettuata; tale stringa contiene gli stessi dati che saranno registrati nel file PREammgg, privo dei campi ore, minuti e secondi (se esistono). Durante l’esecuzione della PROC_V è così possibile effettuare test sul codice causale, verso, ecc. CONFIGURAZIONE 97 All’interno di una qualunque PROC_x tutti i parametri possono essere impostati o controllati tramite il comando “@@CFG NN..”, si veda il §6.4.3 e capitoli successivi. 99 Param2 Str[16] () Parametro stringa utilizzabile per applicazioni utente. 5.7 File di supporto In questo paragrafo sono descritti i file che hanno un significato preassegnato e sono utilizzati durante il funzionamento del terminale. I nomi di file sul terminale sono composti al massimo di 8 caratteri, senza estensione e senza attributi temporali o di accessibilità; le lettere minuscole e maiuscole sono considerate diverse nel file system del terminale: “alarmtb” è considerato diverso da “ALARMTB”. Il terminale memorizza i file al suo interno in quattro possibili modi: con record di lunghezza fissa o variabile, impaccati o non impaccati. Il formato “impaccato” può essere specificato solo per i file puramente numerici: il sistema memorizza due caratteri numerici in ogni byte, riuscendo così praticamente a raddoppiare la quantita‘ di dati memorizzabili (vedere comando ). Per i file con record a lunghezza variabile, il sistema memorizza internamente un carattere al termine di ogni record. Per i file con record a lunghezza fissa, non sono memorizzati separatori record. Per i file creati autonomamente dal terminale, il tipo di file (con record a lunghezza variabile o fissa, impaccato o non impaccato) ha interesse solo per il calcolo dello spazio occupato: la visualizzazione e la trasmissione dei dati rende trasparente il formato interno. Per i file che devono essere caricati sul terminale, le caratteristiche del file stesso devono essere considerate per specificare il corretto formato del comando “LOAD”. I file producibili dal terminale con le funzioni preprogrammate del firmware sono i seguenti (file dati “nativi”): PREammgg, PFxammgg, INPUTS, COM1DAT, COM2DAT (solo PROX+F/G), N92ammgg, NOTOKAX. I file riconosciuti dal terminale, consultati nei vari tipi di applicazione sono: WMSG, PRSTAT, EXITCODS, EXITFKEY, FPRNPRE, AXGROUPS, AXCARDS, AXPOOLS, AXTIMET, AXGATES, AXTGATE, HOLYDAYS, PROC_x, ALARMTB. Altri file possono essere prodotti sotto controllo delle PROC o da applicativi particolari compilati da sorgenti in linguaggio “C”. 5.7.1 Formato dei file Nell’elenco che segue, per ogni file, viene specificato: P se il file è di tipo numerico puro e impaccato (due cifre per byte) [P] se il file può essere sia impaccato che non impaccato N se il file è di tipo numerico puro ma non impaccato A se il file è di tipo alfanumerico Segue poi l'indicazione della lunghezza del record (nel caso di record a lunghezza fissa) espressa in byte. Se il file non è impaccato, tale lunghezza coincide con il numero dei caratteri; se invece il file è impaccato, tale lunghezza si ottiene dividendo per 2 il numero di cifre, e arrotondando per eccesso se necessario. Fra gli argomenti dei comandi usati per effettuare operazioni su file con record a lunghezza fissa è sempre necessario specificare la lunghezza in byte (vedi ad esempio il comando LOAD). In certi casi questa lunghezza è variabile secondo il valore di certi parametri che vengono spiegati. In caso di presenza della RAM-Card (solo PROX+F/G) i file nativi prodotti dal terminale vengono memorizzati solo su quest'ultima (drive B e C). I file di dati nativi utilizzati dal terminale vengono invece cercati su tutti i drive disponibili. 5.7.2 I file in rilevazione presenze File PREammgg P <(x+y+z+c+k)/2> x = 6 (se il parametro-01<10) hhmmss CONFIGURAZIONE 98 x = 4 (se il parametro-01>10) hhmm y = 1 direzione o prima cifra della causale z = 0 (se il parametro-60=0 o 1) z = 1 (se il parametro-60=2 ) seconda cifra della causale z = 2 (se il parametro-60=3 ) causale a 2 cifre separata c = il valore del parametro-43 k = 0 (se il parametro-18 = 0 o 7) k = 2 (se il parametro-18 = 6) Il terminale memorizza le transazioni di presenza in un file diverso giorno per giorno. Il nome del file ha le prime tre lettere uguali a “PRE” seguite da cinque cifre che rappresentano la data: una cifra per l’anno (la meno significativa dell’anno corrente) seguita da due del mese e due del giorno. Esempio: PRE10212 contiene i dati di presenza del 12 Febbraio 2001. Il record contiene sempre tre parti: orario, causale, codice. L’orario può essere di sei oppure quattro cifre (HHMMSS o HHMM) in relazione al valore del parametro 01. La causale può essere di una o due cifre dipendentemente dal parametro 60. Il codice ha la lunghezza specificata dal parametro 43. Se il terminale è master di una rete di lettori slave di controllo accessi #914 HotMAX o #916 EnTRAX, avendo impostato il parametro 18-NETMode al valore 6, questo file memorizza anche gli accessi effettuati su queste unità. In questo caso in fondo al record sono aggiunte due cifre che rappresentano l’indirizzo del terminale: l’indirizzo zero (“00”) rappresenta le letture locali del terminale master. Il file è memorizzato in modalità “packed”: nel caso si intenda aggiungere o modificare un record all’interno di un file PREammgg (da shell comandi o all’interno di una transazione utente, ad esempio per effettuare le timbrature inserendo i codici da tastiera invece che attraverso il lettore di badge), occorre utilizzare dapprima il comando DBU PREammgg PN, dove N è lunghezza in byte di ogni record (ottenibile dividendo per due il numero di cifre, approssimato al numero pari successivo se dispari), e poi i comandi DBA record o DBC key record, dove record ha l’esatto numero di cifre (pari o dispari), senza cifre di riempimento (cfr. § 6.1.4). Come si è visto, la struttura del record dipende dai parametri 01, 18, 43 e 60: ogni volta che uno di questi parametri viene modificato, è opportuno cancellare tutti i file PREammgg presenti sul terminale, in quanto il loro formato record non è più congruente con la nuova parametrizzazione. N.B.: il terminale non consente la cancellazione del file presenze odierno, in quanto è considerato “in uso”; per cancellarlo ugualmente è possibile seguire diversi metodi: 1) inviare un comando CONSIDLE, cancellare i file presenze, inviare un comando OFFLINE. 2) inviare un comando di ‘reset’ con cancellazione di tutti i file contenuti su un drive; %%2 per il drive A, %%3 per il drive B, %%4 per il drive C. Attenzione: questo metodo non è conveniente nel caso il drive in questione contenga altri file di servizio, oltre quelli di presenze. ESEMPIO con “CFG 01 2”, “CFG 43 5”, “CFG 60 3”, si ha… TYPE PRE30509 07025510030122 07030410030095 07454010351004 12594500230095 {EOT}4 RECS Gli utenti con codice “30122” e “30095” entrano normalmente alle “7:02:55” e “7:03:04” rispettivamente. L’utente “51004” entra alle “7:45:40” con causale “03”. L’utente “30095” esce alle “12:59:45” con causale “02”. File WMSG (A) <codice personale><messaggio> Contiene l’elenco dei messaggi da mostrare temporaneamente quando viene riconosciuto un particolare codice badge. In caso di PROX+F/G, deve essere situato sullo stesso drive logico del (A, B o C) sul quale sono prodotti i file di rilevazione presenze. CONFIGURAZIONE 99 Ogni linea del file deve avere all’inizio il codice del badge, di lunghezza corretta, seguito dal testo da mostrare sul display. Possono esserci piu’ linee associate allo stesso badge: in questo caso verranno mostrate in sequenza. Nel codice possono essere presenti i caratteri “_” (“underscore” o chr(95): funziona come jolly corrispondente a qualsiasi cifra di codice del badge in quella posizione. In pratica un messaggio con tutti “_____..” al posto del codice verra’ mostrato al passaggio di ogni tessera valida. Per il testo dei messaggi valgono i caratteri speciali utilizzabili nei “prompt”, e anche i comandi ‘%’ (Cfr. § 6.3), ad esempio per attivare un relè (comando “%Ont”), incrementare uno dei contatori 75..80 (comando “%+nn”), ecc. Il comando “%E3” causa l’abbandono della visualizzazione di WMSG. Normalmente, il terminale cancella il contenuto del display prima di visualizzare il successivo messaggio di WMSG; è possibile evitare la cancellazione del video impostando a ‘1’ il bit 3 del parametro 58-ExtraBits. Il caricamento del file deve essere effettuato mediante il comando “LOAD WMSG”, al quale seguono i vari record alfabetici. File PRSTAT (A) <codice personale><messaggio> Contiene l’elenco dei messaggi da mostrare temporaneamente quando, in rilevazione presenze, viene premuto il tasto funzione A. In caso di PROX+F/G, deve essere situato sullo stesso drive logico (A, B o C) sul quale sono prodotti i file di rilevazione presenze. Il file ha le stesse modalita’ di visualizzazione spiegate per il file WMSG. Il caricamento del file deve essere effettuato mediante il comando “LOAD PRSTAT”, al quale seguono i vari record alfabetici. File EXITCODS (A) Elenco esplicativo delle causali di passaggio. Deve contenere nella prima posizione il numero usato per selezionare la causale (una o due cifre a seconda del valore assegnato al parametro 60). Quando questo file esiste l’utente può specificare solo i codici causale ivi contenuti. Il caricamento del file deve essere effettuato mediante il comando “LOAD EXITCODS”, al quale seguono i vari record alfabetici. Esempio: 3 Esce Infortunio 5 Perm. Straord. 6 Esce Trasferta File EXITFKEY (A) Elenco delle causali direttamente associate ai tasti funzione. Contiene il “prompt” usato sul display alla pressione del tasto funzione. Contiene una coppia di linee per ogni tasto funzione: la prima specifica la causale da produrre nel record di presenza, nella seconda è descritto il prompt. Valgono anche i codici causale a due cifre. Le coppie di linee sono associate nell’ordine ai tasti funzione, o sequenze di tasti funzione, in questo ordine: B .. E , F A .. F E , F F e F 1 .. F 9 . Se come codice causale è presente un carattere ASCII minore di “0” il tasto funzione corrispondente rimane libero per altri tipi di transazioni. Il caricamento del file deve essere effettuato mediante il comando “LOAD EXITFKEY”, al quale seguono i vari record alfabetici. CONFIGURAZIONE 100 Esempio: 2 :M:| Infortunio 3 :M:| Permesso * x x x x 6 :M:| Sciopero Questo file assegna al tasto funzione B la causale “2”, al tasto funzione E C la causale “3”, al tasto D la causale “6”, mentre lascia indefinito il tasto funzione , che può quindi essere usato per funzione E attivare altre transazioni (NB: in caso di TRAX+F/G le posizioni relative al tasto mancante e alla sequenza F E devono sempre essere lasciate indefinite). Il carattere ‘|’ consente di visualizzare la descrizione della causale sulla seconda riga, lasciando inalterata la prima (cfr. §6.2). Le causali possono anche essere a due cifre: verrà usata solo la prima a meno che il parametro 60-CauseMode non valga 2. Attenzione: se al terminale è stato collegato un lettore secondario magnetico o di prossimità, esso deve essere esplicitamente abilitato se si vuole che funzioni con EXITFKEY, quindi all’interno dei prompt deve essere specificato il flag “B” (cfr. §6.2.1). Ad esempio, si usi :MB:|Infortunio invece di :M:|Infortunio Attenzione: in caso di display grafico, il prompt può contenere i caratteri speciali per il posizionamento del cursore (ed eventualmente centratura della scritta, si veda l’addendum per terminali con display grafico per ulteriori informazioni). Sul PROX+G, ad esempio, si usi :MB:@05,00{24}RInfortunio e sul TRAX+G :MB:@04,00{24}RInfortunio File FPRNPRE (A) Contiene il testo da stampare per ogni transazione di rilevazione presenze o controllo accessi. Può contenere solo linee di testo prefissato e sequenze di caratteri particolari che sono intercettate e sostituite con i dati di ogni transazione al momento della stampa. I comandi supportati possono essere posizionati ovunque all’interno di una riga; ne elenchiamo di seguito la sintassi: #a Produce la stampa del codice personale del badge letto a partire dalla posizione occupata dal carattere “#” del comando “#a”. #b Produce la stampa del verso di strisciamento del badge letto a partire dalla posizione occupata dal carattere “#” del comando “#b”; la stringa stampata è uguale a quella visualizzata dal terminale al momento della lettura (se la visualizzazione è abilitata), nella lingua correntemente impostata. #c Produce la stampa del codice causale a partire dalla posizione occupata dal carattere “#” del comando “#c”; se è presente il file EXITCODS, stampa la stringa prelevata dal file corrispondente alla causale. #(pattern) Produce la stampa della rappresentazione dell’ora/data del momento. Il “pattern” risponde alle regole dei pattern di tempo descritti a proposito del comando %t (Cfr. § 6.3). Il caricamento del file deve essere effettuato mediante il comando “LOAD FPRNPRE”, al quale seguono i vari record alfabetici. Esempio: un file FPRNPRE contenente le seguenti righe BUONGIORNO CONFIGURAZIONE 101 #(W Dd/Nn/Yy) Ore #(Hh:Mm) #b matricola #a produce la seguente stampa (entrata, lingua italiana): BUONGIORNO Lun 23/12/93 Ore 12:30 entra matricola 00345 5.7.3 I file per il controllo accessi File AXGROUPS (N) Gruppi abilitati: prefissi ai codici personali. Esempio: 003 004 35 089002 Con un file AXGROUPS che contiene i quattro record elencati, risultano valide solo le tessere che hanno, all’inizio del codice individuale, 003 oppure 004, oppure 35, oppure 089002. Se il parametro 43 vale 6, l’ultimo record specifica esattamente una singola tessera; gli altri record specificano invece, in generale, gruppi di tessere. Il caricamento del file deve essere effettuato mediante il comando “LOAD AXGROUPS”, al quale seguono i vari record numerici eventualmente di lunghezze diverse. File AXCARDS P <(c+p+k)/2> c = il valore del parametro-43 p =2 (“pool” di appartenenza della carta) k = 0 (se bit 0 del parametro 74-Security impostato a ‘0’) = senza PIN k = 4 (se bit 0 del parametro 74-Security impostato a ‘1’) = con PIN Contiene l’elenco dei codici personali abilitati, il pool di appartenenza ed eventualmente il PIN associato al codice personale. Nel caso di funzionamento come black list specifica le tessere che NON possono entrare; in questo caso il campo “pool” non viene considerato. CCCC..: codice della carta, con lunghezza definita dal parametro 43. PP=00..99: pool di appartenenza. Vedi AXPOOLS. KKKK: PIN della carta, presente se attivato il controllo PIN (bit 0 del parametro 74-Security impostato a ‘1’) Nota: lo stesso codice personale può essere ripetuto più volte nel file AXCARDS, e quindi essere associato a diversi “pool”. La ricerca del codice continua sempre fino alla fine del file. Esempi: Se il codice personale delle carte è costituito da 4 cifre, il caricamento del file deve essere effettuato mediante il comando “LOAD AXCARDS P3”, al quale seguono i vari record numerici, ciascuno costituito da un codice personale di 4 cifre e dal relativo pool di appartenenza (2 cifre). Infatti 4+2=6 cifre possono essere memorizzate, in formato packed, in soli 3 bytes. Se il codice personale delle tessere è costituito da 5 cifre ed è abilitato il controllo del PIN, il caricamento dell’archivio deve essere effettuato mediante il comando “LOAD AXCARDS P6”, al quale seguono i vari record CONFIGURAZIONE 102 numerici, ciascuno costituito da un codice personale di 5 cifre, da un carattere ‘0’ di riempimento, il pool di appartenenza (2 cifre) e il relativo PIN (4 cifre). Infatti (5+1)+2+4=12 cifre possono essere memorizzate, in formato packed, in soli 6 bytes. Se vi sono carte per le quali il PIN non deve essere mai richiesto, è sufficiente definire per esse un PIN uguale a “0000”. File AXPOOLS (A) 6 formato: FFFFFF Contiene l’elenco dei pool (max 100, da 00 a 99) con un massimo di sei fasce orarie ciascuno. Il caricamento del file deve essere effettuato mediante il comando “LOAD AXPOOLS 6”, al quale seguono i vari record costituiti da 6 caratteri alfabetici maiuscoli (‘A’..’Z’), ognuno dei quali individua una fascia oraria nell’archivio AXTIMET. Se ad un determinato pool sono associate meno di 6 fasce orarie, le posizioni inutilizzate devono essere riempite un qualunque carattere il cui valore ASCII è inferiore ad “A” o superiore a “Z” (es: “-”, “0”=zero o “_”). Il primo record di AXPOOLS è relativo al pool ‘00’, fino al centesimo che è relativo al pool ‘99’. Esempio: AB---C----BCD--In questo caso gli utenti associati al pool “00” posso passare nelle fasce orarie A e B, quelli del pool “01” nella sola fascia C, e quelli del pool “02” nelle fasce B, C e D. File AXTIMET (A) 16 formato:HHMMhhmmGGGGGGGG Contiene la definizione delle fasce orarie per il controllo degli accessi (max 26 record). HHMM -> hhmm è l’ intervallo di validità oraria. GGGGGGGG=DLMMGVSF flag di validità nel giorno della settimana specificato (vedi descrizione dell’archivio ALARMTB). Il caricamento del file deve essere effettuato mediante il comando “LOAD AXTIMET 16”, al quale seguono i vari record costituiti da 16 caratteri alfanumerici, ognuno dei quali individua un orario di inizio, un orario di fine e i giorni della settimana (e festivi) di validita‘ della fascia oraria nell’archivio AXTIMET. Le posizioni dei giorni della settimana non validi devono essere riempite con caratteri il cui valore ASCII è inferiore ad “1” (es: “-“ o “0”=zero). Il primo record di AXTIMET è relativo alla fascia oraria ‘A’, fino al ventiseiesimo che è relativo alla fascia oraria ‘Z’. Esempio: 14001930-LMMGVS- Determina un fascia oraria valida dalle due alle sette e mezza del pomeriggio , tutti i giorni tranne la domenica e i giorni festivi. File AXGATES (N) 1 Ogni record di questo file qualifica la direzione di un lettore di accesso TMC #914 HotMAX o #916 EnTRAX nei casi in cui il terminale venga usato come master di una o più unità slave connesse su NET92. L’indirizzo dei lettori equivale alla posizione del record nel file. Il primo record di AXGATES è relativo al lettore di indirizzo 1, fino al trentunesimo che è relativo al lettore di indirizzo 31. Il caricamento del file si può effettuare indifferentemente con il comando “LOAD AXGATES 1” oppure “LOAD AXGATES”, e in entrambi i casi si può poi inviare un’unica stringa contenente tutti i valori da associare ai passaggi dei vari lettori slave. Esempio: CONFIGURAZIONE 103 11111000005555555555 In questo caso i primi cinque slave avranno attribuita direzione di passaggio “1” (ingresso), i secondi cinque “0” (uscita) e quelli di indirizzo da 10 a 20 direzione “5” (direzione custom, ma, essendo dispari, vale come entrata ai fini antipassback). Specificare “1” o meno sulla riga di AXGATES ha effetto solo su un eventuale comando “TYPE AXGATES”. Verificate personalmente la differenza. Il valore “2” fa effettuare il test sul badge per l’attivazione del relé sullo slave, ma la transazione non è registrata, mentre valori diversi sono registrati nel campo ‘verso’ dei record di presenza/accesso. Cfr Param.18 NETMode con valore ‘6’ o ‘7’. Il contenuto del file AXGATES viene letto dal terminale solo al “restart”. Dopo ogni caricamento di un nuovo file AXGATES è quindi necessario inviare un comando di “reset” affinchè le nuove impostazioni abbiano effetto. Se manca AXGATES in caso di “CFG 18 6” è come se fosse stato pieno di “0000…”, se invece “CFG 18 7” è come se fosse tutto “22222….” File AXTGATE P3 formato: RRPPAA Quando il terminale è usato come “master” di una rete NET92 composta da lettori di carte TMC #914 HotMAX o #916 EnTRAX, tramite il file AXTGATE è possibile definire quali pool sono abilitati a leggere la propria carta presso un determinato lettore ausiliario e in quali fasce orarie (eventualmente diverse da quelle in cui i pool sono abilitati sul lettore “master”). Ricordiamo che in questo caso occorre che siano presenti anche i file AXCARDS, AXPOOLS, AXTIMET e AXGATES. RR=01..31 oppure 00: indirizzo NET92 del lettore ausiliario (“00” identifica il terminale “master”, da usare solo nel caso in cui il bit 5 del parametro 81-ExtraComm sia impostato a ‘1’). PP=00..99: pool di appartenenza delle carte che possono utilizzare il lettore ausiliario RR. AA=00..99: pool che definisce le fasce orarie di abilitazione al passaggio. Il caricamento del file deve essere effettuato mediante il comando “LOAD AXTGATE P3”, al quale seguono i vari record costituiti da 6 caratteri numerici (che vengono memorizzati in formato packed). Ad ogni lettore ausiliario è possibile associare fino a 100 pool abilitati all’utilizzo; ad ognuno di questi è poi possibile associare fino a 100 pool che ne definiscono le fasce orarie di abilitazione. Il file AXTGATE può quindi contenere teoricamente fino a 31*100*100 records di definizione (10000 per ognuno dei 31 lettori ausiliari). Esempio: Si vuole consentire l’accesso al possessore della carta “0004” (appartenente al pool “01”) sui lettori ausiliari 1, 3 e 5 dalle 14:00 alle 19:30, tutti i giorni tranne la domenica e i giorni festivi . • Il file AXCARDS deve contenere il record “000401” (codice personale “0004” appartenente al pool “01”). • Il primo record del file AXPOOLS è costituito da “A00000” (pool “00” associato soltanto alla fascia oraria “A”); deve anche esserci un secondo record per il pool “01”, il cui contenuto non è rilevante per questo esempio. • Il primo record del file AXTIMET è costituito da “14001930-LMMGVS-“ (fascia oraria “A” valida dalle due alle sette e mezza del pomeriggio, tutti i giorni tranne la domenica e i giorni festivi). • Il file AXTGATE deve contenere i seguenti record: “010100” (lettore aggiuntivo “01”, passaggio consentito alle carte appartenenti al pool “01” durante le fasce orarie associate al pool “00”) “030100” (lettore aggiuntivo “03”, resto come sopra) “050100” (lettore aggiuntivo “05”, resto come sopra) File HOLYDAYS (N) 4 CONFIGURAZIONE 104 formato:GGMM Elenco dei giorni festivi, quattro cifre per record che rappresentano la data e il mese dei giorni che devono essere considerati festivi. Se nel file AXTIMET è presente l’apposito flag nella posizione “F”, il terminale cerca il record corrispondente al giorno corrente in questo file. Il caricamento del file deve essere effettuato mediante il comando “LOAD HOLYDAYS 4”, al quale seguono i vari record costituiti da 4 carattere numerici, ognuno dei quali individua la data (GGMM) da considerare come festivita‘. N.B. Non è un errore di stampa: HOLYDAYS va scritto con due “Y”. Esempio: 0101 0601 2504 0105 Se AXTIMET contiene: 14001930DLMMGVS10301550-------F allora, il primo e il 6 di gennaio, il 25 aprile e il primo maggio, è permesso il passaggio solo dalle 10:30 alle 15:50, indipendentemente da quale giorno della settimana caldano. File NOTOKAX (A) dalla “consolle” del terminale: MMGGhhmmCCCC… da un lettore slave su Net92: MMGGhhmm*NNCCCC.. Contiene l’elenco dei tentativi di accesso non validi (se Par.45-RecAccess = 2 ). Sono registrate le letture errate provenienti dai lettori di “consolle” o da lettori slave (#914 HotMAX o #916 EnTRAX) su Net92: in quest’ultimo caso il record registra anche l’indirizzo del terminale nel campo “*NN”. Il file NOTOKAX è creato sul drive A o B (se presente) del terminale; il drive C non è interessato. CCC… è la parte codice utente della carta non valida, oppure tutto il contenuto della carta se la non validità è per mancato riconoscimento del codice comune o insufficiente lunghezza del codice personale. Esempio: TYPE NOTOKAX TYPE NOTOKAX 03041121990034560000?> 030417453408 03050955*023512 {EOT}3 RECS In questo caso sono stati registrati come non validi i passaggi delle 11:21 del 4 Marzo della carta magnetica codificata con “990034560000” (non valida come codice comune) e delle 17:45 dello stesso giorno della carta con codice utente “3408”. Alle 9:55 del giorno dopo, dal lettore slave di indirizzo “02” è risultato non valido il passaggio dell’utente “3512”. 5.7.4 I file di registrazione dati o eventi File INPUTS P <6 o 5> formato: [GG]HHMMSSNIO0 Memorizza ogni evento relativo alle linee di input (abilitato tramite il parametro 33-InputMode, Cfr. § 5.6). Se il parametro 65-InputCtrl è impostato ai valori 2 o 3, è registrato anche il giorno del mese in cui si è verificato l’evento (campo “GG”). “N” rappresenta la linea di ingresso interessata (1..4, in caso di TRAX+F/G vale sempre 1 a meno che non si utilizzi anche l’input ausiliario IN2, disponibile solo in alternativa all’uso della porta RS232 COM1, nel qual caso CONFIGURAZIONE 105 può assumere anche il valore 2) “I” è lo stato dell’ingresso al verificarsi dell’evento (0,1) “O” vale ‘1’ se si è verificato anche l’overflow sul contatore “maggiore” di quell’input (quando quest’ultimo ha raggiunto il valore di 10000), altrimenti vale zero ‘0’. L’ultima cifra vale sempre zero ‘0’. Esempio: 220755181000 il giorno 22 del corrente mese, alle 07:55:18, il contatore “minore” relativo alla linea 1 è stato decrementato fino ad azzerarsi, e ricaricato al valore contenuto nel parametro 36-Input1. Lo stato dell’ingresso era ‘0’. Il significato pratico di questo record dipende dal contenuto dei parametri 36-Input1 e 69-InputEdge. File COM1DAT [P](A) Memorizza i dati ricevuti dalla COM1 quando è in modo registrazione (parametro 13 = 1 o 3). Il formato di registrazione è libero. se il parametro 13 = 3 i dati ricevuti devono essere sempre numerici: in questo caso il file è “packed”. File COM2DAT [P](A) Analogo a COM1DAT ma relativo alla porta COM2 (solo PROX+F/G). File N92ammgg (A) formato:HHMMRRmessaggio Memorizza i messaggi ricevuti da unità di input NET92 (par. 18-NETMode=5). Per ogni messaggio viene registrato un record contenente ora (HHMM), indirizzo del lettore (RR), e contenuto del messaggio (messaggio). 5.7.5 I file di transazioni definite dall’utente File PROC_x (A) Vedi § 6.4.1. File PFxammgg Vedi § 6.4.7. (A) CONFIGURAZIONE 106 5.7.5 Altri file File ALARMTB (A) 16 Contiene la tabella degli orari/giorni di attivazione degli eventi temporizzati. Ogni record ha il seguente formato: HHMMRTT DLMMGVSF (c’è uno spazio bianco tra TT e DL…) HHMM specifica l’orario di attivazione dell’evento R specifica il relè da chiudere… ‘1’..’3’ in caso di PROX+F/G ‘1’ fisso in caso di TRAX+F/G con par. 56-TeleRelay = ‘0’ ‘1’..’4’ in caso di TRAX+F/G con gestione dei relé remoti #909 TeleRelay attivata impostando il par. 56-TeleRelay a ‘1’ …o la transazione utente da eseguire: ‘A’..’E’, ecc. TT specifica il tempo di attivazione del relè. Il tempo di attivazione è sempre seguito da uno spazio bianco (blank, chr(32)). TT non è significativo se R=’A’..’E’, etc. DLMMGVSF sono flag posizionali che determinano in quali giorni della settimana avra‘ luogo l’evento in questione: se in corrispondenza di un giorno è previsto un carattere ASCII maggiore di ‘0’ l’evento è attivo quel giorno, altrimenti non lo è. La posizione “F” è relativa ai giorni festivi, specificati nel file “HOLYDAYS”. Il tempo di attivazione del relè è espresso in ottavi di secondo (00..99). Il valore 00 fa chiudere il relè indefinitamente. Per farlo aprire di nuovo è sufficiente inserire in ALARMTB un evento temporizzato che causi di nuovo la chiusura dello stesso relè per un tempo molto breve (ad esempio 01 ottavi di secondo). Una volta attivato questo evento, il relè torna a restare aperto. Per l’attivazione temporizzata delle transazioni utente il campo relativo al tempo di attivazione del relè è ininfluente e può essere impostato a ‘00’. Per lanciare una transazione utente (Cfr. §6.4), è sufficiente porre nel campo R il carattere identificativo della transazione (“A”..”E” per PROC_A..PROC_E, e così via). E’ anche possibile lanciare transazioni utente che non siano richiamabili in alcun modo da tastiera (vedi §6.4): il campo R può assumere qualunque valore compreso fra chr(65)=”A” e chr(191). Il caricamento del file deve essere effettuato mediante il comando “LOAD ALARMTB” (in questo caso particolare NON si deve specificare la lunghezza dei record, nonostante sia fissata), al quale seguono i vari record costituiti da 16 caratteri alfanumerici, ognuno dei quali individua l’ora, il tipo di evento da attivare, il tempo di attivazione (importante solo per i relè, mentre per le transazioni utente questo campo può essere impostato a ‘00’) e i giorni della settimana. Il campo HHMM può anche contenere uno o più caratteri jolly “_” (underscore o chr(95)). Esempio: 0930224 1505F00 1915308 ____E00 Il primo evento mercoledì. -LMM---- (attenzione allo spazio bianco) D-----SF D---GVS–LMMGV-temporizzato causa l’attivazione del relè 2 per 3 secondi (24/8) alle 9:30 di lunedì martedì e Il secondo causa il lancio della transazione utente PROC_F alle 15:05 di sabato, domenica, e festivi. Il terzo causa l’attivazione del relè 3, per 1 secondo (8/8), alle 19:15 di giovedì, venerdì, sabato e domenica. Il quarto causa il lancio della transazione utente PROC_E ogni minuto, dal lunedì al venerdì. Affinchè la gestione del file ALARMTB sia effettivamente attivata, occorre assegnare un valore diverso da ‘0’ al parametro 34-Alarms. Nel caso di PROX+F/G, il valore impostato ha corrispondenza con il numero identificativo del drive sul quale risiede il file ALARMTB. CONFIGURAZIONE 107 File FTMP (A) Contiene temporaneamente le linee dati registrate durante l’esecuzione di una transazione utente PROC_x; al termine della transazione, se i dati sono globalmente confermati, il contenuto di FTMP viene formattato secondo quanto definito dal parametro 27-Storage o dall’eventuale comando @Sn (Cfr. § 6.4.3) e quindi registrato nel file PFxammgg. L’utilizzo di un file temporaneo consente la revisione (effettuata tramite i tasti e ) dei dati registrati fino a quel momento. Il file FTMP è azzerato all’inizio dell’esecuzione di una transazione utente. INTERPRETE COMANDI E PROCEDURE UTENTE 109 6 INTERPRETE COMANDI E PROCEDURE UTENTE Il comportamento del terminale, dal punto di vista dell’utente, è definito dall’applicazione abilitata e dai parametri dalla configurazione corrente. Nelle applicazioni preprogrammate di rilevazione presenze e controllo accessi il comportamento del terminale è in gran parte predefinito e modellato dai parametri già descritti. L’utente può interagire col terminale attraverso messaggi inviati alle porte di comunicazione, i quali vengono gestiti da un “interprete comandi” detto anche “shell”. Il comportamento alla consolle per l’utente può essere estremamente vario, sia se la gestione avviene online da un computer master sempre attivo (tramite i prompt descritti al §6.2), sia che il terminale funzioni autonomamente sotto controllo di una procedura particolare (cioè una PROC_x, vedi §6.4). Di seguito sono descritte le modalità di funzionamento standard, per una informazione più completa consultate anche il Cap. 5 - Configurazione. N.B.: nei comandi di “shell” e nelle transazioni definite dall’utente, è spesso necessario fare riferimento a caratteri ASCII che non possono essere rappresentati. Nel seguito il singolo carattere ASCII chr(nnn) sarà sempre indicato con il codice fra parentesi graffe: {nnn}. Questa regola vale anche per i caratteri di controllo con un acronimo, come {EOT}, {CR}, {ESC}, e così via. 6.1 L’Interprete dei comandi o “shell” Molti dei comandi di shell sono simili ad equivalenti comandi di shell del sistema operativo Microsoft MS-DOS. Ogni comando trasmesso al terminale (una stringa di testo ASCII, con il comando sempre in maiuscolo) causa la ritrasmissione di una stringa di risposta. I comandi causano la ritrasmissione del comando stesso ed, eventualmente, una risposta ad esso concatenata. Nota: I comandi inviati al terminale via COM1 e/o COM2 possono essere provati manualmente, connettendo alla porta COM1 un normale videoterminale ASCII, e impartendo i comandi da tastiera (attenti però, PROX+F/G e TRAX+F/G non fanno l’eco dei singoli caratteri e quindi il videoterminale deve essere configurato per “eco locale”: ad esempio, nell’HyperTerminal di Windows, dovete abilitare la checkbox in File->Proprietà->Impostazioni->Impostazioni ASCII). Alcuni comandi implicano la ritrasmissione di un numero variabile di stringhe di risposta; l’ultima stringa è sempre identificata dal possedere come carattere iniziale un {EOT}=chr(4). Il terminale elabora il comando solo dopo la ricezione del carattere terminatore impostato per la porta di comunicazione utilizzata (rispettivamente mediante il parametro 14 per COM1 e 24 per COM2, per default è {CR}=chr(13)) e trasmette sempre almeno una linea di testo di risposta. Nel caso di comandi che forniscono risposte multilinea (DIR, TYPE, DBL), l’ultima linea trasmessa avrà come primo carattere {EOT}= chr(4). Via NET92 le risposte multilinea vengono trasmesse una per ogni risposta a polling; non è detto che il terminale risponda ad ogni ciclo di polling, soprattutto se l’host li invia in rapida successione: occorre quindi implementare una politica di gestione del polling basata su un timeout (ad esempio di 5 secondi) di attesa di un messaggio emesso dal terminale, e in ogni modo non superare i 10 polling al secondo per ogni indirizzo, altrimenti il terminale sara‘ sempre impegnato a rispondere al polling anzichè effettuare le operazioni di lettura badge, ecc.. Quando il comando contiene un errore che non ne permette una precisa identificazione, oppure i parametri non sono validi, è previsto un unico tipo di risposta negativa: il terminale trasmette la stringa “ ??” concatenata al comando ricevuto ed è quindi pronto per un nuovo comando. Se invece il comando è riconosciuto correttamente, ma il terminale non riesce ad eseguirlo, verrà concatenata la stringa “ ?*”. La ricezione delle stringhe “RING”, “NO CARRIER” e “CONNECT” non causa la ritrasmissione dell’eco, nè la segnalazione di “comando errato”, cioè l’eco del comando stesso seguito da “ ??”. Nel caso di collegamento ad un modem, infatti, l’emissione dell’eco causerebbe un “loop” interminabile di scambio messaggi fra il terminale e il modem stesso. Gran parte dei comandi è dedicata alla gestione dei file sul terminale. 6.1.1 Comandi di shell in stato online Durante lo stato di funzionamento on-line il terminale non riconosce i normali comandi di shell, bensì li mostra sul display. È possibile mantenere il terminale in modo on-line ed eseguire un comando di shell (che non è INTERPRETE COMANDI E PROCEDURE UTENTE 110 quindi rediretto al display) semplicemente ponendo il prefisso “@” prima del comando stesso (@DIR, @TYPE, ecc.). Questa regola non è applicabile ai comandi ONLINE, OFFLINE, CONSIDLE ed ai vari “reset” (%%, %%1, ecc.). I comandi “@command” sono eseguiti anche quando il terminale è in off-line. 6.1.2 Il “File System” La memoria interna del terminale è organizzata come in un piccolo file system a directory unica; possono essere utilizzati fino a tre drive contraddistinti dalle lettere maiuscole A, B, C. Il drive A corrisponde allo spazio nella RAM interna base di 128KB (TRAX+F/G #927 e #928, PROX+F/G) oppure 512KB (TRAX+G #929), meno le aree usate dal terminale per i propri processi: per i dati utente risultano quindi disponibili, circa 96KB e 480KB, rispettivamente. E’ l’unico drive presente in caso di TRAX+F/G. Solo per il PROX+F/G, quando è presente una RAM-Card, essa è vista come drive B, la quantità di memoria disponibile è pari alla dimensione nominale meno 3Kb, fino ad un massimo di 510KB. Nel caso sia installata una RAM-Card da 1MB, i 512KB finali sono visti come drive C. Ogni drive può contenere fino a 62 file (TRAX+F/G #927 e #928, PROX+F/G) oppure 96 file (TRAX+G #929); ogni file è individuato da un nome di otto caratteri alfanumerici, sia maiuscoli che minuscoli (attenzione: due file sono distinti se i loro nomi differiscono per il tipo di caratteri minuscoli/maiuscoli); il comando DIR permette di visualizzare nome e lunghezza dei file presenti nel drive corrente. Per la gestione diretta del contenuto di un file già presente sul terminale, è stata implementata una ulteriore serie di comandi (comandi “DBx …”) che permettono di agire su singolo record dei file. Questa possibilità risulta utile, per esempio, nel caso del controllo accessi, qualora si desideri modificare i diritti di accesso di una sola persona, senza dovere ricaricare l’elenco completo. 6.1.3 “Shell busy” Nel caso in cui siano attive piu‘ sessioni di “shell” (ovvero il terminale sia impegnato interattivamente su piu‘ di un canale di comunicazione), ogni tanto può accadere che una di queste sessioni risulti temporaneamente bloccata dall’attivita‘ di un’altra “shell”: in questo caso, invece di interpretare il comando, il terminale invia un messaggio di “shell busy”, costituito da due caratteri ‘punto’, come nell’esempio seguente: DIR .. Il messaggio costituito da due caratteri ‘punto’ è anche la risposta ai comandi ricevuti dal terminale quando la “shell” comandi non è ancora stata sbloccata con un comando “PW password” valido (solo se bit 7 del parametro 74-Security è impostato a ‘1’). 6.1.4 Comandi di “shell” Di seguito è riportata la lista dei comandi riconosciuti dal terminale; le parti in minuscolo sono quelle variabili, quelle tra parentesi quadre quelle opzionali. I comandi sono riconosciuti solo se in maiuscolo; gli spazi separatori posti fra gli argomenti dei comandi devono essere sempre singoli. Nei comandi che coinvolgono argomenti di tipo alfanumerico contenenti a loro volta spazi bianchi, è possibile includere gli argomenti stessi fra apici (“). Ad esempio, il seguente comando sostituisce una stringa di saluto nel file GREETING: DBC “Good Morning” “Good Night!” GREETING BMP nomefile X Y [N SS] BYE CD drive CFG nn [xxxxx] CONSIDLE [T] COPY filename drive DATE [waammgg][hhmmss] DBA record [filename] DBC key record [filename] [D] DBL key [filename] [D] DBS key [filename] [D] DBU filename [D] DBU filename [P] [reclen] DBZ filename [P] [reclen] DEL filename INTERPRETE COMANDI E PROCEDURE UTENTE 111 DIR [filename] HT nnn IDLE LOAD filename [P] [reclen] LOADP [filename] LOGOFF LOGON nn MEM hhhh OFF! OFFLINE ONLINE PRINT filename PROC f PW password REN oldname newname SPACE TIME [hhmmss] TYPE filename TYPE CFGS %XI %%[n] >NN messaggio È possibile inviare all’interprete comandi anche i comandi tipo ‘%’ descritti al § 6.3. Questi devono essere preceduti dall’unico carattere “%” ma senza il carattere {ESC}. Segue la descrizione dei comandi, accompagnata da alcuni esempi di utilizzo degli stessi. Le risposte del terminale sono indicate in corsivo. BMP nomefile X Y [N SS] Solo per terminali con display grafico. Si veda il § 8.3. BYE Ha effetto solo sul PROX+F/G, e causa l’abbassamento del pin RTS. Serve in comunicazione via modem con certi modelli che richiedono il segnale RTS basso per terminare la connessione. Non manda risposta. (In pratica questo comando è utile solo quando si sta usando COM1Hsk o COM2Hsk con il bit 5 = 1) Es.: BYE CD [drive] Ha senso solo in caso di PROX+F/G con RAM-Card. Mostra il drive corrente o cambia il drive corrente in quello specificato. Es.: CD CD A CD B CD B CFG nn [xxxxx] Mostra [o assegna] il valore del parametro specificato dalle due cifre iniziali obbligatorie (nn). Nell’invio di comandi di configurazione che impostano campi tipo “data” o “orario”, non vanno specificati eventuali caratteri separatori fra anno e mese, fra ore e minuti, ecc. Es.: CFG 03 CFG 03 2 CFG 03 1 INTERPRETE COMANDI E PROCEDURE UTENTE 112 CFG 03 1 CONSIDLE [T] Sospende la procedura di consolle attiva con un messaggio fisso e non permette il controllo della consolle da parte dell’HOST. Si usa normalmente per sospendere le operazioni su file eventualmente in corso, da parte del programma di consolle, perché l’host possa agire liberamente sui file (ad esempio ricevere e cancellare il file di rilevazione presenze del giorno). Sul display del terminale apparirà il messaggio di “terminale non disponibile” fino alla ricezione del comando OFFLINE o di un restart (“%%..”). Il flag opzionale “T” imposta un timeout in situazioni di inattività della shell: allo scadere del timeout il terminale ripristina automaticamente la schermata standard di rilevazione presenze. Es.: CONSIDLE CONSIDLE CONSIDLE T CONSIDLE T COPY filename drive Ha senso solo in caso di PROX+F/G con RAM-Card. Copia il contento del file dal drive corrente a quello specificato mantenendo il nome. Restituisce il codice di errore in caso di assenza del file sorgente, di assenza del drive specificato oppure per raggiungimento del numero massimo di file che possono risiedere sul drive specificato. Attenzione: Se le condizioni per la copia sono soddisfatte ma il drive di destinazione non possiede abbastanza spazio libero per accogliere tutto il file, la copia procede comunque riempiendo tutto lo spazio disponibile e segnalando poi un errore di tipo “?*”. Es.: COPY PRE30507 B COPY PRE30507 B DATE [waammgg][hhmmss] Come TIME ma relativo alla data. “w” indica il giorno della settimana (0=Domenica..6=Sabato). Usato in forma estesa imposta anche l’ora. Esempi: per richiedere la data: DATE DATE 1060717 per impostare la data a Martedì 21 Novembre 2006: DATE 2061121 DATE 2061121 per impostare la data e l’ora (12:05:00) contemporaneamente: DATE 2061121120500 DATE 2061121120500 DBA record [filename] <DB Append> Aggiunge in fondo al file il record specificato. Per file con record a lunghezza fissa occorre che record sia costituito da una stringa contenente un numero di caratteri uguale a quello specificato al momento della creazione del file. Se non è fornito un nome di file, l’operazione viene effettuata sul file in uso, specificato da un’istruzione DBU. Es.: DBA 8801000901 CARDS DBA 8801000901 CARDS INTERPRETE COMANDI E PROCEDURE UTENTE 113 DBA buonasera TESTO DBA buonasera TESTO DBC key record [filename] [D] <DB Change> Cerca e modifica il record che contiene, nella sua parte iniziale, la chiave “key” specificata: se non lo trova ritorna la stringa “ ?*” concatenata al comando ricevuto. Se non è fornito un nome di file, la ricerca viene effettuata a partire dalla posizione corrente del file in uso, specificato da un’istruzione DBU. La chiave di ricerca “key” può contenere uno o più caratteri “?”: questi corrispondono a posizioni della chiave stessa che non devono essere controllate. Per file di tipo “Packed” la chiave deve essere composta da un numero pari di caratteri numerici Il flag opzionale “D” specifica se si intende fare accessi diretti ai record invece che ricerche di chiave in modo sequenziale. Un accesso di tipo diretto tramite DBC è applicabile sia a file di lunghezza fissa che variabile: nell’accesso diretto la chiave “key” è una stringa numerica che rappresenta la posizione del record che si desidera modificare (il primo record del file ha posizione 1). Se il record cercato non esiste, il terminale crea nel file tanti record vuoti (riempiti cioè di spazi bianchi “ “) fino alla posizione indicata, che viene poi riempita col contenuto di “record”. Attenzione: l’allungamento del file avviene solo per file a lunghezza fissa, altrimenti l’operazione è logicamente inaccettabile. Questa particolare modalita‘ di gestione non è quindi applicabile a file creati in modo “Packed”. Es.: DBC DBC DBC DBC DBC DBC 8701 8701002004 CARDS 8701 8701002004 CARDS 8702 8702000999 8702 8702000999 543 A TESSERE D 543 A TESSERE D DBL key [filename] [D] <DB List> Mostra tutti i record presenti nel file a partire dal primo trovato che soddisfa la chiave di ricerca “key”: se non lo trova ritorna la stringa “ ?*” concatenata al comando ricevuto. Se non è specificato un nome di file, la ricerca viene effettuata a partire dalla posizione corrente del file in uso, specificato da un’istruzione DBU. La chiave di ricerca può contenere uno o più caratteri “?”: questi corrispondono a posizioni della chiave che non devono essere controllate. Per file di tipo “Packed” la chiave deve essere composta da un numero pari di caratteri numerici Il flag opzionale “D” specifica se si intende fare accessi diretti ai record invece che ricerche di chiave in modo sequenziale. In questo caso la chiave “key” è una stringa numerica che rappresenta la posizione del record che si desidera localizzare (il primo record del file ha posizione 1). Se il parametro 17-TxFileCk è impostato ad ‘1’, al termine della trasmissione, al numero di record trasmessi (si intendono quelli inviati DOPO L’ECO AL COMANDO “DBL” STESSO, il quale mostra anche il primo record che soddisfa la chiave di ricerca) è accodato un checksum costituito da un numero di 6 caratteri, ottenuto sommando fra loro i valori ASCII di tutti i caratteri trasmessi, ed 15 effettuandone il modulo 2 (il massimo valore che il checksum può assumere è quindi 32767). Si intendono qui i dati ‘netti’, privi di terminatori, indirizzo del terminale, ecc.: il checksum è calcolato in modo indipendente dallo stato di impaccamento del file. Anche il checksum è calcolato sul contenuto dei record inviati DOPO L’ECO AL COMANDO “DBL” STESSO. Es.: DBL 8801000901 CARDS DBL 8801000901 CARDS 8801000901 8801001001 8802001226 ... {EOT}24 RECS DBS key [filename] [D] <DB Show> Il terminale cerca il record che contiene, nella sua parte iniziale, la chiave specificata. INTERPRETE COMANDI E PROCEDURE UTENTE 114 Se lo trova restituisce il contenuto completo del record, altrimenti restituisce il comando seguito dal messaggio di errore “?*”. Se non è specificato un nome di file, la ricerca viene effettuata a partire dalla posizione corrente del file in uso, specificato da un’istruzione DBU. Se invece è specificato un nome di file la ricerca inizia sempre dalla prima posizione. La chiave di ricerca può contenere uno o più caratteri “?”: questi corrispondono a posizioni della chiave che non devono essere controllate. Ciò significa che il comando “DBS ?” restituisce qualunque record si trovi nella posizione corrente del file in uso. Per file di tipo “Packed” la chiave deve essere composta da un numero pari di caratteri numerici, e il carattere ‘?’ non funziona se non nella forma generica “DBS ?”. L’uso del flag opzionale “D” è analogo a quanto descritto per il comando DBL. Es.: DBS DBS DBS DBS DBS DBS DBS DBS 8700 CARDS 8700 CARDS ?* 8701 8701 8701002003 125 LISTA1 D 125 LISTA1 D VAR_TEXT_LINE_2 ??305 LISTA2 ??305 LISTA2 103059021991 DBU filename [D] DBU filename [P][reclen] <DB Use> Specifica l’uso di un determinato file nel successivo impiego dei comandi DBA, DBC, DBL e DBS (quando ad uno di questi comandi si ottiene una risposta contenente ‘?’, il comando DBU termina il suo effetto). Ciascun nuovo comando DBU, oltre a specificare un nuovo file “in uso”, rilascia qualunque altro file eventualmente utilizzato da un precedente comando DBU. La prima delle due versioni del comando è da utilizzare nel caso il file esista già, ma è anche possibile usarla specificando di proposito un nome di file inesistente: in questo caso il comando dà errore ma può essere comunque utile per rilasciare un altro file precedentemente in uso (se si omette di rilasciare un file in uso potrebbe essere impossibile in seguito effettuare altre operazioni sul file stesso, ad esempio cancellarlo tramite il comando DEL); il flag opzionale “D” specifica l’uso dell’accesso diretto ai record, invece della ricerca di chiave in modo sequenziale, nei successivi comandi DBC,DBL e DBS. La seconda versione del comando può causare i seguenti comportamenti: 1) se il file “filename” specificato esiste, si ottiene il comportamento di un comando DBU senza estensione; 2) se “filename” non esiste, allora viene creato con gli attributi richiesti, eventualmente in formato packed (attributo “P”) e con la lunghezza record specificata da “reclen” (espressa in byte, vedi § 5.7.1); per creare file a lunghezza variabile è sufficiente specificare una “reclen” uguale a 0 (zero). DBZ filename [P][reclen] Se il file specificato esiste, azzera le sue dimensioni ed imposta le caratteristiche definite dai parametri opzionali “P” e “reclen” (vedi comando DBU). Se il file specificato non esiste, lo crea con le caratteristiche definite dai parametri opzionali “P” e “reclen” (vedi comando DBU). Non usate questo comando per manipolare i file prodotti e aggiornati autonomamente dal terminale, poichè tali file hanno formato record definito e una modifica di formato può causare malfunzionamenti . Per il significato dei parametri, fate riferimento al comando “LOAD”. DEL filename Cancella il file specificato dal drive corrente. L’assenza del file specificato non causa errore. Es.: DEL PRE10504 DEL PRE10504 INTERPRETE COMANDI E PROCEDURE UTENTE 115 DIR [filename] Causa la trasmissione dell’elenco dei file presenti nel drive corrente, assieme allo spazio occupato su disco da ogni file. Vengono trasmesse tante linee di testo quanti sono i file. Ogni linea ha la lunghezza fissa di 15 caratteri più il terminatore. Nel caso venga specificata come “filename” una stringa con meno di 8 caratteri, vengono elencati tutti i file il cui nome inizia con la stringa specificata. I caratteri jolly come ‘? O ‘*’ non sono supportati. Se invece viene specificato un “filename” lungo esattamente 8 caratteri (eventualmente terminato con spazi per nomi più corti) il terminale risponde con la sola linea del file in questione, se questo è presente, altrimenti risponde “ ?*”. Questa modalita‘ può risultare utile per controllare rapidamente l’esistenza e/o le dimensioni di un determinato file, senza attendere tutta la sequenza di messaggi generati dal terminale in seguito ad un normale comando “DIR”. Es.: DIR DIR PRE10505 001196 PRE10506 001188 PRE10507 000682 PRE10509 001152 COM2DAT 014024 {EOT}5 FILES DIR PRE10506 // “filename” di 8 caratteri DIR PRE10506 001188 DIR PRE105 DIR PRE105 PRE10505 001196 PRE10506 001188 PRE10507 000682 PRE10509 001152 {EOT}4 FILES HT nnn Riservato. Imposta l’HOSTTIMER al valore specificato. IDLE Valido solo per la COM2 del PROX+F/G (serve in caso di configurazioni multi-point in RS485 o con un dispositivo di tipo broadcast sulla RS232). Pone il terminale in osservazione passiva dei dati ricevuti successivamente sulla porta COM2. Il terminale torna attivo quando ‘vedè transitare la sequenza di caratteri {SYN}!nnn{CR}. “!” è il normale punto esclamativo, “nnn” sono tre cifre corrispondenti all’indirizzo del terminale PROX+F/G col quale si intende instaurare il colloquio e {CR} è il carattere terminatore dei comandi ricevuti da PROX+F/G su COM2 (parametro 24-COM2TC). Se abbiamo impostato la parita‘ pari, {SYN} corrisponde effettivamente al carattere chr(22) o CTRL+V; se la parita‘ è dispari non sara‘ possibile risvegliare il PROX+F/G; senza nessun controllo di parita‘, {SYN} corrisponde al carattere chr(150), ovvero a chr(22+128). IMPORTANTE: dopo avere inviato il carattere {SYN}, l’elaboratore deve attendere almeno 5 millisecondi prima di inviare il resto della stringa (!nnn{CR}). Es.: IDLE ...(dati ignorati) ... {SYN}!008 [8] Prox... INTERPRETE COMANDI E PROCEDURE UTENTE 116 LOAD filename [P][reclen] Prepara il terminale a caricare il file specificato; i messaggi successivi al comando saranno interpretati come record da appendere al file, fino alla ricezione del carattere di controllo {EOT} =chr(4). Questo comando prevede ora un timeout di 30 secondi in situazioni di inattività della shell: allo scadere del timeout il file attualmente in via di caricamento viene chiuso automaticamente, e ogni successivo messaggio verrà interpretato come un comando di shell, anche se non è stato preceduto da un carattere {EOT}. Il comando “LOAD” non può essere utilizzato per caricare programmi in memoria flash o RAMCard; occorre usare il comando “LOADP”. Come gia‘ visto al § 5.7, il comando “LOAD” può essere utilizzato per caricare sul drive corrente i file di supporto riconosciuti dal terminale: WMSG, PRSTAT, EXITCODS, EXITFKEY, FPRNPRE, AXGROUPS, AXCARDS, AXPOOLS, AXTIMET, AXGATES, AXTGATE, HOLYDAYS, PROC_x, ALARMTB. Per la sintassi esatta del comando LOAD da utilizzare per il caricamento di uno specifico file, fate riferimento ai § 5.7.2...5.7.6. I file di definizione delle transazioni utente PROC_x (Cfr. § 6.4.1) devono essere caricati come normali file di testo a lunghezza variabile, come ad esempio “LOAD PROC_C”; analogamente per il file eventualmente specificato nella parte tablecheck di un prompt (Cfr. § 6.2.3). Se il flag ‘P’ è presente, il file (composto obbligatoriamente, in questo caso, da sole cifre numeriche) viene memorizzato impaccato (due cifre per byte). Se si specifica anche la lunghezza di record “reclen” (espressa in byte, vedi § 5.7.1), tutti i record saranno considerati di uguale lunghezza, pari a “reclen”. Se invece la lunghezza non è specificata il file viene memorizzato con un carattere separatore (CR) tra un record e l’altro. I file caricati con un’istruzione “LOAD” possono contenere tutti i caratteri ASCII appartenenti all’intervallo che va da chr(1) fino a chr(255)=”blank”, estremi compresi. Solo nel caso di trasmissione ASCII-RS232, devono essere esclusi i caratteri di controllo usati come terminatori e quelli eventualmente usati per la gestione dell’handshake, secondo le impostazioni correnti della porta seriale utilizzata (ad esempio chr(10)=”LF”, chr (13)=”CR”, chr(17)=”XON”, chr (19)=”XOFF”). Es.: LOAD TEST LOAD TEST 011RECORD1PROVA 011RECORD1PROVA 012RECORD2PROVA 012RECORD2PROVA 015RECORD3PROVA 015RECORD3PROVA {EOT} 3 RECS NB: usando la libreria TMC PROXC.DLL, è possibile caricare in un solo passo un file di testo creato in precedenza, semplicemente chiamando la funzione “SendFile” e specificando i seguenti argomenti: nome del file sul PC (con estensione), nome che deve essere assegnato al file sul terminale (senza estensione), flag impaccato/non impaccato, eventuale lunghezza fissa dei record (‘0’= non fissa). Si veda il §8.3 per ulteriori dettagli. LOADP filename Prepara il terminale a caricare un programma personalizzato nella memoria flash oppure in una partizione della RAM Card appositamente riservata allo scopo (formattazione effettuata col comando “%%5”). I messaggi successivi al comando saranno interpretati come “codice macchina” da caricare fino alla ricezione del carattere di controllo {EOT} =chr(4). Il comando “LOADP” non può essere utilizzato per caricare file diversi da quelli ottenuti mediante il sistema di sviluppo per programmi ‘C’ specifico per PROX+F/TRAX+F. In particolare, tale sistema di sviluppo produce due tipi di formati HEX eseguibili: .HEX e .A03. I file da caricare sulla RAM Card devono essere in formato .A03, mentre i file da caricare sulla memoria flash devono essere in formato .XBH. I file XBH possono essere creati a partire dai file in formato standard IntelHEX (.HEX) mediante l’utility XBHCONV.EXE. Si veda il §7.3.2 per ulteriori dettagli. INTERPRETE COMANDI E PROCEDURE UTENTE 117 Il comando LOADP restituisce il codice di errore in caso di assenza della partizione riservata, oppure in assenza del file da caricare. Es.: LOADP AOUT.A03 LOADP AOUT.A03 #20824A1074... #20824A1074... ... {EOT} 1256 RECS NB: usando la libreria TMC PROXC.DLL, è possibile caricare in un solo passo un file HEX o XBH precedentemente creato, semplicemente chiamando la funzione “SendPrg” (rinominata “LoadPrg” nel programma TMCDLLDEMO) e specificando il nome del file (con estensione .A03 oppure .XBH). Si veda il §9.4 per ulteriori dettagli. LOGOFF LOGON nn Validi solo se inviati attraverso una shell COM1/2 e con il terminale in configurazione “master” NET92 collegato ad altri terminali TMC “slave” (HotMAX, EnTRAX, TRAX o PROX); fate riferimento al parametro 18 - NETMode per le modalità supportate. Attenzione: le modalità “master” sono impostabili su TRAX+F/G solo se è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. §3.3.8). LOGON mette il terminale in modalità “gateway” con il terminale di indirizzo specificato (nn). Tutti i comandi successivi saranno rediretti al terminale specificato fino alla ricezione del comando LOGOFF, ovvero il terminale master in questo stato ‘lascia passare’ qualunque messaggio ricevuto, tranne un LOGOFF che lo fa uscire dalla modalità “gateway”. Il messaggio di LOGON ricevuto quando si è già in modo LOGON viene completamente ignorato. Per passare dal LOGON con un terminale al LOGON con un terminale diverso è necessario usare prima LOGOFF. LOGOFF è riconosciuto come comando solo mentre il terminale si trova in stato LOGON. Questo comando può essere utilizzato per inviare qualunque tipo di comando ai terminali “slave”, come ad esempio caricare/scaricare file sui terminali della famiglia PROX, inviare comandi di setup ai terminali #914 HotMAX, #922 TRAX+, ecc. Es.: LOGON 03 LOGON 03 ...(comandi rediretti al terminale 03) ... LOGOFF LOGOFF LOGOFF LOGOFF ?? MEM hhhh [nn] Comando riservato. OFF! Spegne il terminale. Attenzione: l’unico modo per riaccenderlo è tramite il tasto nascosto sotto il logo TMC in caso di E 0 in caso di PROX+G o il tasto in caso di TRAX+F/G. PROX+F, il tasto OFFLINE Esce dallo stato di “ONLINE” (o “CONSIDLE”) riattivando la procedura di consolle precedentemente in uso (rilevazione presenze/controllo accessi, PROC_x, ecc.). Es.: INTERPRETE COMANDI E PROCEDURE UTENTE 118 OFFLINE OFFLINE ONLINE Pone la console del terminale in stato ONLINE, cioè sotto il controllo dell’HOST. Il terminale sospende la procedura in corso (rilevazione presenze, controllo accessi, raccolta dati ecc.) e mostra sul display i “prompt” eventualmente trasmessi dall’HOST. I messaggi successivi inviati dall’HOST sono considerati come “prompt” per il display, a meno che siano preceduti dal prefisso “@”. I dati introdotti sul terminale dalla console vengono subito trasmessi alla porta di comunicazione che ha attivato la modalita‘ ONLINE. Importante: dopo aver ricevuto l’eco del comando ONLINE, l’host deve inviare al terminale un prompt (si veda il §6.2) entro il tempo specificato dal param. 66-WaitOnLin. Es.: ONLINE ONLINE PRINT filename Come TYPE ma trasmette l’output alla stampante seriale connessa alla porta di comunicazione COM1/2 specificata dal parametro 00-Printer. Es.: PRINT PRE10507 PRINT PRE10507 PROC f Determina quale procedura deve essere attivata in seguito ad un “restart” del terminale o all’uscita dalla modalità “ONLINE”. Il parametro f può assumere i valori “A”…”R”, “a”…”z” o “1”…”9”, purché sul terminale sia stata caricata una procedura di nome PROC_f. E’ quindi possibile, in questo modo, lanciare transazioni utente che non siano in alcun modo richiamabili da tastiera (vedi §6.4). NB: l’effetto di questo comando è permanente, fino ad un nuovo comando PROC o fino alla completa perdita dei dati sulla SRAM tamponata. Il valore di default del parametro f è “R”, che identifica l’applicazione firmware standard di rilevazione presenze. Es.: PROC C PROC C PW password Quando il bit 7 del parametro 74-Security è impostato a ‘1’, prima di ottenere l’accesso alla “shell” comandi del terminale attraverso uno dei canali di comunicazione (COM1/COM2/NET92/Ethernet) è necessario effettuare un’autenticazione costituita dal comando “PW password”. La “password” è costituita dalla stringa memorizzata nel parametro 89-Password. Dopo tre tentativi errati, il terminale si spegne. Quando la “shell” è bloccata, ad ogni comando ricevuto, il terminale risponde con un messaggio costituito da due caratteri ‘punto’, come nell’esempio seguente: DIR .. Una volta sbloccata la “shell” comandi, è possibile effettuare tutte le consuete operazioni di gestione del terminale: operazioni sul file system, sui parametri, ecc. Al termine è possibile bloccare di nuovo la “shell” comandi mediante un altro comando “PW password”, specificando questa volta una password qualunque, purchè diversa dalla stringa contenuta nel parametro 89Password (es. “PW 99999”). ESEMPIO: PW 54321 REN oldname newname Cambia il nome del file specificato in quello nuovo. Se il file non c’è ritrasmette il comando con l’appendice di errore. INTERPRETE COMANDI E PROCEDURE UTENTE 119 Es.: REN PRE10508 SAV10508 REN PRE10508 SAV10508 SPACE Il terminale trasmette il numero di byte disponibili nel drive corrente. La risposta consiste in una singola linea lunga 12 caratteri più il terminatore. Lo spazio indicato è approssimato al multiplo di 254 byte inferiore allo spazio effettivamente disponibile; ad esempio, un file vuoto (che nella DIR appare lungo 0 byte) , provoca una riduzione di 254 byte nello spazio di memoria disponibile su disco. Es.: SPACE SPACE 096266 TIME [hhmmss] Mostra o aggiorna l’orario interno del terminale. Es.: TIME 082500 TIME 082500 TIME TIME 082519 TYPE filename Causa l’invio del contenuto del file specificato, con una linea di testo per ogni record del file. Il formato del file è sempre “esteso”: il comando controlla il formato di memorizzazione (impaccato o meno, a record di lunghezza fissa o variabile) e produce il testo in formato corretto. Es.: TYPE PRE10512 TYPE PRE10512 1230121020345 1230450020501 1231031030029 ... {EOT}19 RECS Se il parametro 17-TxFileCk è impostato ad ‘1’, al termine della trasmissione, al numero di record trasmessi è accodato un checksum costituito da un numero di 6 caratteri, ottenuto sommando fra 15 loro i valori ASCII di tutti i caratteri trasmessi, ed effettuandone il modulo 2 (il massimo valore che il checksum può assumere è quindi 32767). Si intendono qui i dati ‘nettì, privi di terminatori, indirizzo del terminale, ecc.: il checksum è calcolato in modo indipendente dallo stato di impaccamento del file. Es.: TYPE PRE10512 TYPE PRE10512 1230121020345 1230450020501 1231031030029 ... {EOT}19 RECS 004512 NB: usando la libreria TMC PROXC.DLL, è possibile scaricare e salvare su PC un intero file in un solo passo, semplicemente chiamando la funzione “RecvFile” e specificando il nome del file sul terminale e quello che gli deve essere assegnato sul PC. Si veda il §8.3 per ulteriori dettagli. TYPE CFGS Causa l’invio della lista dei parametri presenti sul terminale e dei rispettivi valori correnti. Consente di controllare quali parametri sono gestiti dalla versione del firmware del terminale. INTERPRETE COMANDI E PROCEDURE UTENTE 120 Es.: TYPE CFGS TYPE CFGS CFG 00 0 CFG 01 3 ... CFG 99 {EOT}81 RECS Se il parametro 17-TxFileCk è impostato ad ‘1’, al termine della trasmissione, al numero di record trasmessi è accodato un checksum calcolato con gli stessi criteri descritti per il comando “TYPE filename”. %XI (o messaggio vuoto: “”, solo da shell) Provoca l’invio di una stringa identificativa del tipo: [nnn] Trax+F rDNNER A -> TRAX+F #927 [nnn] Trax+G rDNNER A -> TRAX+G #928 [nnn] Trax+G 3DNNER A -> TRAX+G #929 (con piastra revisione 3) [nnn] Prox rDNNER A -> PROX+F #940 [nnn] Prox+g rDNNER A -> PROX+G #941 nella quale sono contenuti l’indirizzo NET92 deI terminale (identificatore nnn), la release del firmware installato (identificatore NN), per che tipo di display (identificatore D), la nazionalizzazione (identificatore E, sostituito a partire dalle versioni 86 da quello delle estensioni firmware per moduli aggiuntivi), le versioni speciali per i vari tipi di lettori di badge (identificatore R, vedi anche § 9.1), ed infine alcune informazioni relative alla configurazione di memoria del terminale e l’eventuale presenza di un programma ‘custom’ caricato nella partizione riservata sul drive B della RAM-Card (solo PROX+F/G). NB: Solo per il TRAX+F/G, la stringa identificativa specifica anche lo stato corrente della porta Ethernet integrata (vedi § 9.1.1): se la lettera che segue “Trax+” è maiuscola (‘F’ o ‘G’), allora la porta Ethernet è abilitata per i comandi di shell, altrimenti (‘f’ o ‘g’) è disabilitata. Tipo di display: “A”: “B”: “C”: “G”: 2x16 (solo vecchio PROX, versioni fw fino alla 44) 2x16 4x20 Grafico Nazionalizzazioni(versioni fw fino alla 85) oppure Estensioni (versioni fw 86 e successive): “_”: Firmware multi-lingua “_”: Nessuna estensione “i”: “d”: “e”: “f”: “s”: “h”: “p”: “k”: “c”: Italiano Tedesco Inglese Francese Spagnolo Olandese Portoghese Danese Ceco “G”: Modem GSM “M”: Modem integrato “I”: Finger Siemens “F”: Finger ST su COM1 (no RS232) “S”: Finger ST su COM0 (no Net92) “E”: Finger ST + Modem GSM “N”: Finger ST + Modem integrato “U”: Finger Suprema su COM1 (no RS232) “W”: Finger Suprema su COM0 (no Net92) “V”: Finger Suprema + Modem GSM “X”: Finger Suprema + Modem integrato Versioni speciali per lettori di badge: “0”: “1”: “2”: “3”: “M”: “N”: “L”: Lettore standard Clock&Data traccia 2 (magnetico, RFID Legic/Mifare sola lettura) Decoder magnetico traccia 1 Decoder traccia 2 per due lettori standard Clock&Data Decoder magnetico tracce 1/2/3 Lettore RFID 13.56MHz R&W Lettore RFID 13.56MHz R&W + lettore secondario traccia 2 standard Clock&Data Lettore RFID Legic R&W INTERPRETE COMANDI E PROCEDURE UTENTE 121 “H”: “I”: “W”: “G”: Transcodifica lettori HID Clock&Data Transcodifica per due lettori HID Clock&Data Gestione lettori con uscita Wiegand (“D” fino alla versione di fw 85) Gestione modem GSM (solo versioni fw fino alla 85) Gli ultimi due caratteri alfabetici della stringa indicano rispettivamente l’identificativo del piu‘ alto “drive” logico di memoria disponibile (A, oppure B o C su RAM-Card) e l’eventuale presenza di un programma ‘custom’ caricato nella partizione riservata sul drive B della RAM-Card. Se sul terminale è installata la sola memoria base (unica opzione in caso di TRAX+F/G) oppure l’eventuale RAM-Card non è utilizzata per contenere un programma ‘custom’, l’ultimo carattere è costituito da un “blank” (spazio bianco). Drive logico: “A”: Solo memoria base (unica opzione in caso di TRAX+F/G) “B”: RAM-Card con capacità inferiore a 512KB “C”: RAM-Card con capacità di 1 MB Stato della partizione per programma ‘custom’: “ “: “F”: “P”: “R”: Solo RAM base o partizione non riservata Partizione riservata, progr. non caricato Partizione riservata, programma caricato Partizione riservata, progr. caricato e in esecuzione Es.: PROX+F 2x16 con firmware multi-lingua rel.65, versione speciale per due lettori magnetici, solo memoria base (la “A” è seguita da un carattere “blank”): %XI [1] Prox rB65_2 A Es.: TRAX+G #929 con firmware multi-lingua rel.86, no versione speciale, Ethernet abilitata: %XI [1] Trax+G 3G86_0 A Lo stesso con Ethernet disabilitata: %XI [1] Trax+g 3G86_0 A Es.: PROX+ Display 4x20, RAM-Card con capacita‘ inferiore a 512 KB, sul drive B è stata riservata la partizione per il caricamento del programma ‘custom’, ma il programma non è stato ancora caricato (firmware rel.44, versione in italiano): %XI [1] Prox rC44i0 BF Es.: PROX+ Display 2x16, RAM-Card con capacita‘ di 1 MB, sul drive B è stata riservata la partizione per il caricamento del programma ‘custom’, il programma è stato caricato d è attualmente in esecuzione alla consolle di PROX+ (firmware rel.44, versione in inglese): %XI [1] Prox rB44e0 CR %%[n] Permette di “resettare” il terminale a vari livelli. Ogni ripartenza fa sì che siano impostati i parametri che necessitano del “restart” per diventare effettivi. Il “restart” del terminale provoca l’azzeramento dei contatori “minori” (contatori associati agli eventi di input, Cfr. § 5.5 e seguenti). Attenzione: in caso di TRAX+F/G, i seguenti comandi causano anche un “restart” dell’interfaccia Ethernet integrata, che quindi eseguirà nuovamente la procedura di INIT (richiesta ARP, pacchetto INIT UDP). %% equivale a spegnere e riaccendere il terminale. %%1 riparte con tutti i parametri di default, escluso l’indirizzo di rete NET92 che è mantenuto INTERPRETE COMANDI E PROCEDURE UTENTE 122 invariato. Cfr. § 3.3.3 per effettuare la stessa operazione da tastiera. Questa operazione provoca l’azzeramento sia dei contatori “maggiori” che “minori” (contatori associati agli eventi di input, Cfr. § 5.5 e seguenti). %%2 riparte dopo avere riformattato il drive A (memoria base); questo comando causa la cancellazione irreversibile di tutti i file contenuti nel drive A. I comandi “%%n” con ‘n’ maggiore di 2 hanno effetto solo sui PROX+F/G con RAM-Card installata, in tutti gli altri casi hanno lo stesso effetto di un “%%” semplice. %%3 riparte dopo avere formattato il drive B (corrispondente ad un’intera RAM-Card con capacita‘ massima di 512 Kb, oppure alla prima partizione di una RAM-Card con capacita‘ massima di 1 MB); questo comando causa la cancellazione irreversibile di tutti i file contenuti nel drive B. %%4 riparte dopo avere formattato il drive C (corrispondente alla seconda partizione di una RAM-Card con capacita‘ massima di 1 MB); questo comando causa la cancellazione irreversibile di tutti i file contenuti nel drive C. %%5 riparte dopo avere formattato il drive B (corrispondente ad un’intera RAM-Card con capacita‘ massima di 512 Kb, oppure alla prima partizione di una RAM-Card con capacita‘ massima di 1 MB), con allocazione di 32KB per il caricamento tramite il comando “LOADP” di un programma custom scritto in linguaggio ‘C’ e compilato mediante l’apposito sistema di sviluppo TMC fornito separatamente. Questo comando causa la cancellazione irreversibile di tutti i file contenuti nel drive B. %%6 solo per terminali TRAX+G con modem analogico integrato (aventi p/n del tipo 929.2x6.xx) o modem GSM integrato (aventi p/n del tipo 929.x76.xx), riparte dopo avere effettuato la procedura di “Modem setup”. NB: non ha senso usare questo comando via shell, è utile invece all’interno di una PROC_x la cui esecuzione automatica sia schedulata ad orari prefissati mediante il file ALARMTB. Il terminale risponde con uno dei vari messaggi di restart solo una volta tornato in stato “pronto”, cioè dopo avere effettuato il check di tutte le applicazioni eventualmente presenti: ciò può richiedere anche diversi secondi, dipendentemente dal modello di terminale. Nell’intervallo di tempo durante il quale il terminale effettua il “reset” (circa 1 secondo), è consigliabile che l’host non trasmetta altri comandi sul canale NET92, anche se questi sono indirizzati ad un terminale diverso da quello appena resettato, poiché la rete si trova in uno stato di “busy” che quasi sicuramente farebbe fallire la trasmissione stessa. Inoltre, per i comandi di reset ricevuti da un canale di comunicazione seriale COM1/2, con canale NET92 inattivo (mancanza di polling), dopo avere inviato il corrispondente messaggio di restart (“!!!”, “!?1”, ecc.), il terminale non è in grado di interpretare ulteriori comandi prima di almeno 500 millisecondi. I messaggi di restart sono inviati contemporaneamente dal terminale su tutti i canali abilitati come “shell comandi”. Es.: %% !!! %%1 !?1 %%2 !?2 %%3 !?3 %%4 !?4 %%5 !?5 %%6 !!! INTERPRETE COMANDI E PROCEDURE UTENTE 123 >NN messaggio Quando il terminale sta funzionando come “master” di rete NET92 (par. 18-NETMode impostato con un valore maggiore di ‘4’), è possibile inviare messaggi direttamente ad uno dei terminali slave senza effettuare la sequenza di comandi “LOGON”, messaggio, “LOGOFF”. Naturalmente questo comando è applicabile solo da una delle shell seriali COM1/COM2 o Ethernet integrata (solo TRAX+F/G). Attenzione: le modalità “master” sono impostabili su TRAX+F/G solo se è stata precedentemente inserita l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. §3.3.8). Il campo “NN” del comando può assumere valori compresi nell’intervallo “00”..”31”. “NN” uguale a “00” identifica messaggi di tipo ‘broadcast’, ovvero messaggi che sono ricevuti da tutti i terminali slave connessi alla porta NET92 del master. Se il master riesce ad inviare il messaggio al terminale slave di indirizzo “NN” specificato, il comando non restituisce nessun eco. Se il terminale non esiste, il master risponde col messaggio di errore “?*”. Messaggi con indirizzo “00” (“broadcast”) non restituiscono eco in nessun caso. È possibile, ad esempio, utilizzare comandi con messaggi “broadcast” per impostare i parametri di funzionamento offline dei lettori #914 HotMAX ausiliari, ecc. Se il parametro 18-NETMode è impostato a valori maggiori o uguali a ‘16’ (modalita‘ “(master)gateway continuo”), è possibile utilizzare il terminale come concentratore dati di una rete di lettori controllati in tempo reale da un elaboratore. Es.: >00%% >01%O! 6.2 // “Restart” di tutti gli slave // Chiude il relè dell’HotMAX 01 nota: “!”=chr(33) è il tempo di chiusura del relè (vedi manuale dell’HotMAX) I “prompt” Un “prompt” è una stringa di caratteri utilizzata per mostrare un messaggio sul display del terminale e permettere l’introduzione di un dato tramite un dispositivo di input, con la possibilità di controllarne sia la fonte che alcune caratteristiche del contenuto. Il terminale permette l’introduzione di dati solamente in risposta ad un “prompt” mostrato a video. I prompt possono essere ricevuti in successione in modo ONLINE, oppure memorizzati in un file di tipo “PROC_x” (Cfr. § 6.4.1) e usati come transazioni associate ai tasti funzione, in modo OFFLINE. Il formato generico di una linea di prompt è il seguente (le parentesi quadre identificano sempre parti opzionali, mentre le parentesi graffe identificano il singolo carattere ASCII indicato): [:[inputflags][,mask][,tablecheck]:]Dammi un | numero: __ [{ESC}%...] La parte non compresa tra parentesi quadre è quella che viene effettivamente mostrata sul display (il corpo del prompt). Nel corpo del prompt, il carattere “|” (“pipe” o chr(124)) è il comando che consente di visualizzare messaggi/accettare dati sulla successiva linea del display. N.B.: Ogni carattere “|” manda a capo sulla linea successiva finché non viene raggiunta l’ultima linea; in caso di display 2x16 o 4x20, ulteriori caratteri “|” fanno semplicemente tornare il cursore all’inizio dell’ultima linea (la seconda o la quarta rispettivamente), mentre in caso di display grafico continuano a mandare a capo, ripartendo dalla prima linea. I caratteri “_” rappresentano le posizioni di introduzione dei caratteri digitati; possono non essere presenti quando non è prevista la visualizzazione del dato introdotto (per esempio nel caso di lettura di un badge magnetico). Il cursore può essere spostato sulle posizioni “_” già riempite mediante i tasti freccia sinistra/destra. In modalità ONLINE, se il corpo del prompt non contiene dei caratteri “_”, la pressione dei suddetti tasti freccia provoca la INTERPRETE COMANDI E PROCEDURE UTENTE 124 trasmissione delle stringhe “#le” e “#ri”, rispettivamente. Durante l’immissione di un dato in un prompt, è possibile usare il tasto ma solo se è già stato introdotto almeno un carattere. per inserire un punto decimale, Sempre nel corpo del prompt, alcuni caratteri hanno un significato particolare: {FF}=chr(12) cancella il display. {HT}=chr(9) sposta il cursore di una posizione verso destra senza modificare il testo già visualizzato. {VT}=chr(11) porta il cursore oltre l’ultima posizione del display. {BEL}=chr(7) provoca l’emissione di un breve suono da parte del terminale. {RS}=chr(30) porta il cursore sulla prima posizione in alto a sinistra del display senza cancellarlo (in una PROC, vedi §6.4, tale comportamento è implicito se il bit 3 del parametro 58-ExtraBits non è impostato ad ‘1’) {US}=chr(31) determina una pausa pari al valore del parametro 64-ShowMsg (in caso di display 2x16 o 4x20 può essere usato per mostrare messaggi formati da più linee, ciascuna visualizzata temporaneamente, con solo l’ultima linea che rimane stabilmente a video). “|”=chr(124) porta il cursore sulla prima posizione della riga successiva del display senza cancellarlo. La parte opzionale prefissa al corpo del prompt, compresa tra la coppia di “:” contiene i criteri di introduzione e validazione del dato: la parte precedente la prima virgola specifica principalmente i dispositivi di input abilitati (piu’ altri effetti diversi), la parte successiva alla prima virgola rappresenta la maschera di accettazione dei singoli caratteri, specificando per ciascun carattere se è obbligatorio o meno, e se deve essere alfabetico, numerico o alfanumerico. Questi criteri si ‘sommano’ a quelli di default specificati nel parametro 72-PrmptDflt. Alla fine di un prompt può essere presente una parte di comandi ‘%’ (Cfr. § 6.3) preceduti dal carattere “Escape” ({ESC} o chr(27)). Attenzione: i prompt hanno una lunghezza massima (comprensiva delle eventuali parti opzionali inputflags, mask e tablecheck) che dipende dal tipo di display presente sul terminale: • 38 caratteri in caso di display 2x16 • 98 caratteri in caso di display 4x20 • 110 caratteri in caso di display grafico 6.2.1 Dispositivi di input e modalita‘ di introduzione dati Ognuno dei caratteri nella lista seguente può essere presente singolarmente nella parte iniziale di un prompt, quella indentificata come “inputflags” . Servono per determinare i dispositivi abilitati ed altre modalita‘ di accettazione dei dati. In assenza di questi segnalatori, i dispositivi abilitati sono quelli determinati dal parametro di configurazione 72-PrmptDflt. In mancanza di ‘/’ o ‘%’ se viene introdotto un dato che è piu‘ lungo del campo di immissione (quello costituito dai caratteri “_”) si verifica una sovrapposizione sull’ultimo carattere. * Asterisco: i dati introdotti sono visualizzati come asterischi. - Segno “meno”: disabilita tutti i dispositivi di input. I tasti funzionali non sono disabilitati dal “-“: per ottenere ciò è necessario inserire anche il flag “f”. . Punto: i dati introdotti sono confermati automaticamente con l’inserimento dell’ultimo carattere nel . campo, senza attendere la pressione del tasto di conferma ! Punto esclamativo: sul dato introdotto nel prompt è effettuato il controllo del check digit (cifra di checksum), con criteri diversi a seconda della provenienza del dato e, per i barcode, anche a seconda del tipo di codice a barre decodificato (Vedi anche il parametro 40-BadgeTk) . Il criterio è comunque applicato a tutti i dati introdotti, indipendentemente dalla provenienza. I barcode EAN-8, EAN-13 e UPC hanno un check digit incorporato che è sempre controllato, anche se nel prompt non è presente il flag “!”. In caso di insuccesso, il dato introdotto è cancellato. 5 • Tastiera, COM1/2 e Barcode Interleaved 2/5: è applicato il test del check digit Modulo 10 IBM. • Barcode Code-39: è applicato il test del check digit Modulo 43. È effettuato il controllo del check digit Modulo 10 IBM solo sui barcode Interleaved 2/5. In caso di insuccesso, il dato introdotto è cancellato. INTERPRETE COMANDI E PROCEDURE UTENTE 125 9 È effettuato il controllo del check digit Modulo 43 solo sui barcode Code-39. In caso di insuccesso, il dato introdotto è cancellato. !5 È effettuato il controllo del check digit Modulo 10 IBM sia sui barcode Interleaved 2/5, sia sui dati introdotti da tastiera o da COM. In caso di insuccesso, il dato introdotto è cancellato. !9 È effettuato il controllo del check digit Modulo 43 sia sui barcode Code-39, sia sui dati introdotti da tastiera o da COM. In caso di insuccesso, il dato introdotto è cancellato. / Slash: un dato proveniente da Barcode, Magnetico o COMx è rifiutato se di lunghezza diversa dal minimo fra il numero di caratteri specificati in mask e il numero di “_” specificati nel prompt. In caso di insuccesso, il dato introdotto è cancellato. % Percento: un dato proveniente da Barcode, Magnetico o COMx è accettato qualunque sia la sua lunghezza, ma è troncato al minimo fra il numero di caratteri specificati in mask e il numero di “_” specificati nel prompt. 0 ‘Zero’: se il dato numerico introdotto è piu‘ corto del campo di immissione, esso viene allineato a destra con riempimento di ‘0’ a sinistra. 1 ‘Uno’: accetta anche i dati provenienti dalla porta seriale COM1. 2 ‘Due’: accetta anche i dati provenienti dalla porta Ethernet integrata in caso di TRAX+F/G (solo se abilitata, cfr. § 9.1.1) oppure dalla porta seriale COM2 in caso di PROX+F/G. = Segno di “uguale”: i dati introdotti non sono visualizzati. > Segno di “maggiore”: aggiunge l’indicatore di verso di lettura (“>” o “<”) agli input da lettore barcode. Negli input da lettore magnetico o di prossimità l’indicatore del verso di lettura viene già automaticamente aggiunto in coda, ma ciò non si verifica se viene usato uno dei flag ‘C’, ‘c’ o ‘V’: in tal caso è possibile forzare l’aggiunta dell’indicatore di verso di lettura con il flag ‘>’. Se presente, l’indicatore di verso di lettura viene duplicato (“>>” o “<<”) nel caso in cui la lettura venga effettuata tramite un lettore di codice a barre esterno o un lettore magnetico o di prossimità collegato al connettore strip secondario. a Nei prompt alfanumerici (cfr. § 6.2.2) consente di commutare alla modalità di introduzione lettere minuscole premendo il tasto , mentre premendo si può ritornare alla modalità lettere maiuscole. B Abilita sia il lettore barcode “slot” interno che il lettore barcode esterno, oppure il lettore secondario magnetico o di prossimità, oppure ancora il lettore RFID 13.56MHz R&W. N.B.: l’indicatore di verso di lettura negli input dal lettore secondario esterno è duplicato, per distinguerne le letture da quelle provenienti dal lettore interno. b Abilita il solo lettore barcode “slot” interno C Applica i criteri di validita’ per Ril.Presenze/Contr.Accessi al codice introdotto, estraendone quindi il solo “codice personale” (solo per input non da tastiera). c Come flag ‘C’, ma in piu‘ controlla che lo stato del badge sia ‘dentro’. Lo stato del badge è stabilito dal verso della piu‘ recente registrazione nei file PREammgg; il terminale effettua una ricerca su tutti i file PRE presenti sul drive di registrazione, a partire dal piu‘ recente e proseguendo a ritroso fino al piu‘ vecchio. Naturalmente ha senso abilitare questo controllo solo se tutte le transazioni di presenza/accesso sono registrate sullo stesso terminale. Per utilizzare questo flag è necessario che il controllo anti-passback sia abilitato. E Come flag ‘C’, ma valido anche per input da tastiera. V Come flag ‘C’, ma se il codice introdotto non è valido restituisce un singolo carattere ‘*’ seguito da eventuali caratteri “_” fino a raggiungere la lunghezza del campo dati, che in questo caso coincide col valore del parametro 43-BadgeLen). F B ) il prompt All’interno di una transazione utente, premendo un tasto funzione (ad esempio il tasto restituisce una stringa identificativa (in questo caso “#B”: se non ci fosse il flag ‘F’, invece, la procedura corrente verrebbe interrotta per tentare di eseguire la PROC_B). Può servire nelle PROC_x per controllare l’esecuzione di altre procedure oppure il flusso all’interno di quella in esecuzione (tramite un comando del tipo @J.., cfr. § 6.4.3) f Disabilita i tasti funzione. K Abilita la tastiera (default) k Disabilita la tastiera M Abilita il lettore di badge magnetici o di prossimità (solo quello interno) INTERPRETE COMANDI E PROCEDURE UTENTE 126 P Determina la trasmissione del dato introdotto alla stampante eventualmente collegata preceduto da un “a capo” {LF}=chr(10). p Determina la trasmissione del dato introdotto alla stampante eventualmente collegata ~ Tilde: disabilita l’emissione di un “beep” dopo ogni carattere introdotto nel prompt corrente. x Richiama la funzione utente in linguaggio “C” installata come ACCESSTRAP dopo l’introduzione del dato nel prompt. Ciò consente di effettuare operazioni complesse sui dati prodotti da una transazione utente (anche calcoli aritmetici) o un controllo immediato del dato introdotto nel prompt, con la possibilità di cambiarlo automaticamente. Si veda il §6.5 per ulteriori dettagli sulla programmazione in “C”. u All’interno di una transazione utente, premendo i tasti freccia o il prompt restituisce una stringa identificativa, rispettivamente “#up” e “#dn” (se non ci fosse il flag ‘u’, invece, si tornerebbe ai prompt precedenti / successivi per tutti i dati già introdotti della transazione corrente). Può servire nelle PROC_x per controllare, ad esempio, lo scrolling in un menu su file. + In caso di terminale con lettore magnetico a tripla traccia (avente p/n del tipo 929.xxx.13, 942.xxx.13 o 943.xxx.13), estrae i contenuti di tutte le tracce ISO 1, 2 e 3 (inclusi i rispettivi caratteri delimitatori) concatenandoli in un’unica stringa la cui lunghezza massima è 116 caratteri (eventuali altri caratteri vengono scartati). ‘‘ Spazio bianco: sostituisce gli eventuali caratteri segnaposto “_” non riempiti dal dato introdotto con degli spazi bianchi “ “. N.B.: ‘M’, ‘B’, e ‘b’ disabilitano implicitamente la tastiera; se si vuole avere la possibilita‘ di usare contemporaneamente lettori Barcode e Magnetico e la Tastiera si devono usare “MBK” in questo ordine. Alcuni esempi di prompt sono mostrati in coda al § 6.2.3. 6.2.2 La maschera di input La maschera di input (la parte di prompt contrassegnata come mask) definisce sia il tipo di dato che può essere introdotto in una certa posizione, sia, in certi casi, la lunghezza massima e minima del dato introdotto. Può contenere i caratteri “A”, “N”,”X”,”a”,”n”,”x”. Le lettere maiuscole rappresentano le posizioni obbligatorie, le minuscole quelle opzionali (tutte le maiuscole, se presenti, devono precedere le eventuali minuscole). Le lettere “N” e “n” rappresentano caratteri che devono F essere strettamente numerici (è ammesso il punto decimale, ottenibile premendo il tasto nel caso sia già stata introdotta almeno una cifra), “A” e “a” rappresentano caratteri strettamente alfabetici, le lettere, “X” e “x” possono essere coperte da qualsiasi carattere alfanumerico. Quando il cursore si posiziona nel punto corrispondente ad un input strettamente alfabetico (“A” o “a”) i tasti numerici del terminale vengono “rimappati” nel modo seguente, a seconda del numero di pressioni consecutive e ravvicinate dello stesso tasto: 2 in ‘A’, ‘B’, ‘C’ 3 in ‘D’, ‘E’, ‘F’ 4 in ‘G’, ‘H’, ‘I’ 5 in ‘J’, ‘K’, ‘L’ 6 in ‘M’, ‘N’, ‘O’ 7 in ‘P’, ‘Q’, ‘R’, ‘S’ 8 in ‘T’, ‘U’, ‘V’ 9 in ‘W’, ‘X’, ‘Y’, ‘Z’ In caso di input alfanumerico (“X” o “x”), invece, la tastiera del terminale viene “rimappata” nel modo seguente, sempre a seconda del numero di pressioni consecutive e ravvicinate dello stesso tasto: 1 in ‘1’, ‘+’, ‘*’, ‘/’, ‘=’ 2 in ‘2’, ‘ ‘ (blank), ‘A’, ‘B’, ‘C’ 3 in ‘3’, ‘$’, ‘D’, ‘E’, ‘F’ 4 in ‘4’, ‘!’, ‘G’, ‘H’, ‘I’ 5 in ’5’, ‘?’, ‘J’, ‘K’, ‘L’ INTERPRETE COMANDI E PROCEDURE UTENTE 127 6 in ‘6’, ‘&’, ’M’, ‘N’, ‘O’ 7 in ’7’, ‘P’, ‘Q’, ‘R’, ‘S’ 8 in ‘8’, ’%’, ‘T’, ‘U’, ‘V’ 9 in ‘9’, ‘W’, ‘X’, ‘Y’, ‘Z’ 0 in ‘0’, ‘.’, ‘ ‘ (blank), ‘_’, ‘-‘ Per quanto riguarda la lunghezza del dato introdotto, invece, possiamo notare ciò che segue: • Le lettere maiuscole nel mask indicano posizioni obbligatorie che diventano, dunque, anche una lunghezza minima. • Come abbiamo detto sopra la presenza del slash “/” come inputflag stabilisce una lunghezza massima del dato introdotto (il più corto tra la lunghezza specificata nel mask e quella specificata dagli underscores “_” nei prompt). La situazione cambia quando non viene specificato l’inputflag slash “/”: • Se il dato introdotto supera la lunghezza specificata dal mask ma non quella degli underscores “_” nel prompt, il dato viene accettato. • Se il dato introdotto supera la lunghezza specificata dagli underscores “_”, il dato viene comunque accettato, ma le posizioni eccedenti vengono tutte accumulate sull’ultima, a meno che non sia presente il percento “%”, caso in cui il dato viene troncato. Questo vuol dire che non è consigliabile configurare il vostro terminale in modo che debba leggere dei codici che sono più lunghi del numero di underscores “_” nel prompt. N.B.: Le maschere di input, così come i flag “/” e “%”, funzionano anche senza alcuna posizione “_” di immissione dati. Alcuni esempi di prompt sono mostrati in coda al § 6.2.3. 6.2.3 Tablecheck È anche possibile inserire il dato richiesto in un “prompt” dando all’utente la possibilità di selezionarlo da menu, oppure verificare / transcodificare il dato introdotto utilizzando un file di appoggio, secondo le modalità definite nella parte di prompt contrassegnata come tablecheck (Attenzione: la parte mask deve comunque essere presente, anche vuota, affinché il prompt con tablecheck sia correttamente interpretato): MFilename (Gestione menu su file - Filename max 8 caratteri): indica un file presente nello stesso drive logico contenente la procedura PROC_x che ha causato la richiesta del dato, oppure sul drive corrente se il prompt è stato inviato in modo ONLINE (accertatevi che il terminale si trovi sul drive giusto prima di lanciare un prompt contenenti la parte tablecheck). Il file deve essere costituito di normali stringhe di testo, non impaccate. N.B.: In questa modalità non ha senso usare i caratteri “_” per il campo di immissione dati. Una volta posizionati sul prompt, il terminale mostra sulla prima riga del display il corpo del prompt, mentre sulla seconda riga compare la prima scelta di menu prelevata dal file Filename; mediante i tasti e ci si sposta sulle varie voci di menu, mentre con si conferma la voce corrente. Sul file “PFxammgg” (Cfr. § 6.4.7), alla posizione identificativa del campo contenente la gestione di menu, il terminale registra l’ordinale della voce di menu selezionata, a partire dall’ordinale 1, qualunque sia il formato specificato nella parte mask (il flag ‘0’ nel prompt fa produrre l’ordinale della riga di menu selezionata su tre cifre, giustificate a destra con degli zeri , ad es. ”003”). Le voci numeriche possono essere richiamate rapidamente digitando sulla tastiera la cifra iniziale corrispondente. Il file con gli elementi del menù non deve avere più di 29 righe. La lunghezza totale non deve essere superiore a 510 byte. TFilename (transcodifica su file): indica un file avente le stesse caratteristiche descritte per la funzione di gestione menu M vista in precedenza. Il dato inserito è accettato soltanto se nel file Filename esiste un record che inizia con gli stessi caratteri del dato stesso: in questo caso, normalmente il terminale mostra il contenuto dell’intero record (chiave compresa) a partire dalla prima posizione della seconda riga del display ; l’operatore può quindi premere per confermare il dato introdotto, oppure un qualunque altro tasto per tornare in fase di modifica del prompt. Normalmente il file contiene quindi un insieme di INTERPRETE COMANDI E PROCEDURE UTENTE 128 record costituiti dai codici di riscontro per il data entry e dal testo da mostrare a video (questo testo può contenere comandi di cancellazione video, posizionamento sulla riga successiva, messaggi temporizzati, ecc. come descritto al § 6.2). VFilename (verifica su file): indica un file avente le stesse caratteristiche descritte per la funzione di gestione menu M vista in precedenza. Il dato inserito è accettato soltanto se nel file Filename esiste un record che inizia con gli stessi caratteri del dato stesso. Normalmente il file contiene quindi un insieme di record costituiti dai codici di riscontro per il data entry. vFilename: come VFilename ma, nel caso il codice immesso non si trovi nel “file”, esce comunque dal prompt. Nella prima posizione del codice, però, il terminale inserisce un carattere “*” (asterisco). I caratteri M, T, V e v devono essere inseriti così come specificati, mentre il nome del file (come tutti i file del terminale) deve essere specificato ESATTAMENTE come caricato nel file system, con i caratteri minuscoli/maiuscoli nelle giuste posizioni. Esempi di prompt: {FF}Scrivi ciò che|vuoi:_____________ :BM:{FF}Un codice barcode| o magnetico! :MCK*,Nnnnn:Almeno una cifra|(mascherato):_____ :,NNNNNN:Dai un numero di|6 cifre:______ :0,,MCAUSALI:Scegli causale: :B,NNNN,VOPMATCH:Cod.Operazione:|______ :B,NNNN,TOPDESCR:Cod.Operazione:|______ :,AAAxxxxx:Dammi almeno 3|lettere:______ 6.3 Comandi ‘%’ Questi comandi, se presenti in coda ad un prompt (ma preceduti, in tal caso, dal carattere {ESC} o chr(27)), sono eseguiti prima di passare all’attesa dell’input sul prompt stesso. Questi comandi possono anche essere concatenati in un’unica stringa: in questo caso il carattere ‘%’ deve essere usato solo all’inizio della stringa, come ad esempio nel comando "%O1!O2&O3A" che chiude simultaneamente i relè 1,2 e 3, rispettivamente per 33 (valore ASCII del carattere ‘!’), 38 (valore ASCII del carattere ‘&’) e 65 (valore ASCII del carattere ‘A’) ottavi di secondo. I comandi a lunghezza variabile (come %I…, %P…, %S…, %t…) possono essere usati solo per ultimi all’interno di una stringa di comandi concatenati, quindi possono essere usati solo uno alla volta; unica eccezione a questa regola è il comando %K…, che può essere seguito da un qualunque altro comando ‘%’ preceduto da un secondo carattere {ESC} (vedi esempio al § 6.3.1). I comandi supportati sono i seguenti: %+A..%+D Incrementano di un’unita‘ il valore dei contatori “maggiori” A..D. I contatori “maggiori” si azzerano al raggiungimento del valore 10000. Questi comandi operano, a tutti gli effetti, come dei veri e propri eventi generati dalle corrispondenti linee di input del terminale (%+A per la linea 1.. %+D per la linea 4). A seconda delle impostazioni dei parametri relativi alla gestione degli input (33-InputMode e 65-InputCtrl), possono causare la trasmissione ONLINE dell’evento, la registrazione su file, il lancio della procedura PROC_Q (Cfr. § 6.4), ecc. NB: gli incrementi dei contatori “maggiori” B, C e D hanno comunque effetto anche sui terminali TRAX+F/G che dispongono di una sola linea di input (associata al contatore A), pertanto danno luogo a tutte le eventuali operazioni selezionate per la gestione degli eventi, anche se relativi a linee di input non disponibili. Es.: “%+B” fa incrementare di un’unita‘ il valore del contatore “maggiore” B e attiva le azioni conseguenti ad un evento che si verifica sulla linea di input 2. %+75..%+80 Incrementano di un’unita‘ il valore dei parametri 75-Custom1 .. 80-Custom6. I parametri si azzerano di nuovo all’incremento del valore 255. INTERPRETE COMANDI E PROCEDURE UTENTE 129 Es.: per conteggiare certe categorie di utenti del sistema di rilevazione presenze/controllo accessi, caricate nella memoria del terminale un file WMSG che visualizzi un messaggio di benvenuto seguito da un comando ‘%’ “%+75”..”%+80”. %-75..%-80 Decrementano di un’unita‘ il valore dei parametri 75-Custom1 .. 80-Custom6. I parametri sono impostati a 255 al decremento del valore 0. %% Causa un “restart” del terminale. Non è possibile specificare il tipo di “restart” (ad esempio “%%1” o “%%2”). %Dt Attiva un timer per la visualizzazione di prompt temporanei: se entro il tempo specificato non è stato introdotto e confermato alcun dato (non è scattato alcun “evento” interno), il terminale abortisce l’intera transazione e non registra alcun dato. “t” è un carattere singolo il cui valore ASCII (chr(1)..chr(255), con l’esclusione di chr(120)) determina il tempo in ottavi di secondo. Nota 1: non deve essere usato come comando “%” diretto da interprete comandi, ma solo in coda ad un prompt. Nota 2: nel collegamento al terminale tramite concentratore PSLD/3I oppure utilizzando le porte seriali, fate attenzione a non usare per “t” la rappresentazione di qualcuno dei seguenti caratteri di controllo delle comunicazioni via COM1 o COM2: {ACK} chr(6) {CR} chr(13) {XON} chr(17) {XOFF} chr(19) {NAK} chr(21) Esempio: :BMK:Inserisci il tuo|codice :_____{ESC}%D{48} L’utente ha 6 secondi di tempo (48 ottavi di secondo) per inserire un codice. Se il tempo scade prima che venga introdotto un dato, un messaggio ‘OFFLINE’ viene inviato all’host (se il terminale stava eseguendo un prompt online). Se invece ci si trova all’interno di una PROC, il comportamento del terminale può essere diverso, a seconda che sia stato usato il comando ‘@Wn’ oppure no. %Dx Si comporta come il comando %Dt descritto qui sopra, con la differenza che come tempo di attesa viene automaticamente usato il valore impostato dal parametro 66-WaitOnLin. Esempio: se par. 66-WaitOnLin=’80’, nel prompt :-:Attesa conferma|da host..{ESC}%Dx l’host ha 8 secondi di tempo (80 ottavi di secondo) per inviare un messaggio di conferma (cfr. §6.4.5). %En Inserisce l’evento specificato dal valore del carattere ASCII n nella coda degli eventi di sistema del terminale. Da usare solo per applicazioni particolari con programmi sviluppati in linguaggio “C” caricati sulla memoria flash o sulla RAM-Card, e sempre esattamente secondo modalità descritte dagli sviluppatori dei programmi stessi. Gli unici eventi significativi anche in mancanza di applicazioni “C” non standard sono il chr(14) String_Got, che viene generato quando è disponibile una stringa nel buffer di tastiera (si vedano anche il comando , il chr(50)=’2’ “%Ktext” ed il §6.3.1), il chr(38)=’&’ Prompt_CR, che emula la pressione del tasto Err_Memfull, che forza la cancellazione del file più vecchio fra i vari PREammgg e PFxammgg (utile in una PROC_x che controlla se SPACE è minore di un valore a piacere), ed il chr(61)=’=’, che forza l’esecuzione della procedura di MODEM SETUP (valido solamente nel caso di TRAX+G con modem analogico integrato; NB: il numero di squilli può essere precedentemente impostato con il comando MEM 00DA nn , dove ad esempio nn=’01’). INTERPRETE COMANDI E PROCEDURE UTENTE 130 %Ff Determina quale procedura deve essere attivata quando il terminale esce dal modo ONLINE per assenza di risposta dal computer controllore (host). f puo’ assumere i valori “A”...”Y” o “1”...”9”, provocando l’esecuzione della corrispondente PROC_f quando avviene un passaggio dallo stato ONLINE allo stato OFFLINE. Questo comando è temporaneo, rimane valido finché, all’interno della sessione OFFLINE di cui ha determinato la procedura di partenza, non viene eseguita un’altra PROC (nel qual caso tale procedura diventerebbe la candidata), oppure finché non viene inviato un comando ‘PROC f ’. %Ipattern Valido solo via shell. Restituisce lo stato delle linee di input, dei corrispondenti contatori e di alcuni sensori interni al terminale. Nella risposta, all’interno del pattern, i caratteri numerici “1”..”4” vengono sostituiti dallo stato della linea di input corrispondente in quel momento, mentre i caratteri numerici “5”..”8” vengono sostituiti da valori associati ai seguenti stati: 5 – Batteria RAMCard scarica; 6 – Mancanza di alimentazione; 7 – Batteria terminale scarica; 8 – Stato fotoresistore (sensore anti-effrazione del PROX+F/G). NB: In realtà lo stato 7 restituito dal comando %Ipattern è sempre uguale a zero, poiché il terminale si spegne immediatamente non appena questo stato passa al valore 1, per evitare che la batteria si scarichi ad un livello tale da perdere le impostazioni. In caso di TRAX+F/G anche gli stati 2, 3, 4, 5 e 8 sono sempre uguali a zero. I caratteri alfabetici “a”..”d” sono sostituiti dal valore del contatore “minore” associato all’input corrispondente (input 1 per la lettera “a”, 2 per “b”, ecc.). I caratteri alfabetici “A”..”D” sono sostituiti dal valore (4 cifre giustificate a destra con zeri di riempimento) del contatore maggiore associato all’input corrispondente (input 1 per la lettera “A”, 2 per “B”, ecc.). Un pattern può contenere tutti i caratteri numerici “1”..”4” ma un solo carattere alfabetico “a”..”D”; il carattere alfabetico deve essere presente solo in fondo al pattern (tutti gli eventuali caratteri che seguono tale lettera saranno ignorati e non compariranno nella risposta). E’ anche possibile ottenere con un solo comando il valore di entrambi i contatori associati ad una linea di input (maggiore e minore), usando le varianti “Ax”…”Dx” invece di “A”…”D” (nella risposta i due valori sono separati dal carattere “:”). Esempi: %I134 B %I011 0327 %I2a %I0255 %IBx %I0327:9 Nelle transazioni utente (Cfr. § 6.4.3) occorre usare il corrispondente comando @Ipattern. %Ktesto Inserisce il contenuto della stringa testo nel buffer di tastiera del terminale. Può essere utilizzato anche per simulare la pressione di un qualunque tasto o sequenza di tasti della tastiera del terminale, attraverso un canale di comunicazione. Nota 1: il carattere terminatore {CR}=chr(13) non è inserito implicitamente al termine della stringa testo e, se necessario, deve essere introdotto specificando al suo posto un carattere chr(255) che verrà convertito in {CR}. Nota 2: in caso abbiate intenzione di usare i seguenti caratteri di controllo all’interno della stringa testo: {28} (ClearNChars), {29} (ClearLastChars), {30}={RS} (posiziona il cursore in alto a sinistra), {31}={US} (pausa), allora dovete sostituirli rispettivamente con i caratteri {20}, {21}, {22}, {23}, altrimenti verrebbero interpretati come i quattro tasti freccia. Questo comando può anche essere usato in coda ad un prompt di introduzione dati per visualizzare il prompt proponendo un valore di default “precaricato” (che può essere poi confermato oppure soprascritto, cfr. § 6.3.1). La seguente tabella mostra la corrispondenza fra tasti e codici da specificare nel comando “%K”: A ... chr(129) INTERPRETE COMANDI E PROCEDURE UTENTE 131 E chr(133) F chr(134) 0 “0” o chr(48) 9 “9” o chr(57) ... chr(29) chr(28) chr(30) chr(31) chr(7) CLR {BS} o chr(8) {CR} o chr(13) o chr(255) F C Ad esempio, la simulazione della pressione del tasto procedura utente di nome PROC_c) si ottiene mediante il comando (che potrebbe lanciare quindi la %E{14}K{134}{131} dove “%E{14}” è il comando che genera l’evento per fare elaborare l’input da tastiera. %Ont comanda la chiusura del relè “n” per il tempo “t”; “n” = ‘1’..’4’ NB: Nel PROX+F/G il valore ‘4’ non ha effetto, essendoci solo 3 relé, mentre nel TRAX+F/G i valori da ‘2’ a ‘4’ hanno effetto solo se è stata attivata la gestione dei relé remoti #909 TeleRelay, impostando il par. 56-TeleRelay a ‘1’; se invece par. 56=0, allora l’unico valore che ha effetto è ‘1’, che attiva l’unico relé interno. “t” = carattere singolo chr(2)..chr(255) –con l’esclusione di chr(120)- che specifica il numero di ottavi di secondo di chiusura del relé. Il valore 255 fa chiudere il relè indefinitamente; per farlo riaprire è sufficiente inviare un nuovo comando “%O” specificando il valore chr(1) (tale comando può essere inviato anche senza conoscere lo stato attuale del relé: nel caso sia già aperto, non genera comunque un impulso di chiusura). Nel collegamento al terminale tramite concentratore PSLD/3I oppure utilizzando una porta seriale, fate attenzione a non usare per “t” la rappresentazione di qualcuno dei caratteri specificati alla Nota 2 del comando “%D”. Esempio: “%O2{5}” chiude il relé 2 per 5/8 di secondo. %Onx Si comporta come il comando %Ont descritto qui sopra, con la differenza che come tempo di chiusura del relé viene automaticamente usato il valore impostato dal parametro 30-RelayDoor. Esempio: se par. 30-RelayDoor=’4’, il comando “%O2x” chiude il relé 2 per 4/8 di secondo. %Ptesto Se al terminale è stata collegata una stampante seriale e i parametri sono configurati correttamente (00Printer: su quale porta COM1/2, 10-COM1HSK, 11-COM1Baud, 12-COM1Par e 13-COM1IN=0 per stampante collegata su COM1 oppure 20-COM2HSK, 21-COM2Baud, 22-COM2Par e 23-COM1IN=0 per COM2, solo su PROX+F/G) , stampa la stringa di testo che segue la lettera ‘P’. %Rn Effettua il “reset” (azzeramento) di uno dei contatori associati alle linee di INPUT digitali del terminale. Il carattere n puo’ assumere i valori “a”..”d”, “A”..”D”, determinando rispettivamente il reset dei contatori minori associati agli input 1,2,3,4 e quello dei contatori maggiori associati agli stessi. INTERPRETE COMANDI E PROCEDURE UTENTE 132 %Smessaggio Visualizza messaggio sul display senza interferire con l’attivita‘ di consolle corrente del terminale. Nella stringa messaggio occorre sempre specificare almeno un carattere di posizionamento del cursore, altrimenti la stringa sara‘ visualizzata in posizioni impredicibili. Si possono usare gli stessi caratteri di controllo disponibili in un “prompt” (vedi § 6.2), con la seguente eccezione: La stringa messaggio non può assolutamente contenere il carattere speciale {US}=chr(31); in caso contrario si possono verificare malfunzionamenti del terminale. Il comando può essere utilizzato ad esempio, per far comparire un messaggio personalizzato al posto del messaggio standard mostrato dal terminale dopo un comando CONSIDLE. %tmessaggio Carica un messaggio di visualizzazione permanente, contenente eventualmente un pattern che specifica il formato della data/ora, senza però abilitarlo; all’interno del messaggio i caratteri Yy, Nn, Dd, w, W, WW, WWW, Hh, Mm, Ss verranno sostituiti con i valori dell’orologio datario al momento della visualizzazione. Per abilitare la visualizzazione si dovrà inviare “%Tt” in un comando successivo, dato che non è permesso specificare altri comandi ‘%’ dopo una stringa di pattern. Il comando “%t” senza la specifica del messaggio serve per disabilitare la visualizzazione continua senza cancellare il messaggio dalla memoria. Il significato esatto dei caratteri riconosciuti all’interno del pattern è il seguente: Yy: l’anno (es.: “94”) Nn: il mese (es.: “04”) Dd: il giorno (es.: “15”) w: numero corrispondente al giorno della settimana (0=Dom..6=Sab) W: primo carattere del giorno della settimana nella lingua corrente (es.: “D”, “L”, “M”, “M”, “G”, “V”, “S”) WW: primi 2 caratteri del giorno della settimana (es.: “Do”, “Lu”, “Ma”, “Me”, “Gi”, “Ve”, “Sa”) WWW: primi 3 caratteri del giorno della settimana (es.: “Dom”, “Lun”, “Mar”, “Mer”, “Gio”, “Ven”, “Sab”) Hh: le ore (es.: “08”) Mm: i minuti (es.: “30”) Ss: i secondi (es.: “45”) Esempio: %t|Yy/Nn/Dd Hh:Mm:Ss Questo comando causera‘ la visualizzazione della data e ora formattate sulla seconda riga del display, una volta ricevuto il comando “%Tt” di abilitazione. %Tt Abilita la visualizzazione del messaggio caricato in memoria col comando “%tmessaggio”. Il carattere “t” specifica la cadenza di rinfresco del messaggio: “%Ts” fa visualizzare il messaggio ogni secondo, mentre “%Tm” fa visualizzare il messaggio ogni minuto. 6.3.1 ESEMPIO: Proporre un dato da immettere in un prompt E’ possibile proporre un valore di “default” per un dato da immettere in un prompt, mantenendo comunque la possibilità di cambiarlo sovrascrivendolo con qualsiasi altro valore. A tal fine, si deve soltanto emulare la pressione dei tasti corrispondenti usando, in coda al prompt e preceduto dal carattere {ESC}, il comando “%K...” che ne specifichi il valore. Ad esempio, il seguente prompt chiede l’introduzione di un numero dalla tastiera, e propone il valore ‘1’: se l’utente accetta questo valore deve solo premere per procedere. Se invece vuole cambiarlo, deve C e quindi digitare il nuovo valore: premere il tasto LR :K,N:Digita un numero:|_{ESC}%K1 Esiste una variante di questo metodo che consente all’utente di cambiare il valore proposto senza dover premere il tasto C , ma semplicemente digitando il nuovo valore: a tal fine il cursore deve essere spostato indietro di una posizione, quindi occorre anche emulare la pressione del tasto , cui corrisponde il codice chr(29)(vedi comando “%K…”, §6.3): LR :K,N:Digita un numero:|_{ESC}%K1{29} Il seguente prompt ha lo stesso effetto ma, in caso di funzionamento ONLINE con il parametro 66- INTERPRETE COMANDI E PROCEDURE UTENTE 133 WaitOnLin=’0’, non appena confermato il dato viene subito rieseguito scartando i comandi ‘%’ presenti in coda: questo significa che viene sovrascritto solo il campo dati ‘_’, mentre la scritta “Digita un numero:” rimane fissa a display (si noti la concatenazione dei comandi “%K…” e “%S…”, quest’ultimo preceduto da un secondo carattere {ESC}). :K,N:|_{ESC}%K1{29}{ESC}%SDigita un numero: 6.4 Transazioni definite dall’utente Con i terminali è possibile implementare delle semplici transazioni di raccolta dati, definite dall’utente, senza bisogno di un linguaggio di programmazione. Occorre solamente utilizzare un programma di comunicazione per caricare sul terminale un file di testo, preparato precedentemente con un normale editor di testo non formattato. Le transazioni utente di questo tipo si limitano alla sola raccolta dati, in quanto non è possibile avere alcun tipo di elaborazione di questi dati da parte del terminale senza ricorrere alla programmazione in ‘C’. Le transazioni utente sono normalmente associate ai tasti funzione singoli ( F A F E F 1 F ? , A .. E ) o a 9 combinazioni di tasti funzione ( .. , .. ), e si presentano come una serie di richieste di dati precedute dal titolo transazione. Oltre ad essere lanciata con il tasto funzione corrispondente, una transazione utente può essere lanciata automaticamente da dentro un’altra procedura (in base ai dati introdotti), o ad un certo orario/giorno in base al file ALARMTB (Cfr. § 5.7.6), o dopo ogni “restart” o uscita dal modo ONLINE (mediante i comandi PROC f, cfr. §6.1.4 e %Ff, cfr. §6.3), o quando si verifica un particolare evento: Se il bit2 nel parametro 65-InputCtrl è impostato a ‘1’, qualsiasi evento di input causera‘ l’esecuzione automatica della procedura PROC_Q (se presente). Se il bit2 nel parametro 58-ExtraBits è impostato a ‘1’, ogni volta che il terminale accetta una lettura di badge in Rilevazione Presenze / Controllo Accessi, viene eseguita la procedura PROC_V (se presente). Se i parametri 13-COM1In = ‘6’ o 23-COM2In =’6’, ogni messaggio ricevuto dalla corrispondente porta seriale COM1/2 causerà l’esecuzione automatica della procedura PROC_L (se presente). E’ consigliabile impostare il parametro 13 a ‘1’ all’interno della PROC_L, se è possibile ricevere altri messaggi ma non si vuole che questi ne interrompano l’esecuzione, e quindi reimpostarlo a ‘6’ all’uscita. Le transazioni sono in generale costituite da uno o più “prompt”. Ad ogni “prompt” è possibile rispondere per mezzo di uno qualsiasi dei dispositivi di input collegabili al terminale (abilitabili singolarmente dalla transazione stessa). Premendo più volte il tasto si può risalire al primo prompt; ulteriori pressioni di questo tasto rimostrano l’eventuale titolo della transazione. Comunque i dati già introdotti rimangono memorizzati. In combinazione con il tasto è possibile rivedere liberamente tutti i dati già introdotti della transazione corrente (N.B.: del solo ciclo corrente di esecuzione della procedura, non delle fasi gia’ completate) e di modificarli. Se, su un campo già introdotto, si cerca di immettere un nuovo dato che produce un campo, nel record relativo alla transazione corrente all’interno del file dati giornaliero PFxammgg (Cfr. § 6.4.5), di lunghezza diversa da quello precedente, tutti i dati successivi eventualmente già introdotti vengono annullati. C Se si usa il tasto di cancellazione su un campo con dati già introdotti, cancella il contenuto del campo C sul campo già vuoto (cioè su un prompt con le posizioni “_” tutte corrente. Se si preme lo stesso tasto libere) l’esecuzione della procedura passa al prompt precedente cancellando tutti i dati successivi eventualmente già introdotti. LR LR Durante l’esecuzione di una transazione utente (che nel seguito verrà indicata, per semplicità, con il termine PROC), la pressione di un tasto funzione ha effetto solo se la PROC è ferma su un prompt, e l’effetto cambia a seconda del contesto: 1) Se il cursore è sul primo prompt eseguito dalla PROC (o comunque non ci sono campi dati successivi gia’ introdotti): 1.a) se il tasto funzione corrisponde alla PROC in esecuzione: • effettua il restart completo della PROC corrente 1.b) se è un altro tasto funzione: • salta all’esecuzione della nuova PROC (se c’è, altrimenti come 1.a) INTERPRETE COMANDI E PROCEDURE UTENTE 134 2) Se il cursore è oltre il primo prompt (o sono già stati introdotti campi dati successivi e si è tornati al primo ): prompt con il tasto 2.a) se il tasto funzione corrisponde alla PROC in esecuzione: • rimane sul prompt corrente • resetta i caratteri eventualmente già digitati su quel prompt 2.b) se è un altro tasto funzione: • chiede se abortire la PROC in esecuzione con la seguente domanda: “Abort.Proc.B ? No Salva 2.b.1) Premendo il tasto Si” si torna al prompt corrente 2.b.2) Premendo il tasto nuova PROC (se c’è) vengono registrati i dati parziali introdotti fino a questo punto e si passa alla 2.b.3) Premendo il tasto (se c’è). vengono abbandonati i dati parziali già introdotti e si passa alla nuova PROC Durante l’esecuzione di una PROC, anche la pressione del tasto contesto: ? ha effetti diversi a seconda del 1) se il cursore è sul primo prompt, viene cercata e lanciata l’eventuale procedura PROC_# 2) se il cursore è oltre il primo prompt, la PROC corrente viene rilanciata dall’inizio 3) se la PROC contiene un comando “@Wny” (Cfr. § 6.4.3), l’esecuzione della PROC passa alla linea “y” Al lancio di una transazione, sul display verrà mostrato temporaneamente il “titolo” (la prima riga) della transazione e, successivamente la prima domanda (“prompt”) della sequenza che costituisce la transazione stessa. Una transazione può essere programmata per essere ciclica (la sequenza di domande si ripete fino a quando l’utente non preme il tasto funzione corrispondente ad un’altra transazione), oppure a sequenza singola (torna alla transazione precedente dopo una sola sequenza di domande). A Quando il terminale è configurato per rilevazione presenze/controllo accessi, normalmente al tasto è associata una funzionalita‘ interna di visualizzazione dei dati personali di presenza/accesso (e degli eventuali messaggi). A È comunque possibile associare al tasto una transazione utente (PROC_A), semplicemente impostando il parametro 63-A_mode al valore ‘0’; fate riferimento alla descrizione del parametro 63 per tutte le possibilità offerte. 6.4.1 I file di definizione della transazione I file di definizione delle transazioni hanno nomi del tipo “PROC_x” con “x” che può valere “#”, “A”..”Z”, “a”..”z” e “1”..”9”. Alcune transazioni utente sono attivabili mediante un singolo tasto funzione oppure una combinazione di tasti ? , i file specificati dalle lettere funzione. Il file PROC_# è richiamato dalla pressione del tasto funzione A E , i file specificati dalle le lettere “a”..”e” sono richiamati dalle “A”…”E” sono richiamati dai tasti .. sequenze di tasti F dalle sequenze di tasti A F .. F 1 .. E F , mentre quelli specificati dai caratteri “1”..”9” sono richiamati 9 . F Se il bit 6 del parametro 72-PrmptDflt è impostato ad ‘1’, la semplice pressione del tasto causa l’esecuzione dell’eventuale PROC_F. Attenzione: in questo caso non sarà più possibile richiamare manualmente i file “PROC_a”…”PROC_e” e “PROC_1”…”PROC_9”, né tantomeno accedere al menu di gestione interattiva attraverso la sequenza di tasti F 0 : l’unico modo per reimpostare il terminale sarà pertanto via shell comandi. NB: I nomi di file "PROC_a"..."PROC_e" e "PROC_M"..."PROC_Q" sono equivalenti, pertanto è meglio evitare di usare i nomi “PROC_M”…”PROC_Q” se “PROC_a”…”PROC_e” sono presenti. Se viene caricato un file di nome PROC_R, esso non verrà considerato perché la lettera “R” è riservata all’applicazione firmware standard di rilevazione presenze/controllo accessi. Qualora si desideri forzare l’esecuzione di una particolare transazione utente in tutti i casi in cui sia normalmente prevista l’esecuzione dell’applicazione firmware standard (ad esempio all’accensione, o uscendo da una transazione), è necessario INTERPRETE COMANDI E PROCEDURE UTENTE 135 chiamare il file corrispondente PROC_ , dove ‘ ’ = {BEL} = chr(7). E’ anche possibile attivare manualmente la , ma occorre a tale scopo avere impostato il parametro 02-DirMode a ‘0’. PROC_ premendo il tasto Durante la prima esecuzione di PROC_ dopo l’accensione è possibile tornare all’applicazione firmware C standard, abortendo con il tasto quando ci si trova sul primo prompt, a campo dati vuoto. Se in seguito, partendo da questa situazione, PROC_ venisse rieseguita manualmente premendo il tasto , sarà ancora possibile abortirla e tornare all’applicazione firmware standard nello stesso modo. LR I file specificati da altre lettere possono essere eseguiti solo in maniera automatica da dentro un’altra procedura (in base ai dati introdotti), o ad un certo orario/giorno in base al file ALARMTB (Cfr. § 5.7.6), o dopo ogni “restart” o uscita dal modo ONLINE (mediante i comandi PROC f, cfr. §6.1.4 e %Ff, cfr. §6.3), o quando si verifica un particolare evento: Se il bit2 nel parametro 65-InputCtrl è impostato a ‘1’, qualsiasi evento di input causera‘ l’esecuzione automatica della procedura PROC_Q (se presente). NB: PROC_Q viene anche richiamata mediante la F E . sequenza di tasti Se il bit2 nel parametro 58-ExtraBits è impostato a ‘1’, ogni volta che il terminale accetta una lettura di badge in Rilevazione Presenze / Controllo Accessi, viene eseguita la procedura PROC_V (se presente). Se i parametri 13-COM1In = ‘6’ o 23-COM2In =’6’, ogni messaggio ricevuto dalla corrispondente porta seriale COM1/2 causerà l’esecuzione automatica della procedura PROC_L (se presente). E’ consigliabile impostare il parametro 13 a ‘1’ all’interno della PROC_L, se è possibile ricevere altri messaggi ma non si vuole che questi ne interrompano l’esecuzione, e quindi reimpostarlo a ‘6’ all’uscita. Se il bit6 nel parametro 81-ExtraComm è impostato a ‘1’ e il terminale è configurato in uno dei modi “master” NET92 (parametro 18-NetMode=’5’, ’6’, ‘7’), la ricezione di un messaggio proveniente da un terminale slave comporta l’esecuzione della procedura PROC_L (se presente). Si noti che il funzionamento cambia nel caso 18-NetMode=’5’ rispetto al caso 18-NetMode=’6’, ‘7’, come specificato nella descrizione del par. 81ExtraComm. I file che descrivono le transazioni sono generalmente composti di tante linee-prompt quante sono le diverse domande poste all’operatore, per ogni tipo di transazione. La prima linea di un file transazione è normalmente riservata al titolo e viene mostrata temporaneamente all’inizio di ogni transazione. Ha un formato uguale a quello di un prompt ma non può avere la parte iniziale compresa tra i caratteri “:”, nè contenere caratteri “_”. La permanenza del titolo puo essere modificata concatenandogli un comando “{Esc}%Dt” (Cfr. § 6.3); il titolo non viene mostrato affatto se il primo carattere è costituito da un ‘@’ seguito da uno spazio vuoto. E’ anche possibile specificare un titolo costituito da un qualunque comando (che viene comunque eseguito), purché tale comando non abbia come effetto la registrazione di un dato. All’interno di un file PROC_x vi possono essere anche tipi di linea diversi da un prompt, preceduti dal carattere “@” (chr(64)), che consentono l’esecuzione di vari comandi (Comandi ‘@’, Cfr. § 6.4.3), non necessariamente quindi legati alla visualizzazione di un prompt. Per ogni linea-prompt, alla quale viene risposto con un dato, verrà prodotto un record nel file dati PFxymmdd (Cfr. § 6.4.7) corrispondente, avente il formato eventualmente specificato dal comando @Sn (Cfr. § 6.4.3). È anche possibile fare in modo che i dati prodotti da transazioni utente diverse siano tutti registrati in uno stesso file di nome PFxymmdd. Ogni record inizia col carattere identificativo della transazione (#, A..E, a..e, M..Q), seguito dai dati prodotti dalla transazione stessa. La dimensione massima di ogni record prodotto non può superare i 124 byte: in caso contrario si possono ottenere risultati impredicibili. La dimensione massima può arrivare fino a 256 byte solo se non sono effettuate trasmissioni ONLINE e se viene usata la modalita‘ di memorizzazione “Mode 0”. Vi sono due modi per memorizzare i dati nel “Mode 0”: 1) Impostando il parametro 27-Storage al valore ‘0’ (default). 2) Omettendo nella procedura il comando “@Sn”. Note: a mezzanotte le transazioni utente vengono abortite e rieseguite solo se si trovavano ancora sul primo prompt di introduzione dati, altrimenti tutti i dati della transazione vengono salvati nel file PFxymmdd relativo al giorno prima. 6.4.2 Riferimenti ai dati già prodotti INTERPRETE COMANDI E PROCEDURE UTENTE 136 Nelle linee di una transazione utente è possibile introdurre riferimenti simbolici ai dati prodotti e registrati, che saranno sostituiti dai valori attuali durante l’esecuzione della transazione stessa. Esistono tre tipi di notazione per i riferimenti simbolici ai dati: • sottostringa “#n”, dove n è costituito dalla lettera minuscola corrispondente all’ordinale del dato che sarà sostituito nel riferimento simbolico (e non alla riga della transazione che lo ha prodotto). L’ultima mo mo lettera, “z”=chr(122), corrisponde al 26 dato prodotto: nel caso ne siano stati registrati più di 26, il 27 mo sarà rappresentato da “{“=chr(123), il 28 da “|”=chr(124) e così via. Ad esempio, “#a” farà riferimento al primo dato prodotto dalla transazione (che non è necessariamente generato dalla prima riga della transazione stessa). Nell’esempio seguente, la procedura cancella il file N92ammgg odierno (per i dettagli sui comandi si veda il paragrafo successivo): @ Esempio // Titolo PROC @D{FF}Cancella file|N92ammgg odierno{US} // Visualizza messaggio, non produce dati @TyNnDd // Genera la data nel formato AMMGG (primo dato prodotto: #a) @@DEL N92#a // Cancella il file N92ammgg @Q // Esce senza salvare i dati prodotti Importante: fate molta attenzione ad usare questo tipo di notazione se la transazione contiene dei jump che saltano delle linee che generano e registrano dati, poiché in questo caso lo stesso ordinale potrebbe competere a dati prodotti da linee diverse a seconda del flusso di esecuzione corrente, determinato dall'esito del jump. In alcuni di questi casi si può ovviare al problema introducendo delle linee comandi che producano dei campi dati "fittizi", in maniera tale da avere sempre lo stesso numero di campi, indipendentemente dal flusso di esecuzione della transazione. E’ tuttavia più semplice e sicuro, e quindi raccomandabile, usare la notazione alternativa qui di seguito illustrata. • sottostringa “#:n”, dove n è costituito dalla lettera minuscola corrispondente all’ordinale della riga della transazione che ha prodotto il dato che sarà sostituito nel riferimento simbolico. Il titolo non viene considerato, quindi “a” corrisponde alla prima riga dopo il titolo, “b” alla seconda e così via. L’ultima ma ma riga: nel caso ci siano più di 26 righe, la 27 sarà lettera, “z”=chr(122), corrisponde alla 26 ma rappresentata da “{“=chr(123), la 28 da “|”=chr(124) e così via. Ad esempio, “#:b” farà riferimento al dato prodotto dalla seconda riga della transazione dopo il titolo (che potrebbe anche essere il primo dato generato dalla transazione stessa). L’esempio seguente ha lo stesso effetto di quello precedente, utilizzando però un riferimento diverso allo stesso dato: @ Esempio // Titolo PROC @D{FF}Cancella file|N92ammgg odierno{US} // Visualizza messaggio, non produce dati @TyNnDd // Genera la data nel formato AMMGG (seconda riga dopo il titolo: #:b) @@DEL N92#:b // Cancella il file N92ammgg @Q // Esce senza salvare i dati prodotti • sottostringa “#_”: il riferimento simbolico sarà sostituito dall’ultimo dato registrato, indipendentemente da quale sia la riga che lo ha prodotto. Poiché spesso è difficile identificare correttamente la lettera corrispondente all’ordinale di una riga, e ancor di più la lettera corrispondente all’ordinale di un certo dato immagazzinato (si ricordi che alcuni dati vengono generati ma non registrati…), è consigliabile scrivere le transazioni utente in un formato sorgente (i file di definizione in questo formato sono riconoscibili dall’estensione .SRC) che semplifica questo procedimento, permettendo la gestione di labels da usare nei riferimenti simbolici ai dati immagazzinati (o ad una linea in un salto condizionato), e la possibilità di introdurre commenti nel codice e caratteri ASCII in formato simbolico (lo stesso che si è sempre usato in questo manuale). Si veda il §6.4.4 per ulteriori dettagli. 6.4.3 Comandi ‘@’ per transazioni utente @@comandoshell Permette di richiamare i comandi di shell (Cfr. § 6.1.1) dall’interno di una transazione utente (COPY, DEL, CFG, PRINT, ecc.). Questa possibilita‘ può essere ad esempio utilizzata in transazioni lanciate automaticamente tramite ALARMTB (Cfr. § 5.7.6) per effettuare operazioni automatiche di manutenzione del file system, ecc. ad orari prestabiliti. Al limite, una procedura di servizio potrebbe contenere solo comandi di shell, senza quindi memorizzare alcun dato. INTERPRETE COMANDI E PROCEDURE UTENTE 137 È possibile inserire argomenti di comandi che fanno riferimento a dati già prodotti dalla transazione stessa (Cfr. § 6.4.2). Il seguente esempio di procedura imposta il parametro 00-Printer col valore introdotto dall’utente: Setup stampante :K0,n:Porta stampante _ @@CFG 00 #a @Q Il flag ‘K’ abilita la tastiera; il flag ‘0’ è necessario nel caso in cui venga premuto il tasto senza l’inserimento di un numero (la maschera “n” lo consente): se ciò si verifica viene automaticamente selezionato il valore ‘0’ del parametro 00-Printer, che corrisponde al caso di stampante non connessa (si vedano i § 6.1.1, 6.2.1, 6.2.2). Il comando “@@DBS..” consente di ricercare su file il record specificato nella modalità di ricerca (si veda la descrizione del comando di shell “DBS..”, § 6.1.4). Viene ritornato il contenuto del record oppure la stringa “?*” in caso di insuccesso, ma non viene creato un nuovo record nel file dei dati prodotti dalla procedura (a tale scopo è necessario usare il comando @[bbb,eee]W, vedi più avanti). Ulteriori invocazioni di “@@DBS..” sullo stesso file causano la continuazione della ricerca a partire dalla posizione corrente del file. I comandi che normalmente non restituiscono un dato (come ad esempio “@@DBA…” e “@@DBC…”), non ritornano neppure la string di errore “?*” in caso di insuccesso. Anche i comandi “@@DIR filename” (con filename esattamente di 8 caratteri) e “@@MEM hhhh” permettono di controllare il valore di ritorno. N.B.: il formato “@@..” non può essere usato con i seguenti comandi di shell: %%n, ONLINE, OFFLINE, CONSIDLE, IDLE, TYPE, LOGON, DBL, DIR filename” di questo comando, come specificato sopra). (eccetto la versione “DIR @%xxxx Permette l’esecuzione di comandi tipo ‘%’ senza l’uso di un prompt e quindi senza produrre un record, e neanche visualizzazioni sul display. È possibile inserire argomenti di comandi che fanno riferimento a dati già prodotti dalla transazione stessa (Cfr. § 6.4.2), utile per i comandi “%K..” e “%P..” (cfr. § 6.3), utile per i comandi “%K..” e “%P..” (cfr. § 6.3). Esempio: il comando @%O1{5}P..Entra:#b chiude il relé 1 per 5/8 di secondo ed invia la stringa “..Entra:cccc..” sulla porta COM specificata dal parametro 00, dove “cccc..” rappresenta il valore corrente del secondo dato raccolto dalla PROCedura. @>messaggio Trasmette al canale di shell corrente il messaggio specificato. È possibile inserire riferimenti a dati già prodotti dalla transazione stessa (Cfr. § 6.4.2). N.B.: Da non confondere con “@@>NNmessaggio..” che trasmette invece allo slave NET92 specificato. Attenzione: evitate di usare più comandi di questo tipo uno di seguito all’altro, è sempre necessario interporre un qualsiasi altro comando (eventualmente un comando fittizio che non generi alcun dato). @!NN Imposta il parametro NN con il valore del ultimo dato generato (ma non necessariamente registrato) durante la PROC, cioè il valore contenuto nel buffer dati corrente. In pratica, salva il buffer dati corrente nel parametro NN. @?PNN @?PNNW Inserisce il valore attuale del parametro NN nel buffer dati corrente. È poi possibile, per mezzo di un comando “@J...” effettuare un salto condizionato dal valore appena prelevato. Per i parametri di tipo numerico, il valore restituito, utilizzabile per eventuali salti condizionati, è sempre su tre caratteri allineati a destra, con riempimento di zeri a sinistra. Con l’opzione ‘W’ il parametro viene anche registrato nel file dei dati prodotti dalla transazione. INTERPRETE COMANDI E PROCEDURE UTENTE 138 @?#n Inserisce l’n-esimo dato registrato nel corso della transazione nel buffer dati corrente. È poi possibile, per mezzo di un comando “@J...” effettuare un salto condizionato dal valore appena prelevato. n deve essere costituito dalla lettera minuscola corrispondente all’ordinale del dato prodotto che si desidera prelevare (e non alla riga della transazione che lo ha prodotto). Ad esempio, “@?#a” preleva il primo dato prodotto dalla transazione (che non è necessariamente generato dalla prima riga della transazione stessa). Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici ai dati registrati utilizzando i file di definizione in formato sorgente. @??n Inserisce il dato generato e registrato dall’n-esima riga della transazione nel buffer dati corrente. È poi possibile, per mezzo di un comando “@J...” effettuare un salto condizionato dal valore appena prelevato. n deve essere costituito dalla lettera minuscola corrispondente alla riga della transazione che ha prodotto il dato che si desidera prelevare. Ad esempio, “@??a” preleva il dato prodotto dalla prima riga della transazione. Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici ai dati registrati utilizzando i file di definizione in formato sorgente. @[bbb,eee] @[bbb,eee]W Consentono di estrarre una sottostringa dal buffer dati corrente (cioè dall’ultimo dato generato), lasciando la sottostringa estratta nel buffer e rispettivamente senza creare oppure creando un nuovo record nel file dati della transazione. I parametri bbb e eee corrispondono alle posizioni iniziale e finale (comprese) dei caratteri da estrarre dalla stringa sorgente, con eee maggiore o uguale a bbb. Entrambi devono essere specificati sempre su tre cifre; la prima posizione corrisponde a 001, non usare 000. Per eee è possibile specificare un valore superiore alla lunghezza totale della stringa sorgente. @[bbb+nnn] @[bbb+nnn]W Si tratta di una variante del comando precedente. Il parametro bbb corrisponde ancora alla posizione iniziale (compresa) dei caratteri da estrarre dalla stringa sorgente, il parametro nnn rappresenta invece al numero di caratteri da estrarre. Entrambi devono essere specificati sempre su tre cifre; la prima posizione corrisponde a 001, non usare 000. Per nnn è possibile specificare un valore superiore alla lunghezza totale della stringa sorgente. @Dmessaggio Consente di visualizzare un messaggio temporaneo sul display del terminale. Affinchè la stringa messaggio permanga a video un tempo sufficiente, deve essere terminato da uno o più caratteri di controllo {US} (Cfr. § 6.2). @in Consente di controllare lo stato di una linea di input senza registrare il dato corrispondente; è quindi possibile creare una PROC contenente un “loop indefinito” di attesa del cambiamento di stato di una linea di input. @Ipattern Produce sul file dati un record con informazioni relative allo stato delle linee di input del terminale. Le regole per la definizione del pattern sono le stesse del comando “%I..” (Cfr. § 6.3); è possibile registrare lo stato di tutte le linee di input 1..4 (o dei sensori interni 5..8) contemporaneamente, ma il valore dei contatori di una sola linea di input (maggiore “A”..”D”, minore “a”..”d” o entrambi “Ax”..”Dx”) per volta. Il valore di un contatore minore è ritornato sempre su tre cifre allineato a destra, con riempimento di zeri a sinistra (‘000’..’255’), mentre il valore di un contatore maggiore è ritornato sempre su quattro cifre (‘0000’..’9999’). INTERPRETE COMANDI E PROCEDURE UTENTE 139 @JntXXX Effettua un salto condizionato nell’esecuzione della procedura. n = “a”..”z” è una lettera minuscola che corrisponde alla linea della PROC_x in esecuzione a cui saltare in caso di test positivo. Il titolo non viene considerato, quindi “a” corrisponde alla prima linea dopo il titolo, “b” alla seconda e così via. L’ultima lettera, “z”=chr(122), corrisponde alla 26ma linea: nel caso ci siano più di 26 linee, la 27ma sarà rappresentata da “{“=chr(123), la 28ma da “|”=chr(124) e così via. Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici alle linee utilizzando i file di definizione in formato sorgente. t può consistere di uno dei caratteri “<”, “>”, “=” o “#” (diverso da) e determina il tipo di test applicato tra la stringa contenuta nel buffer dati corrente (l’ultimo dato generato e non necessariamente registrato) e la stringa “XXX” che segue. Il confronto è effettuato secondo l’ordine alfabetico ASCII tra le stringhe, non fra gli eventuali valori numerici rappresentati. La stringa di confronto XXX può contenere anche caratteri “_”, che sono trattati come ‘jolly’ (e quindi saltati durante il confronto stesso), inoltre può contenere riferimenti ai dati correntemente immagazzinati dalla procedura, il che significa che è possibile usare un valore di test variabile (esempio: @Jn=#b0#c). Segue un riepilogo delle varianti del comando @Jn: @Jb=xxx salta alla terza linea se l’ultimo dato generato è uguale a xxx @Jb#xxx salta alla terza linea se l’ultimo dato generato è diverso da xxx @Jb<xxx salta alla terza linea se l’ultimo dato generato è minore o uguale a xxx @Jb>xxx salta alla terza linea se l’ultimo dato generato è maggiore o uguale a xxx @Jb=_ salta alla terza linea per qualunque dato generato @Jn&reclen Effettua un salto condizionato alle dimensioni del record da registrare/trasmettere. n = “a”..”z” è una lettera minuscola che corrisponde alla linea della PROC_x in esecuzione a cui saltare qualora le dimensioni del record dati da registrare/trasmettere siano maggiori del valore definito da reclen. Il titolo non viene considerato, quindi “a” corrisponde alla prima linea dopo il titolo, “b” alla seconda e così via. L’ultima lettera, “z”=chr(122), corrisponde alla 26ma linea: nel caso ci siano più di 26 linee, la 27ma sarà rappresentata da “{“=chr(123), la 28ma da “|”=chr(124) e così via. Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici alle linee utilizzando i file di definizione in formato sorgente. Questo comando può essere utilizzato ad esempio per interrompere un “loop” di introduzione dati qualora i dati accumulati fino a quel momento nel record corrente eccedano determinate dimensioni. @J?tXXX Ritorna all’ultimo prompt e non registra il dato inserito a seconda del risultato di un test di confronto. t può consistere di uno dei caratteri “<”, “>”, “=” o “#” (diverso da) e determina il tipo di test applicato tra la stringa contenuta nel buffer dati corrente (l’ultimo dato generato e non necessariamente registrato) e la stringa “XXX” che segue. Il criterio di confronto è analogo a quello applicato per il comando “@Jn”. Segue un riepilogo delle varianti del comando @J?: @J?=xxx non registra dato e torna sull’ultimo prompt se il dato è uguale a xxx @J?#xxx non registra dato e torna sull’ultimo prompt se il dato è diverso da xxx @J?<xxx non registra dato e torna sull’ultimo prompt se il dato è min. o uguale a xxx @J?>xxx non registra dato e torna sull’ultimo prompt se il dato è mag. o uguale a xxx @^n Effettua un salto incondizionato e, nel caso in cui la linea a cui saltare sia precedente, cancella tutti i dati che sono già stati eventualmente registrati durante l’esecuzione della PROC_x da tale linea (inclusa) in poi: questo viene chiamato rollback. n = “a”..”z” è una lettera minuscola che corrisponde alla linea della PROC_x in esecuzione a cui saltare. Il titolo non viene considerato, quindi “a” corrisponde alla prima linea dopo il titolo, “b” alla seconda e così via. L’ultima lettera, “z”=chr(122), corrisponde alla 26ma linea: nel caso ci siano più di 26 linee, la 27ma sarà rappresentata da “{“=chr(123), la 28ma da “|”=chr(124) e così via. Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici alle linee utilizzando i file di definizione in formato sorgente. Questo comando è molto utile nel caso in cui la PROC_x contenga un “loop” del quale non si sa a priori il numero di iterazioni, e si debba in seguito fare riferimento ai dati generati e registrati durante l’ultima iterazione. Può anche essere usato come semplice salto incondizionato in avanti. INTERPRETE COMANDI E PROCEDURE UTENTE 140 @Mfilename Consente di visualizzare messaggi prelevati dal file filename e selezionati in base all’ultimo codice introdotto. Il criterio di selezione è analogo a quello utilizzato per il file standard WMSG (record costituiti da <codice>messaggio), cfr. § 5.7.2). La parte <codice> dei record può contenere anche caratteri “_”, che sono trattati come ‘jolly’ (e quindi saltati durante il confronto stesso). @Pfilename Produce una stampa guidata dal file filename. Stampa il contenuto del file sostituendo i dati immagazzinati durante la transazione negli appositi “segnaposto” #a..#z (Cfr. § 6.4.2). Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici ai dati registrati utilizzando i file di definizione in formato sorgente. Il comando consente di stampare esclusivamente file di tipo NON PACKED e con RECORD A LUNGHEZZA VARIABILE. Naturalmente occorre che la stampante seriale sia connessa ad una porta COM1/2 ed i corrispondenti parametri del terminale siano opportunamente configurati. @Q @Qf Consente di abortire completamente una transazione utente senza salvare dati. Con @Qf, dopo l’uscita, viene lanciata la transazione f (esempi: @QD esce e lancia la transazione D; @QR riporta alla funzione principale di rilevazione presenze / controllo accessi). Questo comando risulta utile nel caso di transazioni che utilizzano solo comandi di shell. Attenzione: f può assumere solo i valori “A”..”O”, “R”..”Z”, “a”..”z”, “1”..”9”. Al posto delle varianti non permesse @QP e @QQ si possono usare le equivalenti @Qd e @Qe. @r Abortisce e ripete l’esecuzione della PROC dall’inizio, senza chiedere conferma. @R Determina la conclusione della transazione (registrazione dati) senza richiesta di conferma dei dati introdotti e riporta l’esecuzione all’inizio della transazione stessa. @Sn Determina il formato di memorizzazione dei dati generati dalle linee-prompt o dai comandi che costituiscono la transazione stessa (si veda anche il parametro 27-Storage). Se il comando è omesso (Memorizzazione “Mode 0”), i dati sono registrati su linee separate, ognuna avente in testa il carattere minuscolo identificativo della linea della transazione che ha generato il dato (“a”..”z”). Il titolo non viene considerato, quindi “a” corrisponde alla prima rlinea dopo il titolo, “b” alla seconda e così via. L’ultima lettera, “z”=chr(122), corrisponde alla 26ma linea: nel caso ci siano più di 26 linee, la 27ma sarà rappresentata da “{“=chr(123), la 28ma da “|”=chr(124) e così via. Possibili varianti: @S1 i dati sono registrati in un singolo record: ognuno è identificato dalla sottostringa avente in prima posizione il carattere minuscolo relativo alla linea della transazione che lo ha generato. Occorre prestare attenzione alla lunghezza massima del record così composto: il limite è fissato a 120 caratteri. @S2 i dati sono registrati in un singolo record: non vi sono i caratteri minuscoli relativi alle corrispondenti linee della transazione. Utilizzate questa modalità di registrazione solo in transazioni prive di salti condizionali (@J..) o per timeout (@W..), cioè in transazioni aventi un tracciato fisso, in cui ogni dato generato può essere estratto dal record in base a criteri posizionali, senza ricercarne i relativi caratteri minuscoli identificativi. Valgono le stesse considerazioni di @S1 riguardo la lunghezza massima del record così prodotto. @S3 i dati sono registrati in un singolo record ed in forma impaccata (packed): non vi sono i caratteri minuscoli relativi alle corrispondenti linee della transazione. Utilizzate questa modalità di registrazione solo INTERPRETE COMANDI E PROCEDURE UTENTE 141 in transazioni aventi campi a lunghezza fissa e prive di salti condizionali (@J) o per timeout (@W), cioè in transazioni aventi un tracciato fisso (analogamente a quanto detto per @S2). Valgono le stesse considerazioni di @S1 riguardo la lunghezza massima del record così prodotto. @S4 imposta una modalità di registrazione dati analoga a quella di @S1 (memorizzazione dei dati in un singolo record con campi preceduti da lettera minuscola identificativa). I record sono poi registrati in un unico file PFXammgg (N.B.: il carattere ‘X’ è fisso, cioè non dipende più dalla particolare transazione eseguita). Ogni record inizia col carattere identificativo della transazione (“#”, “A”..”Z”, “a”..”z”, “1”..”9”), seguono quindi i dati prodotti dalla transazione stessa. Un comando @Sn, se presente, deve essere inserito nella riga immediatamente successiva quella contenente il titolo della transazione: in caso contrario si possono ottenere risultati impredicibili. @Tpattern Produce sul file dati un campo che può eventualmente contenere una rappresentazione dell’ora/data del momento. Il pattern risponde alle regole di definizione dei pattern di tempo descritti a proposito del comando %t (cf. §6.3). Questo comando è anche utile per inserire un record fisso nel file dei dati prodotti dalla transazione. @Wn @Wny Stabilisce a quale linea della transazione saltare per proseguire con l’esecuzione in caso di timeout su un prompt qualsiasi della transazione stessa. “n” è una lettera minuscola corrispondente alla linea a cui saltare per proseguire con la transazione. Il titolo non viene considerato, quindi “a” corrisponde alla prima linea dopo il titolo, “b” alla seconda e così via. L’ultima lettera, “z”=chr(122), corrisponde alla 26ma linea: nel caso ci siano più di 26 linee, la 27ma sarà rappresentata da “{“=chr(123), la 28ma da “|”=chr(124) e così via. Si veda al §6.4.4 come effettuare riferimenti simbolici più semplici alle linee utilizzando i file di definizione in formato sorgente. Un timeout su prompt è causato dalla mancata introduzione e conferma di un dato da parte dell’utente entro il periodo specificato dal comando ‘%’ %Dt (Cfr. § 6.3). Il comando @Wn è normalmente inserito fra i primi comandi della transazione, dopo l’eventuale comando @Sn. La variante @Wny consente di specificare anche a quale riga della transazione saltare (specificata da “y”) quando viene premuto il tasto funzione ? . N.B.: Questi comandi permettono l’esecuzione degli eventi in “background”; possono essere usati all’interno di “loop” di durata prolungata (si veda anche il comando @in). @W0 (zero) consente di specificare che, in caso di timeout, tutta la transazione sia abortita, e quindi non sia registrato alcun dato. Questo è il comportamento normale se non è presente alcun @Wn. Usate @W0 solo in PROC dove c’è un @Wn e si vuole disabilitarne l’effetto. @W1 (uno) consente di specificare che, in caso di timeout su un prompt, non sia registrato alcun dato e la transazione ricominci dall’inizio, ma SENZA VISUALIZZARNE IL TITOLO. Questo comando risulta utile ad esempio per prelevare l’orario aggiornato dopo un lungo timeout su un prompt. @X @Xf Determina la conclusione della transazione (registrazione dati su file) senza richiesta di conferma dei dati introdotti, e riporta alla transazione precedente oppure a quella specificata con f. @XR fa uscire dalla transazione corrente e riporta alla funzione principale di rilevazione presenze/controllo accessi. Attenzione: f può assumere solo i valori “A”..”O”, “R”..”Z”, “a”..”z”, “1”..”9”. Al posto delle varianti non permesse @XP e @XQ si possono usare le equivalenti @Xd e @Xe. @x @xf Determina la conclusione della transazione (registrazione dati su file) con richiesta di conferma dei dati introdotti, e riporta alla transazione precedente oppure a quella specificata con f. @xR fa uscire dalla INTERPRETE COMANDI E PROCEDURE UTENTE 142 transazione corrente e riporta alla funzione principale di rilevazione presenze/controllo accessi. Attenzione: f può assumere solo i valori “A”..”O”, “R”..”Z”, “a”..”z”, “1”..”9”. Al posto delle varianti non permesse @xP e @xQ si possono usare le equivalenti @xd e @xe. 6.4.4 File di definizione in formato « sorgente » E’ possibile scrivere le transazioni utente in un formato “SORGENTE”, che semplifica questa fase permettendo la gestione di LABELS da utilizzare nei riferimenti simbolici ai dati immagazzinati (o ad una linea in un salto condizionato) e la possibilità di introdurre commenti all’interno del codice e caratteri ASCII in formato simbolico (lo stesso che si è sempre usato in questo manuale). I file di definizione in questo formato devono essere salvati con estensione “.SRC”. Un file PROC_x.SRC deve quindi essere compilato con l’utility PROCX.EXE (per ottenere un file eseguibile PROC_x che possa essere caricato sul terminale), oppure caricato direttamente mediante TMCDLLDEMO, un utile programma di supporto che integra in maniera automatica questo modulo di compilazione nelle sue funzionalità di gestione files (si veda il §8.3 per ulteriori dettagli). PROCX.EXE e TMCDLLDEMO possono essere scaricati dalla sezione “Utility & SW” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). Per compilare un file PROC_x.SRC è sufficiente trascinarlo sull’icona di PROCX.EXE, oppure invocare il comando “PROCX PROC_x.SRC”. N.B.: PROCX.EXE crea un file eseguibile PROC_x dove x è sempre una lettera MAIUSCOLA, anche se nel file PROC_x.SRC x è una lettera minuscola. Ricordate di specificare il nome di destinazione corretto quando caricate il file. Vediamo in dettaglio quali operazioni effettua PROCX.EXE: - Rimuove i caratteri SPACE/TAB all’inizio di ogni linea Rimuove tutte le linee vuote o quelle che cominciano con “;” (identificatore di commento) Rimuove tutti i caratteri che seguono “;” (identificatore di commento) da tutte le linee eccetto quelle contenenti dei prompt Rimuove tutte le label “.x” dalle linee che ne hanno una in testa e costruisce una tabella “label-numero di linea” Sostituisce tutte le sottostringhe comando “@J.x” o “@W.x” con le corrispondenti “@Jn” o “@Wn”, dove n è la lettera minuscola che rappresenta la linea cui saltare Sostituisce tutti i riferimenti “#..x” con i corrispondenti “#n”, dove n è la lettera minuscola che rappresenta l’ordinale del dato generato e registrato dalla linea che comincia con “.x” Importante: non usate la notazione "#..x" se la transazione contiene dei jump che saltano delle linee che generano e registrano dati, poiché in questo caso lo stesso ordinale potrebbe competere a dati prodotti da linee diverse a seconda del flusso di esecuzione corrente determinato dall'esito del jump, il quale non può essere previsto dal pre-processore. In alcuni di questi casi si può ovviare al problema usando le variabili "#n" direttamente e introducendo delle linee comandi che producano dei campi dati "fittizi", in maniera tale da avere sempre lo stesso numero di campi, indipendentemente dal flusso di esecuzione della transazione. E’ tuttavia più semplice e sicuro, e quindi raccomandabile, usare la notazione alternativa "#:.x". - - - Sostituisce tutti i riferimenti “#:.x” con i corrispondenti “#:n”, dove n è la lettera minuscola che rappresenta l’ordinale della linea che comincia con “.x”, la quale ha generato e registrato il dato cui si fa riferimento Sostituisce tutti i riferimenti “..x” con il numero decimale “n” corrispondente alla linea che comincia con “.x” (1 se è la prima-Titolo, 2 se è la seconda, ecc.): questa funzionalità è utile nel comando “@@DBC ..x nuovoformatolinea PROC_y D”, che consente di cambiare dinamicamente le linee di una PROC_y durante la sua esecuzione; nuovoformatolinea può contenere riferimenti ai dati correntemente generati e registrati Sostituisce tutti i riferimenti “{n}” (dove n=1..255) con il corrispondente carattere ASCII chr(n) Sostituisce tutti i riferimenti “{xxx}” (dove xxx=SOH, STX, … , US) con il corrispondente carattere di controllo ASCII chr(1)..chr(31) Nota: se all’inizio della prima linea (titolo) è stato inserito un carattere “@” per evitare che venga mostrata sul display, è opportuno inserire anche uno spazio in seconda posizione, altrimenti in alcuni casi PROCX.EXE potrebbe confondere il titolo con una linea di comando in grado di produrre un dato, e conseguentemente sbagliare tutti i riferimenti ai dati prodotti. 6.4.5 Transazioni “Semi ON-LINE” È possibile ottenere un funzionamento tipo "semi on-line" anche nelle transazioni guidate da un file PROC_x: è sufficiente costruire la procedura in modo analogo a quanto illustrato nel seguente esempio (scritto in INTERPRETE COMANDI E PROCEDURE UTENTE 143 formato “sorgente”): .a .b .c .d .e .f .g .h .i .j ESEMPIO DI TITOLO @S2 @Wj :BK,NNNN:Lettura|badge ____ :fBK,Nnn:Numero|pezzi ___ @THh:Mm:Ss @>#..c#..d#..e ;(commento) equivalente a @>#a#b#c :-:Attendere|prego...{ESC}%D{16} @J.j#0 @QR @R La linea .a definisce la modalità di registrazione dei dati: file PFxammgg non impaccato, con un record singolo, senza identificatori di linea. La linea .b indica a quale linea far proseguire l'esecuzione del programma in caso di timeout scaduto durante l'attesa di introduzione dati in un prompt: in questo caso il salto avviene alla linea .j con conseguente registrazione dei dati inseriti. Le linee .c, .d e .e sono normali linee di input dati e registrazione dell'orario corrente. Le linee .f e .g costituiscono la parte fondamentale della gestione "on-line" della PROC_x che stiamo analizzando: la linea .f invia all’host i dati prodotti fino a quel momento sul canale online corrente, mentre la linea .g imposta un timeout di attesa di 2 secondi (la parte ":-:" provvede a disabilitare tutti i dispositivi di introduzione dati, indipendentemente dal valore del parametro 72-PrmptDflt). Se l'host non invia alcun messaggio entro il timeout impostato, l'esecuzione della procedura continua alla linea .j con la registrazione dei dati accumulati durante la transazione. Se invece l’host risponde e la procedura deve operare in modo differenziato a secondo del contenuto della risposta, allora il messaggio inviato dall’host deve simulare l'introduzione di un dato dalla tastiera del terminale, generando l’evento corrispondente con il comando %E{14} (Cf. §6.3), cui viene concatenato il comando %K che specifica il dato teoricamente introdotto. N.B.: la stringa dato deve essere terminata da un carattere blank {255}, che verrà convertito in {CR} (si faccia anche attenzione a non inserire caratteri ASCII che corrispondono alla pressione di tasti funzione indesiderati, vedi descrizione del comando %Ktesto, § 6.3). Ad esempio, %E{14}K0{255} potrebbe costituire una risposta negativa, mentre %E{14}K1{255} potrebbe costituire una risposta positiva (i caratteri finali "0" o "1" possono essere sostituiti da qualunque stringa su cui il terminale potra` poi effettuare dei test di confronto). La linea .h. provvede ad effettuare il test sulla risposta fornita dall'host. In alternativa l’host, ricevuti i dati della transazione, può intervenire come segue: • invia il comando ONLINE interrompendo la procedura. • usa uno o più prompt per mostrare un messaggio di conferma all'operatore ed eventualmente chiedere altri dati rimanendo ONLINE. • Torna al funzionamento OFFLINE, specificando (opzionalmente) una procedura diversa col comando %Fx, e quindi il comando OFFLINE. 6.4.6 Un altro esempio di PROC_x Vediamo un esempio di PROC_x che può essere sempre eseguita all’accensione al posto dell’applicazione firmware standard di rilevazione presenze mediante il comando “PROC x”. Ciò che segue è il contenuto di un file di definizione PROC_B.SRC che può essere compilato così com’è con l’utility PROCX.EXE, oppure caricato direttamente mediante TMCDLLDEMO. La risultante PROC_B legge una carta, controlla il numero di “punti” ancora disponibili per quell’utente (memorizzati in un file di nome “AXPOINTS”) e in caso positivo decrementa tale numero e attiva il relé. Tutti i commenti e le specifiche sono integrati nel testo mediante l’identificatore di commento “;”: ;PROC_B.SRC ;ESEMPIO DI APPLICAZIONE CON DECREMENTO DI VALORE INTERPRETE COMANDI E PROCEDURE UTENTE 144 ;Questo esempio mostra come realizzare una PROC_x che legge una carta e ne controlla la ; validità esaminando un file AXPOINTS i cui record hanno il formato CCCCCCVVV, dove ; CCCCCC è il codice personale (lungo 6 cifre in questo esempio) e VVV è il numero di ; "punti" ancora disponibili per quell’utente. ;Ad ogni carta letta viene cercato sul file AXPOINTS un record con il codice utente ; corrispondente e "VVV" maggiore di "000": se trovato allora tale campo viene ; decrementato e l’accesso è consentito, altrimenti viene visualizzato il messaggio ; "Carta non piu’ valida". ;Poiché il parametro "custom" 75 usato come variabile per il decremento non può ; gestire valori maggiori di 255, se la vostra applicazione richiede di concedere un ; numero maggiore di "punti" ad un utente potete caricare più di un record con lo stesso ; codice CCCCCC. ;Mostra messaggio di benvenuto Pronto per nuova| operazione... ;No "cancellazione automatica" nelle PROC @@CFG 58 8 .d :MBC:{FF} Striscia| una carta ;Riavvio su timeout @W1 ;Apre il file @@DBU AXPOINTS .s ;Cerca un record a partire dalla pos. corrente @@DBS #..d ;Salva il record corrente per successivo aggiornam. @!99 ;Salta a .e se il risultato è "?*" ("non trovato") @J.e=? ;Estrae il numero di punti... @[007,009] ;...e lo salva nel par.75 per successivo decremento @!75 ;Se "000" punti, cerca eventuale altro record @J.s=000 .r ;Adesso (fuori dal loop ".s") si può recuperare il record, che sarà usato come ; "chiave" nella successiva DBC @?P99W ;Decrementa... @%-75 .p ;...e salva il nuovo valore dei punti @?P75W ;Aggiornamento record @@DBC #..r #..d#..p AXPOINTS ;Attiva relé #1 per mezzo secondo @%O1{4} ;Mostra conferma @D{FF}Carta valida|#..p punti rimasti ;Questo prompt deve sempre uscire per time-out :-:{ESC}%D{16} .e ;Carta non trovata/non valida, questo prompt deve sempre uscire per time-out :-:{FF}{BEL}Carta non piu’| valida{ESC}%D{16} INTERPRETE COMANDI E PROCEDURE UTENTE 145 6.4.7 I file dati registrati dalle transazioni utente I dati prodotti (nel drive con identificativo più alto in caso di PROX+F/G con RAMCard) sotto il controllo delle procedure PROC_x hanno il nome PFxAMMGG con la data specificata come nei file di presenze e la lettera “x” sostituita dalla transazione usata (#, A..Z, a..z, 1..9). Come i file di presenze, essi sono registrati nell’unità logica di identificativo più alto. Il formato di memorizzazione dei dati è determinato dal comando @Sn eventualmente presente (Cfr. § 6.4.3). Se questo comando è omesso, il formato di memorizzazione (“Mode 0”) consiste in linee di lunghezza variabile, una linea per ogni comando del file PROC_x che provochi la registrazione di un dato, escluso il titolo che occupa obbligatoriamente la prima riga di ogni procedura. Ogni linea ha in testa una lettera minuscola corrispondente all’ordine all’interno della transazione. Il titolo non viene considerato, quindi “a” corrisponde alla prima linea dopo il titolo, “b” alla seconda e così via. L’ultima lettera, “z”=chr(122), corrisponde alla 26ma linea: nel caso ci siano più di 26 linee, la 27ma sarà rappresentata da “{“=chr(123), la 28ma da “|”=chr(124) e così via. Nel caso di record di dati introdotti con meno caratteri di quelli previsti dalla maschera di input, il record viene comunque giustificato a sinistra riempiendo a destra con caratteri “_” fino alla lunghezza massima prevista dal prompt. In alternativa mettendo ‘0’ (zero) come qualificatore di “Input” si può giustificare a destra usando il carattere ‘0’ per riempire a sinistra (Cfr. § 6.2.1). 6.4.8 La transazione speciale PROC_V Se il bit 2 del parametro 58-ExtraBits è impostato a ‘1’, dopo ogni lettura valida di badge in Rilevazione Presenze / Controllo Accessi, il terminale esegue (se esiste) la procedura PROC_V. In alternativa, impostando anche il bit 4 dello stesso parametro ad ‘1’, è possibile eseguire la PROC_V anche in seguito ad ogni lettura di badge non valida oppure (solo nel caso dei terminali FingerTRAX+G con lettore RFID 13.56MHz R&W) verifica biometrica fallita. La procedura PROC_V viene richiamata solo in seguito a letture di badge effettuate sui lettori di “consolle” (slot interno, esterno, barcode su RJ11, addizionali su RS232); le letture effettuate su lettori “slave” su NET92 non causano l’esecuzione della PROC_V. In caso di lettura valida, la procedura è eseguita subito dopo l’eventuale visualizzazione del file WMSG (Cfr. § 5.7.2), prima di registrare la lettura nel file di presenze/accessi PREammgg. La registrazione della lettura e dei dati prodotti da PROC_V è determinata dal comando utilizzato per uscire dalla transazione (si veda il § 6.4.3): @Xf con f =“A”..”O”, “S”..”Z”, “a”, “b”, “d”..”z”, “1”..”9”: registra i dati prodotti dalla PROC_V e lancia la corrispondente PROC_f. La decisione relativa alla registrazione della lettura nel file PREammgg viene in questo modo posticipata al momento di uscire dalla PROC_f, e dipende da quale dei comandi presenti in questa lista verrà utilizzato per terminarla (in maniera analoga a quanto avviene per la PROC_V). @Xc: registra i dati prodotti dalla PROC_V, non registra la lettura nel file PREammgg e torna alla funzione principale di rilevazione presenze/controllo accessi. @XR: registra i dati prodotti dalla PROC_V, registra la lettura nel file PREammgg e torna alla funzione principale di rilevazione presenze/controllo accessi. @Qf con f =“A”..”O”, “S”..”Z”, “a”, “b”, “d”..”z”, “1”..”9”: non registra i dati prodotti dalla PROC_V e lancia la corrispondente PROC_f. La decisione relativa alla registrazione della lettura nel file PREammgg viene in questo modo posticipata al momento di uscire dalla PROC_f, e dipende da quale dei comandi presenti in questa lista verrà utilizzato per terminarla (in maniera analoga a quanto avviene per la PROC_V). @Qc: non registra i dati prodotti dalla PROC_V, non registra la lettura nel file PREammgg e torna alla funzione principale di rilevazione presenze/controllo accessi. @QR: non registra i dati prodotti dalla PROC_V, registra la lettura nel file PREammgg e torna alla funzione principale di rilevazione presenze/controllo accessi. Prima di richiamare la PROC_V, il sistema memorizza nel parametro 97-Param1 una stringa contenente alcuni dati relativi alla lettura appena effettuata: • in caso di lettura valida, tale stringa contiene gli stessi dati che saranno registrati nel file PREammgg, privo dei campi ore, minuti e secondi (se esistono): durante l’esecuzione della PROC_V è così possibile effettuare dei test sul codice causale, direzione, ecc. • in caso di lettura non valida, il primo carattere di tale stringa rappresenta un codice di errore, che può assumere i seguenti valori in base alla causa della “non validità” della lettura: INTERPRETE COMANDI E PROCEDURE UTENTE 146 ‘A’ Chiave di sistema errata (definita dai parametri 41-BadgeSys e 91-BadgeKey) oppure codice personale (definito dai parametri 42-BadgeCod e 43-BadgeLen) troppo corto, evento che può accadere solo se il bit 4 del parametro 40-BadgeTk non è impostato ad ‘1’. In questo caso la stringa memorizzata nel parametro 97 contiene anche, subito dopo il codice di errore, il codice contenuto nel badge nell’esatto formato in cui è stato decodificato (che include gli eventuali caratteri delimitatori ‘;’ (in testa) e ‘?’ (in coda) più l’indicatore del verso di lettura (‘<’ o ‘>’) in caso di badge magnetico o di prossimità). ‘B’ Carta già passata per ultima (lettura multipla, se il bit 0 del parametro 68-PresMode è impostato a ’1’). Anche in questo caso la stringa memorizzata nel parametro 97 contiene, subito dopo il codice di errore, il codice contenuto nel badge nell’esatto formato in cui è stato decodificato. ’C’ Codice personale non strettamente numerico (e quindi non comprimibile in formato impaccato, al fine di salvarlo nel file PRExxxxx odierno). In questo caso la stringa memorizzata nel parametro 97 contiene, subito dopo il codice di errore, solo il codice personale, cioè solo una porzione del codice effettivamente letto, estratta in base al valore dei parametri 42-BadgeCod e 43-BadgeLen. ‘D’ Badge non valido (file AXGROUPS e/o AXCARDS) / Pool non valido (file AXPOOLS) / Fascia oraria non valida (file AXTIMET) oppure direzione incongruente con il passaggio precedente (controllo anti-passback, se il bit 5 del parametro 68-PresMode è impostato a ’1’) o tentativo di uscita di una carta mai entrata (se anche il bit 7 del parametro 68-PresMode è impostato a ’1’) oppure carta già passata nel minuto corrente (se il bit 6 del parametro 68-PresMode è impostato a ’1’) Anche in questo caso la stringa memorizzata nel parametro 97 contiene, subito dopo il codice di errore, solo il codice personale. ‘E’ Verifica biometria fallita in modalità 1:1 (disponibile solo nel caso dei terminali FingerTRAX+G con lettore RFID 13.56MHz R&W). Anche in questo caso la stringa memorizzata nel parametro 97 contiene, subito dopo il codice di errore, solo il codice personale. All’interno della PROC_V è possibile forzare in qualche modo la validazione del passaggio (cioè la registrazione nel file PRExxxxx odierno e l’eventuale attivazione di un relè se il parametro 44-Access è diverso da ‘0’) inserendo nel parametro 97-Param1 il codice che si desidera memorizzare (purchè strettamente numerico e della stessa lunghezza definita dal parametro 43-BadgeLen) preceduto dal carattere “;” e uscendo dalla PROC_V con un comando diverso da @Xc o @Qc. ESEMPIO: Ciò che segue è il contenuto di un file di definizione PROC_V.SRC che può essere compilato così com’è con l’utility PROCX.EXE, oppure caricato direttamente mediante TMCDLLDEMO. La risultante PROC_V gestisce carte che hanno una data di scadenza registrata a fianco del codice personale. Tutti i commenti e le specifiche sono integrati nel testo mediante l’identificatore di commento “;”: ;PROC_V.SRC ;Questa PROC controlla la data di scadenza di una carta. ;La data deve essere registrata sulla striscia magnetica nel formato "YyNnDd", dopo il ; codice di sistema SSSS (opzionale) ed il codice personale CCCC. ;Con i codici mostrati in questo esempio, la carta deve essere codificata come ; SSSSCCCCYyNnDd. ;Questa procedura viene eseguita dopo che il terminale ha completato tutti i controlli di ; validità sulla carta. ;A causa della tecnica di passaggio dei parametri durante la chiamata alla PROC_V, i ; parametri del terminale vanno impostati come segue (per l’esempio citato): ; CFG 03 0 Disabilita la visualizzazione del codice personale dopo la lettura ; CFG 41 1 Posizione del codice di sistema ; CFG 42 4 Posizione del codice personale ; CFG 43 10 Lunghezza codice personale (CCCCYyNnDd) INTERPRETE COMANDI E PROCEDURE UTENTE 147 ; CFG 58 4 ; CFG 91 1234 Lancia PROC_V dopo una lettura di badge Codice di sistema (da sostituire con quello da voi prescelto!) ;Un effetto collaterale di questa soluzione è la registrazione nel file PRExxxxx della ; data di scadenza oltre al codice personale, infatti qui il "codice personale" è ; considerato come solo una parte della lunghezza totale del codice personale (CFG 43 10). ;Per l’utilizzo in Controllo Accessi è consigliabile controllare solo il codice di sistema ; (CFG 44 1), altrimenti AXCARDS dovrebbe contenere sia il codice personale che la data di ; scadenza. ;Il titolo non viene mostrato ma ricorda lo scopo della PROC @ Controllo data di scadenza .a ;Salva la data corrente nello stesso formato usato per la carta @TYyNnDd ;Recupera il contenuto del par. 97, che contiene il record così come sarà salvato nel ; file PRExxxxx... @?P97 ;...e ne estrae il campo data: supponiamo CFG 60 0 (no causal code) @[006,011] ;Controlla se la data è scaduta: salta a .b se lo è @J.b<#..a ;Uscita normale con registrazione nel file PRExxxxx @QR .b ;Avviso e uscita senza registrazione dati @D| Data SCADUTA {BEL}{BEL}{US} @Qc ESEMPIO: Ciò che segue è il contenuto di un file di definizione PROC_V.SRC che può essere compilato così com’è con l’utility PROCX.EXE, oppure caricato direttamente mediante TMCDLLDEMO. Attenzione: la linea .a dovrà essere riscritta esattamente come appare qui sotto subito dopo la compilazione, poiché il compilatore interpreta sempre il carattere “;” come un identificatore di commento (rimuovendolo con tutto quello che segue), anche se in questo caso è semplicemente un carattere da inserire nel parametro 97. La risultante PROC_V gestisce i soli passaggi non validi con codice di errore ‘D’, forzandone la registrazione ma sostituendo la prima cifra del codice personale con la cifra fissa ‘9’. Tutti i commenti e le specifiche sono integrati nel testo mediante l’identificatore di commento “;”: ;PROC_V.SRC ;Questa PROC forza la registrazione dei passaggi non validi con codice di errore "D" ;I parametri del terminale vanno impostati come segue (per l’esempio citato): ; CFG 43 6 Lunghezza codice personale ; CFG 58 20 Lancia PROC_V anche in seguito ad un passaggio non valido ;Il titolo non viene mostrato ma ricorda lo scopo della PROC @ Gestione passaggi non validi ;Recupera il contenuto del par. 97, che contiene il record così come sarà salvato nel ; file PRExxxxx (in caso di passaggio valido) oppure il codice di errore piu’ il ; codice letto (in caso di passaggio non valido) @?P97 ;Controlla se il primo carattere e’ diverso da "D": in tal caso non fa nulla e salta ; direttamente a .b @J.b#D ;Scarta il codice di errore e la prima cifra del codice personale, generando un dato ; (#a) costituito dalle ultime 5 cifre del codice personale lungo 6 @[003,007]W ;Imposta il par.97 concatenando il carattere ";", la prima cifra fissa "9" e il dato ; appena generato (#a) INTERPRETE COMANDI E PROCEDURE UTENTE 148 .a @@CFG 97 ;9#a .b ;Uscita normale con registrazione nel file PRExxxxx @QR 6.4.9 Come sfruttare la stampante La stampante può essere controllata all’interno di una transazione in due diversi modi: • Il primo modo usa il comando %Ptesto (Cfr. § 6.3), che (aggiunto ad un qualsiasi prompt) stampa il messaggio fisso testo al momento della visualizzazione del prompt. • La seconda modalità si appoggia all’uso di file di controllo: con il comando @Pfilename (Cfr. § 6.4.3) viene stampato il contenuto del file filename presente nel file-system del terminale. Il comando consente di stampare esclusivamente file di tipo NON PACKED e con RECORD A LUNGHEZZA VARIABILE. • Il terzo modo è usando il commando “@@PRINT filename”, che viene poi diretto alla shell (si veda il § 6.1.1). A differenza del commando “@Pfilename” questo può essere usato con qualsiasi tipo di file, incluso quelli con lunghezza fissa e quelli impaccati. All’interno del file vi possono essere delle stringhe “segnaposto” che vengono sostituite, al momento della stampa, con i corrispondenti dati prodotti dalla transazione (Cfr. 6.4.2). Per stampare il normale carattere “#”, questo dovrà essere presente raddoppiato (##). È possibile stampare anche la data e l’ora dell’orologio/datario del terminale utilizzando la sintassi “#(..)” descritta al § 5.7.2 per l’utilizzo del file FPRNPRE durante la fase di rilevazione presenze e controllo accessi. 6.5 Uso totale del terminale: programmazione in linguaggio “C” E’ anche possibile programmare il terminale usando il linguaggio “C”. Nei terminali PROX+F/G e TRAX+F/G, i programmi compilati su personal computer IBM compatibili possono essere caricati sulla memoria flash, mentre i vecchi PROX+ devono necessariamente disporre di una RAM-Card. Tutte le volte che viene premuto un tasto funzione, il terminale controlla se in memoria esiste il file PROC_x corrispondente; se questo non viene trovato, il terminale controlla la memoria flash o la RAM-Card per vedere se vi è caricato un programma: in questo caso lo esegue passandogli come parametro il tasto funzione premuto. Per poter caricare ed eseguire un programma nella RAM-Card di un PROX+ è necessario formattarla, riservando 32KB a questo scopo (Cfr. § 3.3.4 per esecuzione da tastiera e § 6.1.1 per il comando “%%5” da inviare all’interprete comandi). TMC fornisce una libreria di funzioni che permettono di utilizzare molto semplicemente tutte le caratteristiche “hardware” del terminale, per mezzo del suo sistema operativo “event-driven”. Il compilatore da usare è l’ICC-51 della ditta IAR; la descrizione della libreria di funzioni è documentata nel manuale “Programmazione in C per PROX”, che può essere scaricato dalla sezione “Manuali prodotti” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com), mentre il pacchetto contenente il sistema di sviluppo completo può essere scaricato dalla sezione “Utility & SW”. ATTENZIONE: non è possibile caricare programmi sviluppati in linguaggio “C” su tutti i terminali TRAX+G con lettore RFID Legic R&W (p/n 929.xxx.55) e su tutti i terminali FINGERPROX+F e FINGERTRAX+G con lettori RFID R&W 13.56MHz e Legic (p/n xxx.xxx.34 e xxx.xxx.45). Su tutte le altre versioni di FINGERPROX+F e FINGERTRAX+G (p/n xxx.xxx.32/35/36/37/38) e su tutti i terminali FINGERPROX+F/Su e FINGERTRAX+G/Su (p/n 942.xxx.5x e 929.xxx.??), invece, è disponibile per il caricamento dei programmi solo il banco 4 della memoria flash (cfr. § 7.3). BOOTLOADER E RIPROGRAMMAZIONE DEL FW 149 7 BOOTLOADER E RIPROGRAMMAZIONE DEL FW Il firmware standard del terminale risiede in una memoria flash riprogrammabile (la “main flash”), mentre una memoria di boot addizionale (la “boot flash”) conserva una piccola parte del firmware chiamata bootloader. Il bootloader è riprogrammabile soltanto tramite un particolare sistema di cui dispone solo il centro assistenza della TMC. E’ possibile invece usare il bootloader per riprogrammare il firmware standard del terminale e per cambiarne la lingua, come descritto in questo capitolo. 7.1 Aggiornamento rapido del firmware Mediante il programma TMCDLLDEMO (§9.4) è possibile aggiornare rapidamente il firmware con una breve serie di operazioni. Una volta che si è in grado di comunicare con il terminale (usando una qualunque delle varie modalità di collegamento, fate riferimento al foglio guida incluso nel package di installazione di TMCDLLDEMO per ulteriori dettagli), cioè quando premendo il pulsante ”SetTerminal” si ottiene il valore di ritorno ‘0’, procedete con la sequenza: 1. Premete il pulsante il pulsante “LoadPrg” e selezionate il file contenente il firmware, che deve avere estensione .XBH 2. Premete il pulsante “xFlash”, e alla domanda “Erase Flash pages according to <file selezionato>.xbh Data content?” rispondete “Sì” 3. Verranno automaticamente inviati alcuni comandi in sequenza, l’operazione richiede qualche secondo. Controllate che alla fine accanto al pulsante “SendCommand” compaia il valore di ritorno ‘0’: se questo accade l’operazione di cancellazione della “main flash” è andata a buon fine. In caso contrario, accertatevi di usare la versione più recente di TMCDLLDEMO e delle librerie PROXC.DLL e NET92C.DLL: se necessario chiudete il programma, effettuate un upgrade e ricominciate da capo 4. Premete nuovamente il pulsante “LoadPrg” per iniziare il caricamento del firmware: apparirà una nuova finestra con una barra di stato avanzamento. 5. Al termine, alla domanda “Have you finished to load a FW block?” rispondete “Sì”. Verranno automaticamente inviati alcuni comandi in sequenza, e dopo qualche secondo il terminale ripartirà con il nuovo firmware. 7.2 Il Bootloader Il Bootloader viene sempre eseguito quando il terminale effettua un restart se la “main flash” non contiene un programma valido o se è stata precedentemente inviata la sequenza di comandi “CFG 88 n”, con n dispari e maggiore o uguale a ‘5’, e “%%” (il parametro 88 viene automaticamente riportato a 0 prima di eseguire un qualunque comando di shell diverso da “%%”). Al momento del restart il display mostra per qualche istante la release del bootloader installato e l’indirizzo Net92 del terminale, come nell’esempio seguente: Prox+F BL16 254 All’interno del bootloader è possibile effettuare alcune impostazioni di base del terminale. Se dalla schermata principale: Bootloader ________________ si premono i tasti sempre “54321”): F e 0 , il terminale chiede di inserire il codice operatore (il cui valore di default è BOOTLOADER E RIPROGRAMMAZIONE DEL FW 150 Operator (BL) password:_____ Se il codice inserito è corretto si entra in un menù supervisore “ridotto”: Commands: Config.Param’s Premendo il tasto si abilita la procedura di impostazione visualizzata, con i tasti possibile richiamare invece le altre opzioni disponibili: e è Commands: IP Config. Nota relativa alla configurazione IP in un TRAX+F/G con fw r.86 o successive: all’interno del bootloader il protocollo DHCP (Cfr. § 3.3.6) non è supportato, ma vengono comunque utilizzati gli ultimi valori dei parametri A, S e G impostati dal server DHCP durante la precedente esecuzione del fw standard (se il bit 0 del parametro 20EthIPMode è impostato a ‘1’). Commands: Modem setup Commands: Set Language L’ultima opzione (“Set Language”) serve ad impostare la lingua del terminale (Cfr. § 7.4.1). Il bootloader supporta tutti i comandi della shell di comunicazione standard del terminale, eccetto quelli relativi al “File System”. La stringa identificativa inviata dal bootloader come risposta al comando %XI (o messaggio vuoto: “”) è del tipo: [254] Prox+F BL16 I comandi specifici per il bootloader sono quelli del tipo “%%Fnnn…” e LOADP. Occorre reimpostare il parametro 88 a ‘0’ per uscire dal bootloader e consentire l’esecuzione del firmware di base sulla “main flash”. 7.2.1 Reset lungo con il pulsante di reset In seguito ad una pressione prolungata per almeno tre secondi del pulsante di reset (Cfr. §2.8), il terminale si trova in una condizione di “SYSTEM RESTART” come quella che segue la prima accensione (Cfr. § 3.2), in cui viene mostrata per qualche secondo una richiesta del tipo: Start PROX? (Clr)=NO Se in questo stato viene premuto il tasto bootloader invece del FW standard. 7.3 CLR , il parametro 88 viene impostato al valore ‘5’ e viene lanciato il Organizzazione della “main flash” La “main flash”, di 256KB, è organizzata in 8 “pagine” di 32KB. BOOTLOADER E RIPROGRAMMAZIONE DEL FW 151 Queste “pagine” vengono mappate in “banchi” sul terminale nel modo seguente: le prime due pagine (64KB) di flash sono mappate nel primo banco (0..FFFFh) del terminale. Le seguenti pagine della flash sono mappate in banchi di 32KB, ciascuno dei quali comincia all’indirizzo 8000h . Mappa della memoria - Main flash da 256KB 0 Banco 0: 7FFF 8000 Pagina flash 0 (32KB) FFFF Pagina flash 1 (32KB) Banco 1: Pagina flash 2 (32KB) Banco 2: Pagina flash 3 (32KB) Banco 3: Pagina flash 4 (32KB) Banco 4: Pagina flash 5 (32KB) Banco 5: Pagina flash 6 (32KB) Banco 6: Pagina flash 7 (32KB) I banchi 0, 1, 2 e 6 sono riservati al firmware di base del terminale (pagine flash 0..3 e 7). Il banco 2 viene usato per le routine di gestione dello schermo e (nel caso di display grafico) dei font. I banchi 3, 4 e 5 (pagine flash da 4..6) vengono usati per caricare applicazioni utente, come una volta era possibile fare solo mediante RAM Card. 7.3.1 Cancellazione della “main flash” All’interno del Bootloader, e solo se è stato precedentemente inviato il comando CFG 88 con valori 5, 7, 9, 11, 13, 15 o 17, il comando per cancellare le pagine della main flash è “%%Fnnn…”. Ogni ‘n’ rappresenta la posizione della prima, della seconda, della terza… (e così via) pagina da cancellare. Se ‘n’=’1’ sarà cancellata, se ‘n’=’0’ non verrà modificata. Ad esempio: %%F11110001 cancella le pagine dalla 0 alla 3 e la 7. E’ anche possibile usare la seguente forma abbreviata: %%F11 per cancellare soltanto le prime due pagine, cioè 64KB. Come conseguenza della mappatura dei banchi riservati del terminale (Cfr. § 7.3) nella maggior parte dei casi vengono usati solo i seguenti comandi: %%F00001110 per cancellare applicazioni utente %%F11110001 per cancellare tutto il FW di base %%F0001 per cancellare (e subito dopo ricaricare) le routine per il display ed i font (in caso di display grafico) N.B.: mediante il programma TMCDLLDEMO (§9.4) è possibile cancellare la “main flash” con un semplice click, usando il pulsante “xFlash” e selezionando le pagine da cancellare automaticamente, in base al contenuto del nuovo file .XBH da caricare (se ne avete precedentemente selezionato uno), oppure manualmente. Fate riferimento al foglio guida incluso nel package di installazione di TMCDLLDEMO per ulteriori dettagli. 7.3.2 Programmazione della “main flash” La programmazione della “main flash” viene effettuata attraverso il comando standard “LOADP”. Il file da caricare deve essere nel formato .XBH, uno speciale formato pseudo-binario creato per consentire la massima efficienza nel caricamento, sia attraverso la comunicazione seriale standard TTY che attraverso i protocolli TMC. I file .XBH possono essere generati, a partire dai file standard IntelHEX o binari, usando l’utility di conversione XBHCONV.EXE, che può essere scaricata dalla sezione “Utility & SW” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). I file XBH contengono riferimenti ad indirizzi fino a 64K (da 0000 a FFFFh). La LOADP usa i dati ricevuti per BOOTLOADER E RIPROGRAMMAZIONE DEL FW 152 programmare i banchi di memoria del terminale in base al valore specificato dal comando CFG 88, nel modo seguente: CFG 88 5 CFG 88 7 CFG 88 9 CFG 88 11 CFG 88 13 CFG 88 15 CFG 88 17 banco 0, banco 1, banco 2, banco 3, banco 4, banco 5, banco 6, dimensione dimensione dimensione dimensione dimensione dimensione dimensione 64KB, 32KB, 32KB, 32KB, 32KB, 32KB, 32KB, intervallo 0000..FFFF, intervallo 8000..FFFF, intervallo 8000..FFFF, intervallo 8000..FFFF, intervallo 8000..FFFF, intervallo 8000..FFFF, intervallo 8000..FFFF. Per semplificare il ricaricamento del FW, è possibile includere nel file .XBH il comando “@nn” per settare il valore del parametro 88 “al volo”. In pratica, “@07” è equivalente a “CFG 88 7”. In questo modo è possibile “compattare” in un singolo file dati per banchi multipli, basta far precedere ogni sezione dati relativa ad un certo banco dall’appropriato comando “@nn”, e concatenare tutte le sezioni nello stesso file. I comandi “@nn” non vengono introdotti nel file da XBHCONV.EXE. Ciò può essere fatto manualmente mediante un qualunque editor di testo. N.B.: mediante la libreria TMC PROXC.DLL, è possibile caricare un file .XBH precedentemente creato in un solo passo, semplicemente chiamando la funzione “SendPrg” (rinominata “LoadPrg” nel programma TMCDLLDEMO) e specificando il nome del file. Fate riferimento al foglio guida incluso nel package di installazione di TMCDLLDEMO per ulteriori dettagli. 7.3.3 Files del firmware di base Il firmware di base viene distribuito in file che includono i comandi “@nn“ necessari per il passaggio “al volo” da un banco all’altro, consentendo di effettuare una riprogrammazione completa con un singolo comando LOADP, indipendentemente dal valore del parametro 88 (che comunque deve essere dispari e maggiore o uguale a ‘5’). Inoltre, nel caso si utilizzi TMCDLLDEMO, i comandi “@nn” consentono al programma di inviare automaticamente, mediante il pulsante “xFlash”, gli opportuni comandi di cancellazione “%%Fnnn…” per le pagine di memoria che ci si accinge a sovrascrivere (Cfr. § 7.3.1): è sufficiente rispondere “Sì” alla domanda “Erase Flash pages according to <file selezionato> Data content?”. Ad esempio, il file 940_0B74.XBH include il firmware completo per un PROX+F con display 2x16, multilingua, singolo lettore magnetico in traccia 2. I file dei firmware di base aggiornati possono essere scaricati dalla sezione “Firmware” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). 7.4 Cambiare la lingua Per cambiare la lingua si può usare uno dei due seguenti metodi: 7.4.1 Cambiare la lingua dal bootloader F 0 Mentre il bootloader è in esecuzione premete e poi per entrare nel menu supervisore (il codice operatore di default è 54321). Selezionate con i tasti freccia l’opzione “Set Language” e premete invio (lo stesso risultato può essere ottenuto direttamente durante il l’esecuzione del FW standard impostando il parametro 88 a 255 e riavviando il terminale). La lingua corrente sarà mostrata per prima. Potete usare i tasti freccia per scorrere tutte le lingue disponibili: 0 – Inglese 1 – Francese 2 – Spagnolo 3 – Tedesco 4 – Italiano 5 – Portoghese 6 – Olandese 7 – Danese 8 – Ceco (*) 9 – Ungherese/Catalano Reset & Off BOOTLOADER E RIPROGRAMMAZIONE DEL FW Premete A tasto 153 quando è mostrata la lingua che volete impostare sul terminale. Vi sarà chiesto di premere il per conferma. Uscendo dal bootloader e attivando il normale funzionamento del terminale sarà usata la lingua da voi impostata. 7.4.2 Cambiare la lingua impostando il parametro 88 Questo metodo è molto semplice, basta impostare il parametro 88 ad un valore corrispondente alla lingua desiderata e riavviare il terminale. I possibili valori dei parametri sono elencati nella tabella seguente: 240 Inglese 241 Francese 242 Spagnolo 243 Tedesco 244 Italiano 245 Portoghese 246 Olandese 247 Danese 248 Ceco 249 Ungherese/Catalano (*) Eseguendo un restart del terminale (comando %%) con il parametro 88 ad un valore maggiore o uguale a 240, il bootloader imposterà automaticamente la nuova lingua, e il terminale ripartirà con essa. (*) A partire dalla versione 19 del bootloader BOOTLOADER E RIPROGRAMMAZIONE DEL FW 154 8 GESTIONE DEL DISPLAY ATTENZIONE: agendo sull’apposito trimmer di regolazione (che potete localizzare facendo riferimento alle figure del §2.2) a terminale aperto e acceso, assicuratevi che il contrasto del display sia impostato in modo tale da massimizzarne la visibilità. 8.1 Caratteristiche specifiche dei display grafici Sui display grafici del PROX+G e del TRAX+G è possibile visualizzare diversi font di caratteri e immagini bitmap a due colori (i colori dello sfondo e delle scritte si possono eventualmente invertire impostando a ‘1’ il bit 7 del parametro 58-ExtraBits, cfr. § 5.6.1). I font di default presenti sul PROX+G sono i seguenti: 1: Andale Mono, normale, dimensione 8 (font a spaziatura fissa) 2: Lucida Console, normale, dimensione 14 (font a spaziatura fissa ) 3: Arial, grassetto, dimensione 8 (font proporzionale) 4: Arial, grassetto, dimensione 10 (font proporzionale) 5: Haettenschweiler, normale, dimensione 28 (solo i caratteri “0”..”9” e “:”) I font di default presenti sul Trax+G sono i seguenti: 1: Andale Mono, normale, dimensione 7 (font a spaziatura fissa) 2: Andale Mono, normale, dimensione 8 (font a spaziatura fissa) 3: Arial, grassetto, dimensione 7 (font proporzionale) 4: Arial, grassetto, dimensione 9 (font proporzionale) 5: Haettenschweiler, normale, dimensione 24 (solo i caratteri “0”..”9” e “:”) I display grafici gestiscono i caratteri ASCII dal 032 al 128 e dal 192 al 255, che sono mappati (nel caso dei font di default) su una parte dell’insieme di caratteri “Windows Occidentale” secondo il seguente schema: In aggiunga alla tabella precedente sono definiti i seguenti caratteri (a larghezza proporzionale): 01 Freccia su 02 Freccia giù 03 Sinistra 04 Destra 06 ↵ Simbolo di invio BOOTLOADER E RIPROGRAMMAZIONE DEL FW 155 I font di caratteri utilizzabili su PROX+G e TRAX+G possono essere cambiati, e vengono definiti mediante un’utility chiamata “MakeFonts”. Chiedere a TMC per disponibilità e indicazioni. 8.2 Formattazione delle stringhe per display grafici All’interno delle stringhe di visualizzazione specificate nei “prompt” o nei comandi “%Smessaggio” o “@Dmessaggio”, è possibile utilizzare quattro speciali caratteri “comando” per gestire le caratteristiche specifiche dei display grafici. E’ possibile concatenare tutti i caratteri “comando” entro una stringa. La seguente tabella elenca gli speciali caratteri “comando” che sono riconosciuti da PROX+G e TRAX+G: Funzione SetFont SetCursor Carattere prefisso (18h) (40h) Formato {24}X @XX,XX oppure @XXX Valori validi per il parametro X 1..5 o A..E o L..R o {129}..{133} 00..99, 00..99 oppure 000..063 (Trax+G) o 000..127 (Prox+G) {24} “@” = {64} ClearLastChars ClearNChars {29} {28} (1Dh) (1Ch) {29} {28}XX 01..99 Nota: nei prompt (almeno per il campo di introduzione dati specificato dai caratteri “_”) è consigliabile utilizzare solo i font a spaziatura fissa (quindi non proporzionali), per evitare sovrapposizioni parziali dei caratteri digitati. SetFont - Carattere {24} (18h) Imposta il font corrente. Può essere presente più volte all’interno della stessa stringa per modificarne il font. I valori che può assumere il parametro sono i seguenti: 1..5 – Seleziona il tipo di font tra quelli sopra descritti al § 8.1. A..E – Seleziona il rispettivo numero di font (A corrisponde al font 1, B al font 2, ecc.) nel formato compresso: lo spazio tra un carattere e il successivo è di un pixel in meno rispetto alla spaziatura normale. NB: il font usato per default è il B, cioè il font 2 in formato compresso. L..R – Posizionano o allineano sul display la stringa che segue il carattere “comando”: L angolo in alto a sinistra M angolo in alto a destra N angolo in basso a sinistra O angolo in basso a destra P allinea a sinistra la stringa Q allinea a destra la stringa R centra la stringa L M N O P Q R {129}..{133} – Quando si desidera affiancare due scritte con font diversi in maniera tale che siano allineate lungo il bordo inferiore delle lettere (invece che secondo la posizione del cursore sulla griglia), si può usare, al posto del numero del secondo font utilizzato, il singolo carattere ASCII il cui valore si ottiene sommando 128 a tale numero. Esempi: {FF}{24}3Buongiorno..|{24}1Codice:____ “Buongiorno..” è visualizzato col font 3 a partire dall’angolo superiore sinistro del display e, sulla seconda linea, è visualizzato il prompt “Codice:____” col font 1. {FF}{24}3{24}MBuongiorno..|{24}1{24}RCodice:____ “Buongiorno..” è visualizzato col font 3 nell’angolo superiore destro del display e, sulla seconda linea, col font 1 è visualizzato il prompt “Codice:____”, allineato al centro del display. BOOTLOADER E RIPROGRAMMAZIONE DEL FW 156 {FF}{24}4Buongiorno..{24}{131}Codice:____ “Buongiorno..” è visualizzato col font 4 a partire dall’angolo superiore sinistro del display e sulla stessa linea, allineato lungo il bordo inferiore delle lettere, è visualizzato il prompt “Codice:____” col font 3 (3+128=131). SetCursor - Carattere “@” = {64} (40h) Posiziona il cursore sul display, il formato è del tipo “@<linea>,<colonna>” (in questo caso i parametri possono assumere valori nell’intervallo 00..99) oppure ”@<coordinata verticale>” (in questo caso il parametro può assumere valori nell’intervallo 000..063 sul TRAX+G e 000..127 sul PROX+G). Linee e colonne sono valori relativi essendo dimensionate in proporzione alle dimensioni del font corrente, mentre la coordinata verticale è un valore assoluto espresso in pixel. Esempi: @02,00Ciao La parola “Ciao” è visualizzata sulla terza riga del display. @032Ciao La parola “Ciao” è visualizzata dopo il 32esimo pixel a partire dall’alto. ClearLastChars - Carattere {29} (1Dh) Cancella l’eventuale testo precedente rimasto sulla linea, dalla posizione corrente del cursore fino alla fine della linea. Esempio: Ciao{29} Tutti i caratteri rimasti dopo la parola “Ciao” fino alla fine della linea sono cancellati. ClearNChars – Carattere {28} (1Ch) Cancella il numero di caratteri specificato, a partire dalla posizione corrente del cursore. Il formato è del tipo “{28}<numero di caratteri da cancellare>”. Il parametro può assumere valori nell’intervallo 01..99. Esempio: {28}06 Cancella i 6 caratteri successivi a destra della posizione corrente del cursore. 8.3 Visualizzazione di icone e immagini bitmap sui display grafici PROX+G e TRAX+G possono visualizzare immagini bitmap grazie al comando di shell BMP, descritto nel seguito. Può essere visualizzato un file .BMP standard di Windows (solo formato Bianco e Nero a 2 colori). Il file .BMP originario deve essere convertito nel formato .XBH (mediante l’utility XBHCONV.EXE) per poter essere caricato nel file system del terminale. E’ sufficiente invocare “XBHCONV nomefile.BMP 0000” dal prompt dei comandi del PC. Il file .BMP (o .XBH) può essere considerato come una singola immagine da visualizzare tutta in una volta (comando BMP con solo 3 parametri) o, in modo più versatile, come una collezione di diverse icone affiancate una all’altra, tutte delle stesse dimensioni, da visualizzare a richiesta una alla volta o a gruppi di due (comando BMP con 5 parametri). Riportiamo come esempi di bitmap contenenti icone multiple quelle incluse per default nel firmware di base dei terminali PROX+G (in alto) e TRAX+G (in basso): BOOTLOADER E RIPROGRAMMAZIONE DEL FW 157 Tutte le icone di una bitmap hanno la stessa altezza e larghezza e sono allineate orizzontalmente. Inoltre, la larghezza deve essere un multiplo intero di 8 (8, 16, 24, 32, ecc.). Negli esempi mostrati, la prima bitmap contiene 15 icone 32x32 (questo formato è ideale per illustrare i tasti funzione posti sul bordo destro del display del PROX+G, che ha 128 pixel in verticale e 240 pixel in orizzontale), la seconda contiene 15 icone 24x32 (queste icone sono più basse a causa delle “ridotte” dimensioni del display del TRAX+G, che ha 64 pixel in verticale e 128 pixel in orizzontale). 8.1.1 Il comando BMP Il comando BMP ha la seguente sintassi : BMP nomefile X Y [N SS] nomefile Nome del file .XBH contenente la bitmap da visualizzare. X Y Riferimenti alla posizione del display dove la bitmap sarà visualizzata: “0 0” è l’origine degli assi, posta nell’angolo in alto a sinistra; X=0..239, Y=0..127 N (Opzionale) Ordinale della porzione di bitmap estratta da un file che contiene diverse icone. La prima icona ha ordinale 0, e l’ordinale dipende dalla larghezza della porzione (parametro SS); se ad esempio si intende selezionare un’icona larga 64 situata dopo le prime due icone larghe 32, il suo ordinale sarà 1 invece di 2. Il valore massimo di N è limitato solo dalla dimensione della memoria disponibile nel file system. SS (Opzionale) Larghezza della porzione selezionata entro il file. Deve essere un multiplo intero di 8. Il valore massimo di SS può essere definito in 64, solo per ragioni di ordine pratico. Come per la maggior parte dei comandi di shell, la versione prefissata “@@BMP …” può essere utilizzata all’interno delle PROC. Esempio: BMP icons 0 0 2 32 Visualizza (nell’angolo superiore sinistro, “0 0”) la terza icona inclusa nel file “icons”, in cui ciascuna icona è larga 32 pixel. 8.1.2 Icone nell’applicazione di Rilevazione Presenze L’applicazione predefinita di Rilevazione Presenze di PROX+G e TRAX+G utilizza alcune icone. Se un file di nome “icons” (tutto minuscolo) è trovato nel file system (su qualsiasi drive), esso viene utilizzato al posto dell’insieme interno di icone di default mostrato al § 8.3. Il file “icons” deve essere organizzato come un insieme di icone 32x32 (24x32 nel caso del TRAX+G) e 32x64 (24x64 nel caso del TRAX+G), come nell’esempio al § 8.3. Deve essere largo 32x15=480 pixels (oppure 32 x il numero di icone) e alto 32 pixels (24 nel caso del TRAX+G). Le icone presenti nel file “icons” sono utilizzate nel come segue: Le prime due icone (posizioni 0 e 1) visualizzano la direzione corrente di accesso, nei modi 02-DirMode = 1, 2 e 3 (e modi 0, 6 quando applicabili). Le successive due icone larghe 64 (posizioni 2-3 e 4-5 in termini di icone larghe 32 e posizioni 1 e 2 in termini di icone larghe 64) sono poste nei due angoli inferiori nel modo 02-DirMode = 4. Le successive due icone larghe 64 (posizioni 6-7 e 8-9 in termini di icone larghe 32 e posizioni 3 e 4 in termini di icone larghe 64) sono poste nei due angoli inferiori nel modo 02-DirMode = 5. Solo per il PROX+G, le successive quattro icone 32x32 (posizioni 10, 11, 12, 13) sono poste verticalmente D ) è mostrata solo nei lungo il lato destro del display. La quarta (posizione 13, relativa al tasto funzione modi 02-DirMode = 1, 2, 3 a meno che non si aggiunga 128 al valore del parametro stesso, nel qual caso è mostrata sempre. BOOTLOADER E RIPROGRAMMAZIONE DEL FW 8.2 Mappa dei caratteri per display alfanumerici DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR 048 30 064 40 080 50 033 21 049 31 065 41 081 51 034 22 050 22 066 42 082 52 035 23 051 33 067 43 083 53 036 24 052 34 068 44 084 54 037 25 053 35 069 45 085 55 038 26 054 36 070 46 086 56 039 27 055 37 071 47 087 57 040 28 056 38 072 48 088 58 041 29 057 39 073 49 089 59 042 2A 058 3A 074 4A 090 5A 043 2B 059 3B 075 4B 091 5B 044 2C 060 3C 076 4C 092 5C 045 2D 061 3D 077 4D 093 5D 046 2E 062 3E 078 4E 094 5E 047 2F 063 3F 079 4F 095 5F 032 20 BLANK 158 BOOTLOADER E RIPROGRAMMAZIONE DEL FW DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR BLANK DEC HEX CHAR 176 B0 096 60 112 70 160 A0 097 61 113 71 161 A1 177 B1 098 62 114 72 162 A2 178 B2 099 63 115 73 163 A3 179 B3 100 64 116 74 164 A4 180 B4 101 65 117 75 165 A5 181 B5 102 66 118 76 166 A6 182 B6 103 67 119 77 167 A7 183 B7 104 68 120 78 168 A8 184 B8 105 69 121 79 169 A9 185 B9 106 6A 122 7A 170 AA 186 BA 107 6B 123 7B 171 AB 187 BB 108 6C 124 7C 172 AC 188 BC 109 6D 125 7D 173 AD 189 BD 110 6E 126 7E 174 AE 190 BE 111 6F 127 7F 175 AF 191 BF 159 BOOTLOADER E RIPROGRAMMAZIONE DEL FW DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR 192 C0 208 D0 224 E0 240 F0 193 C1 209 D1 225 E1 241 F1 194 C2 210 D2 226 E2 242 F2 195 C3 211 D3 227 E3 243 F3 196 C4 212 D4 228 E4 244 F4 197 C5 213 D5 229 E5 245 F5 198 C6 214 D6 230 E6 246 F6 199 C7 215 D7 231 E7 247 F7 200 C8 216 D8 232 E8 248 F8 201 C9 217 D9 233 E9 249 F9 202 CA 218 DA 234 EA 250 FA 203 CB 219 DB 235 EB 251 FB 204 CC 220 DC 236 EC 252 FC 205 CD 221 DD 237 ED 253 FD 206 CE 222 DE 238 EE 254 FE 207 CF 223 DF 239 EF 255 FF 8.2.1 Caratteri aggiuntivi standard ASCII 1: ↑ (Freccia su) ASCII 2: ↓ (Freccia giù) ASCII 3: ← (Freccia destra) ASCII 4: → (Freccia sinistra) ASCII 6: ↵ (Simbolo di invio) BLANK 160 APPENDICI 161 9 APPENDICI 9.1 Versioni speciali e funzioni opzionali del firmware Attenzione: la nomenclatura usata nel seguito per i files del firmware di base è valida in generale solo per le versioni 86 e successive. 9.1.1 Ricezione dei comandi di shell attraverso la porta Ethernet integrata (solo TRAX+F/G) Questa funzionalità è già abilitata nei terminali EtherTRAX+F/G aventi un codice prodotto (o part number, p/n) del tipo 927.x4x.xx, 928.x4x.xx o 929.x4x.xx, mentre negli altri TRAX+F/G può essere abilitata in qualsiasi momento inserendo l’apposita chiave di attivazione firmware FWK01_ETHERNET (cfr. § 3.3.8). 9.1.2 Modi “master” NET92 Queste funzionalità (vedi descrizione al § 5.2) sono già abilitate nei terminali PROX+F/G, mentre nei terminali TRAX+F/G possono essere abilitate in qualsiasi momento inserendo l’apposita chiave di attivazione firmware FWK02_MAXMASTER (cfr. § 3.3.8). 9.1.3 Interfaccia Ethernet integrata usata come “gateway implicito” Net92 (solo TRAX+F/G) Questa funzionalità (vedi descrizione al § 5.2) è già abilitata nei vecchi terminali #926 EtherTRAX+P ed in tutti i terminali TRAX+G prodotti a partire da ottobre 2004, mentre nei precedenti TRAX+F/G può essere abilitata in qualsiasi momento inserendo le apposite chiavi firmware FWK01_ETHERNET (non necessaria se il terminale ha già la porta Ethernet integrata abilitata alla ricezione dei comandi di shell, cfr. § 9.1.1) e FWK03_N92GATEWAY (cfr. § 3.3.8). 9.1.4 Transcodifica lettori “HID” con uscita in emulazione magnetica “Clock&Data” Questa funzionalità è già abilitata nei terminali TRAX+G e PROX+F/G con lettore HID integrato, aventi un p/n del tipo 929.xxx.16, 942.xxx.16 o 943.xxx.16, mentre negli altri TRAX+F/G o PROX+F/G (che comunque non includono il lettore HID) può essere abilitata in qualunque momento caricando la versione speciale “H” del firmware di base (940xHynn.xbh nel caso del PROX+F, 941xHGnn.xbh nel caso del PROX+G, 927xHynn.xbh nel caso del TRAX+F/G #927 o #928 e 929xHGnn.xbh nel caso di TRAX+G #929) e inserendo l’apposita chiave di attivazione firmware FWK04_HID (cfr. § 3.3.8). Supporta la transcodifica corretta (cioè estrae un codice coincidente col numero stampato sulla carta) dei seguenti formati di carte: HID 26 bit H10301 a 8 cifre (3+5), HID 37 bit H10304 (16 bit site code+19 bit key code) a 11 cifre (5+6), HID 34 bit H10306 a 10 cifre (5+5), HID 35 bit “Corporate 1000” a 11 cifre (4+7), HID 40 bit “Wiegand format” a 9 cifre (4+5), HID 36 bit (12 bit site code+20 bit key code) a 11 cifre (4+7), HID 37 bit H10302 (35 bit key code) a 11 cifre (solo se il bit 6 del par. 40-BadgeTk è impostato ad ‘1’), HID 36 bit (8 bit site code + 24 bit key code) a 11 cifre (3+8, solo se il bit 7 del par. 40-BadgeTk è impostato ad ‘1’). Vedi anche le note (*) nella descrizione dei parametri 42 e 43 al § 5.6.1. Nel caso in cui il terminale sia configurato come “master” NET92 (cfr. § 5.2), inoltre, supporta la corretta transcodifica delle transazioni provenienti dai terminali slave provvisti di lettori “HID” con uscita “Clock&Data”. N.B. Il formato HID 37 bit “Clock&Data” H10320 a 8 cifre non richiede il caricamento della versione speciale “H” del firmware (né l’inserimento della chiave di attivazione) per essere correttamente decodificato. 9.1.5 Gestione lettori con uscita “Wiegand” Questa funzionalità può essere abilitata in qualunque momento caricando la versione speciale “W” del firmware di base (940xWynn.xbh nel caso del PROX+F, 941xWGnn.xbh nel caso del PROX+G, 927xHynn.xbh nel caso del TRAX+F/G #927 o #928 e 929xWGnn.xbh nel caso di TRAX+G #929) e inserendo l’apposita chiave di attivazione firmware FWK05_WIEGAND (cfr. § 3.3.8). E’ poi necessario un cavetto adattatore di standard elettrico TMC #500.940.31 per poter collegare l’uscita “Wiegand” del lettore al connettore strip del terminale in emulazione magnetica (“Clock&Data”). APPENDICI 162 Supporta la transcodifica corretta (cioè estrae un codice coincidente col numero stampato sulla carta) dei seguenti formati di carte: “Wiegand” standard (e HID H10301) a 26 bit, “Indala” 27 bit e HID 37 bit “Facility Code & Card Number” H10304. Vedi anche le note (*) nella descrizione dei parametri 42 e 43 al § 5.6.1. 9.1.6 Doppio lettore magnetico (o di prossimità) Questa funzionalità può essere abilitata in qualunque momento caricando la versione speciale “2” del firmware di base (940x2ynn.xbh nel caso del PROX+F, 941x2Gnn.xbh nel caso del PROX+G, 927x2ynn.xbh nel caso del TRAX+F/G #927 o #928 e 929x2Gnn.xbh nel caso di TRAX+G #929). 9.1.7 Gestione di un modem GSM Questa funzionalità è già abilitata nei terminali TRAX+G/GSM aventi un p/n del tipo 928.x7x.xx o 929.x7x.xx, mentre negli altri TRAX+F/G o PROX+F/G (che comunque non includono il modem GSM) può essere abilitata in qualsiasi momento caricando la versione speciale “G” del firmware di base (940Gxynn.xbh nel caso del PROX+F, 941GxGnn.xbh nel caso del PROX+G, 927Gxynn.xbh nel caso del TRAX+F/G #927 o #928 e 929GxGnn.xbh nel caso di TRAX+G #929) e inserendo l’apposita chiave di attivazione firmware FWK07_GSM (cfr. § 3.3.8). Vedi il successivo § 9.2 per dettagli sull’utilizzo dei terminali abilitati a gestire un modem GSM. 9.1.8 Gestione lettori RFID 13.56MHz R&W (Read and Write) Questa funzionalità è già abilitata nei terminali TRAX+G e PROX+F/G con lettore RFID 13.56MHz R&W integrato aventi un p/n del tipo 929.xxx.14, 942.xxx.14 o 943.xxx.14, mentre negli altri TRAX+F/G o PROX+F/G (che comunque non includono il lettore 13.56MHz R&W, p/n 904.xxx.14) può essere abilitata in qualunque momento caricando la versione speciale “M” del firmware di base (940xMynn.xbh nel caso del PROX+F, 941xMGyy.xbh nel caso del PROX+G, 927xMynn.xbh nel caso del TRAX+F/G #927 o #928 e 929xMGnn.xbh nel caso di TRAX+G #929). Come comunicare con il lettore Nei terminali equipaggiati con RFID 13.56MHz R&W il lettore risulta collegato internamente alla porta COM3. Quindi, per inviare i comandi al lettore, una volta impostato “CFG 00 3”, è sufficiente usare il comando “%Pmessaggio” (NB: nel caso in cui la stringa messaggio preveda la presenza di un carattere terminatore {CR}=chr(13), al suo posto deve essere usato il carattere blank {255}, che verrà poi automaticamente convertito in {CR}). Non ci sono altri parametri di comunicazione da configurare. Le risposte o i messaggi ricevuti dal lettore possono invece essere trattati in tre modi diversi: 1. 2. 3. Se il bit 7 (+128) del parametro 40-BadgeTk è impostato a ‘1’, tutti i messaggi ricevuti dal lettore vengono inviati all’host computer sul canale online corrente. Altrimenti, se è installato un programma in ‘C’ che ha impostato COM3TPAGE, questo riceverà gli eventi COM3_MSG e COM3_TXD . Altrimenti, se in foreground c’è un prompt con flag ‘B’ in attesa, questo riceverà il messaggio come lettura di una carta. Se nessuna di queste eventualità si verifica i messaggi provenienti dal lettore vengono ignorati. Il manuale del lettore RFID 13.56MHz descrive tutti i comandi che possono essere inviati, i messaggi ricevuti, e le possibilità di configurazione e autoread. Tutti i lettori RFID 13.56MHz escono dalla produzione impostati per l’autoread degli UID di tutti i tag ISO14443A&B e ISO15693, con decodifica 4-to-10 (“4 Bytes to 10 decimal digits”). Se in seguito il lettore di un terminale viene configurato diversamente, comunque i comandi “%%…” non ne resettano la configurazione. 9.2 Uso dei terminali con FW per la gestione di un modem GSM Attenzione: i terminali TRAX+G/GSM con modem integrato e i modem GSM esterni vengono forniti sprovvisti di SIM card: esse vanno acquistate separatamente seguendo i consigli riportati al §9.2.7. In generale, comunque, le chiamate da modem GSM verso modem GSM sono molto più affidabili e meno costose di quelle da linea fissa verso modem GSM. Si sconsiglia vivamente, pertanto, di utilizzare un modem chiamante analogico o ISDN (in particolare). APPENDICI 163 9.2.1 TRAX+G/GSM Sono disponibili delle versioni di TRAX+G già provviste di modem GSM integrato e già abilitate a gestirlo: tali versioni sono riconoscibili dal p/n, che è del tipo 928.x7x.xx o 929.x7x.xx. TRAX+G/GSM viene consegnato con le 4 viti posteriori non avvitate, per facilitare l’operazione di inserimento della SIM Card nel modem GSM, che è montato su una speciale versione “estesa” della scheda di I/O (già vista al §2.2 in figura 1d nella sua versione standard). Facendo riferimento alla seguente figura 1, è sufficiente aprire il terminale separando le due metà dell’involucro, premere a fondo il pulsante di rilascio dello sportellino, estrarlo, alloggiarvi la SIM card e reinserirlo fino al blocco, infine richiudere l’involucro utilizzando le viti in dotazione. Modem GSM Antenna GSM Sportellino estraibile per alloggiamento SIM card Pulsante di rilascio sportellino RUF: Riservato ad Uso Futuro (da lasciare scollegato) Re Re In- In+ RUF RUF RUF Gnd D D- Vdc Gnd Figura 1: Scheda di I/O estesa del TRAX+G/GSM e morsettiera a vite In Figura 1 sono anche mostrati i collegamenti sulla morsettiera a vite. Rispetto alla versione standard del TRAX+G, si può notare come non siano in questo caso disponibili i morsetti normalmente destinati alla porta seriale COM1-RS232 (o, in alternativa, all’input ausiliario IN2): tali morsetti, qui indicati con “RUF”, devono essere lasciati scollegati. Riportiamo di seguito l’elenco delle caratteristiche tecniche del TRAX+G/GSM, che differiscono in parte da quelle della versione standard descritte al §1.2.1 (si notino in particolare il diverso range di tensione di alimentazione e la maggiore corrente assorbita): APPENDICI 164 Tastiera: Display retroilluminato: Lettore integrato: a membrana, numerica+ABC/funzionale a 20 tasti grafico 128x64 pixel nessuno, oppure magnetico, barcode I.R. o di prossimità: 125KHz, 64 bit sola lettura H4102 compatibile; oppure ISO1443/A Mifare; oppure ISO15693 LEGIC. Decoder Magnetico: traccia 2 ISO Decoder Barcode: autodiscriminante. EAN 8,EAN 13, UPC, 2/5 Interleaved, max 255 elementi (barre+spazi) Code 39 max 23 caratteri Buzzer: piezoelettrico mono-tono Batteria di backup: NMh ricaricabile, autonomia di 2 ore (frazionabili) senza chiamate GSM, 1 ora con una chiamata GSM da 3 minuti e 5 SMS _____________________________________________________________________________ GSM: Modem GSM dual band (900 / 1880 MHz) integrato per comunicazioni dati a 9600 Baud e SMS. Antenna interna. NET92: RS485, 9600, 19200, o 57600 Bps, protocollo NET92, slave o master. Ethernet: Ethernet 10 Base-T su connettore RJ45, protocollo UDP Lettore ausiliario: Connettore RJ11 per lettore barcode esterno, pin-strip 5 pin per secondo lettore magnetico _____________________________________________________________________________ RAM: 128 Kb (#927), 512Kb (#929) Input digitali: 1, optoisolato Output digitali: 1 Relè N.A. o N.C. Tensione di alimentazione: 9 - 18 Vdc Corrente assorbita: Assorbimento medio con modem GSM in trasmissione: 500 mA, con picchi da 1,8A. Invio SMS: 200mA. Si consiglia di utilizzare alimentatori da almeno 1A. Temperatura di funzionamento: da -5 a 50 ºC Temperatura di magazzinaggio: da -25 a 50 ºC Umidità: da 0 a 100% (no barcode) Dimensioni (L x H x P)(mm): 130x200x100 Massa: 760g 9.2.2 Collegare un modem GSM esterno E’ possibile collegare un modem GSM esterno alla porta COM1 di un qualunque PROX+F/G o TRAX+F/G che sia stato preventivamente abilitato a gestirlo (cfr. §9.1.7). Per dettagli relativi a questa connessione si può fare riferimento al §2.4.11, relativamente al collegamento per handshake software. Si ottiene in questo modo un funzionamento equivalente a quello del TRAX+G/GSM: l’unica differenza è che il valore del parametro 10-COM1HSK necessario per una corretta comunicazione col modem GSM è 16, invece di quello impostato per default sulle versioni standard (36). Poiché il semplice caricamento della versione speciale “G” del firmware non ha come effetto la modifica dei parametri di configurazione, occorre impostare tale valore manualmente come descritto al §3.3.3, oppure effettuare un reset dei parametri (cfr. §3.3.4): il nuovo firmware provvederà ad impostare ‘16’ come nuovo valore di default. 9.2.3 Accensione del terminale Quanto spiegato per le versioni standard del firmware dei terminali è valido anche per le versioni speciali GSM. C’è però un passo da aggiungere nel caso in cui il terminale venga spento e riacceso da tastiera (cfr. §3.1) o in seguito ad una breve pressione del pulsante di reset, cfr. §2.8 (mentre tutto resta invariato in caso di “prima accensione”, cfr. §3.2, o “restart” provocato dall’invio del comando “%%”): immediatamente dopo avere mostrato la schermata iniziale (cfr.§3.2.1) Prox rB80_G by TMC A 254 Il terminale verifica prima di tutto che la funzionalità GSM sia stata abilitata inserendo l’apposita chiave di attivazione firmware FWK07_GSM (cfr. §3.3.8, ricordiamo che questa funzionalità è sempre abilitata nei terminali TRAX+G/GSM aventi un p/n del tipo 928.x7.xx o 929.x7.xx): in caso negativo il terminale mostrerà il messaggio GSM disabled. APPENDICI 165 per poi passare all’applicazione impostata come default, normalmente quella di rilevazione presenze (cfr. §3.5); in caso positivo, invece, il terminale prosegue effettuando un test del modem GSM, e mostrando il messaggio: GSM check.. Se il modem GSM non è collegato correttamente o è malfunzionante, oppure i parametri di comunicazione della porta seriale COM1 utilizzata non sono impostati ai valori corretti (vedi §9.2.7), il seguente messaggio viene mostrato per circa un secondo: No GSM Se invece c’è comunicazione col modem, viene emesso un beep e mostrato uno tra i seguenti messaggi, dipendentemente dallo stato della SIM card e dalla configurazione del terminale: • La SIM card richiede il PIN ma il terminale non è configurato per l’invio automatico Se la SIM card inserita nel modem GSM richiede il codice PIN, ma il terminale non è stato precedentemente configurato per inviarlo automaticamente ad ogni accensione, viene mostrato il seguente messaggio: Wrong PIN Dovete allora configurare il terminale come spiegato al §9.2.5, abilitando l’invio automatico del codice PIN. • PIN errato inviato ad una SIM card che lo richiede Se il terminale è stato precedentemente configurato per inviare ad ogni accensione un codice PIN di 4 cifre alla SIM card inserita nel modem GSM, che però se ne aspetta uno diverso, viene mostrato il seguente messaggio: Wrong PIN In questo caso l’invio automatico del PIN ad ogni accensione viene immediatamente disabilitato per evitare il blocco della SIM card, che si verifica al terzo invio consecutivo di un codice PIN errato. Questa situazione si verifica solo quando si sostituisce una SIM card con un’altra senza cambiare il PIN impostato tramite il menu di configurazione, oppure quando ci si sbaglia a digitarlo: occorre allora ripetere l’operazione descritta al §9.2.5, avendo cura di digitare il PIN corretto. • SIM card non presente o bloccata Se non è stata inserita una SIM card nel modem GSM o la SIM card inserita risulta bloccata e richiede il codice PUK (ciò si verifica quando un codice PIN errato viene inviato alla SIM card per 3 volte consecutive), allora il display mostra: Error: PUK/SIM NB: Per sbloccare una SIM card che richiede il codice PUK è necessario inserirla in un telefono cellulare e digitare: **05*codicePUK*nuovoPIN*nuovoPIN# Il codice PUK viene fornito assieme alla SIM card. Conservatelo con cura e tenetelo pronto in caso vi sia necessario. APPENDICI 166 Subito dopo il messaggio di errore il terminale visualizza comunque alcune informazioni circa il segnale GSM e lo stato del modem: +CSQ: 99,99 +CREG: 0,0 S0=0 Il significato di questo messaggio è spiegato nel seguente paragrafo §9.2.4. • SIM card abilitata Se la SIM card inserita non richiede il codice PIN o il terminale è già stato configurato per inviarle il PIN corretto, il terminale visualizza alcune informazioni circa il segnale GSM e lo stato del modem: +CSQ: 99,99 +CREG: 0,2 S0=0 Il significato di questo messaggio è spiegato nel seguente paragrafo §9.2.4. Dopo il test del modem GSM, qualunque sia l’esito, il terminale passa all’applicazione impostata come default, normalmente quella di rilevazione presenze (cfr. §3.5). 9.2.4 Test del modem GSM F Come spiegato al §3.3 relativamente alle versioni standard del firmware, se si preme il tasto seguito, 0 , il terminale normalmente richiede una password per poter entrare nel entro 4 secondi, dal tasto menu supervisore di gestione del terminale. In caso di versione speciale GSM, prima di passare alla richiesta password il terminale verifica che la funzionalità GSM sia stata abilitata inserendo l’apposita chiave di attivazione firmware FWK07_GSM (cfr. §3.3.8, ricordiamo che questa funzionalità è sempre abilitata nei terminali TRAX+G/GSM aventi un p/n del tipo 927.x7.xx o 928.x7.xx): in caso negativo il terminale mostrerà il messaggio GSM disabled. per poi passare alla richiesta password; in caso positivo, invece, il terminale prosegue controllando lo stato del modem GSM in maniera analoga al test eseguito all’accensione (cfr. §9.2.3), ma in questo caso la SIM card non viene testata, per cui ci sono solo due possibili messaggi visualizzabili dopo l’usuale schermata: GSM • check.. Modem GSM non collegato correttamente o malfunzionante Se il modem GSM non è collegato correttamente o è malfunzionante, oppure i parametri di comunicazione della porta seriale COM1 utilizzata non sono impostati ai valori corretti (vedi §9.2.7) non viene emesso alcun suono, e per circa un secondo sul display viene visualizzato: No • GSM Modem GSM attivo In questo caso il terminale emette un beep e visualizza le seguenti informazioni (i valori riportati sono mostrati solo come esempio e possono differire da quelli del caso reale): APPENDICI +CSQ: 31,0 +CREG: 0,1 167 S0=1 Nella prima linea, la parte indicata con +CSQ (Signal Quality), riporta sia l’intensità del segnale GSM che il suo tasso di errore. Sempre nella prima linea, S0 rappresenta l’impostazione attuale della risposta automatica (Auto Answer): indica dopo quanti squilli il modem risponde ad una chiamata in arrivo (il valore ‘0’ significa “risposta automatica disabilitata”). Nella seconda linea, +CREG (Registrazione) indica lo stato della registrazione del terminale alla rete GSM. Nella tavola seguente queste informazioni sono spiegate in dettaglio: +CSQ: nn,e - QUALITA’ DEL SEGNALE nn – intensità del segnale +CREG: 0,r - REGISTRAZIONE ALLA RETE GSM e – tasso di errore 99 Non misurabile o non ancora misurata 99 Dato non disponibile 0 Impossibile registrarsi alla rete (controllare intensità del segnale, stato SIM e relativo PIN nel test all’accensione) 31 -51dBm o maggiore (massima intensità del segnale) >3 Qualità troppo scarsa per comunicare 1 Registrato alla rete dell’operatore che ha fornito la SIM 2 Ricerca rete – Di solito è visualizzato all’accensione 1.. 31 L’intensità del segnale vale (-113+2*nn)dBm 3 Registrazione vietata Segnale troppo debole per comunicare 0 <9 Ottima qualità del segnale 5 Registrato in roaming (alla rete di un altro operatore) S0 = s - Numero di squilli per la risposta automatica (se s=0 la risposta automatica è disabilitata) Dopo che il risultato del test del modem GSM è stato visualizzato per circa un secondo, il terminale richiede il codice operatore per entrare nel menu di gestione: CODICE OPERATORE:_____ In questo stato, si può forzare la ripetizione del test del modem GSM premento il tasto entra/esce . 9.2.5 Configurazione del modem GSM Una volta entrati nel menu di gestione del terminale (passando necessariamente attraverso il test del modem GSM descritto nel §9.2.4) dovete selezionare l’opzione “Modem setup”, già descritta nel §3.3.7 ma qui presente in una versione modificata per gestire opportunamente il modem GSM ed il codice PIN che potrebbe essere richiesto dalla SIM card in uso: COMANDI: Modem setup Premendo si entra nell’opzione “Modem setup” e viene visualizzata la richiesta di attivazione dell’invio automatico del PIN all’accensione: PIN Enabled? [A]=Yes A Premendo qualunque tasto diverso da si disabilita (o non si abilita, se ancora non lo si era fatto) l’invio automatico del codice PIN ad ogni accensione o ripartenza comandata dalla tastiera del terminale, e si salta al passo successivo. APPENDICI 168 A il terminale chiederà di digitare il codice PIN che si vuole venga inviato alla SIM Premendo invece card (l’inserimento è mascherato): GSM SIM Card PIN:____ Digitate il codice PIN e premete . Attenzione: Assicuratevi di inserire il codice PIN corretto, poiché esso verrà subito trasmesso alla SIM card una volta completata l’operazione di modem setup. Dopo il terzo invio consecutivo di un codice PIN errato la SIM card si blocca, e per sbloccarla la si deve inserire in un telefono cellulare e digitare il codice PUK come spiegato nel §9.2.3. Dopo il codice PIN il terminale richiede l’impostazione della risposta automatica e di un parametro chiamato “CBST”, utilizzato per configurare opportunamente il modem in base alle caratteristiche della linea telefonica usata per effettuare le chiamate: Risp.squilli n:_ CBST[0-6]:1 E’ sufficiente premere il tasto numerico corrispondente al numero di squilli che il modem GSM deve 0 per disabilitare la risposta attendere prima di rispondere ad una chiamata in arrivo. Premete automatica: il modem non risponderà più a nessuna chiamata in arrivo (ciò può essere utile, ad esempio, per eseguire un’azione a fronte della ricezione di un semplice “squillo” da uno o più numeri conosciuti). Subito dopo l’inserimento del numero di squilli il cursore si sposta sul valore del parametro CBST suggerito per default, che è sempre ‘1’ (non si tratta necessariamente, si noti, del valore attualmente impostato sul modem). Per confermare è sufficiente premere , se invece desiderate impostare un valore diverso premete il tasto numerico corrispondente (in questo caso non viene chiesta conferma). Attenzione: Impostate un valore di CBST diverso da ‘1’ solo se state usando una linea telefonica fissa per effettuare le chiamate, e se avete precedentemente riscontrato problemi di comunicazione con il valore di default. In realtà il registro CBST del modem è formato da 3 parametri: la corrispondenza fra il valore impostato in “Modem setup”, i valori effettivi inviati al modem e le caratteristiche della linea telefonica fissa utilizzata per effettuare la chiamata è descritta dalla seguente tabella: CBST[0-6]: n - IMPOSTAZIONE DELLA LINEA TELEFONICA FISSA CHIAMANTE n – valore impostato Comando inviato Caratteristiche della linea telefonica fissa chiamante Autobaud fisso (consigliato) 0 .. 3 CBST = 0, 0, n n=0 Trasparente (alcune linee digitali ISDN o analogiche su NT1plus) n=1 Non trasparente (la maggior parte delle linee analogiche standard) n=2 Trasparente privilegiata n=3 Non trasparente privilegiata 4 CBST = 7, 0, 1 Analogica non trasparente a 9600 baud 5 CBST = 71, 0, 0 Digitale trasparente a 9600 baud 6 CBST = 75, 0, 0 Digitale trasparente a 14400 baud (attualmente non utilizzata) Una volta selezionato il valore CBST, i comandi relativi alle impostazioni fatte e il codice PIN (se abilitato) vengono inviati al modem GSM ed alla SIM card in esso inserita: Modem setting... APPENDICI 169 Infine viene rieseguito il test del modem GSM che ha luogo all’accensione (descritto nel §9.2.3): GSM check.. Come spiegato in tale paragrafo, se è stato introdotto un PIN diverso da quello che la SIM card si aspetta, l’invio automatico del PIN ad ogni accensione viene immediatamente disabilitato per evitare il blocco della SIM card, che si verifica al terzo invio consecutivo di un codice PIN errato. Solo nel caso di PIN corretto la trasmissione automatica all’accensione diverrà effettiva ed il codice PIN inserito sarà mantenuto anche in seguito ad un ripristino dei parametri. Per cambiare il codice PIN sarà necessario utilizzare ancora l’opzione “Modem setup”. 9.2.6 Invio e ricezione di brevi messaggi di testo (SMS) Il modem GSM riconosce i comandi AT standard più un set esteso per gli SMS e la gestione della carta SIM. Ad esempio, per ricevere il valore del registro S0 (numero di squilli per la risposta automatica) il comando è “ATS0?”, come per qualunque modem compatibile con lo standard Hayes. E’ possibile ottenere informazioni relative alla configurazione del modem e alle chiamate in entrata (per esempio il numero e le caratteristiche della linea telefonica da cui provengono), attivare determinati eventi alla ricezione di una chiamata e anche spedire e ricevere SMS, inviando gli opportuni comandi direttamente al modem GSM. Per fare questo è necessario configurare temporaneamente il parametro 00-Printer a ‘1’ (occorre poi riportarlo al valore di default ‘0’ se si vuole in seguito aprire una normale sessione di comunicazione) e collegare il terminale ad un PC attraverso la porta NET92 (oppure, in caso di PROX+F/G, anche attraverso la COM2), così che si possa utilizzare il comando %P per inviare messaggi al modem GSM, che è sempre connesso (internamente o esternamente) alla porta COM1 del terminale. Continuando con l’esempio precedente, per ricevere il numero di squilli per la risposta automatica al terminale si dovrebbe quindi inviare “%PATS0?“. E’ anche possibile usare la variante @%P comodamente all’interno di una PROC, in modo tale che il terminale sia in grado di gestire gli SMS autonomamente. Per controllare le risposte inviate dal modem GSM (sempre alla porta COM1), occorre poi impostare opportunamente il parametro 13-COM1In: al valore ‘5’ nel caso di comunicazione diretta col modem da shell comandi, così che i messaggi inviati alla COM1 vengano rediretti sul canale online corrente, permettendo quindi di riceverli dal PC; al valore ‘1’ in caso di PROC, così che vengano registrati nel file COM1DAT per una successiva consultazione nel prosieguo della PROC. Anche questo parametro deve poi essere riportato al valore di default ‘0’ se si vuole in seguito aprire una normale sessione di comunicazione. La soluzione più flessibile per gestire contemporaneamente chiamate e SMS in entrata è quella che si ottiene impostando il par.13 a ‘6’: con questo valore ogni volta che si riceve una chiamata o un SMS viene eseguita la PROC_L (se presente), e all’interno di questa PROC si controlla se si tratta di una chiamata (nel qual caso si può decidere se verificare il numero di provenienza ed eventualmente non rispondere, oppure se reimpostare il par. 13 a ‘0’ in attesa della risposta automatica del modem) o di un SMS (nel qual caso si imposta il par.13 a ‘1’ e si prosegue con la lettura del messaggio). Alla fine sarà necessario reimpostare il par.13 a ‘6’, direttamente da shell comandi nel primo caso e all’interno della PROC nel secondo. Sono disponibili svariate procedure di esempio per la gestione degli SMS e molte altre applicazioni, tutte commentate. Scaricate il file “Demo_Procedures.zip” dalla sezione “Utility & SW” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). 9.2.7 Domande ricorrenti (FAQ) D: Quale tipo di SIM Card è meglio usare, e di quale operatore? R: Qualunque operatore va bene, cosi’ come ogni tipo di contratto (prepagato, abbonamento): l’importante è chiedere espressamente che la SIM card sia abilitata alla trasmissione dati. In caso di SIM di tipo “Machine to Machine” (M2M), poiché non è possibile effettuare chiamare da linea fissa, ma è necessario utilizzare un modem GSM anche per le chiamate in uscita, ricordatevi di chiedere un’ulteriore SIM card. In generale, comunque, le chiamate da modem GSM verso modem GSM sono molto più affidabili e meno costose di quelle da linea fissa verso modem GSM. Si sconsiglia vivamente, pertanto, di utilizzare un modem chiamante analogico o ISDN (in particolare). D: l test del modem GSM, sia all’accensione che quando accedo al menu supervisore, ritornano sempre “No GSM”. Cosa posso fare? R: Controllate che sia rispettata la seguente check list: APPENDICI 170 Controllate che i seguenti parametri siano impostati ai rispettivi valori di default: 00-Printer=0, 11COM1Baud=4, 13-COM1In=0 Inoltre, solo in caso di TRAX+G/GSM: - Controllate che i morsetti a vite normalmente destinati alla porta seriale COM1-RS232, indicati in Figura 1 con “RUF”, siano scollegati - Controllate l’alimentatore: deve essere in grado di erogare almeno 1A a 9..18 Vdc - D: Il modem GSM è registrato alla rete dell’operatore prescelto (+CREG=0,1) ma non risponde alle chiamate in arrivo. Perché? R: Il parametro S0 deve essere diverso da 0 per abilitare la risposta automatica. Per cambiare S0 eseguite l’opzione “Modem setup” nel menu supervisore e impostate “Risp.squilli n:_” ad un valore diverso da 0. D: A che baud rate devo configurare il modem chiamante? R: Configurate il modem chiamante a 9600 baud fissi. D: Il modem GSM risponde alle chiamate in arrivo ma non accade nulla: non viene fatto l’handshake iniziale, non si sente nulla. Perché? R: Se state usando una SIM card convenzionale avete probabilmente chiamato il numero “voce”. Per effettuare chiamate di tipo “dati” si deve usare un numero specifico, diverso da quello utilizzato per le chiamate vocali. Contattate l’operatore che vi ha fornito la SIM card che state utilizzando, e verificate se la vostra SIM sia abilitata o meno alla comunicazione dati, e quale numero dovete comporre dal modem chiamante. Di solito vengono assegnati 3 diversi numeri alla stessa SIM card: uno per le chiamate vocali, uno per i fax ed uno per le comunicazioni dati (usate sempre quest’ultimo). Se invece state usando una SIM specifica per dati, del tipo “Machine to Machine” (M2M), ricordatevi che è necessario utilizzare un modem GSM anche per le chiamate in uscita, preferibilmente inserendovi una SIM dello stesso operatore e dello stesso tipo. D: Riesco a connettermi, ma dopo avere ricevuto “CONNECT 9600”, il terminale non risponde ai comandi. Cosa posso fare? R: Controllate che i seguenti parametri siano impostati ai rispettivi valori di default: 00-Printer=0, 11COM1Baud=4, 13-COM1In=0. Assicuratevi inoltre che il terminale non si trovi nel menu supervisore. D: E’ possibile collegare il terminale ad un PC anche attraverso la porta NET92 (o la COM2 in caso di PROX+F/G)? R: Sì, e anche quando è collegato al PC in NET92 il terminale può ricevere delle chiamate. Le connessioni sono le stesse viste per le versioni standard del terminale. E’ inoltre possibile usare la porta NET92 per gestire dei terminali slave in modalità “master” NET92 (cfr. §9.1.2). 9.3 Badge barcode e magnetici 9.3.1 Consigli per la realizzazione dei badge barcode I lettori possono essere utilizzati per leggere codici a barre stampati su carte rigide laminate o non laminate. I lettori barcode possono non leggere badge barcode che non siano conformi alle appropriate specifiche AIM per le simbologie dei codici a barre e alle linee guida AIM riguardanti i badge barcode. Durante la progettazione dei badge barcode è bene considerare i fattori esposti nel seguito. I lettori accettano badge con uno spessore complessivo di 0.8 mm, inclusa l’eventuale laminazione. I badge piu‘ spessi di 0.9 mm saranno difficoltosi da strisciare nel lettore, con conseguente riduzione e non uniformita‘ della velocita‘ di scansione e in definitiva causeranno una riduzione delle prestazioni. Lo spessore della laminazione è importante per due motivi. Prima di tutto, la laminazione naturalmente contribuisce ad aumentare lo spessore del badge. In secondo luogo, una laminazione che utilizza una lamina spessa causa una distorsione ottica dell’immagine del codice a barre che può degradare le prestazioni della lettura. APPENDICI 171 È bene utilizzare lamine di spessore inferiore a 0.4 mm e con indice di rifrazione inferiore a 1.55. Possono essere utilizzate lamine trasparenti oppure lamine di sicurezza nere o rosse; le loro caratteristiche trasmissive devono comunque essere compatibili con la lunghezza d’onda illuminante (VLD o IR). La differenza minima di riflessione (MRD) accettabile è 37% (dopo l’eventuale laminazione). L’inclinazione del barcode non deve superare il 3%. Il barcode deve essere preceduto e seguito da una zona bianca di “silenzio” di almeno 15 mm. Le figure seguenti illustrano come posizionare le varie informazioni presenti su un badge barcode: FINESTRA DI L ETTURA DEL LA TESTINA OTTICA 4 8 15 UN BARCODE OK DEVE SOVRAPPORSI ABBONDANTEMENTE ALL A FINESTRA DI LETTURA (3 m m IN ALTO E 3 IN BASSO). LASCIARE SPAZI BIANCHI DI 15 m m DAL BORDO DEL BADGE 15 *1234567890* *1234567890* IL LIMITE INFERIORE DI FOTOGRAFIE, SIMBOLI E DICITURE DEVE ESSERE AD ALMENO 25 mm DAL BORDO INFERIORE DEL BADGE *1234567890* 25 9.3.2 Utilizzo dei lettori barcode alla luce solare È bene non montare i lettori e in generale le apparecchiature elettroniche alla luce diretta del sole; i raggi del sole diretti nella fessura del lettore rendono impossibile la decodifica del codice a barre. I raggi diretti inoltre possono far salire la temperatura di funzionamento del sistema oltre i limiti accettabili. APPENDICI 172 9.3.3 Manutenzione dei lettori ottici Benchè non sia necessaria una manutenzione specifica, un controllo periodico contribuira‘ a garantire letture affidabili. La finestra di lettura deve essere tenuta pulita per assicurare prestazioni di lettura ottimali. La finestra deve essere pulita qualora le prestazioni del lettore dovessero degradare o la finestra risultasse visibilmente sporca; si raccomanda quindi di eseguire le seguenti operazioni: 1) 2) Spegnete il terminale connesso al lettore Avvolgete una sottile pezzuola di cotone senza pelucchi intorno ad un badge inutilizzato, prestando attenzione a non superare il massimo spessore accettabile; imbevete la pezzuola con un prodotto per la pulizia dei vetri privo di ammoniaca Strofinate delicatamente il badge avvolto dalla pezzuola avanti e indietro nella fessura del lettore Asciugate la superficie della finestra con aria compressa priva di olii, preferibilmente con aria compressa in barattolo, oppure strofinate la superficie delicatamente con una pezzuola di cotone senza pelucchi. 3) 3) 9.3.4 Manutenzione dei lettori magnetici Il buon funzionamento di un terminale dotato di lettore di badge magnetici dipende in larga misura dalle condizioni della testina magnetica. Se ne consiglia la pulizia almeno ogni 3000 letture o comunque una volta al mese. Utilizzare Carte di Pulizia TMC codice CCL 142 - Confezioni da 50 pezzi. 9.4 I programmi di supporto TMCDLLDEMO è l’utility principale per gestire in maniera interattiva I terminali connessi in RS232-TTY (anche via modem), RS485-Net92 o Ethernet/IP (mediante EtherLite). Gira su tutte le versioni di Windows da Win95 in poi. Questo programma mostra l’utilizzo delle librerie PROXC.DLL (e se volete delle NET92C.DLL). Per ogni funzione di libreria è disponibile un pulsante, così come caselle di testo o checkbox per ogni argomento da passare alla funzione. E’ anche possibile effettuare ricezione ed invio di file (anche in formato .SRC), caricamento di applicazioni utente sviluppate in “C” e aggiornamento del firmware. Questo programma è stato scritto per aiutare gli sviluppatori di software a capire meglio le operazioni da effettuare coi terminali, ma è stato migliorato per semplificare anche i processi di test e configurazione. TMCDLLDEMO, NET92C.DLL e PROXC.DLL (le librerie devono essere scaricate separatamente) possono essere scaricati dalla sezione “Utility & SW” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). CTW32 è un programma simile a TMCDLLDEMO come modalità di funzionamento immediato, ma manca di tutte le estensioni per trasferimento file. Serve solo per verificare il funzionamento delle comnicazioni, dei terminali, e per fare configurazione dei parametri dei terminali in modo manuale. Gira su tutte le versioni di Windows da Win95 in poi. Supporta solo le comunicazioni via RS485-Net92 o RS232-TTY. CTW32 può essere scaricato dalla sezione “Utility & SW” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). ETHERTEST32 è un programma simile a CTW32 ma supporta solo le comunicazioni via Ethernet/IP. Gira su tutte le versioni di Windows da Win95 in poi. ETHERTEST32 può essere scaricato dalla sezione “Utility & SW” all’interno della Partners Area sul sito web della AXESS TMC (www.axesstmc.com). APPENDICI 9.5 Supporto tecnico 9.5.1 Supporto informativo prevendita Contattate il nostro servizio di supporto prevendita per ottenere informazioni su: • caratteristiche del prodotto - tipologie e modalità di installazione - uso e manutenzione - modifiche per necessità particolari - fattibilità di progetti speciali - qualsiasi altra informazione tecnica Il servizio é disponibile tutti i giorni feriali. 9.5.2 Supporto postvendita Contattate il nostro servizio di supporto postvendita per segnalazioni o richieste di assistenza. per telefono: +39 051 3519311 dalle ore 09:00 alle 13:00 - dalle ore 14:00 alle 17:30 feriali per fax: +39 051 3519399 Il servizio é disponibile 24 ore al giorno per tutta la settimana via e-mail: [email protected] 173 APPENDICI 9.6 174 Commenti e suggerimenti Quando avrete acquisito familiarità con l’apparecchiatura potreste voler segnalare possibilità di miglioramento del prodotto, oppure del software e della manualistica di corredo. Potreste anche rilevare condizioni particolari di utilizzo del terminale che causano situazioni di malfunzionamento. In ogni caso contattate la TMC, riportando nel modo più dettagliato possibile la causa del problema; qualsiasi indicazione sarà gradita. Note: Note: