Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumProva ad accedere alla pagina web del CMT e nella sezione storici esegui una cancellazione di tutti gli storici.
Sergio Bertana
Amministratore del forumMeglio dell’immagine è vedere insieme con TeamViewer il problema, installa il programma (Download dal nostro sito) poi mi chiami e vediamo immediatamente il problema.
Sergio Bertana
Amministratore del forumLeggo un pò di confusione, mi sembra tu stia parlando di un FB e non di un program. Nei program l’accesso alle variabili globali è libero, se la variabile è dichiarata nella tabella delle globali è direttamente accessibile con il proprio nome.
Diverso è l’utilizzo nelle Functions e nei FB, dove tutte le variabili devono essere passate come I/O (Vedi topic, topic). Solo nei FB e non nelle Functions puoi anche riferirti a variabili globali, ma in questo caso le devi dichiarare esattamente come sono dichiarate nelle GLOBALS e dopo averle dichiarate le assegni come VAR_EXTERNAL. Consiglio di copiare la dichiarazione dalla lista GLOBALS (Ctrl-C) ed incollarla nel FB (Ctrl-V) definendola poi come VAR_EXTERNAL.
Sergio Bertana
Amministratore del forumMettendo nella finestra di Watch la variabile SysLastError, oppure connettendoti in Telnet con il comando SysLog potrai vedere che errore hai, seguendone il numero nel manuale troverai le indicazioni per risolvere il problema. Puoi anche indicarmi l’errore e/o inviare il file Logs.txt con i logs di sistema alla nostra mail di supporto.
Il FB ModbusSlave ha anche l’ingresso SpyOn che se attivo permette di spiare dalla console di spionaggio cosa succede, ti consiglio di attivarlo e magari anche questo ti aiuterà a capire il problema.
Sergio Bertana
Amministratore del forumConsigliamo sempre di acquistare almeno un’ora di supporto remoto, così con TeamViewer possiamo lavorare insieme su LogicLab e partire con il “piede giusto” con la programmazione dei dispositivi. Inoltre possiamo durante il supporto fornire “pezzi” di programma già fatti che sono ottimi puntio di partenza per le proprie applicazioni.
Per il supporto remoto occorre utilizzare la versione di TeamViewer scaricabile dal sito, la si può anche solo eseguire senza installazione. Installato il programma puoi contattarci e solitamente possiamo fare subito la sessione di supporto.
Sergio Bertana
Amministratore del forumIl file Logs.txt contiene tutte le informazioni riferite alle anomalie del sistema, sono le stesse restituite dal comando SysLog eseguito da Telnet. Ogni riga inizia con il tipo di segnalazione:
[W] Warning, indica una anomalia minore
[E] Error, indica un errore di funzionamento
[L] Log, indica la registrazione di un eventoLa stringa seguente indica in che sezione del sistema operativo l’evento si è creato. Segue data/ora dell’evento, poi il numero identificativo dell’evento ed una breve descrizione. Questi dati servono a noi per capire il tipo di problema che si è verificato in un certo programma per questo non sono documentati.
Analizzando il tuo report, alle 9:42 si è mandato in esecuzione il programma PLC, ed alle 9:57 si è verificato una eccezione di accesso alla memoria (Questo errore è molto grave e riavvia il sistema). Questo può succedere quando utilizzando ad esempio un puntatore si esce dal range di memoria indirizzabile del sistema.
Siccome mi dici che hai aggiunto una SysVarsnprintf controlla l’indirizzo della variabile e l’indirizzo del buffer di memoria dove la funzione scrive la stampa del valore, probabilmente hai un errore di indirizzamento.
Sergio Bertana
Amministratore del forumSi le variabili BOOL utilizzano comunque un byte di memoria e non le puoi allocare a DB100.0 perchè il driver Modbus del pannello HMI “ragiona” sempre a interi 16 bits. Quindi anche per acquisire una sola variabile BOOL esegue un comando Modbus 01 Read Coil Status acquisendo 16 coils con indirizzo a cavallo della variabile desiderata.
Quindi se allochi a DB100.0 il terminale eseguirà la lettura di 16 coils nel range da -8 (39993) a +8 (40008), ma come evidente ad interrogazioni Modbus con indirizzo minore di 40000 lo SlimLine risponde con errore. Da tutta questa discussione emerge che non puoi allocare BOOL al di sotto dell’indirizzo DB100.8, noi per comodità diciamo DB100.16.
Sergio Bertana
Amministratore del forumIn questo topic e in questo, trovi informazioni utili per l’allocazione delle variabili, in linea generale (A meno di istanziare un FB ModbusSlave nel tuo progetto), tutte le variabili accesibili da Modbus devopno essere allocate nella DB100 (Address Modbus 40000).
Per l’allocazione, le variabili BOOL utilizzano un byte di memoria, quindi le puoi allocare a partire da DB100.16 (Address Modbus 0x 40016) in avanti una per byte.
Le variabili WORD utilizzano 2 bytes quindi se ne allochi una a DB100.100 (Address Modbus 3x 40050) la prossima sarà a DB100.102 (Attenzione sempre allocate ad indirizzi divisibili per 2).
Le variabili DWORD utilizzano 4 bytes quindi se ne allochi una a DB100.100 (Address Modbus 3x 40050) la prossima sarà a DB100.104 (Attenzione sempre allocate ad indirizzi divisibili per 4).
E’ ovvio che se una variabile utilizza un indirizzo di memoria non potrai allocare allo stesso indirizzo altre variabili.
Sergio Bertana
Amministratore del forumNo purtroppo devi proprio disabilitare il suono su ogni singolo tasto.
Sergio Bertana
Amministratore del forumPuoi disabilitare il suono su ogni singolo tasto della tastiera oppure nei system settings (Screenshot).
Sergio Bertana
Amministratore del forumSe la frequenza di conteggio è inferiore ai 4kHz puoi anche acquisisre l’ingresso direttamente da un programma eseguito in task Fast (Vedi post).
In alternativa sul modulo CPU è presente 1 ingresso digitale con possibilità di acquisire una frequenza massima di 10kHz, per utilizzarlo devi inserire nel tuo progetto il FB SysGetCounter (Estratto manuale), per trovarlo non devi guardare nelle variabili di sistema ma nei blocchi di sistema. Siccome dici di lavorare in ladder sul manuale c’è già un esempio di come utilizzarlo, in pratichi istanzi il FB, lo allochi tra le variabili (Vedi topic) e poi lo utilizzi nel tuo programma LD.
Sergio Bertana
Amministratore del forumSe vuoi eseguire la lettura diretta dal tuo slave Modbus RTU puoi utilizzare il FB ModbusTCPGateway (Topic), in questo caso le richieste Modbus TCP saranno indirizzate direttamente al sistema slave via Modbus RTU. Naturalmente dovrai utilizzare gli indirizzi che il tuo sistema slave RTU pubblica.
La seconda strada invece è di istanziare un FB ModbusMaster che legge i dati dallo slave Modbus RTU, trasferisce i dati in memoria dello SlimLine da cui potrai poi acquisirli in Modbus TCP, ecco alcuni topics utili (Topic, topic, topic). In questo caso se trasferisci i dati nella DB100 la gestione Modbus del sistema operativo mappa i dati nel caso di comandi coils dall’indirizzo 40000 a 44095, nel caso di comandi registers dall’indirizzo 40000 a 42047.
Ma tu puoi istanziare una FB ModbusSlave ed a questo punto potrai decidere da programma a che range di indirizzi mappare i dati. Naturalmente se vorrai agganciare il FB alla porta 502 dovrai da pagina web spostare la gestione del Modbus del sistema operativo su di un’altra porta.
Sergio Bertana
Amministratore del forumPuoi verificare la versione del sistema operativo presente sui moduli SlimLine, le versioni precedenti alla SFW184B050 potrebbero presentare questo problema. In presenza di molti pacchetti ethernet si può produrre un blocco del gestore di rete.
Nel caso il software sia precedente a quello indicato puoi eseguire l’upgrade.
Maggio 24, 2018 alle 7:59 am in risposta a: Numero accessi contemporanei al web server del cMT #44134Sergio Bertana
Amministratore del forumIl limite attuale e di 3 accessi contemporanei e non è modificabile (nè in meno nè in più), superato il numero di connessioni massime esce un messaggio di avviso.
In un prossimo futuro (a breve da informazioni Weintek), con una revisione del firmware il numero aumenterà.
Sergio Bertana
Amministratore del forumCon il nuovo file system (FAT32) ora è possibile non solo creare files ma anche le directories e questo ha creato un problema di compatibilità sul funzionamento del FB SysDirListing, lo stiamo risolvendo, appena pronto rilasceremo una nuova versione del sistema operativo.
-
AutorePost