Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Marzo 18, 2011 alle 1:32 pm in risposta a: Distacco e riattacco tensione a 220v su errore ping #36681
Sergio Bertana
Amministratore del forumIl prodotto IP Watchdog Lite attivando l’opzione Outgoing ping (Vedi post), fà esattamente quello che occorre.
Basterà configuralo per inviare un ping verso l’IP del router da controllare e se non sono ricevute risposte provvede ad attivare una uscita logica per un certo tempo. Per gestire i 220V di alimentazione del router è possibile abbinare al prodotto un dispositivo Power Egg, oppure in alternativa utilizzare un comune relè che sezionerà la tensione di alimentazione del router.
Come si evince dalla documentazione l’IP watch dog ha due canali indipendenti, quindi può controllare due diverse apparecchiature.
Sergio Bertana
Amministratore del forumVedo di dare risposte per i vari punti esposti.
Il finecorsa che determina l’ingresso del pezzo deve essere in grado di generare un’interrupt software in modo da memorizzare (tramite il segnale dell’encoder) l’ingresso del pezzo e la sua lunghezza, che serviranno alle lavorazioni successive.
Esiste la possibilità di abilitare GateEn nel blocco funzione SysGetEncoder, questo permette all’hardware della scheda encoder di acquisire il valore di conteggio encoder su variazione fronte dell’ingresso logico di Gate. Il valore ritornato in GQuote sarà il valore della quota encoder acquisito sul fronte del Gate senza alcun ritardo indotto dai tempi di esecuzione.
Quindi serve avere un tempo di aggiornamento delle uscite più veloce, minore di 0.5mS. Ad esempio sarebbe comodo poter impostare una task veloce a 0.1ms e poter leggere encoder/finecorsa ed l’eventuale attivazione delle uscite.
Quello che serve eseguire nella task veloce è la lettura dell’encoder, il confronto sulle quote di attivazione/disattivazione uscite logiche e la gestione delle stesse. Come si evince da questo post, i tempi maggiori sono proprio nella gestione dei moduli periferici (Lettura encoder, gestione uscite) che possiamo determinare in ~620uS. Quindi anche per non occupare tutto il tempo direi che il minimo tempo di esecuzione della task fast può essere impostato in 1 mS.
In più se supponiamo di creare una task ‘fast’ a 0.1ms, cosa succede qualora il codice all’interno di questa task impiega più di 0.1ms ad essere eseguito ?
Se il tempo di esecuzione di una task Fast o Slow, supera il tempo di esecuzione definito, l’esecuzione del programma viene arrestata, il sistema si pone in stop e nella variabile SysErCode viene riportato il codice di errore relativo.
Marzo 18, 2011 alle 9:34 am in risposta a: Caratteri delimitatori di stringa su ATC-1000/2000 #36679Sergio Bertana
Amministratore del forumDi default in entrambi i convertitori non è impostato nessun delimitatore, ma è comunque prevista la gestione di delimitatore a tempo. Il delimitatore a tempo serve per evitare di inviare pacchetti TCP ad ogni singolo carattere ricevuto dalla porta seriale impegnando notevolmente la rete ethernet.
In questo modo i caratteri ricevuti dalla seriale sono bufferizzati nel dispositivo e quando dalla seriale non arrivano più caratteri per il tempo necessario a ricevere almeno 3 caratteri, i dati ricevuti sono trasmessi come pacchetto TCP.
Marzo 18, 2011 alle 8:56 am in risposta a: Rilevazione tempi esecuzione statements di programma #36678Sergio Bertana
Amministratore del forumL’esecuzione dei calcoli e/o l’esecuzione di funzioni e blocchi funzioni che eseguono operazioni su parametri interni alla CPU richiedono tempi ridotti di esecuzione.
I tempi maggiori sono da considerarsi per l’esecuzione di funzioni e blocchi funzioni che accedono ai moduli di estensione. Essendo i moduli connessi alla CPU tramite un bus I2C l’accesso a questi moduli richiede un certo tempo. Per dare una idea riporto i tempi di esecuzione di alcuni blocchi funzione che accedono ai moduli periferici.
SysGetPhrDI, get peripheral digital input: ~300 uS
SysSetPhrDO, set peripheral digital output: ~300 uS
SysGetAnInp, get analog input: ~500 uS
SysSetAnOut, set analog output: ~450 uS
SysGetEncoder, get encoder input: ~320 uSMarzo 18, 2011 alle 7:24 am in risposta a: Caratteri delimitatori di stringa su ATC-1000/2000 #36677Sergio Bertana
Amministratore del forumNelle impostazioni dei convertitori Ethernet/Seriale ATC-1000 ed ATC-2000 è possibile definire i criteri utilizzati per delimitare le stringhe (Download screenshot). Per comprendere il significato di questi delimitatori, occorre comprendere come funziona il convertitore.
I dati ricevuti dalla porta seriale non sono inviati uno per uno sulla porta ethernet, sono memorizzati in un buffer e vengono trasferiti in un pacchetto ethernet secondo le condizioni definite nel delimitatore. E’ possibile definire due diversi caratteri di delimitazione, quando uno di questi caratteri è ricevuto dalla seriale tutti i caratteri ricevuti precedentemente sono inviati in un pacchetto TCP su rete ethernet.
Esempio, si definisce il delimitatore carriage return (Chr(13), 0x0D). Se dalla seriale viene ricevuta la stringa “Hello!” la stringa rimane nel buffer, poi se si riceve la stringa ” World” la stringa rimane nel buffer, alla ricezione del carriage return <CR> l’intera stringa “Hello! World<CR>” verrà inviata come pacchetto TCP su ethernet.
Spuntando l’opzione Drop Character, il carattere delimitatore non verrà inserito nel frame TCP, quindi nel caso precedente il carriage return <CR> non viene incluso nella stringa.
Il valore definito in Silent Time o in Force Packet Transmit Time, forzano la trasmissione del pacchetto TCP se dalla seriale non sono ricevuti caratteri per il tempo impostato nel parametro, questo indipendentemente dalla ricezione del carattere delimitatore.
Marzo 16, 2011 alle 3:53 pm in risposta a: Rilevazione tempi esecuzione statements di programma #36676Sergio Bertana
Amministratore del forumIl modo più semplice è attivare un segnale hardware prima degli statements di cui si vuole testare il tempo di esecuzione e disattivarlo al termine. Se il segnale è disponibile in uscita è possibile rilevarne con l’oscilloscopio il tempo di durata.
Solitamente scelgo il segnale DTR (Presente sul Pin 4 del connettore RJ45 delle porte seriali COM0 e COM1), con la funzione SysSetSerialDTR è possibile attivare (+6 volt) e disattivare (-6 volt) il segnale. Collegando un oscilloscopio al pin del connettore è possibile rilevare il tempo di esecuzione degli statements.
E’ anche possibile utilizzando la funzione SysGetSysTime, memorizzare il tempo di sistema (Espresso in uS) prima degli statements di cui si vuole testare il tempo di esecuzione. Al termine della esecuzione sarà possibile calcolare il tempo necessario alla esecuzione con risoluzione in uS.
Allego la stampa di un programma di esempio di cui è possibile il download, che calcola il tempo di esecuzione della funzione SysGetRandom, la funzione viene eseguita in ca 9 uS.
Marzo 14, 2011 alle 5:18 pm in risposta a: Gestione file sonori (wav) su pannelli touch screen #36674Sergio Bertana
Amministratore del forumI pannelli operatore essendo dispositivi industriali, che devono offrire una elevata protezione IP sul frontale, non hanno incorporato l’hardware per la riproduzione del suono. Le versioni MT60xxi non hanno l’uscita sonora, quindi non possono gestire file sonori. Le versioni MT80xxi ed MT8000 hanno una presa jack per uscita sonora mono.Le versioni MT6xx hanno una presa jack per uscita sonora stereo. Sui modelli in cui è prevista è possibile connettere alla presa jack un altoparlante amplificato (Tipo quello che si connette ai PC) ed in questo modo avere la riproduzione dei suoni. Ricordo che è possibile abbinare l’esecuzione di qualsiasi file wav, basta caricarlo in libreria ed abbinarlo ad una azione (Esempio la pressione di un tasto).
Sergio Bertana
Amministratore del forumE’ disponibile la libreria eNMEALib che permette di interfacciarsi tramite porta seriale ad un navigatore GPS ed interpretare le sentenze NMEA ricevute. Allego un estratto del manuale per il download.
La libreria permette di aggiungere blocchi funzioni per l’interpretazione di tutte le sentenze NMEA desiderate, attualmente è disponibile solo il blocco funzione per l’interpretazione della sentenza GLL (Geographic Position) che contiene le informazioni di latitudine, longitudine ora e fix.
Sono comunque realizzabili a richiesta blocchi funzioni per l’interpretazione di eventuali altre sentenze desiderate. Allego per il download un documento redatto da Eric S. Raymond che riporta una esauriente spiegazione delle sentenze NMEA.
Marzo 11, 2011 alle 5:16 pm in risposta a: Lettura dati da contatore con il protocollo IEC 62056-21 #36672Sergio Bertana
Amministratore del forumE’ disponibile per il download dalla pagina SlimLine, un programma dimostrativo (Ptp122a000) che esegue la lettura di 3 diversi registri da un contatore di energia elettrica.
Utilizzando questo dimostrativo potrai facilmente modificarlo per adattarlo alle tue esigenze.
Nota! Anche se il dimostrivo utilizza un blocco funzione protetto, è possibile testarne il funzionamento per 30 minuti, poi il blocco funzione si blocca ed occorre riavviare il sistema.
Marzo 11, 2011 alle 6:56 am in risposta a: Informazioni per la messa in servizio dispositivi Ubiquiti #36671Sergio Bertana
Amministratore del forumI dispositivi Ubiquiti seppure estremamente semplici da installare sono prodotti che necessitano un minimo di esperienza professionale nel settore del networking. A corredo del prodotto non sono forniti manuali istruzioni, tutto quello che occorre sapere è diponibile sulla guida AirOs (Solo in lingua inglese) scaricabile dal nostro sito dalle pagine prodotto.
In merito al collegamento è estremamente semplice, tutti i dispositivi Ubiquiti si alimentano tramite il cavo Ethernet, nella confezione di quasi tutti i prodotti è compreso un alimentatore PoE, nei prodotti dove non è incluso è possibile acquistare un active PoE injector in od un passive PoE injector. Collegare con un cavo Ethernet l’uscita PoE dell’injector all’ingresso LAN del dispositivo Ubiquiti, l’ingresso LAN dell’injector andrà collegato alla rete Ethernet a cui si vuole aggiungere il dispositivo wireless.
Marzo 10, 2011 alle 9:21 am in risposta a: Rete Wireless in un appartamento a 2 piani esterno #36668Sergio Bertana
Amministratore del forumAggiungo che ipotizzando di avere come clients dei PC escluderei la versione M2 in tecnologia MIMO in quanto la modulazione in 802.11n è supportata solo dai PC di ultima generazione e quindi potrebbero esserci problemi di connessione con i PC un po piu datati.
Sergio Bertana
Amministratore del forumTrattandosi di comunicazione tra benna di un escavatore e cabina presumo che la distanza sia minima, quindi ritengo che l’utilizzo di due Picostation sia una ottima soluzione.
Non avendo problemi di banda, non sceglierei il modello MIMO, quindi potrei orientarti sul Pico2 HP.
Marzo 10, 2011 alle 7:51 am in risposta a: Rete Wireless in un appartamento a 2 piani esterno #36667Sergio Bertana
Amministratore del forumSi la scelta delle Picostation è condivisibile, magari il modello HP per avere una maggiore potenza di segnale.
In merito al WDS, siccome il WDS non è normalizzato tra i vari vendors per evitare qualsiasi problema con i clients forse è preferibile creare 3 reti di accesso con lo stesso SSID e credenziali di accesso in modo che sia il client a conettersi alla rete che di volta in volta presenta il segnale maggiore (Vedi post).
Se fosse possibile si possono utilizare anche solo 3 Picostation configurate come access point e connesse con cavo di rete al router ADSL.
Marzo 9, 2011 alle 5:33 pm in risposta a: Lettura dati da contatore con il protocollo IEC 62056-21 #36666Sergio Bertana
Amministratore del forum1) Sì, l’FB di gestione del protocollo IEC 62056-21 viene venduta con un costo aggiuntivo.
2) Sì, per accedere ad ogni dispositivo (Contatore) occorre fornire un codice che corrisponde alla matricola del contatore stesso, quindi autenticata la richiesta di accesso tramite la matricola si potrà accedere tramite il bus solo a quel contatore.
3) Sì, è possibile connettere alle porte seriali RS232 dello SlimLine un convertitore RS232 to RS485 (Vedi ATC-105 o ATC-108) per avere più porte in RS485.
E’ possibile realizzare un convertitore di protocollo IEC62056-21/Modbus RTU, basterà connettere su di una porta il bus IEC62056-21 e sull’altra sarà possibile avere il protocollo Modbus RTU sia slave (Nativo nel sistema operativo) che Master tramite apposito FB. Il convertitore ottico è una possibilità per i contatori che non hanno l’interfaccia RS485, ma se il contatore dispone già dell’interfaccia RS485 è molto più semplice connetterlo direttamente.Sergio Bertana
Amministratore del forumAllego la stampa della pagina di configurazione dell’IP Watchdog Lite (Download), così come configurato da me in laboratorio per i test. Il dispositivo IP Watchdog ha indirizzo IP 192.168.0.33 e l’ho configurato per inviare dei ping verso il mio PC 192.168.0.64 sia come Primary target IP che come Secondary target IP. Se un ping inviato verso il primary target non riceve risposta il sistema prova ad inviarlo al secondary target.
Il Pinging Timeout è impostato a 1200 Sec (20 Minuti) ed il Failed pings per timeout for reboot è impostato a 100, questo forza il sistema ad inviare un ping ogni circa 12 secondi (1200/100), e se dopo 100 invii di ping nessuno và a buon fine (Non viene ricevuto il messaggio di reply), è comandato il reboot del sistema connesso. Riporto il report di Wireshark con due richieste successive di echo.
141 12.959611 192.168.0.33 192.168.0.64 ICMP Echo (ping) request
142 12.959792 192.168.0.64 192.168.0.33 ICMP Echo (ping) reply
143 24.772442 192.168.0.33 192.168.0.64 ICMP Echo (ping) request
144 24.772599 192.168.0.64 192.168.0.33 ICMP Echo (ping) replyIl tempo di attesa del reply al messaggio di ping non è definibile è fisso al valore di 5 secondi.
-
AutorePost