# FB aufrufen, DB als Eingangsvariable?



## jackjones (13 Oktober 2008)

Hallo,
kann ich in einem FB als Eingangsvariable einen DB angeben?
Ich muss einen FB mehrmals aufrufen, und jedes mal auf einen anderen DB zu greifen, und auch auf mehrere Werte in dem DB. Daher würde ich den DB gerne laden mit:

AUF DBXX

Kann ich den jeweiligen DB irgendwie in den Eingangsvariablen deklarieren? DBW und DBD geht ja, aber geht auch ein ganzer DB? Als Char, evt?


So eventuell? 

AUF #DB_IN

Wie muss #DB_IN deklariert sein? Als Char?


----------



## OHGN (13 Oktober 2008)

Du musst #DB_IN als Block-DB deklarieren, dann funktioniert das so wie Du Dir das vorstellst.
.


----------



## AUDSUPERUSER (13 Oktober 2008)

Oder einen Eingang Int für die DB Nummer


```
L I_DBNummer
T Temp_DBNummer
 
Auf DB [Temp_DBNummer]
```
 
Gruss
Audsuperuser


----------



## jackjones (13 Oktober 2008)

```
L I_DBNummer
T Temp_DBNummer
 
Auf DB [Temp_DBNummer]
```
mhh in der Zeile 
Auf DB [Temp_DBNummer] 

wirklich mit den eckigen Klammern? Den Ausdruck kenne ich noch garnicht. Oder  :


```
AUF DB#Temp_DBNummer?
```


----------



## OHGN (13 Oktober 2008)

jackjones schrieb:


> ```
> L I_DBNummer
> T Temp_DBNummer
> 
> ...


 Probier es einfach aus und Du wirst sehen: Es funktioniert so wie AUDSU geschrieben hat.


----------



## AUDSUPERUSER (13 Oktober 2008)

```
L     10
      T     #dbnr
      AUF   DB [#dbnr]
```
 
Funktioniert bei mir. DB10 stehet im DB-Register
Ich habe keinen Eingangsparameter gemacht, sondern fest 10 geschrieben, muss aber auch funktioniern

Gruss
Audsuperuser


----------



## jackjones (13 Oktober 2008)

Super, Danke!!!

Nun noch eine letzte Frage zu dem Thema, eventuell hast du noch lust mir diese zu beantworten.


```
L 10
T #temp_DB

AUF 5[#temp_DB]
```

Würde damit der DB510 aufgerufen werden?


----------



## OHGN (13 Oktober 2008)

jackjones schrieb:


> Super, Danke!!!
> 
> Nun noch eine letzte Frage zu dem Thema, eventuell hast du noch lust mir diese zu beantworten.
> 
> ...


Hast Du kein Step7 am Start? 
Durch einfaches selbstprobieren würdest Du doch herausbekommen dass das nicht geht.
.


----------



## jackjones (13 Oktober 2008)

Ne bin noch nicht in der Firma. 
Und später kann ich auch nicht "der" Anlage rumprobieren. Die darf auf keinen Fall in Stop gehen ;p

Schade das es nicht geht...
Aber ich könnte ja folgendes machen:


```
L #in_DB        //Als INT Wert=10
L 500
+I
T #temp_db   //Ergibt 510, sofern in_DB 10 ist...

AUF [#temp_db]
```


----------



## AUDSUPERUSER (13 Oktober 2008)

jackjones schrieb:


> Ne bin noch nicht in der Firma.
> Und später kann ich auch nicht "der" Anlage rumprobieren. Die darf auf keinen Fall in Stop gehen ;p
> 
> Schade das es nicht geht...
> ...


 
Müsste so funktionieren, aber wenn die SPS nicht auf Stop gehen soll, schau dass Du den entsprechen DB auf der SPS hast, oder das die OBs vorhanden sind.

Gruss
Audsuperuser


----------

