Home › Forum › Terminali operatore (Weintek) › Gestione stringhe ascii
- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 6 mesi fa da
Giuseppe.
-
AutorePost
-
Marzo 7, 2025 alle 12:21 pm #80369
Giuseppe
PartecipanteNon riesco ad ottimizzare l’ingresso dell’oggetto ASCII nei pannelli Weintek, mi spiego meglio, il dato di riferimento proveniente dal PLC è in formato STRING,
Il pannello gestisce il dato a 16 bit per cui due byte quindi mi lascia uno spazio tra un carattere e l’altro, di conseguenza se voglio inserire un dato in formato stringa ad esempio di 40 caratteri la casella diventa enorme, non ridimensionabile, ma quando vado on-line nel pannello c’è un sacco di spazio oltre a quelli tra i caratteri,
ho provato con unicode ma non sò perchè mi va in blocco il PLC …
C’è qualche soluzione?
Marzo 7, 2025 alle 4:53 pm #80383Sergio Bertana
Amministratore del forumSinceramente non hoi mai trovato questo tipo di problema…
L’oggetto impostazione/visualizzazione Ascii come hai detto giustamente tu opera su WORD quindi ogni WORD contiene due caratteri Ascii. Se sul tuo PLC la variabile stringa ad esempio è di 16 caratteri tu dovrai definire nell’oggetto la lunghezza di 8 WORDs.
E nella visualizzazione e/o impostazione non ci saranno spazi, ma il testo verrà visualizzato esattamente come scritto nel PLC (Questo salvo che il PLC non tratti le stringhe in modo particolare), Quello che ho scritto vale sicuramente per i ns sistemi SlimLine ma anche per moltissimi altri PLC con cui i nostri clienti si sono connessi.
Attenzione al codice tappo, le stringhe Ascii sul PLC possono essere terminate con il codice tappo (16#00) quindi solitamente se definisci una variabile STRING[16] in realtà nella memoria vengono allocati 17 bytes (Uno per il tappo) quindi devo definire lunghezza 9 WORDs. Nessun problema in visualizzazione, quando viene acquisito il valore il codice tappo termina la stringa. Ma in inputazione vegono inviati al PLC 18 bytes e quindi vado a sporcare anche i primo bytes della variabile allocata dopo la variabile STRING, in tal caso occorre lasciare un byte libero o allocare stringhe di lunghezza dispari in modo che il byte aggiuntivo di tappo le renda di lunghezza pari.
Marzo 8, 2025 alle 10:24 am #80386Giuseppe
PartecipanteCome al solito grazie per la tua competenza e presenza nel forum!
Purtroppo sono collegato al PLC da remoto e quindi dopo il crash non riesco a collegarmi per capire l’errore, però facendo un test “a casa” il problema non si presenta e quindi forse è un problema di altra natura (PLC che va in eccezione).
Il PLC comunica con un I/O remoto ethernet che è lontano circa 100 mt (limite), i testi (STRING) sono all’interno di una struttura piuttosto pesantina da qui il dubbio che si inserisca il watchdog.
Visto che il tempo di ciclo è fisso e impostato a 20 ms forse sono un pò pochini considerando la lunghezza .. magari alzandolo ..
“a casa” impostando sul pannello il testo in formato unicode e font Arial problemi zero..
Appena possibile farò dei test in loco per il momento grazie molte!!
-
AutorePost
- Devi essere connesso per rispondere a questo topic.