Analog Eingang als int adressieren an einem FB Eingang

mnuesser

Level-1
Beiträge
1.022
Reaktionspunkte
165
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich hab da mal ne banale Frage an die Cracks,
ich möchte an einem FB einen Integer Eingang haben, wo ich von Aussen nur noch die Adresse als int Wert beschalten möchte,
Intern soll der FB dann den PEW"IntegerAdresse" auslesen. Hat da jemand eine zündende Idee wie ich das machen könnte?

Beispiel:

Im FB Konfiguriert unter "Schnittstelle/IN" Adresse,Integer
Von Aussen beschaltet: Adresse:=256;
Im FB wird dann der PEW256 zusammengebastelt und ausgelesen.
 
Hallo,
ich habe gerade kein Step7 zur Hand und kann es somit nicht checken. Mein Ansatz wäre aber : INT-Wert laden, in DWORD wandeln, mit 8 multiplizieren (wegen Bit-Adress-Pointer) und dann das laden "L PEW [mein_DWORD]".

Gruß
Larry
 
Von wollen kann keine rede sein,
einer unserer Kunden hätte dies gerne so... Ich mag sowas eigentlich auch nicht,
aber Kunde ist König :)
Er möchte halt nachher vom Display aus konfigurieren können wo der Analoge Eingang angeschlossen ist...

Danke für die Hilfe, werd das nachher mal mit Plcsim testen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist dem Kunden bewusst, dass es nicht genügt einen Sensor umzuklemmen?
Oder willst du in der Hardwarekonfig alle möglichen Analogeingänge freischalten?
Dir ist bekannt und bewusst, dass wenn eine Karte / Kanal vorhanden, konfiguriert und nicht beschalten ist, dass es da zu Problemen kommen kann?


bike
 
Er möchte halt nachher vom Display aus konfigurieren können wo der Analoge Eingang angeschlossen ist...
Die Auswahlmöglichkeiten, an welchem Analogeingang das Signal angeschlossen sein kann, werden doch wohl begrenzt sein. Ich würde den Operator nicht eine absolute PEW-Adresse eingeben lassen, sondern den Analogeingang aus einer symbolischen Liste auswählen lassen und abhängig vom gewählten Eintrag den zugehörigen PEW lesen. Dann ist das auch in den Referenzdaten zu finden.
Code:
      L     "DB_HMI".SensorChannelSelIndex  // welcher Listeneintrag ist gewählt?
      SPL   ECTB
      SPA   ECTB                            // Listindex 0: "kein Sensor"
      SPA   SEL1                            // Listindex 1: "Modul1 Kanal1"
      SPA   SEL2                            // Listindex 2: "Modul1 Kanal2"
      SPA   SEL3                            // Listindex 3: "Modul2 Kanal1"
      SPA   SEL4                            // Listindex 4: "Modul2 Kanal2"
ECTB: L     0                               // Index 0 oder "unmöglicher" Index
      SPA   CAFB

SEL1: L     PEW  300
      SPA   CAFB

SEL2: L     PEW  302
      SPA   CAFB

SEL3: L     PEW  400
      SPA   CAFB

SEL4: L     PEW  402
      SPA   CAFB

CAFB: T     #tmpAnalogwert

      CALL  FB9 , DB9
       Analogwert:=#tmpAnalogwert

Harald
 
@bike: ja dass habe ich ihm auch erklärt, er meinte es ist sein "standart"
@PN/DP: auch ne gute möglichkeit, erstmal mache ich es so wie er es möchte... trotzdem danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nochmal dazu :
Ich habe den Sinn dieses Vorgehens nicht weiter hinterfragt ...
Es gäbe ja auch noch die Möglichkeit, dass PEW256 selbst zum IN-Parameter zu machen. Ich denke aber mal, das es wahrscheinlich darum geht, dass das PEW256 nur die erste von mehreren Perepherie-Adressen ist, die einzulesen sind (z.B. für einen Counter oder einen FU). In diesem Fall könnten man auch noch mit einem Pointer als IN arbeiten (dann klappt das zumindestens teilweise wieder mit den Step7-Referenzdaten), diesen zerlegt man dann in dem Baustein und arbeitet dann mit diesen Daten ...

Gruß
Larry
 
@Larry: ne, ist wirklich nur als Eingang an einem vom Kunden selbst erstellten Scale-FBs gedacht...
die Frequenzumrichter sind per PB angebunden, und da möchte er nur die PB-Adresse als IN Parameter in INT haben,
und bastelt sich dann per sfcs den ganzen rest selber zusammen...
 
Zurück
Oben