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 

Programm ist zu Langsam



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!

14.07.2016, 10:56 (Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2016 10:56 von martinkrimsh..)
Beitrag #1

martinkrimsh. Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2016

NI LabVIEW 2014
2014
DE



Question Programm ist zu Langsam
Sehr geehrte Mitglieder,

ich hab ein Programm erstellt, das 6 Motoren und 7 weitere Aktoren gleichzeitig und unabhängig voneinander ansteuert. Die Kommunikation zu den Motoren und Aktoren funktioniert einwandfrei.
Den Motoren muss man jede Sekunde oder schneller die Kommandos schicken (sprich Drehzahl und Drehrichtung), ansonsten bremsen sie ab.

Gleichzeit werden die Daten die die Motor zurückgeben in einer TDMS-Datei gespeichert.

Die ersten Seiten der Registerkarte dienen zur Initialisierung. Mir geht es um Seite 4 im Blockdiagramm.

Wenn ich das Programm laufen lasse bekommen die Motoren die Kommandos zu spät, also nicht jede Sekunden sondern nur alle 1,2 Sekunden. Das ist zu langsam.
Können Sie mir Tipps geben wie ich das Programm beschleunigen könnte?


Ich freue mich von Ihnen zu hören

Mit freundlichen Grüßen
martinkrimsh.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.07.2016, 11:02
Beitrag #2

wladimir s Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 79
Registriert seit: Mar 2015

2011, 2015
2010
DE


Deutschland
RE: Programm ist zu Langsam
Es fehlt der Code.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 11:17
Beitrag #3

martinkrimsh. Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2016

NI LabVIEW 2014
2014
DE



Programm ist zu Langsam
Sehr geehrte Mitglieder,

ich hab ein Programm erstellt, das 6 Motoren und 7 weitere Aktoren gleichzeitig und unabhängig voneinander ansteuert. Die Kommunikation zu den Motoren und Aktoren funktioniert einwandfrei.
Den Motoren muss man jede Sekunde oder schneller die Kommandos schicken (sprich Drehzahl und Drehrichtung), ansonsten bremsen sie ab.

Gleichzeit werden die Daten die die Motor zurückgeben in einer TDMS-Datei gespeichert.

Die ersten Seiten der Registerkarte dienen zur Initialisierung. Mir geht es um Seite 4 im Blockdiagramm.

Wenn ich das Programm laufen lasse bekommen die Motoren die Kommandos zu spät, also nicht jede Sekunden sondern nur alle 1,2 Sekunden. Das ist zu langsam.
Können Sie mir Tipps geben wie ich das Programm beschleunigen könnte?


Ich freue mich von Ihnen zu hören

Mit freundlichen Grüßen
martinkrimsh.


Angehängte Datei(en)
14.0 .vi  main_Prüfstand_Dauertest.vi (Größe: 366,56 KB / Downloads: 248)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 11:21
Beitrag #4

martinkrimsh. Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2016

NI LabVIEW 2014
2014
DE



RE: Programm ist zu Langsam
Den Beitrag habe ich verschoben.

Er ist jetzt unter folgendem Link zu Finden:
LabVIEWForum.de / LabVIEW / LabVIEW Allgemein / Instrument IO & VISA v / Programm ist zu Langsam


Gruß
martinkrimsh.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 11:27 (Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2016 11:53 von Trinitatis.)
Beitrag #5

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Programm ist zu Langsam
Hallo Martin,

deine Sub-VIs, die du da alle scheinbar parallel abarbeitest, werden nur parallel abgearbeitet, wenn es alles verschiedene VIs sind, oder (wenn es ein und das selbe VI ist) dann muss es ablaifinvariant sein und es darf keine Datenflussabhängigkeiten zwischen ihnen geben. Da du nur das Main angehängt hast, kann ich das nicht prüfen.
Wenn deine Kommunikation in einem VI 100ms dauert, addieren sich im Sequenziell-Abarbeitungsfall die Zeiten,

Das könnte ich mir hier als Grund vorstellen.

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 13:35 (Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2016 13:35 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Programm ist zu Langsam
(14.07.2016 11:27 )Trinitatis schrieb:  deine Sub-VIs, die du da alle scheinbar parallel abarbeitest, werden nur parallel abgearbeitet, wenn es alles verschiedene VIs sind, oder (wenn es ein und das selbe VI ist)
Die SubVIs mögen zwar vom Code her gleich sein, es handelt sich hier aber um Kopien, die jeweils nur 1 Mal verwendet werden. (Jede Kopie hat einen eigenen Namen). Das ist gewissermaßen die umständliche Anfänger-Methode, ein SubVI ablaufinvariant zu machen. Die SubVI arbeiten also parallel, genau als wenn man nur ein ablaufinvariantes VI verwendet hätte,

Trotzdem: Das Geheinmis der Langsamkeit liegt bestimmt in den SubVIs. Es wäre als sehr sinnvoll, die auch noch zu posten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.07.2016, 13:53
Beitrag #7

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Programm ist zu Langsam
(14.07.2016 13:35 )Lucki schrieb:  Die SubVIs mögen zwar vom Code her gleich sein, es handelt sich hier aber um Kopien, die jeweils nur 1 Mal verwendet werden. (Jede Kopie hat einen eigenen Namen).

Genau das wusste ich nicht, weil die VIs fehlten. Ich habe dann jetzt aber auch in der Kontexthilfe gesehen, dass sie alle namentlich unterschiedlich sind.


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 14:59
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Programm ist zu Langsam
(14.07.2016 13:53 )Trinitatis schrieb:  Ich habe dann jetzt aber auch in der Kontexthilfe gesehen, dass sie alle namentlich unterschiedlich sind.
Ich aktiviere dazu immer "Sichtbare Objekte/Beschriftung". Obwohl das VI selbst gar nicht existiert, funktioniert das erstaunlicherweise - genau so wie auch die von Dir benutzte Kontexthilfe.
Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 15:00
Beitrag #9

martinkrimsh. Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2016

NI LabVIEW 2014
2014
DE



RE: Programm ist zu Langsam
Vielen Dank für Ihre schnellen Rückmeldungen.
Die SubVI´s für die einzelnen Motoren sind zwar vom Aufbau identisch, aber sind alle extra abgespeichert, also kein copy paste.

Das SubVI_Lüftermotor1_ansteuern ist für eben den 1. Motor zuständig. In diesem SubVI befinden sich noch weiter SubVI´s (SubVI_EBM_COM_INIT_Motor1, SubVI_Soll-Drehzahl_Motor1, SubVI_EEPROM write turn_Motor1, SubVI_Ist-Drehzahl_auslesen_Motor1), also noch eine ebene tiefer.
Ich glaub daran liegt das Problem, aber ich brauch die komplexität der VI´s um die richtigen Motorbefehle (Schnittstellenprotokoll) zu senden.

schon mal vielen Dank im voraus für Ihre Hilfe

viele Grüße
martinkrimsh


Angehängte Datei(en)
14.0 .vi  SubVI_Lüftermotor1_ansteueren.vi (Größe: 39,34 KB / Downloads: 266)

14.0 .vi  SubVI_EBM_COM_INIT_Motor1.vi (Größe: 25,64 KB / Downloads: 259)

14.0 .vi  SubVI_Soll-Drehzahl_Motor1.vi (Größe: 32,7 KB / Downloads: 231)

14.0 .vi  SubVI_EEPROM write turn_Motor1.vi (Größe: 37,16 KB / Downloads: 260)

14.0 .vi  SubVI_Ist-Drehzahl_auslesen_Motor1.vi (Größe: 32,04 KB / Downloads: 244)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2016, 15:10
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm ist zu Langsam
Hallo Martin,

es fehlen noch weitere subVIs (Checksummenberechnung, Typdefs, …)!

Abgesehen davon:
- Jeder "Stellbefehl" enthält eine Schleife, die bis zu 5mal wiederholt wird.
- die Kommunikation ist für 38.4kbaud ausgelegt: die RS232 ist damit nicht besonders schnell
- in diesen Schleifen gibt es Wartezeiten, z.T. "nur" 2ms, aber auch mal bis zu 100ms!
- es wird mit Semaphoren hantiert: evtl. sperrt man darüber den parallelen Zugriff auf mehrere/andere Geräte und bremst sich somit gegenseitig aus!?
- der COM-Port wird bei jedem Aufruf erneut konfiguriert: ist das sinnvoll oder gar notwendig?

Und das alles bei einem flüchtigen Blick in VIs, bei denen etliche subVIs noch fehlen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: