paopau Inserito: 8 aprile 2009 Segnala Inserito: 8 aprile 2009 premetto che sto diventando matto.Sto lavorando con semplici calcoli addizioni e sottrazioni in BCD .Fin quando lavoro in positivo ,tutto va bene ,ma quando mi affaccio a valori negativi ,inizia il dilemma.Com'e la logica per poter lavorare con valori negativi?
Savino Inserita: 9 aprile 2009 Segnala Inserita: 9 aprile 2009 paopau,Si va bene. Ma se non dai piu' dati, sarebbe difficile capire il problema.
paopau Inserita: 9 aprile 2009 Autore Segnala Inserita: 9 aprile 2009 La Cpu in questione è una CPL1H X40 DT1 .Il problema sorge quando devo fare Sottrazioni con risultato negativo ,oppure addizioni ma con addendi negativi .Per adesso lavoro in BCD (per comodita ,visto che il pannello lavora solo in esa)Forse meglio passare in binario?ciaopaolo
batta Inserita: 10 aprile 2009 Segnala Inserita: 10 aprile 2009 Direttamente dal manuale in linea di CX Programmer:SUB(31) sottrae da Mi il contenuto di Su e CY e pone il risultato in R. Se il risultato è negativo, viene portato a ON CY e in R viene posto il complemento a 10 del risultato. Per convertire il complemento a 10 nel vero risultato, sottrarre da zero il contenuto di R®Property of Omron Corporation 1999-2001 All rights reserved.Ed ancora:STC(40) e CLC(41)che agiscono sul flag di carry, perché la maggior parte delle operazioni BCD fanno uso del Flag di Carry (CY) nei loro risultati. I calcoli binari e le operazioni di scorrimento fanno anch'esse uso di CY.Le istruzioni di addizione e di sottrazione utilizzano CY sia nei calcoli che nei risultati. Assicurarsi che CY sia posto a OFF se il suo stato precedente non è richiesto nei calcoli; usare il contenuto di CY, se richiesto, prima che venga cambiato dall'esecuzione di altre istruzioni.®Property of Omron Corporation 1999-2001 All rights reserved.In parole povere, prima di effettuare una operazione in BCD è meglio azzerare il flag di carry CY (riporto) con la funzione CLC(41). Se il risultato dell'operazione è negativo oppure supera il limite, CY viene impostato a 1.Io comunque non uso Omron ormai da parecchi anni.Il consiglio migliore che ti posso dare, come spesso accade, è il seguente: consulta i manuali.Nel manuale in linea del mio vecchio CX Programmer versione 2.1, vedo che le cpu serie CS gestiscono calcoli sia con che senza Carry. Per quanto riguarda la tua cpu, non ne ho idea.
bele Inserita: 10 aprile 2009 Segnala Inserita: 10 aprile 2009 (modificato) Con la serie CP1 CJ1 CS1 non serve utilizzare il BCD passa al binario che eviti tutti i problemi di conversionePer adesso lavoro in BCD (per comodita ,visto che il pannello lavora solo in esa)Un motivo in più per utilizzare il binario (HEX)Ciao Modificato: 10 aprile 2009 da bele
paopau Inserita: 10 aprile 2009 Autore Segnala Inserita: 10 aprile 2009 Diciamo che i miei problemi derivano essenzialmente dal fatto di conoscere poco e male le differenze tra binario e BCD , tra una visualizzazione in decimale ed esadecimale....ecc eccIl tutto ancora aggravato dall'uso di un pannello un po limitato che mi permette di viaulizzare solo valori in BCD.Quindi se voglio lavorare in binario,dovrei (almeno credo) commutare tutti i valori da/in Bcd a Bin e viceversa.La domanda che mi sorge di cuore :cos'e sto BCD ,perche e stato inventato e che vantaggi porta.Alla fine poi della fiera tutti i dati si lavorano in decimalle..Insomma ho molta confusione.I manuali referenti al CJ1M natuaralmente li ho consultati e ci ho studiato anche un bel po sopra.Ma avendo pochi esempi concreti viene difficile.Grazie ancora.paolo
pcontini Inserita: 10 aprile 2009 Segnala Inserita: 10 aprile 2009 cos'e sto BCD ,perche e stato inventato e che vantaggi portaBCD sta ad indicare binary coded decimal. Ogni 4 bit rappresenti una cifra 0-9.Il perché sia stato inventato ce lo può spiegare meglio qualche elettronico con "alcuni" anni di esperienza, ma pensa ad esempio ai vecchi preselettori a contraves....Comunque come ti hanno già suggerito è meglio passare al binario. Anzi, con il CP1 se devi fare un po di calcoli ti consiglio i le function block in STCiao
paopau Inserita: 10 aprile 2009 Autore Segnala Inserita: 10 aprile 2009 mi son accorto di una cosa :Di quanto ci sia ancora tanto da imparare e capire.Mo forse questo è il bello e sicuramente non saremo neanche qui a discuterne e confrontarsiciaoo e Buona Pasqua a tuttipaolo, Asti
cibe Inserita: 4 maggio 2009 Segnala Inserita: 4 maggio 2009 In molti casi con i PLC Omron si DEVE ricorrere al BCD ad esempio per imporre dei limiti su alcune funzioni.Il BCD infatti è più facile da implementare ove occorre una interfaccia uomo dal momento che noi non scriviamo in binario ma impostiamo le cifre in BCD.Per questo è preferibile fare meno calcoli possibili in BCD ed ove compaia il risultato negativo (con il carry) riportare il prima possibile il risultato in forma positiva.Infatti non mi risulta esista una forma univoca di rappresentazione del segno. Il BCD è semplicemente legato alle cifre decimali da 0 a 9 rappresentate in nibble (4bit).Per chi ha problemi di prestazioni in cui il ciclo macchina del PLC deve rientrare in tempi stretti sconsiglio di usare le FB. Strumento molto potente ma che richiede un attimo di dimestichezza per far rientrare i risultati nel ladder che le dovrà contenere e che comunque rallenta moltissimo il ciclo macchina.Per cui fate molta attenzione e limitate le FB ove non sia necessaria una velocità elevata del PLC (questo vale anche per le versioni più veloci dei CJ) e dove giustificato dalla complessità dei calcoli.Saluti
bele Inserita: 4 maggio 2009 Segnala Inserita: 4 maggio 2009 In molti casi con i PLC Omron si DEVE ricorrere al BCD ad esempio per imporre dei limiti su alcune funzioni.Probabilmente in pochi casi, e probabilmente è possibile utilizzare altre funzioni complementari in binarioIl BCD infatti è più facile da implementare ove occorre una interfaccia uomo dal momento che noi non scriviamo in binario ma impostiamo le cifre in BCD.Con il CJ CP1 e CS1 non è più un problema, ragioni sempre in decimale e visualizzi in decimale anche con operazioni binarie, esempio in una moltiplicazione binaria *(420) è sufficiente impostare la visualizzazione decimale e hai praticamente l' interfaccia uomo in decimale, quando scrivi un numero dentro la funzione lo scrivi in decimale devi solo mettere la & prima del numero poi ci pensa il cx programmer a interpretarlo, io addirittura non utilizzo più neanche i contatori e i temporizzatori in BCD sinceramente il BCD me lo sono scordatoPer chi ha problemi di prestazioni in cui il ciclo macchina del PLC deve rientrare in tempi stretti sconsiglio di usare le FB.posso essere d' accordo in parte con questa affermazione comunque rallenta moltissimo il ciclo macchina.affermare che l' uso di FB rallenta moltissimo il ciclo mi sembra esagerato, ovviamente dipende dalla complessità e dal numero di istanze FB Ciao
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