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.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Softwarearchitekt LabVIEW/Teststand (m/w/d)
Gerlingen

Validation Engineer (m/f/d)
Friedrichsdorf

Ingenieur / Tester - Powertrain Komponenten (m/w/d)
Berlin

Ingenieur Elektrotechnik für Standardisierung und Automatisierung (i/m/w)
Velden

Experte Systementwicklung Brennstoffzelle (m/w/d)
Herzogenaurach

Entwicklungsingenieur / Elektronikingenieur (m/w/d)
Feldkirchen

Softwareentwickler für Prüfsysteme (m/w/d)
Ingolstadt

Ingenieur/in für optische Systeme (m/w/d)
Ludwigshafen





.
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Hilfsvariable in Formel
07.09.2015, 08:43, (Dieser Beitrag wurde zuletzt bearbeitet: 07.09.2015, 08:45 von MuA.)
#1
DIAdem-Version: 2014
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
Hilfsvariable in Formel

Hallo Zusammen,

ich versuche gerade, den Wert einer Hilfsvariablen in einer Formel zu verrechnen. Es sollen Kraftresultierende aus Drücken und Flächen berechnet werden. Mit festen Werten für die Flächen funktioniert es:

Call Calculate("Ch(""["+T1+"]/Kraft"")=Ch(""["+T1+"]/Druck"")*15.4",NULL,NULL,"")

nun will ich den Wert der Fläche mit einem SUD-Dialog angeben (klappt auch) und in die Formel einbauen:

Call Calculate("Ch(""["+T1+"]/Kraft"")=Ch(""["+T1+"]/Druck"")*(""["+R1+"]"")",NULL,NULL,"")

mit dem Ergebnis: Typen unverträglich.
Was ist der Fehler?
Man merkt vielleicht schon, ich bin kein Programmierer und streite semi-erfolgrich mit Klammern und Gänsefüsschen. Für Hinweise bedanke ich mich im Voraus!

Andi

Antworten
07.09.2015, 09:02,
#2
DIAdem-Version: 2014SP1, 2015SP2, 2017SP1 und DIAdem 2018 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: Hilfsvariable in Formel

Hallo Andi,

du must den Inhalt von R1 als Text im String einfügen: ...&str(R1)&...
Schau dir mal die beiden Parameter [CalculateSymbols], [CalculateValues] und die Beispiele im Befehl Calculate an. Damit kannst du das Chaos mit den Anführungszeichen elegant umgehen.

Gruß
Voyager

Antworten
07.09.2015, 12:44,
#3
DIAdem-Version: 2014
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: Hilfsvariable in Formel

Hallo Voyager,

und Danke für die Nachricht. Ich hab mal versucht.

1. Schuss:
Call Calculate("Ch(""["+T1+"]/Kraft"")=Ch(""["+T1+"]/Druck"")*"(str(R2)),NULL,NULL,"")
Ergebnis: Typen unverträglich: '[string: "]/Druck")*"]'

2. Schuss:
Dim sFormula, aSymbol(2), aValues(2)
sFormula = "Ch(""["+T1+"]/Kraft 31"") = A * B"
aSymbol(1) = "A"
aSymbol(2) = "B"
aValues(1) = "Ch(""["+T1+"]/Druck"")"
aValues(2) = R2
Call Calculate (sFormula, aSymbol, aValues)
Ergebnis: Anweisungsende erwartet.

Ich hab das Gefühl, es fehlt nicht mehr viel. Aber nach Gefühl Scripte schreiben ist halt auch nix. Was mach ich hier falsch?
Ein Voraus-Danke
Andi

Antworten
14.09.2015, 06:12,
#4
DIAdem-Version: 2014
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: Hilfsvariable in Formel

Hallo Zusammen,

ich habe dann doch eine Formel zusammen gebracht, die keine Fehlermeldungen mehr generiert:

Dim sFormula, aSymbol(3), aValues(3)
sFormula = "Ch(""["+T1+"]/Kraft"") = (B * C) * A"
aSymbol(1) = "A"
aSymbol(2) = "B"
aSymbol(3) = "C"
Set aValues(1) = Data.GetChannel("["+T1+"]/Druck")
aValues(2) = str(R2)
aValues(3) = 10
Call Calculate (sFormula, aSymbol, aValues)

Dabei wird vorher der Wert für R2 via SUD-Dialog festgelegt. Wenn ich mir den eingegebenen Wert mit MsgBox anzeige, stimmt der Wert.
Aber bei der Berechnung in der Formel wird ein Komma nicht erkannt (z.B.: statt 13,4 wird mit 134 gerechnet), dabei ist es egal, ob ich das Komma als Komma oder als Punkt eingebe.
Kann mir jemand erklären, wieso das so ist oder wo die passende Stellschraube zu finden ist?
Vielen Dank im Voraus
Andi

Antworten
14.09.2015, 07:17,
#5
DIAdem-Version: 2014SP1, 2015SP2, 2017SP1 und DIAdem 2018 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: Hilfsvariable in Formel

Hallo Andi,

eigentlich müsste die Stringwandlung bei aValues(2) = str(R2) überflüssig sein.

Ansonsten:
Um bei Eingabefeldern Dezimalpunkt oder -komma zu verwenden hilft z.B: folgender Trick:

T1 = "34,2"
R2 = cdbl(replace(T1,".",","))
call msgboxdisp(r2)

Gruß
Voyager

Antworten
17.09.2015, 07:47,
#6
DIAdem-Version: 2014
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: Hilfsvariable in Formel

Hallo Voyager,

danke für die Antwort. Ich hab die Formel soweit verkleinert, dass erkennbar wird, wo das Komma nicht verarbeitet wird:

Dim R1
R1=1.54

Call Data.Root.ChannelGroups(1).Channels.Add("Formel",DataTypeFloat64)

Dim sFormula, aSymbol(2), aValues(2)
sFormula = "Ch(""[1]/Formel"") = A * B"
aSymbol(1) = "A"
aSymbol(2) = "B"
aValues(1) = 10
aValues(2) = str(R1,"d.dd")
Call Calculate (sFormula, aSymbol, aValues)

Call MsgBox (aValues(2))
Call MsgBox (Data.Root.ChannelGroups(1).Channels("Formel").Properties("maximum").Value)

Hier entspricht aValues(2)=1,54, gerechnet wird aber mit 154.
Jetzt ist mir noch nicht klar, wie ich deinen Tip (cdbl(replace(T1,".",","))
) hier einpflege. Ein bisschen probieren hat mich nicht wirklich weiter gebracht.
Für Tips bin ich dankbar!
Andi

Antworten
17.09.2015, 08:06,
#7
DIAdem-Version: 2014SP1, 2015SP2, 2017SP1 und DIAdem 2018 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: Hilfsvariable in Formel

Funktioniert das nicht?

aValues(2) = R1

Antworten
21.09.2015, 06:22,
#8
DIAdem-Version: 2014
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: Hilfsvariable in Formel

(17.09.2015, 08:06)voyager schrieb:  Funktioniert das nicht?

aValues(2) = R1


Hallo voyager,

es funktioniert. Die Stringwandlung war nicht nur überflüssig, sondern offensichtlich sogar schädlich.
Danke für die Hilfe!

Andi

Antworten


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Syntax Formel in Script derschotte 2 12.094 26.03.2015, 08:42
Letzter Beitrag: derschotte
  Problem: Aufruf von Konstante in Formel p2b 2 10.719 05.11.2012, 09:34
Letzter Beitrag: p2b

Gehe zu: