LabVIEWForum.de
Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP (/Thread-Kommunikation-mit-einem-Frequenzumrichter-mit-PROFIBUS-DP)

Seiten: 1 2


Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - RoboBurger - 22.01.2014 15:44

Hallo,
ich bin ein LabVIEW-Newbie und stehe vor einem Problem.

Ich will mit LabVIEW einen Frequenzumrichter ansprechen, der eine ASM steuern soll.
Verbunden ist die Hardware folgendermaßen:

PC->USB-Adapter->SUB-D-Buchse->FU->ASM Feldbus: PROFIBUS DP

Über eine Inbetriebnahmesoftware kann ich den FU auch ansprechen => Hardware scheint i.O. zu sein und betriebsbereit.

Mit LabVIEW will ich jetzt verschiedene Parameter lesen/verändern. Dazu habe ich mit NI-VISA Driver Wizard einen virtuellen Treiber installiert, der mir einen COM1-Port, LTP1 und einen USB-RAW in LabVIEW zur Verfügung stellt.

Ich habe ein kleine Vi zum testen geschrieben, die Befehle senden soll(Anhang), leider ohne Erfolg.

Hat jemand Erfahrungen mit LabVIEW und PROFIBUS und teilt sie mir mit Cool ?

Möglicherweise sind meine Befehle(z.B. NIST_A) auch falsch. Muss ich diese in ein PROFIBUS-Telegramm umwandeln? (Versuchte ich auch, aber ebenfalls ohne Erfolg)
Mir ist auch nicht klar, wie genau ich die Befehle in ein korrektes PROFIBUS-Telegramm umwandel.
Beispiel-Telegramm aus dem Listenhandbuch: 0x6 0 0x731 0x02 0x90 0x0000 0x0000
Müsste ich dieses in Binärcode umwandeln?

Macht es mehr Sinn mit OPC-Server zu arbeiten?

Zur Hardware von Siemens:
FU G120 mit CU240-B DP
S7 USB ADAPTER A2

Bin über alle Hilfen/Hinweise/Tipps/Überlegeungen/etc. dankbar =)


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - DrRino - 23.01.2014 11:16

Hallo RoboBurger,

erstmal herzlich willkommen im Labviewforum.

Wir haben zwar schonmal was mit Profibus gemacht, allerdings haben wir eine Profibuskarte von COMSoft im PC verbaut. Diese haben komfortablerweise auch Labviewtreiber.

Ich würde mir dein VI gern anschauen, aber leider steht mir momentan Labview 2013 nicht zur verfügung. Es wäre schön wenn du das in einer früheren Version speichern könntest.

Gruß,
Rino


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - GerdW - 23.01.2014 11:25

Hallo,

@Rino:
So sieht das VI aus:
[attachment=48174]

@Robo:
- Zwischen Write und Read gehört bei Nutzung von "BytesAtPort" eine Wartezeit! Oder was für eine Antwort erwartest du 1µs nachdem der Befehl in den Buffer der seriellen Schnittstelle geschrieben wurde?
- Eine Wartezeit zur Kontrolle der Iterationszeit der Schleife wäre auch nicht schlecht. Oder musst du die Befehle so oft wie möglich rausschicken?
- SerialPortInit-Parameter musst du nur dann angeben, wenn sie vom vorgegebenen Standardwert abweichen…


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - RoboBurger - 23.01.2014 16:03

Danke für die Antworten!

Ich habe das Programm etwas vereinfacht und eine Wartezeit beim lesen eingefügt. Es soll natürlich nicht so oft wie möglich gesendet werden..das war nur für mich zum testen gedacht.
Ziel ist es, dass ich später in regelmäßigen Zeitabständen Befehle senden und empfangen kann.

Wenn ich anstelle des "Bytes at Port", die Byte-Anzahl festlege, bekomme ich einen Fehler(vermutlich weil er keine Nachricht empfängt)

Im Anhang noch ein sreenshot von den virtuellen Ports von dem USB Adapter.

Hat jemand eine Idee/Erfahrungen, wie ich es schaffe nun mit dem Umrichter über den USB Adapter mit Labview zu kommunizieren?
Wäre ein OPC-Server einfacher?


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - GerdW - 23.01.2014 16:07

Hallo Robo,

Zitat:Ich habe das Programm etwas vereinfacht
Gut so...

Zitat:und eine Wartezeit beim lesen eingefügt.
Leider falsch!
Du hast eine Wartezeit parallel zum BytesAtPort+Read und nicht zwischen Write und BytesAtPort, wie oben vorgeschlagen!
THINK DATAFLOW!

Passt der von dir erstellte COM-Port überhaupt zur Hardware? Womit hast den Treiber erstellt?


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - RoboBurger - 24.01.2014 08:36

Hallo Gerd,

ich habe das Programm nochmal verändert. Jetzt sollte die Wartezeit passen Angel_not


Den Treiber habe ich mit "NI-VISA Driver Wizard" erstellt.


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - Y-P - 24.01.2014 08:53

Statt der Case-Struktur würde ich eine Sequenz verwenden, aber prinzipiell passt es auch so, wie Du es machst.
Evtl. wird ja die Wartezeit-Funktion auch bald mit einem Error-Cluster versehen. Das geistert ja schon lange durch den Idea-Exchange.

Gruß Markus

(24.01.2014 08:36 )RoboBurger schrieb:  Jetzt sollte die Wartezeit passen Angel_not



RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - GerdW - 24.01.2014 08:58

Hallo,

wie Markus schon schrieb:
[attachment=48200]
Bis es das erwähnte "Wait mit ErrorIO" gibt, packt man sich ein solches in seine user.lib!
(Hatte ich schon mal gesagt, dass man die ganzen Standardwerte an SerialPortInit nicht extra verdrahten muss?)

Bist du dir mit dem gesendeten String sicher? Wird da wirklich eine Ansammlung von Nullen und Einsen (als ASCII) erwartet?

Zitat:Den Treiber habe ich mit "NI-VISA Driver Wizard" erstellt.
Wovon?
Mit welchen Hintergrundinformationen?
Mit welchem Programmiermanual?


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - RoboBurger - 24.01.2014 10:06

Den Treiber habe ich nach der Anleitung von NI erstellt:
http://www.ni.com/white-paper/4478/de/

Ob der gesendete String korrekt ist bin ich mir leider überhaupt nicht sicher, habe verschiedene Strings versucht


RE: Kommunikation mit einem Frequenzumrichter mit PROFIBUS DP - GerdW - 24.01.2014 10:19

Hallo Robo,

gab es den COM-Port schon, bevor du das USB-RAW-Device erzeugt hast?

Wäre es nicht wesentlich einfacher, den FU über die Digital- und Analogeingänge der ControlUnit zu steuern? Hier komme ich üblicherweise mit 2 Digitalsignalen (Freigabe, Drehrichtung) und einem Analogsignal (Drehzahl) aus...

Zitat:Ob der gesendete String korrekt ist bin ich mir leider überhaupt nicht sicher, habe verschiedene Strings versucht
Sowas sollte im Handbuch stehen. Oder wonach richtest du dich bei deinen Kommunikationsversuchen?