Vai al contenuto
PLC Forum


Campo Simbolico Di I/o


carmen63

Messaggi consigliati

Se voglio associare ad un campo di simbolico di I/O più stringhe di testo, se non sbaglio utilizzo l'opzione numeri di bit, ma a che tipo di variabile STEP devo associare tale campo?Come faccio a scorrere tali campi?

Link al commento
Condividi su altri siti


Non ho capito molto... comunque una variabile del tipo STRING potrebbe contenere diverse stringhe di testo.. una variabile INT o WORD..etc potrebbe contenere un numero decimale... poi nel HMI, una scripting routine potrebbe assegnare distinti stringhe di messaggi a un box edit, a secondo la corrispondenza numerica di quella variabile.

Se ti spieghi meglio, forse con un esempio...

Link al commento
Condividi su altri siti

Ciao Carmen63,

Penso di aver capito a cosa ti riferisca...parli dei "text fields" scusami gli inglesismi, ma sono abituato ad usare i programmi in inglese. :lol:

Facciamo un'esempio, devi creare una lista di 3 testi corrispondente allo stato della tua macchina, MANUALE-AUTOMATICO-SEMIAUTOMATICO.

Prima cosa , devi creare una "lista testi" o TextList, la trovi in una sottocartella del progetto.

Nella creazione , gli dai un nome esempio: StatoMacchina

Selezione: hai 3 tipi a disposizione.

1-Bit0-1 , ti permette di creare una lista di 2 testi , dove se il bit associato e' 0 o 1 e' la discriminante.

2-Bit number 0-31 , ti permette di creare una lista fino a 32 testi , dove la discriminante e' il numero del bit nella word.

3-Range...lasciamo stare per ora. ;)

Per l'esempio precedente basta il tipo 2 (Bit number 0-31).

Nella "lista testi" appena sotto , ad ogni singolo byte associ un testo, quindi:

Valore 0 =MANUALE

Valore 1= AUTOMATICO

Valore 2= SEMIAUTOMATICO

Adesso crei un nuovo TAG , che chiamiamo "MachStato" , sorgente PLC (scusa ma non hai specificato quale), indirizzo , basta un byte per 3 testi, quindi diciamo DBxx.DBB10 (supponendo che usi un S7-3xx)

Ora , nella pagina , inserisci un nuovo oggetto , "symbolic I/O field"

Nel campo General.....

Setting-->Mode: Output

Content-->TextList: StatoMacchina

Content-->Field Lengt: 15 , questa e' la lunghezza max del testo , sempre piu' alto del numero di caratteri della parola piu' lunga della lista , nel nostro caso SEMIAUTOMATICO =14 caratteri

Process-->TAG:MachStato

I campia seguire lasciali stare , e per gli altri dettagli come il colore sfondo, caratteri ecc, ti devi regolare con le proprieta'.

Adesso se tu lanci il run time , vedrai che inizialmente apparira' ##### perche' nessun bit nel byte e' VERO.

Ma se scrivi nella DBxx.DBB10 , il valore DEC.1 o HEX1 vedrai che appare MANUALE , perche hai messo il bit 0 del byte a VERO.

Se scrivi nella DBxx.DBB10 , il valore DEC.2 o HEX2 vedrai che appare AUTOMATICO.

Se scrivi nella DBxx.DBB10 , il valore DEC.4 o HEX4 vedrai che appare SEMIAUTOMATICO.

Poui anche decidere di settare il singolo BIT 0 o 1 o 2 del byte, ma spesso questo induce errori.

Ciao

Ivan

Link al commento
Condividi su altri siti

Esattamente questo il problema, io ho creato i testi e vorrei che nel mio programma step7, a seconda dello stato del programma vari la stringa sul pannello.Come faccio nel programma Step a settare che deve essere attivo uno specifico bit di un byte?Mi spiego: se io ho una parola MW5 e tramite l'operazione MOVE trasferisco D#16#1 setto a 1 il bit 0 del merker 5 e di conseguenza sarà visualizzata la stringa corrispondente al campo 0?

Grazie

Link al commento
Condividi su altri siti

Mi spiego: se io ho una parola MW5 e tramite l'operazione MOVE trasferisco D#16#1 setto a 1 il bit 0 del merker 5 e di conseguenza sarà visualizzata la stringa corrispondente al campo 0?
Si', esatto! se il campo 0 e' in corrispondenza con il valore della MW5, allora se la fai lavorare in un intervallo tra 0 - 9, vuoldire che puo' fornire 10 messaggi diversi per quel campo .

Poi, a ogni valore di MW5 le associ una stringa diversa.. esempio:

MW5 = 0 => Nessuna anomalia

MW5 = 1 => Pressione troppo alta..

MW5 = 2 => Temperatura troppo bassa..

..

.

Modificato: da Savino
Link al commento
Condividi su altri siti

Solo una domanda la variabile nel mio programma step va bene se è una mw?Facendo move i bit non vengono settati e quindi la stringa non viene visualizzata.Questa word deve essere inizializzata?

Link al commento
Condividi su altri siti

Potrebbe andare bene una MW o una DBx.DBWx..

Facendo move i bit non vengono settati
Vedi se la MW 5 la stai gia' sovrascrivendo da qualche altra parte del programma...

Link al commento
Condividi su altri siti

SE IO HO UNA MW...PER RENDERE VERO IL CAMPO 1 USO W#16#2

IL CAMPO 2 W#16#4 E QUESTI DUE ME LI VISUALIZZA, MA PER GLI ALTRI CAMPI?CIOè IL 3 IL 4 E 5?COME HO FATTO IO NON MI FUNZIONA

Link al commento
Condividi su altri siti

Dunque,

Campo 1 => MW 0

Campo 2 => MW 2

Campo 3 => Mw 4

e cosi' che stai facendo.. altrimenti posta il codice

N.B.: Ti ricordo che nel Forum e' regola scrivere in minusculo, altrimenti si pensarebbe che uno sta propio urlando!

Link al commento
Condividi su altri siti

Scusate il maiuscolo che ho usato prima , ma ho scritto di fretta e non ci ho fatto caso.Allora io ho 5 stringhe associate ai valori 1,2,3,4,5.Per accedere la prima utilizzo l'operazione Move con ingresso w#16#2 e uscita MW5,

per la seconda (valore 2) uso sempre move con ingresso w#16#4 ed uscita MW5

per la terza (valore 3) uso move con ingresso w#16#8 ed uscita MW5

...queste 3 le visualizzo

per la quarta (valore 4) uso move con ingresso w#16#16 ed uscita MW5

per la quinta (valore 5) uso move con ingresso w#16#31 ed uscita MW5

ma queste due non le visualizzo...........

Link al commento
Condividi su altri siti

La MW5 sarebbe composta dalla MB 5 e MB 6... hai controllato se da qualche parte del programma PLC utilizzi delle assegnazioni a bit sulla MB 5...

Poi, tiene presente che stai caricando in esadecimale e non in decimale, quindi:

Hex         Dec
----------------
02            2
04            4
08            8
16            22
31            49

Il 16 in Dec sarebbe il 10 Hex
il 31 in Dec sarebbe il 1F Hex.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...