Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumSi l’esempio Demo_SQLQuery è contenuto nel link che hai trovato, nel file zip ci sono anche alcuni esempi presi dal sito Weintek.
Riguardo al MariaDB non so se tutti gli elementi siano supportati ma per quello che vedo direi di si.
Febbraio 6, 2023 alle 2:41 pm in risposta a: System registers, differenza registri LB-9153 e LB-10100 #69933Sergio Bertana
Amministratore del forumInformazioni sull’utilizzo dei system registers relativi alla comunicazione con il PLC le puoi trovare in questo topic.
Però è strano che se il PLC è on-line tu abbia questi problemi di comunicazione, hai impostato nel protocollo un tempo di timeout sufficente, ed eventualmente un numero di retries prima di generare errore (Screenshot).
Sei sicuro che non vi siano oggetti che puntano ad indirizzo errato sul PLC, prova a fare un progetto con un unico oggetto switch e metti il programma in test per verificare se anche con un solo oggetto hai problemi di comunicazione.
Sergio Bertana
Amministratore del forumL’accesso al pannello da cMTViewer è sempre attivo, è possibile connettere fino a 9 client cMTViewer in contemporanea oltre alla visualizzazione sul display del pannello.
Il numero di connessioni contemporanee è impostabile da EasyBuilderPro nelle impostazioni di progetto (Screenshot).
Attivando l’App cMTViewer sul PC o sul tablet/smartphone ed agendo sul tasto di ricerca dispositivi in rete (Screenshot), se il pannello è nella stessa rete verrà visualizzato nell’elenco e selezionandolo sarà possibile accedervi. Nel tuo caso visto che non trovi il pannello farei questi controlli:
- Accertarsi che sia raggiungibile in rete, provando a fare un ping.
- Verificare di non avere indirizzi IP sovrapposti tra pannello ed un’altro dispositivo.
Febbraio 1, 2023 alle 12:15 pm in risposta a: Visualizzare lista variabili con riferimento dove sono utilizzate #69727Sergio Bertana
Amministratore del forumAggiungo che comunque esiste la possibilità di avere un elenco di Cross reference completo al termine della compilazione del progetto.
Dal menù Project->Options->Cross Reference occorre abilitarne la generazione, terminata la compilazione del progetto con il tasto Cross reference window è possibile aprire la finestra di visualizzazione.
Definendo in Name il nome della variabile verranno visualizzati tutti i punti dove è stata utilizzata (Screenshot).
Gennaio 31, 2023 alle 2:22 pm in risposta a: Visualizzare lista variabili con riferimento dove sono utilizzate #69710Sergio Bertana
Amministratore del forumIl metodo che io utilizzo è il comando di ricerca nel progetto (Find in project), si attiva con la combinazione di tasti Ctr+F.
Selezionando la variabile da cercare, con la combinazione di tasti Ctr+F si attiva la funzione che darà come risultato tutti i punti dove viene utilizzata la variabile (Screenshot).
Un doppio click sui vari punti posizionerà l’editor direttamente sul punto per l’eventuale modifica.
Sergio Bertana
Amministratore del forumOgni upgrade di programmi porta a delle modifiche ma abbiamo fato notevoli sforzi per evitare problemi ai clienti. In questo articolo spero di avere spiegato in forma chiara come comportarsi con l’upgrade di LogicLab.
Quindi come detto con la nuova versione di LogicLab è possibile compilare i vecchi programmi senza fare modifiche. Naturalmente se le librerie nel vecchio progetto sono state linkate alla apertura LogicLab vi chiederà se volete aggiornarle e se le aggiornate certo vi troverete con librerie nuove che fanno riferimento alla nuova architettura XUnified.
Nel tuo caso senza aggiornare le librerie puoi tranquillamente compilare il vecchio progetto mantenendo la ModbusMaster_v1, certo se vuoi trasferire il vecchio progetto su di un nuovo modulo CPU (Che ha architettura XUnified) devi includere nel tuo progetto la libreria eLLabXUnifiedAdjLib come indicato in questo articolo. In alternativa è possibile eseguire l’upgrade ad XUnified od il downgrade ad XTarget di tutti i nostri moduli CPU sia ARM che Cortex.
Per quanto riguarda il tuo modulo CPU come detto prima puoi decidere di continuare ad utilizzarlo come XTarget o upgradarlo a XUnified in base alle tue esigenze. Ricordo che le librerie per poter utilizzare i programmi tra le due architetture sono la eLLabXTargetAdjLib e la eLLabXUnifiedAdjLib.
La libreria eLLabDTimeAdj serve nel caso di compilazione di progetti già con architettura XUnified che fanno ancora riferimento a Data/Ora, con la nuova versione di LogicLab sono stati introdotti peratori specifici di Data/Ora conformi alle specifiche IEC-61131.
Gennaio 30, 2023 alle 2:18 pm in risposta a: Visualizzare variabili indicizzate su pagina modello #69686Sergio Bertana
Amministratore del forumDevi utilizzare i registri indice, quando utilizzi una visualizzazione numerica o Ascii puoi definire che la associ ad un registro indice (Screenshot), poi variando l’indice andrai ad utilizzare l’indirizzo della variabile con l’offset definito nel registro indice.
Ora al cambiare del numero di serbatoio dovrai solo impostare il valore del registro indice utilizzato per operare con le variabili del serbatoio.
Gennaio 30, 2023 alle 9:25 am in risposta a: Errore in macro non modifica valore di variabile #69674Sergio Bertana
Amministratore del forumHo provato la tua macro, e anzi l’ho riscritta in base a quanto credo ti serva ottenere, ecco la mia versione
macro_command main() bool Pulse //One shot memory bool Alarm=0 //Alarm flag int APage=0 //Alarm page //GetData(AL, "CODESYS V3 (Ethernet)", "Application.GVL.Allarme_Attivo", 1) GetData(Alarm, "Local HMI", LB, 0, 1) if (Alarm <> Pulse) then Pulse=Alarm //One shot memory if not(Alarm) then APage=10 //Alarm page end if if (Alarm) then APage=20 //Alarm page end if SetData(APage, "Local HMI", LW, 2000, 1) end if end macro_command
Naturalmente per poterla testare ho gestito il set della condizione di allarme tramite una variabile pannello LB 0 anzichè dal PLC. Quando è presente un allarme LB0 set viene forzata la visualizzazione della pagina 20. Quando l’allarme si resetta si ritorna alla pagina 10.
Da notare che la variabile Pulse deve mantenere il suo stato su esecuzioni successive della macro, quindi non è possibile inizializzarla e questo genera una warning in compilazione. Per evitare la warning occorrebbe eseguire un GetData ed un SetData di appoggio su variabile LB.
Gennaio 27, 2023 alle 3:54 pm in risposta a: Utilizzo programma eLLabUpdater per aggiornare le librerie #69654Sergio Bertana
Amministratore del forumAbbiamo deciso di eliminare i download delle singole librerie a favore di un repository dove il programma eLLabUpdater ne esegue il download per permettere un più agevole upgrade delle stesse.
Un unico comando sul programma permette di verificare le versioni delle singoile librerie e nel caso di nuove versioni decidere di eseguirne l’upgrade.
Per quanto riguarda la domanda, siccome il programma eLLabUpdater è indipendente dalla installazione di LogicLab è possibile installarlo su qualsiasi PC connesso in rete. Basterà definire la cartella in cui sono presenti le librerie (Al limite anche su PenDrive) ed eseguendo l’upgrade tutte le librerie verranno trasferite nella cartella. Se si usa un PenDrive si potrà facilmente trasferirle su PC di lavoro dove c’è LogicLab.
Sergio Bertana
Amministratore del forumSui pannelli cMT siccome è possibile connettere fino a 9 cMTViewer remoti più l’accesso da pannello locale viene gestita l’autenticazione separata per ogni accesso. A tal proposito si utilizzano le variabili PLW e non le LW, in sostanza:
- Variabili LW condivise tra utenti, una variazione del valore fatta da un utente è visibile da tutti.
- Variabili PLW propritarie dell’utente, ogni utente può variarle a sua discrezione.
Detto questo per quanto riguarda l’autenticazione se vuoi gestirla anche da remoto tramite connessione cMTViewer devi selezionare le PLW e non le LW (Screenshot). Puoi cambiare tipo di selezione in qualsiasi momento e poi ricompilare il progetto.
Gennaio 27, 2023 alle 10:05 am in risposta a: Errore in macro non modifica valore di variabile #69640Sergio Bertana
Amministratore del forumSicuramente la variabile PAGINA va dichiarata come short e non int.
Poi eventualmente si può inserire oggetti visualizzazione numerica appoggiando le variabili per la visualizzazione in modo da verificare a video il risultato.
Puoi anche inserire nella macro la funzione TRACE che ti permette di visualizzare tramite il debugger i passaggi intermedi di funzionamento.
Sergio Bertana
Amministratore del forumIn effetti era scappata la definizione di HostPort che era descritta nel testo pur non essendo più presente nel FB, ho provveduto a correggere la pagina di manuale.
In realtà però il problema non dovrebbe presentarsi, se apri un progetto esistente quindi già testato e validato, l’oggetto HTTPClient è già stato importato nel progetto, quindi se non aggiorni volutamente il FB LogicLab continuerà ad utilizzare la vecchia versione senza dover fare modifiche al progetto.
Ti rimando a questo articolo per la gestione dell’importazione librerie o oggetti, ed a questo articolo che in calce descrive cosa succede nel caso venga riaperto un vecchio progetto con librerie incluse che nel frattempo sono state aggiornate.
Sul lavorare al freddo in un capannone ti do ragione… purtroppo ho i capelli bianchi e mi è capitato più volte di essere in quella situazione, e magari anche in piena notte…
Sergio Bertana
Amministratore del forumSe ho ben capito il problema l’esigenza è di accorgersi lato PLC che una comunicazione Modbus non è andata a buon fine. La causa può essere che lo slave non ha capito la richiesta o che si è rotto il cavo di collegamento.
Utilizzando il FB ModbusMaster sia nella versione v1 che v2, credo che nel tuo programma vengano settati tutti i parametri ed il valore da scrivere poi si attivi l’ingresso Enable del FB e si aspetti il Done a conferma dell’avvenuta esecuzione.
Done si attiva anche su errore, ma verificando lo stato dell’uscita di Ok (Si attiva per un loop di programma) si è certi che il FB ha inviato il comando al sistema slave ed ha ricevuto la risposta corretta, quindi il comando è stato certamente recepito.
Sergio Bertana
Amministratore del forumHai fatto tutto correttamente, il FB SysTLSClient è stato implementato originariamente sul modulo SlimLine con Raspberry, ora stiamo terminandone il rilascio anche sui sistemi CortexM7.
Il sistema operativo attualmente rilasciato non ha ancora il FB incluso, credo che rilasceremo la nuova versione con il FB attivo la prossima settimana.
Gennaio 25, 2023 alle 6:15 pm in risposta a: Connessione multicast con convertitorer Seriale/Ethernet ATC-1200 #69599Sergio Bertana
Amministratore del forumHo perso il pomeriggio nel cercare di configurare i convertitori per poter operare in multicast, purtroppo a differenza del modello precedente ATC-1000 che permetteva una configurazione multicast (Topic) su questo modello sembra non sia attuabile.
Terminato il capodanno cinese sentirò il fornitore in merito per capire se c’è qualche configurazione possibile, anche se non vedendo nelle pagine web una pagina di configurazione degli indirizzi IP a cui inviare i dati credo non sia proprio fattibile.
Una configurazione multicast è possibile utilizzando un ns sistema programmabile connesso in ethernet con tanti ATC-1200, con il programma COMMulticast è possibile realizzare quello che occorre (Vedi articolo).
-
AutorePost