Analogwertverarbeitung bei Freelance 2013 von ABB

Erdling

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe SPS-Profis,

dies ist mein erster Beitrag und ich möchte euch mal direkt mit ein paar Fragen bombardieren. Und zwar überarbeite ich momentan eine Anlage im Technikums-Maßstab, welche vom Prozessleitsystem Freelance 2013 von ABB gesteuert wird. Bei der Konfiguration der Eingangs-und Ausgangskarten sind mir Ungereimtheiten aufgefallen, welche ich mir nicht mit der Systemhilfe erklären kann. Die analogen Baugruppen sind nicht von ABB und ich war daher der Meinung, man müsse über die Einstellungen im E/A-Editor (Byte, Bit, Länge) angeben, wie dort genau die Digital-Analog Wandlung vollzogen wird. Am Beispiel der Ausgangskarte würde ich gerne mein Problem dabei erklären:

In der Betriebsanweisung für die Ausgangskarten sind von 16 Bits für die Auflösung eines Datenwortes die ersten 4 als irrelevant angegeben, diese sind also stets 0. Die nächsten 11 Bit (2[SUP]0[/SUP]...2[SUP]10[/SUP]) werden für die Auflösung des Messwerts verwendet, das letzte Bit dient als Vorzeichenindikator. Nun würde ich erwarten, dass die Karte nur Rohwerte im Bereich von 0...1023 annehmen könnte. Wenn ich einen Bit-Offset von 0 und eine Länge von 16 angebe, dann scheint die Karte jedoch Werte von 0...2[SUP]16[/SUP]-1 zu erwarten und auch darstellen zu können (vorausgesetzt ich ändere die Skalierung der analogen Ausgangsgröße im Programmcode auf diesen Wertebereich). Bereits hier frage ich mich, wie die Karte überhaupt solch einen Wert annehmen kann, wenn nur Werte bis 2[SUP]10[/SUP] darstellbar sein sollen. Stelle ich jetzt einen Bit-Offset von 0 und eine Länge von 15 ein und ändere im Programm die Skalierung meiner Ausgangsgröße auf 0...2[SUP]15[/SUP]-1 so klappt es wiederum nicht.

Dadurch, dass die ersten 4 Bit irrelevant sein sollen habe ich nun einen Bit-Offset von 5 eingestellt und eine Länge von 11. Diese Einstellung ist neber der Bit=0|Länge=16 Einstellung die einzige die für mich erkennbar funktioniert. Hier wird dann ein Wertebereich von 0...2047 erwartet.
Meine Fragen lauten, ob ich das Prinzip mit dem Bit-Offset und der Länge richtig verstanden habe und wie/ob es sein kann, dass Bits der Ausgangskarte wie das Vorzeichenbit für die Messwertdarstellung missbraucht werden. Das elektrische Signal wird in einem Bereich von 0...20 mA ausgegeben und alle Angaben beziehen sich auf den UINT-Datentypen.


Ich bedanke mich im Voraus für jegliche Antwort und wünsche noch einen schönen Tag.


Mit freundlichen Grüßen,
Erdling
 
Hallo Erdling,

so wie ich das sehe, liegt das Problem nicht auf der Freelance Seite.
Welche EA-Module (Hersteller) setzt du den ein?
Ich habe mit Freelance schon die unterschiedlichsten EA-Module (Siemens, Bartec, P&F,..) gekoppelt.
Das Problem liegt meist wirklich in der Signalbewertung und Umwandlung.
Mein Tipp, erstell für die Signalanpassung einen eigenen UFB.

Gruß

T.R.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Erdling!

Du bist offensichtlich nicht auf den Kopf gefallen und schon so nah dran an der Enträtselung.
Die 4 für den Zahlenwert irrelevanten Bits dürften die 4 niederwertigsten Bits 2^0...2^3 sein.
Irrelevant muss nicht bedeuten, dass sie immer 0 sind. Bei AE-Karten sind es oft StatusBits.
Du gehst davon aus, dass Du es mit Unsigned Integer zu tun hast.
Ich glaube, Du solltest in Integer denken und in ZweierKomplementDarstellung der negativen Zahlen.
Unabhängig davon, ob Du es mit negativen Werten zu tun hast und ob bei Deinen Karten negative Spannungen oder Ströme überhaupt gemessen bzw. ausgegeben werden können.
Das höchstwertige Bit einer IntegerZahl wird gerne als VorzeichenBit (oder VorzeichenIndikator) bezeichnet, was zwar richtig gemeint ist, aber sehr gerne auch falsch verstanden wird.
Bei positiven Zahlen inkl. 0 ist das Bit immer 0 und bei negativen Zahlen immer 1. D.h. man kann an diesem Bit zwar ablesen, ob die Zahl negativ ist, ABER es genügt nicht, nur dieses Bit umzuknipsen, um das Vorzeichen zu invertieren, ohne damit gleichzeitig den Betrag der Zahl zu verändern.
Das wäre eine naheliegende Deutung des Wortes VorzeichenBit, die jedoch (fast) nie gemeint ist.
Die Belegung der Bits mit den "irrelevanten" Stellen erklärt sich daraus, dass man (früher, als noch jedes Bit bzw. Byte usw. richtig Geld gekostet haben) die Informationen möglichst "platzsparend" gepackt hat.
Du kannst die Zahlen -2048...2047 ausgeben, musst sie aber mit 16 multiplizieren (bzw. um 4 Stellen nach links schieben), bevor Du sie an den AA ausgibst.
Bei dem Offset von 5 vertust Du Dich - glaube ich - versuch's mal mit 4.

VorzeichenBit.jpg
 
Zurück
Oben