Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,361 a 3,375 (di 4,264 totali)
  • Autore
    Post
  • in risposta a: Problemi durante upload remoto da terminale Weintek #37491
    Sergio Bertana
    Amministratore del forum

    Quando inizi il download il progetto presente nel terminale viene cancellato, quindi se il download si interrompe non vi è più alcun progetto nel terminale. Ma il terminale continua ad essere operativo e raggiungibile via TCP/IP quindi puoi ritentare l’operazione. D’altronde anche se manca la corrente dal cliente o da te durante il download sei nella stessa condizione.

    Quello che è importante capire è che il terminale funziona ed è operativo anche in assenza del progetto, quindi è raggiungibile sempre per la programmazione, via FTP e via accesso remoto VNC se abilitato.

    in risposta a: Realizzazione di un semplice serial server #37489
    Sergio Bertana
    Amministratore del forum

    In effetti lo SlimLine ha un buffer seriale di 256 caratteri in ricezione ed uno da 256 caratteri in terasmissione, i due buffers sono gestiti in interrupt, quindi nessun carattere viene perso. Tu mi parli di un baud rate di 115200 baud, che corrisponde a circa 11000 caratteri al secondo (1 carattere ogni 0.1 mS). Ipotizzando che la task di back (Unica task in cui puoi gestire le comunicazioni) venga eseguita ogni 10 mS (E’ un tempo cautelativo, sicuramente viene eseguita mediamente in molto meno) devi gestire al massimo 100 caratteri, qunindi ampiamente entro la dimensione del buffer seriale.

    Naturalmente devi provvedere togliere i caratteri dal buffer seriale e a memorizzarli in un tuo buffer molto più grande per attendere i tempi di gestione lato TCP/IP che saranno molto maggiori (Vedi post).

    in risposta a: Come mettere in stand by i pannelli serie MT #37488
    Sergio Bertana
    Amministratore del forum

    Aggiungo che tramite l’oggetto Funzioni PLC (Screenshot) è possibile sia modificare la pagina visualizzata sul terminale (E quindi passare alla pagina salvaschermo) che gestire la retroilluminazione direttamente dal PLC.

    Questa soluzione permette di attivare/disattivare l’illuminazione in base a condizioni logiche del programma gestite direttamente dal PLC.

    in risposta a: Come mettere in stand by i pannelli serie MT #37487
    Sergio Bertana
    Amministratore del forum

    Dal menù Edit -> Parametri di sistema è possibile accedere alle impostazioni generali del pannello (Screenshot). Come vedi è possibile impostare un tempo di inattività dopo il quale viene automaticamente visualizzata una pagina di salvaschermo, sia un tempo di inattività dopo il quale viene automaticamente spenta la retrolluminazione del pannello.

    Lo spegnimento della retroilluminazione si disattiva non appena tocchi lo schermo del terminale, quindi basterà toccare lo schermo per riaccendere la lampada. Per uscire dalla pagina salvaschermo invece occorre inserire nella pagina stessa un oggetto che attivato indirizzi su di un’altra pagina.

    in risposta a: Compatibilità scaricatore surge ed antenna larga banda #37486
    Sergio Bertana
    Amministratore del forum

    Ci sono molte soluzioni per sostituire una connessione RS485 via wireless, sia si tratti di un collegamento point to point sia si tratti di un collegamento multipoint. Quello che occorre conoscere sono le distanze in gioco, la velocità dei dati sulla connessione seriale e il tipo di applicazione.

    Tra i nostri radiomodem puoi trovare diversi modelli con interfaccia RS485 basta scegliere il modello più adatto alla tua esigenza. Il modello ATC-3200 è un modello molto economico dalle buone prestazioni, per rispettare la normativa deve essere utilizzato con l’antenna a corredo. Operando su frequenza di 2.4GHz copre distanze che possono arrivare fino ad 1Km ma le due antenne devono essere tassativamente a vista.

    Abbiamo modelli che operano su frequenze inferiori e qui puoi raggiungere distanze anche di 10/15 Km con la Serie D1 a 169MHz a cui puoi connettere una antenna Yagi direttiva (Vedi post). Le frequenze minori permettono distanze maggiori e possono operare anche in presenza di ostacoli.

    Ma attenzione alla ampiezza di canale, i radiomodem che operano sulle frequenze minori hanno un baud rate radio massimo che arriva a 9600 Baud, contro i 200 KBauds dei radiomodem ZigBee. Inoltre la normativa su alcune frequenze pone vincoli sull’impiego di banda (10% della banda) e sul tipo di applicazioni.

    in risposta a: Compatibilità scaricatore surge ed antenna larga banda #37484
    Sergio Bertana
    Amministratore del forum

    Lo scaricatore surge HWPNSURGE è stato disegnato come naturale complemento alle antenne che terminano con un connettore N maschio (Esempio l’antenna collineare da palo), alla quale si fissa direttamente sulla base per poi ripresentare nuovamente un connettore N femmina per la connessione del cavo (Esempio il CBL073*500). Nel tuo caso mi parli del cavo CBL069*500, che è un cavo da SMA-Maschio a RPSMA-M quindi immagino che tu debba connettere l’antenna (Che termina con un connettore SMA-Femmina) ad un dispositivo che ha un connettore RPSMA-Femmina. Quindi il cavo CBL073*500 potrebbe andare bene in uscita dal surge, ma non abbiamo un cavo per connettere il surge all’antenna, servirebbe un cavo da SMA-M a N Maschio. Ma attenzione a collegare antenne ad alto guadagno a radiomodem, la normativa ne prevede l’uso (In trasmissione) solo con l’antenna fornita con il prodotto.

    in risposta a: Controllo accessi tramite lettore RFID #37483
    Sergio Bertana
    Amministratore del forum

    Il problema è che il lettore RFID da noi utilizzato gestisce due segnali logici in uscita (Clock e Data), questi due segnali sono campionati tramite gli ingressi digitali del modulo CPU. Il campionamento degli ingressi deve essere estremamente veloce (400 uS) e quindi occorre un hardware in grado di poter acquisire velocemente questi ingressi, i moduli di espansione I/O non hanno la possibilità campionare segnali logici a questa velocità.

    in risposta a: Controllo accessi tramite lettore RFID #37481
    Sergio Bertana
    Amministratore del forum

    Aggiungo che in alternativa ai lettori RFID è possibile gestire dei lettori a contatto, esempio gli iButton della Maxim, il blocco funzione sOWRdIdentifier ritorna l’ID univoco letto dall’iButton come un array di 8 bytes (Vedi post). In questo caso esistono lettori molto semplici ed estremamente economici per la lettura dell’iButton (Vedi sito).
     
    Questi dispositivi utilizzano un bus di connessione 1-Wire e possono essere connessi in una rete multidrop, più lettori connessi in parallelo tra di loro ad un unico adattatore 1-Wire/RS232. Puoi anche utilizzare più porte RS232 per connettere più adattatori.

    in risposta a: Controllo accessi tramite lettore RFID #37480
    Sergio Bertana
    Amministratore del forum

    Come ampiamente spiegato in questo post, il blocco funzione HIDClkDtaReader permette di leggere TAG tramite il lettore RFID ProxPoint Plus. E’ sufficente connettere ai due ingressi del modulo CPU SlimLine i segnali Clock e Data del lettore per poter acquisire il codice delle TAG che vengono avvicinate al lettore RFID. Il blocco funzione ritorna un array di 8 bytes in cui viene ritornato il codice letto.

    Quindi in pratica sono utilizzati i due ingressi digitali presenti sul modulo CPU SlimLine per gestire il lettore, un solo lettore si può connettere al modulo CPU. Se hai necessità di gestire più lettori RFID puoi reperire sul mercato lettori con interfaccia seriale e connetterli direttamente alla porta RS232 dello SlimLine, in questo caso puoi utilizzare le due porte RS232. Tramite LogicLab è possibile in linguaggio ST realizzare semplicemente una FB per la gestione del protocollo del lettore. Nel forum troverai parecchi esempi di programmi che gestiscono la comunicazione seriale (Vedi i post, post, post).

    in risposta a: Creare una rete tra più Picostation M2 #37479
    Sergio Bertana
    Amministratore del forum

    Rispondo alla prima domanda, se ho ben capito vuoi realizzare una rete WiFi tra diverse Picostation, dove una Picostation opera da AP/Router e le altre da Station. Credo che tu voglia fare questo per poter utilizzare il server DHCP della Picostation AP/Router.

    Quindi io riserverei sul server DHCP un pool di indirizzi per le Picostation utilizzate come Station in modo da poterle impostare tutte con IP statico (Preferisco avere le Station con IP statico in modo da conoscere il loro IP). In questa configurazione tutti le apparecchiature connesse sia alla rete LAN delle varie station che quelle connesse in WiFi con l’AP/Router saranno visibili tra di loro, certo se avranno l’IP coerente con la rete (Sia esso assegnato dal DHCP oppure definito staticamente).

    Naturalmente utilizzando un AP/Router per raggiungere i dispositivi connessi in WiFi dal lato LAN dell’AP (Appartenendo a reti diverse) dovrai impostare regole di natting sul router.

    in risposta a: Come testare la comunicazione seriale tra due dispositivi #37478
    Sergio Bertana
    Amministratore del forum

    Il modo migliore per testare la connessione tra due dispositivi seriali RS232 e di interporre tra i due un cavo che permetta di “spiare” i dati in transito. In pratica occore costruire un cavo che interconnetta i due dispositivi ma che permetta nel contempo di poter ricevere su di una porta seriale i dati inviati da uno e d all’altro dispositivo.

    Basterà connettere l’uscita del cavo spia su di una seriale di un PC dove con un semplice programma di emulazione terminale (Esempio Toolly) si potrà vedere i dati in transito.

    Allego un articolo preso da Internet in cui si tratta l’argomento (Download), nell’articolo si riportano gli schemi realizzativi di due diversi cavi “sniffer”. Il primo a 3 connettori permette sul connettore spia di analizzare i dati in trasmissione di entrambi i dispositivi su di una sola porta seriale. Il secondo a 4 connettori, ha due connettori spia, uno per analizzare i dati trasmessi da un dispositivo ed uno per analizzare i dati trasmessi dall’altro dispositivo.

    in risposta a: Utilizzo di LogicLab per la programmazione dello SlimLine #37477
    Sergio Bertana
    Amministratore del forum

    Per passare un array ad una funzione od ad un blocco funzione io solitamente utilizzo la tecnica del passaggio dell’indirizzo, in questo modo mi svincolo dalle dimensioni dell’array. Nel programma di esempio (Stampa, Codice sorgente) ho realizzato una semplice funzione che estrae il valore nella posizione indicata da un array di USINT.

    Naturalmente devi controllare prima di passare il valore di Index alla funzione che esso sia nella dimensione dell’array altrimenti la funzione ti ritornerà un dato indeterminato preso nella memoria.

    in risposta a: Esempi programmazione in IEC61131 #37475
    Sergio Bertana
    Amministratore del forum

    L’idea più semplice che mi viene è di aggiungere un ramo nel programma con un altro blocco funzione TimeRange definendo come tempi valori piccoli (Esempio TimeMin 100mS  e TimeMax 100 mS), questo ti permetterà di conteggiare tutti i sacchi, sarà poi il programma da PC a gestire il conteggio corretto.

    L’algoritmo potrebbe essere, viene incrementato il numero di sachi totali, se nell’arco di 5 Secondi non si ha incremento di nessuno degli altri contatori, sacco perso.

    La stessa cosa è fattibile da programma PLC… provare per credere…

    in risposta a: Utilizzo moduli di libreria in programmazione ST #37473
    Sergio Bertana
    Amministratore del forum

    Aggiungo al post precedente che le variabili in ingresso alle funzioni e/o blocchi funzione possono anche esere dichiarate contestualmente alla esecuzione, quindi posso anche dichiarare:

    FBData(Address:=0, Channel:=0, Mode:=AD_VOLT_0_10_COMMON); (* Eseguo acquisizione analogica *)

    E’ anche possibile dichiarare le variabili in modo misto:

    FBData.Address:=0; (* Indirizzo modulo *)
    FBData(Channel:=0, Mode:=AD_VOLT_0_10_COMMON); (* Eseguo acquisizione analogica *)

    in risposta a: Utilizzo moduli di libreria in programmazione ST #37472
    Sergio Bertana
    Amministratore del forum

    La programmazione in structured text (ST) è molto simile alla tecnica di programmazione utilizzata nei linguaggio C, il linguaggio prevede le condizioni (IF) (CASE) i cicli (FOR) (WHILE) e tutte le operazioni matematiche. Quasi tutti i moduli di libreria sono realizzati in ST, per dare una idea immediata del loro uso sul manuale viene solitamente riportato un esempio in ladder (LD).

    L’utilizzo di una funzione o blocco funzione nel linguaggio ST è molto semplice, prendiamo ad esempio il blocco funzione SysGetAnInp, come si vede dall’estratto del manuale, esendo un blocco funzione và istanziato nel programma (Và cioè dichiarata una variabile con un proprio nome di tipo SysGetAnInp). Nell’esempio la variabile ha nome FBData. Per quanto riguarda le funzioni a differenza delle FB non vanno istanziate, quindi si utilizzano nel programma con il loro nome di libreria.

    Ora nel programma possiamo indirizzare tutte le variabili in ingresso/uscita della FB definendone il nome seguito dal punto e poi dal nome della variabile:

    FBData.Address:=0; (* Indirizzo modulo *)
    FBData.Channel:=0; (* Indirizzo canale *)
    FBData.Mode:=AD_VOLT_0_10_COMMON; (* Modo di acquisizione *)

    FBData(); (* Eseguo acquisizione analogica *)

    IsDone:=FBData.Done; (* Flag di conversione Ok *)
    IsFault:=FBData.Fault; (* Flag di conversione Ok *)
    Value:=FBData.Value; (* Valore acquisito *)

Stai visualizzando 15 post - dal 3,361 a 3,375 (di 4,264 totali)