INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

26.01.2016, 15:50 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2016 11:28 von Y-P.)
Beitrag #1

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter
Hallo zusammen,

kann mir jemand sagen wie der folgende C-Code in LabVIEW aussieht, damit ich entsprechend auf die CRC-Prüfsumme (im Bsp. 7E 0A und 3F C8) komme?
Dafür kenne ich mich in C nicht mehr gut genug aus.... Bahn Wenn nicht, dann muss ich mich wieder einlesen. Confused

Zitat:Die Kommunikation zwischen dem Steuergerät und dem mit RS485 ausgestatteten Frequenzumrichter muss im RTU-Modus ablaufen. Dabei erwartet der ST9000 Umrichter in Werkseinstellung eine Übertragung mit 19200 Baud, 8/N/2. Über einfache Datenübertragung der Bytes im Rohformat ohne weitere Codierung wird gesendet und empfangen. Zusätzliche Steuerzeichen sind nicht notwendig.

Hier zwei Beispiel-Datensätze gesendet an den Frequenzumrichter:
01 07 20 00 00 01 7E 0A (Start-Befehl, dargestellt als Hexadezimalzahlen)
01 07 20 00 00 06 3F C8 (Stopp-Befehl, dargestellt als Hexadezimalzahlen)

Datensätze müssen immer am Stück gesendet werden. Tritt zwischen zwei einzelnen Zeichen eine Pause von mehr als 1½ Zeichen Dauer auf, so ist der Datensatz laut Protokolldefinition ungültig und zu verwerfen.

Kurze Erklärung der Struktur:
01 = Adresse des Frequenzumrichters (wird am Frequenzumrichter über F9.02 eingestellt)
07 = flüchtige Speicherung, Wert wird nicht fest programmiert
20 00 = Steuerparameteradresse
00 01 = Vorwärtsbetrieb
7E 0A = CRC-Checksumme
Weitere Adressen und Funktionen können Sie der Anleitung entnehmen.

Die CRC-Prüfsumme können Sie wie folgt errechnen:

Funktion zur Berechnung der CRC-Prüfsumme (in C):

unsigned int cal_crc16 (unsigned char *data, unsigned int length)
{
unsigned int i,crc_value=0xffff;

while(length–)
{
crc_result ^= *data++;
for(i=0; i<8; i++)
{
if(crc_result & 0x01)
{
crc_result = (crc_value >> 1)^0xa001;
}
else
{
crc_result = crc_result >> 1;
}
}
}
crc_result = ((crc_result & 0xff) << 8) | (crc_result >> 8);

return(crc_result);
}

Beachten Sie bitte, dass die CRC-16-Prüfsumme im Modbus-Format als Little Endian übertragen werden muss, d.h. die niederwertige Hälfte des Datenwortes vor der höherwertigen (in Hexadezimaldarstellung, also die ersten beiden und die letzten beiden Zeichen des Ergebnisses vertauscht werden), damit sie zum Algorithmus des Umrichters (wie oben in der Funktion cal_crc16()) passt.

Quelle: http://www.sourcetronic.com/faq/st9000er...rnsteuern/

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter - Y-P - 26.01.2016 15:50

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Kollmorgen S700 Frequenzumrichter ansteuern Edi70 1 1.604 09.07.2021 08:39
Letzter Beitrag: GerdW
Music FGEN Erzeugung eines Signalverlaufs anhand einer Mathematischen Funktion DavidStefan 11 5.532 29.05.2021 07:03
Letzter Beitrag: GerdW
Question DQMH - Wie kann ich ein Modul anhand von Hardware wechseln TpunktN 2 2.349 25.02.2021 12:54
Letzter Beitrag: TpunktN
  Suche Ideen für den Aufbau eines neuen Programms TpunktN 4 2.857 17.12.2020 11:23
Letzter Beitrag: MScz
  Ermittlung der Parameter eines PT1 Glieds in LabVIEW peter.sigg 1 2.297 10.07.2020 09:10
Letzter Beitrag: kpa
  SVN Revision anhand des commit-Datums ermitteln spacz 2 2.627 28.02.2019 08:09
Letzter Beitrag: th13

Gehe zu: