# Denkfehler oder Fehler in dre Simulation



## alb (16 August 2011)

Hallo,
ich bin ein ziemlicher neuling und übe momentan mit der Demoverson von TRysim. Jetzt passiert etwas das ich nicht verstehe.
Die Situation:
Ich experimentiere mit FBs, DBs, parameterübergabe herrum.
im 0B1 wird dem Merker 0.1 eine 0 zugewiesen.

     UN M   0.1
      R  M   0.1

im nächsten netzwerk des OB1 wird der FB1 mit dem DB1 instanziert aufgerufen. Der Merker m 0.1 wird als eingang gesetzt, Die Rückgabevariable led wird mit dem Ausgang A 0.5 vedrbunden. Daran hängt eine led.

      U  M   0.1
      =  L 20.0
      BLD 103
      CALL FB  1,DB  1                  
      test_in := L 20.0                 
      led     := A   0.5                
      NOP 0

Der FB1 tut nichts weiter als test_in an led durchreichen.

      U  #test_in
      =  #led
Erwartetes verhalten:
Über m 0.1 läßt sich einstellen ob die led leuchtet oder nciht.

beobachtetes verhalten:
m 0.1 ist 0 , Baustein übertragen, Simulation starten, led dunkel -> klappt
r m 0.1 durch s m 0.1 ersetzen, baustein übertragen, simulation starten, led leuchtet -> klappt
s wieder durch r ersetzten, baustein übertragen, simu starten, led leuchtet weiter -> klappt nicht. erst nachdem ich die sps resetet habe, wird led wieder dunkel. warum ist das so? Simulationsfehler oder Denkfahler bei mir?

noch eine Frage:
Der Aufruf von FB1 hat so eine komische form, weil er in fup erzeugt und in awl rückübersetzt wurde. ein reiner awl aufruf könnte z.B. so aussehen:

      CALL FB  1,DB  1                  
      test_in := M 0.1                 
      led     := A   0.5                

Währe dieser Aufruf richtig und fachgerecht? KAnn man sich die zusätzlichen befehle, welche die darstellbarkeit in fup gewährleisten irgendwie plausiebel erklären? 

gruß und dank im vorraus


----------



## Blockmove (16 August 2011)

alb schrieb:


> s wieder durch r ersetzten


 
Da liegt dein Fehler
Zum Reseten sollte es heissen:


```
U M0.1
R M0.1
```
 
Alternative:


```
SET
S M0.1 // Setzt M0.1
 
SET
R M0.1 // Resetet M0.1
```
 

Gruß
Dieter


----------



## Samiel (16 August 2011)

Der Fehler liegt hier


> UN M 0.1
> R M 0.1


Du willst M0.1 rücksetzen, nur wenns Null ist, wenn M0.1 = TRUE, dann ändert sich nichts. Um feste Potentiale zu erstellen, wäre folgendes angebracht:


> U Low
> R Low
> UN High
> S High


----------



## alb (16 August 2011)

danke, hat geholfen


----------



## bike (16 August 2011)

Samiel schrieb:


> Der Fehler liegt hier
> 
> Du willst M0.1 rücksetzen, nur wenns Null ist, wenn M0.1 = TRUE, dann ändert sich nichts. Um feste Potentiale zu erstellen, wäre folgendes angebracht:



Also es hat funktioniert wie Dieter geschrieben hat.
Alternativ:

VKE = 0
U M0.1
UN M0.1
= M0.1

VKE = 1
O M 0.1
ON M0.1
= M 0.1
Und das zyklisch im OB 1 aufrufen und es funktioniert auch mit dem VKE 

bike


----------

