Vai al contenuto
PLC Forum


Creare Un Blocco Parametrizzabile


Messaggi consigliati

Inserito:

Buongiorno,

sono nuovo del forum ma me la cavo abbastanza bene con il 300

premetto che non sono andato in cerca della risposta nei manualio altro perchè questo forum mi piace questo forum e perchè non usarlo?

la mia domanda è questa :

mi capita spesso di usare delle funzioni (programmi creati da me) comuni a tante macchine con la differenza soltanto nei parametri ( tempi, contatori ecc..)

E' possibile creare dei blocchi tipo quelli della siemens (es. FC105) per poi richiamarli nel programma quando su vuole? Come si fa?

Grazie


Inserita:
E' possibile creare dei blocchi tipo quelli della siemens (es. FC105) per poi richiamarli nel programma quando su vuole? Come si fa?

Certo che si può. Direi che questo è uno dei punti di forza dei plc Siemens.

Però temo la soluzione migliore per imparare sia leggere i manuali.

Vedi, a me fa piacere che il forum ti piaccia, ma tenere un corso su Step7 sarebbe un po' troppo lungo e complicato.

Devi prima studiare i manuali, e poi porre delle domande specifiche su quello che non hai capito.

Inserita:

oK, grazie .

Appena ho un po' di tempo mi guarderò il manuale e casomai se fossi in diffoltà non esiterò a scrivere.

Fino ad ora ho sempre copiato decine e decine di segmenti per ripetere la stessa e tortuosa funzione ma se riusciro a creare qualche blocco personalizzato tutto si semplifica

grazie infinite e buona giornata

Inserita: (modificato)

bizzaro,

Creare un blocco parametrizzabile e' molto semplice. Sarebbe piu' facile di farlo che di spiegare :)

Dunque, ti do' un input veloce veloce..

Mettiamo che crei un nuovo FC.. FC8, lo chiami test. Poi lo apri in editing. Quando sei sulla videata del editor LAD/STL/FBD, sul pannello destro in alto trovi il box d'interfaccia del blocco. Il box e' diviso in due panes. A sinistra trovi l'albero del componente interfaccia e a destra la descrizione dei sotto oggetti.

 
   +---+                        
  +|   |- Interface           |   Name       Data Type   Coment 
   +-+-+                      | 
     |                        |
     |   +-+                  |
     +---| |- IN              |
     |   +++                  |
     |                        |
     |   +-+                  |
     +---| |- OUT             |
     |   +++                  | 
     |                        |
     |   +-+                  |
     +---| |- IN_OUT          |
     |   +++                  |
     |                        |
     |   +-+                  |
     +---| |- TEMP            |
     |   +++                  |
     |                        |    
    +++  +-+                  |
    |-|--| |- RETURN          |
    +++  +++                  |
          |   +--+            |
          +---|  | RET_VAL    |
              +--+            |
Allora, andiamo a creare un blocco con 1 parametro di input (oggetto IN) e 1 parametro di output (oggetto OUT) Quindi, col mouse vai sull'albero dell'interfaccia e fai un click su IN, vedi che questo ti si segnala e a destra ti si evidenzia una riga vuota. Sotto la colonna Name (nome) scrivi il nome della variabile, in questo caso la chiamiamo INPUT. Sotto la colonna Data Type( tipo dato), facendo un click col mouse ti appare una cobo box, aprendo il box ti vengono visualizzati la pila col elenco di tutte le variabili disponibili. Seleziona Int. Poi sotto la colonna commento scrivi, variabile input. Poi fai click su OUT, fai la stessa cosa, dichiari la variabile OUTPUT del tipo Int, commento variabile output. A questo punto sull'albero del box a sinistra ti trovi le due variabili sotto gli oggetti IN e OUT. Sotto RETURN ti trovi per default la variabile RET_VAL, ma la lasci stare per adesso.
   +---+
  +|   |- Interface           |   Name       Data Type   Coment 
   +-+-+                      |   INPUT      Int         variabile input
     |
    +++  +-+
    |-|--| |- IN
    +++  +++
     |    |   +--+
     |    +---|  | INPUT
     |        +--+
     |
    +++  +-+
    |-|--| |- OUT
    +++  +++
     |    |   +--+
     |    +---|  | OUTPUT
     |        +--+
     |
     |   +-+
     +---| |- IN_OUT
     |   +++
     |     
     |   +-+
     +---| |- TEMP
     |   +++
     |        
    +++  +-+
    |-|--| |- RETURN
    +++  +++
          |   +--+
          +---|  | RET_VAL
              +--+
Una volta creati i due parametri, scrivi il codice sotto per il blocco:
      L     #INPUT
      L     1
      +I    
      T     #OUTPUT
      L     #OUTPUT
      L     10000
      <I    
      BEB   
      L     0
      T     #OUTPUT
Salva, e chiude. Vai sull'OB1, apre in editing, e richiama l'FC8: Quando editi il richiamo del blocco FC8, test, ti appare la forma sotto con i parametri INPUT e OUTPUT in rosso:
       CALL  "Test"
       INPUT :=
       OUTPUT:=
Allora appoggi due MW, in questo esempio la 160 e 162, con nomi simbolici InputVar e OutputVar.
       CALL  "Test"
       INPUT :="InputVar"                   // MW 160
       OUTPUT:="OutputVar"                  // MW 162
Quando editi, andando col cursore del mouse sui nome delle variabili, ti appare la finestra tool tip mostrandoti il tipo di data e commento, e clickando sopra, ti viene anche visualizzato il messaggio di referimento sotto. Salva e chiude. Scarica alla CPU, virtuale o reale i due blocchi, prima l'FC8 e poi l'OB1. Se editi una VAT, vedi che dando dei valori in input alla MW160, ricavi dalla MW162 in output il valore della MW160 incrementato di 1. Se il valore nella MW160 e'> 9999 allora la MW162 =0. Comunque il proposito del codice non ha importanza, vale solo come esempio.
MW   160    "InputVar"         DEC    10     
MW   162    "OutputVar"        DEC    11

Adesso potresti vedere di leggerti il manuale e poi, comminciare a scrivere blocchi parametrizzabili a montagna ;)

Modificato: da Savino
Inserita:
facendo un click col mouse ti appare una cobo box, aprendo il box ti vengono visualizzati la pila col elenco di tutte le variabili disponibili.

combo box

Inserita:

Grazie mille anzi 10000....

oggi purtroppo però non ho tempo di provare,

ma voglio imparare e se ci sono dubbi vi contatterò

saluti

Inserita:

bizzaro,

Vai tranquillo, non ce ne bisogno di correre ;)

PS. Forum Card: un tuo piccolo contributo aiuta la nostra associazione a crescere!!!

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