Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,296 a 2,310 (di 4,367 totali)
  • Autore
    Post
  • in risposta a: Come connettere moduli SlimLine a distanza #39327
    Sergio Bertana
    Amministratore del forum

    Il bus di espansione SlimLine non può essere prolungato oltre i 2 metri. Quindi nel tuo caso devi per forza orientarti come hai già fatto notare tu verso una connessione RS485 o CAN.

    Il modulo CPU MPS050*020 ha già una porta seriale RS485, quindi la soluzione più immediata è disporre di un altro modulo CPU dello stesso tipo anche sulla parte mobile che fungerà da interfaccia ed alimentatore per gli altri moduli di I/O ad esso connesso.

    Abbiamo molte installazioni di questo tipo anche su aree molto vaste (Applicazioni domotiche, supermercati, aree di servizio, ecc.) dove reti in RS485, CAN bus o Ethernet permettono di gestire I/O remoti come fisicamente connessi ad un modulo CPU centrale.

    In riferimento alla tua domanda sul modulo PCB126*170 la porta seriale del modulo può essere configurata come porta COMx.x aggiuntiva del modulo CPU (Topic). Anche se il modulo prevede il montaggio di una porta RS485 non abbiamo mai rilasciato questo tipo di connessione.

    in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39326
    Sergio Bertana
    Amministratore del forum

    Ma Axel ci ha già pensato… nello screenshot si vede una FB scritta in LD istanziata in due diversi programmi. Quando il debug è attivo, con un doppio click sull’oggetto su cui si desidera attivare il debug forza l’apertura della finestra di richiesta della istanza che si vuole analizzare. Allego il progetto per il test.

    in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39322
    Sergio Bertana
    Amministratore del forum

    Come sempre Axel rapida nel reagire, girato la tua domanda ed ecco la risposta:

    LLAB al momento non è dotato della funzionalità di “Refactoring” cui la segnalazione intende. Potrebbe essere un futuro sviluppo, apriamo un ticket di enhanchement. #LL1546:Refactoring tool.

    in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39321
    Sergio Bertana
    Amministratore del forum

    Le tue domande sono molto interessanti anche per altri clienti che utilizzano LogicLab per cercare di ottenere il massimo dall’ambiente. Per alcune risposte ho girato la richiesta alla Axel che è lo sviluppatore di LogicLab, anzi consiglio di effettuare direttamente a loro le richieste che riguardano l’ambiente di sviluppo. Ma alcune risposte le posso dare direttamente.

    I programmi LD realizzati con il vecchio editor continuano ad utilizzare il vecchio stile, non hanno le nuove funzionalità abilitate.

    In LD ogni ramo logico deve avere almeno un coil di terminazione, solitamente definisco una variabile Dummy di tipo BOOL che utilizzo come coil in tutti i rami. Proprio come hai fatto correttamente tu.

    Legare lista variabili e diagramma, attualmente è come hai detto tu nella domanda, ho girato la richiesta ad Axel.

    Per l’ultima domanda mi sono rifatto a questo vecchio topic, ho ripreso il programma FBArray e ho definito due programmi ladder dove utilizzo lo stesso FB. Quando trascini nella finestra di watch una variabile interna alla FB, LogicLab ti presenta una finestra di richiesta della istanza di cui vuoi vedere il valore (Screenshot). Allego il progetto per il download.

    in risposta a: Gestione variabili RETAIN con accesso da HMI #39319
    Sergio Bertana
    Amministratore del forum

    Non commetti errori è proprio CODESYS che non permette di avere variabili RETAIN allocate in memoria specifica (Nella famiglia LogicLab esiste l’area da MD100.2048 a MD 100.4095).

    Un workaround utilizzato da altri clienti è di copiare da programma l’area ad indirizzamento da terminale su di un’area RETAIN quando vi è una variazione del contenuto (Qualcuno da terminale ha cambiato i dati). Poi alla accensuione del sistema esegui  l’operazione inversa.

    Riporto il link a questo topic dove si trova un progetto di esempio di utilizzo di un terminale Weintek connesso a SlimLine CODESYS.

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

    Probabilmente hai un progetto di vecchio tipo (Estensione prj) (Topic) ed utilizzi una libreria di nuovo tipo (Estensione plclib). Questo lo puoi fare solo forzando la mano, dalla finestra Project library list anzichè selezionare la libreria (LogicLab ti presenta solo quelle con estensione pll) tu definisci manualmente la libreria eLLabUtyLib_C030.plclib.

    Consiglio di non includere nel progetto la libreria eLLabUtyLib, perchè contiene oggetti tra di loro eterogenei che si utilizzano importando l’oggetto direttamente nel progetto (Topic).

    in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39316
    Sergio Bertana
    Amministratore del forum

    Hai individuato perfettamente come fare, i progetti con la vecchia estensione ppjs vanno salvati con la nuova estensione plcprj per poter utilizzare le nuove features.

    Quando crei un nuovo progetto solo scegliendo XTarget 12.0 avrai di default il salvataggio del progetto con estensione plcprj, con tutti gli altri targets LogicLab utilizzerà ancora il formato ppjs. Quindi se devi fare un nuovo progetto con un vecchio target devi per forza salvarlo nel vecchio formato e poi per trasformarlo nel nuovo lo devi aprire e salvare con la nuova estensione.

    Non vi sono problemi di compatibilità il nuovo formato plcprj è perfettamente compatibile con tutti i targets, LogicLab4 utilizza i files di configurazione delle vecchie versioni di LogicLab per i targets precedenti al XTarget 12, ed ecco perchè di default salva nel formato ppjs.

    in risposta a: Gestire protocollo seriale ASCII #39315
    Sergio Bertana
    Amministratore del forum

    La porta seriale RS485 opera solo in Half-Duplex su 2 fili, ma da quanto mi dici sembra di capire che il tuo protocollo è comunque un protocollo di questo tipo. Un sistema invia una stringa di 8/12 carattteri e tu devi interpretarla e poi rispondere.

    Intanto la porta RS485 pùo operare in diversi modi (Vedi FB SysSerialPort, estratto manuale), per operare con la RS485 devi impostare COM2. Il parametro DTRManagement definisce il modo in cui la porta opera, impostando DTR_AUTO_WO_TIMES, la porta è sempre in ricezione, ed andrà automaticamente in trasmissione quando viene eseguita una scrittura di dati su di essa.

    Da programma è possibile acquisire i dati in ricezione con le funzioni Sysfgetc e Sysfread, mentre per trasmettere i dati dovrai usare le funzioni Sysfputc e Sysfwrite. Naturalmente per interpretare la stringa ricevuta dovrai realizzare un piccolo programma che buffera i dati in ricezione, poi li interpreta, ed infine invia la risposta.

    Il forum è pieno di esempi di questo genere puoi guardare qui, qui, qui, qui.

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

    The OSCAT library is a source of informations, often i take a look on it,  but I prefer to write the FBs by myself, about the Modbus you can use our FBs (In this topic you can find them).

    About the PHPToModbus program (It can be reached here), and about the PHP class it uses the Modbus TCP protocol…

    Don’t make confusion between RTU and TCP. The Modbus TCP frame starts with 6 bytes of additional data (Transaction Identifier, Protocol Identifier, Length) and after it’s exactly the same frame that Modbus RTU without the final 2 bytes of CRC (Please refer to this manual).

    in risposta a: Acquisizione temperatura e storicizzazione in file di log #39312
    Sergio Bertana
    Amministratore del forum

    Per acquisire le Pt100 devi giustamente come hai scritto utilizzare il FB SysGetAnInp definendo il modoi di acquisizione coerente con il tuo tipo di sonda, in questo topic trovi altre indicazioni. Nel topic il FB è utilizzato in ladder ma lo puoi utilizzare anche in ST (Vedi in questo topic come fare).

    Per salvare i dati su di un file puoi gestire il file con le funzioni classiche Sysfopen, Sysfseek, Sysfwrite, Sysfread, ecc… poi il file scritto sarà accessibile da una connessione FTP Topic.

    In alternativa puoi utilizzare il FB StringToLogFile, che esegue tutte queste operazioni in modo autonomo. Nel forum ci sono esempi di utilizzo del file system prova con il cerca, ti rimando a questo topic per un esempio.

    In merito al simulatore, sul simulatore si possono testare solo le funzioni di gestione logica, per le analogiche è ritornato un valore numerico che è indipendente dal modo di acquisizione. Non è possibile sul simulatore testare le funzioni di accesso ai files. In questo topic un progetto che permette di testare sul simulatore il FB di gestione PID, credo possa essere un buon punto di partenza.

    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.

Stai visualizzando 15 post - dal 2,296 a 2,310 (di 4,367 totali)