Vai al contenuto
PLC Forum


Ricerca testo o indirizzo in Step7 S7-300


Ctec

Messaggi consigliati

Ecco una domanda strana.

Ho un vecchio programma S7-300 scritto un po' in AWL e un po' in KOP. Con un bel po' di blocchi.

Il problema è che la ricerca (trova e sostituisci) non lavora su tutti i blocchi (OB, FC, FB) ma solo su quello aperto e selezionato.

Ho da fare delle modifiche e ricercare degli indirizzi di DB sparse qua e la. In pratica vorrei, per esempio, trovare tutte le occorrenze di una DBxx.DBDnnn

Ovviamente non appaiono nella tabella dei riferimenti incrociati.

Non posso neanche tutte le volte aprire un blocco e cercarci la stringa.

Esiste un modo per effettuare una ricerca di un testo (esempio ".DBD10") per accelerare il lavoro?

Grazie

Link al commento
Condividi su altri siti


Si.

L'avevo proposto qualche giorno fa ad un altro utente che aveva la tua stessa esigenza.

Usi la funzione genera sorgente includendo tutti i blocchi.

La trovi nel menu file aprendo un blocco qualsiasi FB o FC

Poi dal file che ti viene generato nella cartella "Sorgenti" fai una ricerca testuale col Ctrl-F

 

Ciao

Modificato: da drn5
Link al commento
Condividi su altri siti

13 ore fa, drn5 ha scritto:

L'avevo proposto qualche giorno fa ad un altro utente che aveva la tua stessa esigenza.

Scusa, l'avevo mancato. Sinceramente, salto un po' a piè pari tutto quello che è S7...

 

Anche perché anche questo dimostra che Siemens = UCAS...

Link al commento
Condividi su altri siti

Il 2/8/2023 alle 08:44 , Ctec ha scritto:

Anche perché anche questo dimostra che Siemens = UCAS...

No, dai, non ricominciamo con i luoghi comuni. Io trovo complicatissimo lavorare con Omron. Complicato è ciò che non si conosce.

 

Quote

Ovviamente non appaiono nella tabella dei riferimenti incrociati.

???

 

Sei con un S7-300, ma non ho capito se usi il Simatic Manager o TIA Portal.

Con il Simatic Manager, il cross reference ti trova tutti gli accessi alla variabile, al DB o a quello che vuoi.

Esempio ricerca di tutti gli accessi a DB300:

image.png.c970dfa307575767aabbcd77196654ad.png

 

Esempio ricerca di tutti gli accessi a una non meglio identificata DBW108

image.png.287c3e7ba472afd5fd60e6d435e39ef5.png

 

In TIA Portal, la ricerca di un testo è estesa a tutto il progetto.
Esempio:

image.png.059a2b26d1a570ed7c79843d0954cdf9.png

 

Se usi il Simatic Manager e l'hardware non è così vecchio da non essere più gestito nel TIA, io ti consiglierei di migrare il progetto in TIA Portal.

Modificato: da batta
Link al commento
Condividi su altri siti

16 minuti fa, batta ha scritto:

No, dai, non ricominciamo con i luoghi comuni. Io trovo complicatissimo lavorare con Omron. Complicato è ciò che non si conosce.

Completamente d'accordo con Batta.

Link al commento
Condividi su altri siti

Sul Simatic Manager c'è anche la tabella di riferimento che ti permette di fare tutte le ricerche che vuoi. 

31 minuti fa, batta ha scritto:

Complicato è ciò che non si conosce.

Come non quotarlo, sto lavorando con Rockwell che a me provoca bruciori di stomaco, invece a tanti piace.

Link al commento
Condividi su altri siti

Ragazzi, io passo di continuo da un PLC di una marca a quella di un'altra, da 30 anni ormai. Da programmi in DOS a sistemi integrati (che a volte sono peggio che meglio).

Anche se è un PLC mai visto, se ne cava le gambe in tempi ragionevoli, anche perché funzioni quali la ricerca testuale sono standard di tutti i sistemi di sviluppo.

Chiaramente è una baracca del primi 2000, assolutamente non importabile in TIA (che è stato un notevolissimo passo avanti rispetto a S7), e le idiosincrasie dello STEP 7 (non per il 200, che era assai più "standard") non le ho mai mandate giù. E di roba (purtroppo) ne ho fatta.

Se la faccio io, ho una mia organizzazione e ritrovo tutto come e dove voglio. Ma se come in questo caso il programma è fatto da altri, e in particolare con tanti di quei salti pindarici per ottenere tempi di ciclo decenti, è un bel casino.

Si, il Punto Di Applicazione è una possibilità, ma ne da' di una variabile alla volta.

Volevo una forma tabellare tipo i Dati di Riferimento. La quale però non fa vedere elementi di DB.

Se invece fosse stata presente una banale ricerca di testo, come il mio esempio ".DBD10", indipendentemente dalla DB di appartenenza, si sarebbero potute vedere tutte le occorrenze.

La ricerca nel sorgente funziona, ma perdi di vista il punto del programma in cui sei (OB? FB? FC?).

 

Lavorare con Step7 (o peggio ancora Step5) è sempre stato un dito in... un occhio...

Il fatto che poi con l'abitudine alle idiosincrasie non le si nota più, non implica che non esistano. Un puzzo dopo un po' si smette di sentirlo, ma la m... rimane... 😉😁

Link al commento
Condividi su altri siti

Scusami, ma non ho capito. Ti ho fatto vedere che puoi facilmente ritrovare tutti gli accessi a "DB???.DBD10", ma non ti va bene perché le trovi una alla volta? In che senso? Non è quello che chiedevi? Cosa ti dà di più una riicerca testuale? Che poi, se preferisci la ricerca testuale, fai una migrazione in TIA (senza importare l'hardware), e fai anche quella.
In quasi trent'anni che lavoro con i PLC, non ho mai sentito questa esigenza di una ricerca testuale in Simatic Manager, che offre un cross reference completo e dettagliato.

 

Per il resto, questione di abitudini? Io ho iniziato a programmare con PLC giapponesi (Matsushita e Omron). Per parecchi anni ho usato molto i PLC Texas (quasi sempre CPU 545). Fino all'avvento di S7 evitavo Siemens come la peste (anche oggi reputo la programmazione di S5 la peggior cosa mai vista). Quindi, sono arrivato a Siemens dopo parecchi anni di abitudine di PLC di scuola giapponese/americana.
Mai mi sognerei di tornare ad una programmazione tipo Omron, che considero obsoleta.
Mi fai il confronto tra S7-300 e S7-200? Mai lavorato volentieri con il 200!

 

Mi puoi dire che ti adatti meglio alla programmazione di certi tipi di PLC rispetto ad altri, ma non mi puoi parlare di "idiosincrasie" che non si notano più per abitudine.
Le mie idiosincrasie emergono quando ti trovi a sviluppare un software con una CPU, poi sviluppi un altro software con una CPU che pensavi diversa solo a livello di prestazioni, e ti accorgi che mancano una marea di istruzioni. Le mie idiosincrasie si manifestano quando mi trovo costretto, nel 2023, a lavorare con indirizzamenti assoluti, o quando ti ritrovi con editor di testo strutturato che non hanno autocompletamento dei nomi delle variabili, o che se cambi nome ad una variabile poi devi manualmente sostituire il nome nel codice, perché non avviene in automatico. Per quanto riguarda Omron (cito questo solo perché tra i non Siemens è quello che ho usato più recentemente), io sono fermo ancora a CX Programmer, e non so quanti passi avanti siano stati fatti con il nuovo tool di sviluppo, ma era qualcosa indietro vent'anni rispetto non dico al TIA, ma anche al vecchio Simatic Manager.

 

Probabilmente abbiamo entrambi ragione (o entrambi torto), e si tratta solo di preferenze personali, ma tacciare in continuazione Siemens di essere un UCAS, è assolutamente ingiusto, è solo un luogo comune nato dai tempi di S5 (e lì ti do pienamente ragione), che ci si porta dietro per tutta la vita.
Dopo le utime esperienze fatte con Omron (programmi abbastanza semplici, portati a termine tra bestemmie in aramaico ed attacchi violenti di colite), ho deciso che rifiuterò ogni lavoro che mi proporranno  con quel PLC.

 

 

Link al commento
Condividi su altri siti

2 ore fa, batta ha scritto:

Non è quello che chiedevi?

Non ti arrabbiare.

Non è quello che chiedevo.

ho bisogno di vedere TUTTE le occorrenze di una variabile in un programma.

La ricerca testuale se ne fotte se è un indirizzo, un commento, una variabile, semplicemente lo cerca. Contenuto o preciso, come si vuole.

Per esempio (fatto con un PLC LS su cui sto lavorando ora) se cerco il testo "PosX" che è anche il nome di una variabile, mi trova:

image.png.1b5344fdadcdba9e7c17634da66fe962.png

Quante, dove e come usata.

Se invece cerco "pos", come capirai per qualsiasi asse, mi trova tutti i riferimenti alla stringa, su cui poi eventualmente fare filtro

image.png.7befe0ddb368487c244b124f98da0aee.png

anche in questo caso tutto, anche i flag delle schede (vedi il positioning module).

E' questo che cercavo, e nello Step7 non c'è.

 

Per concludere, il CXprogrammer era un ottimo oggetto per venti anni fa, via via migliorato. Purtroppo lavorava solo in assoluto, come di standard allora. E conosco parecchia gente che ancora, con qualsiasi PLC, lavora in assoluto.

Personalmente, provenendo dal mondo microcontroller (C) ho sempre preferito il simbolico. Finalmente la Omron l'ha reso disponibile con il Sysmac Studio, una decina di anni fa, e Mitsubishi un po' dopo con il GX3, LS ce l'ha anche se con alcune limitazioni sui PLC più piccoli (niente Union né strutture di strutture). Ora è un po' che non uso rockwell, non rammento bene.

Ho fatto lo stesso identico software per una macchina a più assi con il TIA (S7-1500) e Sysmac (NJ), per fare il secondo c'è voluto molto meno. E' una questione di tempi, ovvio che un PLC alla fine esegue quello che richiedi, è come sei costretto a farlo che pesa. Poi, almeno nella mia zona, tutti gli adorabili personaggi Siemens li vorremmo passare sotto lo schiacciasassi, e non sono il solo.

 

Comunque, per finire, su S7-300 non si può fare. Ne prendo atto e agisco di conseguenza.

Grazie comunque di avermi rispolverato alcune caratteristiche che avevo dimenticato dello STEP 7

Link al commento
Condividi su altri siti

20 ore fa, Ctec ha scritto:

Non è quello che chiedevo.

ho bisogno di vedere TUTTE le occorrenze di una variabile in un programma.

Non ti preoccupare, non mi sto arrabbiando. Sto solo discutendo, come si discute di macchine (a proposito, io sono Alfista), ma senza toni bellicosi. Scrivendo può essere che si recepisca qualcosa di diverso, ma ti assicuro che lo sto prendendo come puro divertimento, in tono scerzoso. Del resto, nessuno mi paga per parlare bene o male di un PLC piuttosto che di un altro.

 

Il 1/8/2023 alle 17:13 , Ctec ha scritto:

Ho da fare delle modifiche e ricercare degli indirizzi di DB sparse qua e la. In pratica vorrei, per esempio, trovare tutte le occorrenze di una DBxx.DBDnnn

Questo però è ciò che avevi chiesto, e questo si fa anche nel Simatic Manager.

 

20 ore fa, Ctec ha scritto:

Ho fatto lo stesso identico software per una macchina a più assi con il TIA (S7-1500) e Sysmac (NJ), per fare il secondo c'è voluto molto meno.

Per me è esattamente l'opposto. Per fare un esempio, la prima volta che mi cimentai con l'oggetto "Cinematica" del Siemens, con l'unico ausilio della guida in linea, in mezza giornata misi in piedi un demo di un cartesiano a tre assi, con tanto di movimenti raccordati in diversi modi. Poi, solo cambiando la configurazione hardware, lo stesso software va bene per un Delta, o per altre cinematiche.

 

 

20 ore fa, Ctec ha scritto:

Poi, almeno nella mia zona, tutti gli adorabili personaggi Siemens li vorremmo passare sotto lo schiacciasassi, e non sono il solo.

Le rarissime volte che richiedo assistenza, vengo sempre ricontattao, al massimo il giorno successivo, da un tecnico preparato. Poi ho anche qualche contatto diretto. Capisco che sia più comodo avere un unico referente, ma non è possibile che una sola persona (o poche persone) conosca tutto di tutto. Meglio essere indirizzati alla persona giusta per il problema specifico.

 

20 ore fa, Ctec ha scritto:

Comunque, per finire, su S7-300 non si può fare. Ne prendo atto e agisco di conseguenza.

No, come ti ho detto, si può risolvere molto velocemente: basta fare la migrazione in TIA Portal (se non importi l'hardware, funziona anche per progetti vecchissimi), e fai la ricerca testuale. Puoi decidere se fare la ricerca in un singolo blocco, in un gruppo di blocchi, nei blocchi selezionati, in tutta la CPU, o nell'intero progetto, con più CPU e pannelli operatore compresi.

Link al commento
Condividi su altri siti

8 minuti fa, batta ha scritto:

Questo però è ciò che avevi chiesto, e questo si fa anche nel Simatic Manager.

Batta, alla fine non ho capito.

Questo avevo chiesto:

Il 1/8/2023 alle 17:13 , Ctec ha scritto:

vorrei, per esempio, trovare tutte le occorrenze di una DBxx.DBDnnn

Io la ricerca in Simatic Manager di un testo e trovare tutte le occorrenze del testo non riesco a farla.

Non posso passare a TIA, devo lavorare con il Simatic Manager, e mi sto un po' arrangiando con la ricerca in tutto il sorgente, con un po' di grattacapo.

Se esiste tale ricerca, in Simatic Manager, per favore indicatemela.

Link al commento
Condividi su altri siti

Ma quello non è un testo, è un indirizzo. Puoi ricercare tutti gli accessi ad un DB senza specificare altro (e trovi tutte le variabili di quel DB, in tutto il programma, anche gli accessi a bit/byte/Word/DWord, se lo desideri), oppure puoi indicare la variabile (es. DBW10) senza specificare il DB ( e ti trova, in tutto il programma, dove c'è una DBW10, di qualsiasi DB).

La migrazione in TIA era solo per fare una ricerca, per avere un'idea di dove ci sono i testi che ti interessano. Anche se la devi ripetere man mano che fai modifiche, è sempre più rapido e più comodo della rigenerazione dei sorgenti. Poi continui a lavorare con il Simatic Manager e, sarà perché non è mia abitudine, ma non capisco la necessità di cercare un testo quando puoi trovare tutti gli accessi alla variabile con "vai al punto di applicazione". In alternativa, puoi fare il cross reference compelto, usando i filtri, oppure la tabella di occupazione.

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