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 

RS232



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!

20.10.2006, 12:11
Beitrag #1

Alfe Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2006

2011
2006
kA


Deutschland
RS232
Hallo!
ich versuche verzweifelt zwischen einem PC mit LabVIEW 7.1 und einem Frequenzumrichter eine Kommunikation auszubauen. Die Befehlstruktur für Senden und Empfangen kenne ich, da die Kommunikation über ein Hyperterminal bereits funktioniert, aber mit LV habe ich meine Probleme. Ich habe mir bereits die LV Beispiele angeschaut und mal ein eigenes zusammengebaut. Das vi zeigt zwar keine Fehler an aber wenn ich den String #0!<ENQ>(wird in LV als Rechteck dargestellt) verschicke liegen danach keine Bytes am Port an. Wenn ich das ganze jedoch über das Hyperterminal mache erfolgt nachdem Senden des Strings sofort eine Anwort (1 Zeichen) vom Umrichter <NAK>(=nicht Bereit) oder <AOK>(=Bereit). Hat jemand eine Ahnung warum ich keine Bytes zurückbekomme? Mir is gerade nochwas aufgefallen dass vi funktioniert ja auch obwohl der Umrichter aus is müsste dann nicht eigentlich eine Fehlermeldung kommen? Ich glaube ich habe hier noch grundsätzlich Probleme mit dem Kommunikationsaufbau. Es würde mich freuen, wenn mir jemand ein paar Tipps geben könnte, ob ich prinzipiell richtig liege bzw. wo evt. mein Fehler liegen könnten?
Vielen dank und viele Grüße
Alfe


Angehängte Datei(en)
Sonstige .vi  RS232.vi (Größe: 51,4 KB / Downloads: 349)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.10.2006, 15:46 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2006 15:47 von ahlers01.)
Beitrag #2

ahlers01 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 143
Registriert seit: Feb 2005

7.1-2011
1993
DE_EN

38116
Deutschland
RS232
' schrieb:Hallo!
ich versuche verzweifelt zwischen einem PC mit LabVIEW 7.1 und einem Frequenzumrichter eine Kommunikation auszubauen. Die Befehlstruktur für Senden und Empfangen kenne ich, da die Kommunikation über ein Hyperterminal bereits funktioniert, aber mit LV habe ich meine Probleme. Ich habe mir bereits die LV Beispiele angeschaut und mal ein eigenes zusammengebaut. Das vi zeigt zwar keine Fehler an aber wenn ich den String #0!<ENQ>(wird in LV als Rechteck dargestellt) verschicke liegen danach keine Bytes am Port an. Wenn ich das ganze jedoch über das Hyperterminal mache erfolgt nachdem Senden des Strings sofort eine Anwort (1 Zeichen) vom Umrichter <NAK>(=nicht Bereit) oder <AOK>(=Bereit). Hat jemand eine Ahnung warum ich keine Bytes zurückbekomme? Mir is gerade nochwas aufgefallen dass vi funktioniert ja auch obwohl der Umrichter aus is müsste dann nicht eigentlich eine Fehlermeldung kommen? Ich glaube ich habe hier noch grundsätzlich Probleme mit dem Kommunikationsaufbau. Es würde mich freuen, wenn mir jemand ein paar Tipps geben könnte, ob ich prinzipiell richtig liege bzw. wo evt. mein Fehler liegen könnten?
Vielen dank und viele Grüße
Alfe
Nur ne Vermutung: das ganze läuft zu schnell durch:

Dein VI läuft so ab:
1) VISA Init (außerhalb der Schleife)
2) VISA Write innerhalb der Schleife
3) VISA Bytes at Serial Port, liefert OHNE FEHLER 0 als Antwort, da es zeitlich direkt nach 2) erfolgt und Deine hardware vielleicht noch gar nicht geantwortet hat
4) VISA Read soll dann 0 Bytes lesen, tut es auch problemlos ohne Fehler
5) Deine Schleife endet, da erneuter Durchlauf nur (so wie Du es programmiert hast), wenn STOP gedrückt oder Fehler Status=True
6) VISA Close außerhalb der Schleife
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.10.2006, 14:09
Beitrag #3

Buhrz Offline
LVF-Stammgast
***


Beiträge: 407
Registriert seit: Oct 2004

1.2 - 2015
1987
EN

22844
Deutschland
RS232
HI

Ich schließe mich meinem vorgänger an
Der Frequenzumrichter braucht eine gewisse zeit um zu antworten
Du liest aber sofort nach dem schreiben die Anzahl auf der schnittstelle und die ist null
Bau doch mal eine warte zeit von einer halben sekunde ein und schau was dann passiert

Gruß

Jürgen

A old LabVIEW User
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.10.2006, 14:30
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
RS232
Hallo Alfe,

1) mach aus deiner Do-While-Schleife eine normale While-Schleife. Ein Mausklick auf z.Z. grünes Symbol (Bedingung zur Ausführung der While-Schleife), dann bekommst du einen roten Punkt statt grünem runden Pfeil.
2) Beim VISA-Init gibt es oben drei Eingänge "Enable Termination", "termination char" und "timeout". Lese in LV Help genau, was diese bedeuten. Wahrscheinlich musst du "Enable Termination" ausschalten.
3) baue eine Wartezeit in die While-Schleife.
4) sende hier einen Ausschnitt deiner Kommunikation über Hyper-Terminal, damit ich sehen kann wie das Protokoll aussieht. Wichtig ist die Feststellung ob es ein ASCII oder ein binäres Protokoll ist. Und ob jede Sequenz einen Abschlusszeichen hat.


Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2006, 20:02
Beitrag #5

Alfe Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2006

2011
2006
kA


Deutschland
RS232
Hallo,
erstmal danke für die Antworten. Ich habe das vi geändert und eine Wartezeit eingebaut und diese verändert und die Konstante für das Abschlußzeichen verfügbar auf false gesetzt aber leider ohne Erfolg. Ich bekomme weiterhin 0 Bytes at port. Gibt es irgenwelche andere Voraussetzungen, die erfüllt sein müssen, um die visa-Funktionen zu nutzen?Ich habe auch nochmal die Kommunikationsparameter geprüft sie sind sicher 9600,8,gerade Parität und 1Stoppbit zumindest sind dies die Werte die am Umrichter eingestellt sind. Die Adresse vom Umrichter is die 0. Das Protokoll schaut wie folgt aus:
PC an Antrieb: #Geräteadresse:Objektnummer?ENQ
im Hyperterminal is dass dann #0:6032?ctrl+E das ctrl+E ist die Tastenkombination mit der ich das ENQ eingebe. Als Anwort sollte ich dann STXDatenETXBCCEOT bekommen wobei STX,ETX,BCC,EOT jeweils für ein Zeichen steht.Wie das Protokoll im Hyperterminal ausschaut poste ich morgen mal habe die Datei dummerweise gerade nicht griffbereit. Aber vielleicht kann mir auch so noch jemand einen Tipp geben, warum meine Kommunikation nicht funktioniert.
Viele Grüße Alfe


Angehängte Datei(en)
Sonstige .vi  RS232_2_.vi (Größe: 55,61 KB / Downloads: 270)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2006, 16:24 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2007 19:43 von Dennis.Moser.)
Beitrag #6

Alfe Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2006

2011
2006
kA


Deutschland
RS232
Hallo,
ich versuche nun neue Wege zubestreiten und habe jetzt mal den PC mit LabVIEW über ein Nullmodemkabel mit einem Laptop mit Hyperterminal verbunden. Wenn ich nun das LV-Programm RS232-2 starte und dann über das Hyperterminal einen Teststring z.B. Test eingebe liegen dann am Port wie gewünscht auch 4Zeichen an. Allerdings werden diese im Lesepuffer sehr kryptisch angezeigt vgl.Bild. Kann mir jemand sagen woran das liegt? Und dann gibt es da noch ein weiteres komisches Phänomen das LV-Programm läuft ja nun in einer Endlosschleife bis ich den Stopbuttton drücke, wenn ich nun im Hyperterminal immer wieder mal einen string eingebe liegen am Port dann auch die entsprechenden Bytes an allerdings erhalte ich des öfteren aber nicht immer von LV folgende Fehlermeldung:
Error -1073807254 occurred at VISA Read in RS232_2_[1].vi Possible reason(s):
VISA: (Hex 0xBFFF006A) A parity error occurred during transfer.
Wenn ich das richtig verstehe handelt es sich um einen Paritätsfehler aber ich habe sowohl an Rechner und Laptop die Einstellungen von Com1 überprüft und sie stimmen überein. Die gleichen Einstellungen habe ich auch in meinem LV-Programm verwendet. Kann mir vielleicht jemand sagen woran dass liegt? Oder könnte das Problem daran liegen, dass ich keine NI-PCI-Steckkarten sondern Fremdprodukte verwende?
Ich würde mich freuen wenn mir jemand weiterhelfen könnte.
Viele Grüße
Alfe


   


Angehängte Datei(en)
Sonstige .vi  RS232_2__1_.vi (Größe: 55,29 KB / Downloads: 262)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.10.2006, 07:54
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232
' schrieb:Kann mir jemand sagen woran das liegt?
Da wage ich einen "Schuss ins Schwarze": Baudrate falsch. Die Theoretischen Fehler wie Treiber kaputt oder zu schwach will ich jetzt man unberücksichtigt lassen. Eine falsche Baudrate würde auch den Fehler "A parity error occurred during transfer" erklären.

Zitat:ich habe sowohl an Rechner und Laptop die Einstellungen von Com1 überprüft
Maßgebend ist nicht was im jeweiligen Gerätemanager steht, sondern wie LV und Hyper selbst die Schnittstelle konfigurieren.

Zitat:Oder könnte das Problem daran liegen, dass ich keine NI-PCI-Steckkarten sondern Fremdprodukte verwende?
Das könnte ich mir in so fern vorstellen, falls es sich bei der Seriellen Schnittstelle um einen USB-RS232-Wandler handelt. Es gibt da nämlich auch mangelhaft funktionierende.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2006 09:35 von Michael5.)
Beitrag #8

Michael5 Offline
LVF-Anwender
*


Beiträge: 45
Registriert seit: Jul 2006

7.0 bis Developer Suite 2012 DS2
2003
DE

72074
Deutschland
RS232
Hallo Alfe,
versuche es doch einfach einmal mit dem Assistent für Instrumenten-I/O. Das ist ein Express VI, mit dem du über die meisten Schnittstellen mit einem Gerät eine Kommunikatikon aufbauen kannst. Du kannst dir beim Initialisieren des Express VI gleich die Erfolge ansehen in dem du den Start ausführst.
Weiterhin gibt es bei den meisten Geräte, die über eine Schnittstelle angeschlossen werden, die Möglichkeit mit den Character *IDN? ihre Identifikation abzufragen. Wenn das Gerät darauf antwortet hast du gewonnen.
Der Rest ist dann einfach.
Oft liegt die Baudrate bei den Geräten zwischen 9600 und 38400. Das mußt du halt mal veruschen.
8 Bit und der Rest deaktiviert ist auch normal.

Die Character die du sendest sehen mir irgendwie aus als würden sie nicht richtig dargestellt werden.
So sieht es meistens aus, wenn ESC oder eine Funtiotionstaste dargestellt wird.
Versuche einmal dein Fenster für den Ausgabestring auf Hexformat umzustellen (anklicken und rechte Maustaste). Gebe dann nochmals diese Character ein und sende diesen String.

Gruß Michael
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 11:47
Beitrag #9

Alfe Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2006

2011
2006
kA


Deutschland
RS232
Hallo
@Michael5 und IchSelbst der Tipp mit der Bautrate war ein Treffer ins schwarze. Habe jetz einfach mal sämtliche Bautraten durchprobiert und siehe da mit 19200 funtioniert es nun. Was ich nun nicht verstehe is warum ich in LV eine andere Baudrate einstellen muß als am Rechner im Gerätemanager ersichtlich is. Kann mir das jemand erkären?
Na da bin ich mal gepannt ob ich jetz die Kommunikation auch hinbekomme wenn ich nun statt dem Laptop mit dem Hyperterminal meinen Umrichter anschließe.
Einstweilen vielen Dank und ein schönes WE
Viele Grüße
Alfe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 12:13
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232
' schrieb:Was ich nun nicht verstehe is warum ich in LV eine andere Baudrate einstellen muß als am Rechner im Gerätemanager ersichtlich is. Kann mir das jemand erkären?
Ganz einfach: Weil die im Gerätemanager angezeigte RS232-Einstellung mit der für das Endgerät notwendigen Einstellung nix zu tun hat. Woher soll denn der Gerätemanager wissen, was er "einstellen" soll. Im Gerätemanager wird nur angezeigt, was da irgendwann irgendwer mal eingestellt hat. Im Standardfall steht der halt auf 9600-8N1. Wenn du ein Gerät an die Schnittstelle anschließt, musst du dich selbst darum kümmern, dass die entsprechenden Konfigurationen gemacht werden.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: