Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Giugno 20, 2012 alle 10:34 am in risposta a: Come inserire valore di variabili nel testo di un allarme #37290
Sergio Bertana
Amministratore del forumLa visualizzazione del valore di variabili all’interno di un testo di allarme è possibile, si possono visualizzare fino a 4 variabili. Nell’oggetto allarmi, devi definire nel testo dell’allarme il tag %(WATCHx)d, dove WATCHx con x da 1 a 4 indica la variabile da visualizzare e d indica la visualizzazione in decimale (Screenshot).
In basso si apriranno i dialog per la definizione delle variabili e potrai definire sia variabili locali pannello che variabili PLC. Il valore visualizzato nel testo dell’allarme è quello che la variabile aveva al momento dell’allarme, se il valore della variabile cambia il valore visualizzato non lo segue.
Allego un programma di esempio che permette di attivare l’allarme e di ritornare nel testo dello stesso il valore di due variabili. La definizione dell’allarme è: Testo V1:%(WATCH1)d, V2:%(WATCH2)d ed ecco lo screenshot del programma in simulazione (Download programma).
Giugno 19, 2012 alle 10:29 am in risposta a: Gestione stringhe da seriale e da connessione UDP #37289Sergio Bertana
Amministratore del forumAndiamo con ordine e vediamo di risolvere i problemi sulla ricezione seriale, poi analizzeremo quelli sulla connessione UDP. Il fatto che la funzione SysGetIChars torni al massimo 255 l’ho spiegato prima, quindi è normale. Il programma che ho postato infatti esegue il buffering dei dati ricevuti proprio per poter suddividere la ricezione dei tuoi 2048 bytes in pacchetti massimo di 255 bytes.
Per quanto riguarda la trasmissione UDP puoi trasmettere pacchetti di 1000 bytes, quindi se il pacchetto ricevuto è di dimensioni maggiori dovrai suddividerlo. Ti allego la stampa ed il programma sorgente di un programma che bufferizza i dati in ricezione e trasmette il pacchetto ricevuto su UDP.
Utilizzando Toolly puoi inviare un file testo da 2040 caratteri (20 righe da 100 caratteri <CR><LF>) sulla seriale verso lo SlimLine e dal server UDP vedrai i dati ricevuti dalla connessione UDP (Vedi screenshot). I dati sono trasmessi dallo SlimLine dopo 1 secondo che non riceve più dati dalla porta seriale. Come puoi notare dallo screenshot il debug della variabile TxChrs indica i bytes ricevuti e poi ritrasmessi su connessione UDP.
Giugno 19, 2012 alle 9:36 am in risposta a: Connessione multicast su convertitori Ethernet/Seriale #37287Sergio Bertana
Amministratore del forumDevi realizzare una rete multicast tra i tuoi 4 convertitori, come vedi dallo screenshot del post precedente, in configurazione UDP il convertitore ATC1000 può inviare dati contemporaneamente fino a 10 altri convertitori. Quindi ipotizzando che gli IP dei convertitori siano (Per configurare l’IP del convertitore vedi post):
PLC1: 192.168.0.1, PLC2: 192.168.0.2, PLC3: 192.168.0.3, Master seriale: 192.168.0.10.
Intanto fissi la porta su cui dialogare, esempio 1000.
Sul master seriale definisci i 3 IP dei PLC (192.168.0.1, 2, 3) e relativa porta 1000.
Sui 3 PLC definisci l’IP del master seriale (192.168.0.10) e relativa porta 1000.Sergio Bertana
Amministratore del forumIl modulo di acquisizione analogico PCB126, utilizza per l’acquisizione del segnale analogico il convertitore Sigma-Delta AD7794 della Analog Devices, come si vede dal datasheet il convertitore ha 24 bits di risoluzione quindi è in grado di suddividere il campo di lettura in oltre 16 milioni di parti.
Per l’acquisizione delle Pt100 si utilizza una parte della intera scala di acquisizione del convertitore e quindi il numero di bits a disposizione diminuisce, questo porta alla risoluzione di lettura indicata 0.002°C. Ma attenzione a non confondere la risoluzione con l’accuratezza di lettura che dipende dal trasduttore impiegato e dal cablaggio dello stesso.
Le Pt100 possono acquisire temperature nel range da -200 a 850 °C, tipicamente hanno una precisione di 0.2%, 0.1% o 0.05%, dipende dal prezzo. Molta importanza sulla accuratezza di lettura la riveste il cablaggio, dovendo misurare valori di resistenza molto piccoli (Tipicamente 100 Ohm) occorre eseguire la compensazione della resistenza del filo di rame con cui è connessa la Pt100 con il convertitore, ecco quindi che è preferibile scegliere un cablaggio a 4 conduttori.
Giugno 18, 2012 alle 10:16 am in risposta a: Gestione stringhe da seriale e da connessione UDP #37284Sergio Bertana
Amministratore del forumC’è un pò di confusione, vediamo di chiarire il concetto della gestione delle comunicazioni seriali sullo SlimLine. Il buffer seriale è effettivamente di 256 bytes, ma non è necessario aumentarne la dimensione. Il buffer seriale serve a contenere i dati che arrivano dalla seriale solo per dare il tempo al programma utente di leggerli.
Quindi considerato che il programma utente (Task di background) ha come tempi di esecuzione valori tipici di pochi mS è evidente che in quel tempo può essere ricevuto solo qualche carattere. Ora il tuo problema è di leggere i dati dal buffer di ricezione e di trasferirli nella stringa che hai definito.
Se vuoi ricevere l’intera stringa, il problema è capire quando la stringa è terminata, può essere utilizzato un carattere delimitatore (Se esiste), oppure attendi un timeout, se non ricevuti caratteri per un tempo definito si considera la stringa ricevuta e si invia sul socket UDP.
Attenzione anche in trasmissione devi eseguire uno spooling dei dati in uscita caricando nel buffer di trasmissione solo i caratteri che possono essere contenuti. Per darti una idea di qaunto detto ti allego la stampa ed il programma sorgente di un dimostrativo.
Sergio Bertana
Amministratore del forumAbbiamo fatto un test in laboratorio ed effetivamente esiste un problema con il baud rate di 115.2 Kbps. Abbiamo informato il fornitore che ci ha comunicato un errore di montaggio su di un lot di produzione, in pratica una resistenza sull’optoisolatore di trasferimento dati seriali ha un valore maggiore di quello richiesto.
Il problema è il valore di R7 che deve passare da 390 Ohm a 200 o 220 Ohm (Vedi Foto). Per quanto riguarda i pezzi a Vs mani, potete eseguire voi la sostituzione della resistenza oppure ritornarci i pezzi e provvederemo a sostituirli con pezzi nuovi.
L’apertura del convertitore è molto semplice, occorre rimuovere l’unica vite di chiusura posta nella parte sottostante e poi tirare verso l’alto la calotta di chiusura (E’ trattenuta a pressione da due clips plastiche).
Sergio Bertana
Amministratore del forumPer alcune lingue che richiedono fonts particolari è possibile selezionare dai fonts di Windows il font desisiderato (Vedi screenshot). Ricordo però che utilizzando il font Arial è comunque possibile realizzare testi in diverse lingue come si vede dal progetto allegato (Vedi screenshot).
Nel progetto la parola Cane viene convertita in Inglese, Greco, Chinese, Arabo. Agendo sulla bandierina si cambia il valore nella LW-9134 (Visualizzata a lato della scritta) e la parola viene visualizzata nella lingua scelta, non mi assumo responsabiltà sulle traduzioni fatte tramite il traduttore di Google (Download progetto).
Giugno 11, 2012 alle 10:16 am in risposta a: Drivers per Windows 7 convertitori USB-Seriale Trycom #37276Sergio Bertana
Amministratore del forumIl convertitore TRPC08 ad una porta utilizza il chip PL2303HX della Prolific, presso il sito del costruttore del chip è possibile trovare tutta la documentazione tecnica ed i drivers anche per Windows 7. Eseguendo il download del driver vi è all’interno una guida in pdf per l’installazione.
Nel caso non riusciate ad eseguire il download del driver potete inviare una richiesta a technical[at]elsist.it vi invierò il driver.Giugno 8, 2012 alle 8:45 am in risposta a: Gestione trasferimento ricette tra terminale e pen drive USB #37273Sergio Bertana
Amministratore del forumPurtroppo non c’è un bit di segnalazione trasferimento in corso. LB-9039 indica lo stato del backup non del data transfer.
Ho clienti che hanno semplicemente realizzato tramite una macro una temporizzazione e dopo il tempo segnalano la fine del trasferimento. La disponibilità di un bit di segnalazione trasferimento in corso è una richiesta che abbiamo già posto a Weintek, può essere che nelle prossime versioni del firmware sia disponibile.
Sergio Bertana
Amministratore del forumMi sembra di capire che più che tra due tasks il tuo problema sia di gestire un comando tra due programmi. Sia il programma LD di gestione DLMS che il tuo programma ST di gestione dialogo UDP devono essere e sicuramente lo saranno entrambi eseguiti nella task Back.
Cerco di dare una breve spiegazione di come è gestita l’esecuzione nello SlimLine, esistono 4 tasks di esecuzione, ed è possibile forzare l’esecuzione dei vari programmi collegandoli alla relativa task (Screenshot). All’interno di ogni task i programmi sono eseguiti nell’ordine in cui sono riportati (Nella task Back prima viene eseguito il programma LDProgram e poi STProgram).
Come hai già fatto notare tu tutte le variabili globali sono visibili da tutti i programmi e da tutte le tasks, quindi se tu definisci una variabile BOOL globale la puoi settare dal programma LD e la puoi testare dal programma ST. Nel mio programma di esempio nel programma LD ad ogni attivazione di SysClock1000 attivo per un loop la variabile BOOL Flag. Nel programma ST se Flag è attivo incremento Counter. In questo modo Counter verrà incrementato ad ogni secondo, stampa e download programma.
Giugno 7, 2012 alle 6:39 am in risposta a: Misura corrente di fuga su condensatori elettrolitici #37270Sergio Bertana
Amministratore del forumNella domanda mancano alcune informazioni importanti, quale è il valotre della corrente di fuga, e quale è il tempo di misurazione della stessa.
Per effettuare il test dei condensatori se utilizzi un sistema automatico che applica la tensione di prova e testa la corente di fuga puoi utilizzare prodotti della nostra famiglia SlimLine. Come vedi sono sistemi modulari e programmabili e nella gamma di moduli abbiamo sia moduli digitali che analogici.
Per la misura della corrente puoi utilizzare un modulo di acquisizione analogico, come vedi dalle caratteristiche il modulo è in grado di eseguire 62 acquisizioni al secondo con risoluzione di 19 bits ed un range di 0-10Vdc oppure 0-1.17Vdc. Naturalmente dovrai convertire la corrente in tensione con uno shunt appositamente calibrato per il fondo scala di acquisizione.
Giugno 6, 2012 alle 3:12 pm in risposta a: Gestione trasferimento ricette tra terminale e pen drive USB #37269Sergio Bertana
Amministratore del forumVediamo di fare chiarezza, l’oggetto Backup serve per trasferire su di un pen drive USB tutta l’area delle variabili RW per poterla poi eventualmente salvare su di un PC (E’ possibile definire il formato CSV per essere facilmente importato in Excel) e non è previsto alcun restore da pannello ma è possibile restorare l’area utilizzando il programma EasyManager.
Quello che invece tu necessiti se ho ben capito è di salvare su pen drive USB un tuo ricettario e poterlo ricaricare dalla pen drive su comando da pannello operatore. Per fare questo devi utilizzare l’oggetto Trasferimento dati con trigger. Questo oggetto come si vede dal dialog (Screenshot) permette di trasferire a comando (L’oggetto ha la forma di un pulsante), oppure definendo una sorgente di trigger (Un pulsante o una variabile PLC), una serie di variabili RW dal terminale ad un pen drive.
Come vedi puoi definire la sorgente e la destinazione dei dati, con EMx si indica un file sul pen drive (Il file si chiamerà EMx.emi). Ogni file EMx può contenere fino ad un massimo di 2 GW di dati (Dipende dalla dimensione del supporto), puoi avere fino a 10 file EM.
Naturalmente avrai un oggetto con sorgente RW e destinazione EMx per il backup ed uno con sorgente EMx e destinazione RW per il restore. Dal menù Edit -> Parametri di sistema puoi impostare sia il nome del file che il supporto per i file di memoria estesa (Screenshot).
Giugno 6, 2012 alle 10:00 am in risposta a: Utilizzo software di alarm management con prodotti Damocles #37268Sergio Bertana
Amministratore del forumPresso il sito del produttore HWgroup è possibile trovare una lista dei programmi commerciali compatibili con i prodotti. Per ogni programma è riportata una breve descrizione ed uno screenshot illustrativo.
Sergio Bertana
Amministratore del forumSolitamente il pannello è master modbus ed interoga le variabili sul PLC. Questo comporta avere tutti i sockets in ascolto per ricevere le stringhe di interrogazione modbus dai vari pannelli.
Per connettere più pannelli operatore ad un modulo CPU è preferibile ribaltare il modo di gestione, il pannello diventa un server modbus ed il modulo CPU scrive e legge i dati su di esso. In questo modo è possibile realizzare reti con più pannelli anche in connessione seriale RS485 (Abbiamo un caso reale di un nostro cliente che ha realizzato una rete con 15 pannelli server in RS485).
Se vuoi usare la connessione ethernet, potrai configurare il pannello per operare come server modbus in connessione UDP (Screenshot) ed il programma sul PLC gestisrà le interrogazioni verso gli indirizzi IP dei vari pannelli in rete.
Sergio Bertana
Amministratore del forumIl modulo CPU SlimLine ARM7 gestisce un massimo di 10 sockets TCP/IP contemporaneamente, vediamo nel dettaglio quali sono:
1 socket su porta 21: Server Ftp
1 socket su porta 23: Server Telnet
1 socket su porta 80: Server Web
3 sockets su porta 502: Server modbusNaturalmente per utilizzare il server Ftp occorre avere disponibile un socket per i dati, quindi si evince che rimangono 3 sockets disponibili per programma utente, (Vedi post).
Quindi se vuoi connettere più pannelli Weintek in modbus TCP puoi utilizzare i 3 sockets disponibili ed aggiungerne eventualmente altri 3 da programma utente (Vedi post).
-
AutorePost