Vai al contenuto

Controllo accessi I-button

Home Forum Programmazione IEC 61131 (LogicLab) Controllo accessi I-button

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Autore
    Post
  • #35094
    Anonimo
    Ospite

    Utilizzando SlimLine vorrei realizzare un controllo accessi (inizialmente il cancello del giardino), che oltre il consenso all’apertura del cancello mi accenda le luci del vialetto di notte. Inoltre vorrei avere la possibilità su alcuni codici di mettere delle fasce orarie e poter visualizzare l’elenco delle chiavi da touch screen. Infine non ho capito come memorizzare le chiavi.

    #36946
    Massimo
    Moderatore

    Tutto quanto richiesto è fattibile. I modi sono molteplici. Si potrebbe creare una struttura dati con i campi:

    – id chiave
    – orario inizio abilitazione
    – orario fine abilitazione
    – uscita da controllare

    da valorizzare nel task boot con i dati voluti. Se le uscite da controllare sono più di una, basta creare un array di tali strutture.
    Altro modo potrebbe essere quello di creare su PC un file di configurazione (es. .csv) da inviare via FTP a SlimLine che lo leggerà valorizzando la struttura dati citata in precedenza.
    La logica di controllo delle uscite risulterebbe la stessa per tutte le uscite, visto che si basa sui dati presenti nella struttura dati.

    La gestione del codice chiave letto via 1-wire dall’ i-button, è già implementata nella FB OWRdIdentifier che prevede di utilizzare l’ adattatore 1-Wire/RS232.

    Per accendere le luci di notte su attivazione apertura cancello, basta creare una logica che legge un interruttore crepuscolare e se attivo, accende anche le luci. 

    Per visualizzare l’elenco delle chiavi da touch screen, poichè le chiavi sono dei valori UDINT, è sufficiente copiare tali valori nella DB100 che sarà leggibile dal touch screen usando il procotollo Modbus RTU o Modbus Over IP.

    #37245
    Anonimo
    Ospite

    Mi puoi spiegare meglio come implementare la lettura dei codici da iButton e come poter definire da file CSV l’abilitazione dei codici ?
    Esistono blocchi funzioni specifici per la gestione di files CSV ?
    Mi potete fare un esempio di come fare il blocco funzione per gestire il file CSV con i dati per iButton ?

    #37246
    Sergio Bertana
    Amministratore del forum

    Per la lettura dei codici dai dispositivi iButton devi fare riferimento al manuale di programmazione SlimLine ed in particolare al blocco funzione sOWRdIdentifier. Questo blocco funzione ritorna l’ID univoco letto dall’iButton come array di 8 bytes.

    Per quanto riguarda la gestione del file CSV di definizione codici puoi fare riferimento ad altri post su questo forum che trattano l’argomento. Ma per venirti incontro ho realizzato un programma completo che utilizzando parti reperite da altri esempi disponibili sul forum e modificandolo opportunamente esegue:

    Lettura del codice dal dispositivo iButton connesso alla porta seriale tramite convertitore.
    Lettura file CSV dalla memoria Storage di SlimLine (Vedi post).
    Ricerca del codice TAG iButton all’interno del file CSV.

    Il file CSV l’ho strutturato semplicemente con codice TAG (16 digit esadecimali) e numero porta da aprire (Ho gestito 2 porte). Ma tu puoi modificarlo a tuo piacere aggiungendo orari di abilitazione ed ogni altra informazione sia necessaria (Vedi post). Allego la stampa ed il programma sorgente.

    #39464
    Antonio
    Partecipante

    Essendo interessato alla realizzazione di un controllo di accesso camera per piccole strutture turistiche ho effettuto un test  con l’esempio riportato nel manuale di programmazione con un iButton ed un adattare seriale onewire (che funziona perfettamente con le sonde di temperatura) ma ottengo il seguente funzionamento:

    In debug visulalizzando il TAGID (array di 8 byte ) non appena lo script va in run l’array risulta valorizzato con numeri casuali (e questo potrebbe essere anche normale) ma la cosa strana è che non appena connetto al lettore l’iButton i byte del TAGID si azzerano per tornare ai valori precedenti non appena stacco.

    Vi è qualche problema nelle librerie della mio PC ? è normale che l’ID di un ibutton sia zero ? purtroppo ho un solo pezzo a disposizione per cui non posso verificare l’integrità dell’iButton.

    #39465
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un progetto prendendo il programma di esempio riportato sul manuale e l’ho testato con un lettore iButton magnetico (Vedi foto) e non ho riscontrato i problemi che tu lamenti (Allego il programma iButtonRead per il download).

    Come vedi l’array ROMID è una variabile locale ed all’avvio del programma e se nessun TAG presente è sempre di valore 0. L’array viene valorizzato solo quando il TAG è letto dal lettore. Tutti i TAGS hanno un codice univoco che è stampigliato sul TAG stesso, non esistono TAG con codice 0.

    Quindi le possibilità sono, hai collegato i due fili del reader al contrario, prova a scambiarli, il TAG che usi non è compatibile, io utilizzo i DS1990R (Vedi pagina). Il programma non è eseguito nella task Back. Prova a vedere se il programma che ti ho postato funziona.

    #39466
    Antonio
    Partecipante

    Risolto il tuo esempio funziona perfettamente. Il problema risiedeva nel fatto che stavo utilizzando un adattatore RS232 – onewire con ID anzichè il vostro modello S09 senza ID.

    #39467
    Sergio Bertana
    Amministratore del forum

    Benissimo, informazione che può essere utilissima ad altri utenti.

    Ricordo che da un pò di tempo abbiamo rilasciato il terminale Picoface che ha già integrato tutto l’hardware ed il software per la lettura dei dispositivi One-Wire. Il FB HMIPicoface ritorna tutte le informazioni acquisiste dal dispositivo One-Wire. Nel caso si connetta un TAG viene ritornato l’ID del TAG, se si connette un sensore di temperatura (Esempio TR 161-25) viene ritornato l’ID ed il valore di temperatura. Aggiungo un link a questo topic dove viene trattato un controllo accessi con iButton.

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Devi essere connesso per rispondere a questo topic.