Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumEcco le risposte alle domande poste.
- Il convertitore non è isolato dalla alimentazione ma è isolato dalla porta Ethernet.
- Se si utilizza l’alimentatore fornito con il convertitore si è isolati da terra. Altrimenti si può scegliere se isolare o meno in funzione dei dispositivi connessi alla porta seriale.
- Il conduttore di riferimento sulle linee RS422/485 normalmente non è necessario, è possibile comunque connetterlo su lunghe distanze.
- Sulle linee RS422/485 non sono incluse le resistenze di terminazione, è possibile utilizzare resistenze da 120Ohm sulle estremità delle connessioni.
- Sulle linee RS422/485 non serve predisporre la polarizzazione.
- I transceivers utilizzati sulle linee RS422/485 supportano fino a 255 nodi.
Per quanto riguarda la connessione TCP certo ne basta 1 che può eseguire il polling di tutti i dispositivi RTU connessi semplicemente indicando il numero di nodo nella richiesta.
Sergio Bertana
Amministratore del forumLa visualizzazione dei file PDF è una funzionalità utilizzata per fornire informazioni all’operatore direttamente dal pannello, con l’oggetto PDF Reader (Screenshot) è possibile aprire un file PDF (Deve essere salvato su PenDrive USB) e visualizzarne il contenuto.
Solitamente su un tasto di help oppure su errore gestito dal PLC è viene aperta una finestra in pop-up con la visualizzazione dell’estratto del manuale utente. Questa funzione però è disponibile solo sui pannelli serie cMT, non è disponibile sui pannelli serie iP ed iE.
Come workaround puoi creare pagine con immagini jpeg del contenuto del file PDF da visualizzare, naturalmente non potrai scrollare sulla pagina visualizzata.
Sergio Bertana
Amministratore del forumHo analizzato il progetto che mi hai inviato, ecco alcune considerazioni:
- Il progetto è realizzato con la V6.06.01.503, puoi aggiornare EasyBuilderPro almeno alla V6.07.02.466 presente sul nostro sito?
- Sul pannello impostare data e ora correttamente, devono essere aggiornati con il server OPC-UA (se è già cosi andate al test successivo).
- Collegare il PC direttamente al server OPC-UA, usare il simulatore online (così escludiamo il pannello e testiamo solo il progetto), almeno così funziona o stesso problema?
- Se anche in simulazione capita lo stesso problema, è un qualcosa sul progetto, se in simulazione funziona bene probabilmente è qualcosa sul pannello.
- Controllare che nel progetto quando importate le tag, non ci siano tag non supportate, fare riferimento al documento presente nei post precedenti.
Sergio Bertana
Amministratore del forumL’unico documento che ho sul client OPC-UA è questo.
Come consiglio potresti verificare con un tool di diagnosi per OPC-UA (Ce ne sono di gratuiti su Internet) se il server pubblica effettivamente le variabili che ti vanno in errore sul pannello.
Sergio Bertana
Amministratore del forumCon il rilascio della versione 5.22.x.xx di LogicLab è stata introdotta la gestione degli operandi Data/Ora questo ha portato ad alcune modifiche del sistema operativo la più evidente è l’introduzione della funzione SysTimeGetMs.
Tutte le nuove librerie che rilasciamo fanno riferimento a questa funzione, quindi per poterle utilizzare devi necessariamente utilizzare l’ultima versione di LogicLab e l’ultima versione del firmware (Vedi articolo).
Sergio Bertana
Amministratore del forumPer poter utilizzare il TLS con la definizione dei:
TLSClient.CipherSuites:=eNULL; //Cipher suites supported TLSClient.Psk:=eNULL; //Preshared key TLSClient.PskIdentity:=eNULL; //Preshared key identity
Occorre avere il firmware da versione SFW198E070, lo puoi scaricare dal sito.
Sergio Bertana
Amministratore del forumQuindi mi sembra di capire che stai comunicando in seriale RS485, con che modello di CPU stai lavorando.
Se è il modello con la porta RS485 integrata la gestione del commutazione Rx/Tx è automatica ma devi settare opportunamente il FB SysSerialPort.
Sp.DTRManagement:=DTR_AUTO_WO_TIMES; //DTR management Sp.DTRComplement:=FALSE; //DTR complement Sp.EchoFlush:=FALSE; //Received echo flush Sp.DTROnTime:=0; //DTR On time delay (mS) Sp.DTROffTime:=0; //DTR Off time delay (mS) Sp.FlushTm:=0; //Flush time (mS)
Se invece utilizzi un convertitore RS232/RS485 devi verificare che gestisca correttamente la commutazione.
Invece non mi spiego perchè non vedi i pacchetti Tx, che sicuramente ci sono visto che ci sono i pacchetti Rx. Però se guardo i tuoi post solo nel primo post non si vedono i pacchetti Tx negli altri due sono presenti. Un motivo per non vederli è se attivi lo SpyData con il trigger sui soli pacchetti Rx ed errori (Vedi articolo):
SpyData -t 40000001
Ma non credo sia il tuo caso.
Sergio Bertana
Amministratore del forumConsiderazione corretta, aggiungo solo un suggerimento, se si usa il comando SpyData con l’opzione -v 3, si avrà la visualizzazione diretta del tempo trascorso tra un report e l’altro.
SpyData -v 3 Spy data active, type "Ctrl-C" to exit... 00:14:23( 0)|ModbusSlave:Rx|03 0D 00 00 00 06 01 03 9C 40 00 0A 00:14:23( 2)|ModbusSlave:Tx|03 0D 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:14:24(1038)|ModbusSlave:Rx|03 0E 00 00 00 06 01 03 9C 40 00 0A 00:14:24( 2)|ModbusSlave:Tx|03 0E 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Una domanda ma il programma che esegue la ModbusMaster è eseguito nella task Back?
Sergio Bertana
Amministratore del forumProbabilmente hai un sistema XTarget devi aggiornare a XUnified (Vedi articolo).
In alternativa puoi inserire nel progetto la libreria eLLabXTargetAdjLib come indicato in questo articolo.
Sergio Bertana
Amministratore del forumNella configurazione del Free protocol devi definire l’indirizzo IP e la porta del dispositivo con cui devi comunicare, quindi devi riferirti alla documentazione della stampante.
In pratica definirai due dispositivi Free protocol (Esempio Printer1 e Printer2).
- Printer1 avrà come impostazione l’indirizzo IP della prima stampante e porta 9100.
- Printer2 avrà come impostazione l’indirizzo IP della secondastampante e porta dedotta dalla documentazione della stampante.
Poi è indifferente se le usi contemporaneamente oppure no.
Sergio Bertana
Amministratore del forumL’istruzione RETURN può essere utilizzata in tutti i linguaggi, se utilizzi FBD ecco nello screenshot un esempio di utilizzo.
Come vedi dal progetto attivando la variabile Execute verranno eseguiti tutti i rami successivi e Counter verrà incrementato. Disattivando la variabile l’esecuzione si arresta ed il valore di Counter resterà invariato.
Naturalmente per gestire da un programma principale le varie esecuzioni dei tuoi programmi FBD dovrai utilizzare variabili globali di abilitazione.
Sergio Bertana
Amministratore del forumMi parli di task scritti in FB, quindi sono dei function block?
Se sono function block basta non eseguire la chiamata dell’istanza e tutto il FB rimane congelato.
Da programma non è possibile eseguire chiamate a programmi, tutti iprogrammi inseriti nelle varie tasks di esecuzione Boot, Fast, Slow, Back sono sempre eseguiti secondo l’ordine di chiamata dall’alto verso il basso.
Ma se tu all’inizio del programma inserisci una istruzione RETURN condizionata da una variabile BOOL, potrai dal tuo programma Main attivare/disattivare le variabili che gestiscono l’esecuzione. Uscendo con un RETURN all’inizio del progranma tutto il programma rimane congelato all’ultima esecuzione.
Sergio Bertana
Amministratore del forumIntanto nel report SpyData non vedo i frames Tx dei comandi Modbus inviati al dispositivo, immagino tu abbia eseguito lo spionaggio triggerando solo i pacchetti Rx. Per quanto riguarda gli errori puoi fare riferimento alla pagina elenco.
- 10007050 Timeout esecuzione, dopo l’invio del comando il sistema non ha risposto nel tempo definito di timeout.
- 10007170 Valore address errato in risposta a comando “Preset single register”, è stato definito un indirizzo nel comando di preset single register ed il sistema slave ha risposto con un’altro.
- 10007652 Codice funzione errato in frame risposta a comando, è stato inviato un codice di comando ed il sistema ha risposto con un’altro codice.
- 10007152 Valore dato reset bit errato in risposta a comando “Force single coil”, è stato inviato un comando di Force single coil di reset bit ma il sisatema slave ha risposto con il valore di bit set “FF00”.
- 10007153 Valore dato set bit errato in risposta a comando “Force single coil”, è stato inviato un comando di Force single coil di set bit ma il sisatema slave ha risposto con il valore di bit reset “0000”.
Mi sembra che ci siano problemi di comunicazione con il tuo sistema slave. Ti consiglio di testare i singolo comandi Modbus utilizzando Toolly per verificare se sono corretti e se il sistema slave risponde correttamente.
Aprile 4, 2023 alle 8:48 am in risposta a: Import data from version 18 of TIA portal (SIEMENS) #71384Sergio Bertana
Amministratore del forumAttualmente EasyBuilder non importa il file ap18.
Come workaround è possibile rinominare il file ap18 in ap17 momentaneamente e poi eseguire l’importazione.
La versione di EasyBuildePro 6.08.02…. che sarà rilasciata a breve avrà anche ap18 già configurato.
Sergio Bertana
Amministratore del forumSpiegarti velocemente il CANOpen è impossibile, intanto diciamo che le funzioni base SysCANTxMsg e SysCANRxMsg servono a inviare e ricevere messaggi CAN, il CANOpen utilizza i messaggi CAN secondo regole precise che ne determinano il funzionamento.
Quindi intanto per gestirlo ti conviene fare riferimento alla CANOpenMaster, che permette di attivare una modalità sniffer per visualizzare i pacchetti in transito. Il protocollo si basa su pacchetti di configurazione SDO (Che sono quelli a cui fa riferimento la documentazione) e pacchetti dato PDO.
Una idea sul funzionamento del protocollo te la puoi fare guardando il sorgente della FB BeckhoffBK5100, in cui viene gestito un modlo di I/O.
- Il master alla inizializzazione invia un comando CANOMMCTYPE#MODRST.
- Poi inizia la configurazione del modulo scrivendo e leggendo i vari SDO, questo modulo è semplice quindi viene solo eseguita la lettura del tipo di dispositivo CANOMMCTYPE#SDORD.
- Terminata la configurazione il modulo viene reso operativo CANOMMCTYPE#MODOP.
- A questo punto il modulo comincerà ad inviare lo stato degli ingressi ed ad accettare il settaggio delle uscite attraverso pacchetti PDO.
-
AutorePost