Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Marzo 9, 2016 alle 10:47 am in risposta a: Gestione credenziali accesso (password) su cMT-SVR #39440
Sergio Bertana
Amministratore del forumPer quanto riguarda i pannelli cMt-SVR occorre fare una premessa, siccome il cMT può gestire fino a 3 Tablet/Smartphone connessi contemporaneamente ed ognuno di essi è indipendente dagli altri nella gestione delle pagine, è stato creato un nuovo tipo di variabili le PLW. Le PLW sono variabili che sono legate al pannello che stà visualizzando la pagina, quindi avremo ad esempio 3 PLW-1000 con valori diversi legate ai 3 Tablets connessi.
Detto questo veniamo alla gestione della sicurezza, il cMT usa sempre la sicurezza avanzata quindi è possibile definire utenti e password in modalità testuale (Screenshot). Come si vede ho dichiarato due utenti con username Utente1 ed Utente2 e con password Psw1 e Psw2. Attenzione alla impostazione del controllo indirizzo perchè come vedremo per gestire il login utilizzeremo la pagina di template 70, e questa pagina è preconfezionata con i riferimenti alla word di controllo PLW-1000.
Veniamo ora al progetto di cui allego lo screenshot, come si vede agendo sul tasto Login/Logout si attiva la visualizzazione in pop up della pagina 70 che contiene tutti gli oggetti per la gestione del login. Un menù a tendina visualizza tutti gli utenti definiti, una casella di testo permette di scrivere la password (Case sensitive), attenzione dopo avere scritto la password confermare con il tasto Enter. Il tasto di Login esegue il controllo della password inputata e se accettata come nell’esempio viene attivata la classe relativa e siccome la visualizzazione del pulsante Toggle 1 era legata alla classe A il pulsante viene visualizzato (Download progetto).
Sergio Bertana
Amministratore del forumQuello che succede è corretto, vediamo perchè ti trovi in questa situazione.
Il modo di acquisizione 4÷20mA è stato pensato volutamente con l’offset a 4mA per controllare l’eventuale interruzione del cablaggio. In caso di interruzione (O nel tuo caso sullo spegnimento del sensore) il valore di corrente in ingresso al convertitore A/D scende sotto i 4mA. In questa condizione il FB SysGetAnInp segnala l’anomalia attivando l’uscita Fault e generando l’errore:
9983150 Il valore ritornato dal modulo analogico non è corretto
In questa condizione non è possibile determinare il valore di ritorno, quindi viene ritornato QNAN che letteralmente significa Not a number. Il valore di QNAN nel formato IEE754 in esadecimale è 16#7F8FFFFF.
Siccome il valore in uscita dal FB di acquisizione è passato alla FB Average se non blocchi l’esecuzione della Average ti troverai a mettere in media un valore QNAN e questo provoca il blocco della FB. La soluzione è bloccare l’esecuzione della FB Average se Fault nella FB di acquisizione. Ecco come:
FBData(Address:=0, Channel:=0, Mode:=AD_CURR_4_20_DIFFER);
IF NOT(FBData.Fault) THEN AvValue(Value:=FBData.Value); END_IF;Allego il programma TestNaN, ecco la stampa ed il progetto per il download.
Marzo 7, 2016 alle 5:20 pm in risposta a: Configurazione comunicazione tra Omron CJ1M e cMT-SVR #39438Sergio Bertana
Amministratore del forumHo girato la richiesta ed ecco la risposta.
Come ultima prova imposta il driver: Omron ethernet sempre con UDP selezionato.Marzo 7, 2016 alle 2:22 pm in risposta a: Configurazione comunicazione tra Omron CJ1M e cMT-SVR #36206Sergio Bertana
Amministratore del forumNon avendo un PLC Omrom su cui fare test ho chiesto aiuto ad un nostro cliente che usa i pannelli Weintek con i PLC Omron, ti riporto la sua risposta.
Il cMT-SVR con un PLC Omron CJ1M funziona, l’ho testato proprio in mattinata, con il CJ1M etn11 si utilizza UDP e nel PLC dopo averlo settato è necessario spegnerlo e riaccenderlo.
Sergio Bertana
Amministratore del forumRimando alla applicazione ModemMachine che tra l’altro permette di inviare e ricevere SMS dalla pagina web. Dalla pagina del prodotto si può eseguire il download sia del programma sorgente che delle pagine web, questa è una valida base di partenza per sviluppare una applicazione.
Sergio Bertana
Amministratore del forumI terminali della famiglia iP sono rimasti gli unici che si programmano con EasyBuilder 8000. E’ una vecchia serie che è ancora prodotta perchè nella versione solo seriale costa un pò meno della serie iE che ha la Ethernet.
Ma se consideri l’esigua differenza di prezzo, abbinata alla presenza della Ethernet che ti consente di vedere il terminale da remoto con VNC e di attivare EasyAccess per la programmabilità remota tramite Internet non solo del pannello ma anche del PLC connesso al pannello. Non sò se è così vantaggioso utilizzare la serie iP.
Inoltre EasyAccessPro ha una gestione del ricettario molto più completa oltre a molte altre feautures interesanti.
Sergio Bertana
Amministratore del forumUtilizzando il nuovo EasyBuilderPro che utilizza una struttura database per la gestione del ricettario, non devi fare nulla basta usare il Recipe view (Topic).
Se usi il vecchio EasyBuilder 8000 (Topic), allego un progetto che fà qualcosa di simile a quello che hai bisogno utilizzando una macro (Download progetto).
Sergio Bertana
Amministratore del forumPer caricare dei file recipe nel simulatore il file recipe.rcp va copiato nella cartella: C:EB8000HMI_memoryrecipe.
Altrimenti per caricare valori di default bisogna farsi una macro non c’è un tool esterno o un’impostazione di sistema.Marzo 4, 2016 alle 2:28 pm in risposta a: Acquisizione valori via Modbus da contatori Iskraemeco #39433Sergio Bertana
Amministratore del forumHo sviluppato una nuova funzione IEE754DoubleToFloat, IEE754 double to float (Estratto manuale) che converte un valore dal formato IEE754 a 64 bits nel formato REAL a 32 bits gestito dallo SlimLine.
Ho realizzato il programma IEEConversion (Stampa) che esegue il test di funzionamento della funzione (Download progetto). Naturalmente eseguendo la conversione di formato si ha una perdita di precisione nel numero ed un range diverso del valore.
Marzo 4, 2016 alle 7:58 am in risposta a: Utilizzo della dichiarazione AT nella definizione variabili #39432Sergio Bertana
Amministratore del forumNella dichiarazione delle variabili solitamente si lascia al compilatore il posizionamento all’interno della memoria dati del sistema e quindi si ha una assegnazione automatica. All’interno del programma poi si fà riferimento alle variabili utilizzando il nome con il quale la variabile è stata dichiarata ed il compilatore provvede a gestire il corretto indirizzamento.
Ma se la variabile deve essere “vista” anche al di fuori del sistema, esempio deve essere visualizzata su un pannello operatore (Topic) è necessario conoscerne l’indirizzo all’interno della memoria del sistema, ed ecco allora che con la direttiva AT si fissa l’indirizzo in cui la variabile si trova. Naturalmente utilizzando la direttiva AT occorre fare attenzione alla dimensione delle variabili per evitare di allocare più variabili sugli stessi indirizzi di memoria.
Sergio Bertana
Amministratore del forumThe forum has been created to support customers in using our products and we try to give our best effort in quickly answer.
About the SysTime it is a global variable, there are many others global variables, are all explained in the IEC 61131-3 programming Manual (Refer to the chapter 4, System variables).
Shortly, the SysTime is a UDINT variable that automatically increment each 1 mS, reached the maximum the value is reinitialized. Comparing its actual value with a saved value, it’s possible to generate or measure delay times. If more precision is required the SysGetSysTime, get system time function must be used. It returns a UDINT variable that automatically increment each 1 uS, reached the maximum the value is reinitialized. Here a sample program that calculates the time the Di00 on CPU module remains active.
IF (%IX255.0 <> Pulse) THEN
Pulse:=%IX255.0; (* Input pulse *)IF (Pulse) THEN
TimeBf:=SysGetSysTime(TRUE); (* Time reference (uS) *)
ELSE
OnTimeCalc:=SysGetSysTime(TRUE)-TimeBf; (* On time calculation (uS) *)
END_IF;
END_IF;Here the InputOnTime project printout and project download.
Sergio Bertana
Amministratore del forumAbbiamo rilasciato la nuova libreria eLLabStdLib_B200 con il FB eTON modificato secondo le raccomandazioni IEC, è possibile farne il download dalla pagina di LogicLab.
Sergio Bertana
Amministratore del forumThe new eLLabStdLib_B200 library with the eTON FB modified according the IEC raccomandations is available for the download from the LogicLab page.
Sergio Bertana
Amministratore del forumThe behaviour of eTON is been treated in this topic, unfortunately is an Italian topic. The eTON Q output works according the On-delay (TON) timing IEC-61131 raccomandation (Here the logic diagram) the only difference is in the ET output that it’s not reset, but the time is not remembered at the new IN activation. When the IN is been deactivated it stops the count (ET remains at its value) but when the IN is activated again the ET is reset and starts to count from 0. Here the eTON FB source code, on red the modify to be written to match the IEC raccomandation.
(* If the IN is not active resets the ouput and save time. *)
IF NOT(IN) THEN
ET:=0; (* Executing time (mS) to be inserted to exactly match the IEC raccomandation *)
TimeBf:=SysTime; (* Time buffer *)
Q:=FALSE; (* Delayed output *)
RETURN;
END_IF;(* IN active, and if Q is active checks if PT is greather than ET and resets Q. *)
IF (Q) THEN
IF (PT > ET) THEN Q:=FALSE; END_IF;
RETURN;
END_IF;(* Checks if time is been elapsed. *)
ET:=SysTime-TimeBf; (* Executing time (mS) *)
IF (ET >= PT) THEN
Q:=TRUE; (* Delayed output *)
ET:=PT; (* Executing time (mS) *)
END_IF;To help you, here the print of a sample project with the eTON source code, so you can modify it according the IEC raccomandations.
Sergio Bertana
Amministratore del forumPrendo spunto dalla domanda per aggiungere alcune informazioni. A seguito dell’uscita della versione di SlimLine per CODESYS abbiamo cercato di uniformare i due ambienti e visto che in CODESYS per la gestione della porta seriale c’era un FB apposito abbiamo scelto di creare lo stesso FB anche in LogicLab.
Rimane per compatibilità la possibilità di utilizare la Sysfopen ma è preferibile usare il nuovo FB, in questo modo ci si allenea anche alle gestioni TCP/UDP dove abbiamo appositi FB per la gestione sia server che client.
-
AutorePost