TRC Inserito: 4 maggio 2009 Segnala Share Inserito: 4 maggio 2009 Buon giorno a tutti, esistono i bit di stato nei plc ABCome faccio a fare una serie di blinker a 0,1 - 0,3 - 0,5 - 1 - 3 - 5 -10 secondi, devo sprecare una task a interrupt e costruire il programma o esiste qualcosa di già pronto ?Esistono i bit SEMPRE ON - SEMPRE OFF - PRIMA SCANSIONE ecc. ecc. ? Grazie Link al commento Condividi su altri siti More sharing options...
Mamic Inserita: 4 maggio 2009 Segnala Share Inserita: 4 maggio 2009 Se ti riferisci ai controllori della famiglia Logix (ControlLogix, CompactLogix e FlexLogix),Per i Blinker devi farli tu.Non credo che ci sia bisogno di sprecare una task a interrupt di tempo, basta usare dei banalissimi Timer. (ovviamente dipende dall'uso che ne devi fare).Per alcuni bit di sistema esistono i seguenti Flag: (Copiato dalla guida in linea di RSLOGIX5000)----------------------------------------------------------------------S:FSFirst Scan flagThe first scan flag is set by the controller on the first scan of the routines in this program. This flag can only be used with the XIC and XIO instructions. You could use this flag to initialize data for use in later scans.S:NNegative flagThe controller sets the negative flag when the result of an arithmetic or logical operation is a negative value. This flag can only be used with the XIC, XIO, OTE, OTL and OTU instructions. You could use this flag as a quick test for a negative value. Using S:N is more efficient than using the CMP instruction.S:ZZero flagThe zero flag is set by the controller when the result of an arithmetic or logical operation is zero. This flag can only be used with the XIC, XIO, OTE, OTL and OTU instructions. You could use this flag as a quick test for a zero value. Using S:Z is more efficient than using the CMP instruction.S:VOverflow flagThe controller sets the overflow flag when the result of an arithmetic operation resulted in an overflow. This flag can only be used with the XIC, XIO, OTE, OTL and OTU instructions. You could use this flag to check that the result of an operation is still in range. For example, adding 1 to a SINT will generate an overflow when the value goes from 127 to 128. Note: Setting the overflow flag causes the controller to generate a minor fault.S:CCarry flagThe controller sets the carry flag when the result of an arithmetic operation resulted in the generation of a carry out of the most significant bit. This flag can only be used with the XIC, XIO, OTE and OTL instructions. You could use this flag for performing 64-bit integer math operations.S:MINORMinor Fault flagThe controller sets the minor fault flag when there is at least one minor program fault. This flag can only be used with the XIC, XIO, OTE, OTL and OTU instructions. You could use this flag to test that a minor fault has occurred and take appropriate action.--------------------------------------------------------Per il resto per leggere altre informazioni di stato bisogna usare l'istruzione (GSV - GetSystemValue)Il Bit di Sempre ON se vuoi puoi realizzarlo tu oppure potrebbe non servirti in quanto in Logix 5000 le Rung possono anche iniziare senza un contatto.Il Bit di Sempre OFF se vuoi puoi realizzarlo tu oppure puoi usare ---[AFI]--- (Always False) da anteporre a un ramo per bloccarne l'esecuzione.Ciao.. Link al commento Condividi su altri siti More sharing options...
TRC Inserita: 4 maggio 2009 Autore Segnala Share Inserita: 4 maggio 2009 Grazie per la risposta, fare il blinker col timer, significa che prendo il tempo corrente, lo utilizzo in binario e dai bit del valore ricavo i blinker ? Link al commento Condividi su altri siti More sharing options...
barolo72 Inserita: 6 maggio 2009 Segnala Share Inserita: 6 maggio 2009 Ma per il blink utilizzi due timer TON in cascata ed il gioco è fatto ! Link al commento Condividi su altri siti More sharing options...
TRC Inserita: 7 maggio 2009 Autore Segnala Share Inserita: 7 maggio 2009 beh due timer in cascata per fare un blink, io vorrei farne 10 diversi con un timer Link al commento Condividi su altri siti More sharing options...
barolo72 Inserita: 7 maggio 2009 Segnala Share Inserita: 7 maggio 2009 mamic disse Per i Blinker devi farli tu.io risposi Ma per il blink utilizzi due timer TON in cascata ed il gioco è fatto !e tu replicasti beh due timer in cascata per fare un blink, io vorrei farne 10 diversi con un timerSe fossero con basi tempo multiple 0,1 - 0,2 - 0,4 - 0,8 - qualcosa mi viene in mente... con dei flag e 2 timer...altrimenti se vuoi proprio quei tempi che hai indicato ( che mi sembra di ricordare di aver già visto ) se trovi una soluzione furba fammi sapere che prendo spunto ! Link al commento Condividi su altri siti More sharing options...
TRC Inserita: 12 maggio 2009 Autore Segnala Share Inserita: 12 maggio 2009 Per fare più blinker con un timer bisogna prendere il tempo corrente, ipotizziamo un timer da 0 a 1 secondo e con risoluzione 1 decimo, prendi i singoli bit del valore che cambiano stato in funzione del tempo, quindi il primo bit cambia ogni decimo da 0 a 1 (blinker 2 decimi) il secondo ogni 2 decimi ecc ecc-----]time.0[------[ONS]-------- (L)blink 4 decimi e (U)blink 4 decimi-----]time.0[---[time.1[------(L)blink 6 decimi e (U) blink 6 decimi-----ecc eccc. più la divisione del tempo è piccola e più si potranno fare combinazioni 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