Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Novembre 19, 2014 alle 5:05 pm in risposta a: Assistenza remota con sistemi in connessione RS232 #38526
Sergio Bertana
Amministratore del forumIl problema si complica se non viene assegnato un IP pubblico, in questo caso è possibile realizzare una VPN tra il router ed il vostro server centrale (Che deve avere un IP pubblico). La VPN è come un cavo di Etherenet virtuale tra il server ed il router e su questo cavo virtuale passano le comunicazioni del software VirtualCOM.Naturalmente se ci sono molti sistemi le VPN sono molte e occorre predisporre delle regole (La minima è una classe di indirizzi IP) per ogni VPN utilizzata. Inoltre la VPN viene creata con il server centrale e solo dal server centrale sarà possibile raggiungere i sistemi remoti.Un’altra soluzione più flessibile è disporre sul sito di un PC e con un software di teleassistenza (Esempio TeamViewer che è quello da noi utilizzato per il supporto tecnico On-Line) accedere al PC e poi tramite il PC raggiungere i vari dispositivi. In questo modo conoscendo l’ID del sistema remoto e la password di accesso da qualsiasi dispositivo connesso ad Internet sarò possibile accedere al PC remoto.Un’altra soluzione, possibile se sull’impianto remoto è installato un pannello operatore Weintek, è di utilizzare il software di teleassistenza EasyAccess 2.0 (Topic). Tramite EasyAccess 2.0 si realizza in automatico una VPN tra l’applicazione PC ed il terminale potendo accedere a tutti i dispositivi connessi in Ethernet con il terminale. Inoltre grazie al Pass-Through (Topic) è possibile utilizzare le porte seriali del terminale come porte COM virtuali del PC.Per finire ricordo che sia la soluzione TeamViewer che EasyAccess 2.0 funzionano anche sulle connessioni ADSL, quindi basta che sul sito remoto sia attiva una connessione Internet.
Novembre 19, 2014 alle 4:32 pm in risposta a: Assistenza remota con sistemi in connessione RS232 #38525Sergio Bertana
Amministratore del forumLa soluzione che utilizzate ora è una classica soluzione in Dial-Up, la comunicazione è in GSM e viene tariffata a tempo. Per questo tipo di comunicazione occorre utilizzare SIM di tipo M2M. Questo argomento è trattato in vari topics nel forum ne cito alcuni (1), (2).
Ora la soluzione che propongo è di utilizzare un router GPRS o UMTS, questo tipo di prodotti alla accensione si connette alla APN del gestore di telefonia e dà disponbile una connessione Internet. La connessione è di tipo TCP/IP e viene fatturata a traffico e non a tempo. Quindi è possibile anche effettuare comunicazioni di tipo Always-On dove il router è costantemente connesso alla rete.
Il problema è l’indirizzo IP, alcuni gestori (Ora è rimasta solo TIM) assegnano alla connessione indirizzi IP pubblici, altri operatori solo indirizzi sotto NAT (Topic). Se ti viene assegnato un IP pubblico puoi tramite un servizio di DynDNS (Topic) assegnare un URL alla tua connessione e tramite questo URL raggiungerla da qualsiasi dispositivo connesso in Internet, questa è la soluzione più semplice da gestire.
Per le seriali puoi utilizzare la porta seriale aggiuntiva presente come opzione nel router (Topic), se vuoi aggiungere altre porte seriali puoi utilizzare dei convertitori Ethernet-Seriale connessi alla porta ethernet del router. Sul tuo PC in ufficio installi un software di virtualizzazione porta seriale (Sono forniti con i convertitori) oppure vedi questo topic.
Per accedere dalla rete Internet al convertitore Ethernet-Seriale dovrai configurare il NAT o Port forwarding del router per ridirigere una o più porte TCP da indirizzo IP pubblico verso coppie (Indirizzo IP e porta TCP) dei vari convertitori Ethernet-Seriale.
Nel software di VirtualCOM imposti l’IP pubblico del router (Od il suo URL) e la porta pubblica ridiretta dal NAT del router e la tua porta COM nel PC sarà fisicamente la porta seriale del convertitore remoto. Naturalmente devi tenere presente ritardi di comunicazione della rete a pacchetto (Ma di solito sono poche decine di mS, il tempo si può anche verificare eseguendo un ping sull’indirizzo IP o URL del router).
Sergio Bertana
Amministratore del forumAggiungo un esempio di acquisizione di temperatura da un NTC (Stampa programma), come vedi dalla tabella dei valori del sensore (Post precedente) il valore di temperatura in funzione del valore di resistenza non è lineare. Per linearizzarlo puoi utilizzare la funzione Linearize, devi passare alla funzione la tabella con le corrispondenze tra il valore in Ohm letto dal sensore ed il corrispondente valore di temperatura. Nel mio esempio ho messo solo 5 valori, ma più valori definisci più la lettura di temperatura sarà accurata (Download programma).
Attenzione, come vedi dalla curva il sensore lavora con dati attendibili nel range da 0 a 75 °C, poi la curva diventa molto ripida ed è impossibile avere valori attendibili.
Sergio Bertana
Amministratore del forumAggiungo un programma di esempio (Stampa) che effettua la lettura di un potenziometro da 5KΩ da un modulo espansione I/O analogico provvedendo anche alla sua alimentazione tramite un canale D/A impostato con uscita a 10Volt (Download programma).
Sergio Bertana
Amministratore del forumHo dato una occhiata ad una tabella con le caratteristiche di una sonda NTP da 20KΩ (Tabella con valori), non sò se sono le stesse caratteristiche della sonda presente nel tuo impianto ma credo si possano assimilare a 25 °C la sonda ha 20KΩ.
Ipotizzando di usare un classico partitore di tensione partendo da 10Vdc (Magari generati da un D/A), nel ramo verso massa si mette la sonda NTC e verso il positivo una resistenza da 4.7KΩ. Considerando l’impenza di ingresso del convertitore A/D (11.3KΩ) la variazione in volt in ingresso è data dalla formula:
VIn=10/(4700+(NTC*11300)/(NTC+11300)))*(NTC*11300)/(NTC+11300)
Nel range da 10 °C a 30 °C (Che presumo sia il range di lavoro) la resistenza dell’NTC varia da 40KΩ a 15KΩ e quindi avremo una variazione in ingresso di circa 0.7 Volt (Da 6.3 a 5.6 Volt). Il nostro modulo espansione I/O analogico ha una risoluzione di 19 Bits (0.019 mV a Bit), quindi su 0.7 Volt di variazione si hanno 36000 punti che sono ampiamente sufficenti a misurare la temperatura.
Per non fare troppi calcoli puoi utilizzare la funzione ResistorValue (Estratto manuale) che ti ritorna direttamente il valore resistivo letto da un partitore.
Sergio Bertana
Amministratore del forumVisto lo spirito propedeutico del forum, ho aggiunto anche la stessa funzione di controllo orario scritta in linguaggio ST, questo è il listato.
IF (MOD(DateTime, 86400) >= ((TO_UDINT(HourOn)*3600)+(TO_UDINT(MinuteOn)*60)+SecondOn)) THEN
STTimeSwitch:=TRUE; (* Function result*)
END_IF;IF (MOD(DateTime, 86400) >= ((TO_UDINT(HourOff)*3600)+(TO_UDINT(MinuteOff)*60)+SecondOff)) THEN
STTimeSwitch:=FALSE; (* Function result*)
END_IF;Come si vede il codice è molto più compatto potendo scrivere le operazioni direttamente in linea. Ho realizzato un programma che si può testare anche con il simulatore su PC (Screenshot) che mette a confronto le due FB (Stampa programma, programma sorgente).
Sergio Bertana
Amministratore del forumPer quanto riguarda la seconda parte della domanda, lo spegnimento di una luce dopo un certo tempo devi utilizzare il blocco funzione eTON Timer On (Estratto manuale). Puoi dare una occhiata anche a questo topic.
In merito all’orologio programmatore non esiste una funzione apposita ma è facilmente implementabile, ecco un esempio in FBD di un blocco funzione che controlla i tempi di accensione e spegnimento di un dispositivo (Screenshot). Come vedi appoggiando sull’ingresso DateTime il valore della variabile di sistema SysDateTime che contiene la data e ora espresso in Epoch viene effettuato il controllo con i tempi di On e Off definiti e se il tempo è all’intereno dei valori specificati viene attivata l’uscita.
Puoi inserire tante chiamate a questa funzione tanti quanti sono i tuoi tempi da controllare, magari abilitandola in base al giorno della settimana per gestire inserzioni settimanali.
Sergio Bertana
Amministratore del forumUtilizzare coppie di antenne NanoStation per ogni telecamera può andare benissimo si garantisce la massima banda di comunicazione ed utilizzando antenne direttive da entrambi i punti si ha la massima potenza di segnale.Ma se tutti i punti delle telecamere hanno visibilità ottica sull’unico punto centrale (Dove c’è l’NVR), puoi anche utilizzare ad esempio un Rocket con una antenna omnidirezionale. Il sistema centrale andrà configurato come access point mentre le varie stazioni sulle telecamere come station.Naturalmente l’utilizzo di un unico punto centrale per tutte le telecamere abbassa l’ampiezza di banda del segnale che andrà divisa per il numero delle stazioni periferiche. Ma 6/7 stazioni non sono molte e se utilizzi il MiMo con ampiezza di banda 40 Mhz puoi raggiungere anche i 150 Mbps totali.
Novembre 15, 2014 alle 8:51 am in risposta a: Temperature control and monitoring in a school building #38517Sergio Bertana
Amministratore del forumThe I2C bus cannot be elongated up to 50-60 m, it’s better to use CPU modules (Even the compact, the CPU alone or with some I/O modules directly attached to it) and connect all the modules between them by RS485 or Ethernet. There are some topics in the forum (Unfortunately most of them are in Italian) that treat the CPU modules network (Using a RS485 network, using the Ethernet).
The Dallas 1-Wire can be directly readed by our CPU modules, you have to use the 1-Wire to RS232 Adapter connected to any RS232 serial port (See topic and topic).
About the connection between the equipments if possible it’s better to use the Ethernet, otherwise the RS485.
I don’t know the T2B bus, so I cannot give to you any information about this point. Have you any specification of T2B bus ?
About temperature management you can refer also to this topic, it treats a commercial room thermostat with Modbus interface. With the Touch screen panels it’s easy to create your own chrono termostat (See screenshot).
Sergio Bertana
Amministratore del forumIl servizio EasyAccess può essere abilitato/disabilitato dal pannello.
Scrivendo la costante 0 nella LW 10820 l’accesso via EasyAccess è disabilitato il terminale risulterà non connesso al portale.
Scrivendo la costante 1 nella LW 10820 l’accesso via EasyAccess è abilitato il terminale risulterà connesso al portale.E’ quindi possibile definire due pulsanti di scrittura Word in una delle pagine del pannello per gestire l’abilitazione al servizio. Se invece si desidera che l’accesso sia sempre attivo basterà nella pagina iniziale del terminale (Quella che viene visualizzata alla accensione) inserire un oggetto Imposta Word di attivazione (Screenshot).
Sergio Bertana
Amministratore del forumL’utilizzare piu switch ethernet non dà problemi sempre ammesso che i due punti siano sulla stessa rete (Non è che hai delle VLAN che isolano i due punti). Pure il fatto che hai definito il remote IP server nell’ATC-1000 settato come server non dà problemi (L’impostazione viene ignorata).
Strano che non funzioni testando il tutto con Toolly, proverei a connettere i due ATC-1000 su di un solo switch per fare i tests. Ti ricordo che puoi provare anche a impostare la comunicazione in UDP tra i due ATC-1000.
Non capisco però visto che le prove con il VirtualCOM erano positive, perchè non usi un solo convertitore (Lato macchinario) ed il VirtualCOM sul PC dove hai il software di controllo ?
Sergio Bertana
Amministratore del forumNel comando di lampade a LED a 220Vca occorre fare alcune considerazioni, l’alimentazione dei LED solitamente è ottenuta mediante trasformatori elettronici che raddrizzano la tensione di rete per poi elevarla di frequenza fino a 30/40 KHz ed in questo modo si utilizza un trasformatore molto piccolo per ridurla alla tensione necessaria alla accensione dei LEDs.
Abbiamo riscontrato in alcuni costruttori che il circuito di ingresso della lampada presenta una bassissima impedenza (Abbiamo supposto che vi siano delle capacità in parallelo) e questo provoca una corrente di spunto molto elevata, questo indipendentemente dalla potenza effettiva della lampada (Vedi oscillogrammi).
Come si vede dal primo oscillogramma si ha una corrente elevata (Lo spunto è di 20 Volts pari a 60 Amp) per un tempo significativo e questo provoca “l’incollaggio” del contatto del relè di uscita. Inserendo una resistenza da 47 Ohm 1/2 Watt in serie alla lampada non si ha più lo spunto di corrente (Il segnale che si vede è il disturbo sulla chiusura del relè che fà partire il trigger dell’oscilloscopio). La resistenza in serie non ha effetti sulla luminosità della lampada in quanto la caduta di tensione ai sui capi e trascurabile ed è compensata dall’alimentatore intelligente presente nelle lampade.
In merito ai relè utilizzati sui moduli di espansione I/O a relè, sono il modello PA1A-5Vdc della Panasonic (Vedi datasheet). Il relè è disponibile presso RS-Components con il codice 156-5126.
Sergio Bertana
Amministratore del forumIntanto per aggiungere porte seriali ad un PC che ne è sprovvisto consiglio di utilizzare un convertritore USB-Seriale, ci sono modelli semplici ad RS232 e modelli con uscita mista RS232, RS422, RS485 anche isolati galvanicamente. Questi convertitori agiscono esattamente come una porta COM fisica del PC e non vi sono limiti nel funzionamento.
Per quanto riguarda i convertitori sia Ethernet-Seriale che WiFi-Seriale, agiscono tutti con un software di virtualizzazione che installa una COM aggiuntiva nel PC, ma mentre con l’USB non si hanno ritardi nella comunicazione, utilizzando il protocollo TCP/IP si hanno ritardi che a volte possono portare alla non funzionalità del protocollo di comunicazione seriale. I ritardi sono ancora maggiori passando sul WiFi.
Per quanto riguarda la comunicazione WiFi tra PC e convertitore, puoi utilizzare un access point, in tal caso il PC ed il convertitore si scambiano dati all’interno di una rete WiFi esistente. Se invece non hai l’access point puoi creare una rete ad-hoc tra PC e convertitore (Topic).
Sergio Bertana
Amministratore del forumNon capisco poi quando dici che il software del macchinario non accetta le porte virtuali, la porta virtuale è un software che installi sul PC e ti fà vedere il convertitore ATC-1000 connesso al tuo macchinario come una porta COM fisica del PC. Non devi installare nulla sul macchinario.
Sergio Bertana
Amministratore del forumNon scrivi nel TCP Mode che port number hai impostato, deve essere la stessa per entrambi i dispostivi. Nel convertitore settato come server non occorre impostare l’IP del remote server. Se così è la configurazione che hai fatto è corretta quindi divrebbe funzionare, ma quando dici che non funziona vuoi dire che testi direttamente il funzionamento del software di connessione con la macchina e non và, oppure che hai fatto una semplice prova di echo caratteri seriali con un emulatore di terminale (Esempio Toolly) ?
Per minimizzare il traffico dati sulla rete nel caso di funzionamento paired consiglio di utilizzare il protocollo UDP che non prevede l’ack sui pacchetti inviati. In una connessione seriale tra due apparecchiature il controllo sulla congruità dei dati è già svolto dal protocollo seriale.
Per accertare il funzionamento proverei con il terminale di Toolly ad inviare caratteri sulla seriale del PC (Dove è connesso l’ATC-1000) e cortocircuitando tra di loro i pin 2 e 3 del connettore seriale dell’altro ATC-1000 verificare se ricevo l’echo dei caratteri inviati (Vedi foto).
Ricordo che accertata la funzionalità della connessione paired tra i due dispositivi, il funzionamento della connessione con la macchina è condizionato da altri fattori come ad esempio i ritardi della comunicazione sulla rete ethernet, il possibile frazionamento dei pacchetti, ecc…
-
AutorePost