Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumIl valore di lettura ritornato è in esadecimale complemento a 2, quindi il valore di 0 corrisponde a 0x8000 (32768), valori superiori indicano letture positive, valori inferiori indicano letture negative. Per ricavare il valore in corrente occorre eseguire la formula:
Corrente=(Valore letto-32768)*(20/32767) Semplificando: Corrente=(Valore letto-32768)*0.00061037
Applicando la formula il valore letto di 39348 corrisponde a: (39348-32768)*0.00061037=4.016 mA
Naturalmente essendo il tuo trasduttore un trasduttore 4-20 mA dovrai sottrarre l’offset di 4 mA alla lettura. Disponendo di una lettura anche per correnti inferiori ai 4 mA, è possibile utilizzare il controllo sui valori inferiori per determinare l’interruzione del cavo di connessione al trasduttore.Sergio Bertana
Amministratore del forumIl post precedente rettifica quanto riportato in questo post, dove nel campo DF era indicato il valore 02. Avevo fatto personalmente le prove, quindi non mi spiego perchè ora DF debba essere settato a 22, o si tratta di un refuso, oppure i nuovi convertitori hanno una versione firmware diversa.
Il comando modbus per la lettura della versione firmware è ID 46 07 00 (CRC). Inviando al modulo: 01 46 07 00 E2 3D, il modulo risponde con la data del firmware, nel modulo che ho testato la risposta è: 01 46 07 09 10 23 00 AB CF. Quindi il firmware è datato 23/10/2009.
Sergio Bertana
Amministratore del forumAlla prima domanda la risposta è già la stessa data nel post precedente, sia l’ATC-2000WF che la coppia Picostation convertitore ethernet/seriale possono funzione sia come access point che come station. Quindi li puoi agganciare ad una rete WiFi esistente e vederli come un nodo di rete con il proprio IP. Nel caso di Picostation e convertitore gli IP saranno 2 uno per la Picostation (Ha una pagina web di configurazione) ed uno per il convertitore.
Per quanto riguarda il prodotto raggiungibile da Internet su rete mobile (UMTS o GPRS) dai una occhiata ai routers Conel, supportano tutti il DynDNS ed hanno la possibilità di inserire all’interno una scheda estensione seriale. Hanno anche la possibilità di essere accesi/spenti via SMS, e nell’SMS di risposta inviano l’IP assegnato loro dal gestore. Attenzione, per raggiungerli da remoto solo alcuni gestori ne danno la possibilità (Vedi posts 1, 2).
Essendo su rete TCP/IP tutte le soluzioni operano nello stesso modo, quindi la porta seriale da WiFi access point, WiFi station, router è accessibile aprendo un socket su IP e port definite.
Sergio Bertana
Amministratore del forumSe ho ben interpretato la tua necessità, quello che cerchi certamente esiste, ti posso proporre due soluzioni tra i nostri prodotti, il convertitore Wi-Fi seriale ATC-2000WF oppure un qualsiasi convertitore ethernet-seriale (Esempio ATC-2000) abbinato ad un access point.
Non so se conosci come funzionano i convertitori ethernet-seriale, in pratica nel tuo caso li puoi configurare come server TCP, se tu apri una connessione con il convertitore (Indirizzo IP e porta specificata) da un terminale TCP client (Esempio Hyperterminal o Toolly), tutto quello che invii sul socket esce dalla porta seriale e tutto quello che ricevi dalla porta seriale viene trasmesso sul socket.
Per le impostazioni dei parametri seriali baudrate, parità, bit di dati li potrai impostare da pagina web (I convertitori ethernet-seriale dispongono tutti di un web server integrato).
Differenze tra le due soluzioni. L’ATC-2000WF ha una limitata possibilità di settaggi sulla porta seriale, solo 3 baud rates e non gestisce parità, mentre nei convertitori ethernet/seriale puoi trovare molta più flessibilità di impostazione.
L’ATC2000WF non ha il web server integrato, quindi le impostazioni devono essere fatte tramite interfaccia testuale da porta seriale.
Sergio Bertana
Amministratore del forumInteressante il post di paolo351, questo indica che a volte la pratica supera la teoria, non è raro nelle comunicazioni radio avere risultati inaspettati come quello descritto. A volte purtroppo capita il contrario, la teoria considerava possibile la realizzazione che poi invece in pratica ha dato problemi.
Sarebbe interessante sapere che tipo di apparati sono stati utilizzati per il ponte WiFi descritto, potrebbe essere utile come raffronto per altri utenti.
Sergio Bertana
Amministratore del forumIl modulo TRP-C68 può operare sia con protocollo ASCII (SW1=Off, SW2=On) che con protocollo Modbus RTU (SW1=Off, SW2=Off). Di default il modulo comunica a 9600, n, 8 e l’indirizzo di nodo modbus è 01. Il modulo utilizza il codice di comando modbus 0x46 (E’ un codice gestibile dall’utente e non definito nello standard) per gestire tutti i comandi di configurazione. Per la lettura dei valori analogici acquisiti vengono invece utilizzati i codici di comando 0x03:Read holding registers e 0x04:Read input registers.
Il formato della stringa modbus di interrogazione è: ID 03 00 NN 00 CN (CRC)
Dove NN:Indica il canale di partenza (Da 0 a 7) e CN:Indica il numero di canali da leggere (Da 1 a 8).La stringa di interrogazione quindi segue le specifiche dettate dal protocollo, il problema è nella stringa di risposta, la stringa di risposta cambia in base al tipo di acquisizione scelto. Con il comando module’s configuration (Vedi capitolo 7-4) del manuale ID 46 06 00 BD 00 TT 00 DF 00 00 (CRC) è possibile definire i parametri di funzionamento del modulo:
BD: Imposta il baud rate (06 per 9600 baud)
TT: Imposta il modo di acquisizione (08 per +/-10V)
DF: Imposta il formato dati.Occorre impostare correttamente il parametro DF, per avere acquisizione su 2 bytes, occorre definire il formato esadecimale complemento a 2 (2’s Complement HEX Format). Inoltre occorre definire acquisizione in modo Fast (Bit 5 attivo). Quindi su un modulo configurato di default (Indirizzo 01) dovremo inviare il comando: 01 46 06 00 06 00 08 00 22 00 00 EC B8, il modulo risponde con: 01 46 06 00 00 00 00 00 00 00 00 CB 73.
La configurazione impostata nel modulo rimane permanente, il modulo alla riaccensione resterà configurato come impostato dal comando.
Luglio 24, 2012 alle 6:30 am in risposta a: Invio di SMS associato ad una condizione di allarme #37339Sergio Bertana
Amministratore del forumUtilizzando prodotti della famiglia SlimLine, un modulo CPU ARM7 abbinato a moduli di I/O digitali ed analogici con un modem GSM, è possibile inviare SMS su condizioni di allarme. L’invio di SMS è facilitato da blocchi funzione appositamente realizzati allo scopo, che rendono la programmazione del prodotto estremamente semplice (Vedi questi posts (1), (2).
Come vedi dallo screenshot del programma LogicLab ho ipotizzato l’invio di due SMS di allarme su attivazione di ingressi logici, basterà aggiungere rami logici con un semplice cut and paste per gestire altri messaggi.Luglio 21, 2012 alle 9:20 am in risposta a: Conversione in unità ingegneristica ingresso 4-20 mA #37338Sergio Bertana
Amministratore del forumNel caso si desideri impostare un valore in unità ingegneristica da terminale e gestire una uscita in corrente 4-20 ma su di un sistema SlimLine aggiungo la formula per la conversione. Questa è la stessa formula utilizzata dal pannello operatore quando in un oggetto di Impostazione Numerica viene attivata la scalatura del valore.
Ratio:=(EValueHigh-EValueLow)/(OuputHigh-OutputLow);
Output:=OutputLow+((Preset-EValueLow)/Ratio);EValueHigh, EValueLow: Sono i limiti del valore ingegneristico.
OuputHigh, OutputLow: Sono i limitui del valore in uscita (4-20 mA).
Preset: E’ il valore ingegneristico impostato.
Output: E’ il valore di corrente in uscita.Luglio 20, 2012 alle 4:22 pm in risposta a: Conversione in unità ingegneristica ingresso 4-20 mA #37337Sergio Bertana
Amministratore del forumL’argomento scalatura variabili è stato trattato anche in questo post.
Luglio 20, 2012 alle 4:10 pm in risposta a: Conversione in unità ingegneristica ingresso 4-20 mA #37336Sergio Bertana
Amministratore del forumNel programma EasyBuilder è possibile definire negli oggetti Visualizzazione numerica ed Introduzione numerica una operazione di scalatura per convertire un valore acquisito da un ingresso del PLC in una unità ingegneristica. Ecco come puoi eseguire la stessa conversione realizzata nel post precedente (Screenshot).
In pratica definisci il valore minimo e massimo di scalatura, nel tuo caso -50 +100, ed i valori mimimo e massimo della variabile letta dal PLC, nel tuo caso 4-20 mA. L’oggetto esegue la lettura del valore dal PLC, lo converte in unità ingegneristica e ne visualizza il risultato.
Se si tratta di un oggetto di Introduzione numerica viene eseguito anche il calcolo opposto, inputando da terminale il valore ingegneristico viene scritto il valore corrispondente nella variabile PLC.
Allego un semplice progetto che tramite due oggetti di introduzione numerica, uno diretto ed uno con scalatura permette di testarne il funzionamento (Download progetto).
Luglio 20, 2012 alle 2:49 pm in risposta a: Conversione in unità ingegneristica ingresso 4-20 mA #37335Sergio Bertana
Amministratore del forumIl blocco funzione di acquisizione analogica SysGetAnInp, get analog input, quando esegue l’acquisizione da un modulo espansione I/O analogico nel modo 4-20 mA, ritorna un valore REAL compreso tra 4 e 20. In pratica l’FB ritorna il reale valore di corrente acquisito dall’ingresso analogico.
Per eseguire la conversione del valore in unità ingegneristica puoi eseguire una operazione matematica direttamente nel programma LogicLab con queste semplici operazioni (Screenshot).
Ratio:=(EValueHigh-EValueLow)/(InputHigh-InputLow); (* Ratio *)
EValue:=EValueLow+((Input-InputLow)*Ratio); (* Engineering value *)Come vedi dai valori in debug nel caso di conversione dell’ingresso di temperatura al valore di 12 mA in ingresso corrisponde una temperatura di 25 gradi.
Luglio 20, 2012 alle 12:14 pm in risposta a: Differenza tra import di libreria ed import di oggetti #37334Sergio Bertana
Amministratore del forumSei incappato in uno dei problemi che si possono manifestare importando nel progetto una intera libreria anzichè i singoli oggetti. Nella fattispecie la libreria PLCUtyLib è un contenitore di oggetti (Funzioni e Blocchi funzione) di varia utilità. Questa libreria non và mai importata nel progetto, ma si devono importare dalla libreria solo gli oggetti che si utilizzano.
Importanto l’intera libreria quando si compila il progetto, LogicLab esegue la compilazione anche della libreria e nel caso vi siano errori negli oggetti di libreria (Anche se l’oggetto in errore non è utilizzato nel progetto) viene segnalato errore. Nel tuo caso l’errore nasce dal fatto che il blocco funzione IEC62056_21Rd utilizza al suo interno la funzione MemSet che si trova nella libreria ePLCAuxLib.
Per ogni riga di programma sorgente dove la funzione MemSet è richiamata vi è errore, 4 errori in totale, su ogni riga in errore è ritornato il numero di riga (Tra parentesi). Essendo il blocco funzione IEC62056_21Rd criptato, eseguendo un doppio click sull’errore non è possibile saltare nel programma sorgente, cosa che succederebbe se fosse un blocco funzione libero.
Luglio 20, 2012 alle 10:40 am in risposta a: Differenza tra import di libreria ed import di oggetti #37332Sergio Bertana
Amministratore del forumCon l’installazione di LogicLab vengono installate anche delle librerie che contengono oggetti (Funzioni e blocchi funzione) utili nello sviluppo del programma. Per utilizzare gli oggetti presenti nelle varie librerie è possibile inserire nel progetto l’intera libreria oppure soltanto gli oggetti utilizzati (Estratto manuale).
Alcune librerie devono essere obbligatoriamente inserite nel progetto per poter utilizzare gli oggetti presenti, questo perchè la libreria oltre agli oggetti utilizzati nel programma e documentati nel manuale contiene anche oggetti e/o strutture dati utilizzati internamente, pertanto non è possibile importare solo i singoli oggetti. Alla data attuale le librerie di questo tipo sono:
eModemLib: Libreria gestione modem.
ePLC1WireLib: Libreria gestione dispositivi One-Wire.
eNMEALib: Libreria gestione sequenze NMea.Sergio Bertana
Amministratore del forumAttenzione nel progetto EasyBuilder viene memorizzato il percorso alla varie librerie, pertanto conviene sempre trasferire le librerie nella directory Library di EasyBuilder, tenendone copia nella cartella di salvataggio del proprio progetto.
Nel caso si utilizzi di un PC diverso da quello utilizzato per lo sviluppo occorre ricordarsi di copiare le varie librerie utilizzate nella directory Library. Se non sono presenti le librerie, aprendo il progetto, viene segnalato errore (Screenshot).
In questo caso chiudere EasyBuilder, copiare la libreria nella posizione richiesta e poi riaprire EasyBuilder.
Sergio Bertana
Amministratore del forumNella procedura di installazione del programma EasyBuilder vengono automaticamente installate un certo numero di librerie. Weintek mette a disposizione sul suo sito per il download un vasto numero di librerie di simboli, le librerie sono suddivise per argomenti, per ogni libreria viene presentata una immagine gif che illustra tutti i simboli presenti (Libreria Heating). E’ possibile eseguire il download delle librerie che servono ed utilizzarle nel proprio progetto. Esistono tre tipi di librerie.
Shape, estensione plb: Contiene oggetti vettoriali realizzati da EasyBuilder.
Immagine, estensione flb: Contiene simboli grafici realizzati con programmi di disegno.
Gruppo, estensione glb: Contiene raggruppamenti di oggetti.Scaricato il file di libreria, conviene trasferirlo nella cartella library di installazione programma EasyBuilder, poi dal menù Libreria si sceglie il tipo di libreria che si desidera importare, si aprirà la finestra di visualizzazione delle librerie presenti nel progetto, agendo sul tasto Seleziona Libreria è possibile importare nuove librerie (Screenshot).
-
AutorePost