Vai al contenuto
PLC Forum


Quali sono le differenze tra una programmazione fatta con software siemens step 7 tia portal e software omron


Giovanni Segreto

Messaggi consigliati

Mi scuso per aver ormai ampiamente sporcato la discussione ma tant'è ..ormai faccio un altro tentativo..

 

Batta, il discorso multiistanza è chiaro(sono andato a vedermi anche l'.). 

Dove mi incarto ora è qui:

 

Tia1.thumb.png.b7db0b3681a7c0f64786b62989498654.png

 

o meglio, in qualche modo dovrò poter dire all'FB dell'asse 1 per esempio che l'asse che si vuole comandare è proprio l'asse 1(credo). 

Ho provato a creare una variabile come input chiamata 'Asse' (vd foto) ma non trovo nella lista la dicitura 'To_Axis_PTO . 

Dove mi perdo? o meglio, come dico poi all'FB qual'è l'oggetto tecnologico che devono prendere in considerazione? 

Link al commento
Condividi su altri siti


Il parametro dell'asse lo devi passare come IN/OUT.
Per la dichiarazione, come tipo di dato, devi scrivere il tipo di oggetto tecnologico che hai usato per quell'asse: TO_SpeedAxis, TO_PositioningAxis. TO_SynchronousAxis, e così via.

Qui sotto vedi un esempio di come dichiarare le variabili nel blocco FB.
image.png.941021f6917a57c4db84fd8801c19065.png

 

E qui come si presenta invece il richiamo del blocco FB.

image.png.05544c33b0080d035267166a3771bf14.png

Link al commento
Condividi su altri siti

@batta Dato che ci siamo, nella mia immensa ignoranza non ho mai capito perchè esistano le variabili In,Out,InOut. 

Mi spiego: so a cosa servono ma mi sono sempre chiesto : che vantaggio puó avere dichiarare una variabile ‘solo’come in? E ‘solo’come out? Perchè non si dichiarano tutte InOut e basta? 

 

Mi è capitato, dentro l’FB di cui parlavo sopra, di dover eseguire un’autoritenuta di una variabile dichiarata come Out. Mettendo la bobina tutto ok, nel mettere il contatto il sistema mi avvertiva giustamente che non la potevo andare a ‘leggere’ e che quindi dovevo dichiararla come InOut. 

Forse ho sbagliato io ad usare una autoritenuta ‘direttamente’ su un bool dichiarato come Out. 

Modificato: da step-80
Link al commento
Condividi su altri siti

La distinzione ha una motivazione, diciamo, filosofica, ma anche motivazioni pratiche.

E, comunque, distinguere tra cosa può essere solo letto, solo scritto o letto e scritto, secondo me aiuta.

Poi, se richiami un blocco, ad un parametro di ingresso puoi collegare, volendo, contatti in serie o in parallelo. Ad un parametro OUT oppure IN/OUT, ovviamente, non lo puoi fare.

C'è anche un'altra grande differenza: se passi come parametro una struttura, nel caso di parametri IN o OUT viene replicata l'intera struttura, che poi vedi anche nel db di istanza. Passando invece una struttura come IN/OUT (come nell'esempio degli assi), non viene replicata tutta la struttura, ma viene usato un puntatore. Se provi ad aprire il db di istanza, vedi subito cosa intendo.

Link al commento
Condividi su altri siti

@batta ti chiedo gentilmente lumi. Ovviamente anche a chiunque altro voglia intervenire.

 

Dunque TIA V11, quindi vecchiotto.

Ho 16 bool in un DB che voglio inviare ad una cpu remota con l'istruzione PUT. Allego immagine del DB.

 

1801697960_TIA2.thumb.png.7df48430e26c4f666bece18f26ea8c84.png

 

Ovviamente volevo inviare i 16 bool insieme ma il blocco PUT non mi permette(o non sono capace) di inserire nel parametro SD_1 i 16 bool cosi come sono. Cercavo una istruzione per trasferirli in una word ma non ho trovato nulla che facesse al caso mio e quindi li ho trasferiti bit per bit(vedi immagine)

 

323456869_TIA1.thumb.png.cce06f50b1e6e0c63ac8278fe11e7903.png

Come vedete l'indirizzo mi viene dato in Giallo in quanto mi dice che l'area di dati non è stata trovata. In compilazione mi escono avvisi ma nessun errore. 

Sul blocco poi ho inserito la word :

 

745612699_TIA3.png.a5102e2b5e8e2b3b6ff20ae93730b74e.png

 

C'era un sistema piu elegante per fare ciò che ho fatto? 

Ti Sento spesso parlare di GHATER o SCATTER , ma non le trovo, credo sia per la versione datata . Potevano fare al caso mio?

 

Ho sentito dire spesso che Siemens ha i bit 'al contrario' ...Questo significa che quando ricevo i dati sull'altra cpu devo invertire qualcosa o l'ordine viene rispettato?

 

Grazie anticipatamente come sempre

Modificato: da step-80
Link al commento
Condividi su altri siti

13 ore fa, step-80 scrisse:

Ho sentito dire spesso che Siemens ha i bit 'al contrario' ...Questo significa che quando ricevo i dati sull'altra cpu devo invertire qualcosa o l'ordine viene rispettato?

quando punti a una DWord il numero di Word a cui punti non è la Word meno significativa ma la Word più significativa, la seguente è quella meno significativa, se sei abituato a Mitsubishi in cui quella a cui punti è quella meno significativa in Siemens è il contrario

Link al commento
Condividi su altri siti

20 ore fa, step-80 scrisse:

C'era un sistema piu elegante per fare ciò che ho fatto? 

Ti Sento spesso parlare di GHATER o SCATTER , ma non le trovo, credo sia per la versione datata . Potevano fare al caso mio?

Ti confermo che Gather e Scatter non ci sono nella tua vetusta versione di TIA.
Nel DB11, i 16 bit che devi inviare li potresti dichiarare come una STRUCT di 16 bit, anziché come una word.
Poi, nel richiamo di PUT, metti il nome della struttura in SD_1.

Se, per non so quali motivi, desideri mantenere la Word, cerca nella guida in linea "sovrapposizione con AT".
Io penso però che se trasformi la word in struttura di 16 bit, sia tutto più chiaro.

 

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