Sollwertgeber

marvo1

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
ich bin am verzweifeln ich muss einen Sollwertgeber programmieren!
Alles Virtual!
Bei Betätigung des Tasters S1 wird der Sollwert pro Sekunde um vier Werte erhöht. Bei S2 um 4 verkleinert. Der Bereich soll von 0 - 100 gehen.
S0 erteilt die Freigabe zum Verstellen des Sollwertes und wenn ich S1 und S2 gleichzeitig betätige bleibt der sollwert stehen.
( Bei der Sache "Pro sekunde um 4 erhöht bzw verkleinert würde ich denke ich lieber mit nem Timer arbeiten der 250ms hat und den quasie um 1 erhöht, ist denke ich sinnvoller. Um den Wert genauer einstellen zu können)
 
sorry aber ich verstehe beides nicht ...
wie gesagt ich sehe irgendwie den wald vor lauter Bäumen nicht!

Kann mir einer irgendwie nen anfang geben? AWL ist auch ok

danke schon mal
 
Siehe auch das folgende Programmbeispiel für einen Sollwertgeber:

Code:
ORGANIZATION_BLOCK "OB_Hauptprogramm"
TITLE =Hauptprogramm
AUTHOR : Kai
FAMILY : SPSForum
NAME : '40256'
VERSION : 1.0
 
VAR_TEMP
  OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
  OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
  OB1_PRIORITY : BYTE ; //Priority of OB Execution
  OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
  OB1_RESERVED_1 : BYTE ; //Reserved for system
  OB1_RESERVED_2 : BYTE ; //Reserved for system
  OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
  OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
  OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
  OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
END_VAR
BEGIN
NETWORK
TITLE =Sollwertgeber - Taktgeber
 
      U     "Freigabe"; 
      UN    "Takt"; 
      L     S5T#500MS; 
      SE    "Taktgeber"; 
      NOP   0; 
      NOP   0; 
      NOP   0; 
      U     "Taktgeber"; 
      =     "Takt"; 
 
NETWORK
TITLE =Sollwertgeber - Sollwert erhöhen
 
      U(    ; 
      L     "Sollwert"; 
      L     100; 
      <I    ; 
      )     ; 
      U     "Takt"; 
      U     "Taster +"; 
      UN    "Taster -"; 
      SPBNB _001; 
      L     "Sollwert"; 
      L     1; 
      +I    ; 
      T     "Sollwert"; 
_001: NOP   0; 
 
NETWORK
TITLE =Sollwertgeber - Sollwert verringern
 
      U(    ; 
      L     "Sollwert"; 
      L     0; 
      >I    ; 
      )     ; 
      U     "Takt"; 
      UN    "Taster +"; 
      U     "Taster -"; 
      SPBNB _002; 
      L     "Sollwert"; 
      L     1; 
      -I    ; 
      T     "Sollwert"; 
 
_002: NOP   0; 
 
END_ORGANIZATION_BLOCK

Gruß Kai
 

Anhänge

  • OB1_FUP.pdf
    8,9 KB · Aufrufe: 23
Fast identisches Ergebnis....

Ein fast identisches Ergebnis hab ich auch....

Nur mein Timer läßt 4 Impulse pro Sekunde zu.

Gruß
Corosop15
 
Zuletzt bearbeitet:
Zurück
Oben