Vai al contenuto
PLC Forum


DB per ciclo FOR


Colonial54

Messaggi consigliati

Salve a tutti

Devo gestire circa 140 valvole ognuna caratterizzata da 8 byte di dati e parametri;

Con la 300 (o 400) utilizzavo un ciclo FOR con 2 possibili sistemi: una DB per ogni valvola e l'indice rappresentava il numero della DB da aprire oppure un altro sistema con una sola DB con tante strutture quante le valvole, il carico dei dati da elaborare, 8 byte avveniva incrementando l'indice di 8;

Ogni valvola aveva il suo nome, es. YV1.01, YV1.12 etc.

Con la 1200 come posso operare? Se creo degli array di strutture, posso si indicizzare, ma non posso dare ad ogni valvola il proprio nome ma solo per es. "Valvole".YV0.[0].Start, "Valvole".YV0.[1].Start etc. quindi tutte le valvole saranno YV0.

Esiste un sistema, con la 1200 per ovviare a questa, per me, inaccettabile lacuna?

Ringrazio anticipatamente.

Link al commento
Condividi su altri siti


Potresti semplicemente chiamare le strutture YV. Avresti quindi YV[0], YV[1], YV[2]...

Non è proprio in nome della valvola ma si avvicina molto.

Oppure indicizzi ancora tutto (impostando il DB "non ottimizzato") in SCL con le istruzioni PEEK e POKE.

Link al commento
Condividi su altri siti

Ti ringrazio Batta

E' proprio come temevo; purtroppo sul capitolato gli item devono chiamarsi esattamente cosi' come indicato dal cliente;

Lo stesso che per risparmiare poche decine di euro su 800.000, ha imposto la 1200 invece della 151-8 e Weintek al posto di Movicon.

Dovro' evidentemente parlarne con lui, oppure creare una FB richiamata 130 volte con le relative 130 DB di istanza.

Saluti

Link al commento
Condividi su altri siti

Come ti ho detto, puoi anche creare un DB con una struttura con i nomi esatti delle valvole. Il DB deve essere "non ottimizzato", e puoi puntare alle variabili con una funzione fatta in SCL usando PEEK e POKE. Il risultato è lo stesso che otterresti con i puntatori in AWL.

Riguardo la scelta del PLC, io non metterei in gara S7-1200 con la 151-8, ma con una S7-1500 (magari una 1510SP, analoga alla 151-8). Potresti ancora utilizzare AWL e i puntatori come nel 300.

Link al commento
Condividi su altri siti

Purtroppo il plc non lo scelgo io, il parametro di scelta e' solamente il prezzo; inoltre molti dei miei clienti, almeno quelli "saputi" proibiscono scl ( e molti addirittura awl), gli altri fanno un casino boia non appena l'infante di turno mette mano al sw e ci trova su scl;

Una domanda, e' le prima volta che uso la 1200 e ne approfitto: a cosa serve e come funziona  MOVE_BLK_VARIANT?

Link al commento
Condividi su altri siti

Se uno proibisce SCL è tutt'altro che "saputo". Se vogliono una cosa che si può fare solo in SCL o AWL ma non vogliono SCL e impongono un 1200, che se lo facciano loro e se ne vadano a quel paese. Non si può, lo so, ti capisco perché capita a tutti noi. Era un modo per esprimerti solidarietà. :-)

Link al commento
Condividi su altri siti

Pienamente d'accordo con Cesare. Non è possibile imporre l'uso di un S7-1200 e vietare l'SCL (probabilmente solo perché loro non sanno programmare in SCL). Se c'è una funzione che si può fare solo in SCL, devono accettare l'SCL. Possono chiedere di ridurre l'uso dell'SCL solo ai casi strettamente necessari, ma nulla di più. Questo lo devono capire.

Se non lo capiscono, puoi sempre fare una funzione in SCL, che poi proteggi in lettura e scrittura, che si occupa solo della gestione dei puntatori. Questa per il cliente diventa come una funzione di sistema, quindi deve solo conoscere come si usa, non cosa c'è dentro.

 

Quote

a cosa serve e come funziona  MOVE_BLK_VARIANT?

Serve per copiare interi array o parti di array, anche tra array diversi tra loro (ma con coerenza dei dati). Nella guida in linea è spiegato piuttosto bene.

Link al commento
Condividi su altri siti

Quote

Se uno proibisce SCL è tutt'altro che "saputo". Se vogliono una cosa che si può fare solo in SCL o AWL ma non vogliono SCL e impongono un 1200, che se lo facciano loro e se ne vadano a quel paese. Non si può, lo so, ti capisco perché capita a tutti noi. Era un modo per esprimerti solidarietà. :-)

 

Tutto giusto, però rimane il fatto che è il cliente che paga ed ha il diritto, entro certi limiti, di scegliere quello che più gli aggrada.

I fornitori hanno la scelta: soddisfare le pretese del cliente o rifiutare l'ordine.

 

Il guaio grosso è che spesso l'ordine lo accetta che non sa cosa comporterà evaderlo; poi spesso si lamenta che i costi son maggiori del preventivato. Ma questo è un film che viene riproposto sempre più freqeuntemente.

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