Vai al contenuto
PLC Forum


Ricerca guasti


Anikare

Messaggi consigliati

Salve a tutti, grazie a questo forum ed a tutti coloro che  mettono a disposizione il loro tempo ed  esperienze . Io sono agli inizi con il Plc ho conseguito un attestato per la programmazione di base finanziato dalla regione Piemonte e cerco di progredire tramite manuali Siemens, video youtube e tramite questo Forum. Lavoro in una Azienda dove le macchine sono programmate con nomi simbolici in Tedesco. A volte mi trovo in programmi diciamo complicati e vorrei sapere se esiste un modo per poter risalire ad un ingresso/uscita con indirizzo. assoluto partendo da un ingresso/uscita con indirizzo simbolico ad esso collegato.  Ho allegato un esempio dove da un ingresso in simbolico in un FC inserito tramite valore IN sulla tendina in alto,  evidenziato punto B,  vorrei risalire al suo ingresso in assoluto presente nel OB1 dove il blocco FC  viene richiamato, evidenziato  punto A. 

Grazie. 

FC1.png

OB1.png

Link al commento
Condividi su altri siti


quel blocco fc1 può essere richiamato tantissime volte in un progetto. è quindi impossibile associare ad una variabile di un blocco funzione una sola variabile di I/O.

Link al commento
Condividi su altri siti

Ok il mio e' solo come esempio. Ma tante volte mi ritrovo nomi simbolici  e non so se ad essi sono collegati merkers, DI, oppure altro.

Ad esempio esiste un punto di applicazione applicabile ai nomi simbolici? 

Link al commento
Condividi su altri siti

Mi capita spesso di aprire blocchi FC dove ci sono solo nomi simbolici, tra l'altro in tedesco.

Esiste un modo per poter risalire ad altri operando ad essi collegati con indirizzo assoluto?   

Link al commento
Condividi su altri siti

Ciao

vediamo se ti può essere d'aiuto, il tuo punto B indica una variabile bool chiamata "Level", così a prima vista la parola "level" può indicare un livello di qualsiasi cosa (pezzi, acqua, aria, ecc), collegata ad un ingresso assoluto "I 124.1", questo mi indica che il livello è un qualcosa di fisso tipo "minimo livello, max livello, ecc", oppure come suggerisce il simbolo associato all'ingresso "Level switch", un punto, per esempio : di vasca nel quale far partire due pompe oppure aumentare la portata di una pompa, ecc, ecc.

 

Conoscendo l'impianto e l'ubicazione del sensore collegato all'ingresso "I 124.1" puoi dedurre a cosa si riferisce.

 

Quote

Mi capita spesso di aprire blocchi FC dove ci sono solo nomi simbolici, tra l'altro in tedesco.

Esiste un modo per poter risalire ad altri operando ad essi collegati con indirizzo assoluto?

 

Facendo il cross reference del blocco FC ed andando a leggere cosa c'è collegato come dalle due figure che hai messo.

 

O altrimenti non ho capito cosa cerchi di preciso.

 

Saluti

Link al commento
Condividi su altri siti

Se non ho capito male, tu vorresti, dall'interno del tuo blocco FC, fare il cross reference non solo della variabile #LEVEL, ma anche alla variabile collegata a #LEVEL, al momento del richiamo della funzione.
La variabile #LEVEL ha vita solo all'interno del blocco, quindi non puoi chiedere che ti venga fatto un cross reference delle variabili collegate al blocco.
Anche perché, come ti è stato detto, il blocco funzione lo potresti richiamare più volte, ed ogni volta passeresti un diverso ingresso a #LEVEL.
Di quale di questi ingressi dovrebbe essere fatto il cross reference?
Non ci sono altre soluzioni (e non potrebbero essercene), se non visualizzare il cross reference della variabile collegata a #LEVEL, come nel punto che hai segnato con A.

Link al commento
Condividi su altri siti

Ciao,

sarebbe bello se ci fosse, ma non c'è.

Anche se un codice ben scritto dovrebbe usare un "naming" fatto bene, dovrebbe indicare la tipologia di dato che stai usando, e tanto altro... anche per rendere facile la comprensione ad altri.

Ma qui entriamo nel campo della "condivisione del sapere" che troppo spesso collide, ahimè, con la "protezione del posto di lavoro".

Link al commento
Condividi su altri siti

Salve, grazie a tutti. il Sig. Batta ha centrato il punto, forse mi sono espresso io un po' male. Comunque in allegato c'è solo un esempio fatto da me. Nella realtà io mi ritrovo ad aprire blocchi FC che spesso non sono neanche richiamati e dove ingressi ed uscite hanno solo indirizzo simbolico in tedesco tra l'altro.  Vorrei sapere se esiste un modo per poter capire a chi è collegato o chi attiva un ipotetico #........ situazione ripeto che si trova anche in quei blocchi non richiamati e che ovviamente potendo essere richiamati più volte non sarebbe possibile. 

 

Come dice anche Dm5, potrebbe esserci una sorta di protezione? 

Link al commento
Condividi su altri siti

Per poter chiarire meglio, prendiamo sempre in esempio il mio allegato, con il blocco FC richiamato ed usato solo una volta. 

Io che ho fatto il programma so che il punto Bè collegato al punto A, ma uno che non lo sa o magari si ritrova nomi simbolici non chiari magari invece di #LEVEL si ritrova un #L45, come potrebbe fare? 

Link al commento
Condividi su altri siti

In tia portal trova tutti i punti di applicazione all'interno del blocco funzione

con s7 classico non li mette in un elenco ma c'è la possibilità di trovare il successivo o il precedente con:

"Vai a --> applicazione locale >>" Ctrl shift F

"Vai a --> applicazione locale <<" Ctrl shift B

(se ricordo bene)

questo nel blocco.

 

se vuoi trovare ciò che è collegato al blocco devi cercare dove è usato il blocco

Modificato: da ken
Link al commento
Condividi su altri siti

1 ora fa, Anikare ha scritto:

ma uno che non lo sa o magari si ritrova nomi simbolici non chiari

Oppure il furbone di turno cancella il simbolico (nel simatic manager) per mettere in difficoltà gli altri... e così ti ritrovi di colpo negli anni 80 con la programmazione in assembler ☹️

 

1 ora fa, Anikare ha scritto:

potrebbe esserci una sorta di protezione

L'unica protezione è quella di proteggere i blocchi, oppure di cancellare il simbolico per rendere la vita difficile a chi rilegge il codice.

Visto che sei all'inizio guardati anche concetti di naming convention

Modificato: da drn5
Link al commento
Condividi su altri siti

Ho provato con 

 

"Vai a --> applicazione locale >>" Ctrl shift F

"Vai a --> applicazione locale <<" Ctrl shift B

 

ma niente mi dice che non è applicabile questa ricerca al punto selezionato. 

Potrebbe essere che magari ci sia una sorta di protezione in alcuni blocchi dove non si può accedere? E se magari quello che io sto cercando si trova all'interno di uno di questi blocchi non l'ho vedrò mai? 

Link al commento
Condividi su altri siti

4 ore fa, Anikare ha scritto:

Io che ho fatto il programma so che il punto Bè collegato al punto A

No, non lo sai solo tu. Basta cercare dove è richiamato il blocco.
Sei all'interno di un FC chiamato "BOILER"? Selezioni, nei blocchi di programma, il blocco che ti interessa, e viene evidenziato il cross reference di quel blocco. Vai dove il blocco viene richiamato, e ti trovi nella condizione che hai segnato con "A".

Link al commento
Condividi su altri siti

Proverò a fare così, certo che io non sono un programmatore esperto ma alcuni programmi sono veramente suddivisi male, Simatic ha tante funzioni ed opzioni che in  alcuni programmatori invece di facilitare la lettura del codice la complicano. Non so se dipende anche da chi programma. 

Grazie a tutti comunque, alcuni dubbi li ho eliminati. 

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