Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Novembre 26, 2014 alle 9:28 am in risposta a: Selettore software 3 posizioni con funzione MUX in LogicLab #38532
Sergio Bertana
Amministratore del forumIl MUX fornito embedded in LogicLab ha solo due posizioni, per fare un selettore a 3 posizioni devi mettere in serie due MUX. Ma vista la funnzione propedeutica del forum e data l’estrema semplicità nel realizzare una funzione MUX, eccone il codice in ST.
CASE (K) OF
0: Mux3Way:=I0;
1: Mux3Way:=I1;
2: Mux3Way:=I2;
ELSE
Mux3Way:=FALSE;
END_CASE;Come vedi lo statement CASE permette di creare un multiplexer a quante vie tu desideri, nel mio esempio è a 3 vie. Ecco nello screenshot il programma ladder in simulazione con la funzione MUX a 3 vie (Download programma).
Nel mio esempio ho definito la variabile Selector di tipo UINT e l’ho allocata nella DB 100.2048 per poterla accedere dal terminale in Modbus (Nel terminale dovrai definire un registro a 16 bit con codice di accesso 3x ed indirizzo 41024). Ho scelto l’indirizzo 2048 perchè è il primo dell’area ritentiva.
Sergio Bertana
Amministratore del forumChiudo il post e poi come al solito mi accorgo che dimentico particolari che possono essere interessanti, il terminale operatore è consultabile via VNC anche da smartphone (Topic), quindi posso agire sul pannello in reception dalllo smarphone o da un PC sia dalla rete WiFi (se presente) sia da Internet.
Grazie ad EasyAccess 2.0 posso accedere al terminale da remoto anche su reti sotto NAT, non devo eseguire modifiche nel router del cliente basta che via sia accesso ad Internet (Topic). E tramite l’accesso al terminale posso da remoto eseguire programmazione e debug sia del programma terminale che del programma di tutti i sistemi SlimLine connessi al terminale.
In questo topic si parla dell’utilizzo di un prodotto commerciale per impostazione e lettura temperatura che può essere impiegato nella tua applicazione.
Sergio Bertana
Amministratore del forumUna domanda ben articolata che mi permette ancora una volta di parlare di sistemi SlimLine e/o Netsyst utilizzati in domotica, argomento molto trattato nel forum (Usare funzione cerca in alto), in questo topic trovi un semplicissimo progetto demo.
Entrambe le soluzioni che hai prospettato sono valide, l’utilizzo di moduli in rete LAN permette di semplificare il cablaggio e ridurre la stesura di cavi. La scelta del modulo in ogni stanza o del modulo unico centralizzato deve essere fatta esclusivamente in base ai costi (Costo modulo + costi cablaggio). A livello di funzionalità sono equivalenti, tramite appositi blocchi funzione i vari moduli “dialogano” tra di loro su rete LAN come se fossero virtualmente tutti nello stesso posto (Topics (1), (2)). Se non vuoi utilizzare la rete LAN puoi optare per moduli in RS485 (Più economici) per realizzare la rete tra le diverse stanze (Topic).
La garanzia della funzionalità del pulsante emergenza bagno è garantita dal controllo della comunicazione tra i diversi moduli, se si interrompe la comunicazione si ha un immediato alert sul terminale operatore in reception.
Il vantaggio del modulo in ogni stanza è dato dalla facilità di ampliamento dell’impianto, se devi aggiungere un controllo od un comando basterà collegarlo al modulo nella stanza senza dover portare il cablaggio fino al locale tecnico. Un modulo Compact ha 6 ingressi e 4 uscite a relè, quindi puoi gestire anche delle attuazioni, inoltre dispone di 2 ingressi analogici quindi puoi ad esempio gestire la climatizzazione.
Utilizzando sistemi di identificazione puoi gestire l’apertura porta, con la possibilità di gestire tags passepartout (Magari selezionando l’orario in cui sono operative), e bloccare eventuali tags perse per una maggiore sicurezza dell’accesso (Topics (1), (2)).
Novembre 21, 2014 alle 1:09 pm in risposta a: Configurazione convertitore Wi-Fi seriale ATC-1000WF #38527Sergio Bertana
Amministratore del forumPer passare al test pratico di funzionamento consiglio di utilizzare Toolly con due istanze del terminale attive (Screenshot), una sulla porta COM fisica a cui è connessa la porta seriale del convertitore (Nel mio caso utilizzo un Convertitore USB-Seriale ATC-810) e l’atra come client TCP sull’indirizzo IP dell’ATC-1000WF porta 5000 (Porta di default).
Come si vede dallo screenshot i dati inviati dalla porta seriale sono ricevuti dalla connessione TCP/IP e viceversa. Come software di virtualizzazione porta seriale VirtualCOM consiglio di seguire questo topic.
Novembre 19, 2014 alle 5:05 pm in risposta a: Assistenza remota con sistemi in connessione RS232 #38526Sergio 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 ?
-
AutorePost