03-11-2011 08:00 AM
Hallo zusammen,
ich stehe vor folgendem Problem:
Die Drehzahl einer Pumpe soll über den RS-485 serial port gesteuert werden.Ich verwende dafür eine Modifikation des BeispielVIs "Basic Serial Write and Read"
Der FU empfängt das gesendete Frame, das Empfangsfenster erhält aber keine Antwort. Es gibt aber auch keine Fehlermeldung.
Wo liegt mein Fehler?
Lösungsansätze die meinerseits bereits unternommen wurden:
Kabel defekt? Nein, denn die vom Hersteller mitgelieferte Konfigurationssoftware funktioniert und die Pumpe kann damit stabil angesprochen werden.
NI-Visatreiber? sind vorhanden
CRC-Checksumme falsch? Nein, ich habe mit dem Hersteller Rücksprache sprache gehalten (sehr kompetenter Mitarbeiter). Die von mir zuvor verwendete BigEndian Darstellung war falsch. Die littleEndian Darstellung (jetzt implementiert) der Checksumme ist die richtige. Ist übrigens der CRC-16 Algorithmus.
Falscher Frame: Falsche Frames führen zu einem timeout-Fehler, genauso wie eine falsche CRC-Checksumme.
Falsche Angaben für den Serial Link: Ich habe für die Kommunikation folgende Werte gewählt: Baudrate 9600, Databits 8bit, parity none, Stopbits 2, flowcontrol none, timeout on RJ45 500ms. Diese Werte habe ich maschinenseitig mit der Herstellersoftware auf Übereinstimmung überprüft. Falsche Werte bei Stopbits oder Databits führen zu Fehlermeldungen. Verschiedene timeout-Werte scheinen keinen Fehler auszulösen.
Kommunikationsprotokoll: Modbus RTU
LabVIEW-Version: 8.5.1
FU: Leroy Somer Varmeca 32T 300
Verbindung Frequenzumrichter-PC: USB-Serial-Adapterkabel (Hersteller oder Chipsatz unbekannt, da die Platine in einer schwarzen Platikbox verschweißt ist)
Danke für eure Geduld und eure Mühen. Ich bin froh über jede Idee.
03-11-2011 08:13 AM
Hello,
reading keywords and your code i assume you want to write a modbus communication
it's a big effort to create a modbus protocole, hopefully an easier way is to use the Ni library
at this page : http://zone.ni.com/devzone/cda/epd/p/id/4756
Regards
Tinnitus
03-14-2011 05:11 AM