Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumPremetto che il nostro core business è la fornitura di sistemi programmabili PLC da noi progettati e realizzati, vedi ad esempio la famiglia SlimLine. I pannelli Weintek come tutti gli altri prodotti da noi forniti ad esempio inverters, routers, ecc.. sono prodotti che commercializziamo.
Su tutti i prodotti che commercializziamo compresi i nostri PLC forniamo supporto tecnico sia telefonico che via forum, ma non facciamo corsi di formazione.
Abbiamo però un servizio di supporto tecnico on-line che forniamo utilizzando un software di controllo remoto (Attualmente utilizziamo Supremo) scaricabile dal nostro sito.
Grazie a questo servizio possiamo sviluppare con il cliente l’applicazione fornendo le informazioni che necessitano eventualmente con parti di programma, macro, ecc… attingendo dal ns repository di applicazioni sviluppate nel tempo.
Marzo 27, 2025 alle 2:47 pm in risposta a: Implementazione sistema di supervisione IoT su cloud #80994Sergio Bertana
Amministratore del forumSi certo la soluzione WeinCloud può essere una soluzione interessante, visto che sugli impianti hai già un pannello operatore Weintek che grazie ad EasyAccess ti permette l’accesso da remoto per operare sul pannello e per interventi di manutenzione sia sul programma del pannello che del PLC.
In alternativa esistono portali specifici per applicazioni IoT ad esempio Beebotte o suoi competitors tutte queste soluzioni, sia WeinCloud che i portali IoT permettono report anche storici ma non permettono l’esecuzione di automazioni lato server. Per poter gestire i dati aggregati da più impianti e gestire automazioni lato server occorre realizare un proprio servizio cloud pubblicando API in REST (Vedi articolo). Ad esempio i nostri clienti hanno realizzato soluzioni tipo:
- Gestione manutenzione preventiva impianti, il server REST memorizza i parametri di lavoro ed avvisa il cliente sulle operazioni di manutenzione.
- Calcolo consumi energetici con avvisi su superamento soglie e suddivisione costi per centro di costo.
- Calcolo costi di produzione, portale a cui impianti industriali inviano dati sui pezzi prodotti, sui tempi di fermo macchina, sui consumi energetici, ecc..
Marzo 27, 2025 alle 2:02 pm in risposta a: Controllo ventilconvettori con acquisizione sonda temperatura #80982Sergio Bertana
Amministratore del forumIl modulo Yotta A-1012 gestisce 2 uscita analogiche 0/4-20mA purtroppo a specifiche non è indicata la tensione massima erogabile e/o il massimo valore ohmico della resistenza di carico. Ma immaginando di alimentare il dispositivo con 24Vdc (12Vdc potrebbe essere un valore troppo vicinop ai 10Vdc che si desiderano in uscita) posso pensare che configurando le uscite a 0-20mA e caricandole con 500Ohm è possibile avere in uscita un valore da 0 a 10V. Questo dipende anche dalla impedenza di ingresso del ventilconvettore che essendo un ingresso analogico suppongo essere abbastanza elevata.
In caso contrario ti serve come hai detto correttamente tu nella domanda un convertitore da 0-20mA a 0-10V, ma purtroppo non abbiamo a catalogo nessun dispositivo di questo tipo.
Per quanto riguarda le sonde di temperatura puoi dare una occhiata a queste sonde di temperatura a contatto su tubo con cavo, dove puoi trovare sia il modello con Pt100 che con Pt1000.
Marzo 27, 2025 alle 10:21 am in risposta a: Sostituzione CPU basate su ARM7 con nuove versioni basate su Cortex M7 #80968Sergio Bertana
Amministratore del forumPer quanto riguarda la comunicazione one-to-one tra moduli CPU puoi utilizzare il FB DataTransfer che in base al FB di gestione stream di comunicazione permette di comunicare sia in UDP che in TCP. L’esempio ST_DataTransfer che trovi nell’articolo ha gia realizzate sia la comunicazione server che client, ti basterà copiare la parte server in un sistema e la parte client nell’altro.
Aggiungo per completezza anche se non riguarda la tua applicazione che per implementare una comunicazione TCP tra più moduli client verso un modulo server sono disponibili i FB TCPDataExchClient e TCPDataExchServer.
In riferimento alla memoria ti rimando a questo articolo, come vedi i modelli Cotex M7 disper quanto riguarda il codice dispongono standard di 131Kb di memoria programma, quindi 35Kb in più della versione attuale, inoltre la compilazione dei programmi sui sistemi Cortex M7 è più ottimizzata come vedi:
- Compilazione 1000 istruzioni logiche: ARM7:12Kb, CortexM7:8Kb
- Compilazione 1000 istruzioni matematiche fixed point: ARM7:18Kb, CortexM7:13Kb
- Compilazione 1000 istruzioni matematiche float point: ARM7:39Kb, CortexM7:29Kb
Quindi per la dimensione del codice non hai sicuramente problemi.
In riferimento alla memoria dati la dimensione disponibile standard è la stessa per entrambi i sistemi (8Kb), sui CortexM7 è disponibile una opzione per estenderla a 16Kb. Dai dati di compilazione del tuo progetto vedo che hai ancora liberi 1940 (794h) bytes quindi credo siano ampiamente sufficenti. Ti rimando al capitolo Ottimizzazione memoria RAM che trovi in fondo alll’articolo della knowledge base che ti ho linkato.
Sergio Bertana
Amministratore del forumIn effetti ho verificato la comparsa dell’errore nella procedura di comparazione dei progetti.
E’ un problema di LogicLab, ho informato Axel del problema, attendo notizie.
Sergio Bertana
Amministratore del forumL’errore è generato dal FB AESDecryption presente nella libreria eLLabAESCryptLib, una delle variabili interne al FB è definita con il nome Step. Se nel tuo progetto non hai selezionato la compilazione Case-sensivity (Vedi screenshot), LogicLab considera tutte le definizioni come se fossero scritte in caratteri maiuscoli. Ecco perchè nell’errore il FB è riportato AESDECRYPTION tutto in maiuscolo.
In questa nuova versione di LogicLab il termine STEP è diventato un termine riservato quindi non è più possibile utilizarlo per definire variabili nel progetto. Quindi non avendo scelto di distinguere tra minuscole e maiuscole la variabile Step diventa STEP e quindi LogicLab ne impedisce l’utilizzo.
La soluzione consigliata è di abilitare la distinzione sul case delle lettere (Flag Case-sensivity attivo), questo potrebbe generarti problemi nel tuo programma se hai utilizzato lo stesso nome scritto in minuscolo e maiuscolo per la stessa variabile (Esempio Marcia e MARCIA). Oppure hai utilizzato in linguaggio ST la definizione degli operatori (IF, THEN, CASE, FOR, ecc) in minuscolo anzichè in maiuscolo.
Quindi se è troppo complesso attivare il Case-sensivity sul tuo progetto puoi eseguire il download della nuova versione beta del package PCK055a05_ in cui è stato corretto il problema e sostituirlo alla raccolta librerie definita nel tuo progetto (Vedi articolo).
Marzo 25, 2025 alle 12:12 pm in risposta a: Chiarimenti su versioni SlimLine e versioni firmware #80940Sergio Bertana
Amministratore del forumLe schede di estensione I/O sia logiche che analogiche si conettono al modulo CPU tramite bus di estensione e non vi è nessuna relazione con il processore utilizzato nel modulo CPU.
Non farti ingannare dal prefisso PCB che vedi nell’elenco, i moduli elencati sono moduli CPU forniti in versione OEM, cioè forniti senza contenitore. I moduli OEM sono il circuito stampato con i componenti che trovi all’interno del contenitore del modulo CPU. Per contraddistinguerli vengono da noi identificati con il prefisso PCB.
Il PCB137 è l’OEM del modulo CPU MPS054.
Il PCB141 è l’OEM del modulo CPU MPS056.
Marzo 25, 2025 alle 11:18 am in risposta a: Chiarimenti su versioni SlimLine e versioni firmware #80926Sergio Bertana
Amministratore del forumI moduli CPU SlimLine CortexM7, sono basati sul processore SAME70N21x della Microchip, questo processore viene fornito in due versioni diversificate dalla lettera finale del codice, A o B. Le due versioni seppure identiche come caratteristiche hanno differenze nella configurazione interna, questo ci ha costretto a realizzare due versioni di software specifiche. Le due versioni sono incompatibili tra di loro quindi occorre eseguire l’upgrade con la versione corretta.
La procedura di aggiornamento che noi consigliamo da connessione telnet con il comando di update come riportata in questo articolo, prima di aggiornare il sistema controlla se il firmware indicato è corretto per il processore presente nel sistema, quindi non vi è pericolo di commettere errori. Se invece si esegue l’aggiornamento da porta seriale o USB non vi sono controlli quindi occorre prestare attenzione al firmware da utilizzare.
Le informazioni sulle ultime versioni di firmware disponibili si trovano nelle note di rilascio.
Per il processore SAME70N21A, codice prodotto: MPS054A**0, MPS054B**0, MPS056A**0, PCB137B**0, PCB137C**0, PCB141B**0
Occorre utilizzare il PCK051C010 che contiene: Firmware: SFW198F010 Bootloader: SFW200A220 Webpages: MDP020E050Per il processore SAME70N21B, codice prodotto: MPS054C**0, MPS056B**0, PCB137D**0, PCB141C**o
Occore utilizzare il PCK054B010 che contiene: Firmware: SFW210C010 Bootloader: SFW209A000 Webpages: MDP020E050Sergio Bertana
Amministratore del forumAll’interno dell’ambiene di sviluppo LogicLab esistono già apposite procedure di esportazione/importazione variabili. Come vedi dallo screenshot con il tasto destro del mouse su di un gruppo di variabili è possibile esportarle sia in un file di libreria che in un file XML compatibile con PLCopen.
Analogamente con il tasto destro del muose sulla cartella programmi è possibile importare oggetti dal file di libreria o PLCopen precedentemente esportato.
Sia il file di libreria che il file PLCopen sono editabili con qualunque editor di testo e quindi possono essere facilmente modificabili per l’eventuale modifica del nome delle TAGs.
La soluzione più semplice ed è quella che preferisco per importare TAGs dai progetti e/o per duplicarle all’interno del progetto modificandone il nome, è attivare la visualizzazione a lista delle variabili e modificarle con l’editor di LogiLab e/o con editor esterni.
Marzo 24, 2025 alle 8:58 am in risposta a: Personalizzare nome file di campionamento e salvataggio #80796Sergio Bertana
Amministratore del forumNella configurazione del campionamento dati devi scegliere Customized file handling, nei settings potrai definire il comando di trigger per la scrittura del file e le LW in cui definire il nome del file (Screenshot).
Marzo 24, 2025 alle 8:13 am in risposta a: Acquisizione tensione negativa con modulo mixed signal #80792Sergio Bertana
Amministratore del forumInizio con il ricordare che il modulo mixed I/O come da specifiche non è progettato per acquisire valori analogici negativi. Ma il modulo non legge le sue specifiche e quindi anche se utilizzato fuori da esse continua a funzionare. Ma non è un caso il suo funzionamento, vediamo di spiegarlo… Il modulo è basato sul microcontrollore ADUC845 della Analog Devices, che come da specifiche per gli ingressi analogici indica:
Analog Input Voltage to AGND –0.3 V to AVDD + 0.3 V
Quindi i suoi ingressi analogici accettano tensioni comprese tra -0.3V e +0.3V oltre la tensione di alimentazione. Gli ingressi analogici del modulo mixed I/O quando configurati per acquisizione 10V inseriscono un partitore di tensione tra il morsetto di ingresso e l’ingresso reale del microcontrollore. Grazie a questo partitore la tensione all’ingresso analogico del microntrollore è pari alla tensione al morsetto di ingresso VIn/8.021.
Visto il range di tensione negativa accettato dall’ingresso analogico del microntrollore (-0.3V) si deduce che la massima tensione negativa misurabile è: -0.3*8.021=-2.406V. Probabilmente il valore di -0.3 è un valore medio e quindi potrebbe essere diverso tra microcontrollori di diverse forniture e quindi ecco perchè puoi acquisire un po di più in negativo di questo valore.
Ora anche se non dovresti acquisire valori negativi, ma visto che lo hai sempre fatto, per aumentare il range di acquisizione non ti resta che aumentare il partitore in ingresso, puoi farlo semplicemente inserendo in serie al pin di ingresso una resistenza che ti porti ad avere al massimo -2.4V al valore massimo che devi acquisire. Inserendo una resistenza da 33KOhm dovresti poter acquisire circa -5V ma avendo falsato il partitore in ingresso il valore letto sarà diverso, quindi dovrai tenerne conto, puoi utilizzare la funzione ValueScale.
Nota: La scheda viene da noi tarata sul sistema ATE per il range positivo, nel range negativo di acquisizione potrebbe perdere di linearità, ti consiglio di fare una verifica ed eventualmente correggerla con la funzione Linearize.
Sergio Bertana
Amministratore del forumQuindi utilizzi il FB PWMOut per modulare variando il duty-cycle l’uscita di comando della resistenza. Ti ricordo che devi eseguire il programma nella task Fast che eseguita di default ogni 1mS ti permette di suddividere il periodo della frequenza di uscita (100mS) in 100 parti, ottenendo una risoluzione più che accettabile.
Veniamo ora alla domanda sul Mask, siccome le uscite sono gestite in immagine di processo nella task Slow, per permettere a task diverse dalla Slow di gestire le uscite in modo sincronizzato occorre abilitarne la gestione. Il parametro Mask del FB SysSetPhrDO serve proprio a questo, ogni modulo di uscita può gestire massimo 32 uscite, quindi settando il relativo bit nella DWORD di Mask ne viene abilitata la gestione da parte del FB. Ora se tu vuoi utilizzare l’uscita 1 del modulo di espansione con indirizzo 1 hai sbagliato il Mask, devi definire:
DOut.Address:=1; //Module address DOut.Mask:=16#00000002; //Output mask
Hai sbagliato anche i valori in AND ed OR sulla gestione di DOut.Value, devono essere 16#FFFFFFFD e 16#00000002. Altro consiglio per gestire DOut.Value, puoi utilizzare semplicemetne l’operando bit in questo modo:
DOut.Value.1:=Pwm.Out;
Sergio Bertana
Amministratore del forumIl gateway ADA-401WP CEL-MAR permette di utilizzare i sensori 1-Wire in ambienti industriale rendendoli accessibili tramite protocollo Modbus RTU in RS485. Grazie al protocollo Modbus è così possibile acquisire i sensori da programmi PC (SCADA), terminali operatore, sistemi PLC in questo articolo trovi informazioni sulla configurazione del prodotto.
Quindi se il PLC che utilizzi può gestire la connessioneModbus RTU non ci sono problemi nell’utilizzo.
Ricordo che nei ns sistemi SlimLine questo modulo CPU dispone nativamente della interfaccia 1-Wire e che in alternativa questo convertitore permette di collegare sensori 1-Wire ad una porta RS232 dei ns moduli CPU. Per l’ambiente di sviluppo LogicLab esiste il FB OWRdTemperature per l’acquisizione di temperatura ed il FB OWSearch esegue la ricerca degli ID dei dispositivi connessi alla rete1-Wire.
Una precisazione l’utilizzo del convertitore 1-Wire/RS232 da un qualsiasi PLC o PC non è trasparente, occorre gestire una serie di comandi complessi che nei nostri sistemi sono gestiti dal FB OWireCore.
Marzo 18, 2025 alle 8:15 am in risposta a: Connessione sensore 4-20mA ad ingresso analogico modulo CPU #80602Sergio Bertana
Amministratore del forumDalle informazioni riportate sullo schema non si capisce se il tuo sensore è un sensore che si autoalimenta dall’uscita del segnale 4-20mA oppure se è un sensore alimentato e quindi in grado di generare autonomamente l’uscita 4-20mA. Sul modulo CPU si utilizza un ingresso 0-10V per acquisire la corrente, la resistenza di carico da 500Ohm serve a convertire i 4-20mA in 2-10V.
- Se il sensore si autoalimenta dall’uscita 4-20mA lo schema è corretto, devi sicuramente alimentarlo con una tensione di 24Vdc, perchè a 20mA di uscita come abbiamo visto cadono 10V sulla resistenza di carico quindi ne rimangono ancora 14 per l’alimentazione del sensore.
- Se il sensore và alimentato (E visti i segnali Tx, Rx, GND che mi fanno pensare ad una uscita seriale RS232) credo che si tratti di un sensore che richiede una sua alimentazione, in tal caso lo schema è errato. Il sensore è in grado di generare autonomamente i 4-20mA di uscita, quindi ti basta collgare l’uscita (18-) all’ingresso AGnd, e l’uscita (17+) all’ingresso Ai00, mantenendo tra i due morsetti la resistenza di carico di 500Ohm.
Se il sensore ha una uscita seriale perchè non utilizzarla per il collegamento, dalla connessione seriale sicuramente potrai ottenere più dati è maggiore precisione di una connessione analogica.
Marzo 18, 2025 alle 8:06 am in risposta a: Errore in compilazione dopo aver aggiornato LogicLab #80598Sergio Bertana
Amministratore del forumNon dici che errore ti viene segnalato…
Se hai problemi nella compilazione di un progetto, puoi inviare alla nostra eMail di supporto il progetto oppure contattami telefonicamente così vediamo insieme qual’è il problema.
-
AutorePost