Jump to content
PLC Forum
Informazione di servizio:
Questa versione del forum si basa su una installazione non completa in quanto a seguito dell'incendio del datacenter di Strasburgo avvenuto il 10 marzo.
Stiamo attendendo di avere accesso agli ultimi backup siti nello stesso datacenter. Appena disponibili provvederemo all’integrazione dei dati.
Tutti i malfunzionamenti che potreste riscontrare (mancanza di file, immagini, messaggi privati, discussioni, post e funzionalità del sito) sono dovuti al ripristino ancora in versione parziale dei database, file e pagine web.
Per chi volesse fare delle segnalazioni può scrivere a segnalazioni@plcforum.it o attraverso la nostra sezione di assistenza disponibile su ticket.plcforum.it

Vi ringraziamo anticipatamente per la pazienza e l'attesa a cui, nostro malgrado, vi stiamo sottoponendo.

Grazie
L'amministrazione di PLC Forum.



gregorio

Estrarre ora e minuti da plc cp1

Recommended Posts

gregorio

Buon giorno, dovrei estrarre ora e minuti da un plc omron CP1L per abilitare una uscita ad un orario impostato.

Ho trovato questo esempio image.png.df621ffa07a6e7e29759ecedb95d924f.png

 

ma non mi funziona, chi mi può chiarire come avere il valore e poter confrontare

Link to post
Share on other sites

gregorio

Ho provato anche con =DT ma non riesco a farlo funzionare, ho trovato questo esempio image.png.54861e0216d02d01db2b1fcb1836d198.png

che dovrebbe confrontare  ore e minuti per abilitare la uscita 100.0 ma mettendo qualsiasi valore su D400 non riesco a farlo funzionare. Nel mio caso devo comandare una uscita alle 5,30 di mattino, inoltre vedo che la funzione è in giallo.

 

Link to post
Share on other sites
Ctec

Allora, ci sono un po' di errori.

Nel primo post sono errati i codici di controllo della MOVD.

Per spostare i minuti (cifre 2 e 3 della A351) nella D300, devi mettere MOVD A351 #0012 D300.

Per spostare le ore (cifre 0 e 1 della A352) nella D301, devi mettere MOVD A352 #0010 D301.

A questo punto, fai dei confronti in BCD e funziona.

 

Nel secondo post, in primis, le DT vogliono come word di controllo la mascheratura, cioè la non lettura, dei dati non necessari. Pertanto, per confrontare solo minuti e ore, non va messo #0006 (che invece ti esclude proprio i minuti e ore), ma #0039.

Poi devi considerare che tali istruzioni confrontano un gruppo di 3 word strutturate come datario, per cui va bene A351 come primo parametro, ma D400 è solo la prima word (quindi avrai impegnato anche la D401 e la D402).

Ergo, se devi sapere quando sono le 5:30, dovrai avere D400 a #3000 e D401 a #0005 (notare la scrittura dei valori in BCD)

Link to post
Share on other sites
gregorio
7 ore fa, Ctec ha scritto:

Grazie, ho eseguito la funzione DT e funziona perfettamente, mi sarebbe utile scrivere il valore D400 e D401 direttamente da un pannello operatore NB

Ho sbagliato a scrivere, ma il mio messaggio è quello sopra, se puoi essermi di aiuto

grazie

Link to post
Share on other sites
gregorio

Ho provato anche con =DT ma non riesco a farlo funzionare, ho trovato questo esempio image.png.54861e0216d02d01db2b1fcb1836d198.png

che dovrebbe confrontare  ore e minuti per abilitare la uscita 100.0 ma mettendo qualsiasi valore su D400 non riesco a farlo funzionare. Nel mio caso devo comandare una uscita alle 5,30 di mattino, inoltre vedo che la funzione è in giallo.

 

Preciso, le ore non ho problemi, metto il valore sul pannello  e sul plc è corretto.

I minuti non bisogna impostare 30 ma 3000, quindi impostando il valore 30 in una DM esempio D410 e poi nel plc facendo una moltiplicazione mi dà il valore corretto 3000 ma mi azzera la D401 come se la moltiplicazione sconfina in d401

 

Link to post
Share on other sites
gregorio

Ho provato anche con =DT ma non riesco a farlo funzionare, ho trovato questo esempio image.png.54861e0216d02d01db2b1fcb1836d198.png

che dovrebbe confrontare  ore e minuti per abilitare la uscita 100.0 ma mettendo qualsiasi valore su D400 non riesco a farlo funzionare. Nel mio caso devo comandare una uscita alle 5,30 di mattino, inoltre vedo che la funzione è in giallo.

 

Preciso, le ore non ho problemi, metto il valore sul pannello  e sul plc è corretto.

I minuti non bisogna impostare 30 ma 3000, quindi impostando il valore 30 in una DM esempio D410 e poi nel plc facendo una moltiplicazione mi dà il valore corretto 3000 ma mi azzera la D401 come se la moltiplicazione sconfina in d401

 

 

Ho fatto cosi:

image.png.6090561d4affb3cdd26c35be110b84d8.png

 

non so se questa sia la soluzione più elegante, ma funziona

I minuti li ho messi nella D410 e le ore nella D420

Edited by gregorio
Link to post
Share on other sites
Livio Orsini

Prima di scrivere il messaggio esegui un "Ctrl + z" così pulisci la finestra dell'editor, altrimenti riscrivi anche il messaggio precedente e la discussione diventa illeggibile.

Link to post
Share on other sites
gregorio

Non sapevo che con CTRL+Z si puliva lo schermo.

Sono riuscito a completare il progetto e capire bene il funzionamento, ho adoperato anche i giorni della settimana al fine di escludere l'avvio di sabato e domenica.

Grazie dell'aiuto.

Un'ultima domanda: E' possibile modificare l'ora e i minuti nel caso siano errati tramite il pannello NB. Da quello che ho letto dal manuale mi sembra che non sia possibile, non conosco la precisione dell'orologio interno quindi è una cosa da valutare.

 

Link to post
Share on other sites
gregorio

Ho visto la funzione DATE, ho provato a modificare ora e minuti senza riuscirci

 

Link to post
Share on other sites
Ctec

Ho perso un po' il controllo... Una parte l'hai risolta e ora hai bisogno di altro?

Fammi una cortesia, ricapitola un po' cosa ti serve adesso. Mi pare di capire che vuoi correggere la data/ora nel PLC da pannello, giusto?

In tal caso, la DATE è l'istruzione necessaria, ma deve essere composta a modino l'area di 4 word specificata nel comando.

Devono essere composte tutte e quattro, non puoi semplicemente impostare i byte delle ore e minuti, altrimenti avrai un errore.

Normalmente si legge l'area datario attuale di A351 e successivi in un'area temporanea, si fanno le modifiche necessarie in questa area temporanea, poi si esegue la DATE puntando a questa area.

Link to post
Share on other sites
gregorio

Mi sembra complicato, sono riuscito a comandare le uscite, visualizzare sul pannello NB ora e minuti del plc, ma non riesco nel caso di necessità modificare dal pannello NB ora e minuti.

La funzione DATE mi sembra complicata, se mi puoi dare un esempio

 

Link to post
Share on other sites
gregorio

Ho messo i minuti in DM 140 e le ore in DM 160 Ho fatto l'istruzione MOVD con #211 e i minuti li mette al posto giusto, non riesco a mettere le ore al suo posto, quale è il valore da inserire

 

Link to post
Share on other sites
Ctec

Ti ho fatto un esempio, perfettamente funzionante.

image.png.5a3d1d7eacf61e39da01480796dc2c0a.png

 

Ho definito delle variabili (occhio agli array) per rendere più leggibile il programma.

A presto

Link to post
Share on other sites
gregorio

Grazie, ho eseguito le istruzioni e funziona perfettamente vedrò di capire bene le istruzioni

 

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