CLS Group Inserito: 7 dicembre 2004 Segnala Share Inserito: 7 dicembre 2004 Con il programma Twido soft, è possibile richiamare una subroutine (SR..), all'interno di di un'altra subroutine (SR..)?Ho provato, ma non mi sembra che funzione, mi da errore di compilazione! Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 7 dicembre 2004 Segnala Share Inserita: 7 dicembre 2004 dimmi come inserisci i tuoi salti perchè non ci sono per me limitazioni Link al commento Condividi su altri siti More sharing options...
CLS Group Inserita: 7 dicembre 2004 Autore Segnala Share Inserita: 7 dicembre 2004 esempio:ld %i0.4sr1endsr1:ld %i0.5sr2retsr2:ld 1s %m0ret Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 7 dicembre 2004 Segnala Share Inserita: 7 dicembre 2004 ho scritto pari pari, ed è corretto!!!Non c'è nient'altro che possa darti l'errore di compilazione?? Hai solo questo nel tuo programma? Questo va bene, ma andava bene anche senza che lo scrivessi direttamente... Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 7 dicembre 2004 Segnala Share Inserita: 7 dicembre 2004 Dall'. IN LINEA di TWIDO SOFT :Indicazioni Una subroutine non deve richiamare un'altra subroutine. Le istruzioni di subroutine non possono essere racchiuse tra parentesi e non devono essere posizionate tra le istruzioni AND(, OR(, e un'istruzione di parentesi chiusa ")". L'etichetta può essere posta solo prima di un'istruzione LD o BLK che segna l'inizio di un'equazione booleana (o rete). La chiamata alla subroutine non deve essere seguita da un'istruzione di assegnazione. Questo perché la subroutine può cambiare il contenuto dell'accumulatore booleano. Pertanto, su un ritorno, essa può avere un valore diverso da quello posseduto prima della chiamata. Vedere l'esempio seguente. bigalex Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 7 dicembre 2004 Segnala Share Inserita: 7 dicembre 2004 vero, sinceramente ho solo ragionato sul fatto che la chiamata ad una subroutine non è altro che un salto ad un gruppo di istruzioni concluse le quali si risalta all'indietro al punto subito successivo alla chiamata. In effetti però il twido non permette subroutine annidate, ciò non toglie che si possa fare l'identica cosa usando i salti normali. Quindi molto semplicemente invece di chiamare la SRxx, salta ad una Label %Lxx e fai le identiche cose. Al posto di RET ovviamente risalti ad una %Lxx posta nel punto corretto.Ad ogni modo l'errore viene dato non in fase di sviluppo, ma se vai a scaricarlo nel plc... e se scegli di vedere che tipo di errore hai commesso, il twido lo dice chiaramente che non si possono annidare SR in altre SR senza dover domandare al forum o guardare nell'. Link al commento Condividi su altri siti More sharing options...
CLS Group Inserita: 7 dicembre 2004 Autore Segnala Share Inserita: 7 dicembre 2004 grazie per le risposte.....era quello che immaginavo, solo che sull'. non ero riuscito a trovare ciò che ha indicato bigalex.grazie ancora Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 7 dicembre 2004 Segnala Share Inserita: 7 dicembre 2004 Bastava inserire nella ricerca SR e ci arrivavi in un battibaleno . bigalex Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora