Vai al contenuto
PLC Forum


Ciclo Di Scansione E Bit:ancora Dubbi


step-80

Messaggi consigliati

Salve a tutti, perdonate la domanda forse banale ma non riesco a trovare risposta a questo quesito.

Ho imparato che nel normale ciclo di scansione di un plc la prima cosa che viene esguita è la lettura di tutti gli ingressi e la successiva trascrizione di essi in un registro di immagine degli ingressi. Tale immagine viene usata per eseguire le istruzioni del programma nell'ordine in cui sono scritte mentre viene compilato il registro di immagine delle uscite; solo alla fine della scansione le uscite vengono scritte fisicamente.

Fin qui tutto ok?

Praticamente le uscite assumono l'ultimo valore letto dalla scansione, ma come si comportano i merker di sistema? Voglio dire, se nel segmento n3( parlando di ladder)setto un bit, posso considerarlo settato dal segmento n4 dello stesso ciclo di scansione? Lo stato cambia immediatamente?

Immaginiamo che nel segmento n1 con il bit m0.0 setti la bobina del bit m0.1.

Nel segmento n2 con il fronte di salita del bit m0.2 setto la bobina del bit m0.0.

Se ragiono giusto, in questo modo il bit 0.0 e quindi 0.1 non si setteranno mai,perchè posti nel segmento 1,quindi prima che possa verificarsi la condizione di settaggio.... sbaglio?se invece scambiassi i segmenti, la cosa dovrebbe funzionare... Credo

Link al commento
Condividi su altri siti


Le memorie cambiano istantaneamente assumento l'ultimo valore scritto; le uscite fisiche cambiano al termine del ciclo quando vengono scritte assumendo lo stato dei registri immagine.

Durante il ciclo lo stato "teorico" di un'uscita può variare parecchie volte se è riscritta parecchie volte, ma solo al termine del ciclo assumerà lo stato eguale all'ultimo valore scritto; se durante il ciclo di programma leggi lo stato fisico di un'uscita il valore corrisponderà allo stato scritto nel ciclo precedente. Se leggi lo stato di un merker o il valore di una word che hai scritto qualche istruzione prima, troverai quel valore che hai scritto.

Link al commento
Condividi su altri siti

Grazie Livio, preciso e gentile come sempre.

Quindi posso considerare esatta la mia ipotesi fatta nell' ultima parte del post? Cioè se col fronte di salita il bit è settato solo 1 ciclo di scansione, significa che m0.0 non potrà mai settarsi giusto?

Link al commento
Condividi su altri siti

ciao

ho scritto le 2 righe in un plc (che non è siemens) e se uso il comando SET m0.1(per usare lo stesso nome) rimane ON, altrimenti se lo uso come bobina rimane on solo per una scansione .

perché le variabili interne non vengono aggiornate come le uscite ma al punto in cui sono usate.

Link al commento
Condividi su altri siti

Sempre restando in ambito teorico , se la scansione arriva al segmento 2 e con un fronte di salita setto un bit che viene richiamato nel segmento precedente.... Questo bit non avrebbe ragione di essere settato giusto? Intendo m0.0

Link al commento
Condividi su altri siti

altrimenti se lo uso come bobina rimane on solo per una scansione .

Mi sembra molto strano.

In tutti i PLC una volta che hai dato uno stato ad un'uscita questa lo mantiene sino a quando il programma non lo modifica. Sei sicuro di non avere qaulche istruzione che scrive su quell'uscita?

Questo bit non avrebbe ragione di essere settato giusto?

Perchè no? se nel segmento in corso esistono le condizioni per settare il bit questo avviene, indipendentemente da cosa è stato scritto prima.

Per puro divertimento potresti scrivere un programma dove al primo segmento set m0.0 ed al secondo reset m0.0 e così via per una decina di volte. Vedrai che ad ogni esecuzione il bit cambia di stato.

Link al commento
Condividi su altri siti

Immaginiamo che nel segmento n1 con il bit m0.0 setti la bobina del bit m0.1.

Nel segmento n2 con il fronte di salita del bit m0.2 setto la bobina del bit m0.0.

altrimenti se lo uso come bobina rimane on solo per una scansione .

Mi sembra molto strano.

rimane solo a on una scansione se non uso il comando set ,perché' m0.0 rimane alto solo una scansione (comandato da m0.2 che genera un fronte di salita che dura una scansione)

Link al commento
Condividi su altri siti

Allora: se nel segmento 1 uso come contatto m0.0, e nel 2 vado a settare con un fronte di salita di un altro bit il merker 0.0( scusate, mi sono reso conto di aver usato il termine 'settare'impropriamente, intendevo non eseguire un set ma una bobina semplice, che va ad 1 solo quando si verifica la condizione e poi torna a riposo).... Significa che in teoria il programma parte, vede che m0.0 è aperto quindi non fa nulla, poi nel segmento 2 con un fronte metto ad 1 m0.0(ma solo per quel ciclo, poi torna a 0 e quindi il ciclo dopo non puó vederlo! Sbaglio?

Scusate il casino

Link al commento
Condividi su altri siti

sempre precisando che non uso siemens

inizio del programma -> segmento 1: m0.0=0 m0.1=0 ->segmento 2 m0.2=1 m0.0=1 ->fine del programma

si ricomincia

inizio del programma -> segmento 1: m0.0=1 m0.1=1 ->segmento 2 m0.2=1 m0.0=0 (dura una scansione) ->fine del programma

si ricomincia

inizio del programma -> segmento 1: m0.0=0 m0.1=0 ->segmento 2 m0.2=1 m0.0=0 (dura una scansione) ->fine del programma

ecc. ecc

spero di essere stato chairo

ciao

Link al commento
Condividi su altri siti

potremmo ipotizzare che il ciclo di scansione termina all'ultimo segmento per poi riprendere con il primo, ma il bit m0.0 , n01 m0,2 vengono aggiornati quando la scansione ripassa per quel punto

ciao

Link al commento
Condividi su altri siti

Giuseppe Signorella

potremmo ipotizzare che il ciclo di scansione termina all'ultimo segmento per poi riprendere con il primo,

Il ciclo termina alla fine del programma,

Quando il programma inizia nuovamente è ad un nuovo ciclo. Non è un'ipotesi. ;)

Chiaro. Quindi il fronte di salita abbassa il bit quando la scansione ripassa per quel punto...

Si è esatto, quando viene eseguita un'istruzione, e viene letta un'area di memoria, ad esempio il bit M0.0, se nel ciclo attuale, non è stata ancora scritta, essa manterrà il valore assunto nel ciclo precedente.

Un esempio piu chiaro lo si può fare con le uscite fisiche. Quando leggi la memoria immagine delle uscite fisiche, esse contengono lo stato in cui sono state scritte le uscite nel ciclo precedente. Per poterle cambiare, e fargli assumere un nuovo valore, dovrai attendere che vengano scritte nuovamente a fine della scansione attuale.

Se qualcuno viene al SAVE pago da bere

Hai fatto la Ca...ta più grossa della tua vita :D Ora dovrai mantenerla. :superlol:

Link al commento
Condividi su altri siti

Hai fatto la Ca...ta più grossa della tua vita :D Ora dovrai mantenerla. :superlol:

Sinceramente speravo nell'aiuto finanziario di qualche amico...

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Fatti vedere ericonoscere allo stand di PLCForum, magari ci scappa anche un gadget, se non se lisono già spazzolati tutti prima. ;)

Link al commento
Condividi su altri siti

Fatti vedere ericonoscere allo stand di PLCForum, magari ci scappa anche un gadget, se non se lisono già spazzolati tutti prima. ;)

Certo Livio con piacere, forse non si ricorda ma ci siamo conosciuti lo scorso anno. Quest anno alle sei e mezza son li

Link al commento
Condividi su altri siti

off topic :peccato che sono a monaco per la festa della birra , se no venivo volentieri a offrirvi un "ombra" ;) , soprattutto per stringere amicizia, peccato :(

:toobad::toobad: :toobad:

c'è un contatore di smile, se si prova superare si attiva un interrupt che mi disabilita la funzione invia messaggio. :lol:

sarei curioso vedere che plc gestisce il forum :lol::lol: :lol:

Link al commento
Condividi su altri siti

Giuseppe Signorella

Inviato Oggi, 19:35

coquinati, li 16 Sept 2013 - 18:38, ha scritto:snapback.png

Secondo me stai molto meglio tu fidati

Secondo me in questo momento sei l'utente più invidiato del forum.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Secondo me in questo momento sei l'utente più invidiato del forum.

ahaahh casomai si portebbe portare lo stand di PLC Forum a monaco=)cosi facciamo tutti contenti=)

Link al commento
Condividi su altri siti

Giuseppe Signorella

mi dispiace di non avere l'occasione di conoscervi, anche perché non sono molto popolare sul forum.

Non potrei farlo qui sul forum, ma ti ci mando lo stesso. :P

Modificato: da Giuseppe Signorella
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...