Vai al contenuto
PLC Forum


Array


pineto

Messaggi consigliati

Vi espongo l'aplicazione da realizzare.

Devo creare un Array di 100 Word da DT0 A DT100 dove l'operatre su ogniuna word dovra inserire dei valori.Per inserire i valori l'operatore deve premere due pulsanti uno che incrementa quindi da DT0 vado verso DT100 e l'altro decrementa da DT100 vado verso DT0 una volta captata la Word desiderata inserisco il valore desiderato e cosi per tutte le altre Word.

Per scrivere sulla Word non ho problemi il problema si viene a manifestare quando devo far scorrere le Word in avanti o in indietro,

Non riesco a trovare un istruzione che riesca a fare questo.

Il software di programazione e FPWINpro

Sarei grato se qualcuno potrebbe spiegarmi come posso realizzare il blocco programma

Grazie Mille

Link al commento
Condividi su altri siti


Buonasera mi trovo di nuovo davanti ad un problema.

Sto realizzando un programma per una macchina,ora mi trovo a esegure il blocco EMERGENZA con il vecchio software FPWIgr quando eseguivo il blocco EMERGENZA utilizzavo l'istruzione F11 e muovevo a zero i registri dei relè o delle Word.

Ad esempio se dovevo mettere a zero i relè da R10 a R120 scrivevo [F11 COPY , K0 , WR0 , WR12] e così anche per le DT.

Ora che sto realizzando il programma con FPWINpro quando rilevo l'ingresso di Emergenza come posso fare a mettere a zero le variabili BOLL(booleane) o le INT (interne) all'interno del mio programma ci sono circa 130 variabili booleane e 100 interne su diversi sottoprogramma circa 8 (POOUs)

Qualcuno potrebbe aiutarmi a capire como potrei mettere a zero queste variabili con poche istruzioni?

Grazie mille

Link al commento
Condividi su altri siti

Non cambia nulla in modo sostanziale utilizzi la < F0 > oppure la < F11 > (per più blocchi) e sposti il valore ZERO

nelle Word dei relè ovvero le WR (WR0 , WR12) chiaramente questa deve essere l'ultima funzione del programma

in modo che durante l'aggiornamento delle uscite non vi siano forzature delle stesse da altri versanti.

Modificato: da alen
Link al commento
Condividi su altri siti

Scusami alen ma non capiscpo come fare.

Se devo mettere a zero un pacco di Word dei relè ad esempio da RW0 a RW12 le cose rimangon invariate anche in FPWINpro perche riutilizzo la funzione F11 come facevo prima,fina a qui ci ero arrivato da solo.

Ora che sto utilizzando FPWINpro all'interno del mio programma non ci sono più i classici relè R1-R2-R3-ecc. ma ci sono MOTORE1-MOTORE2-MOTORE3-ecc che sono delle variabili BOOLEANE e hanno la steffa funzione dei relè come facevo prima.

Quello che chiede è como faccio a mettere a zero queste 130 variabili suddiivise in 8 (POOUs) con poche istruzioni come facevo prima?

Come dicevo prima sono due giorni che ci sto lavorando su è l'unico modo che ho trovato e prendere una variabile alla volta e metterla a zero,ma capici di variabili non ne sono 1 o 2 ma 130 e mi occorrerebero 130 linee per metterle tutte a zero

Ringrazio anticipatamente

Link al commento
Condividi su altri siti

Vedi stai affrontando il problema da punto di vista errato!!

La programmazione ad Oggetti o quella tramite Alias e ne più ne meno quella di prima con una bella interfaccia grafica...

Basta capire come lavora il compilatore e il gioco è fatto!

Tu metti tutti gli alias che vuoi ovvero dichiara R1 come (alias) Motore1

Poi nel programma metti a zero comunque la WR0 vedrai che il comando diretto alla risorsa agisce comunque,

in pratica l'alias e solo una copertura per chi a problemi di memoria.... :lol:

Potresti programmare direttamente con R1, R2, DT0, DT3 ecc... anche senza dichiararle in maniera esplicità

Il compilatore ringrazia visto che non deve neppure risolvere il nome x 2 volte consegutive!! :goofy:

Link al commento
Condividi su altri siti

Ok concetto afferrato.

Quindi con FPWINpro se io disciaro piu variabili booleana ad esempio "MOTORE1 ecc." e poi le vorrei mettere tutte a zero con un'unica istruzione non è possibile ammeno che quella variabile dichiarata non sia un registro relè ad esempio R1 con il nome di "MOTORE1" in pratica a "MOTORE1" la devo dichiarare come varibile globale con indirizzo R1.

Scusami della domanda un pò indiscreta,tu quando crei un programma e arrivi al blocco EMERGENZA come fai a mettere tutto a zero?

Doto che tu avrai sicuramente più esperienza di me con FPWINpro volevo chiederti alcune cose:

E possibile con un istruzione abilitare e disabilitare il POUs.

in pratica se io ho 5 POUs che si chiamano "Programma_1 ecc." e li vorrei abilitare e disabilitare con un istruzione e possibile farlo,

con il Siemens so che è possibile farlo.

Perche in uscita ad un confronto che ho dichiarato con "EN" inserisco ad un operazione matematica al momento che eseguo la compilazione mi da errore e invece se dichiaro il confronto senza "EN" quando compilo l'errore non me lo dà?

E in fine se in uscita ad un confronto ad esempio inserisco una variabile Booleana perche la variabile una volta che il suo stato e andato a 1 anche se cambio i valori in entrata al confronto la variabile non si riporta al suo stao di zero quando gli tocca

sembra come se a quella variabile sia stata configurata come set

Per uscita al confronto intendo il risultato del confronto non l'uscita "ENO"

Grazie mille e scusami della tempestività

Link al commento
Condividi su altri siti

...metterla a zero,ma capici di variabili non ne sono 1 o 2 ma 130 e mi occorrerebero 130 linee per metterle tutte a zero
Link FPWINpro Programing manual

Forse quello che cerchi e' alla pagina 215... 'F11_Copy' - Block copy

Esempio

ST 

IF start THEN
 F11_COPY(s:=0,
        d1_Start=>Motore_array[1],
        d2_End=> Motore_array[130];
ENF_IF
|  LD
                       
|                       
|  start             +-----------+
|                    | F11_COPY  |
+--[ ]---------------+EN      ENO+- 
|                    |           |
|                    |         d1+--- Motore_array[1]
|                    |           |
|                0 --+S        d2+--- Motore_array[130]
|                    |           |
|                    |           |
|                    +-----------+
|

Link al commento
Condividi su altri siti

MOTORE1-MOTORE2-MOTORE3-ecc che sono delle variabili BOOLEANE
Ohh, scusa, non avevo fatto caso...

ST

Var_Motore_array : ARRAY [1..130] OF BOOL;

i:=1;
WHILE i <= 130 
      Var_Motore_array[i]:=0; 
      i:= i+1;
END_WHILE

Link al commento
Condividi su altri siti

Savino grazzie mille ma quello che volglio fare io è mettere a zero un blocco di variabili booleane non arrey.

Il problema come dicevo prima e quando su mio programma ho l'ingresso EMERGENZA che devo mettere tutte le variabili booleane allinterno del mio programma suddiviso in 8 sotto programmi,

prima utilizzavo ambiente di sviluppo diverso e con un'unica funzione il gioco era fatto perche erano registri di relè non variabili booleane.

Forse ho sbagliato il concetto dell'emrgenza voi come fate a gestrire il blocco EMERGENZA?

Non voglio le cose gia fatte ma mi piacerebbe capire se sono io che ho indirizzato male il programma ho se non riesco a trovare la funzione giusta

Grazie mille

Link al commento
Condividi su altri siti

Savino ho provato a eseguire l'esempio che mi ai indicato pero le variabili array boolena non le posso dichiarare sui contatti

Quello che io devo mettere a zero sono bobbine "uscite"

Ho inserito un allegato di quello che devo fare,nell'esempio ho inserito solo un paio di variabili imaginate che ne siano piu di 100

su diversi sotto programmai

Link al commento
Condividi su altri siti

se io disciaro piu variabili booleana ad esempio "MOTORE1 ecc." e poi le vorrei mettere tutte a zero con un'unica istruzione non è possibile ammeno che quella variabile dichiarata non sia un registro relè ad esempio R1 con il nome di "MOTORE1" in pratica a "MOTORE1" la devo dichiarare come varibile globale con indirizzo R1.

Riavvolgiamo il nastro!

"Motore1" e R1 sono la solità cosa!

Il modo di interpretarle cambia, inoltre le posso utilizzare entrambe, il compilatore le utilizzerà in maniera identica,

Quindi se uso un alias tipo "Motore1" lo devo dichiarare esplicitamente e se voglio decidere dove questo agisce lo devo referenziare con una

risorsa fisica quindi lo abbini per esempio a R1.

Se al contrario "Motore1" lo dichiari in locale la risorsa viene stabilita direttamente dal compilatore in fase di compilazione e quindi diventa di tipo dinamico

Ma se come nel primo caso la risorsa è conosciuta "e statica", nessuno vieta che tu azzeri direttamente questa utilizzando la word principale che per R1 è appunto WR0.

Per esempio io dichiaro:

Motore1 = R0

Motore2 = R1

'

'

Motore16 = RF

Tutte gli alias (da R0 a RF) possono essere azzerate semplicemente mettendo a zero la risorsa WR0 (Ovvero la Word delle R da R0 a RF)

Quindi utilizzerei la funzione F0 Move per spostare un valore zero in WR0, in questo modo tutti i relè da R0 a RF vengono azzerati.

Nel tuo caso visto che devi fare un azzeramento multiplo puoi utilizzare la F11.

Spero che cosi ti sia più chiaro!

Link al commento
Condividi su altri siti

Scusami della domanda un pò indiscreta,tu quando crei un programma e arrivi al blocco EMERGENZA come fai a mettere tutto a zero?

E possibile con un istruzione abilitare e disabilitare il POUs.

in pratica se io ho 5 POUs che si chiamano "Programma_1 ecc." e li vorrei abilitare e disabilitare con un istruzione e possibile farlo,

con il Siemens so che è possibile farlo.

Se devo eseguire uno shutdown, ovvero un arresto veloce non si disabilita i blocchi, ma si esegue una funzione programmata di sicurezza,

disalimentando gli Enabled delle FDB.

Questa funzione programmata se viene impartita dall'esterno e a priorità uno, si possono utilizzare i task di Interrupt...

Riguardo alle altre tue, dovrei vedere che funzioni utilizzi e come le programmi, il compilatore esegue la lettura del programma

in un modo ben ordinato, quindi per la programmazione in Ladder, FDB, Grafcet ci sono alcuni trucchi temporali che si devono apprendere.

In pratica se vuoi delle spiegazioni sul codice vale la regola dei programmi di alto livello ovvero va visto il codice!

Modificato: da alen
Link al commento
Condividi su altri siti

Spero che cosi ti sia più chiaro!

Alen ti ho inviato in formato privato un esempio di quello che devo realizzare cosi credo che ci riusciamo a capire meglio

Se devo eseguire uno shutdown, ovvero un arresto veloce non si disabilita i blocchi, ma si esegue una funzione programmata di sicurezza,

disalimentando gli Enabled delle FDB.

Ladder, FDB, Grafcet ci sono alcuni trucchi temporali che si devono apprendere.

Alen potresti spiegarmi meglio come realizzare il blocco programma e se non tichiedo troppo potresti allegarmi un esempio

nell'esempio che ti ho inviato e ben chiaro quello che devo realizzare

Ti ringrazio del tempo che mi stai dedicando

Link al commento
Condividi su altri siti

Savino grazzie mille ma quello che volglio fare io è mettere a zero un blocco di variabili booleane non arrey
Dunque, non ho sotto mano il tool di sviluppo, tratto di darti delle idee cosi ..

Se tu associ l'array coll'indirizzo delle uscite, allora l'identificatore Motore_array(0) e l'indirizzamento fisico %WY0.0 diventano la stessa cosa...

La associazione viene dichiarata nella 'global variable list'.. l'identifier sarebbe il nome simbolico dato all'array che viene associato coll'indirizzo iniziale ove l'array verra' salvato in memoria.

Identifier        Address      Type                      Inizial
----------------------------------------------------------------
Motore_array      %WY0.0       ARRAY [0..15] OF BOOL     16(FALSE)

Anche con le funzioni F0_MOV (16 bit) e F1_MOV (32 bit) potresti muovere la costante '0' su una word di uscita / word doppia di uscita... a secondo il bisogno.

Forse ho sbagliato il concetto dell'emrgenza voi come fate a gestrire il blocco EMERGENZA?
Quello che io devo mettere a zero sono bobbine "uscite"
Non so se queste due operazioni sono legate tra di loro.. ma se premi una emergenza, non sarebbe neccessario resetare l'uscite.. basta fare cadere la memoria di 'macchina ripristinata' oppure 'macchina pronta' e di conseguenza aprire le catene per le memorie di 'Automatico in corso' o 'Manuale in corso'.

Se tu programmi in Ladder, ti suggerirei di aggruppare tutte le uscite in un solo blocco, ove ogniuna avrebbe due catene, una per l'automatico e l'altra per il manuale..

Modificato: da Savino
Link al commento
Condividi su altri siti

Scusami alena ma la tua email è ***[at]***.com

No! quello non è raggiungibile tramite mail, ma solo tramite Messanger!

Se vuoi per inviare comunicazioni utilizza gli MP.

Link al commento
Condividi su altri siti

Credo che si stia facendo un pò di confusione con l'aplicazione che devo realizzare,rileggendo i miei post credo che non mi sia saputo esprimere molto bene.

Per tanto cerchero di descrivere con più chiarezza l'aplicazione.

Sto relaizzando un programma per una macchina che deve mettere delle Anuba sulle finestre di legno,in pretica l'operatore inserisce l'anuba e la macchina prima fa il foro e poi l'avvita contro la finestra.

Il mio programma e formato dal blocco Manuale,Automatico,emergernza e in fine c'è il blocco delle uscite.

Il blocco del manuale e automatico e formato da contatti e bobbine,semplici e SETTA e RESETTA dichiarate come variabili interne booleane con diversi nomi ad esempio Motore,valvola,freno,mandrino,ecc. con un totlae di 130 Variabili,il problema viene quando devo eseguire il blocco emergenza,dove vado a fare l'arresto di tutti e due i blocchi manuale e automatico e per fare ciò devo mettere a zero tutte le variabili booleane che si trovano allo stato alto.

La stessa cosa la dovrei utilizzare quando e in corso il ciclo automatico,quondo premo il pulsante arresto devo arrestare tutte le variabili booleane all'interno del cblocco automatico.

Con il tool di sviluppo che utilizzavo prima dove si poteva utilizzare solo relè e word il gioco era fatto perche con un'unica istruzione facevo tutto, quando avevo l'emergenza o stavo lavorando in automatico e dovevo arrestare il tutto, muovevo a zero

il blocco di WR (rele) che mi interessavano.

Ora che sto utilizzando l'ambiente di sviluppo conforme allo standard IEC61131-3 mi sembra superfluo continuare a programmare solo con gli indirizzi R (relè) e Word dal momento che posso utilizzare delle variabili interne.

Quello che chiedo e sapere se c'e un modo per ferlo anche con le variabili boolenane (che non siano dichiarate R-(rele) )

Spero di essere stato chiaro a descrivere l'applicazione, credo che con il programma che o realizzato non vada bene utilizzare l'array perche dovrei avere una solo variabile array booleane e lavora solo con quella.

Non so se queste due operazioni sono legate tra di loro.. ma se premi una emergenza, non sarebbe neccessario resetare l'uscite.. basta fare cadere la memoria di 'macchina ripristinata' oppure 'macchina pronta' e di conseguenza aprire le catene per le memorie di 'Automatico in corso' o 'Manuale in corso'.

savino non riesco a capire molto bene il tuo concetto, me lo potresti espimere con un po più di chiarezza o con un esempio

in pratcica qunado mi cade macchina ripristinata cosa succede all'interno del mio blocco automatico o manuale

Se devo eseguire uno shutdown, ovvero un arresto veloce non si disabilita i blocchi, ma si esegue una funzione programmata di sicurezza,

disalimentando gli Enabled delle FDB.

alen se ho capito bene tu quando rilevi l'emergenza disabiliti tutti gli ingressi enabled sugli ingressi dei blocchi funzione,

e se nel caso oltre ai blocchi funzione ai delle bobbine dichiarate SETTA ( -(s)- ) come fai a metterle a zero,mica le metti una per una a zero!

Se vuoi per inviare comunicazioni utilizza gli MP.

alen o provato a inviarti un messaggio privato per allegarti il programma esempio ma non sono riuscito ad allegarli mi sapresti indicare come fare ad allegarteli.

Il problema principale è che il programma macchina l'o già realizzato è vorrei tenere buono quello che ho già fatto senza rittoccarlo perche ho dei ritardi sulla consegna e non ho tempo materiale per modificarlo

Link al commento
Condividi su altri siti

La spiegazione che ti avevo dato in precedenza (esempio applicato alle WR) vale anche per le altre risorse

con le dovute differenze applicative, tu puoi resettare le WR come le DT e nel caso di funzioni tipo Set-Reset azzeri le uscite resettando le realative WY,

Nota: il fatto che tu utilizzi la programmazione in IEC61131, non pregiudica la tipologia di utilizzo, ovvero qualsiasi

programma che sia stato sviluppato in precedenza in FDB, Ladder ecc.. può essere convertito in programmazione Standard IEC,

in particolare lo standard prevede:

1) la comune condivisione degli indirizzi IEC tra varie marche di PLC,

2) la trasportabilità del programma sempre tra marche diverse...

3) la possibilità di programmare liberamente in uno dei linguaggi riconosciuti come Linguaggi Standard a livello Internazionale da tutti i costruttori.

l'FPWINPRO oltre a questo prevede la possibilità di creare un programma utilizzando in contemporanea tutti i 5 linguaggi disponibili o miscele di questi.

Modificato: da alen
Link al commento
Condividi su altri siti

savino non riesco a capire molto bene il tuo concetto, me lo potresti espimere con un po più di chiarezza o con un esempio

in pratcica qunado mi cade macchina ripristinata cosa succede all'interno del mio blocco automatico o manuale

Questo sarebbe un esempio base di massima .. Io non ho visto il tuo programma , quindi non so come hai predisposto il tutto..

LAD 

Macchina Pronta


   PS_RIPRISTINO       PS_EM1   PS_EM2    PS_EM3         M_READY   
|                                       
+------[ ]------+-------[ ]------[ ]-------[ ]--------------( )---+
|               |             
|               |
|   M_READY     |
|               |
+------[ ]------+
|


Automatico in corso


PS_START_CICLO_AUTO   SEL_AUTO  SEL_MAN   M_READY      M_AUTO_IN_CORSO   
|                                       
+------[ ]------+-------[ ]-------[/]-------[ ]-------------( )---+
|               |             
|               |
|M_AUTO_IN_CORSO|
|               |
+------[ ]------+
|


Manuale in corso


    SEL_MAN           SEL_AUTO            M_READY      M_MAN_IN_CORSO   
|                                       
+------[ ]--------------[/]-----------------[ ]-------------( )---+
|                            
|               
|   
|               
|

Operazione Avanti ..


 M_AUTO_IN_CORSO      M_AV_P1                             Q_AVANTI
|     
+---[ ]-------------+---[ ]---+----------+------------------( )---+
|                   |         |          |
|                   | M_AV_P3 |          |
|                   |         |          |
|                   +---[ ]---+          |
|                   |         |          |
|                   | M_AV_P5 |          |
|                   |         |          |
|                   +---[ ]---+          |
|                                        |
|M_MAN_IN_CORSO       M_AV_MAN           |
|                                        |
+---[ ]-----------------[ ]--------------+
|



Operazione Indietro ..


 M_AUTO_IN_CORSO      M_IND_P2                           Q_INDIETRO
|     
+---[ ]-------------+---[ ]---+----------+------------------( )---+
|                   |         |          |
|                   | M_IND_P4|          |
|                   |         |          |
|                   +---[ ]---+          |
|                   |         |          |
|                   | M_IND_P6|          |
|                   |         |          |
|                   +---[ ]---+          |
|                                        |
|M_MAN_IN_CORSO       M_IND_MAN          |
|                                        |
+---[ ]-----------------[ ]--------------+
|

Queste righe di ladder sarebbero posizionate su differenti blocchi, a secondo la organizzazione strutturale del programma..

Le memorie di commando passo ( M_AV_P..- M_IND_P..) verrano impostato nei respettivi blocchi che potrebbero essere del tipo sequenziali o continui.. li imposterai anche le memorie di predisposizione, abilitazioni ..etc, alla esecuzione del movimento..

Idem per il commando delle memorie per il manuale..

Ripeto, questo sarebbe solo per rendere una idea di massima, senza cadere nei dettagli..

Modificato: da Savino
Link al commento
Condividi su altri siti

Ciao Savino ,

Sono al corrente che la domanda che ti posto e' un molto OT :unsure:

Vedo che nei codici di esempio che scrivi , usi sempre 2 ingressi distinti MAN & AUTO.

Solitamente lavoro solo con 1 ingresso di AUTO , che se non presente manda il sistema implicitamante in manuale.

La mia domanda e' questa , la tua filosofia nasce da esigenze specifiche che riscontri sul campo o normative tecniche che non conosco, o solo e' una tua consuetudine? "diciamo abitudine"

Ciao

Ivan

Link al commento
Condividi su altri siti

Vedo che nei codici di esempio che scrivi , usi sempre 2 ingressi distinti MAN & AUTO.
Ciao kamikaze .. si', infatti in questo caso lo ho fatto cosi', ma non sarebbe esclusivo...

Il selettore AUTO-MAN potrebbe essere di due posizione con 1 NO, due posizione con due NO.. oppure 3 pos. col lo zero centrale... Il fatto di utilizzare solo 1 contatto (risparmiare), funzionalmente non cambiarebbe.. utilizzi una interrogazione negata del AUTO per dire che sei in manuale.. non penso ci siano delle restrizioni a livello normative, sarebbero soltanto delle scelte costruttive prese dal costruttore in se.

Modificato: da Savino
Link al commento
Condividi su altri siti

Il fatto di utilizzare solo 1 contatto (risparmiare), funzionalmente non cambiarebbe..
Bisogna dire che in questo caso, se il selettore non e' posizionato su AUTO, allora "logicamente" potresti dire che sei in MAN.. ma non "elettricamente" pero'.
Link al commento
Condividi su altri siti

Savino se ho capito bene quando ti cade il relè macchina pronta fai cadere il contatto manuale in corso e automatico in corso, dove queste due variabili sono associate ad ogni uscita del PLC.

Per quanto riguarda le memorie di controllo quando ti cade macchina pronta le resetti internamente ai blocchi associati

LAD 

Macchina Pronta


   PS_RIPRISTINO       PS_EM1   PS_EM2    PS_EM3         M_READY   
|                                       
+------[ ]------+-------[ ]------[ ]-------[ ]--------------( )---+
|               |             
|               |
|   M_READY     |
|               |
+------[ ]------+
|


Automatico in corso


PS_START_CICLO_AUTO   SEL_AUTO  SEL_MAN    M_READY      M_AUTO_IN_CORSO
|                                       
+------[ ]------+-------[ ]-------[/]--------[ ]------+---------(S)---+
|               |                                  |                
|               |                               |    
|M_AUTO_IN_CORSO|                               |    USCITA_PUNTA    
|               |                               |    
+------[ ]------+                                  +---------(S)---+    

|
|
|
|M_AUTO_IN_CORSO  FC_PUNTA_AVANTI            ROTAZINE_PUNTA
|
+------[ ]-------------[ ]--------------------------------------(S)---+
|
|
|
|
|
|M_AUTO_IN_CORSO  FC_USCITA_PUNTA            ROTAZINE_PUNTA
|
+------[ ]-------------[ ]--------------------------+-----------(R)---+
|                                     |
|                                      |            
|                                     |       USCITA_PUNTA
|                                     |            
|                                     +-----------(R)---+
|
|
|
|     M_READY                                   ROTAZINE_PUNTA
|
+------[/]------------------------------------------+-----------(R)---+
|                                     |
|                                      |        
|                                     |      USCITA_PUNTA
|                                     |        
|                                     +-----------(R)---+
|                                     |
|                                     |    
|                                     |    M_AUTO_IN_CORSO
|                                     |    
|                                     +-----------(R)---+

IL PROGRAMMA CONTINA COSI


Blocco uscite

                                             
| M_AUTO_IN_CORSO   USCITA_PUNTA             M_READY       SCITA_PUNTA (Y0)
|     
+---[ ]-------------+---[ ]---+----------+-----[/]-------------( )---+
|                   |         |          |
|                   |   ECC.  |          |
|                   |         |          |
|                   +---[ ]---+          |
|                   |         |          |
|                   |   ECC.  |          |
|                   |         |          |
|                   +---[ ]---+          |
|                                        |
|M_MAN_IN_CORSO         MAN              |
|                                        |
+---[ ]-----------------[ ]--------------+
|
|
|
|
|
|
|     
|                                            
| M_AUTO_IN_CORSO  ROTAZINE_PUNTA             M_READY     ROTAZINE_PUNTA (Y1)
|     
+---[ ]-------------+---[ ]---+----------+-----[/]-------------( )---+
|                   |         |          |
|                   |   ECC.  |          |
|                   |         |          |
|                   +---[ ]---+          |
|                   |         |          |
|                   |   ECC.  |          |
|                   |         |          |
|                   +---[ ]---+          |
|                                        |
|M_MAN_IN_CORSO         MAN              |
|                                        |
+---[ ]-----------------[ ]--------------+
|
|
|
|

Questo in parte è il mio programma,ho inserito secondo quello che ho capito le modifiche che devo apportare.

All'interno del mio programma Automatico tutte le bobbine che si settano al momento che mi cade macchina pronta le devo resettare una per una.

Dovrei allegare un files da inviare a alen ho provato a inviarli un messaggio privato ma non riesco ad allegare un file sapresti indicami come posso fare a spedeire questo file

Link al commento
Condividi su altri siti

Savino se ho capito bene quando ti cade il relè macchina pronta fai cadere il contatto manuale in corso e automatico in corso, dove queste due variabili sono associate ad ogni uscita del PLC.

Per quanto riguarda le memorie di controllo quando ti cade macchina pronta le resetti internamente ai blocchi associati

Si' hai capito bene..

La memoria READY, farebbe cadere le memorie di automatico o manuale in corso, a secondo dove ti trovi in quel istante...poi, di conseguenza, le catene per le uscite saranno interrotte..

Il ladder che hai allegato non se capisce bene.. non riesci a fare un screenshot di questi pochi rungs e allegralo usando la procedura "UPLOAD" (massimo 500KB).. dovresti impostare il file bmp con il bottone del browse e premere UPLOAD.. ti lo trovi sotto a destra del box view di controllo

Modificato: da Savino
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...