Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumSi purtroppo è così, non si possono neanche importare oggetti o parti di pagina.
Sergio Bertana
Amministratore del forumI due registri a cui ti riferisci sono:
- LW-11458 (32bit): HMI total space for history data
- LW-11460 (32bit): HMI current free space for history data
Questi registri sono presenti solo sui terminali serie cMT e quindi anche sul tuo modello serie cMT X.
Considera che lo spazio di memoria per lo storico sui cMT è di 800Mb, ed i registri ne ritornano il valore espresso in Kb. Quindi il valore di spazio totale dovrebbe avere valore 800000 che deve essere visualizzato in formato 32bit unsigned.
Sergio Bertana
Amministratore del forumPer la gestione dei grafici a barra si deve utilizzare l’oggetto Bar Graph, per le impostazioni, come si vede dallo screenshot:
- General: In questa sezione si definisce la variabile PLC a cui l’oggetto si riferisce ed al cui variare del valore si sposta la barra sul display in visualizzazione.
- Outline: In questa sezione si definisce il tipo di visualizzazione della barra, orrizzontate o verticale scegliendo anche il tipo di scorrimento.
- Range: Si definiscono i valori limite della barra, eventuali limiti di allarme con relativi colori.
Sergio Bertana
Amministratore del forumHai problemi di inizializzazione perchè stai operando sull’area di backup (Area in DB100 da 2048 a 4095). Siccome l’area è in backup il comportamento dell’init è particolare, in pratica se il valore di init è diverso da 16#00 la variabile viene inizializzata.
Se il valore di init è 16#00 la variabile non viene inizializzata e rimane con il valore che aveva allo spegnimento del sistema.
In questa verifica poi mi sono accorto di un problema che sembra avere LogicLab, quando si inizializza una stringa con “$00” in realtà anzichè inserire il valore 16#00 che coincide con il codice tappo viene inserito il valore “0” codice hex 16#30.
Quindi per rispondere alla tua domanda o sposti le variabili in area non backup, oppure le inizializzi da programma sulla task di Boot o testando la variabile SysFirstLoop.
VarC:=16#00; VarX:='zc$00';Sergio Bertana
Amministratore del forumDevi leggere bene le informazioni del FB ModbusMaster, il FB è realizzato per poter operare con modello a cascata, quindi se mantieni Enable semmpre attivo verrà eseguita una sola interrogazione. Se vedi gli esempi si collega sempre il Done negato all’Enable in questo modo terminata un comando ne viene eseguito un’altro e così via. Il tempo tra i comandi lo puoi definire con il parametro Delay.
Perchè adesso esegue una lettura ogni circa 28 secondi, se tu vedi hai impostato un tempo di LifeTime nella FB SysTCPClient di 20 secondi, alla connessione il FB modbus con Enable attivo esegue un solo comando, non essendoci più comunicazione dopo 20 secondi il TCP client chiude la connessione e dopo 5 secondi ne ritenta un’altra che và a buon fine e cosi parte un’altra interrogazione Modbus.
Sergio Bertana
Amministratore del forumSe è possibile puoi inviare il progetto sia del PLC che del pannello alla ns eMail di supporto così possiamo fare una verifica.
In generale mi sembrano tempi non congrui, sicuramente non aiuta il PLC che è lento nel trasferimento pacchetti, ma comunque mi sembrano tempi elevati.
Un altra cosa da verificare è il tempo ciclo del PLC se elevato (direi dai 20ms) può compromettere di molto i tempi in quanto questi PLC non hanno una comunicazione indipendente ma la comunicazione è secondaria al processo.
Sergio Bertana
Amministratore del forumLe cause del Fault possono essere molte, intanto ti consiglio di verificare con il comando Syslog da connessione Telnet che errori hai, la descrizione degli errori la trovi qui.
Hai verificato se il tuo dispositivo 192.168.255.1 è raggiungibile dallo SlimLine, se il dispositivo risponde al ping puoi testarlo con il comando di Ping sempre da connessione Telnet.
Ma guardando il tuo programma vedo il motivo dell’errore, se leggi bene la documentazione del FB SysTCPClient, vedi questo:
- LocalAdd (@STRING) Indirizzo IP della interfaccia di rete da cui effettuare la connessione. Default ‘0.0.0.0’: l’interfaccia è scelta automaticamente in base all’IP a cui connettersi.
- LocalPort UINT) Numero porta TCP da cui parte la connessione (0 scelta automaticamente).
Tu invece hai definito sia uno che l’altro dei parametri.
Definendo LocalAdd con l’indirizzo IP dello SlimLine stai obbligando il FB ad utilizzare la connessione che ha questo indirizzo e fino a qui tutto funziona tanto la connessione con il tuo dispositivi parte proprio dalla porta ethernet dello SlimLine.
Ma definendo LocalPort a 502 stai obbligando il FB ad aprire la connessione verso la porta 502 del tuo dispositivo dalla sua porta 502 che in realtà è già utilizzata dallo SlimLine (é quella dove ci si conette in Modbus). Quindi trovandola già aperta il FB non può utilizzarla.
Sergio Bertana
Amministratore del forumMeglio del ladder è il linguaggio FBD che essendo comunque grafico è ancora puù intuitivo del ladder ed è estremamente più veloce nel realizzare il programma.
Intanto di direi di dare una occhiata al programma di esempio FBD_SDM120Waterfal che trivi in questo articolo.
L’esempio utilizza una porta seriale come porta di comunicazione, nel tuo caso dovrai semplicemente sostituire il FB SysSerialPort con il FB SysTCPClient, e naturalmente modificare il tipo di protocollo Modbus in MDB_TCP.
Credo sia superfluo ricordare che il dispositivoi SlimLine abbia l’interfaccia di rete compatibile con il dispositivo con il quale devi connetterti, eventualmente per la verifica puoi utilizzare il comando di ping, ammesso che il dispositivo risponda al ping.
Sergio Bertana
Amministratore del forumE’ stranissimo avere tempi di risposta in lettura così lenti, questo indipendentemente dal tipo di variabili che il pannello legge.
Non è che esegui nel progetto accesso a variabili in errore, in tal caso si possono sommare i tempi di timeout sulla risposta dal protocollo e quindi avere tempi molto lunghi. Verifica la comunicazione con EasyDiagnoser.
Eventualmente puoi provare a creare un array di variabili BOOL e puntare a queste.
Sergio Bertana
Amministratore del forumAbbiamo sviluppato l’utility Symbols converter, in questo articolo si trovano le informazioni sull’utilizzo.
Nell’articolo sono anche riportate le informazioni sulla nuova versione del programma HMIStartUp rivisto con le ultime versioni di LogicLab e di EasyBuilderPro.
Sergio Bertana
Amministratore del forumNon hai indicato il tipo di PLC ed il protocollo di comunicazione che stai utilizzando.
In generale per velocizzare la comunicazione conviene avere le variabili di allarme sul PLC in un array consecutivo, piuttosto che variabili allocate ad indirizzi diversi.
In questo modo il pannello può raggruppare la lettura con una singola richiesta anzichè in molte richieste una per ogni allarme (Questo dipende dal protocollo utilizzato).
Se hai già le variabili di allarme in un array e la velocità non migliora occorre analizzare la comunicazione con il programma EasyDiagnoser per vedere che non ci siano errori di comunicazione che la rallentano.
Sergio Bertana
Amministratore del forumSi su ricezione eccezione si esce con il Done attivo senza Fault e senza Ok.
Settembre 18, 2024 alle 5:17 pm in risposta a: Weincloud assegnazione permessi accesso pannelli agli utenti #77943Sergio Bertana
Amministratore del forumIl portale Weincloud è stato oggetto di modifiche ultimamente e avendo cambiato alcuni menù si sono creati alcuni problemi di gestione. Ora per l’assegnazione dei diritti agli utenti occorre accedere al menù Directory dove sono visualizzati tutti i pannelli connessi al dominio.
Selezionando il pannello vengono visualizzati gli utenti che hanno permessi sul pannello, con il tasto Add Permission è possibile aggiungere utenti.
Come si vede dallo screenshot, per ogni utente è possibile selezionare i diritti di accesso al pannello.
Sergio Bertana
Amministratore del forumCon protocollo assoluto l’array del PLC Siemens non è 1-2-3-4 ma bisogna puntare al valore assoluto della Tag.
Esempio:
DB 10 array [0..10] of word
Partendo da indirizzo assoluto 0 avremo: 0, 2, 4, 6, ..Quindi sul pannello occorre mettere come Tag iniziale la prima DB10.word 0, abilitare l’Index e su questo andrà forzato il valore corretto cioè (0, 2, 4, 6, ..) che è il salto necessario per passare all’oggetto successivo.
Settembre 18, 2024 alle 4:55 pm in risposta a: Weincloud pannello disattivato Vs pannello rimosso #77931Sergio Bertana
Amministratore del forumDal portale Weincloud è possibile effettuare diverse operazioni sui pannelli vediamole:
- Remove: Il pannello viene rimosso dal dominio ma mantiene il riferimento HWKey codice attivazione (Activation card), quindi può essere nuovamente connesso al dominio o connesso ad altro dominio utilizzando i valori di SessionID e Password visualizzabili con la pagina 76 del progetto EasyBuilderPro.
- Transfer: Permette di trasferire il pannello da un dominio ad un’altro.
- Deactivate: La licenza sul pannello viene disattivata, sarà possibile ricollegare il pannello al dominio o ad altro dominio utilizzando HWKey e codice di attivazione (Activation card). Ricordo che l’activation card permette fino a 3 attivazioni dello stesso pannello o di pannelli diversi ma naturalmente l’attivazione deve essere univoca cioè un solo pannello puo essere attivato con quella activation card.
-
AutorePost