Vai al contenuto
PLC Forum


Plc S7 315 2dp


suibaf

Messaggi consigliati

Salve ragazzi. Guardate questo semplice blocco:

CALL FC 7

pb :=M15.0

onof:=DB20.DBX0.0

all'interno dell'fc7 ho scritto semplicemente: U#pb

S#onof

cioè porto ad 1 pb e setto onof che rimane settato anche se poi porto a zero pb. Questo mi funziona solo se al posto di db20.dbx0.0 ci metto solo dbx0.0 aprendo il db20 prima di effettuare la call, perchè se ci lascio db20.dbx0.0 appena porto a zero #pb va a zero anche db20.dbx0.0. Cosa mi sfugge?

Grazie

Link al commento
Condividi su altri siti


Grazie per la risposta. Non so che dirti a me quel bit va sempre a zero appena faccio cadere #pb.

Ho risolto facendo:

auf db20

call fc 7

pb=m10.0

onof=dbx0.0

così funziona anche a me ma se ci metto db20.dbx0.0 mi da il problema che ti dicevo.

Bohhh

Link al commento
Condividi su altri siti

La variabile "pb" deve essere dichiarata come "in".

La variabile "onoff" deve essere dichiarata come "in_out".

Le variabili locali utilizzate all'interno delle FC devono sempre essere inizializzate altrimenti assumono valori casuali.

Le variabili dichiarata "in" o "in_out" vengono inizializzate con il valore dei parametri all'ingresso della FC: se il programma nell'FC modifica le variabili "in_out" all'uscita troverai il valore modificato altrimenti il valore con cui si è entrati.

Se la variabile "onoff" viene dichiarata solamante "out" per quanto risulta il codice della FC da te scritto il risultato è impredicibile. Mi spiego in questo caso:

all'ingresso dell'FC

"pb" = 1 ---> dal codice della FC sicuramente "onoff"=1 quindi anche db20.dbx0.0

ora all'ingresso dell'FC

"pb" = 0 --> la variable locale "onoff" assume un valore casuale che dipende dallo stack logico delle variabili locali e non viene ad assumere il valore logico di db20.dbx0.0 dell'ingresso che ripeto avviene solamente se viene dichiarata "onoff" come variabile "in_out".

Se hai fatto ciò e non funziona allora la tua CPU (sempre che non ci sia altro codice che scriva sopra a db20.dbx0.0) potrebbe essere stata contagiata da qualche ectoplasma... :ph34r:

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