Vai al contenuto
PLC Forum


Gxworks 2


nikopoli

Messaggi consigliati

Buongiorno a tutti, siccome è la prima volta che mi trovo a programmare con gxworks 2 In modalità progetto strutturato avrei bisogno di qualche informazione.

avrei bisogno di sapere quali sono i nomi delle funzioni per: creare un temporizzatore 
leggere un valore analogico 

Convertire il valore analogico 

inviare il valore convertito al hmi 

grazie mille in anticipo! 
so che magari la domanda risulta stupida a chi di voi è un professionista ma non ho mai lavorato con le funzioni se non un po’ con l’s7200 
 

Link al commento
Condividi su altri siti


Forse è un po' più utile se cominci  dare un occhio a qualche manuale, quello che chiedi non è semplice da spiegare con due righe e non si capisce quali sono le tue conoscenze in merito e anche di quale serie di PLC parli. Potrei dirti che gli ingressi analogici puoi leggerli in varie maniere a seconda della tipologia, cioè integrate nel PLC o su espansione esterna, nel primo caso da registri diagnostici nel secondo caso dai buffer memory della relativa espansione. Che vuol dire il valore convertito al PLC? Il PLC fornisce sempre un valore intero con risoluzione a 12bit o 16bit poi sta a te interpretare il campionamento e rappresentarlo con un valore che vuoi su HMI intero o real, basta usare le istruzioni di conversione o fare i necessari calcoli

Link al commento
Condividi su altri siti

Ho guardato alcuni manuali, ma non riesco a capire quale siano le funzioni che mi servono ad esempio come posso creare un temporizzatore che ritardi l’accensione o lo spegnimento qual’ è la funzione cioè il nome? 
gli input analogici sono integrati nel plc che è un coolmay... 

invece qual’è la funzione per leggere un valore analogico che va da 0 a 10v? 
se mi sai indirizzare con qualche nome io poi vado a cercarmele e cerco di capire da solo! 
comuqnue in quest ambito non ho tanta esperienza ho sempre usato il tia portal.

Non mi serve uno spiegone solo tre o quattro nomi di funzioni che possa andare a cercare per capire come funzionano. grazie mille!!!! 

Link al commento
Condividi su altri siti

In Mitsubishi le chiamate ai temporizzatori non hanno funzioni speciali dedicate (tipo TON del TIA), si usa la OUT, specificando l'indirizzo del temporizzatore voluto (Txxx) e indicando poi un valore (costante o variabile) che esprime il tempo. A seconda del PLC usato (FX...), i temporizzatori possono essere in decimi e centesimi di secondo, dipende dall'indirizzo del temporizzatore usato. Tutti i temporizzatori sono ritardati al comando (accensione), è possibile definirne alcuni come ritentivi (non si azzerano automaticamente).

La lettura del valore analogico a bordo, dipende dal modello. Indicalo e ti saremo più specifici. Comunque sono allocati nelle memorie speciali a word, le SDxxx

Link al commento
Condividi su altri siti

Il plc è un coolmay mx4n-43hb-24mt-4ad2da-V-V-485H 

ma quindi utilizzo una funzione OUT oppure una OUT T ? 
Nel temporizzatore TC... indica il “nome” del contatore. Mentre con TS... posso richiamare il contatore sui contatti o per lo meno questo è quello che mi pare di aver capito dal manuale. 

Link al commento
Condividi su altri siti

Coolmay? Mai sentina nominare. Quindi non è Mitsubishi, probabilmente hanno una versione del GXworks2 personalizzata, allora mi spiace ma non ti so aiutare.

Qui sotto ti faccio vedere come appare un tipico temporizzatore in Mitsubishi:

image.png.2967266114e863ce71ead3a7195d0c5e.png

Il temporizzatore è il T219 e il tempo impostato è in D270

Link al commento
Condividi su altri siti

Coolmay? Beh potrebbe sembrare un derivato del PLC FX2n, scaricati il manuale di programmazione in inglese del FX1N-2N, è un discreto manuale ma così capisci come viene sviluppata la programmazione di tali PLC che non è poi così difficile, diciamo che sono la base da cui deriva poi ciò che è venuto dopo, GX Works2 è l'interprete un po' più evoluto.

Nel vecchi sistemi di programmatione il timer era definito come operando T seguito dal nr. di timer e poi il tempo da conteggiare esspresso in unità di conteggio che il genere erano decimi di secondo per ogni unità di conteggio, esempio T10 K150 è un timer la cui bobina di T10 diventa vera dopo 15,0 secondi. Poi con l'eloluzione a GX works2 i timer vngono interpretati come OUT T ma che hanno abbinato come operando il tempo da conteggiare, quindi analogamente OUT T10 K150. Comunque torno a ripetere che se non ti scarichi e leggi qualche vecchio manuale Mitsubishi per capire il modo semplice con cui ragionano i loro PLC non caverai un ragno dal buco, cercati questo codice di manuale jy992d88101-c manual, è un po' vecchio ma chiaro sulla descrizione degli operandi e su come ragionano

Link al commento
Condividi su altri siti

Ho scaricato il manuale in una versione italiana per non perdermi nessun passo. Ho accurato che il plc che dovrei programmare è un fx2n ho così iniziato a darci un occhiata un po' più approfondita al manuale di quanto avessi fatto, ora però mi sorge un dubbio, vedo che quasi tutti gli esempi sono realizzati come simple project, e quando inserisco una "uscita ----( ) e scrivo out t0 k50 mi si crea un funzione che rispecchia la prima riga del secondo esempio (immagine1 timer) e fin quì il funzionamento è chiarissimo. Girovagando quà e la cercando di capire come funzioni questo programma mi sono trovato davanti a progetti strutturati che sembravano utilizzare dei blocchi funzione che mi rispecchiavano molto di più la programmazione fatta con tia portal e s7200 (vedi immagine timer str) per cui mi piacerebbe se possibile guardare più verso questo tipo di programmazione che per me risulta un po' più familiare.

La mia domanda è la seguente in un progetto strutturato visto che se inserisco un "uscita" ----( ) e provo a scrivere OUT T0 K50 dove t è il temporizzatore e k il tempo non me lo accetta mi aspetterei di dover utilizzare un blocco funzione come nella seconda immagine, ma siccome se provo a creare un programma come nell'ultima foto una volta compilato mi ritrovo un mucchio di errori ciò significa che non sto lavorando nel modo corretto... Sapreste indicarmi un manuale su cui possa cimentarmi a capire qualcosa in più per quanto riguarda i blocchi funzione? oppure ritenete che sia da evitare la strada del progetto strutturato e cimentarmi sull'altro?

 

(in una simulazione a programma con quali tasti posso abilitare un contatto di ingresso?)

timer.PNG

timer str.PNG

timer 3.PNG

Link al commento
Condividi su altri siti

Io non lavoro in solo strutturato, preferisco il ladder e quando necessario utilizzo lo strutturato quando necessario, soprattutto nei calcoli, questo però nel GX Works3, il 2 lo conosco poco, comunque se provi a cercare ci sono i manuali del Gx Works 2 e del linguaggio che ti è necessario.

Link al commento
Condividi su altri siti

Vorrei utilizzare il ladder strutturato perchè sembra più simile al tia portal o per lo meno in apparenza, poi accetto consigli è la prima volta che mi trovo a dover utilizzare questo programma quindi se volete consigliarmi voi su quale sarebbe meglio cimentarsi mi fareste un favore!

quello che dovrei fare è questo 

leggere un valore analogico 0-10v (cella di carico)  Il dato ottenuto in bit lo convertirò per far si che rispetti la scala quindi magari dovrò fare delle operazioni matematiche per compararlo con un valore e per questo presumo di dover utilizzare una variabile che dovrà poi essere modificabile dall HMI 

in poche parole il sistema fa questo 

pesa un piatto quando il piatto ha raggiunto il peso impostato accende una lucina ( il peso impostato lo devo poter impostare dall HMi) 

Link al commento
Condividi su altri siti

Per me è una questione di gusti. Tra ladder puro e ladder strutturato la maggior differenza è nell'utilizzo delle variabili.

Il primo è più orientato all'uso di indirizzi assoluti (X, Y, T, ecc), l'altro è più simbolico e permette l'allocazione automatica delle variabili.

Diciamo che il secondo permette una scrittura più "elegante" e indipendente da dove saranno allocate fisicamente le variabili, l'altro è il sistema più tradizionale.

Alla fine producono esattamente lo stesso codice, per cui è solo una scelta personale e di trasportabilità.

Il fatto che una funzione in TIA si chiama TON e in FX si chiama OUT T, è solo una questione di traduzione, non cambia la logica.

Personalmente, preferisco l'allocazione automatica delle variabili, e l'uso delle globali più limitato possibile.

Link al commento
Condividi su altri siti

Buona sera a tutti, scusate se non mi sono più fatto sentire, ma sono stato un po' impegnato, nel programma sottostante ho realizzato nella prime due righe un temporizzatore che ritarda l'accensione a 10 secondi di y1 da quando chiudo il contatto x1 e di questo vorrei sapere se sto sbagliando qualcosa oppure sto procedendo nel modo corretto.

Nel caso stessi procedendo nel modo corretto vorrei sapere se io il valore del temporizzatore devo poterlo variare da pannello è sufficente che porcedo come nella 3-4 riga cioè precedentemente registro una variabile nel global label setting legata a d0 che mi dovrebbe permettere di comunicare il valore all hmi. in questo caso all'avvio non avrei nessun valore se non sbaglio quindi mi troverei a dover ogni volta inserire un valore da pannello o sbaglio? tra l'altro è corretto il procedimento? (preciso che è la prima volta che intendo usare un hmi quindi potrei aver detto un mucchio di caxxate) 

timer 2types variabili.PNG

timer 2types 2.PNG

Link al commento
Condividi su altri siti

Il procedimento è corretto è che l'operando usato se vuoi che rimanga in memoria allo spegnimento deve essere tra quelli configurati come ritenitivi, cioè tra quelli che il PLC mantiene in memoria allo spegnimento, per sapere ciò dovresti sapere come sono configurati tali registri e se hanno semmai una configurazione fissa di quali sono ritenitivi, fatto questo utilizzi uno di quelli ritenitivi e non perdi la configurazione del tempo del temporizzatore

Link al commento
Condividi su altri siti

Il 3/8/2020 alle 08:35 , Ctec ha scritto:

Tra ladder puro e ladder strutturato la maggior differenza è nell'utilizzo delle variabili.

ci sono molte altre differenze ,tra le quali il cross reference

1 ora fa, nikopoli ha scritto:

Cosa dovrei cercare quindi nel manuale del plc per trovare quelli ritentivi? 

si, ci sono aree ritentive e aree che non lo sono.Nel manuale sono scritte.

 

Link al commento
Condividi su altri siti

Ah ok, ho capito e ho trovato ciò che mi serviva! grazie

Ora il mio problema sarebbe soltanto più l'ingresso analogico ho guardato un po di esempi sui manuali ma trovo solo esempi in simple project e non riesco a capire benissimo...

Con microwin con un blocco mov leggevo l'ingresso analogico lo convertivo in una variabile che aveva un valore che andava fino a 32000 a quel punto lo scalavo e facevo le conversioni necessarie.

Qui qual'è l'a funzione più adatta e precisa per leggere l'ingresso analogico e poi il procedimento potrebbe essere lo stesso?

 

Nella foto qui sotto presa da un post che avevo pubblicato un po' di tempo fa potete vedere quello che avevo realizzato con microwin e quello che mi servirebbe realizzare adesso.

Grazie mille a tutti che mi avete aiutato e che state continunando.

step 7.PNG

Link al commento
Condividi su altri siti

Non rammento più gli FX-2N (roba parecchio vecchia), ma mi rammento che quelli a bordo (tipo il trimmer) erano convertiti direttamente in una memoria speciale SD, per cui basterebbe leggere quel dato per avere la conversione, nel caso da riscalare. Anche sui nuovi FX5U è così.

Ma il tuo non è neppure un FX-2N, è un derivato, per cui mi sa che dovrai guardare nel manuale del tuo specifico PLC Coolmay.

Link al commento
Condividi su altri siti

Mi permetto solo una precisazione : nel tuo codice assegni al timer TC1 sull’ingresso Coil ed è corretto; quando peró vuoi leggere il contatto del timer devi usare TS1 e non TC1. 

Link al commento
Condividi su altri siti

@step-80 grazie mille della correzione hai ragione!

Ho guardato un po' il manuale, ma sinceramente non ho capito come procedere posto sotto le tre immagini che racchiudono tutti i punti in cui il manuale del coolmay parla di input analogici. 

(dovrei rilevare un ingrasso 0 10v.)

 

Grazie mille a tutti!

input analog.PNG

input analog2.PNG

input analog3.PNG

Link al commento
Condividi su altri siti

Supponendo che tu stia usando l'ingresso analogico AD0, il valore convertito (a 12bit, quindi 0-4000) lo dovresti trovare nella variabile D8030.

Dato che l'ingresso c'è scritto che può essere 0-5V o 0-10V, dovresti prima di tutto settarlo opportunamente (da quanto te postato non capisco come...)

Link al commento
Condividi su altri siti

Il plc all'acquisto può essere acquistato con ingressi 0-5v oppure 0-10v quindi non penso necessiti di un settaggio. 

Mentre potresti indicarmi a grandi linee il procedimento, che blocchi usare e cosa dovrebbero fare quest'ultimi  io poi cerco di capire leggendo qua e la... ti chiedo scusa, ma non trovo esempi di progetti strutturati a riguardo...

Link al commento
Condividi su altri siti

C è poco da inventarsi: una volta cablato quello che devi cablare leggi il valore di tensione su D8030 come detto da Ctec, se hai cablato su AD0. Leggerai un valore con risoluzione a 12 bit, quindi puoi fare un Move dentro una variabile intera a tuo piacimento per leggere la tensione. Poi magari con 2 operazioni matematiche te lo scali nei valori che piu ti piacciono.

Link al commento
Condividi su altri siti

Quindi creo una nuova variabile nel global label poi nel blocco move all ingresso metto d8030 e in uscita la variabile che ho creato? 

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