Beispiel einer ausgefeilten IMETER AdHoc Anwendung zur Messung von Flüssigkeits- und/oder Feststoffdichte und/oder Oberflächenspannung:

schnellste Messung!

sofortige Messung der Flüssigkeitsdichte - einfach intuitiv!

Es kann vorkommen, dass man vor allem schnell gewisse Stoffkennzahlen benötigt. Hier wird ein Beispiel vorgestellt, wie das IMETER-Framework für solche Aufgaben eingerichtet werden kann. Nach der Verfahrensbeschreibung finden Sie weiter unten den Quelltext des IMPros "schnellste Messung!" und Hinweise zur Nutzbarmachung. Die hier angewendete AIM-Technik ist auf der Seite zur AIM-Integration beschrieben. Der Videoclip dazu ist bei YouTube https://youtu.be/mg3DSjoZqvE zu finden.


Die sofortige Dichtemessung läuft so ab:

1. Der Anwender setzt die Messkörperaufhängung am Gerät ein. (Die IMETER-Software registriert an der Wägezelle das bestimmte Gewicht des Objekts und startet damit das zugeordnete IMPro "schnellste Messung!".)



2. Der Dichtemesskörper wird eingesetzt ...
und das IMPro "schnellste Messung" erkennt den Messkörper an seinem Trockengewicht und startet damit die fortwährende Ergebnisausgabe der Dichtemesswerte.

 

3. Der Anwender taucht den Messkörper einfach in das Probengefäß und liest das parallel angezeigte Ergebnis ab. Am Monitor werden fortlaufend die zum gemessenen Gewicht gehörigen Dichtewerte ausgegeben.

Oder etwas langsamer aber exakter nach folgendem Verfahren:


1. ... für etwas genauere Messungen - insbesondere dann, wenn die Probentemperatur von der Umgebungstem­peratur abweicht - wird per Taste am IMETER-Gerät signalisiert, dass das IMPro "schnellste Messung" zu einem Alternativmodus der Dichtemessung mit Plattformsteuerung und Temperaturablesung wechselt.

 

2. Der Anwender führt den Temperaturfühler in die Probe und stellt diese auf die Plattform, drückt die START-Taste und die Plattform fährt automatisch in die passende Höhe zur Messung. Das Ergebnis wird angezeigt.

Um Probe oder Messkörper zu wechseln, wird die START-Taste gedrückt woraufhin die Plattform nach unten fährt.

 Messungen von Feststoffdichte und Oberflächenspannung - ebenso!


3. Nimmt der Prüfer den Dichtemesskörper von der Aufhängung ab, geht das IMPro "schnellste Messung!" in einen Bereitschaftszustand über. Setzt man nun z.B. eine bestimte Prüfkörperaufnahmen für die Feststoffdichtemessung ein, erfolgt eine assistierte Messung dieser Eigenschaft. Setzt man hingegen die Wilhelmy-Platte ein, folgt die Messung der Oberflächenspannung, ...

Das IMPro "schnellste Messung!" wird beendet durch Entnahme der Messkörperaufhängung oder per Stop-Taste. IMETER ist sofort bereit für gleiche, ähnliche oder ganz andere Aufgaben.

 


 Das IMPro 'schnellste Messung!' (Download & Quelltext)

Das etwas längere Programm können Sie zusammen mit dem Abdruck des Quelltexts hier downloaden: schnellste Messung!.zip. Kopieren Sie bitte auch das gleichnamige Verzeichnis (das nur Bilder enthält) in das Media-Verzeichnis Ihres Rechners (root\Media\). Sie versetzen Ihr IMETER-Gerät in den Zustand diese Messungen auszuführen einfach durch den Aufruf des IMPros "schnellste Messung!". Damit wir uns über Einzelheiten des Ablaufs und des AIM-Programms online austauschen können, ist nachfolgend das IMPro mit der Dokumentierfunktion abgedruckt.

schnellste Messung! (M12)  

Description given with the Program:
POD-Programm zur sofortigen Messung von Flüssigkeitsdichte, Festkörperdichte und Oberflächenspannung
Dieses IMPro ermöglicht es Ihnen, Ihr IMETER-Gerät wie ein sehr einfach bedienbares Messgerät zu verwenden. "Dichtemessen so einfach und natürlich wie die Uhr ablesen".
Dazu starten Sie dieses IMPro. Es läuft im Hintergrund und wartet auf Ihre Aktion. Die Bedienung beschränkt sich auf das Einsetzen des entsprechenden Messkörpers, anhand dessen die jeweilige Messung durchgeführt wird. LEDs am Bedienpanel signalisieren zusätzlich zum Feedback durch entsprechende Bilder und Texthinweise am Monitor den aktuellen Betriebszustand an.
Damit Sie mit diesem Programm arbeiten können, sind einige Voraussetzungen zu erfüllen:
-- (1) SYSTEM: In der ‚Configuration' im Tab *Common*/Automatics die Option ‚Switch AIM recognition mode on' aktivieren. Und im Tab ‚Autostart-Associations' ist der Name des IMPros mit dem Gewicht des verwendeten Messkörperhaken einzutragen. (Dazu hängen Sie den Haken ein und Doppelklicken im Eintragsfeld. Den Namen des IMPros wählen Sie auch einfach per Doppelklick im Textfeld)
--(2) DATEN: In diesem IMPro sind die Daten der Messkörper und die für Arbeitspositionen einzutragen (Sie können die Gewichte und geeigneten Positionen mit den Funktionen der "Component Control' bestimmen). Die anzugebenden Daten finden Sie bitte in den Zeilen 12 bis 33.
--(3) MULTIMEDIA: Die Bilder, die den Ablauf illustrieren und in die Meldungen eingeblendet werden, sind im Verzeichnis "C:\imeter\Media\Schnellste Messung!\" zu finden.
--(4) ZUBEHÖR: Sie benötigen für "schnellste Messung!", wenn alle Funktionen eingesetzt werden sollen, folgendes Zubehör: Einen separaten Aufhängehaken an dem ein Dichtemesskörper (z.B. ein Glas-Tauchkörper), eine Wilhemy-Platte, ein sehr dünnen Spieß als Fixierung für solid-kompakte Festkörper sowie ein Becherglas mit Halterung für den Temperaturfühler.
Bitte beachten Sie, dass die Festkörperdichtemessung hier nur für einfache, kompakte Objekte und für Wasser als Messflüssigkeit ausgelegt ist. Die jeweilige Dichte-Temperaturgleichung zur Messflüssigkeit ist in Zeile 22d anzubringen. Die Feststoffdichtemessung ist jedoch hier nur rudimentär ausentwickelt und bedarf noch gewisser Ergänzungen.
Testen Sie das IMPro ausführlich bevor Sie es für Routineaufgaben einsetzen. Einige Programmstellen könnten für einen noch komfortableren Einsatz maßgeschneidert werden.


General hints: The Source Code of an IMETER measurement program (IMPro) consists of a sequence of statements that are executed line by line. To make the IMPro easier to understand, different elements are highlighted in the source code below:
                Commands, IF-Conditions, Loops and Line-Jumps, Defining Variables, Calculations, Variables that create a Menu item at Start-up (or latent menu items), External Component Action (accessory, closer and farther devices), Comments and Hints, Info Messages, User Interaction or Input(). - Titles of Sub-Programs: SUB Program ,MENU-COMMAND - accessible by Toolbar/Menu during execution, AUTO-SUB - as periodic self-calling program part. The '' or '#SubProgramName' means call of the SubProgram; Appearances of '@' denoting inline evaluations within a Text fragment. Some of the statements are pre-evaluated by the interpreter and can modify the representations in the data form, request additional information (for configuration) as well as the menu of the toolbar and the user interface during the run.

                MAIN PROGRAM - schnellste Messung! - V. - Apr 5 2019

  1. ——— '<FEEDBACK - PROGRAMM LÄUFT>' ———————————————————————————
  2. Accustic signal:
  3. Stage light: active
  4. IDA-Out 5: active                       
  1. ——— '<GENERELLE EINSTELLUNG>' —————————————————————————————
  2. ƒ² Generaloption: invisibility
  3. ƒ² Generaloption: DEFINE P•O•D•Program
  4. [Number] "Bildanzeige" = 4 [n] mit "4" auf Vollbild, 1 auf Originalgröße ... ...                       
  1. ——— '<ANPASSUNGEN AN KONKRETES ZUBEHÖR ... AM ANFANG DES MESSPROGRAMMS>' ——
  2. [TEXT] "Name_to_compare_Property" = Wasser Hier einen Flüssigkeitsnamen aus der Datenbank angeben. Das ist die Referenz für die Ähnlichkeitsangabe im angezeigten Report.
  3. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  4. ——— '<Bild der Ausganssituation zeigen>' ————————————————————————————
  5.  [Massen-/Gewichtsangabe] WGrenzwert = 0,1 [g] Empfindlichkeitsparameter - Die Toleranz für die Gewichte, die Funktionen auslösen oder haben.
  6. [Absolute Höhe] "GanzUnten" = 1 [mm] unterste Lifthöhe.
  7. [Dichteangabe] "Luftdichte" = rhoL / 1000 -0,00015 [g/cm³] Luftdichte ist Systemvariable "rhoL" (in kg/m³) ... sie könnte/sollte aktuell bestim...
  8.  [Massen-/Gewichtsangabe] WHaltehaken = 1,7703 [g] Gewicht des allgemeinen Hakens, durch abnehmen wird ggf. das Programm beendet.
  9. ——— 'Dichtemessung und Daten des DichteMesskörpers (AR-Glas)' ————————————————
  10.  [Absolute Höhe] HDichtemessPosition = 72 [mm] Plattform-Niveauhöhe zur Standard-Dichtemessung an Flüssigkeiten. Abstimmung der Angabe auf Messkörper...
  11.  [Volumenangabe] Messkörpervolumen = 10,0121 [cm³] Das Volumen der Flüssigkeitsdichtemesskörpers bei 25°C --- Volumen und Masse können sich mit dem G...
  12.  [Zahlenangabe] MesskörperAlpha = 5 [n] Der lineare Ausdehungskoeffizient des Flüssigkeitsdichtemesskörpers in der Einheit 1E-6 /K für den Gebr...
  13.  [Massen-/Gewichtsangabe] MesskörperMasse = 25,5366 [g] Die wahre Masse des Flüssigkeitsdichte-Messkörpers. Aus dieser wird das exakte Gewicht bei jew. Luf...
  14. WDichtemesskörper [g] = MesskörperMasse * (1- Luftdichte / rhoC )/( 1- ( Luftdichte / ( MesskörperMasse / Messkörpervolumen )))      ...
  15. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  16.  [Absolute Höhe] Umfang_WilhelmyPlatte = 40,02 [mm]  der Umfang der Willhelmy Platte.
  17.  [Massen-/Gewichtsangabe] WWilhelmyPlatte = 1,5306 [g] Das Gesamtgewicht der Wilhelmyplatte.
  18.  [Absolute Höhe] HOFS_Wilhelmy_Starthöhe = 77,1 [mm] Plattform-Niveauhöhe - Position der Plattenunterkante zum Beginn der Messung der Oberflächenspannung e...
  19. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  20. [Mass/Weight] "WHaken_zur_Festkörperdichtemessung" = 1,0881 [g]
  21. [Absolute Höhe] "HDichteFKmessPosition" = HDichtemessPosition + 9 [mm] Lifthöhe <beim typisiertem Aufbau> zur FestkörperDichtemessung
  22. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  23.  [Massen-/Gewichtsangabe] WKonfiguration = WHaltehaken + WHaken_zur_Festkörperdichtemessung [g] Gewicht, das die Konfigurationseite des Messprogramms au...
  24. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  25. [Absolute Höhe] "StartIndikationH" = H [mm] beim sofortigen Beenden Plattform in Starthöhe belassen!
  26. "NurDerAufhängehaken" = 'nein/aus' dient als Funktionsschalter zum Beenden der Messung                       
  1. IF "abs( TARA ) - 15* Wres<0 [g]" THEN: 4 Lines forward
  2. CALL USER: 'Bitte zuerst noch Alle Lasten (z.B. den AufhängeHaken) von der Waage nehmen! Die "Tara" muss noch entfernt werden.'                      Confirmation: Keyboard or IMETER
  1. WEIGHING CELL: int.Tare                       
  1. [38] [112] [170] W_Haken [g] = 0
  2. [Zahlenangabe] "Zähler" = 0 [n]                       
  1. ƒ² (Multi-)Media/Show Picture: '…Messung1_Bereitschaft.bmp'
  2. WEIGHING CELL: I-Weighting : Analysis for 0,25[s] (streaming Data)
  3. IF "abs( W_ME + TARA ) - WGrenzwert >0 [g]" THEN: 5 Lines forward
  4. ——— '<die Drift der Waage durch internes tarieren korrigieren - wenn nichts auf der Waage>' ——————
  5. WEIGHING CELL: int.Tare
  6. ——— '<Warten, bis eine Laständerung >WGrenzwert auftritt>' ———————————————————
  7. WEIGHING CELL: I-Weighting : Analysis for 0,25[s] (streaming Data)
  8. [47] [Massen-/Gewichtsangabe] "W_Genau" = W_ME [g] Gesamtgewicht auf der Waage (ohne Tara)
  9. [55] WEIGHING CELL: I-Weighting : Analysis of '12' Values (streaming Data)
  10. [Massen-/Gewichtsangabe] "TotWeight" = W_ME [g]
  11. IF "ABS( W_Genau - TotWeight ) < 0,001 [g]" THEN: 2 Lines backward                       
  1. [178] [188] ——— 'Die Waage ist zu Beginn frei oder nicht ...' ————————————————————
  2. JUMP 3 Lines forward
  3. [64] [124] ƒ² (Multi-)Media/Show Picture: '…Messung1b_Luftzug.JPG '!! Die Waage ist unruhig!       …'
  4. Accustic signal:
  5. [59] WEIGHING CELL: I-Weighting : Analysis for 0,25[s] (streaming Data)
  6. LOOP:   one line back, max.12-times OR UNTIL "W_SN   <0,85 n" IS TRUE
  7. IF "last loop regular finished" THEN: 4 Lines backward
  8. [Massen-/Gewichtsangabe] "TotWeight" = W_ME  [g]                       
  1. [130] [131] [138] [Textvariable] "AText" =  
  2. IF "abs( TotWeight + TARA ) - WGrenzwert>0 [g]" THEN: 13 Lines forward
  3. END PROGRAMM IF "NurDerAufhängehaken.
  4. [Textvariable] "AText" = Die Waage ist frei.
  5. IF "Zähler >0" THEN: 6 Lines forward
  6. ƒ² (Multi-)Media/Show Picture: '…Messung1a_Basissetup.jpg '@AText@'
  7. ——— '<die Drift der Waage durch internes tarieren korrigieren - wenn nichts auf der Waage>' ——————
  8. • GenaueWägung
  9. WEIGHING CELL: int.Tare
  10. JUMP 2 Lines forward
  11. [71] ƒ² (Multi-)Media/Show Picture: '…Messung2_leere Aufhängung.jpg '@AText@'
  12. [76] JUMP 63 Lines forward                       
  1. ——— '<Durchlaufen aller ggf. auslösenden Gewichtsbedingungen --- Funktionsstart, wenn sich das Gewicht im jeweiligen Bereich befindet>'
  2. [68] IF " TotWeight - WHaltehaken < WGrenzwert " AND " TotWeight - WHaltehaken + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 5 LINES
  3. [81] [Textvariable] "AText" = Der Aufhängehaken ist eingehängt                      BEENDEN durch Abnehmen des Hakens
  1. ƒ² (Multi-)Media/Show Picture: '…Messung3_HakenHängt.jpg 'Hallo @AText@'>
  2. "NurDerAufhängehaken" = 'ja/an' dient als Funktionsschalter zum Beenden der Messung
  3. JUMP 56 Lines forward                       
  1. IF " TotWeight - WHaltehaken - WDichtemesskörper < WGrenzwert " AND " TotWeight - WDichtemesskörper - WHaltehaken + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 4 LINES
  2. [87] [Textvariable] "AText" = Der Dichtemesskörper ist am Aufhängehaken eingehängt.
  3. ƒ² (Multi-)Media/Show Picture: '…Messung4a_DichteMK hängt.jpg '@AText@'
  4. JUMP 51 Lines forward                       
  1. IF " TotWeight - WHaltehaken - WWilhelmyPlatte < WGrenzwert " AND " TotWeight - WWilhelmyPlatte - WHaltehaken + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 5 LINES
  2. [92] [Textvariable] "AText" = Die Wilhemyplatte ist am Aufhängehaken eingehängt.
  3. ƒ² (Multi-)Media/Show Picture: '…Messung4a_Platte_hängt.jpg '@AText@'
  4. "NurDerAufhängehaken" = 'nein/aus'
  5. JUMP 45 Lines forward                       
  1. IF " TotWeight - WHaken_zur_Festkörperdichtemessung < WGrenzwert " AND " TotWeight - WHaken_zur_Festkörperdichtemessung + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 6 LINES
  2. [98] [Textvariable] "AText" = Der Haken für die Festkörperdichte ist eingehängt.
  3. ƒ² (Multi-)Media/Show Picture: '….jpg '@AText@'
  4. "NurDerAufhängehaken" = 'nein/aus'
  5. JUMP 39 Lines forward                       
  1. IF " TotWeight - WKonfiguration < WGrenzwert " AND " TotWeight - WKonfiguration + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 6 LINES
  2. [104] [Textvariable] "AText" = Der Auslöser für die Konfiguration ist eingesetzt.
  3. ƒ² (Multi-)Media/Show Picture: '…Berge.jpg '@AText@'
  4. ƒ² Programm: Editform 'Menue Variables'
  5. ƒ² Programm: Editform 'all Variables'
  6. ƒ² Programm: save this I-Programm
  7. "NurDerAufhängehaken" = 'nein/aus'
  8. IF " TotWeight - WKonfiguration < WGrenzwert " AND " TotWeight - WKonfiguration + WGrenzwert >0" THEN: Message (Stop): Bitte das Gewicht zur Konfigurationsaktivierung abnehmen!
  9. JUMP 70 Lines backward                       
  1. ——— '<Behandlung nicht identifizierbarer Lasten>' ————————————————————————
  2. Stage light: active
  3. Accustic signal:
  4. "NurDerAufhängehaken" = 'nein/aus'
  5. [Textvariable] "AText" = Unbekanntes Gewicht liegt auf ...                      Bitte nehmen Sie zuerst einmal alle Lasten von Aufhängung.
  1. ƒ² (Multi-)Media/Show Picture: '…Messung4a_unbekannte_Last.JPG '@AText@   <Aktuelles Gew…'
  2. Wait: 0,900 s  
  3. Stage light: off
  4. WEIGHING CELL: I-Weighting : Analysis for 0,25[s] (streaming Data)
  5. LOOP:   one line back, max.20-times OR UNTIL "W_SN   <0,7 n" IS TRUE
  6. IF "last loop regular finished" THEN: 64 Lines backward
  7. ——— '<Warten, bis unbekannte Last sich ändert ....>' ———————————————————————
  8. [Massen-/Gewichtsangabe] "W_Genau" = W_ME [g]
  9. [137] WEIGHING CELL: I-Weighting : Analysis for 0,25[s] (streaming Data)
  10. [Massen-/Gewichtsangabe] "TotWeight" = W_ME [g]
  11. ƒ² (Multi-)Media/Show Picture: '…Messung4a_unbekannte_Last.JPG '@AText@   @BText@'>
  12. IF "abs ( TotWeight ) - WGrenzwert <0 [g]" THEN: 63 Lines backward
  13. IF "abs ( TotWeight + TARA ) - WGrenzwert <0 [g]" THEN: 64 Lines backward
  14. IF " TotWeight - WHaltehaken < WGrenzwert " AND " TotWeight - WHaltehaken + WGrenzwert >0" THEN: 6 Lines forward
  15. IF " TotWeight < WHaltehaken " THEN: 3 Lines forward
  16. [Textvariable] "BText" = Am Haltehaken befindliches Gewicht @ TotWeight - WHaltehaken#g#3 @
  17. JUMP 2 Lines forward
  18. [133] [Textvariable] "BText" = Gewicht @ TotWeight#g#4 @
  19. [135] IF "abs ( W_Genau - TotWeight ) < 0,003 [g]" THEN: 10 Lines backward
  20. [132] JUMP 71 Lines backward                      
  1. [78] [85] [90] [96] [102] ——— '<Behandlung identifizierter Lasten>' ——————————————————
  2. IF "H - 0,1 < GanzUnten " THEN: 9 Lines forward
  3. Stage light: active
  4. [Textvariable] "AText" = Vorsicht - die Plattform                      bewegt sich schnell                      ganz nach U N T E N •
  1. ƒ² (Multi-)Media/Show Picture: ' using current Picture '@AText@'
  2. CALL USER: 'Bitte Prüfen, dass die Plattform sich sicher nach unten bewegen kann - dann diese Meldung bestätigen oder Abbrechen.'                      Confirmation: Keyboard or IMETER
  1. • Plattform nach Unten fahren
  2. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  3. ——— '<OK hier nun alles geregelt       ---   "TotWeight" enthält die Information>' ———————————
  4. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  5. [142] [Textvariable] "AText" =   
  6. [Zahlenangabe] "Zähler" = 0 [n]
  7. IF " TotWeight   > WGrenzwert " THEN: 10 Lines forward
  8. [Textvariable] "AText" = Die Waage ist frei 
  9. [171] ƒ² (Multi-)Media/Show Picture: ' using current Picture '(1) Bitte Gefäß auf die Plattform stellen. (2) Ein…'
  10. [157] [161] Wait: 0,150 s  
  11. IF "abs( W ) - WGrenzwert <0 [g ]" THEN: 1 Lines backward
  12. WEIGHING CELL: I-Weighting : Analysis for 0,35[s] (streaming Data)
  13. [Massen-/Gewichtsangabe] "TotWeight" = W_ME [g]
  14. IF " TotWeight   > 10 * WGrenzwert " THEN: 3 Lines forward
  15. JUMP 5 Lines backward                       
  1. [153] [160] IF " TotWeight - WHaltehaken < WGrenzwert " AND/OR:" TotWeight - WHaltehaken + WGrenzwert >0" THEN: 10 Lines forward
  2. [Textvariable] "AText" = Der Aufhängehaken ist eingehängt                      BEENDEN durch Abnehmen des Hakens
  1. Zähler [n] = Zähler + 1
  2. IF "Zähler >1 [n]" THEN: 2 Lines forward
  3. Stage light: active
  4. [166] IF "Zähler <100 [n]" THEN: 2 Lines forward
  5. Stage light: off
  6. [168] IF "Zähler =5000 [n]" THEN: 128 Lines backward
  7. JUMP 16 Lines backward                       
  1. [163] IDA-Out 4: active
  2. IF " TotWeight - WHaltehaken - WDichtemesskörper < WGrenzwert " AND " TotWeight - WDichtemesskörper - WHaltehaken + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 5 LINES
  3. [174] [Textvariable] "AText" = Der Dichtemesskörper ist am Aufhängehaken eingehängt.                      ** Noch einmal wiegen **
  1. • FlüssigkeitsDichte2
  2. "NurDerAufhängehaken" = 'nein/aus'
  3. JUMP 120 Lines backward                       
  1. IF " TotWeight - WHaltehaken - WWilhelmyPlatte < WGrenzwert " AND " TotWeight - WWilhelmyPlatte - WHaltehaken + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 3 LINES
  2. [180] [Textvariable] "AText" = Die Wilhemyplatte ist am Aufhängehaken eingehängt.                      ** Noch einmal wiegen **
  1. • Oberflächenspannung                       
  1. IF " TotWeight - WHaken_zur_Festkörperdichtemessung   < WGrenzwert " AND " TotWeight - WHaken_zur_Festkörperdichtemessung + WGrenzwert >0" THEN: 1 Lines forward, OTHERWISE 4 LINES
  2. [184] [Textvariable] "AText" = Der Haken zur Festkörperdichtemessung ist eingehängt.                      ** Noch einmal wiegen **
  1. • FestkörperDichte                       
  1. JUMP 130 Lines backward
  2. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  3. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

                       

  1. ƒ Sprungziel bei Abbruch - ggf. erfolgt Ausführung ohne Rückfrage!
  2. ƒ² Reporting: Close Windows
  3. IF "StartIndikationH = H " THEN: 6 Lines forward
  4. Stage light: active
  5. Z-MOVE: "GanzUnten" v= 11,5 mm/s
  6. Stage light: off
  7. IDA-Out 5: off
  8. IDA-Out 4: off
  9. [194]

                       

                       

   1a   —÷— MENU-COMMAND —÷— ————————| Oberflächenspannung |——————————————————————

   2a   ƒ² (Multi-)Media/Show Picture: '…Messung5a_Platte hängt ein.jpg '@AText@'

   3a   [Textvariable] "AText" = Gewicht der frischen Wilhelmyplatte...

   4a   • GenaueWägung

   5a   IF "W_check = 0 [g]" THEN: 32 Lines forward

   6a   ƒ² (Multi-)Media/Show Picture: '…Messung6_Platte bewegt.jpg 'Messung beginnt - fahre Pl…'

 

   8a   Z-MOVE: "HOFS_Wilhelmy_Starthöhe" v= 10,5 mm/s

   9a   ƒ² (Multi-)Media/Show Picture: '…Messung7_Platte misst.jpg 'Ertaste nun die Oberfläche .…'

10a  [13] Z-MOVE: 0,150 mm UP v= 0,500 mm/s

11a   LOOP:   one line back, max.100-times OR UNTIL "dW>5 mg" IS TRUE

12a   IF "last loop regular finished" THEN: Message (Stop): Oberfläche nicht gefunden? bitte jetzt manuell auf 1-5mm annähern ...

13a   IF "last loop regular finished" THEN: 3 Lines backward

14a   ƒ² (Multi-)Media/Show Picture: ' using current Picture 'Tauche Platte ein ....'

15a   Z-MOVE: 4,000 mm UP v= 2,50 mm/s

16a   ƒ² (Multi-)Media/Show Picture: ' using current Picture 'Ziehe Platte auf die Berührhöhe zurück ....'

17a   Z-MOVE: 4,000 mm DOWN v= 0,9 mm/s

 

19a   ƒ² (Multi-)Media/Show Picture: ' using current Picture'

20a  -a-[31] WEIGHING CELL: I-Weighting : Analysis for '0,5' [s] (streaming Data)

21a  -|- IF "W_ME - W_Genau >5 [g ]" THEN: 12 Lines forward

22a  -a- LOOP: 2 lines back, max.20-times OR UNTIL "W_SN   <0,9 n" IS TRUE

23a   OFS__ [mN/m] = ( W_ME - W_Genau ) * g * 1000 / Umfang_WilhelmyPlatte

24a   [Temperaturangabe] "aktlTemp" = T [°C]

25a   Zähler [n@] = @ Zähler + 1

 

27a   ——— '... permanente Anzeige der Oberflächenspannung:' ———————————————————

28a   ƒ² Reporting/Property Report: 'Surface Tension Name_to_compare_Property'

29a   IF "OFS__ >200 [mN/m ]" AND/OR:" OFS__ <-10 [mN/m ]" THEN: 4 Lines forward

30a   IF "last loop regular finished" THEN: Message (Stop): Keine stabile Kraftmessung! Berührt die Wilhelmyplatte die Gefäßwand ...?

31a   JUMP 11 Lines backward

 

33a  [21] [29] ƒ² Reporting: Close Report

34a   ƒ² (Multi-)Media/Show Picture: '…Messung6_Platte bewegt.jpg 'Messung beendet - fahre Pla…'

35a   • Plattform nach Unten fahren

36a   ƒ² (Multi-)Media/Show Picture: '…Messung1a_Basissetup.jpg 'Setzten Sie einen Messkörper …'

  1. [5] ═════════════════════════════════════════ • Oberflächenspannung•|

                       

   1b   —÷— MENU-COMMAND —÷— ————————| FlüssigkeitsDichte |————————————————————————

   2b   ——— 'Hier sollte der Messkörper trocken & sauber sein - Gewicht von Haltehaken und Messkörper müssen aber immer exakt sein!!'

   3b   ƒ² (Multi-)Media/Show Picture: '…Messung5a_DichteMK hängt ein.jpg '@AText@'

   4b   [Textvariable] "AText" = Gewicht des Dichtemesskörpers ...

   5b   • GenaueWägung

   6b   IF "W_check = 0 [g]" THEN: 33 Lines forward

   7b   W_Haken [g] = W_Genau - WDichtemesskörper - WHaltehaken     ... sollte "0" sein, wenn Körper sauber. Ist entspr. größe...

   8b   ——— 'Hier muss der Messkörper total sauber & trocken sein - Gewicht vom Haltehaken muss nicht exakt sein!!'

   9b   W_Haken [g] = 0     <entfernen wenn doch Korrektur ...>.

 

11b   Wägewert_Netto_(Luft) [g] = W_Genau - WHaltehaken - W_Haken

 

13b   ƒ² (Multi-)Media/Show Picture: '…Messung6_DichteMK bewegt.jpg '.... Fahre jetzt zur Mess…'

14b   Z-MOVE: "HDichtemessPosition" v= 10,5 mm/s

15b   ƒ² (Multi-)Media/Show Picture: '…Messung7_Dichtemessung.jpg'

16b   Stage light: active

17b  -b-[21] [33] WEIGHING CELL: I-Weighting : Analysis for '0,5' [s] (streaming Data)

18b  -|- IF "W_ME - WDichtemesskörper - WHaltehaken > WGrenzwert" THEN: 19 Lines forward

19b  -b- LOOP: 2 lines back, max.20-times OR UNTIL "W_SN   <0,9 n" IS TRUE

20b   IF "last loop regular finished" DEFINE: 'AText = Messkörper bitte für berührungsfreies Hängen sorgen - er muss ganz eintauchen und darf nirgends berühren ... [TEXT]'

21b   IF "last loop regular finished" THEN: 4 Lines backward

22b   Wägewert_Netto_(getaucht) [g] = W_ME - WHaltehaken - W_Haken

23b   ——— '<Temperaturkorrektur der MK-Dichte ...?>' ———————————————————————

24b   [Temperaturangabe] "aktlTemp" = T [°C]

25b   Volumen_Fk [cm³] = Messkörpervolumen *(1 + 3* MesskörperAlpha *1e-6*( aktlTemp - 25))

26b   Dichte_Fl [g/cm³] = Luftdichte +( Wägewert_Netto_(Luft) - Wägewert_Netto_(getaucht) ) / Volumen_Fk

27b   Zähler [n@] = @ Zähler + 1

28b     [Textvariable *] "BText"

 

30b   ——— '... permanente Anzeige des Dichtewertes:' ———————————————————————

31b   ƒ² Reporting/Property Report: 'Density (liqu.) Name_to_compare_Property'

32b   IF "Dichte_Fl >2 [g/cm³ ]" AND/OR:"Dichte_Fl <0,1 [g/cm³ ]" THEN: 5 Lines forward

33b   IF "Dichte_Fl <2 [g/cm³ ]" AND "Dichte_Fl >0,1 [g/cm³ ]" THEN: 16 Lines backward

 

35b   ƒ² Reporting/Property Report: 'Density (liqu.) Name_to_compare_Property'

36b   ƒ² (Multi-)Media/Show Picture: '…Messung4a_DichteMK hängt.jpg 'Tauschen Sie die Probe un…'

37b  [18] [32] ƒ² Reporting: Close Report

38b   • Plattform nach Unten fahren

  1. [6] ══════════════════════════════════════════• FlüssigkeitsDichte•|

                       

   1c   —÷— MENU-COMMAND —÷— ————————| FlüssigkeitsDichte2 |———————————————————————

   2c   ——— 'Messkörper kann total sauber & trocken oder feucht mit vergleichbarer Flüssigkeit sein - Gewicht vom Haltehaken muss exakt sein!!'

   3c   ——— '*** Wenn Messkörper zusammen mit dem Haltehaken eingesetzt wird - bleibt der Tisch unten und man kann manuell den Becher unter den MK halten!'

   4c   IF "NOT NurDerAufhängehaken" THEN: 3 Lines forward

   5c  [41] ƒ² (Multi-)Media/Show Picture: '…Messung6_DichteMK bewegt.jpg '.... Fahre jetzt zur Mess…'

   6c   Z-MOVE: "HDichtemessPosition" v= 10,5 mm/s

   7c  [4] ƒ² (Multi-)Media/Show Picture: '…Messung7_Dichtemessung.jpg'

   8c   Stage light: active

   9c  -c-[15] [30] WEIGHING CELL: I-Weighting : Analysis of '7' Values (streaming Data)

10c  -|- IF "NOT NurDerAufhängehaken" THEN: 6 Lines forward

11c  -|- IF "iKEY=32 [n]" THEN: 21 Lines forward

12c  -|- IF "W_ME - WDichtemesskörper - WHaltehaken > WGrenzwert " THEN: 20 Lines forward

13c  -c- LOOP: 4 lines back, max.20-times OR UNTIL "W_SN   <0,9 n" IS TRUE

14c   IF "last loop regular finished" DEFINE: 'AText = Messkörper bitte für berührungsfreies Hängen sorgen - er muss ganz eintauchen und darf nirgends berühren ... [TEXT]'

15c   IF "last loop regular finished" THEN: 6 Lines backward

16c  [10] [Temperaturangabe] "aktlTemp" = T [°C]

17c   IF "iKEY =4 [n]" AND/OR:"iKEY =2 [n]" THEN: Message (Stop): Move up/down?

18c   IF "iKEY=32 [n]" THEN: 14 Lines forward

19c   Wägewert_Netto_(getaucht) [g] = W_ME - WHaltehaken

20c   ——— '<Temperaturkorrektur des MK-Volumens>' ———————————————————————

21c   Volumen_Fk [cm³] = Messkörpervolumen *(1 + 3* MesskörperAlpha *1e-6*( aktlTemp - 25))

22c   ——— '<Messkörper wird hier ja nicht an Luft gewogen ... das Gewicht ist aus der Masse berechnet! >'

23c   Dichte_Fl [g/cm³] = Luftdichte +( WDichtemesskörper - Wägewert_Netto_(getaucht) ) / Volumen_Fk

24c   Zähler [n@] = @ Zähler + 1

 

26c   ——— '... permanente Anzeige des Dichtewertes:' ———————————————————————

27c   ƒ² Reporting/Property Report: 'Density (liqu.) Name_to_compare_Property'

28c   IF "Dichte_Fl >2,5 [g/cm³ ]" AND/OR:"Dichte_Fl <-0,2 [g/cm³ ]" THEN: 4 Lines forward

29c   IF "iKEY=32 [n]" THEN: 3 Lines forward

30c   JUMP 21 Lines backward

 

32c  [11] [12] [18] [28] [29] ƒ² Reporting: Close Report

33c   ƒ² (Multi-)Media/Show Picture: '…Messung6_DichteMK bewegt.jpg '.... Fahre Plattform zur …'

34c   [Zahlenangabe] "Zähler" = 0 [n]

35c   • Plattform nach Unten fahren

36c   ——— 'Option weitere Messung, wenn - und solange - Messkörper hängen bleibt ...' ————————

37c   [Textvariable] "AText" = Prüfung des Dichtemesskörpers ...

38c   • GenaueWägung

39c   IF "W_Genau - WDichtemesskörper < WHaltehaken " THEN: 4 Lines forward

40c   ƒ² (Multi-)Media/Show Picture: '…Messung4a_DichteMK hängt.jpg 'Probe wechseln START d…'

41c   IF "W - WDichtemesskörper >= WHaltehaken " THEN: 36 Lines backward

 

  1. [39] ═════════════════════════════════════════ • FlüssigkeitsDichte2•|

                       

                       

   1d   —÷— MENU-COMMAND —÷— ————————| FestkörperDichte |————————————————————————

   2d   ——— '<genaue Wägung des Hakens... der sich mit der Zeit etwas verändern kann ... >' ———————

   3d   • GenaueWägung

   4d   IF "W_check = 0 [g]" THEN: 38 Lines forward

   5d   W_Haken [g] = W_ME

   6d   ƒ² (Multi-)Media/Show Picture: '….jpg 'Feststoffdichtemessung: - Jetzt bItte den Prü…'

   7d   ƒ² (Multi-)Media/Show Picture: '….jpg 'Wiegen des Prüfkörpers ... erfolgt'

   8d   • GenaueWägung

   9d   IF "W_Genau - W_Haken - WGrenzwert < 0 [g]" THEN: 33 Lines forward

10d   IF "W_check = 0 [g]" THEN: 32 Lines forward

11d   Wägewert_Netto_(Luft) [g] = W_Genau - W_Haken

 

13d   ƒ² (Multi-)Media/Show Picture: '… FKDichte1'

14d   Z-MOVE: "HDichteFKmessPosition" v= 10,5 mm/s

15d   ƒ² (Multi-)Media/Show Picture: '… FKDichte2'

16d  -d-[20] [25] [38] WEIGHING CELL: I-Weighting : Analysis for '0,5' [s] (streaming Data)

17d  -|- IF "W_ME - W_Genau   > WGrenzwert " THEN: 23 Lines forward

18d  -d- LOOP: 2 lines back, max.20-times OR UNTIL "W_SN   <0,9 n" IS TRUE

19d   IF "last loop regular finished" DEFINE: 'AText = Messkörper bitte für berührungsfreies Hängen sorgen - er muss ganz eintauchen und darf nirgends berühren ... [TEXT]'

20d   IF "last loop regular finished" THEN: 4 Lines backward

21d   [Temperaturangabe] "aktlTemp" = T [°C]

22d   Dichte_Fl [g/cm³] = ( 6,5592063E-05 * aktlTemp ^5 - 1,1225639E-02 * aktlTemp ^4 + 1,0026530 * aktlTemp ^3 - 90,968893 * aktlTemp ^2 + 679,48991 * aktlTemp + 9998425,9 ) /1E7

23d   Wägewert_Netto_(getaucht) [g] = W_ME - W_Haken

24d   IF "Wägewert_Netto_(Luft) - Wägewert_Netto_(getaucht) =0 [g]" THEN: Message (Stop): Keine Flüssigkeit??? (Beenden!)

25d   IF "Wägewert_Netto_(Luft) - Wägewert_Netto_(getaucht) =0 [g]" THEN: 9 Lines backward

26d   Volumen_Fk [cm³] = ( Wägewert_Netto_(Luft) - Wägewert_Netto_(getaucht) ) / ( Dichte_Fl - Luftdichte )     Format-6 V=(W1-W2)/(rhoFl-RhoLuft)

27d   ——— '-- Näherung für die MASSE über die klassische Formel' ——————————————————

28d   Masse_Fk [g/cm³] = Dichte_Fl * Wägewert_Netto_(Luft) / ( Wägewert_Netto_(Luft) - Wägewert_Netto_(getaucht) )

29d   ——— '-- Berechnung über rho = m / V ...' ———————————————————————————

30d   Dichte_Fk [g/cm³] = Wägewert_Netto_(Luft) * (1- Luftdichte / Masse_Fk )/( 1- ( Luftdichte / ( rhoC ))) / Volumen_Fk     Format4 m/V

31d   Zähler [n] = Zähler + 1

 

33d   ——— '... permanente Anzeige des Dichtewertes:' ———————————————————————

34d   ƒ² Reporting/Property Report: 'Density (Solid) '

35d   IF "Dichte_Fk >23 [g/cm³ ]" AND/OR:"Dichte_Fk <0,01 [g/cm³ ]" THEN: 5 Lines forward

36d   IF "abs( Dichte_Fk - Dichte_Fl ) - 0,001 <0 [g/cm³ ]" THEN: 4 Lines forward

37d   IF " W_ME + 0,5* WGrenzwert - WHaken_zur_Festkörperdichtemessung <0" THEN: 3 Lines forward

38d   JUMP 22 Lines backward

 

40d  [17] [35] [36] [37] ƒ² Reporting: Close Report

41d   • Plattform nach Unten fahren

  1. [4] [9] [10] ═════════════════════════════════════════ • FestkörperDichte•|

                       

   1e   —÷— MENU-COMMAND —÷— ————————| GenaueWägung |—————————————————————————

   2e   IDA-Out 3: active

   3e   ƒ² (Multi-)Media/Show Picture: ' using current Picture '@AText@'

   4e  -e- [Massen-/Gewichtsangabe] "W_check" = W [g] wenn über die Wägung, die etwas dauern kann, der Anwender die Last doch entfernt ... dann soll diese übe...

   5e  -|- Wait: 0,050 s  

   6e  -e- LOOP: 2 lines back, max.12-times OR UNTIL "abs( W_check - W ) - Wres <=0 g" IS TRUE

   7e   Stage light: off

   8e  [11] WEIGHING CELL: I-Weighting : Analysis for 0,25[s] (streaming Data)

   9e   LOOP:   one line back, max.20-times OR UNTIL "W_SN   <0,9 n" IS TRUE

10e   IF "last loop regular finished" THEN: Message (Stop): Messkörper bitte ruhig stellen ...

11e   IF "last loop regular finished" THEN: 3 Lines backward

12e   ——— 'Wägung bei minimaler Standardabweichung ...' ——————————————————————

13e  [16] [17] [18] [Zahlenangabe] "Wdummy" = W_SN [n]

14e   [Massen-/Gewichtsangabe] "n_check" = W_ME [g]

15e   WEIGHING CELL: I-Weighting : Analysis for 0,5[s] (streaming Data)

16e   IF "Wdummy > W_SN " THEN: 3 Lines backward

17e   IF "W_SN >0,8 [n]" THEN: 4 Lines backward

18e   IF "ABS( n_check - W_ME ) - 2* Wres >0 [n]" THEN: 5 Lines backward

19e   [Massen-/Gewichtsangabe] "W_Genau" = W_ME [g] Gewicht von Messkörper und Aufhängung

20e   [Massen-/Gewichtsangabe] "W_uGenau" = W_sa [g] Standardabweichung der Wägung

21e   Stage light: active

22e   IF "abs( W_check - W ) -12* WGrenzwert > 0 [g]" DEFINE: 'W_check = 0 [n]'

23e   IDA-Out 3: off

  1. ══════════════════════════════════════════• GenaueWägung•|

                       

   1f   —÷— MENU-COMMAND —÷— ————————| Plattform nach Unten fahren |————————————————————

   2f   ——— 'Die Plattform soll in passender Geschwindigkeit bewegt werden (kurze Strecken nicht schnell!!)!'

   3f   IF "H <= GanzUnten " THEN: 5 Lines forward

   4f   [Geschwindigkeitsangabe] "Plattformgeschwindigkeit" = H - GanzUnten /2,5 [mm/s] Geschwindigkeit für 2,5 Sekunden (oder Max oder min)

   5f   IF "Plattformgeschwindigkeit >15 [mm/s]" DEFINE: 'Plattformgeschwindigkeit = 15 [mm/s]'

   6f   IF "Plattformgeschwindigkeit <1 [mm/s]" DEFINE: 'Plattformgeschwindigkeit = 1 [mm/s]'

   7f   Z-MOVE: "GanzUnten" v= "Plattformgeschwindigkeit" mm/s

   8f  [3] Stage light: off

  1. ═════════════════════════════════════════ • Plattform nach Unten fahren••|