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 

Vis unabhängig von einander / parallel



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!

21.11.2012, 10:14
Beitrag #1

Arnold Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Nov 2012

2011
2012
DE



Vis unabhängig von einander / parallel
Hallo zusammen,

da ich ein Einsteiger in LV bin, brauche etwas Unterstützung.
Meine Aufgabe ist, dass ich mehrere IDs vom CAN-BUS lese, diese entsprechend verarbeite und dann eine entsprechende CAN_Massage wieder ausgebe.

Mein Problem ist nun, dass ich 16 unterschiedliche IDs lese und dann auch einige für eine gewisse Zeit antsteuern sollt.

Meine erste Idee war recht simple. Ich habe das entsprechende Netz konfiguriert, mich mit diesem verbunden, die Msg. gelesen, anschließend verarbeitet und eine entsprechende Msg. wieder versendet. Da ich das alles in einer While-Schleife hatte, wurden die Nachrichten erst gelesen wenn die untergeordnete For-Schleife, der While-Schleife abgearbeitet war und von neuem anfangen konnte. Da hier einige Msg. für eine gewisse Zeit anliegen sollen, war jede andere Bedienung während dieser Zeit nicht möglich.

Somit meine Frage wie schaffe ich es, dass zu jeder Zeit eine Bedienung trotzdem möglich ist? Wie schaffe ich es, dass diese Funktionen parralel zu einander ablaufen?
An dieser Stelle habe ich nun an eine Referenz und SubVIs gedacht. Ist es möglich wenn ich meine Nachrichten einfach an die SubVIs sende und diese dann für sich selbst die Nachricht verarbeiten?

Wenn ja, wie ist dies zu realisieren? Nein, wie kann ich sonst vorgehen?

Ich lade euch, das Programm hoch mit dem ich die Nachrichten vom CAN-BUS lese und mit denen ich diese verarbeite und neue ausgebe.
READ_MULTI <-- Liest diese
REC_MSG_DATA_TF_WRITE_12D <-- Verarbeitet und schreibt
REC_MSG_DATA_TF_WRITE_12F <-- Verarbeitet und schreibt


Angehängte Datei(en)
11.0 .vi  READ_MULTI.vi (Größe: 30,05 KB / Downloads: 154)

11.0 .vi  REC_MSG_DATA_TF_WRITE_12D.vi (Größe: 14,89 KB / Downloads: 148)

11.0 .vi  REC_MSG_DATA_TF_WRITE_12D(SubVI).vi (Größe: 25,29 KB / Downloads: 158)

11.0 .vi  REC_MSG_DATA_TF_WRITE_12F.vi (Größe: 14,89 KB / Downloads: 162)

11.0 .vi  REC_MSG_DATA_TF_WRITE_12F_(SubVI).vi (Größe: 29,09 KB / Downloads: 160)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.11.2012, 11:51 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2012 11:54 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Vis unabhängig von einander / parallel
Hallo Arnold,

bitte, bitte die VIs erst einmal aufräumen. Benutze Arrays, um deine Daten zu verwalten! Bitte...

So könnte der Hauptteil der Read-multi-Routine aussehen:
   

Deine Write-SubVIs schreien auch geradezu nach Verwendung einer Case-Struktur! Die ganzen Vergleiche auf =0 bis =16 erledigt die Case-Struktur, die logischen Verknüpfungen vereinfachen sich dann auch entscheidend. Außerdem: Warum ArrayToCluster und Unbundle, wenn es ein IndexArray auch tut?

Zur Frage:
- VIs laufen parallel, wenn es keine Datenabhängigkeit zwischen ihnen gibt!
- Der CAN-Bus kann Daten periodisch senden, üblicherweise ohne Eingriff eines darübergelagerten Steuerprogramms. Ebenso hat man einen Empfangsbuffer zur Verfügung...
- Ich kenne die PCAN-Treiber nicht, denke aber, dass diese auch parallele Zugriffe auf den CAN-Bus erlauben...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.11.2012, 12:34
Beitrag #3

Arnold Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Nov 2012

2011
2012
DE



RE: Vis unabhängig von einander / parallel
Danke für die Antwort.

Ich werde versuchen dies zu berücksichtigen.
Jedenfalls habe ich das Problem ermittelt. Ich habe im SubVI 12F ein falsches Element benutz. Ich habe dort das Programm zum Stocken gebracht durch das Warten Symbol.
Ich muss da nur die Zeit abfragen und vergleichen wenn dies überschritten wird soll der Ausgang zurückgesetzt werden.

Danke nochmals für die Rückmeldung. Problem gelöst Smile
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
  Sub-VI parallel und unabhängig laufen lassen viperjumper 2 6.124 21.07.2011 09:42
Letzter Beitrag: viperjumper
  SubVI unabhängig ausführen ? * neuer Thread gottfried 14 11.448 10.12.2010 09:25
Letzter Beitrag: gottfried
  SubVI unabhängig ausführen gottfried 13 14.978 26.11.2010 09:59
Letzter Beitrag: unicorn
  ein SubVI mehrmals unabhängig ausführen Burning_Man 18 13.442 19.02.2010 15:09
Letzter Beitrag: IchSelbst
  Blinken unabhängig von while-Schleife nejo 2 4.717 10.01.2006 12:19
Letzter Beitrag: Nobby

Gehe zu: