Vai al contenuto

Gestione stringhe ascii

Home Forum Terminali operatore (Weintek) Gestione stringhe ascii

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 2 mesi fa da Giuseppe.
Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Autore
    Post
  • #80369
    Giuseppe
    Partecipante

    Non 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?

    #80383
    Sergio Bertana
    Amministratore del forum

    Sinceramente 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.

    #80386
    Giuseppe
    Partecipante

    Come 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!!

Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Devi essere connesso per rispondere a questo topic.