Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumIntanto bisogna capire se hai realizzato una funzione od un blocco funzione in questo video spiego le differenze, in questo video spiego come realizzare ed utilizzare un FB.
Da quello che mi dici visto che lo hai istanziato nel tuo programma ipotizzo sia un blocco funzione, ti rimando al forum per cercare altre informazioni sulle funzioni e i blocchi funzioni (Vedi qui).
In linea di massima un FB và istanziato (Cioè gli và assegnato uno spazio in memoria definendo una variabile del tipo FB creat), poi nel programma utilizzi la variabile. Ma un FB non ha ritorni quindi puoi riferirti ai sui membri di I/O con il loro nome. Nel tuo caso potrai scrivere qualcosa del tipo…
DB_MY_FUNC.Input:=0; //Assegno un valore ad una varibile di ingresso DB_MY_FUNC(); //Eseguo il blocco funzione Var:=DB_MY_FUNC.Output; //Trasferisco valore di una variabile di uscita
Sergio Bertana
Amministratore del forumLe librerie sono in continua evoluzione, ora con il rilascio della versione XUnified dei sistemi operativi tutte le librerie sono state aggiornate per renderle compatibili con la nuova architettura. Quindi per usare le nuove librerie puoi aggiornare il sistema operativo del tuo prodotto oppure inserire nel progetto la libreria eLLabXTargetAdjLib come indicato qui.
Venendo alla tua domanda nella knowledge base troverai gli esempi che ti interessano in questo articolo trovi come utilizzare il FB OWRdIdentifier per acquisire l’identificatore univoco di ogni sensore.
In questo articolo troverai esempi per l’acquisizione delle sonde di temperatura, come vedi dal programma in FBD se hai più sonde devi istanziare piu FB OWRdTemperature collegando il Done del primo sull’Enable del successivo e così di seguito. Immaginando la lettura di 3 sonde avremo.
// Acquires the temperature. Temp[0].OwID:=OWire.OwID; //One-Wire management ID Temp[0].Enable:=NOT(Temp[2].Done); //Enable Temp[0](); //Read temperature Temp[1].OwID:=OWire.OwID; //One-Wire management ID Temp[1].Enable:=Temp[0].Done; //Enable Temp[1](); //Read temperature Temp[2].OwID:=OWire.OwID; //One-Wire management ID Temp[2].Enable:=Temp[1].Done; //Enable Temp[2](); //Read temperatureOttobre 1, 2020 alle 11:31 am in risposta a: Connessione in MPI di un PLC S7 300 con pannello MT8102iE #57744Sergio Bertana
Amministratore del forumSi è possibile collegare direttamente il pannello alla porta del PLC senza necessità di adattatori.
Settembre 28, 2020 alle 10:05 am in risposta a: Compiling errors by upgrading to LogicLab Ver. 5.12.0.36 #57719Sergio Bertana
Amministratore del forumTo support users to the migration to XUnified we have rewritten all the libraries to adapt them to the new specifications. Even if it’s possible in the XUnified targets to use objects and libraries developed for the XTarget systems by adding the eLLabXUnifiedAdjLib library to the project, we suggest to replace them with the new ones properly developed for XUnified targets.
About your question the ModbusMaster FB has been completely rewritten and called ModbusMaster_v1. The IFTime parameter is not longer needed, the Timeout and Delay parameters now must be defined in seconds.
The ModbusMaster has become obsolete and like all the other obsolete objects can be found in the eLLabObsoleteLib that has been aligned to the XUnified specifications.
Sergio Bertana
Amministratore del forumPer la protezione dell’inverter e del cavo di alimentazione in caso di cortocircuito i fusibili sono sufficienti, altri dispositivi comunque non fanno male, ad esempio un interruttore differenziale (Vedi topic).
Sul manuale del GD20 alla appendice C “Opzioni e parti periferiche” troviamo le informazioni per il dimensionamento sia del fusibile che dell’interruttore.
Per la protezione del motore e dei suoi cavi l’inverter protegge il motore e il cavo in situazione di cortocircuito quando il cavo è dimensionato in base alla corrente nominale dell’inverter. Non sono necessari dispositivi di protezione aggiuntivi.
Sergio Bertana
Amministratore del forumSi in effetti su cMT-SVR non è possibile, hai bisogno di un cMT con il display o di un pannello. il cMT-SVR non gestisce le componenti ibride.
Sergio Bertana
Amministratore del forumSe intendi la string table, no non è editabile direttamente da HMI ma si può esportare in CSV, modificare e reimportare (Screenshot).
Sergio Bertana
Amministratore del forumPer evitare di cancellare la lista dei contatti devi nei parametri di sistema abilitare il mantenimento dei contatti presenti su HMI se già presenti (Screenshot).
Settembre 24, 2020 alle 12:16 pm in risposta a: Download programma impossibile sul modulo CPU SlimLine #57660Sergio Bertana
Amministratore del forumTo solve the problem you can disable the source code download (See screenshot), in this way LogicLab will only transfer the executable program and the source files will be kept only on your PC.
Sergio Bertana
Amministratore del forumTramite il portale cloud SensDesk è possibile monitorare in modo gratuito fino a 3 dispositivi HW group senza limite sul numero di sensori. In questo caso i dati sono ciclicamente inviati dal dispositivo al portale e possono essere gestiti direttamente accedendo al portale.
E’ possibile installare il portale all’interno della propria struttura in questo caso l’installazione viene eseguita da remoto direttamente dai tecnici HWgroup ed esistono piani di licenza in base al numero di dispositivi.
In alternativa esiste il PDMS, una soluzione software da installare su PC Windows che permette di monitorare e storicizzare i dati dai sensori. Il software è gratuito per un utilizzo fino a 3 sensori, per un numero superiore di sensori esistono licenze apposite.
Sergio Bertana
Amministratore del forumFaccio una premessa su come interagiscono tra di loro le varie tasks, normalmente è eseguita la task Back che viene interrotta ogni tempo definito (Default 10mS) dalla escuzione della task Slow, entrambe le tasks sono interrotte ogni tempo definito (Default 1mS) dalla esecuzione della task Fast.
Detto questo è importante che tutte le variabili condivise tra le varie tasks siano gestite in modo atomico, se per esempio una variabile INT che usa 2 bytes viene settata dalla task Back accedendo sui suoi singoli bytes può essere che arrivi l’esecuzione della task Slow proprio mentre si è modificato solo uno dei due bytes del valore e quindi il valore che “vede” la task è un valore diverso da quello settato dalla task Back.
Per capire perchè questo acccade nel tuo programma occorrebbe eseguire tests sul programma, ma in generale statements di assegnazione su variabili da 1 a 4 bytes (Quindi sono escluse quelle a 8 bytes e le stringhe) operano in modo atomico. Se in un programma ST in Back utilizzo una variabile globale di tipo UDINT per una somma Var:=Var+1, sono sicuro che questa variabile nella task Slow ha sempre valori coerenti.
Quindi quando non si è certi della atomicità di una variabile in una task per utilizzarrla in un’altra task è consigliabile trasferirne il valore su un’altra variabile. Per le variabili fino a 4 bytes basta fare una assegnazione VarSlow:=VarBack, mentre per le variabili di dimensioni maggiori e per le stringhe consiglio di utilizzare la funzione Sysmemmove.
Sergio Bertana
Amministratore del forumLa prima considerazione da fare è accertarsi che il server sia un FTP e non un SFTP, il FB FTPClient si connette solo a server FTP, e di avere correttamente definito la porta di connessione al server oltre alle credenziali di accesso.
Ti consiglio di fare un piccolo programma utilizzando con un copia/incolla l’esempio riportato sul manuale (Vedi manuale). Se utilizzi la nuova versione del FB ed esegui lo spionaggio (Vedi manuale), puoi verificare se la connessione al server avviene correttamente e capire la causa del tuo problema.
Sergio Bertana
Amministratore del forumL’attivazione dello screensaver sul pannello forza la visualizzazione di una pagina (Di default è la 80), nella pagina è possibile inserire qualsiasi oggetto. Comne hai detto tu però l’unico oggetto che è possibile animare è uno shape.
Ma se tu nella pagina inserisci ad esempio 16 visualizzazioni numeriche che visualizzano la tua variabile in posizioni diverse della pagina ed ad ognuna, nelle proprietà di Security le nascondi quando il relativo bit di comando è disattivo, puoi con una macro visualizzarle una ad una a tempo simulando qualcosa di molto simile ad una animazione.
Sergio Bertana
Amministratore del forumHo chiesto al fornitore HW-group, il traffico mensile di un dispositivo HWg-Ares connesso al portale SensDesk è circa di 11MB.
Naturalmente il traffico può aumentare in caso di allarmi.
Sergio Bertana
Amministratore del forumSi certo è una possibilità, l’impedenza di ingresso è di 100Ohm quindi puoi calcolare la resistenza. Naturalmente se vuoi precisione meglio verificare la reale corrente, anche perchè non sò la precisione della resistenza di ingresso. Di solito in questi sistemi il valore della resistenza viene calibrato.
Gli errori dovuti alla precisione ohmica i possono compensare da programma operando con un offset sul valore acquisito. Ma come accorgimento per aumentare la precisione consiglio di utilizzare una resistenza a bassa deriva termica per evitare gli errori dovuti alla variazione della resistenza con la temperatura.
-
AutorePost