Back to top

Tipps zur Verarbeitung von 64-Bit-Daten auf Modbus-Kommunikationsgeräten, die nur 32-Bit-Daten unterstützen

17 Mär 2017
Jimmy Coleman

AKD Servoverstärkers Die meisten Parameter des AKD Servoverstärkers haben eine Datengröße von 32 Bit, es gibt jedoch auch 64-Bit-Parameter. Die Modbus-Kommunikation im AKD Servoverstärker verwendet 16-Bit-Register. Für einen 64-Bit-Parameter werden also vier Register benötigt, um die Daten über Modbus zu versenden.

Es gibt zahlreiche PC-Anwendungen und Geräte, darunter SPS und HMIs, die 64-Bit-Daten nicht unterstützen. Was kann man also tun, um 64-Bit-Werte zu lesen und zu schreiben, wenn man mit Modbus und einem Gerät arbeitet, das nur 32-Bit-Werte unterstützt?

Es gibt zwei Möglichkeiten, um einen 64-Bit-Wert auf 32 Bits zu begrenzen. Eine ist, einfach die beiden oberen Register nicht zu verwenden. Bei der zweiten Methode verwendet man die in 32-Bit-Versionen umgewandelten Modbus-Adressen der 64-Bit-Parameter.

In vielen Fällen kann die Positionsskalierung so eingestellt werden, dass die Positionswerte wie PL.FB nicht länger als 32 Bits sind. Wenn Sie zum Beispiel die Positionsskalierung auf 10.000 Zählungen pro Motorumdrehung einstellen, würde es 429.496 Motorumdrehungen erfordern, um den 32-Bit-Positionswert zu füllen. Wenn Sie den Motor nie so lange bewegen, werden die beiden oberen Register des 64-Bit-Positionswerts nicht verwendet.

Für Parameter mit negativem Wert ist das Vorzeichenbit im obersten 16-Bit-Register enthalten. Wenn Sie also einen 64-Bit-Parameter auf einen 32-Bit-Wert begrenzen möchten, indem Sie die oberen beiden Register nicht verwenden, entfernen Sie das Vorzeichenbit und der Wert kann nicht negativ sein. So wie Sie nur die beiden unteren Register verwenden können, um aus einem 64-Bit-Parameter einen 32-Bit-Wert zu machen, können Sie auch nur das untere 16-Bit-Register eines 64- oder 32-Bit-Parameters verwenden. Es gibt zahlreiche AKD-Parameter mit Werten, die nie 16 Bits übersteigen und immer einen positiven Wert haben.

Die Reihenfolge der Modbus-Register ist wichtig. Für den AKD Servoverstärker ist die Modbus-Adressennummer die Adresse des höchstwertigen Registers. Mit PL.FB ist die Adresse 588, was die Adresse des höchstwertigen Registers dieses Parameters ist. Register 591 ist das unterste oder niedrigstwertige Register. Beachten Sie also, welche Register Sie lesen oder schreiben wollen, wenn Sie nur einen Teil der Datengröße des Parameters verwenden. Register 590 und 591 sind die beiden niedrigstwertigen Register (32 Bit) von PL.FB. Modbus Modbus

Die zweite Methode ist, die von 64 Bit in 32 Bit umgewandelten Modbus-Adressen zu verwenden. Die Modbus-Adresse 588 ist zum Beispiel für PL.FB und umfasst vier Modbus-Register (588, 589, 590 und 591). Die Modbus-Adresse 2072 ist für PL.FB und hat eine Datengröße von 32 Bit, einschließlich des Vorzeichenbits. Sie besteht aus zwei Modbus-Registern.

Über den Autor

Jimmy Coleman

Jimmy Coleman

Jimmy Coleman ist ein Senior Systems Application Engineer mit mehr als 20 Jahren Erfahrung in der Antriebssteuerung und Automatisierung. Er verfügt über umfangreiche Erfahrungen mit Feldbus-Kommunikationsprotokollen und der Unterstützung von mechanischen, Servo-, Schrittmotor- und programmierbaren Produkten in verschiedenen Anwendungen. Jimmy ist passioniert darin, Lösungen für interessante sowie herausfordernde Anwendungen zu finden. Er schloss sein Studium an der Virginia Tech 1999 mit einem B.S. in Bauingenieurwesen ab.

Allgemein
Applikationen
Business
Embedded Motion
Engineering
Fahrerlose Transportfahrzeuge (FTF)
Fieldbus
Food Regulations
Geschichte
Installationshinweise
Interconnectivity
Luftfahrt und Verteidigung
Medical
Oil and Gas
Packaging
Robotics
Technologie
Universitätspartnerschaften