Vai al contenuto
PLC Forum


verificare se ci sono 3 bit , non 2 o 4. a 1, in qualsiasi punto della word


zanchetta paolo

Messaggi consigliati

zanchetta paolo

Ciao a tutti.

Esiste nel rinomato mondo Simatic S7 un equivalente alla F135(BCU) del FPWIN GR 2 della Panasonic?

 

Il mio problema, è verificare se ci sono 3 bit , non 2 o 4. a 1, in qualsiasi punto della word.

 

Nella FPWIN GR 2 si fa così:

La funzione esamina lo stato area dati (word) specificata, e TRASMETTE quanti bit sono a 1. Dopo, in un altra funzione, confronta se il numero è quello che voglio.

 

Nell'esempio SOTTO NELL'IMMAGINE, l'ingresso X0 ( N ) abilita la funzione F135(BCU), che esamina la Word WX1,

[ che, in decimale, è a 168, che in binario = 0000 0000 1010 1000 ] , mi trasmette il numero di BIT a 1, su DT1, che è = 3.

Seconda riga.

Comparo il dato DT1 con la costante K ( che può essere una Word ), che è decimale, ed è a 3. il risultato è uguale, quando un risultato è uguale nel mondo Panasonic il relè ( = ) R900B ( R9000B) va a 1, pertanto il relè ( 3 Bit= 1) R10 va a 1.

 

Ho da farmi comprendere da uno svedese, che mastica Siemens S7 e 1200 pertanto l'unica è di fargli un disegnino..

 

Grazie.

Siemens Panasonic.png

Link al commento
Condividi su altri siti


L'unica cosa che mi viene in mente, anche se non sono esperto accedere ai singoli bit della parola se sono a 1 aumenti un contatore e poi fai un confronto del contatore con il numero ( in questo caso  3), se true  attivi un merker un bit di un db quello che vuoi. 

Poi magari ci sarà un istruzione o altro dedicata,  ma io alle mie attuali conoscenze farei cosi, quelli piu espeti di mè farebbero il tutto con puntatori ma io al momento non sono cosi bravo.

Link al commento
Condividi su altri siti

zanchetta paolo

Ciao e GRAZIE Batta. Ho visto che l'S7 Siemens ti costringe a fare tanti passaggi, come quando sul glorioso S5 bisognava farsi i fronti di salita, con un relè auto mantenuto...

Ho capito che sull' esempio dell'8 ottobre 2008, hai fatto solo il conteggio dei bit,

[che sul Panasonic, che qui è in lista istruzioni (=AWL), ma è uguale al programmino di ieri, scritto in booleano (=KOP) ]

che è nella parte di programma Panasonic raffigurato in rosso,

e non il confronto, e né il risultato del confronto , tutto raffigurato in verde.

E queste istruzioni c'erano già nel 1988, quando mi sono avvicinato ai giapponesi...

Siemens Panasonic LISTA ISTRUZIONI.png

Link al commento
Condividi su altri siti

Ho capito che sull' esempio dell'8 ottobre 2008, hai fatto solo il conteggio dei bit, 

In quel caso non avevo la necessità di controllare che "i bit a 1 fossero proprio 3, non 2 e non 4". Ma aggiungere, nel post, una banalissima comparazione, mi sembrava superfluo.

 

Se hai letto tutta la discussione, hai visto che anche per S7 c'è una istruzione già pronta. Si chiama BITSUM. In ingresso le passi una DWORD e ti restituisce il numero dei bit alti.

Se usi TiaPortal è presente come istruzione (Istruzioni base --> Legacy). Con Step7 Classico la trovi nelle librerie in Standard Library --> TI-S7 Converting Blocks.

Il risultato, in AWL, è il seguente (comparazione compresa):

      CALL  BITSUM
         IN      :=#MiaDWord
         Ret_Val :=#NrBitAlti

      L     #NrBitAlti
      L     3
      ==I
      =     #Ok

Come vedi, non c'è nulla di complicato. E, volendo, si potrebbe anche non scrivere l'istruzione "L #NrBitAlti".

 

Se cerchi bene nelle librerie (con Step7 classico) e nel set di istruzioni (con TiaPortal), vedi che anche i PLC Siemens sono ben forniti. Lasciamo perdere quindi quello che facevano i PLC giapponesi nel 1988, visto che siamo nel 2016.


Risale proprio a quegli anni (anzi, un po' prima) il mio primo contatto con i PLC. A quei tempi la scelta era tra PLC giapponesi o americani (stessa filosofia) o gli S5. A mio avviso, non c'era confronto: 10 a 0 per Giapp. e USA. Io sono entrato nel mondo Siemens con il 300 (solo dopo ho imparato ad usare S5, e il solo pensiero mi provoca forti coliche ora come allora). Da S5 a S7 però c'è un abisso. I PLC e i sistemi di sviluppo Siemens sono ben lontani dall'essere perfetti (ma vale anche per giapponesi e americani), ma sono molto flessibili.

Tanto per tornare al tema della discussione, vedi come sia possibile utilizzare un'istruzione già pronta, oppure, con poche righe di codice, crearsi una funzione dedicata, che supera i limiti dell'istruzione standard. Per esempio, con poche modifiche anziché leggere il numero dei bit alti in una word o dword, si potrebbero leggere i bit alti di un'area di memoria da definire a piacere.

Link al commento
Condividi su altri siti

zanchetta paolo

Di nuovo grazie batta, io mi sono allontanato dal mondo Siemens appunto nel 1990, circa; troppi costi ( tra i PC dedicati, altrimenti la colpa, secondo l'assistenza Siemens era sempre del tuo PC,  il salto S5/S7...).

Ero un semplice artigiano, che doveva gestire tutta la parte elettrica delle macchine, dallo schema, la sicurezza, al quadro, al cablaggio, la programmazione del PLC/CNC, interfacce uomo macchina, preventivi ,"tirar i schei"; molto importante, ma più importante gestire il socio, quello che ti chiede le imposte e ti infligge le multe!

Allora con la mia sola 3à media, ho scelto una cosa più semplice, allora. Non so se attualmente Siemens è "semplice", ma so solo che ha più sistemi di programmazione; S5, S7, quello per i 200...

Io posso, con panasonic, guardare un programma fatto 25 anni fa, ai tempi del DOS. Senza costi aggiuntivi. Se devo guardare qualcosa su un s95 /S115 sono cazzi....Eh, le macchine che ho fatto durano troppo..

 

Naturalmente qualcosa è negativo, tipo i manuali PDF (gratis) che sono in inglese...

Ma come dici tu, " sono ben lontani dall'essere perfetti".

 

Ancora Grazie

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