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 

[gelöst]Designfrage



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.07.2009, 13:37
Beitrag #1

achim @ FZK Offline
CLD
**


Beiträge: 117
Registriert seit: Nov 2008

201x
2005
DE_EN

76861
Deutschland
[gelöst]Designfrage
Hallo,
ich bastel an einem Programm welches über 2 Profibusschnittstellen einer SIEMENS S7-400 einen kompletten Profibusstrang simuliert.
Dies dient zum test der Anlage vor der IBN. Das Programm steht soweit und funktioniert tadellos.

Ich suche aber nach einer Möglichkeit bei künftigen Einsätzen etwas Zeit zu sparen bis die Simulation einer Anlage steht.
Folgendes Problem.
Ich habe eine globale Variable in der alle Adressen und aktuellen Werte aller simulierten Komponenten (Pumpen, Ventile, Heizungen, ...) stehen.
Alle Adressen und Variablen von jeder Komponente stehen in dieser globVar in einem Cluster.
Jedes Cluster besitzt ein ENUM-Bedienfeld namens 'Fehler'. Hiermit kann während der Simulation vom Normalbetrieb abgewichen werden.
Damit ich Einfluss auf das ENUM in der globalen Variablen nehmen kann, habe ich es bisher so gemacht, dass ich mir ein gleiches ENUM in einem VI hinterlegt habe und jede Wertänderung des ENUMs mittels Eventstrukturen in die GlobaleVariable eingetragen habe. Nun kann man sich denken, dass wenn man 300 Komponenten hat die alle ein Fehler-ENUM haben das anlegen der Events recht mühselig, um nicht zu sagen Sklavenarbeit, ist.
Kann man das nicht irgendwie einfacher machen?
Angehangen hab ich mal die globale Variable. (Version 8.51)

Ziel ist es also aus einem VI die Fehler-ENUMs zuverändern ohne in dem VI jedes ENUM mit einem Event bei Wertändeurng in die globale Variable schreiben zu lassen...

Ich bin über jede Idee dankbar.

Viele Grüße,
Achim


Angehängte Datei(en)
Sonstige .vi  Globale_Var.vi (Größe: 1,25 MB / Downloads: 188)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.07.2009, 14:46
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
[gelöst]Designfrage
' schrieb:Ich habe eine globale Variable in der alle Adressen und aktuellen Werte aller simulierten Komponenten (Pumpen, Ventile, Heizungen, ...) stehen.
Naja, ist halt so.

Zitat:Alle Adressen und Variablen von jeder Komponente stehen in dieser globVar in einem Cluster.
Sind wenigsten alle Cluster vom selben Typ? bzw. würden alle Datensätze pro Komponente so umbaubar sein, dass der selbe Typ rauskommt?

Zitat:Nun kann man sich denken, dass wenn man 300 Komponenten hat die alle ein Fehler-ENUM haben das anlegen der Events recht mühselig, um nicht zu sagen Sklavenarbeit, ist.
Um die Sklaven wäre es mir nicht Schade, die sind dafür da, das zu tun. Yahoo
Aber: 300mal eine Sache machen ist enorm Fehleranfällig (auch, wenns Sklaven machen).

Zitat:Kann man das nicht irgendwie einfacher machen?
Alle Cluster in ein Array legen und den Komponentenname als Indes in das Array verwenden. In der Eingabe dann Komponente auswählen, die manipuliert werden soll, und die manipulierten Daten dann über den Index dem entsprechenden Cluster zuweisen.

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
10.07.2009, 18:27
Beitrag #3

ImExPorty Offline
LVF-Freak
****


Beiträge: 572
Registriert seit: Jan 2008

8.6
2001
kA

65934
Deutschland
[gelöst]Designfrage
' schrieb:...dass wenn man 300 Komponenten hat die alle ein Fehler-ENUM haben das anlegen der Events recht mühselig, um nicht zu sagen Sklavenarbeit, ist....
das schreit nach LV - Scripting

1 Postingempfehlungen, 2 Motivation
Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2009, 06:30
Beitrag #4

achim @ FZK Offline
CLD
**


Beiträge: 117
Registriert seit: Nov 2008

201x
2005
DE_EN

76861
Deutschland
[gelöst]Designfrage
' schrieb:Sind wenigsten alle Cluster vom selben Typ? bzw. würden alle Datensätze pro Komponente so umbaubar sein, dass der selbe Typ rauskommt?
Ne, das ist unmöglich. Zum Beispiel einen Temperatursensor so aufzublähen, dass zwischen ihm und einer Turbomolekularpumpe kein Unterschied mehr besteht wäre vielleicht irgendwie möglich aber das würde die Variable um den Faktor 10 erweitern und die Lesbarkeit um den gleichen Faktor vermindern.

' schrieb:Um die Sklaven wäre es mir nicht Schade, die sind dafür da, das zu tun. Yahoo
Aber: 300mal eine Sache machen ist enorm Fehleranfällig (auch, wenns Sklaven machen).
Genau darum gehts. Es ist ne scheiß Arbeit, welche man mit Sicherheit nicht auf Anhieb fehlerfrei macht.

' schrieb:Alle Cluster in ein Array legen und den Komponentenname als Indes in das Array verwenden. In der Eingabe dann Komponente auswählen, die manipuliert werden soll, und die manipulierten Daten dann über den Index dem entsprechenden Cluster zuweisen.
Dies setzt voraus, dass alle Cluster gleich sind.

Ich habe etwa 15 verschiedene Cluster. Fast alle haben das benötigte ENUM mit dem Namen 'Fehler'. Ich wäre ja schon zufrieden, wenn ich mir für jeden unterschiedlichen Typ irgendwas basteln könnte....

' schrieb:das schreit nach LV - Scripting
hört sich schon mal gut an... sagt mir nur nix Huh
Kann mir jmd nen Tipp geben wie das geht, ob ich dafür was verändern muss, etc

Danke!

Gruß Achim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2009, 06:47
Beitrag #5

achim @ FZK Offline
CLD
**


Beiträge: 117
Registriert seit: Nov 2008

201x
2005
DE_EN

76861
Deutschland
[gelöst]Designfrage
Im Grunde würde ich ja so vorgehen sollen:

Alle Referenzen auf die Cluster in meiner globalen Variaben in ein Array (Referenzen gehen aber sicherlich nur auf ganze VIs und nicht auf Cluster innerhalb einer GlobVar, oder?)
Günstig könnte der Umstand sein, dass alle Cluster strict-Typ-Def sind...
Mit meinem Gedanken könnte ich dann dieses Array durchlaufen und jeweils prüfen ob das Cluster von Typ xy ist...
wenn ja dann 'kopiere' ich das Fehler ENUM heraus. Dann muss ich es immer noch irgendwie schaffen die Verbindung zwischen dem Oberflächen-VI und der globVar hinzubekommen...

Vielleicht ist mein Gedanke auch nicht in LV umsetzbar... ist halt nur so eine Idee...
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
Thumbs Down [gelöst]Distributed System Manager (DSM) Sprache ändern achim @ FZK 1 5.139 10.08.2011 06:17
Letzter Beitrag: jg
  [gelöst]BoolArray nach Real (IEEE754) achim @ FZK 2 5.154 01.06.2011 09:11
Letzter Beitrag: achim @ FZK
  [gelöst]SNMP in LabVIEW achim @ FZK 8 9.332 13.05.2011 07:26
Letzter Beitrag: NWOmason
Lightbulb Gelöst: Höhe der Anzeige eines Arrays ändert sich ständig... derschlambi 2 5.501 12.04.2011 14:52
Letzter Beitrag: derschlambi
  [Gelöst] Optionalem Eingang am SubVI einen Defaultwert zuweisen Stephan Vogt 2 5.795 23.11.2010 13:02
Letzter Beitrag: Stephan Vogt
  [gelöst] Punkte in chart anzeigen kor 2 3.507 30.07.2009 09:32
Letzter Beitrag: kor

Gehe zu: