Vai al contenuto
PLC Forum


Interpretare una stringa come un tag


MaxT1978

Messaggi consigliati

On 3/2/2022 at 1:05 PM, batta said:

Quindi, forse, non è tanto il TIA che ha problemi di fondo, ma sei tu che hai problemi di fondo con il TIA.
Ho capito che il TIA non ti piace ma, se lo devi criticare, fallo per i suoi reali problemi (mai detto che non ne abbia), non per quelli che ti inventi tu.

Non mi invento proprio un bel nulla! Tant'è che ho ammesso che mi ero erroneamente confuso con il refresh dei dati che pensavo non li mostrasse perchè era enormemente lento e lo confrontavo con altro software di sviluppo su medesimo codice e hw del PC e lì sì che era immediato. Non c'è niente di personale nelle mie considerazioni. Ne ho parlato anche con altri colleghi e anche loro lamentano pesantezza, lentezza, ecc.  Il debug SCL, mi dispiace, non sono l'unico a lamentarne la debolezza, basta vedere anche questo topic e se non bastasse fai un giro sul forum della Siemens. Mi dispiace molto che tu sostenga il contrario.

On 3/2/2022 at 1:05 PM, batta said:

"vecchia" programmazione con indirizzi assoluti e puntatori, dove se ti cambia un indirizzo non funziona più nulla?

ma vedi che non riusciamo proprio a capirci...io non parlo mica dell'ambiente Siemens e basta. Io sto parlando di un'istruzione banalissima che però il TIA  ha introdotto solo dalla v15 ovvero l'ADR(nameTag) che in TIA è il REF_TO. Se guardi nel forum della Siemens chi ne parla, ne parla come un salto di qualità verso una programmazione più di alto livello e inoltre in molti la aspettavano. E non stiamo parlando di 300/400, ma di 1500. Con un'istruzione del genere, che ti cambi l'indirizzo non ti interessa minimamente, ovviamente! Solo che purtroppo non essendoci l'istruzione SIZE_OF(nameTag) sei limitatissimo nel suo uso e l'istruzione SERIALIZE (con la quale in determinate condizioni puoi ricavarti quanto prodotto dal size_of)  è secondo me troppo scomoda rispetto al SIZE_OF stessa.  Mi sembra che quando ti rivolgi ai puntatori per te voglia solo dire AR1 e AR2. Per me vuol dire sia questi, che appunto però senza poter accedere in debug allo status register e agli indirizzi AR1 e AR2 che si hanno nei vari STEP, si è molto limitati che quelli che prevedono il calcolo dell'indirizzo assoluto tramite la parola chiave POINTER_TO/REF_TO. Con queste ultime istruzioni, assieme anche all'istruzione SIZE_OF quando serve, puoi fare altro che spostamenti di dati come intendi dire tu...

Quindi io credo che siamo arrivati al punto di fondo che determinati modi di programmazione richiedono certe performance che altri non le richiedono. Il TIA non è efficiente in entrambe, tutto qua. Se ritieni il contrario, non so cosa farci...

Max1978

Link al commento
Condividi su altri siti


2 ore fa, MaxT1978 ha scritto:

pensavo non li mostrasse perchè era enormemente lento

Devo mandarti un filmato? Il refresh dei dati è istantaneo.

 

2 ore fa, MaxT1978 ha scritto:

Se ritieni il contrario, non so cosa farci

Saranno almeno due anni che non sviluppo più un nuovo software usando puntatori. E ne sono felice.
Fino ad oggi, tutto quello che in passato ho fatto con i puntatori ora lo faccio senza. Ed è tutto più semplice e, soprattutto, più facile da capire e da debuggare.
Per esempio, se ti organizzi i dati in un array, non ti interessa l'istruzione size_of, perché puoi usare upper_bound e lower_bound.
Che poi, anche la mancanza di size_of si può aggirare, per esempio, andando a leggere l'indirizzo dell'ultima variabile della struttura, o della prima variabile della struttura successiva.
Però, ripeto: con le nuove istruzioni presenti nel TIA e nelle cpu 1200/1500, non ho più sentito la necessità di usare i puntatori.
 

Link al commento
Condividi su altri siti

Quote

Se guardi nel forum della Siemens chi ne parla, ne parla come un salto di qualità verso una programmazione più di alto livello e inoltre in molti la aspettavano

Perchè non chiedi alla Siemens ?

Io in tanti anni non ho mai avuto bisogno di complicarmi la vita oltre a quello che ti complicano già gli altri.

Per fare quello che dici tu devi poterti interfacciare con i files del progetto, scrivere un parser e scanner text in python o C# 

Non capisco l'utilità ....spiegati meglio

Link al commento
Condividi su altri siti

On 3/3/2022 at 5:42 PM, batta said:

Devo mandarti un filmato? Il refresh dei dati è istantaneo

ti ho anticipato (https://os5.mycloud.com/action/share/1d73b431-f1c5-490d-9432-d1b560de2a2d)

Si vede che alla sx c'è il DB di istanza dove lì'uscita o_udt_NodeResult.ws_String viene aggiornata immediatamente ad ogni blocco sul breakpoint, mentre sulla destra, dove si vede l'FB online, i campi vengono aggiornati solo appena entrati al primo livello di stack (io_i_index=2) dopo di che vengono frizzati. Ora dovrò indagare con Siemens se è un problema legato alla visualizzazione quando usi lo stack oppure se c'è qualche altro dettaglio che mi sfugge. 

Grazie comunque per il confronto che mi ha fatto piacere.

Max1978

Link al commento
Condividi su altri siti

3 ore fa, MaxT1978 ha scritto:

Grazie comunque per il confronto che mi ha fatto piacere.

Ha fatto piacere anche a me.
A tal proposito, vorrei chiarire che il mio modo di scrivere può sembrare polemico, ma non era mia intenzione esserlo.

Link al commento
Condividi su altri siti

On 3/7/2022 at 1:59 PM, walterword said:

Non capisco l'utilità ....spiegati meglio

penso di aver spiegato abbastanza bene l'utilità e lo scopo nella prima pagina del topic.

Max1978

Link al commento
Condividi su altri siti

Dovresti informarti e studiare il sistema Openess che permette di interagire plc, hmi da codice C# con visual studio.

Dicono che si può automatizzare ed interagire con i vari sistemi tramite librerie e dll ovviamente fornite da Siemens.

Quello che intendi fare tu se ho capito bene ha dei limiti in quanto il progetto viene compilato prima di essere caricato ed interagire a runtime come vorresti fare credo che sia 

difficile.

comunque facci sapere eventuali progressi. E rilassati .....   

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