Vai al contenuto
PLC Forum


Funzione Ctbl - Non mi fa il confronto


ICHNUSA

Messaggi consigliati

Ho scritto un programmino semplice semplice (copiato dal manuale) per vedere se la funzione CTBL viene eseguita, ma le subroutin che dovrebbero partire non partono (facendo il monitoraggio del contatore si vede benissimo che è attivo)! Come mai? il contatore è stato settato (DM6642 -> 0114), le funzioni estese le ho trasferite al PLC! Bho!

Grazie a chiunque sarà in grado di rispondere, e non!!!

Link al commento
Condividi su altri siti


Probabilmente hai sbagliato qualche parametro nella tabella della CTBL e quindi l'istruzione non viene eseguita. Ricontrolla i valori, senza fidarti troppo di quelli scritti negli esempi del manuale che a volte sono sbagliati... :angry:

Ciao!

Modificato: da edogol
Link al commento
Condividi su altri siti

Mmmhhh, ho controllato ma mi sembra tutto regolare

La funzione CTBL è cosi settata (con il bit di primo ciclo 25315):

Specificatore di porta 000 (contatore veloce)

Indicazione della modalità 001 (Registra la tabella e perte il confronto)

Canale iniziale DM0100

La tabella la setto direttamente col cx programmer da memoria -> Trasferisci PLC e monitorando si vede che i dati ci sono

Nel Dm0100 -> limite inferiorere parte meno significativa

Nel Dm0101 -> limite inferiorere parte più significativa

Nel Dm0102 -> limite superiore parte meno significativa

Nel Dm0103 -> limite superiore parte più significativa

Nel Dm0104 -> Numero subroutin 0041

Tutto questo per gli intervalli utilizzati (con valori opportunamente cambiati :) ), altrimenti 0000 per i dati e ffff per indicare la subroutine, per un totale di 8 volte!!

Ed in teoria appena capita nell'intervallo dovrebbe scattare la subroutine, es incrementa dm0000, ed invece niente la oltrepassa senza incrementare.

Praticamente l'esempio è uguale a quello di pag 57 del manuale di programmazione!

:(

Link al commento
Condividi su altri siti

Per prima cosa devi essere sicuro che la CTBL venga eseguita. Utilizza il flag di errore 255.03 subito dopo la CTBL (in parallelo ad essa) e in serie al 255.03 metti una SET di un bit. Se vedi quel bit a 1 significa che l'istruzione non viene eseguita. Quindi....:

I valori nella tabella sono in BCD? Sei sicuro di avere completato tutti e 8 i range? Se lavori a target anzichè a range, funziona? Non è che hai messo la chiocciola sulla CTBL (con il bit di prima scansione e la chiocciola l'istruzione non verrebbe mai eseguita!!)

Io ho usato molte volte la CTBL e proprio su PLC piccolini e alla fine gira e rigira, se avevo problemi era una di queste cose... per quanto mi sembrasse impossibile!! :blink:

Ciao.

Link al commento
Condividi su altri siti

Non mi ricordo per il CPM2A ma sono sicuro che vale per il CJ1M se si utilizza il flag di reset sw dell'HSC la CTBL va richiamata dopo ogni reset con il fronte di discesa del reset stesso.

Saluti

Link al commento
Condividi su altri siti

  • 2 weeks later...

Scusate, ma non ho avuto molto tempo per provare le varie soluzioni!

Comunque, se uso la ctbl a target funziona! Se la uso a range no, perche se metto subito dopo, come dice edogol, La serie del flag di errore e il set di un bit, in parallelo alla ctbl il bit si setta e segna errore!!!!

Come mai? E poi in BCD il numero ffff per le rutin che non uso non me lo fa mettere!!!

Mah?!?!

Grazie

Link al commento
Condividi su altri siti

I valori BCD sono da mettere per il valore di conteggio, mentre le FFFF vanno bene per le subroutine che non usi.

Hai già provato a costruire una tabella con un unico range e le FFFF per le altre sette subroutine?

Ciao

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