Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,446 a 2,460 (di 4,507 totali)
  • Autore
    Post
  • in risposta a: Registrazione dati su variazione stato variabili #39310
    Sergio Bertana
    Amministratore del forum

    Intanto dovendo registrare la variazione di stato di più variabili BOOL se vuoi utilizzare la registrazione su base trigger devi creare una variabile BOOL di trigger sullo SlimLine. La variabile trigger deve dare l’impulso di trigger ogni volta che cambia stato una o più delle variabili che vuoi registrare.

    Ma attenzione la lettura delle variabili da parte del terminale è abbastanza lenta (Più di 1 secondo) quindi le tue variabili BOOL verranno viste dal pannello solo se la loro variazione di stato perdura per almeno un paio di secondi. Se hai variabili che cambiano di stato molto velocemente puoi registrane la variazione solo agendo con un programma sullo SlimLine.

    Trovi ulteriori informazioni sulla registrazione dati in questo topic, o in questo topic.

    in risposta a: Come utilizzare le librerie su LogicLab4 #39309
    Sergio Bertana
    Amministratore del forum

    I blocchi funzioni vanno sempre istanziati…

    Istanziare un oggetto (Nel nostro caso un blocco funzione) vuol dire creare l’oggetto assegnandogli un nome ed una posizione di memoria prendendo come riferimento un modello presente nella libreria.

    Il blocco funzione RS come vedi dall’estratto del manuale si trova nella libreria eLLabStdLib_B100, quindi per poterlo utilizzare lo devi importare nel tuo progetto e poi lo devi istanziare. Per importare un oggetto occore selezionare la libreria in cui si trova l’oggetto (Screenshot) e poi importarlo (Screenshot). Il blocco funzione RS ora è parte integrante del tuo progetto, volendo organizzare meglio l’albero del progetto puoi creare una cartella FBs con dentro i blocchi funzioni importati e/o da te realizzati (Troverai questo nel progetto che allego).

    Ora nel programma ST dovrai istanziare l’oggetto creando una variabile (Esempio MyRS) di tipo RS e potrai così utilizzare la variabile nel tuo programma, ecco lo screenshot del programma in funzione sul simulatore, allego programma sorgente.

    in risposta a: Bridge between 2 Modbus RTU devices over ethernet LAN #39307
    Sergio Bertana
    Amministratore del forum

    The two SlimLine models MPS046 (Starting from version B) and MPS053 are both capable to run the TCPServer and TCPClient FBs. About the program memory dimension on the MPS053, it’s true it normally has half space of the MPS046 but now it’s possible to extend the memory to the same dimension of the MPS046. You must buy a DID code (The ordering code and price will be added shortly to our site).

    The CODESYS version of the SlimLine has raffly the same functionality of the LogicLab version, also for it you can find the TCPServer and TCPClient FBs. If you use two CPU modules both equipped with ethernet connection, you can exchange data between them by using Modbus TCP directly on ethernet without any serial converter.

    On this topic you will find a modbus RTU implementation, but it can be easily modified to use modbus TCP. On this topic a program that allow to access to the SlimLine by PHP script. The Modbus TCP client is native in the SlimLine LogicLab.

    in risposta a: Bridge between 2 Modbus RTU devices over ethernet LAN #39305
    Sergio Bertana
    Amministratore del forum

    Yes, two ATC-1000 converters can be configured to work paired, one, must be set as a TCP server, the other must be set as a TCP client. In the TCP client, the IP address of the server must be defined. The two Powerline adapters work as an ethernet cable, so the RTU serial packets received by one ATC converter are sent out from the other ATC conveter and viceversa.

    But a suggestion, it could be better to use an ethernet version of SlimLine PLC, so in this way you can connect it directly to the Powerline and using the TCPServer FB it can directly receive the data from the ATC-1000 configured as a client. Or by using the TCPClient FB it can send the data directly to the ATC-1000 configured as a server.

    in risposta a: Utilizzo memoria USB su porta Host #39304
    Sergio Bertana
    Amministratore del forum

    L’elettronico che c’è in te credo sia attratto dalla funzione SysI2CWrRd, che permette di gestire qualsiasi dispositivo I2C standard connesso al bus di estensione del modulo CPU.

    In questo modo è possibile gestire dispositivi I2C commerciali in ambiente CODESYS, analogamente a quanto hanno fatto alcuni ns Clienti con l’ambiente LogicLab.

    In questo topic la gestione di un display alfanumerico. In questo topic la gestione di un lettore RFiD. In questo topic la gestione di motori stepping.

    in risposta a: SlimLine in stop con codice di eccezione 1 #39302
    Sergio Bertana
    Amministratore del forum

    L’eccezione DAT_ABORT (Data abort) si ha quando si tenta di accedere ad un indirizzo di memoria non esistente.

    Giustamente come fai notare tu il programma sviluppato dall’utente è allocato dopo l’indirizzo 0x60000, agli indirizzi riportati nel file di log corrispondono funzioni del sistema operativo. Se hai la versione SFW184B000 ad indirizzo 0x000052C4 è allocata la funzione memcpy che è richiamata dalla funzione Sysmemmove, mentre ad indirizzo 0x000055E0 è allocata la funzione memset che è richiamata dalla funzione Sysmemset.

    Queste funzioni operano con dei puntatori, in generale attenzione quando si usano puntatori se l’indirizzo caricato nel puntatore è sabagliato si può incorrere in questo tipo di eccezione.

    Aggiungo inoltre che magari tu non stai usando direttamente queste funzioni ma utilizzi una funzione e/o un blocco funzione che a sua volta utilizza queste funzioni.

    in risposta a: Configurazione EasyAccess con router VPN eWon #39300
    Sergio Bertana
    Amministratore del forum

    Il router VPN eWon permette già l’accesso a tutti i dispositivi interni alla rete quindi configurandolo opportunamente tramite la sua VPN è possibile raggiungere sia il pannello operatore  che il PLC. Non è necessario attivare l’EasyAccess sul terminale per questo.

    L’EasyAccess serve proprio ad evitare l’utilizzo della VPN e del router eWon. Basta che il cliente abbia una connessione ad Internet e tramite l’EasyAccess è possibile passare attraverso il firewall del cliente e raggiungere il pannello operatore da Internet anche se la connessione del cliente non prevede IP pubblico.

    Utilizzando il Pass-Trough è possibile configurare l’accesso sia al PLC Siemens che, semplicemente modificando l’indirizzo IP definito nel Pass-Trough, raggiungere qualsiasi altro dispositivo IP presente nella rete dal pannello operatore.

    in risposta a: Visualizzazione temperatura da sonda Pt1000 #39299
    Sergio Bertana
    Amministratore del forum

    Probabilmente il cliente non ha fatto una ricerca nel forum, perchè proprio in risposta al P.S. in questo topic c’è quello che richiede. Ed in molti altri topics può trovare suggerimenti per rispondere alla sua domanda. Ma visto che è meglio avere un esempio in più che in meno, ho preparato un esempio che comprende sia il programma sullo SlimLine per la acquisizione della Pt1000 che il programma sul terminale per la visualizzazione.

    SlimLine
    Ho realizzato un programma in FBD che utilizza il FB SysGetAnInp per acquisire la temperatura da una sonda Pt1000 (Screenshot). Come si vede l’acquisizione è effettuata dal canale “0” di un modulo acquisizione A/D con indirizzo “0”. Il valore acquisito in gradi centigradi è appoggiato nella variabile Temperature di tipo REAL che è allocata nella DB100 ad indirizzo 60.

    HMI
    Nel progetto per comodità ho utilizzato un MT8050iE connesso in ethernet con lo SlimLine, per usare un MT6050iE occorrerà configurare una connessione seriale in alternativa alla connessione ethernet (Screenshot). Per la visualizzazione ho inserito due oggetti. Visualizzazione numerica per visualizzare il valore numericamente (Screenshot). Grafico angolare per visualizzare uno strumento virtuale (Screenshot).

    Come si vede dagli screenshots l’indirizzo Modbus è 40030, questo si calcola partendo dall’indirizzo della variabile (Allocata a indirizzo 60 della DB100) dividendolo per 2 e sommando 40000 (Topic). Allego il progetto con il programma SlimLine ed il programma HMI, ricordo che il programma HMI si può simulare sul PC con EasyBuilderPro (Download progetto).

    in risposta a: Utilizzo di SlimLine come gateway ModBus RTU/ASCII #39298
    Sergio Bertana
    Amministratore del forum

    Si certo mi sembra di capire che lo SlimLine dovrà agire come master Modbus verso entrambi i sistemi, il bloco funzione ModbusMaster fà esattamente questo. Certo dovrai utilizzare due istanze del FB connesse a due porte seriali diverse, una configurata come Modbus Ascii e l’altra come Modbus RTU.

    Nella Lettura/Scrittura variabili dai due sistemi (Nel caso di variabili a 4 bytes, DWORD o REAL) potresti trovarti un problema di endiannes, il modbus non ha regole per le variabili a 4 bytes. In questo caso dovrai eseguire uno swap delle variabili (In questo topic c’è un esempio).

    Immaginando di dover gestire più variabili su ogni sistema conviene realizzare un programma sequenziale dove all’istanza del FB ModbusMaster sono ciclicamente passati i parametri per la comunicazione (In questo topic trovi esempi al riguardo).

    Certamente puoi interfacciare allo SlimLine un pannello operatore sia con lo schermo che cloud, la programmazione è praticamente la stessa. Ci sono oggetti grafici per storicizzare dati (Topic), per visualizzare grafici sia storici che in real time. Puoi anche esportare i dati in CSV per gestirli da PC (Topic).

    Se utilizzi il terminale tramite EasyAccess 2.0 (Topic) potrai anche accedere al terminale da remoto via Internet e programmare sia il terminale che lo SlimLine.

    in risposta a: Comunicazione con apparato FAAC con ATC-1000 #39297
    Sergio Bertana
    Amministratore del forum

    In effetti la domanda sulla alimentazione e sulla connessione dei cavi mi era balenata… Ho fatto una veloce ricerca su internet ed ho trovato questo estratto manuale Cobra…

    4.4 Baud Rate change
    You can change the Baud Rate of the serial port used for communication with the PC (COM1) and of the Auxiliary
    serial port (COM2). The two following specific settings are available: One for the Control unit set as /P One for the Control unit set as /T

    If in /P, the preset speed is 57,600, S, 8, 1. Generally, changing the Baud Rate is not necessary. Other standard speeds can be selected with “keyboard programming”. If you select another speed (e.g.: 19,200), the polling port is initialised at 19,200, S, 8, 1.

    The same port is used if the Control unit is set as “via Modem” (/T). If in /T, the preset speed is 19,200, N, 8, 1. Other standard speeds can be selected with “Keyboard programming”. If you select another speed (e.g.: 9,600), the Modem port is initialised at 9,600, N, 8, 1.

    Sembrerebbe che la configurazione Space parity sia fissa, e quindi non utilizzata per la selezione Indirizzo/Dati, però esiste anche una modalità Modem che usa nessuna parità (Di solito i modem hanno 8 bit nessuna parità). Se tu dici che la soluzione funzionava con i convertitori Digitus a questo punto dovrebbe funzionare anche con gli ATC. Non è che si può utilizzare la modalità Modem ?

    Come altri consigli proverei a “spiare” con un terminale (Hyperterminal o Toolly) i dati in transito sulla connessione seriale tra PC ed apparato, e poi sempre con il terminale proverei a vedere se gli stessi dati transitano in uscita dall’ATC…

    in risposta a: Utilizzo memoria USB su porta Host #39295
    Sergio Bertana
    Amministratore del forum

    Si certo è possibile, in questo topic trovi ulteriori informazioni. Inserendo il Pen Drive ti troverai un nuovo disco “D”.

    Non servono librerie particolari, accedendo al disco “D” andrai ad operare sul tuo Pen Drive. Per gestire un log su disco ti rimando a questo topic.

    Sulle CPU della famiglia LogicLab abbiamo realizzato un file system ad Hoc, formattando il disco si definisce il numero di files che può contenere e la loro dimensione è la dimensione totale del disco divisa per il numero di files. E’ stata scelta questa opzione per avere un file system sicuro, quindi in grado di non corrompersi sullo spegnimento del sistema. Nella CPU CODESYS viene utilizzata una FAT classica, per  evitare di corrompere i dati allo spegnimento c’è una riserva di energia che sullo spegnimento tiene viva la CPU per il tempo necessario a chiudere tutti i files aperti. Unica accortezza è di non lavorare con molti files aperti contemporaneamente perchè visti i tempi di accesso dei Pen Drives è possibile che la riserva di carica non sia sufficente a garantire la corretta chiusura.

    in risposta a: Comunicazione con apparato FAAC con ATC-1000 #39294
    Sergio Bertana
    Amministratore del forum

    La spia ACT dovrebbe lampeggiare stando a manuale sia per dati in uscita che in entrata dalla RS232.

    Una domanda anche se ovvia, i parametri di comunicazione 57600, Space, 8, 1 li hai impostati anche su tutti due i convertitori ATC-1000 ?

    Mi viene il dubbio che il bit di parità sia usato dal protocollo che lo scambia tra Mark e Space per indicare ad esempio Indirizzo/Dato. Leggi qui:

    Il bit di parità a volte viene mantenuto sempre ad un livello prestabilito, per esempio in alcuni protocolli usati da macchine industriali. Ciò dà origine ad ulteriori due tipologie di parità, peraltro non molto comuni:

    Mark: il bit di parità vale sempre mark
    Space: il bit di parità vale sempre space

    Tali configurazioni sono a volte usate per identificare la tipologia del byte trasmesso, per esempio potrebbe indicare se si tratta di un dato piuttosto che di un indirizzo.

    Se è questo il tuo caso non è possibile gestirlo con due ATC-1000 incrociati, magari, ma non metterei la mano sul fuoco, potrebbe funzionare con un software di virtualizzazione (Virtual COM).

    in risposta a: Comunicazione con apparato FAAC con ATC-1000 #39292
    Sergio Bertana
    Amministratore del forum

    Intanto complimenti ha fatto esattamente tutti i tests che devono essere fatti per determinare il funzionamento dei convertitori Ethernet-Seriale. La prova del tappo di loopback è la prova che consiglio a tutti i clienti che hanno problemi sia con il Virtual COM che nella configurazione Client/Server.

    Ora nel tuo caso la connessione seriale è funzionante, il test del loopback con Hyperterminal o con il nostro Toolly lo ha dimostrato. Ora resta da capire perchè non funziona la connessione con l’apparato FAAC, e qui posso dare delle indicazioni:

    Sei sicuro di avere impostato correttamente il baud rate, la parità, ed il numero di bits come richiesto da FAAC. La parità Space di solito non si usa. Parità può essere Pari (E), Dispari (O) o Nessuna (N).

    Può essere che l’apparato FAAC controlla i criteri seriali RTS, CTS, DTR, ecc… questi segnali non sono gestiti nell’accopiamento tra due convertitori. Solitamente basta eseguire dei ponticelli sul connettore per superare il problema. Per essere certi che sia il software sul PC che l’apparato non usi i criteri RS232 puoi realizzare un cavo seriale collegando solo i pin 2, 3, 5 e verificando che con questo cavo seriale la connessione PC-Apparato funzioni.

    Infine ricordo che il convertitore Ethernet-Seriale inserisce un ritardo nella comunicazione ed alcune volte questo ritardo può dare origine a problemi.

    in risposta a: Errore in esecuzione programma su SlimLine CODESYS #39290
    Sergio Bertana
    Amministratore del forum

    L’errore 5070 identifica un problema di accesso ad un modulo di uscita digitale ad indirizzo “0”. Questo può succedere se:

    Il modulo di uscita digitale non è connesso al modulo CPU.
    C’è più di un modulo di estensione connesso al sistema e due o più moduli hanno (Settato con i di dip switches) indirizzo “0”. L’indirizzo “0” è l’indirizzo di default con cui sono forniti i moduli.
    Il modulo di uscita digitale ha un problema di funzionamento.

    in risposta a: Arrotondare numeri dopo la virgola in uno script #39289
    Sergio Bertana
    Amministratore del forum

    Credo che per limitare i numeri dopo la virgola tu intenda il valore che esporti in un file csv per poi importarlo in Excel. Purtroppo non c’è una funzione di round nelle macro ed i numeri float non hanno un numero prestabilito di decimali.

    Devi operare da Excel se vuoi limitare il numero di cifre decimali.

Stai visualizzando 15 post - dal 2,446 a 2,460 (di 4,507 totali)