Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumQuando dici “la comunicazione tramite server VNC funziona perfettamente” intendo tu voglia dire che ti connetti in VNC sempre tramite EasyAccess. Se è così questo vuol dire che la connessione fornita da EsasyAccess non ha problemi.
Direi che il problema possa essere il processore di comunicazione degli azionamenti, si può provare ad impostare LW 9903 a 2 (Pass-through destination COM 3) in modo da sconnettere il pannello dalla comunicazione Modbus così da usare una banda maggiore ed interrogare gli azionamenti come mono master (Come indicato nelle proprietà del dispositivo, screenshot).
Per la domanda sulla velocità di comunicazione con il Pass-Through, ricordati che il programma degli azionamenti esce in seriale, i dati sono poi convertiti in ethernet, si raggiunge il pannello che esegue la conversione da ethernet a seriale, i dati vanno all’azionamento e poi giro inverso per la risposta. E quando usi EasyAccess il tutto via Internet, quindi fai tu i conti sui ritardi che si inseriscono in tutto questo rispetto alla pura comunicazione seriale.
Detto questo, in merito alla perdita della comunicazione del programma degli azionamenti, non vorrei che il problema si manifesta proprio per la lentezza della comunicazione, può essere cher il programma su PC o gli azionamenti controllino il timeout tra la domanda modbus e la risposta e s e troppo lungo si sconnettono. Vedi se è prevista l’impostazione di un tempo di timeout, in tal caso portalo ad almeno a 5 secondi.
Sergio Bertana
Amministratore del forumPer quanto riguarda le porte utilizzate dai una occhiata a questo topic. Ti ricordo comunque che se utilizzi EasyAcces non hai necessità di aprire le porte e di NATtare porte pubbliche su indirizzi privati.
Sergio Bertana
Amministratore del forumPer quanto riguarda il rallentamento via VNC, bisognerebbe analizzare il progetto e la rete, il primo per capire che non ci siano parti di progetto in loop che appesantiscano la CPU. E’ possibile visualizzare sul pannello la LW 9025 “carico cpu %” per vedere che carico di lavoro stà effettuando l a CPU.
Occore poi essere certi che la rete sia stabile e che non si interrompa o riduca la banda con il tempo, ho scoperto che alcuni fornitori di internet applicano controlli sulle comunicazioni e nel caso vedano una connessione bidirezionale continua con un altro indirizzo dopo un certo tempo tagliano la banda.
Per provare se può essere questa la causa si può chiudere momentaneamente il VNC e riavviarlo dopo un paio di minuti se torna veloce è qualcosa legato alla rete.
Sergio Bertana
Amministratore del forumLe connesioni UDP sono connessioni senza socket quindi il concetto di Server/Client è un pò diverso da quello utilizzato nelle connessioni TCP.
In pratica scegliendo la comunicazione in UDP si definisce in Local Port porta locale su cui il convertitore accetta i dati, mentre è possibile definire fino a 10 convertitori a cui i dati sono inviati (Multicast). Per ogni convertitore si definisce lindirizzo IP e la porta.
Quindi ipotizzando due convertitori ATC-1000 in paired uno con indirizzo IP xxx.xxx.xxx.1 e l’altro xxx.xxx.xxx.2) avremo questa configurazione (Ho definito porta 10012 ma è un esempio puoi definire qualsiasi porta).
Su IP xxx.xxx.xxx.1: Local Port 10012, Remote Address xxx.xxx.xxx.2 Port 10012.
Su IP xxx.xxx.xxx.2: Local Port 10012, Remote Address xxx.xxx.xxx.2 Port 10012.Vediamo come funzionano, quando un convertitore riceve dati dalla sua porta seriale li invia a tutti i Remote Address definiti. Quando un convertitore riceve dati in UDP dalla porta Local Port, i dati sono inviati in uscita sulla sua porta seriale.
Sergio Bertana
Amministratore del forumAggiungo una tabella con l’elenco delle porte TCP/IP utilizzate.
Sergio Bertana
Amministratore del forumIl consiglio è di definire un tipo dati (Esempio PARAMETERS di 32 WORD) per contenere tutti i parametri dei vari dispositivi. Poi si potrà allocare nella DB 100 un array di 20 di questo tipo dato per contenere i parametri di tutti i dispositivi (Screenshot).
L’allocazione nella DB 100 è obbligatoria per poter gestire i dati da pagina Web. L’accesso ai singoli parametri di ogni dispositivo da linguaggio ST è possibile utilizzando la tecnica dell’accesso a matrici (Topic). Ecco gli statrements da scrivere:
Value:=Devices[2, 3]; (* Leggo valore del parametro 3 del dispositivo 2. *)
Devices[10, 20]:=Value; (* Scrivo valore del parametro 20 del dispositivo 10. *)Sergio Bertana
Amministratore del forumLa soluzione 2 si potrebbe approcciare con il WDS, puoi configurare la Picostation come Acces point WDS, per ripetere il segnale dell’acces point principale (Topic). Ma il WDS a volte nasconde problemi di compatibilità quindi andrebbe testato con le tue telecamere.
Ma mi domando perchè hai scelto di mettere l’access point a terra, non potretsti ribaltare il concetto e configurare come access point la Picostation sul trasloelevatore e configurare come station quella a terra connessa alla rete LAN aziendale ? In questo modo le telecamere potrebbero connettersi tranquillamente.
Ottobre 28, 2015 alle 7:49 am in risposta a: Gestione caldaia da Web con curva temperatura mandata #39117Sergio Bertana
Amministratore del forumVediamo se il modulo CPU Compact Ethernet può soddisfare le tue esigenze, il problema maggiore è l’acquisizione di temperatura esterna.
Per l’acquisizione NTC, dalla tabella delle caratteristiche si vede che il range di resistenza varia da 776KΩ (-40 °C) a 1700Ω (86 °C), questo range elevato di variazione può essere un problema. Gli ingressi analogici del modulo CPU (Range 0÷10V) hanno una impedenza bassa (13,3 KΩ) quindi un partitore resistivo con l’NTC ed una resistenza da 10KΩ alimentato a 10 V darebbe una variazione di tensione in ingresso da 5,6 a 1,5 Volt. Se si considera il range ipotetico di utilizzo da (160KΩ a -15 °C) a (10KΩ a 40°C) avremo una variazione di tensione da 5,5 a 3,6 Volt. Quindi in 2 Volts ti giochi tutto il range di temperatura, considerando che il convertitore A/D ha solo 10 bits (10 mV a bit) hai 204 bits di risoluzione (0,26 °C a bit). Tutto questa teoria sperando di non avere fatto errori ti dà una idea della acquisizione, vedi questo topic per come utilizzare l’FB ResistorValue. Per la linearizzazione dovresti poi utilizzare la FB Linearize definendo i vari punti della curva (In questo topic la acquisizione di un NTC).
E’ ovvio che se utilizzassi un modulo espansione 20I/O mixed signal potresti acquisire 2 Pt100/Pt1000 con cui acquisire sia la temperatura esterna che quella di mandata avresti tutto già pronto ed il FB SysGetAnInp ti ritorna il valore già in gradi.
Per la curva di calcolo della temperatura di mandata in funzione della temperatura esterna puoi anche qui utilizzare la FB Linearize definendo i punti della curva, in questo topic si tratta l’argomento.
Per l’interfaccia web vedi i topics che trattano l’argomento esempio questo.
Sergio Bertana
Amministratore del forumAllora deve funzionare…Hai provato ad invertire i due file della RS485, molte volte è solo nell’errato collegamento della seriale il problema. Per capire dove è il problema dovresti spiare la comunicazione seriale (Ecco perché nel FB sullo SlimLine abbiamo inserito il comando di SpyOn) in questo topic viene spiegato come spiare un RS232. Per la RS485 è ancora più facile, basta avere un adattatore USB-RS485 da collegare al PC.Con l’adattatore collegato al PC hai anche il vantaggio di poter provare la comunicazione direttamente con il simulatore del pannello direttamente da PC senza utilizzare il pannello reale. E se conosci un po Modbus potrai prima testare se funziona con Toolly o con programmi di simulazione Modbus (Esempio Modscan Topic).
Sergio Bertana
Amministratore del forumNon mi dici se hai impostato seriale a 9600 baud e parità pari (Almeno questo sembra quello che ha impostato saing).
Poi attenzione 3x è il comando 03 Modbus (Puoi provare con il 4x) ma 1 non è l’indirizzo dello strumento, il valore che metti dopo il codice del comando è l’indirizzo del registro che leggi. E poi devi definire nell’oggetto il corretto tipo di dati che leggi, se è un registro a 16 bit devi indicare unsigned int 16 bit.
Sergio Bertana
Amministratore del forumL’SDM320M supporta il Modbus RTU quindi è pienamente compatibile con il pannello Weintek. Se usi i pin 7-8 del connettore “E” devi impostare porta di comunicazione COM3. Poi verifica di avere impostato correttamente la modalità di comunicazione ed avere impostato il protocollo Modbus RTU con il corretto numero di nodo.
Sergio Bertana
Amministratore del forumDirei di concentrarci sul primo esempio che esegue un semplice comando Modbus di lettura registri. Come vedi nell’esempio l’ingresso SpyOn è attivo quindi collegandoti in Telnet allo SlimLine puoi vedere tramite la console di spionaggio i dati in transito sulla comunicazione seriale (Topic).
Se vuoi avere più tempo per analizzare i pacchetti dati puoi aumentare il valore del parametro Delay portandolo a qualche secondo (Esempio 5000 per avere 5 secondi di ritardo tra un pacchetto e l’altro).
Come vedi dal manuale utente del prodotto, il registro Modbus 1 (Nel manuale è indicato come 3001) che è quello che acquisiamo nell’esempio corrisponde al valore Line to neutral volts. Dalla console di spionaggio potrai vedere uscire un frame in trasmissione uguale a quello indicato nel manuale al capitolo 4.2 Data reading. In realtà c’è una incongruenza nel manuale perchè in testa alla tabella dei registri dicono Parameters to be read by function code 04, mentre nell’esempio al capitolo 4.2 utilizzano il function code 03.
Normalmente i codici 03 e 04 sono equivalenti, ma puoi provare a modificare nell’esempio il parametro FCode portandolo a 16#03.
Ottobre 17, 2015 alle 6:20 am in risposta a: Aggiornamento impianto con ICU 2000 (Micromaster) #39101Sergio Bertana
Amministratore del forumHo dato una occhiata alle sonde che conosco ma nessuna ha questa caratteristica. Ne le Pt1000, ne le PTC1000 ne le sonde Balco, a questo punto puoi provare ad acquisirne la resistenza, il Modulo espansione I/O Analogico ha una modalità di acquisizione in resistenza con un fondo scala di 5KΩ.
Devi rilevarne la resistenza in diversi punti di temperatura, creare una tabella con le misure, poi interpolando matematicamente tra i punti della tabella puoi risalire al contrario dalla resistenza al valore di temperatura.
Ottobre 16, 2015 alle 9:58 am in risposta a: Collegamento wireless da abitazione a router in ufficio #39099Sergio Bertana
Amministratore del forumSe chiedi ad un tecnico quale dispositivo utilizzare ti dirà nessuno. La teoria dice che se non c’è visiabilità ottica la comunicazione sulle frequenza così elevate è difficilissima.Però in realtà gli apparati WiFi non sempre leggono i libri, e quindi non sapendo che non possono funzionare succede anche che funzionino. Ho clienti che hanno fatto connessioni WiFi tra abitazione a cantina, ma siamo tutto nel campo delle prove quindi non ti posso consigliare.Se devi realizzare questo tipo di connessione visto che la distanza è poca, potresti anche provare con dei Bullet e due antenne omnidirezionali con un buon guadagno (Vedi le SCO246/9).
Sergio Bertana
Amministratore del forumLa warning indica che hai definito nelle variabili globali una variabile di nome “A” di tipo array, e hai indicato come valori di inizializzazione solo alcuni campi dell’array (Screenshot).
Il modulo MAIN è il contenitore di tutto il programma, viene generato automaticamente da LogicLab, le variabili globali sono automaticamente allocate in questo modulo.
Per trovare la posizione dove è definita la variabile puoi utilizzare la funzione Edit->Find in Project (Ctrl+Shift+F). Il problema che avendo definito un nome molto corto alla variabile “A” può essere difficile la ricerca. Per questo consiglio di usare nomi più esplicativi per le variabili.
Inoltre se non hai messo la spunta sul tick Case sensivity (Screenshot) tutti i nomi delle variabili anche se scritti in caratteri minuscoli sono considerati come maiuscole da LogicLab.
-
AutorePost