Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Novembre 11, 2015 alle 8:55 am in risposta a: Convertitore di protocollo Modbus Ethernet-Seriale #39159
Sergio Bertana
Amministratore del forumIl prodotto MTRTU-TCP è un gateway Modbus TCP/Modbus RTU, noi abbiamo a catalogo sia il TRP-C37M della Trycom che l’ATC-3001 della ATC. In pratica questi convertitori accettano connessioni in Modbus TCP e convertono il protocollo in Modbus RTU, la differenza tra i diversi prodotti è il numero di connessioni TCP/IP contemporanee supportate (10 per MTRTU-TCP, 16 per l’ATC37-M, 4 per l’ATC-3001).
Attenzione và posta per comprendere come il convertitore ed il programma SCADA gestiscono il numero di nodo sulla connessione seriale (Topic). Proprio per venire incontro a questa neccessità che abbiamo sviluppato un FB apposito per utilizzare un nostro sistema SlimLine come gateway Modbus (Topic). Utilizzando un prodotto programmabile possiamo gestire la conversione di protocollo in modo intelligente adattandola (semplicemente modificando il programma) alle nostre esigenze.
Per quanto riguarda la parte seriale, come da specifica RS422/485 si possono avere fino a 1200 metri di cavo e fino a 32 dispositivi connessi (Topic).
Sergio Bertana
Amministratore del forumIl PLC Siemens S7-200 richiede una buona banda per poter connettersi in Pass Trough quindi se si hanno connessioni locali o remote ad internet con bande oscillanti o molto basse il più delle volte il software PLC va in time out. Con EasyAccess si migliora la condizione in quanto si va ad attingere anche ad altre risorse, ma se la banda è veramente pessima non risolve completamente il problema.
Per poter attivare EasyAcces sul pannello installato si deve aggiornare il firmware del pannello ed aggiornare il software (progetto) del pannello con l’ultima versione di EasyBuilderPro. Se ti serve il firmware del pannello devi fare una richiesta via eMail a support.
Sergio Bertana
Amministratore del forumIntanto come dicevo èpossibile visualizzare sul pannello la LW 9025 “carico cpu %” per vedere che carico di lavoro stà effettuando la CPU. Ma stando a quello che dici che con un programma demo il tutto funziona è sicuramente un problema di carico di lavoro.
La comunicazione ethernet tra il pannello ed il PLC per quanto riguarda gli oggetti grafici posti nelle pagine è gestita dal sistema operativo del pannello che la sequenzia in base al proprio carico di lavoro. Quindi escluderei questa parte, ma sicuramente un Data Transfer di grandi blocchi di dati a tempi ravvicinati, o utilizzo di loop “massacranti” in macro eseguite a tempo potrebbero certamente sovraccaricare il pannello.
Consiglio è di vedere se nel tuo programma hai fatto uso del trasferimento dati e/o di macro a tempo e provare a rallentarne l’esecuzione.
Sergio Bertana
Amministratore del forumPiu che un problema di rete sembrerebbe essere un problema di terminale troppo ocupato a gestire il programma locale. Hai provato a fare un programma nuovo, solo un pulsante e lampada locali su HMI e vedere se l’accesso da VNC funziona ?
Sergio Bertana
Amministratore del forumHo realizzato un programma di esempio con quello che tu desideri fare (Ecco lo screenshot con le impostazioni di massima). Come vedi la macro esegue il lampeggio di LB 0 mentre un pulsante nascosto posto sulle due pagine Attiva/Disattiva il bit LB 10 che condiziona l’esecuzione della macro.
Eseguendo in simulazione il programma potrai vederne il funzionamento. In pagina 1 la macro fà lampeggiare LB 0 mentre in pagina 2 il lampeggio è bloccato. Naturalmente in pagina 2 il bit rimane nell’ultima condizione lasciata dalla macro (Download programma).
Novembre 4, 2015 alle 1:57 pm in risposta a: Utilizzo emulatore PC come semplice programma SCADA #39149Sergio Bertana
Amministratore del forumSi certo ogni cMT-SVR supporta 3 connessioni contemporanee, quindi con 2 puoi arrivare a 6.
Io ipotizzo che la connessione dei cMT-SVR e di altri eventuali pannelli con il PLC sia realizzata in rete Ethernet, in tal caso puoi mettere quanti dispositivi vuoi, l’unica attenzione và fatta controllando che il PLC a cui ti colleghi supporti connessioni multiple.
In alternativa puoi utilizzare uno dei dispositivi come dispositivo master connesso al PLC mentri gli altri dispositivi (cMT-SVR o Pannelli) possono essere dispositivi slave connessi in rete Ethernet al dispositivo master. In questa configurazione il dispositivo master veicola le richieste degli altri verso il PLC anche su connessioni seriali.
E’ però evidente che passando tutte le richieste nell’unica connessione realizzata si ha un rallentamento della comunicazione.
Novembre 4, 2015 alle 1:48 pm in risposta a: Gestione caldaia da Web con curva temperatura mandata #39147Sergio Bertana
Amministratore del forumEsiste la possibilità di usare il registro indice che permette di creare un offset sull’indirizzo delle variabili. L’utilizzo dell’INDEX è comodo per gestire le ricette o nel caso tu voglia eseguire uno scroll dei 32 valori su di un unico oggetto di visualizzazione. Basterà con due tasti incrementare o decrementare di 2 in 2 il valore del registro INDEX utilizzato.
Ma se la tua necessità è di avere tutte le temperature visualizzabili contemporaneamente, allora devi per forza definire 32 diverse Tags.
Sergio Bertana
Amministratore del forumPer la simulazione degli I/O è possibile simulare solo gli ingressi digitali del modulo 0 e gli ingressi analogici del modulo 1 per i quali sono disponibili i pannelli relativi (Screenshot).
Quindi per le analogiche tu puoi mettere nel tuo programma l’esecuzione al FB SysGetAnInp con Address 1 ed avrai come valore in uscita su Value il valore impostato tramite lo slide nel pannello. E’ evidente che non importa il modo di acquisizione, quindi se acquisisci una Pt100 avrai in uscita il valore impostato con lo slide come se fosse la tua temperatura in gradi. Se nel tuo progetto hai molti più I/O di quelli simulabili si usa questo workaround.
Per gli ingressi digitali basterà trascinarli nel pannello di simulazione indipendentemente dal loro indirizzo di assegnazione.
Per gli ingressi analogici si scollega l’uscita Value del blocco funzione dalla variabile di appoggio e se la variabile è globale si alloca in memoria DB100 e poi si trascina nel pannello di simulazione. Se la variabile è locale si può o spostarla nelle variabili globali (Allocandola nella DB100) per la simulazione, oppure si definisce una nuova variabile globale solo per la simulazione eseguendo un MOVE dalla variabile simulata nella variabile locale.
Regola generale del simulatore, è possibile trascinare nei pannelli di simulazione solo gli I/O digitali e le variabili allocate in memoria DB 100.
Non è possibile testare la comunicazione Modbus con il pannello operatore, il simulatore non gestisce il protocollo di comunicazione Modbus.
Sergio Bertana
Amministratore del forumSperando di fare cosa gradita allego una versione in Italiano del manuale utente dello strumento reperita in Internet. Dovendo modificare il valore di baud rate dal default di 9600 baud al valore di 2400 baud per poter inserire lo strumento in una rete Modbus con altri oggetti, ho utilizzato Toolly per inviare i comandi Modbus relativi al cambio baud rate.Frame Modbus da inviare allo strumento (Con ID 1) per impostare baud rate a 2400 baud “01 10 F8 00 00 01 02 00 02 5E 5E“Frame Modbus da inviare allo strumento (Con ID 1) per impostare baud rate a 9600 baud “01 10 F8 00 00 01 02 00 04 DE 5C“Attenzione affinché i comandi Modbus di settaggio baud rate siano accettati dallo strumento occorre avere tenere premuto il tasto PRG sullo strumento per almeno 5 secondi. Al rilascio si attiva una icona tipo cornetta telefonica sul display, ora è possibile inviare i comandi che saranno automaticamente memorizzati. Se il comando cambio baud rate non è accettato lo strumento risponde con il codice di eccezione “01 90 01 8D C0“. Se il comando è accettato lo strumento risponde con “01 10 F8 00 00 01 30 A9“.
Sergio Bertana
Amministratore del forumIn questo topic si trova un progetto per acquisire i valori dal misuratore di energia direttamente con un pannello operatore.
Sergio Bertana
Amministratore del forumHo realizzato un semplice progetto che illustra come utilizzare il simulatore (Screenshot). Come vedi ci sono dei pannelli già preconfezionati con gli I/O dei moduli standard, ma agendo sul tasto “Add” puoi aggiungere altri pannelli a tuo piacimento.
Aperto il nuovo pannello puoi trascinare le variabili globali nel pannello, tutto il workspace del simulatore con tutti i pannelli di visualizzazione potrà poi essere salvato per poterlo riaprire all’occorrenza.
Non è possibile trascinare nel pannello del simulatore le variabili locali, per eseguire il debug delle variabili globali occorre trasinarli nella finestra di watch.
Gli ingressi analogici sono acquisiti dal blocco funzione SysGetAnInp che ritorna una variabile REAL con il valore acquisito già convertito in unità ingegneristica. Se vuoi trasferire il valore sul pannello operatore devi ricopiare il valore in uscita dal FB su di una variabile allocata nella DB 100.
Se usi variabili UINT a 16 bits, puoi effettuare una moltiplicazione del valore per avere cifre decimali, ma ti ricordo che gli HMI della Weintek possono gestire direttamente le variabili REAL. Ecco il programma sorgente dell’esempio, in cui viene effettuata anche l’acquisizione analogica. Ricordo che SimuLab non gestisce le comunicazioni quindi per testare il funzionamento con l’HMI puoi utilizzare il simulatore HMI di EasyBuilderPro ma devi avere necessariamente un modulo CPU fisico.
Sergio Bertana
Amministratore del forumPer passare strutture dati a blocchi funzione occorre utilizzare il passaggio per indirizzo e non per valore. Puoi dichiarare un tuo FB che ha come parametro in ingresso un puntatore allla struttura da te definita (Screenshot).
Nell’esempio riportato la struttura MYDATASTRUCT viene passata per indirizzo, il FB ha il parametro In definito di tipo @MYDATASTRUCT. Nel programma al FB LclFB di tipo MyFB viene passato l’indirizzo della variabile LclDS di tipo MYDATASTRUCT. Come si vede dalla finestra di watch vaolorizzando il campo LclDS.MyUInt con il valore 5, il FB può eseguire la moltiplicazione e valorizzare il campo LclDS.MyUDint con il valore 50.
Sergio Bertana
Amministratore del forumPer disabilitare il controllo sul DTR devi utilizzare il comando AT&D0, il manuale recita:
0: ME ignores status of the DTR line.
1: ON->OFF on DTR: Change to command mode while retaining the data connection.
2: ON->OFF on DTR: Disconnect the data connection (only for CSD and PPP) and change to command mode.Mentre sempre da manuale sembra che l’impostazione AT&Dx sia salvata in memoria dal comando AT&Wx come si evince dalla tabella AT Command Settings storable with AT&W riportata in fondo al manuale (Estratto).
Novembre 2, 2015 alle 9:06 am in risposta a: Sonda Umidita’ e Temperatura T9600-D General Electric #39136Sergio Bertana
Amministratore del forumNella gamma dei nostri prodotti abbiamo questo Sensore combinato Temperatura/Umidità con uscita 4÷20 mA che può essere acquisito con i due ingressi analogici del modulo CPU Compact.
In alternativa si può utilizzare questo Sensore temperatura/umidità RS485, che ha una uscita RS485 che è possibile acquisire dalla porta seriale del modulo CPU. Un apposito FB sHWgSProtocol (Estratto manuale) provvede alla completa gestione del protocollo di acquisizione.
Novembre 2, 2015 alle 8:37 am in risposta a: Sonda Umidita’ e Temperatura T9600-D General Electric #39135Sergio Bertana
Amministratore del forumIl sensore che citi è un prodotto da abbinare più ad un microcontrollore che ad un sistema industriale come lo SlimLine. Come si vede dal Datasheet il sensore và alimentato a 5 Vdc, e questa è una tensione non facilmente disponibile in un quadro elettrico.
Ma se vogliamo fare un pò di accademia, possiamo dire che ad esempio disponendo di un modulo Mixed I/O potresti usare un D/A per alimentare il sensore ed utilizzare la versiona analogica del sensore (Due uscite in tensione da 0÷1 Volt) per acquisire il valore di temperatura ed umidità.
La versione digitale prevede due uscite Manchester una a 8 bit per l’umidità e una a 10 bit per la temperatura, ma non ho trovato nè indicazione del tipo di uscita (Open collector, Open emitter, Push-pull, ecc) nè indicazione della frequenza di uscita. Ipotizzando uscite open collector si potrebbero acquisire con due ingressi digitali, ma è importante conoscere la frequenza di uscita. E’ possibile acquisire segnali digitali campionando nella task Fast, occorrerà scriversi il programma di acquisizione della codifica Manchester.
-
AutorePost