Vai al contenuto
PLC Forum


Ob1 Dt200


Messaggi consigliati

Inserito:

Salve amici attendendo le ferie sto cercando di scrivere un programmino che con il pannellino dt200

alla pressione dei tasti funzione con il comando call inserito nella obi (uno per ogni tasto funzione )

mi richiama i vari sottoprogrammi ,funziona tutto egregiamente ma soltanto alla prima pressione dei tasti funzione

se voglio ripremere nuovamente lo stesso tasto funzione non c'e' piu' il famoso call che prima funzionava,

la domanda e' questa :come faccio a far capire al sottoprogramma che alla fine di aver visualizzato sul dt200 e anche magari aver fatto modificare un qualcosa (un uscita ad esempio) mi setti dinuovo il tasto funzione in modo che alla prossima pressione del detto tasto mi riproponga la stessa situzione,ho provato a far richiamare dal sottoprogramma l'Ob1 con la funzione call ma non e' possibile farlo...

come faccio , mi date una mano ??


Gianmario Pedrani
Inserita:

Ha ogni fine funzione hai resettato il bit che ti richiama la funzione???? se non lo resetti funziona tutti ma solo una volta!!!! Quando la tua funzione finisce di fare quello per cui e stata progettata deve resettare il bit che la chiamata in modo che alla prossima pressione del tasto funzione tutti riparte!!!! ciao

Inserita:

Premetto di non conoscere abbastanza bene il Microwin e probabilmente di non aver capito il problema.

Se a esempio nell' assistente TD200 hai riservato il byte 0 ai tasti funzione (da M0.0 a M0.7) , prova ad azzerare il byte dopo aver eseguito la funzione.Piu o meno in questo modo:

LDB<> MB0, 0

MOVB 0, MB0

In ogni caso penso che il problema sia la memoria, associata al tasto, che rimane "attiva" anche dopo aver rilasciato il tasto.

Inserita:

confermo quello che dice gianmario

una volta eseguite le operazioni , tenendo in considerazione lo stato di un bit , devi resettare

quest'ultimo

ciao

walter

Inserita:

Lasciatemi dire innanzitutto che questo forum e' frequentato da persone squisite sempre disponibili a risolvere problemi a persone che come me si trovano in difficolta' ,grazie e ancora grazie.

Dopo questa premessa ho pensato (speriamo bene ) di farvi vedere il mio programmino di esempio, che io ho soprannominato il super-programma proprio per la sua mole :P:P:P

OB1

M2.0 V 14.5 in questo caso io ho resettato v 34.1 ???

--| |------( ) perche' il programma funziona comunque

M0.0 solo la prima volta ????

--| |--- CALL F1

F1 (SOTTOPROGRAMMA)

SM3.0 V 14.7

---| |-------( S )

V 34.1 Q0.1

---| |-------( )

|

| M2.0

|----( )

|

| V 14.7

|----( R )

Inserita:

M0.0 e i merker associati ai tasti funzione rimangono sempre attivi quando viene premuto il tasto stesso (come l'interruttore di una lampadina di casa). Devi resettare il merker stesso ogni volta che lo utilizzi.

Ad esempio all'interno della sub routine chiamata dal tasto funzione puoi mettere RES M0.0,1.

Un' alternativa può anche essere quella di resettare ad ogni scansione del programma (quindi magari prima della funzione END) tutti i merker associati ai tasti funzione (RES M0.0,7).

Inserita:

Grazie lacky67 sempre gentilissimo, purtroppo sai che sono alle prime armi, e qundi ho provato il tuo consiglio ma prima di un Reset non ci vuole un Set ?? esiste un contatto con la funzione set/reset ??

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