LabVIEWForum.de - COM Port

LabVIEWForum.de

Normale Version: COM Port
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich hoffe, das mein Anliegen überhaupt so einfach möglich ist...

Ich betreibe zu Messzwecken zwei Rechner gleichzeitig. Und diese Rechner sollen eine Messreihe möglichst synchron starteten.
Deshalb dachte ich an zwei Möglichkeiten:

1. Die beiden Rechner über den COM Port zu verbinden und dann irgendwie ein Triggersignal von einem zum anderen su senden. Leider fehlt mir hier jegliche erfahrung sowohl im Sende wie auch im Empfangen von Daten über den COM Port.

2. Die andere evtl etwas "realistischere" Variante wäre es, den Ausgangsport und die Masse des COM Ports des einen Computers an eine im anderen Rechner vorhandene Messkarte anzuschließen. Wenn es mir nun gelänge eine irgendwie geartete Spannung auszugeben, könnte ich diese an dem anderen PC detektieren.
Leider weiss ich wiederum nicht, wie ich gezielt eine Spannung ausgeben kann.

Ich hoffe jemand kann mit weiterhelfen. Oder vielleicht gibt es ja auch noch andere Möglichkeiten...

Viele Grüße
Steffen
' schrieb:...

1. Die beiden Rechner über den COM Port zu verbinden und dann irgendwie ein Triggersignal von einem zum anderen su senden. Leider fehlt mir hier jegliche erfahrung sowohl im Sende wie auch im Empfangen von Daten über den COM Port.

2. Die andere evtl etwas "realistischere" Variante wäre es, den Ausgangsport und die Masse des COM Ports des einen Computers an eine im anderen Rechner vorhandene Messkarte anzuschließen. Wenn es mir nun gelänge eine irgendwie geartete Spannung auszugeben, könnte ich diese an dem anderen PC detektieren.
Leider weiss ich wiederum nicht, wie ich gezielt eine Spannung ausgeben kann.
Hallo Steffen,

zu 1.) Für die Kommunikation über RS232 könntest Du über VISA auf die Ports zugreifen.
Meine da ist auch was im ExampleFinder bei.

zu 2.)
Die Spannungspegel der RS-232 sind gut bei Wikipedia erklärt.
Wobei aber zubeachten ist, dass Du da u.U. eine µs bis ms Verzögerung durch Betriebsystem haben kannst.

Meine Idee:
Sofern beide Rechner am Netz sind:
1.) Beide PC per NTP alle Stunde oder so die Uhr syncen.
2a.) Per TCP-Verbindung meldet PC1 and PC2 "Um XX:XX:XX.XX gehts los" ,wobei das so ca. 10s voher signalisiert wird, falls die 10s Verzögerung nicht kritisch sind und es hauptsächtlich um ein simultanes Starten der Messroutinen geht.

2b.) Wenn die Verzögerung vor dem Starten unewünscht ist, einfach den Startbefehl übe die TCP-Verbidung schicken. Mit dem Nachteil, dass Du dann mit der Latenz durch die Netzwerkverbindung leben musst.

Oder auf LV-FPGA oder RT portieren.


Gruß, Rob

PS: Weiss jemand ob LV eigentlich auch QoS bei TCP/IP unterstützt?
' schrieb:PS: Weiss jemand ob LV eigentlich auch QoS bei TCP/IP unterstützt?

LV hat keinen eigenen TCP/IP Stack sondern nutzt den Stack des Betriebssystems. Wenn also das OS QoS unterstützt, dann zwangsweise auch das LV Programm
Wenn es so sein sollte, daß Du in beiden PCs Messkarten von NI stecken hast, und die PCs nicht zu weit auseinander stehen, dann wäre das Problem ja so gut wie gelöst. Die Meßkarten haben für ihre Synchronisation untereinander einen kleinen Stecker auf der Oberseite und lassen sich über eine Art Buskabel untereinander verbinden. Normalerweise stecken die Karten alle im gleichen PC, aber warum sollte es nicht auch so wie bei Dir gehen?
Das Herausfinden der Signale, die für die Synchronisation in Frage kommen, und das Routen dieser Verbindungen will natürlich erst einmal gekonnt sein. (Wer angibt im Leben, kommt weiter - ich rede hier so, als ob ich selbst davon Ahnung hätte)
' schrieb:Hallo,
ich hoffe, das mein Anliegen überhaupt so einfach möglich ist...
[...]

Der Vorschlag von Lucki mit dem RTSI Bus wäre natürlich die beste Möglichkeit die Karten zu synchronisieren. Wenn es möglich ist, die beiden Karten in einen Rechner zu stecken erledigt sich auch das Problem mit dem rumliegenden Kabel, über das man sowieso nur stolpert und sich die Karten rausreißt. Die Signale müssen geroutet werden, zum Thema Routing mit DAQmx gibt's im Example finder ein paar Beispiele ... Die Routing VIs befinden sich hier:

[attachment=6466]

Die Information, was man wohin routen kann, kann man aus dem MAX bekommen, wenn man auf die Messkarte klick und den Reiter "Geräteverbindungen" anschaut:

[attachment=6467]

eine weitere Möglichkeit wäre, den AI/AO? Start Trigger auf einen PFI-Ausgang zu routen, und per Kabel an die 2. Messkarte als digitalen Trigger anzuschließen.

alle anderen Mechanismen (RS323, TCP/IP, etc ... ) wird nur zu einer "Pi mal Daumen" - Software Synchronisierung führen, die alles andere als genau ist, echte hardware-synchronisierung erreicht man damit nicht, die Latenzzeiten dürfen IMHO so um die 500 ms liegen ...
Hallo,

erstmal vielen Dank für die vielen Antworten. In dem einen Rechner ist eine Meilhaus ME 2600 Messkarte und in dem triggernden Rechner leider nur eine Framegrabberkarte für eine Infarotkamera. Die hat zwar auch Triggerausgänge die ich aber über LabVIEW aufgrund fehlender Treiber (noch) nicht ansteuern kann.

Es muss schon so sein, dass man an dem einen Rechner die Messug sofort (oder fast sofort) starten kann. Ich habe es mittlwerweile auch geschafft, den COM-Port anzusteuern und nun z.B. eine "1" zu senden. Die kann ich dann am anderen Rechner über die Messkarte als Spannungssignal messen. Ist zwar wohl nicht unbedingt im Sinne des Erfinders aber soweit ich alle richtig verstanden habe die einzige Möglichkeit, wenn ich keine zwei Messkarten habe, oder??


Von TCP/IP habe ich leider überhaupt keine Ahnung....


Gruß und Dank
Steffen
' schrieb:Hallo,

erstmal vielen Dank für die vielen Antworten. In dem einen Rechner ist eine Meilhaus ME 2600 Messkarte und in dem triggernden Rechner leider nur eine Framegrabberkarte für eine Infarotkamera. Die hat zwar auch Triggerausgänge die ich aber über LabVIEW aufgrund fehlender Treiber (noch) nicht ansteuern kann.

Es muss schon so sein, dass man an dem einen Rechner die Messug sofort (oder fast sofort) starten kann. Ich habe es mittlwerweile auch geschafft, den COM-Port anzusteuern und nun z.B. eine "1" zu senden. Die kann ich dann am anderen Rechner über die Messkarte als Spannungssignal messen. Ist zwar wohl nicht unbedingt im Sinne des Erfinders aber soweit ich alle richtig verstanden habe die einzige Möglichkeit, wenn ich keine zwei Messkarten habe, oder??
Von TCP/IP habe ich leider überhaupt keine Ahnung....
Gruß und Dank
Steffen

hmm ... ist zwar ne Notlösung, aber sollte funktionieren. Wenn man sonst nix hat, muss man halt das nehmen, was da istSmile

schön ist es nicht, und auch nicht besonders "sauber" , aber wird wohl funktionieren ...
Referenz-URLs