Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: neagtiven Parameter lesen und auch als diese erkennen

  1. #1
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    ich habe folgendes Problem:
    Ich bin gerade dabei, ein SPS-Programm in TwinCAT zu schreiben. Dieses soll mir in einen Bosch Regler Parameter schreiben, nebenher den Parameterwert lesen und somit überprüfen, wann dieser beschrieben wurde.
    Ich schreibe die Parameter mithilfe des Baustein "FB_SoEWrite" und lese den Parameter mit dem Baustein "FB_SoERead".
    Wenn ich Positive Parameter schreibe, lese und auf Gleichheit prüfe, stellt das überhaupt kein Problem dar.
    Jedoch bei negativen Werten habe ich das Problem. Das Schreiben funktioniert einwandfrei, ich kann auch den geschrieben Wert im Indraworks betrachten. Dies bestätigt mir, dass der Wert angekommen ist. Jedoch beim lesen habe ich das Problem, dass er den negativen Wert nicht erkennt. Ich bin mir zwar sicher, dass er eigentlich den richtigen Wert einließt, jedoch kann TwinCAT diesen nicht als negativ erkennen sondern erkennt diesen als große Zahl (62581 statt -5955). Gibt es hier fertige Bausteine, die mir das Richtig darstellen bzw. umwandeln oder wie kann ich hier am besten vorgehen?

    Ich hoffe mein Anliegen ist einigermaßen klar dargestellt.

    Gruß Benjamin
    Zitieren Zitieren neagtiven Parameter lesen und auch als diese erkennen  

  2. #2
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, also ich habe mir nun eine Lösung zusammengebastelt.

    Das Problem lag in den Datentypen, da ich alle Parameter des Reglers auslesen möchte, variiert meine Datenlänge natürlich. Deshalb habe ich zuerst einfach nur den Datentyp DINT benutzt. Da dieser aber auch größere Werte als INT zulässt konnte die negative Zahl natürlich nicht erkannt werden. Ich haber deshalb nun eine untescheidung gemacht, wenn der zu schreibende Wert ins negative geht (kleiner 0) dann benutze ich eine Variable vom Typ INT wenn aber im positiven, dann vom Typ DINT.

    Falls aber jemand eine elegantere Lösung hat, bin ich sehr erfreut darüber.

    Gruß Benni

  3. #3
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mit einer Typumwandlung INT_TO_DINT(gelesener_INT_Wert) müsste es gehen. Aber was machst Du bei einem Parameter, der auch auf der Bosch-Seite DINT-Format hat? Eigentlich musst Du von jedem Bosch-Parameter das Datenformat kennen, um auf der TwinCat-Seite richtig reagieren zu können. Und dann wäre es doch sinnvoll, auf der TwinCat-Seite von vornherein die gleichen Datenformate zu verwenden.

Ähnliche Themen

  1. ANY als Parameter in SCL
    Von Züttu im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 08.01.2013, 19:43
  2. Antworten: 9
    Letzter Beitrag: 15.12.2010, 12:27
  3. UDT als IN-Parameter am FB
    Von OB21 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.08.2010, 17:14
  4. Antworten: 3
    Letzter Beitrag: 20.07.2009, 17:35
  5. SCL - OB und Array als Parameter
    Von Bluescreener im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 15.02.2008, 15:21

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •