Jump to content
PLC Forum

TheOutSideR

funzioni fronti di salita /discesa

Recommended Posts

acquaman

E qui esce la differenza tra un programmatore plc e un informatico, noi mettiamo al centro la macchina o l'impianto, adattiamo la nostra programmazione a seconda del tipo di impianto, degli operatori, del cliente dove verrà installata da chi farà manutenzione ecc ecc.

L'informatico non vede la macchina e tutte le varie sfaccettature, lui vede il software deve essere scritto bene pulito ordinato, poi se la macchina gira male, l'operatore non riesce a lavorarci sopra o è complicato fare manutenzione non è colpa sua,i software è perfetto.

Di solito è anche l'unico detentore e guru della scienza della programmazione. 

Link to post
Share on other sites

leleviola
1 ora fa, acquaman ha scritto:

Di solito è anche l'unico detentore e guru della scienza della programmazione. 

Via giù non esageriamo, ognuno ha le proprie inflessioni l'importante è cercare di fare il proprio meglio in maniera più utile e comprensibile

Link to post
Share on other sites
batta
2 ore fa, leleviola ha scritto:

Scusate l'ignoranza ma in SCL esistono i fronti?

Con S7 1200/1500, in SCL puoi usare R_TRIG o F_TRIG.
Però non mi piace, perché si deve generare una istanza per ogni fronte.
Preferisco ricavarlo alla "vecchia maniera", usando un bit di appoggio:

fs := mySignal AND NOT xfs;

xfs := mySignal;

oppure:

fs := mySignal AND xfs;

xfs := NOT mySignal;

 

Tra le due soluzioni c'è una piccola differenza: nel primo caso, se all'avviamento del plc lo stato del segnale è alto, viene subito rilevato come fronte, mentre nel secondo caso, no. A meno che non si usi, come bit di memoria dello stato del segnale una variabile ritentiva.

Link to post
Share on other sites
Nicola Carlotto
20 ore fa, acquaman ha scritto:

E' quello che pensi tu.

Batta parlava di logica boleana, quella parte di programma che gestisce ingressi ed uscita a bit, e condivido a pieno con Batta il ladder è il più semplice ed immediato anche da debuggare, mentre per dati, strutture, calcoli ecc. il testo strutturato non ha pari.

 

 

19 ore fa, batta ha scritto:

Se il ladder, nonostante l'età, e nonostante l'integrazione di nuovi linguaggi, è ancora molto usato, un  motivo forse c'è.
Per quanto riguarda l'essere "difficile da leggere e da modificare", è l'esatto opposto di quanto sostieni tu.
Purtroppo, chi arriva ai PLC con una formazione puramente informatica, si trova avvantaggiato su certi compiti, ma svantaggiato sul altri. Ma non lo ammetterà mai, nemmeno sotto tortura: si sentirà sempre più bravo di quell'elettriciaio che programma in ladder. Nulla di più sbagliato.
Per esperienza personale, ti posso dire che, molto spesso, chi ha una formazione informatica, è bravissimo a sviluppare comunicazioni, elaborazione di dati, ed altro, ma si trova molto impacciato, invece, in quello che è il "funzionamento base" della macchina o dell'impianto: tutto va bene se il ciclo procede come dovrebbe, ma quando capita l'imprevisto, non se ne viene più fuori. E, molto spesso, scrive dei programmi che solo lui è in grado di interpretare. Solo quando riuscirà a capire che la programmazione dei PLC non è una programmazione di serie B ma è solo una programmazione differente, solo quando riuscirà ad accettare che per programmare bene un PLC dovrà cambiare completamente approccio, solo allora potrà diventare un vero programmatore di PLC. Questa "trasformazione", di solito, richiede qualche anno. A quel punto, avrà dalla sua anche la preparazione informatica. 
Come già detto, io non amo il ladder, ma è inconcepibile che un programmatore di PLC non lo sappia usare, e non lo sappia apprezzare proprio per la sua immediatezza e semplicità.

Per quanto riguarda la logica booleana, ti ha già risposto Acquaman: quando parlo di logica booleana, non mi riferisco certo al linguaggio binario, che è tutta un'altra cosa, ma a segmenti con combinazioni, anche complesse, di AND e OR di variabili booleane per comandare una variabile booleana.
Faccio un esempio:
 


    pm1        pa1        pa2        em         run
----| |---|----|/|--------|/|--------| |--------( )
    pm2   |
----| |---|
    run   |
----| |---|


run := (pm1 OR pm2 OR run) AND NOT pa1 AND NOT pa2 AND em;

Oppure:
IF (pa 1 OR pa2 OR NOT em) THEN
    run := FALSE;
ELSIF (pm1 OR pm2) THEN
    run := TRUE;
END_IF;

Si tratta di un segmento di una semplicità disarmante. Eppure, non mi vorrai forse dire che è più chiaro scritto in testo strutturato piuttosto che in ladder, spero. Soprattutto quando sei online, in ladder vedi a colpo d'occhio la situazione.
Ripeto quanto detto nel mio precedente post: un programmatore di PLC che non sa usare il ladder (che, probabilmente, viene dal mondo dell'informatica), non è un programmatore più bravo, ma un programmatore con una grave lacuna.
 

Concordo al 100 %

Ciao

Link to post
Share on other sites
Nicola Carlotto
Schema del programma
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Il fronte di salita e' la considerzione di un bit per una scansione di plc  , lo si puo' fare anche come foto sopra.
 
 
 
 
 
 
Ciao
 

 

Link to post
Share on other sites
Novis
4 ore fa, leleviola ha scritto:

Scusate l'ignoranza ma in SCL esistono i fronti?

In SCL non esistono i fronti. MA si possono facilemte implementare .

In effetti, quando si mette nel ladder il sensore sul fronte, quello che si  implementa è il confronto con il valore precente della variabile.

e il gioco è fatto.

4 ore fa, leleviola ha scritto:

 

 

Link to post
Share on other sites
Novis
1 ora fa, batta ha scritto:

Con S7 1200/1500, in SCL puoi usare R_TRIG o F_TRIG.
Però non mi piace, perché si deve generare una istanza per ogni fronte.
Preferisco ricavarlo alla "vecchia maniera", usando un bit di appoggio:

fs := mySignal AND NOT xfs;

xfs := mySignal;

oppure:

fs := mySignal AND xfs;

xfs := NOT mySignal;

 

Vede che lo ha fatto in SCL in modo leggibilissimo   ?

E come crede che lo faccia una CPU ? Con i flip flop o con le variabili   come ha appena descritto in SCL ?

Vedo che lei ha dei pregiudizi o ha nostalgia del passato.

Edited by Novis
Link to post
Share on other sites
dimo2474
4 ore fa, leleviola ha scritto:

Scusate l'ignoranza ma in SCL esistono i fronti? Uso lo strutturato o SCL solo per calcoli, se non esistono i fronti è già un vantaggio non da poco del ladder,

il ladder ha dalla sua la facile leggibilità visiva il che non è poco, non penso che il linguaggio compilato del plc sia di facile interpretabilità quando si è a diagnosticare un problema,

nella programmazione a passi i fronti sono tutto nella sviluppo delle varie fasi di attivazione dei passi, infatti sono a loro che si rifà sia il Graph in Siemens ma anche nella programmazione a passi SFC dela Mitsubishi. Bisogna capire che lo sviluppo di un programma non si ferma alla sua fase di sviluppo e scrittura ma anche nell'uso succesivo di ci ne dovrà diagnosticare il problemi nel funzionamento, più è semplice e chiaro un programma più sarà breve il fermo macchina per il cliente

Li puoi creare i fronti con il linguaggio SCL .

Out_imp := condizione and not Out_impCRC;

Out_imp_Crc := condizione ;


Con SCL puoi fare tutto , e se viene usato con TiaPortal il Debug non è male .

 

Edited by dimo2474
Link to post
Share on other sites
dimo2474
Il 23/12/2019 alle 20:27 , TheOutSideR ha scritto:

buonasera, ho provato a cercare ma non capisco la differenza,nel Tia portal,

delle istruzioni P=/N= e P_trig /N_trig...

a me sembrano uguali ma magari non colgo la differenza....

Potreste supportare la risposta con esempi ??? Grazie.

 

Le P e N servono per la retrocompatibilita con i vecchi programmi .

le P_trig/R_Trig si rifanno alla normativa IEC vedi Codesys .

Perché sotto sotto Siemens sta nascondendo ma sta implementando Codesys (mio parere personale naturalmente ) , infatti per il Motion usa i blocchi PLC-Open che sono di Codesys .

 

Edited by dimo2474
Link to post
Share on other sites
batta
3 ore fa, Novis ha scritto:

Vedo che lei ha dei pregiudizi o ha nostalgia del passato.

Lascia perdere il "lei", qui siamo tutti amici ed esiste solo il "tu".

Non è assolutamente una questione di nostalgia, ma solo di praticità. Una cosa che apprezzo molto del TIA (che non mi risulta possibile con altre piattaforme, se non sbaglio) è la possibilità di inserire, nello stesso blocco di programma, segmenti in ladder, segmenti in AWL, e segmenti in SCL. l'AWL cerco di usarlo sempre meno, ed i miei programmi sono tutta un'alternanza di parti in ladder e di parti in testo strutturato. A seconda di quello che devo fare, uso il linguaggio più idoneo.  

Link to post
Share on other sites
acquaman
3 ore fa, Novis ha scritto:

Vedo che lei ha dei pregiudizi o ha nostalgia del passato

Nostalgia del passato perché, l'SCL c'era anche nello Step7 classic con il 300/400.

Edited by acquaman
Link to post
Share on other sites
leleviola
28 minuti fa, batta ha scritto:

 sempre meno, ed i miei programmi sono tutta un'alternanza di parti in ladder e di parti in testo strutturato. A seconda di quello che devo fare, uso il linguaggio più idoneo.  

o finalmente qualcosa di sano, uso il linguaggio più idoneo,

non si capisce che il lavoro del programmatore PLC non finisce nell'avvio macchina e suo collaudo ma  continua nell'assistenza al cliente e se tutto è idoneo e lampante si facilita la vita a se stessi e agli altri,

quando non c'era SCL o testo strutturato si faceva tutto in ladder,

daltronde il ladder deriva dal linguaggio macchina di quando si scriveva i programmi sui PLC con il tastierino numerico posto sopra al PLC dove le poche istruzioni erano codificate no in mnemonico ma a numeri di istruzione e le poche altre istruzioni erano AND, OR, bobina, istruzione, MPS, MRD, MPP, MCR e poche altre,

non crediamo che il ladder sia un linguaggio poco vicino alla macchina, lo è più di quanto non si creda.

Comunque resto sempre della mia idea che i fronti sarebbe più utili implementarli tra le istruzioni base della programmazione a ladder tipico della programmazione "giapponese",

questo è un retaggio delle mie abitudini che hanno comunque la sua utilità

Link to post
Share on other sites
dimo2474
1 ora fa, batta ha scritto:

che non mi risulta possibile con altre piattaforme, se non sbaglio) è la possibilità di inserire, nello stesso blocco di programma, segmenti in ladder, segmenti in AWL, e segmenti in SCL. 

Ciao Batta , con Codesys V3.x e Omron Sysmac Studio è possibile. 

Ciao mitico. 

Link to post
Share on other sites
Cesare Nicola
19 ore fa, leleviola ha scritto:

Scusate l'ignoranza ma in SCL esistono i fronti?

No. Puoi usare i blocchi, presenti nell'elenco istruzioni, R_TRIG e F_TRIG ai quali dovrai associare un DB di istanza in quanto sono a tutti gli effetti degli FB, sebbene non editabili. Oppure puoi fare come si diceva qui:

 

19 ore fa, leleviola ha scritto:

Bisogna capire che lo sviluppo di un programma non si ferma alla sua fase di sviluppo e scrittura ma anche nell'uso succesivo di ci ne dovrà diagnosticare il problemi nel funzionamento, più è semplice e chiaro un programma più sarà breve il fermo macchina per il cliente

Giustissimo.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...