DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

cells connect automatically

Hi at all
 
I have a little problem.
I create some new cells from VBS-scirpt with the function Call BlCopy ("name").
How can I connect these cells automatically from the script?
 
Thanks
0 Kudos
Message 1 of 11
(4,902 Views)

Hi Joh_Joh,

what do you mean by "connect these cells automatically"?  Do you mean read and write values from/to them?  If so, you can use the ChD() command in a DIAdem VBScript.  Do you mean setting up an Excel-like cell-to-cell relationship?  this is not possible, since DIAdem has a channel-based paradigm, not a cell-based paradigm.  You can always execute a VBScript to update values in some cells based on values in other cells, but this functional relationship is not saved into the channels instead of their values, as can be done in Excel.

Or did you mean something else entirely?
Brad Turpin
DIAdem Product Support Engineer
National Instruments

0 Kudos
Message 2 of 11
(4,894 Views)

Thank you, Brad.

My English is bad, i know 🙂

I use a German Diadem 9.1 therefore I do not know, how that is called in English.

I make a DAC-Flat(?) from a vbs-script. I can create new things such "TCP/IP-Text-Client" or "Text-Multiplexer" with the function Call BlCopy ("Text-Multiplexer"). But these things don't connect with each other. I would like to connect they from the script. How can i do it?

Thank you very much.

0 Kudos
Message 3 of 11
(4,887 Views)

Hi joj_joh,

Please rephrase in German.  Ich spreche fliessend Deutsch, und ich verstehe leider immer noch nicht, was Sie meinen.  Benutzen Sie vielleicht DIAdem-DAC?

Bid bald,
Brad Turpin
DIAdem Product Support Engineer
National Instruments

 

0 Kudos
Message 4 of 11
(4,879 Views)

Hallo, Brad.

Dann versuche ich es in Deutsch 😉

Im Diadem-DAC-Modul kann man Messpläne erstellen. Man fügt verschieden Blöcke ein und verbindet sie mit entspechenden Signalleitungen zu einem Messplan. Man macht also alles per Hand (einfügen, verbinden). Ich würde das aber gerne aus einem VB-Script heraus machen. Also automatisch. Bis jetzt kann ich neue Blöcke mit Hilfe der Funktion BlCopy("Name des Blocks") in den Messplan einfügen. Mit DACObjPosSet(Name, Position) kann ich sie an bestimmte Stellen verschieben.

(Kann ich auch anders neue Blöcke im Messplan erzeugen?)

Es sind zwar nur Kopien, aber für das Este reicht. Das Problem ist jetzt: die Blöcke mit entsprechenden Signalleitungen miteinander zu verbinden. Per Hand geht das natürlich, aber wie mache ich es aus dem VB-Script heraus?

Vielen Dank.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

In der Diadem-Hilfe gibt's eine Reihe von Funktionen und Variablen, die einen Zugriff auf den Inhalt des Objekts erlauben. Die Namen beginnen meist mit Bl...... (steht wohl für Block). Aber ich kann sie nur teilweise einsetzen.

mit BlPinCount bekomme ich die Anzahl der Anschlüsse eines Blocks, hier alles klar. Aber es gibt auch sowas (aus Diadem-Hilfe):

"Objektvariable des geöffneten Blockanschlusses: Name des aktuell bearbeiteten Blockanschlusses"

 Definition BlActPinName

Man muss, um auf diese Variable zugreifen zu können, einen Blockanschluss öffnen, oder? Aber wie öffne ich einen Blockanschluss? Ich habe die Diadem-Hilfe zig Mal rauf und runter durchgeguckt, ich finde nichts.

Ein Paar Funktionen sind so knapp beschrieben, dass ich nicht verstehe, was sie tun und wenn man sie im Script einsetzt, dann passiert auch nichts. z.B: BlObjNew(), BlPinCableInit()

Jetzt habe ich aber viel geschrieben 🙂

Danke denen, die bis hierher geschafft haben.

0 Kudos
Message 5 of 11
(4,869 Views)
Hallo joh_joh,

Normalerweise sind die Schaltpläne in DAC nur interaktiv manipulierbar. Es gibt aber eine Reihe von Funktionen und Variablen, die man theoretisch auch in Scripten benutzen kann. BlCopy ist so eine Funktion, die für sich betrachtet aber relativ sinnlos ist. Es gibt auch etliche Funktionen die ausschließlich für die interne Nutzung in den Dialogen eingebaut wurden und die nur funktionieren wenn man ein Objekt anklickt weil dann intern einige Vorbereitungen getroffen werden. In Scripten können diese Funktionen entweder überhaupt nicht, oder nur unter bestimmten Umständen eingesetzt werden. Ich vermute BlPinCount ist so eine Funktion und wäre besser überhaupt nicht in der Hilfe beschrieben.

Viele Aufgabenstellungen lassen sich auch ohne interaktive Änderungen im Schaltplan lösen. Wenn man z.B. per Script einstellen möchte welche Eingänge gemessen werden sollen und welche nicht, kann man zunächst einen Schaltplan mit allen Eingängen erstellen und dann einzelne Eingänge per Script deaktivieren. Die deaktivierten Kanäle behalten ihre Position in den Leitungen und Blöcken, werden aber bei der Messung nicht berücksichtigt.

Ob eine solche Lösung in diesem speziellen Fall möglich ist, kann ich so natürlich nicht beurteilen.
Message 6 of 11
(4,861 Views)

Danke Ulrich.

Ich muss wohl meinen Traum aufgeben.

Aber das hier ist auch gut. ".....und dann einzelne Eingänge per Script deaktivieren."

Wie mache ich das?

Gruß

0 Kudos
Message 7 of 11
(4,856 Views)
Ich habe im Moment nur simulierte Eingänge. Da geht es wie folgt:

Call DACObjOpen("Random1")
  BLDATAACTIVE(1)  ="Yes"
  BLDATAACTIVE(2)  ="No"
  BLDATAACTIVE(3)  ="Yes"
Call DACObjClose("Random1")

Eingang 2 des Blocks Random1 ist jetzt deaktiviert. Das sollte bei allen Einzelwert-Eingangsblöcken funktionieren.

0 Kudos
Message 8 of 11
(4,852 Views)

Hi.

Hab's versucht, das Ergebnis ist in der Anlage.

Die Fehlermeldung habe ich auch bei den anderen Bl..... Variablen oft zu Gesicht bekommen.

0 Kudos
Message 9 of 11
(4,833 Views)
Der Code funktioniert nur bei Eingangsblöcken (hier wäre das der Generator1). Dort gibt es eine Eingangsliste mit einer Aktiv- Spalte, die über den Script auf Ja oder Nein gestellt werden kann. Der Anzeigeblock hat diese Liste nicht und kennt damit auch die Variable nicht.

In der Hilfe der Dialoge ist immer beschrieben welche Einstellungen über einen Script zugänglich sind. In den DAC-Blöcken ist das aber meistens nicht viel.
Message 10 of 11
(4,825 Views)