neagtiven Parameter lesen und auch als diese erkennen

Benni

Level-1
Beiträge
73
Reaktionspunkte
0
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
 
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
 
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.
 
Zurück
Oben