Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Testingenieur (m/w) bei Healthcare CV
Planung und Durchführung von Komponenten- und Integrationstests
Siemens AG
Erlangen
Entwicklungsingenieur Messtechnik und Fahrzeugelektronik (m/w)
Planung und Durchführung von Projekten im Bereich NFZ-Messtechnik
MBtech Group GmbH Co. KGaA
Magstadt bei Sindelfingen
Getriebemechatroniker (m/w)
Sensorik - konstruktive Integration, Erstellung von Toleranzrechnungen
MBtech Group GmbH Co. KGaA
Fellbach bei Stuttgart
Entwickler für Mechatronikkomponenten in Automatgetrieben (m/w)
Konzeption elektrohydraulischer Steuereinheiten
MBtech Group GmbH Co. KGaA
Fellbach bei Stuttgart
Entwicklungsingenieur Getriebemechatronik (m/w)
Bearbeitung von Getriebe und Hybrid Aufgabenstellungen
MBtech Group GmbH Co. KGaA
Fellbach bei Stuttgart
Versuchsingenieur (m/w) Systemprüfstand elektrische Parkbremse
Erstellung, Durchführung und Auswertung von Versuchsprogrammen an Systemprüfständen
Continental AG
Frankfurt
Systemingenieur Fußgängerschutz / Pedestrian Protection System Engineer (m/w)
Bewertung von Styling-, Package- und Bauteilvarianten
EDAG GmbH Co. KGaA
Ingolstadt, München, Sindelfingen, Fulda
Systemingenieur Rückhaltesysteme / Restraint System Engineer (m/w)
Bewertung von Styling-, Package- und Bauteilvarianten, Versuchs- und Berechnungsplanung
EDAG GmbH Co. KGaA
Osnabrück, Ingolstadt, München, Sindelfingen, Fulda
Versuchsingenieur Betriebsfestigkeit (m/w)
Auswertung von Messdaten im Bereich Betriebsfestigkeit
MBtech Group GmbH Co. KGaA
Wörth, Untertürkheim
Applikationsingenieur Abgasnachbehandlung /-OBD Otto (m/w)
Applikation, Test und Validierung von Softwarefunktionen der Abgasnachbehandlung / - OBD
MBtech Group GmbH Co. KGaA
Fellbach
Applikationsingenieur Abgasnachbehandlung / SCR Dosiermodul (m/w)
Spezifikation, Applikation, Test und Validierung von Softwarefunktionen der Abgasnachbehandlung
MBtech Group GmbH Co. KGaA
Fellbach
Entwicklungsingenieur Fahrzeugapplikation Verbrennungsmotor (m/w)
Applikation, Test und Validierung von Motorsteuergerät-Funktionen auf den Gebieten Fahrbarkeit und Regelungssysteme
MBtech Group GmbH Co. KGaA
Fellbach

Stand: 18:29:43 19.05.2012



.
 
Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Channel ansprechen
26.11.2010, 12:57
Beitrag #1
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
Channel ansprechen

Hallo allerseits,

ich habe schon recht viel in VBS in DIAdem programmiert, aber ein Problem taucht immer wieder auf, der Zugriff auf Channel bzw. Channelinhalte in verschiedenen Channelgroups.

Viele Befehle wie z. B. Chnname(x) etc. erlauben nicht die Angabe einer Channelgroup sondern nur eine Kanalnummer. Auch ChD(i,4) etc. erlaubt keine Channelgroup auswahl. Baluäugig bin ich davon ausgegabgen, dass sich diese Befehle immer auf Kanäle in der aktuell aktivierten Gruppe beziehen (mittels Call GroupDefaultSet(GroupIndexGet(nameGruppe))
oder Call Data.Root.ChannelGroups(GroupIndexGet(nameGruppe)).Activate()
ausgewählt).
Leider scheint dem nicht so, statt dessen ist immer die erste Gruppe betroffen. Ist dies historisch bedingt (früher gab es wohl keine Channelgroups) oder mache ich einfach irgendetwas falsch.
Zudem schwanke ich bei den Zugriffsmodellen zwichen den objektorientieren Ansatz über "Data.Root......" und den klassischen Befehlen wie Chnname etc. Ist dies eine Glaubensfrage oder gibt es harte Argumente für ein einheitliches Vorgehen?

Vielen Dank schon einmal
Christian

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



26.11.2010, 13:21
Beitrag #2
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Channel ansprechen

Hallo Christian,

DIAdem arbeitet per Default im namensorientierten Modus. In den allgemeinen Einstellungen zu DIAdem kannst du die verwendete Syntax für die namensorientierten Kanalbezüge einstellen. Und in den allgemeinen Einstellungen zu REPORT kannst du festlegen, ob namensorientierten Kanalbezüge verwendet werden sollen. Diese Einstellungen werden in der Desktop Datei gespeichert.

Ich habe gerade folgendes getestet: msgbox chnname("[1]/[2]") - das funktioniert (also mit Kanalgruppenbezug).

Aber du hast recht, dieser Befehl stammt noch aus "längst" vergangenen Zeiten, in denen es kein TDM gab. Aus Gründen der Kompatibilität werden diese Befehle weiterhin unterstützt. Besser ist es natürlich die neue Syntax zu verwenden, die Data-API.

msgbox Data.Root.ChannelGroups(1).Channels(2).Name

oder besser

set oChn = Data.Root.ChannelGroups(1).Channels(2)
msgbox oChn.Name

Hierzu kannst du auch dir gerne auch die DIAdem Tutorials in diesem Forum anschauen.

Carpe DIAdem

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2010, 14:09
Beitrag #3
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
RE: Channel ansprechen

Vielen Dank Carpe_Diadem für die schnelle Antwort.

msgbox chnname("[1]/[2]") mag funktionieren (ich habe nicht alle Bezugsmethoden durchprobiert) aber das wesentlich wichtigere ChD(i,x) konnte ich so nicht zum laufen bringen. Das Problem ist das das Verhalten von DIAdem nicht eindeutig erscheint. Ab und zu beziehen sich diese Befehle tatsächlich auf die aktuelle Channelgroup, ab und zu wird immer nur die erste angesprochen. Dies scheint eher zufällig (evtl. arbeitet DIAdem intern mit dem objektorientierten Ansatz und "mapped" die alten Befehle um, je nachdem wann die interne Referenzen aktualisiert werden kommen so falsche Bezüge zustande). Wenn dem so wäre, ist es SEHR unbefriedgend das im Handbuch nicht an prominenter Stelle von der Verwendung des alten Syntax gewarnt werden. (Hat mich sicherlich schon einige Arbeitstage gekostet) Ein derart zufälliges Verhalten ist dummerweise kaum zu Debuggen.
Problem bei dem Data Api ist der häufig sehr lange Aufruf, dies zerstört die Übersichtlichkeit, bzw. zerfasert die Programmierung durch häufige set Aufrufe. Aber dies ist sicherlich geschmackssache. Mir wird aber gar nichts anderes übrig bleiben als komplett umzusteigen.

Unbedingt nötig ist aber eine Neuordnung im DIAdem Handbuch. Es sollte strikt eine (in sich geschlossene) Programmierphilosophie benutzt werden und alte Befehle die nur der Kompatibilität dienen auch so gekennzeichnet sein.

An sich aber ein gut gelungenes Programm mit dem es Spass macht zu arbeiten!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2010, 14:22 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2010 14:24 von Carpe_DIAdem.)
Beitrag #4
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Channel ansprechen

Hallo Christian,

das freut mich zu hören (das mit dem gelungenem Programm und dem Spaß).

Die Umstellung auf die Data-API ist eine Entscheidung, die nicht leichtfertig getroffen wurde. Sie war aber notwendig um eine höhere Flexibilität, bessere Lesbarkeit und Wartbarkeit von Scripten zu erhalten - aber vor allem um die Verarbeitungsgeschwindigkeit erheblich zu steigern.
So gibt es keinen schnelleren Zugriff auf einen Kanaleinzelwert als den über das Kanalobjekt.

set oChn = Data.Root.ChannelGroups(1).Channels(2)
msgbox oChn(2) ' zweiten Wert aus zweitem Kanal der ersten Kanalgruppe anzeigen

Übrigens bei mir funktioniert auch: msgbox chd(2,"[1]/[2]")

Carpe DIAdem

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


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Kanäle ansprechen über Variable und String? Noob_VB_User 2 1.358 31.05.2010 15:44
Letzter Beitrag: Noob_VB_User
  Automatisch Channel und Dateien erzeugen von vielen Tabellen jub 2 862 11.08.2009 08:12
Letzter Beitrag: jub
  Ein Bereich in einem Channel auswählen psykoman 3 1.084 26.06.2009 09:10
Letzter Beitrag: Bruno

Gehe zu: