AWL zu FUP

Hallo,

prinzipiell ist das möglich. Liegt ganz an der Programmierung in AWL.
Stell einfach dein Programmbeispiel ein, und ich guck es mir an...

Gruß
steely
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nicht nur NOP, auch bildsteuerbefehle sind manchmal notwendig ... statt es umzuschreiben, also fehlende befehle anzufügen und einzufügen würd ich die funktion verstehen wollen und das ganze dann in einer anderen sprache zu implementieren....
 
hier ist ein Netzwerk:

// flanke
UN "sec"
R #flanke_01
// timer_01
U "sec"
UN #flanke_01
U(
L #timer_01
L 0
>I
)
SPBN en10
S #flanke_01
L #timer_01
L 1
-I
T #timer_01
en10: NOP 0
// time_out
UN #umschaltkriterium
SPB en11
// reset zähler_umschalt
L 0
T #zaehler_umschalt
L #time_out
T #timer_01
en11: NOP 0
// flanke
U(
L #timer_01
L 0
>I
)
R #flanke_03
// change aggregate
U(
L #timer_01
L 0
==I
)
U(
L #zaehler_umschalt
L #umschaltungen
<I
)
UN #flanke_03
SPBN en12
// wait_time restart
L 30
T #timer_01
// inc zaehler
L #zaehler_umschalt
L 1
+I
T #zaehler_umschalt
S #flanke_03
S #change
L 0
T #betrieb_min_akt
en12: NOP 0

Die anderen haben das gleiche Prinzip
Danke
Waldi
 
dazu müßte er ja erstmal verstehen, was da passiert :rolleyes:

hier die übersetzbare variante:

Code:
*
BEGIN
NETWORK
TITLE =
// flanke
      UN    "sec"; 
      R     #flanke_01; 
NETWORK
TITLE =
// timer_01
      U     "sec"; 
      UN    #flanke_01; 
      U(    ; 
      L     #timer_01; 
      L     0; 
      >I    ; 
      )     ; 
      SPBNB _001; 
      L     #timer_01; 
      L     1; 
      -I    ; 
      T     #timer_01; 
      UN    OV; 
      SAVE  ; 
      CLR   ; 
_001: U     BIE; 
      S     #flanke_01; 
NETWORK
TITLE =

      U(    ; 
      U     #umschaltkriterium; 
      SPBNB _002; 
      L     0; 
      T     #zaehler_umschalt; 
      SET   ; 
      SAVE  ; 
      CLR   ; 
_002: U     BIE; 
      )     ; 
      SPBNB _003; 
      L     #time_out; 
      T     #timer_01; 
_003: NOP   0; 
NETWORK
TITLE =
// flanke
      L     #timer_01; 
      L     0; 
      >I    ; 
      R     #flanke_03; 
NETWORK
TITLE =

      U(    ; 
      U(    ; 
      U(    ; 
      L     #timer_01; 
      L     0; 
      ==I   ; 
      )     ; 
      U(    ; 
      L     #zaehler_umschalt; 
      L     #umschaltungen; 
      <I    ; 
      )     ; 
      UN    #flanke_03; 
      SPBNB _007; 
      L     30; 
      T     #timer_01; 
      SET   ; 
      SAVE  ; 
      CLR   ; 
_007: U     BIE; 
      )     ; 
      SPBNB _00b; 
      L     #zaehler_umschalt; 
      L     1; 
      +I    ; 
      T     #zaehler_umschalt; 
      UN    OV; 
      SAVE  ; 
      CLR   ; 
_00b: U     BIE; 
      )     ; 
      SPBNB _013; 
      L     0; 
      T     #betrieb_min_akt; 
      SET   ; 
      SAVE  ; 
      CLR   ; 
_013: U     BIE; 
      S     #flanke_03; 
      S     #change; 
END_FUNCTION

wobei ich von der absoluten adressierung von "sec" absehen würde, lieber einen zusätzlich IN-Paremeter hinzufügen
 
Zurück
Oben