Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumUtilizzando la connessione TCP/IP tra il pannello operatore ed il PLC (Nel tuo esempio lo SlimLine) il concetto di localizzazione è estendibile anche a reti geograficamente distribuite. Il pannello può dialogare con PLC disposti su aree geografiche estese (Su rete WAN) allo stesso modo con cui dialoga con PLC in rete locale LAN.
Il problema è nel networking, cioè nel come è visibile il PLC su Internet (Rete WAN). Immagino che i vari PLC siano in reti locali sotto a Router/Gateway di accesso ad Internet. In tal caso l’accesso ad Internet dovrà avere un IP pubblico (Meglio se statico) e nel router andrà impostato un NAT (O port forwarding) per ridirigere la porta a cui il pannello si connette (Nel caso di SlimLine vine utilizzato Modbus, porta 502), sull’indirizzo IP/Porta locale del PLC.
Novembre 26, 2014 alle 1:14 pm in risposta a: Selettore software 3 posizioni con funzione MUX in LogicLab #38537Sergio Bertana
Amministratore del forumHai premesso che sei un neofita e quindi accetto la domanda, ma se vedi nel programma la funzione multiplexer che ho realizzato utilizza variabili in ingresso di tipo BOOL su cui poi nel programma in ladder aggancio gli I/O reali.
Quindi va da sè che posso dare in ingresso alla funzione qualsiasi variabile di tipo BOOL. Ma non solo, se trasformo le variabili in ingresso ed in uscita da BOOL ad un’altro tipo (USINT, UINT, REAL, ecc) posso utilizzare la funzione multiplexer anche per multiplexare valori discreti.
Credo che acquisire un pò di pratica in programmazione ST sia molto utile, se cerchi in rete trovi informazioni. Ti posso suggerire anche due pinne e poi un bel tuffo nei vari posts del forum dedicati all’ambiente LogicLab ed alla famiglia SlimLine dove troverai molti programmi sorgente in linguaggio ST che possono essere d’aiuto.
Novembre 26, 2014 alle 10:16 am in risposta a: Assistenza remota con sistemi in connessione RS232 #38534Sergio Bertana
Amministratore del forumPuoi utilizzare la funzione VPN di TeamViewer questa funzione permette di creare una VPN tra il tuo PC ed il PC del cliente (Screenshot). Come vedi viene assegnato un indirizzo IP al PC dell’interlocutore, connettendoti a questo indirizzo sei virtualmente nel PC.
Sul PC dell’interlocutore puoi eseguire Toolly, che con l’opzione XConnect permette di incrociare i dati tra due connessioni. Crei un XConnect tra un server TCP ed una porta seriale (Screenshot). Ora dal tuo PC inviando i dati all’IP del PC remoto (Nell’esempio 7.220.177.21) alla porta in XConnect su seriale (Nell’esempio 1000) i dati inviati saranno ridiretti sulla seriale e viceversa.
Sul tuo PC puoi usare un’altro Toolly in XConnect oppure installi un VirtualCOM (Topic).
Novembre 26, 2014 alle 9:28 am in risposta a: Selettore software 3 posizioni con funzione MUX in LogicLab #38532Sergio 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.
-
AutorePost