![]() |
CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter (/Thread-CRC-Berechnung-in-LabVIEW-anhand-eines-C-Code-Beispiels-Suche-nach-Frequenzumrichter) |
CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter - Y-P - 26.01.2016 15:50 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.... ![]() ![]() 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. Quelle: http://www.sourcetronic.com/faq/st9000er-frequenzumrichter-mit-modbus-rs485-seriell-fernsteuern/ Gruß Markus RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - Freddy - 26.01.2016 16:40 Hallo Markus, ich habe da mal was gelesen, könnte Dir weiterhelfen. https://decibel.ni.com/content/docs/DOC-11072 Gruß Freddy RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - GerdW - 26.01.2016 16:42 Hallo Markus, bei Wikipedia findet sich dieses Code-Beispiel (erster Treffer bei der Suche nach "crc a001"): Code: const ![]() Ich hab's mal "wortwörtlich" nach LabVIEW umgesetzt: [attachment=55160] Es kommen die von dir erwarteten Werte heraus… RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - jg - 26.01.2016 16:52 Modbus? RTU? Dafür gibt es bei NI 2 APIs zum Download!!! Wozu sich also mit der CRC rumärgern, gibt es fertig! z.B. hier: http://www.ni.com/example/29756/en/ Gruß, Jens [attachment=55161] EDIT: Code zur CRC ist nur kopiert - ist nicht von mir... RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - Lucki - 26.01.2016 23:05 Dem Programmierer des von Jens kopierten Beispiels scheint aber bei der inneren Schleife plötzlich entfallen zu sein, dass es auch For-Schleifen gibt. Also wenn, dann schon so: [attachment=55163] RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - Y-P - 27.01.2016 10:09 Vielen Dank Euch allen. Das mit der CRC-Prüfsumme funktioniert nun. Habe es noch etwas erweitert und die CRC-Prüfsumme an den String angefügt. [attachment=55164][attachment=55165] Mit den Modbus-VIs komme ich aber noch nicht so klar. Wie bekomme ich nun meinen erzeugten Hex-String an den Frequenzumrichter geschickt? ![]() Gruß Markus RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - jg - 27.01.2016 10:34 (27.01.2016 10:09 )Y-P schrieb: Vielen Dank Euch allen. Das mit der CRC-Prüfsumme funktioniert nun.Dein Modbus-String-Bsp ist extrem ungewöhnlich. Das ist eine Anfrage für Modbus Function Code 7, "Read Exception Status". Und damit sollen irgendwelche Einstellungen vorgenommen werden? Das ist mir noch nicht untergekommen. Hast du keine gescheite Doku vom Hersteller? Was du uns ins Forum kopiert hast, ist ja nur das hier aus den FAQ. (27.01.2016 10:09 )Y-P schrieb: Wie bekomme ich nun meinen erzeugten Hex-String an den Frequenzumrichter geschickt?Write VISA... Gruß, Jens RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - Lucki - 27.01.2016 10:59 (27.01.2016 10:09 )Y-P schrieb: Habe es noch etwas erweitert und die CRC-Prüfsumme an den String angefügt.Die CRC-Prüfung wird ja sowohl zum Erzeugen der Prüsumme als auch zum Prüfen eines Strings mit Checksumme verwendet. Das Prüfen erfolgt einfach so, dass bei Erstellung der Checksumme von einen String mit bereits angehängert Checksumme der Wert Null herauskommen muss. Aus diesem Grunde würde ich das CRC-Sub-Vi lieber so machen, dass es sich für beide Aufgaben gleichermaßen verwenden läßt. Also nicht schon im SubVI die Prüfsumme an den String anhängen. Ist nur so ein Vorschlag. RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - Y-P - 27.01.2016 11:10 Dann brauche ich die Modbus-VIs gar nicht? ![]() Ich habe leider auch keine Anleitung, weil ich den Umrichter noch nicht habe. Den Umrichter wollte ich zuerst nehmen, weil es bei Sourcetronic LabVIEW-Treiber gibt. Allerdings habe ich nun erfahren, dass dies nur für das alte Modell gilt und nicht für das neue. Da sind sie wohl noch am Programmieren. Hättet Ihr mir evtl. einen Frequenzumrichter, der besser dafür geeignet ist und für den es schon fertige VIs gibt? NI hat mir Sourcetronic empfohlen (was aber beim neuen Typ auch nicht mehr zutrifft). Mehr wussten die auch nicht. Wie es sich angehört hat, haben die damit aber auch nicht so wirklich viel Erfahrung gehabt. Vielleicht hat ja schon mal jemand von Euch einen Frequenzumrichter angesteuert und hat mir einen guten Tip. ![]() Ich kann ja aber schon mal nachfragen, ob es das Handbuch von Sourcetronic in elektronischer Form gibt. Gruß Markus (27.01.2016 10:34 )jg schrieb: Write VISA... RE: CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels - GerdW - 27.01.2016 11:16 Hallo Markus, wir verwenden hier diverse Umrichter, aber entweder per Analog/Digital-Signal (Siemens G110) oder per CANopen (SEW, ControlTechniques). Zu ModBus kann ich nichts empfehlen… Muss es ModBus sein, weil du über dieses Protokoll und diese (preiswerte) Schnittstelle Werte zurücklesen willst? |