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 

Dieses Thema hat akzeptierte Lösungen:

cFP2020 und RS485



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!

10.01.2006, 11:42
Beitrag #1

Nobby Offline
Gelegenheitsnutzer
*


Beiträge: 11
Registriert seit: Feb 2005

2oo9 SP1 2o1o SP1f2
2003
EN

52425
Deutschland
cFP2020 und RS485
Allen ein frohes, erfolgreiches neues Jahr.

Ich habe LabVIEW 7.1, RT 7.1 und ein cFP2020 über Ethernet mit meinen PC verbunden.
Meine Applikation (VI) möchte ich auf dem PC laufen lassen jedoch muss/will ich die RS485 des cFP2020 ansprechen! Hat jemand zufällig ein kleines Beispiel oder weiss einer wie es funktionieren kann?
NI konnte mir bis jetzt nicht weiter helfen!

Vielen Dank im Voraus für Eure Hilfe.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2006, 13:38
Beitrag #2

BitRechner Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2006



kA



cFP2020 und RS485
Hallo!

Habe schon mal so ein ähnliches Problem gehabt, die Lösung ist dann doch etwas "scharf" gewesen.

Frage vorweg: Was spricht dagegen, dem cFP die Arbeit zu lassen und - ich weiß nichts genaues über die Art der Daten vom RS485! - einfach z.B. formatierte, fertige Messdaten oder was auch immer an den PC zurückzusenden. Damit werden Timing-Probleme sehr gut vermindert, da der cFP die ev. zeitkritische Kommunikation per RS485 übernimmt!

Meine Empfehlung, falls wirklich der PC die Strings für den RS485 zusammenbauen muss: DataSocket
Du erstellst ein VI für den Fieldpoint, ein VI für den PC.
Das Fieldpoint-VI regelt die Kommunikation mit RS485, der PC sendet dafür die ASCII-Befehle via DataSocket runter auf den cFP.
Zum Beispiel: PC generiert und sendet Befehl "#062?" für RS485, der cFP hängt dann noch ein CarriageReturn an und schickt es per VISA an die Schnittstelle.
Im nächsten Schritt kommt die Antwort, die über einen anderen String wieder auf den PC zurückgeschrieben wird.

Soviel zur Theorie. Haken: Der cFP hat keinen DataSocket-Server.
Lösung: als DataSocket-IP-Adresse auf dem cFP einfach die Adresse des PC eintragen; der PC ist also logisch gesehen also Quelle und Senke gleichzeitig, aber es funktioniert.

Tip: Datasocket nicht per Front-Panel konfigurieren (Data Operations-Data Socket Connection...), sondern programmatisch mit den Data-Socket-VIs des BlockDiagramms unter Communication-DataSocket - und das Timing genau beachten: PC Sendet, cFP Empfängt, cFP Sendet an RS485, cFP Empfängt von RS485, cFP Sendet retour an PC (Sequence Structures). Inwieweit das mit den Latenzzeiten des Netzwerks wirklich gut geht, ist eine andere Frage (Stichwort VISA timeout...). In diesem Fall Lösung ganz oben: cFP macht die Arbeit Wink

Hoffe geholfen zu haben!
BR.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2006, 15:15
Beitrag #3

Nobby Offline
Gelegenheitsnutzer
*


Beiträge: 11
Registriert seit: Feb 2005

2oo9 SP1 2o1o SP1f2
2003
EN

52425
Deutschland
cFP2020 und RS485
Zunächst mal: Danke für die Tips.

Hier noch ein paar Infos zu meiner Anwendung:
Ich bediene per RS485 8 StÚck Durchflussregler und eine Motorsteuerung. Die Regler bekommen eine RS485 und die Motorsteuerung ebenfalls eine.
Für die Bedinung und Visualisierung meines Experiments auf dem PC benötige ich von den Durchflussreglern zyklich die Istwerte und setze ab und an neue Sollwerte. Dem cFP würde ich ein Array mit den Sollwerten übergeben und ein Array mit den Istwerten abverlangen, den Rest soll das cFP-System machen.
Die Mototsteuerung ist etwas aufwendiger da sie verschiedene Befehle bekommen muss und neben der aktuellen Position bis zu 32 Statusbits zur Verfügung stellt. Zudem ist die Steuerung über ein Sub-VI aus- und einschaltbar. Dieses VI funktioniert und läuft z.Zt. über eine RS232 vom PC. Ein Kompile-Versuch für den cFP ist mir bis jetzt noch nicht gelungen, da RT nicht gleich LabVIEW ist :x - ich muss dafür mein Prog-Design ändern! Fúrs Erste würde ich auf dem Host die Asccis der Motor-Schnittstelle zusammenbauen und die Antwort der Schnittstelle ebenfalls auf dem Host auswerten.
Zusammenfassend:
FÚr cFP würde ich zwei Vi's (Regler + Motor) bauen wollen mit denen ich vom Host aus kommuniziere. Ich dachte an TCP, da, laut Beschreibung, DataSoket Daten verlieren kann?!
Eine Host - cFP Kommunikation habe ich noch nicht programmiert, das ist Neuland für michSad
Hast du vielleicht ein kleines, nachvollziehbares Beispiel für mich?

Eine Frage noch: Laut NI passen LabVIEW 8.0 und RT 7.1 nicht zusammen! Stimmt das? Aus diesem Grund benutze ich noch LabVIEW 7.1 da ich die RT 8.0 noch nicht habe.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2006, 21:26
Beitrag #4

BitRechner Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2006



kA



cFP2020 und RS485
Zuerst das Leichte:
LV RT 7.1 und LV RT 8.0 sind inkompatibel. Für den Betrieb von LV RT 8.0 empfiehlt NI den Einsatz von cFP-2120, da die cFP-2020 zu wenig Rechenpower haben. Ich denke das kommt ganz auf die Anwendung an, und sollte einfach getestet werden.
Ich habe mich noch nicht drübergetraut, LV RT 8.0 auf einem cFP-2020-System zu installieren, da ich momentan schon froh bin, wenn LV 8.0 und RT 8.0 auf einem cFP-2120 gut zusammenarbeiten, und damit meine ich, dass ich nicht Kaffe trinken gehen kann bis die VIs auf die cFPs runtergespielt sind und laufen.
Ohne Frage jedoch eignet sich meiner Meinung nach erst LV 8.0 in Kombination mit LV RT 8.0 zur Vernünftigen Entwicklung von Anwendungen für den cFP. Damit meine ich z.B. dass in LV 8.0 das Fenster mit "Execution Target PC" parallel zum Fenster mit "Execution Target cFP" am Bildschirm läuft - da fetzt das Debugging dann schon Big Grin

Der zweite wichtige Vorteil: Shared Variables.
Diese lösen nämlich genau Deine Aufgabenstellung ohne Datasocket udgl.
Am PC wird in eine Variable geschrieben, der cFP liest sie aus - wie wenn sie ein und dasselbe System wären.

Zum eigentlichen Problem:
Die VIs im Anhang realisieren eine Art Handshake zwischen cFP und PC: Der PC sendet erst, wenn der cFP den Empfang bestätigt.
Anmerkung: Das Problem der Gleichzeitigkeit kann NICHT umgangen werden - die VIs schieben das Problem einfach in eine Ecke, die "wahrscheinlich" funktioniert.
Die "Ecke" bei diesem Beispiel: Der cFP setzt sein cFP_acknowledge erst retour, wenn der PC das Signal PC_dataready zurücknimmt.
Anderer Ansatz:
Aus dem cFP_acknowledge ein allgemeines acknowledge machen, das erst vom cFP auf True und dann von PC wieder auf False gesetzt wird, wenn der PC ein True, das der cFP gesetzt hat, erkannt hat. Die Fehlermeldung (multiple datasocket-writers not allowed) kann durch einen Indicator abgefangen werden, und das VI läuft weiter (sonst schaltet sich der automatic error handler ein, und hält das VI auf, ist aber sowieso eine eher unschöne Lösung).
Ist halt wie bei Mutual Exclusion und Sync: Im Endeffekt darf, bei aller Parallelität, sowieso nur ein Programm gleichzeitig im kritischen Abschnitt des Speicherbereiches laufen.

Die VIs:
DS client handshake - zum Testen am PC laufen lassen, dann runter damit auf den cFP
DS server handshake - liefert Daten an den PC/cFP
Launch DS Server if Local URL - aus den Beispielen, startet einfach den DS Server programmatisch
Ablauf: erst den client, dann den server starten und ein bißchen Geduld, bis sich der DS-Stack "erfangen" hat.

Zum Stichwort Daten verlieren:
Das wurde bisher von allen Befragten NI-Ingenieuren mit den Worten: "Das ist eh gepuffert" abgeschmettert. Irgendwo hab ich einmal ein Beispiel gesehen wo ein Bild per DS übertragen wurde. Leider hab ich damals nicht schnell genug geschaltet und das Netzwerkkabel abgezogen und wieder angesteckt - mal schauen ob das Bild dann noch ganz ist (ok, in gewissen Zeitgrenzen halt) Big Grin

In diesem Sinne
happy wireworking

BR


Angehängte Datei(en)
Sonstige .vi  DS_client_handshake.vi (Größe: 111,18 KB / Downloads: 222)

Sonstige .vi  Launch_DS_Server_if_Local_URL.vi (Größe: 65,41 KB / Downloads: 200)

Sonstige .vi  DS_server_handshake.vi (Größe: 60,48 KB / Downloads: 212)

LabView ist eine Programmiersprache.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2006, 22:40
Beitrag #5

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
cFP2020 und RS485

Akzeptierte Lösung

[quote=BitRechner]Zuerst das Leichte:
Zum Stichwort Daten verlieren:
Das wurde bisher von allen Befragten NI-Ingenieuren mit den Worten: "Das ist eh gepuffert" abgeschmettert. Irgendwo hab ich einmal ein Beispiel gesehen wo ein Bild per DS übertragen wurde. Leider hab ich damals nicht schnell genug geschaltet und das Netzwerkkabel abgezogen und wieder angesteckt - mal schauen ob das Bild dann noch ganz ist (ok, in gewissen Zeitgrenzen halt)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  COM Port RS485 Kommunikation Mistered 17 17.116 13.05.2020 05:55
Letzter Beitrag: Mistered
  Fehlermeldung: Kommunikation USB zu RS485 mittels DA-70157 Schnittstelle Titus 3 4.707 30.07.2019 10:53
Letzter Beitrag: MaxP
  Servomex Messwerte auslesen über RS232/RS485 Chefkoch 6 9.399 18.07.2016 13:54
Letzter Beitrag: jg
  Serielle Kommunikation NuDAM USB->RS485-DAQ trestann 8 9.424 22.11.2013 10:45
Letzter Beitrag: jg
  Serielle Schnittstelle (RS485) bleibt manchmal "hängen" gottfried 7 11.282 31.05.2013 09:56
Letzter Beitrag: gottfried
  Datenstrom einer RS485-Schnittstelle über Modbus und Com-Server auslesen jschor 0 7.638 10.10.2012 15:02
Letzter Beitrag: jschor

Gehe zu: