Vai al contenuto
PLC Forum


S7-higraph :qualcuno Mi Può Aiutare? - dubbi


Messaggi consigliati

Inserito:

E' una settimana che studio la documentazione relativa a questo software e sebbene abbia studiato all'università argomenti parecchio più complessi sto incontrando serie difficoltà a capirne il funzionamento.

Secondo me la manualistica è stata scritta davvero con i piedi ed è per questo che ci sono cose che non riesco proprio a capire.

1)Partiamo con il comando C:

viene indicato come operatore di azione ciclica e mi viene scritto :

“Azioni che, durante la sosta in un determinato stato, vengono eseguite dopo la verifica delle transizioni”

Ma di quali transizioni parla?Quelle solo in ingresso allo stato in questione oppure quelle in ingresso e in uscita dallo stato??

2)Quando ho uno stato che contiene solo questa istruzione:

C | = Motore_on,(in cui motore on è una variabile )

significa che assegno alla variabile Motore_on il valore del RLC;ma quale?

3)Non ho capito sto discorso del funzionamento in modo manuale o automatico:

la manualistica dice:

“Un programma con modi di funzionamento può essere creato facendo dipendere l'avanzamento delle transizioni da determinate variabili di ingresso. Oltre alle condizioni delle transizioni, vengono interrogate le variabili di ingresso.”

Ma di quali variabili di ingresso parla??

La transizione va avanti e porta allo stato successivo solo se le condizioni al suo interno sono verificate.Queste altre variabili (di ingresso) da verificare dunque quali sono???

4)Vi sembrerà incredibile ma il pacchetto S7-HiGraph contiene l’esempio trapanatrice già bello e pronto:

la cosa assurda è che se lo compilo mi vengono dati degli errori!!

Ciò forniscono esempi che non funzionano??

Eppure faccio quello che dice il manuale(che poi è soltanto aprire l’esempio e ciccare sull’icona compila).

Se qualcuno di voi mi può rispondere o mi può indirizzare verso qualcuno che può risolvere questi(e altri dubbi) mi farebbe un ENORME piacere.

Grazie anticipatamente.


Inserita:

1)Partiamo con il comando C: .... Ma di quali transizioni parla?

di quelle di uscita dallo stato. Le azioni potranno essere eseguite fino a che non è validata la transizione di uscita.

2) Risultato Logico Combinatorio = Il risultato di operazioni booleane. Se c'e' un semplice "=" non ci sono altre condizioni.

3) Quando si vogliono predisporre i due modi si creano delle transizioni "automatiche" che esaminano lo stato delle variabili booleane effettive del processo come fine corsa di alto, basso ecc. e delle transizioni "manuali" che esaminano un semplice comando manuale ricorrente come un pulsante per eseguire il ciclo a passi. Questi stati sono gli ingressi.

4) L'esempio è stato scritto con i codici mnemonici nella versione inglese ( I=ingressi ecc). Da Simatic Manager apri: Strumenti/Impostazioni/Lingua e mnemonico, scegli mnemonico Inglese e riavvia.

La documentazione Siemens ha origine da una cultura diversa dalla nostra. Non ammette un approccio approssimativo fatto di tentativi. Bisognerebbe leggere in modo sistematico tutto prima di iniziare a fare. C'e' talvolta qualche errore di traduzione, nel dubbio controlla la versione inglese (o tedesca).

Inserita:

Innanzitutto grazie per avermi risposto:

ho provato a decifrare ,seguendo le tue indicazioni,l’esempio della valvola a due posizioni,che sicuramente conosci anche tu visto che è appunto l’unico esempio trattato un po’ più a fondo nel manuale.

Il diagramma hi-graph è quello qua sotto:

snap010.jpg

link:

http://papo1.altervista.org/varie/snap010.jpg

Mi potresti dire se ragiono nel modo corretto??

Sono allo stato di inizializzazione 0 ;

resetto le variabili OM_SOPRA e OM_SOTTO.

A questo punto mi trovo tre strade(3 transizioni):

verifico per prima quella con il numero 1 che mi controlla la variabile I_SOPRA.

Supponiamo che questa variabile abbia valore 1 ciò significa che la valvola si trova in alto e tiene attivato proprio il fine corsa di posizione in alto.Perfetto,allora proseguo per il percorso 1 arrivando allo stato 1 dal nome SOPRA in cui uso il comando “C” con le variabili “SU” e “OM_SOPRA”.

Secondo quanto mi hai detto tu devo prima verificare le transizioni che SEGUONO lo stato 1 prima di eseguire le azioni dentro lo stesso stato 1.

SUPPONGO che debba seguire ancora le priorità delle transizioni che PARTONO dallo stato 1 quindi guardo la transizione 1 che mi interroga IM_GIU’.:

per logica questa variabile IM_GIU’deve essere ZERO perché abbiamo appena finito di dire che la valvola si trova tutta in alto quindi mi blocca e verifico l’altra transizione che parte sempre dallo stato 1 ovvero la transizione 2 che mi interroga la variabile I_SOPRA:davanti trovo scritto AN.

Sarebbe il corrispondente di UN(and negato??)

Se è così,poiche prima I_SOPRA era =1 allora UN I_SOPRA sarà 0 quindi mi blocco anche qui

A questo punto verifico l’ultima transizione che parte dallo stato 1 ovvero la transizione 3 in cui si devono verificare le variabili ABILITAZIONE_GIU’ e PULSANTE _PIU’.

Innanzitutto le due variabili sono caratterizzate dall’operatore A (automatico) ma la transizione 3 è marcata come in modalità automatica(operatore M).

Cosa significa ciò??

Grazie mille per la tua disponibilità

Inserita:

"Secondo quanto mi hai detto tu devo prima verificare le transizioni che SEGUONO lo stato 1 prima di eseguire le azioni dentro lo stesso stato 1"

E' poco piu' di un formalismo nel senso che se la condizione non e' vera si continua ad elaborare la funzione che comanda l'azione. Appena una transizione di partenza avra' la condizione vera si cessera' l'esame della funzione che controlla l'azione, si elaborera' l'eventuale azione di uscita dallo stato, poi l'eventuale azione di transizione e infine si attivera' lo stato successivo.

La valvola a due posizioni finali si muove normalmente tra gli stati 1=Alto, 2=abbassamento, 3=basso, 4=elevazione.

I fine corsa che definiscono la posizione sono I_Sopra e I_Sotto, mentre IM_Su e IM_Giu sono comandi elaborati dal controllo di questa unita' valvola in relazione ai suoi compiti nel contesto e questo diagramma si limita ad eseguirli, sono degli ordini non delle posizioni.

Dallo stato 0 se la trapanatrice e' alta si va allo stato 1, altrimento al 5 -> 4 -> 1 . Da 1 con IM_Giu=vero cioe' con un comando di discesa necessario per il contesto della macchina si va a 2 dove si doveva scrivere "Abbassare" e non "Sollevare" Controlla la versione inglese che dice Movement down.

"AN.Sarebbe il corrispondente di UN(and negato??)". Si, sta per And Not

ABILITAZIONE_GIU’ e PULSANTE _PIU. Direi che e' la transizione per funzionamento (M)anuale. In questo modo di funzionamento si ha un solo pulsante + di abbassamento e - di sollevamento. Per la transizione 1-2 il controllo che gestisce questa valvola fornira' Abilitaz_Giu, l'operatore preme Pulsante_piu e la transizione nterroga ( Abilitaz_Giu And Pulsante_piu). L'abilitazione in genere e' di volta in volta fornita dalla stato precedente.

Inserita: (modificato)

Guarda,

non so come ringraziarti!!!

Cavolo il grafico è sbagliato ecco perché non capivo il nesso logico!!

Mi si stanno chiarendo diversi dubbi però ancora ho qualche incertezza sul comando C| =nome_variabile e ti spiego che cosa non mi è ancora chiaro.

E’ una cosa che per te magari sarà banale ma per me è al centro della logica ,ancora non molto limpida,di sti ca**o di diagrammi….

Allora,

cercherò di essere il più chiaro possibile senza abusare della tua infinita pasienza:

nell’ipotesi che la trapanatrice sia in alto,la varibile I_SOPRA (FINE CORSA ALTO) è vera quindi vado allo stato 1 in cui ho le assegnazioni:

C|= U_SU

C|=OM_SOPRA

U_Su(CHE NON E’ IL FINE CORSA) è associtata al parametro attuale ALZA_TRAPANATRICE che materialmente mi comanda l’uscita A 0.2 .

Quindi di fatto,se U_SU ha valore =1 ,allora A 0.2 =1 e mi si alza la trapanatrice.

Quando la transizione I_SOPRA è vera e passo allo STATO 1,che valore hanno le variabili U_SU e OM_SOPRA in questo esatto momento?

0 oppure 1?

Sicuramente U_SU deve essere 0 perché se già la trapanatrice è in alto che senso ha attivare la valvola per farla andare ancora + in alto??

Ho detto una stronzata??

Te lo chiedo perché la transizione SUCCESSIVA allo STATO 1 mi ha messo in crisi infatti essa verifica la variabile IM_GIU’che come mi hai già detto è un ordine:

Come da tue testuali parole :

se la condizione non e' vera si continua ad elaborare la funzione che
 comanda l'azione.
Cioè ,se non ho capito male ,continuo a chiedermi : IM_GIU’ è vera? Questo fin quando non lo è ,corretto?
Appena una transizione di partenza avra' la condizione vera si cessera' 
l'esame della funzione che controlla l'azione:
cioè non appena IM_GIU’ è vera,ne interrompo l’interrogazione,
Si elaborera' l'eventuale azione di uscita dallo stato:
le mie azioni in uscita allo STATO 1 sarebbero le mie due assegnazioni C|= U_SU C|=OM_SOPRA ?? e che valori gli do adesso?? U_SU non deve restare sempre 0 visto che con 1 la trapanatrice verrebbe FORZATA a salire + in alto quando invece è già alla sua altezza massima(tant’è che I_SOPRA era vera)?? Non mi è chiaro proprio questo
Poi l'eventuale azione di transizione:
nel mio caso l’unica azione di transizione è la verifica di IM_GIU che è già vera.
e infine si attivera' lo stato successivo.

Potresti aiutarmi a chiarire questi miei dubbi?

GRAZIE ANCORA!!

Modificato: da papo
Inserita:

Normalmente la trapanatrice si evolve secondo 1, 2, 3, 4.

In modo approssimativo puoi pensare che quando uno stato e' attivo si compia l'azione che segue l'= salvo che una espressione booleana preceda l'= e lo condizioni.

Se la trapanatrice e' nello stato 1 e ci resta un attimo U_su = 1 e OM_Sopra = 1.

La cpu che esegue il programma e' in grado di eseguire una operazione logica alla volta come tutte le cpu; quando ciclicamente si occupa dello stato 1 per prima cosa interroga le transizioni di partenza, se sono false ribadisce i due 1 se, invece, la (1)-1-(2) e' vera disattiva lo stato 1, assegna due 0 e attiva lo stato 2.

L'espressione C | = <var> significa che mentre lo stato e' attivo e solo allora <var> sara' generalmente true. Nell'istante in cui lo stato e' attivo e la transizione e' diventata vera e' inutile assegnare 1 perche si deve disattivare quello satato, ma questo avviene solo in quell'istante.

"e che valori gli do adesso?? Il valore 0.

"U_SU non deve restare sempre 0 visto che con 1 la trapanatrice verrebbe FORZATA a salire + in alto quando invece è già alla sua altezza massima(tant’è che I_SOPRA era vera)?? "

Non e' inutile insistere perche' sono cilindri insistendo con la pressione si compensano eventuali perdite, se fossero motori si dovrebbe fermarli, anzi bloccarli e negli stati 1 e 3 troveresti qualcosa come C | = Freno.

Inserita: (modificato)

MITICO!!!!

Ma la Siemens non poteva farlo scrivere a te il manuale??

Ho capito di più nei tuoi post che in una settimana di lettura di 'sto manuale.

Oggi sono riuscito a far partire la simulazione del diagramma TRAPANATRICE e devo dire che le cose mi sono sicuramente più chiare però ho trovato un punto in cui ahimè mi sono bloccato... :(

1)In sostanza per far andare avanti il diagramma di stato VALVOLA_2P_FINALI, apro PLC-SIM e tramite gli indirizzi corrispondenti ai parametri attuali attivo le varie transizioni.

Alcune varialbili come SU oppure GIU' o ancora SOPRA e SOTTO corrispondono di fatto a degli ingressi e a delle uscite materialmente esistenti (I 0.1 oppure Q 0.2 e così via)per cui basta che in PLC-Sim attivo il byte corrispondente che il diagramma di stato si evolve come di giusto.

Quando mi sono trovato di fronte la variabile di tipo "in-out" ,chiamata IM_GIU mi sono bloccato perchè non trovo il parametro attuale corrispondente da attivare in PLC-SIM.

Vicino a questa variabile,IM_GIU ,durante il funzionamento in modalità RUN-P,mi appare una finestralla in verde con tante colonne,in una delle quali ho la sigla OPD cui sotto trovo scritto DIX 7.1.

Questa indicazione (come leggo da manuale) è il parametro attuale assegnato a quello formale(che dovrebbe essere proprio IM_GIU ).

Il fatto è che in PLC-SIM,per gli altri segnali (di tipo in oppure out) aprivo la finestrella che simulava un ingresso o un'uscita ,scrivevo l'indirizzo del parametro attuale (I 0.1 o quello che era) ,lo attivavo e tutto mi procedeva ok:

adesso non riesco ad individuare l'indirizzo effettivo da attivare.

Ho provato ad aprire in PLC-SIM una finestrella per segnali "ingresso" e scrivergli l'indirizzo DIX 7.1 ma ovviamente non mi ha funzionato niente.

Come devo fare??

2)Già che ci sono vorrei capire se ho compreso realmente il significato del funzionamento dei messaggi:

la variabile OM_SOPRA del diagramma di stato VALVOLA (che è una variabile in-out tipo out) viene associata al paramentro attuale TRAPANATRICE.IM_SOTTO:

Se non sbaglio e non ho capito male,significa che non appena ,nel diagramma di stato VALVOLA,la variabile OM_SOPRA è vera(valore 1) allora sarà trasmesso e assegnato il valore 1 alla variabile IM_SOTTO del diagramma di stato TRAPANATRICE,attivando così in quest'ultimo,altre eventuali condizioni,in una sorta di meccanismo a catena.

ho detto bene??

Grazie ancora infinitamente per il tuo aiuto!!!!

Modificato: da papo
Inserita:

L'esempio che osservi ha i diagrammi di stato parametrizzabili. Un diagramma puo' essere utilizzato piu' volte per macchine simili attraverso l'uso di parametri formali. Per la simulazione e' stato creato un diagramma SimGruppo che elabora i parametri attuali da assegnare ai parametri formali. E' un po' complicato, per la simulazionlazione dovresti gestire in ordine:

Duagramma FunzGen

Abilitazione modo ...fino allo stato (3)

Modi di funzionamento ...(2) automatico

SImGruppo

SimAvanzamento ...(1) tramite I0.3

UnitaTrapanatrice

Avanzamento ecc.

In apparenza tutto questo che giustamente chiami meccanismo a catena e' stato fatto per alleggerire il lavoro di simulare i dispositivi fisici agli ingressi ma falsifica una ipotesi di situazione reale

Un esempio piu' semplice che puoi gestire interamente da un byte di ingressi PLC è ZLT03_01.

Il diagramma Trapanatrice --> Trapanatura e' quello di coordinamento e tenendo d'occhio quello puoi vedere le singole unita' funzionali evolvere sulla base degli ingressi.

Se ti puo' consolare, nel lavoro, per produrre risultati NON USIAMO MAI HiGraph.

Inserita:

Allora che mi consigli di non continuare a usare Hi-graph??

Se ritieni che non vada bene ci tolgo mani perchè già mi sembra che mi stia procurando parecchi problemi.

Inserita: (modificato)

Se il tuo scopo e' di studio puo' essere un'esperienza come un'altra e poi la tua tesi sara' un po' originale.

I manuali Siemens trattano gli argomenti con approccio che cura molto le regole generali dalle quali il lettore ricaverebbe da solo quelle particolari. Non ammette la via empirica degli esempi, dall'esempo concreto alla regola generale, perche' smonterebbero quell'impostazione. E quell'atteggiamento culturale, in Germania, funziona benissimo.

Se cerchi di imparare all'incontrario per via empirica con esempi di consiglio di procedere per esempi semplici. Una semplice movimentazione avanti-indietro condizionata da ingressi reali con una struttura elementare per cominciare. Poi da numerosi esempi correlati assimilerai le regole generali

Modificato: da rguaresc
Inserita:

Nei prossimi giorni mi leggerò il materiale che mi hai mandato via mail.

Nel frattempo,

siccome sto lasciando aperte tutte le strade vorrei chiederti una cosa:

non ho ancora capito come si fa a far scattare la varibile di comunicazione In-Out per far andare avanti i diagrammi.

Mi dici che :

per la simulazionlazione dovresti gestire in ordine:

Diagramma FunzGen

Abilitazione modo ...fino allo stato (3)

Modi di funzionamento ...(2) automatico

SImGruppo

SimAvanzamento ...(1) tramite I0.3

UnitaTrapanatrice

Avanzamento ecc.

ma non ne capisco il significato.

:(

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