<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Archive - CETONI GmbH</title>
	<atom:link href="https://cetoni.com/de/tag/software/feed/" rel="self" type="application/rss+xml" />
	<link>https://cetoni.com/de/tag/software/</link>
	<description>Automatisierungs- und Mikrofluidiklösungen für das Labor</description>
	<lastBuildDate>Mon, 06 Nov 2023 10:37:30 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://cetoni.com/wp-content/uploads/2020/12/cropped-favicon-32x32.png</url>
	<title>Software Archive - CETONI GmbH</title>
	<link>https://cetoni.com/de/tag/software/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CETONI Elements unterstützt nun Feinwaagen</title>
		<link>https://cetoni.com/de/qmixelements-unterstuetzt-nun-feinwaagen/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Tue, 22 Sep 2020 13:12:49 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://cobomation.de/?p=230</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/qmixelements-unterstuetzt-nun-feinwaagen/">CETONI Elements unterstützt nun Feinwaagen</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be581757b28"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row top-level"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<h2>CETONI Elements unterstützt nun Feinwaagen!</h2>
<p>Die Einbindung einer hochauflösenden Feinwaage in Ihrer Applikation bietet Ihnen an jeder Stelle in Ihrem Prozess ein präzise Aussage und somit zusätzliche Sicherheit. Mit Hilfe unserer flexiblen Laborautomationssoftware <a href="https://cetoni.de/cetoni-elements/">CETONI Elements</a> können Sie ab sofort Feinwaagen in Ihren Prozess integrieren und zur gezielten Steuerung Ihrer hoch-präzisen Dosierung, Automatisierung von Abläufen oder dauerhaften Prozessüberwachung einsetzen.</p>
<h3>Einfach Update installieren und los geht&#8217;s!</h3>
<p>Die CETONI Elements Software unterstützt nun über das Balance-Plugin die Einbindung von Laborwaagen. Zum Release des Plugins ist bereits ein Gerätetreiber für Sartorius Waagen (Entris, ED-, GK- und GW-Waagen) enthalten. Damit können Sie ohne großen Aufwand Ihre bereits vorhandene Sartorius Laborwaage in die CETONI Elements Software einbinden. So erweitern Sie nicht nur Ihr CETONI System um die Möglichkeit, Stoffe, Substanzen oder dosierte Flüssigkeiten zu wiegen, sondern können im Zusammenspiel mit weiterer CETONI Hardware und Ihrer eigenen Analytik, Prozesse nach Belieben synchronisieren oder vollständig automatisieren.</p>
<h3><img fetchpriority="high" decoding="async" class="aligncenter wp-image-2283 size-full" src="https://cetoni.de/wp-content/uploads/QmixElements_Nemesys_Balance.jpg" alt="" width="996" height="560" srcset="https://cetoni.com/wp-content/uploads/QmixElements_Nemesys_Balance.jpg 996w, https://cetoni.com/wp-content/uploads/QmixElements_Nemesys_Balance-300x169.jpg 300w, https://cetoni.com/wp-content/uploads/QmixElements_Nemesys_Balance-768x432.jpg 768w" sizes="(max-width: 996px) 100vw, 996px" />CETONI Elements mit zwei Nemesys Spritzenpumpen und einer Waage</h3>
<p>Die Konfiguration der Waagen-Geräte erfolgt, wie Sie es aus der CETONI Elements Software gewohnt sind, über den Gerätekonfigurator. Erzeugen Sie dafür einfach eine neue Konfiguration oder fügen Sie die Waage zu einer bestehenden Konfiguration hinzu und speichern Sie diese ab. Nach der Aktivierung der Konfiguration steht Ihnen die Waage in der Software zur Verfügung.</p>
<h3><img decoding="async" class="aligncenter wp-image-2285 size-full" src="https://cetoni.de/wp-content/uploads/Balance_DeviceConfigurator.png" alt="" width="846" height="543" srcset="https://cetoni.com/wp-content/uploads/Balance_DeviceConfigurator.png 846w, https://cetoni.com/wp-content/uploads/Balance_DeviceConfigurator-300x193.png 300w, https://cetoni.com/wp-content/uploads/Balance_DeviceConfigurator-768x493.png 768w" sizes="(max-width: 846px) 100vw, 846px" />Elements Device Configurator</h3>
<p>In der Software wird Ihnen die Waage dann als normaler analoger Eingangskanal in der Liste der I/O-Kanäle <span style="color: #4393e9;">❶</span> angezeigt. Sie können dort jederzeit den aktuellen Wert sehen und über das Kontextmenü des Kanals die Waage tarieren. Wie alle anderen analogen Kanäle können Sie auch diesen Kanal im grafischen Logger <span style="color: #4393e9;">❷</span> oder im CSV-Logger aufzeichnen und zur Erstellung von Regelkanälen verwenden. Durch die Echtzeit-Aufzeichnung des Messwertes im grafischen Logger lassen sich dynamische Gewichtsänderungen, z.B. beim Dosieren in ein Probengefäß, sehr gut visualisieren und verfolgen.</p>
<h3><img decoding="async" class="aligncenter wp-image-2287 size-large" src="https://cetoni.de/wp-content/uploads/QmixElements_BalancePlugin_numbered-1024x576.jpg" alt="" width="1024" height="576" srcset="https://cetoni.com/wp-content/uploads/QmixElements_BalancePlugin_numbered-1024x576.jpg 1024w, https://cetoni.com/wp-content/uploads/QmixElements_BalancePlugin_numbered-300x169.jpg 300w, https://cetoni.com/wp-content/uploads/QmixElements_BalancePlugin_numbered-768x432.jpg 768w, https://cetoni.com/wp-content/uploads/QmixElements_BalancePlugin_numbered-1536x864.jpg 1536w, https://cetoni.com/wp-content/uploads/QmixElements_BalancePlugin_numbered.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" />Liste der I/O-Kanäle mit Waagen-Kanal</h3>
<p>Der Messkanal der Waage kann über das Scriptsystem gelesen werden und auch das Tarieren der Wage ist über eine Scriptfunktion möglich. Damit lässt sich die Waage unkompliziert in komplexere Analysen und automatisierte Abläufe einbinden.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/qmixelements-unterstuetzt-nun-feinwaagen/">CETONI Elements unterstützt nun Feinwaagen</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial: Flussprofilgenerierung mit QmixElements (CETONI Elements) &#8211; Teil 2</title>
		<link>https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-2/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Mon, 20 Apr 2020 07:45:30 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/?p=2302</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-2/">Tutorial: Flussprofilgenerierung mit QmixElements (CETONI Elements) &#8211; Teil 2</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be58175a491"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<p>Im zweiten Teil des Tutorials erfahren Sie, wie Sie mit Hilfe von JavaScript Funktionen sinusförmige Flussprofile erzeugen können. Dafür ändern Sie das Script aus dem ersten Teil so ab, dass statt eines Sägezahnprofils ein Sinusprofil erzeugt wird. Bevor Sie mit diesem zweiten Teil starten, <a href="https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-1/">können Sie hier</a> den ersten Teil des Tutorials lesen.</p>
<p><span style="color: #4393e9;"><strong>Wichtig</strong></span><br />
Für dieses Tutorial benötigen Sie die QmixElements Version v20191121 oder eine neuere Version. Wenn Sie noch eine ältere Version verwenden, aktualisieren Sie bitte auf die aktuellste QmixElements Version.</p>
<p><a href="#">Aktuelle QmixElements Version</a></p>
<h3>Vorbereitung</h3>
<p>Konfigurieren Sie Ihr System, wie im ersten Teil des Tutorials beschrieben und stellen Sie dann die Verbindung zu Ihren Geräten her. Wenn Sie nicht über entsprechende Geräte verfügen, können Sie das Tutorial auch gern mit simulierten Geräten nachvollziehen. Das QmixElements Projekt mit simulierten Geräten und dem im ersten Tutorial erstellten Script können Sie hier herunterladen.</p>
<p>Öffnen Sie nun das Script <strong>Tutorial_Sawtooth_Profile.qsc</strong>, welches Sie im ersten Teil des Tutorials erstellt haben und speichern Sie dieses dann unter einem neuen Namen ab. Sie sollten dann das folgende Programm in Scripteditor sehen.</p>
<p><img decoding="async" class="aligncenter wp-image-2304 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_FinalSawtoothScript.png" alt="" width="536" height="526" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_FinalSawtoothScript.png 536w, https://cetoni.com/wp-content/uploads/Flowprofile_FinalSawtoothScript-300x294.png 300w" sizes="(max-width: 536px) 100vw, 536px" /></p>
<h3>Teil 2 &#8211; Script zur Generierung eines Sinusprofils</h3>
<p>Ziel dieses Scripts soll es sein, mit einer Pumpe ein Flussprofil in Form eines Sinus von 0 bis zur definierten Zielflussrate zu generieren und mit der zweiten Pumpe den Fluss der ersten Pumpe so zu ergänzen, dass die Summe der beiden Flüsse zu einem konstanten Fluss mit einer definierten Flussrate führt.</p>
<p>Zur Erzeugung des Profils muss die Flussrate der Pumpe schrittweise so verändert werden, dass im zeitlichen Verlauf ein Sinus-Profil entsteht. Die Anzahl der Schritte zur Erzeugung des Sinus-Profils, d.h. die Auflösung, soll auf 100 Schritte für einen Sinus festgelegt werden. In dem bisherigen Sägezahn-Script hatten Sie die Anzahl der Schritte auf 20 festgelegt. Ändern Sie deshalb den Wert der Variable <strong>$GradientSteps</strong> auf 100.</p>
<h3><img decoding="async" class="aligncenter wp-image-2306 size-full" src="https://cetoni.de/wp-content/uploads/ChangeGradientSteps.gif" alt="" width="1024" height="320" /></h3>
<h3>Auflösung (Schrittanzahl) für ein Sinusprofil anpassen</h3>
<p>Löschen Sie nun die beiden <strong>Generate Flow</strong> Funktionen, wie in der Abbildung unten dargestellt. Markieren Sie dafür beide Funktionen und löschen Sie diese anschließend über das Kontextmenü (rechte Maustaste) oder durch Drücken der <strong>Entfernen Taste</strong>.</p>
<p><img decoding="async" class="aligncenter wp-image-2308 size-full" src="https://cetoni.de/wp-content/uploads/DeleteFlowFunctions.png" alt="" width="925" height="284" srcset="https://cetoni.com/wp-content/uploads/DeleteFlowFunctions.png 925w, https://cetoni.com/wp-content/uploads/DeleteFlowFunctions-300x92.png 300w, https://cetoni.com/wp-content/uploads/DeleteFlowFunctions-768x236.png 768w" sizes="(max-width: 925px) 100vw, 925px" /><br />
Fügen Sie nun eine neue Variable vor die beiden vorhandenen Variablen in die Zählschleife (Counting Loop) ein. Nennen Sie die Variable <strong>$Sinus</strong> und wählen Sie im <strong>Type</strong> Feld <strong>JavaScript Expression</strong> aus.</p>
<p><img decoding="async" class="aligncenter wp-image-2310 size-full" src="https://cetoni.de/wp-content/uploads/InsertGenerateFlowFunctions.gif" alt="" width="952" height="376" /><br />
Die<strong> $Sinus</strong> Variable dient dazu, die Berechnung des Sinus-Wertes für die weitere Bearbeitung zu speichern. Für die Berechnung des Sinus Wertes, verwenden Sie die JavaScript Funktion <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sin" target="_blank" rel="noopener">Math.sin()</a> zusammen mit der Konstante <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI" target="_blank" rel="noopener">Math.PI.</a> In das Eingabefeld für den JavaScript Ausdruck geben Sie Folgendes ein:</p>
<p style="text-align: center;"><strong>Math.sin</strong>(2 * <strong>Math.PI</strong> / (<strong>$GradientSteps</strong> &#8211; 1) * <strong>$i</strong>)</p>
<p>Der Schleifenzähler <strong>$i</strong> läuft von 0 bis zur Anzahl der <strong>$GradientSteps</strong> &#8211; 1. Zur Berechnung des aktuellen Sinuswertes wird die Periode 2π durch die Anzahl die Schritte &#8211; 1 geteilt und dann mit dem aktuellen Schritt <strong>$i</strong> multipliziert.</p>
<p><img decoding="async" class="aligncenter wp-image-2312 size-full" src="https://cetoni.de/wp-content/uploads/EnterSinusCalculation.png" alt="" width="1024" height="313" srcset="https://cetoni.com/wp-content/uploads/EnterSinusCalculation.png 1024w, https://cetoni.com/wp-content/uploads/EnterSinusCalculation-300x92.png 300w, https://cetoni.com/wp-content/uploads/EnterSinusCalculation-768x235.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><br />
Um den berechneten Wert der <strong>$Sinus</strong> Variable zu überprüfen, können Sie deren Wert im grafischen Logger anzeigen lassen. Dafür haben Sie im ersten Teil des Tutorials bereits den virtuellen I/O-Kanal <strong>Script Value 1</strong> erstellt und zum grafischen Logger hinzugefügt. Fügen Sie nun die Funktion <strong>Write Device Property</strong> <span style="color: #4393e9;">❶</span> in das Script ein. Konfigurieren Sie die Funktion dann so, wie in der Abbildung unten dargestellt.</p>
<p><img decoding="async" class="alignleft wp-image-2332 size-medium" src="https://cetoni.de/wp-content/uploads/SinusWriteDeviceProperty-300x107.png" alt="" width="300" height="107" srcset="https://cetoni.com/wp-content/uploads/SinusWriteDeviceProperty-300x107.png 300w, https://cetoni.com/wp-content/uploads/SinusWriteDeviceProperty-768x273.png 768w, https://cetoni.com/wp-content/uploads/SinusWriteDeviceProperty.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /><br />
In das Feld <strong>Value to be written</strong> <span style="color: #4393e9;">❷</span> tragen Sie den Variablennamen <strong>$Sinus</strong> ein. Im Bereich <strong>Device Property</strong> <span style="color: #4393e9;">❸</span> wählen Sie im Feld <strong>Device</strong> den virtuellen Kanal <strong>Script Value 1</strong>. Im Feld <strong>Property</strong> wählen Sie die dann die Eigenschaft <strong>ActualValu</strong>e. Die Funktion können Sie dann so lesen:</p>
<p style="text-align: center;">Schreibe den Wert der Variablen <strong>$Sinus</strong> in die Eigenschaft <strong>ActualValue</strong> des virtuellen Kanals <strong>Script Value 1</strong></p>
<p>Löschen Sie jetzt alle Daten aus dem grafischen Logger und aktivieren Sie die automatische Skalierung. Starten Sie nun Ihr Script. Wenn Sie alles richtig eingegeben haben, sollten Sie sehen, wie im grafischen Logger die folgende Sinusfunktion generiert wird:</p>
<p><img decoding="async" class="aligncenter wp-image-2316 size-full" src="https://cetoni.de/wp-content/uploads/PlotLoggerVirtualChannelSinus.png" alt="" width="1076" height="241" srcset="https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus.png 1076w, https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus-300x67.png 300w, https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus-1024x229.png 1024w, https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus-768x172.png 768w" sizes="(max-width: 1076px) 100vw, 1076px" /><br />
Der Sinus oszilliert wie erwartet zwischen 1 und -1. Für das sinusförmige Flussprofil welches generiert werden soll, soll die Flussrate zwischen 0 und der Zielflussrate oszillieren. In einem ersten Schritt soll der Sinuswert dafür so angepasst werden, dass er zwischen 0 und 1 oszilliert. Dies können Sie erreichen, indem Sie den Sinus auf der Y-Achse um 1 nach oben verschieben und dann die Amplitude halbieren. Zur Speicherung des neuen Wertes, verwenden wir die bereits vorhandene Variable <strong>$Flow1</strong> <span style="color: #4393e9;">❶</span>. Dies kann nun so berechnet werden:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❷</span> <strong>$Flow1</strong> = (<strong>$Sinus</strong> + 1) / 2</p>
<p><img decoding="async" class="aligncenter wp-image-2318 size-full" src="https://cetoni.de/wp-content/uploads/ShiftAdjustSinus.png" alt="" width="1024" height="313" srcset="https://cetoni.com/wp-content/uploads/ShiftAdjustSinus.png 1024w, https://cetoni.com/wp-content/uploads/ShiftAdjustSinus-300x92.png 300w, https://cetoni.com/wp-content/uploads/ShiftAdjustSinus-768x235.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><br />
Ändern Sie nun die <strong>Write Device Property</strong> Funktion so ab, dass nicht mehr der Wert der Variable <strong>$Sinus</strong> sondern der Wert der Variable <strong>$Flow1</strong> ausgegeben wird. Löschen Sie dann den grafischen Logger und aktivieren Sie wieder die automatische Skalierung. Sie sollten nun folgende Funktion im grafischen Logger sehen &#8211; eine Sinusfunktion, die zwischen 0 und 1 oszilliert:</p>
<p><img decoding="async" class="aligncenter wp-image-2320 size-full" src="https://cetoni.de/wp-content/uploads/PlotLoggerVirtualChannelSinus2.png" alt="" width="1075" height="246" srcset="https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus2.png 1075w, https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus2-300x69.png 300w, https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus2-1024x234.png 1024w, https://cetoni.com/wp-content/uploads/PlotLoggerVirtualChannelSinus2-768x176.png 768w" sizes="(max-width: 1075px) 100vw, 1075px" /><br />
Um den Sinus zwischen 0 und der Zielflussrate oszillieren zu lassen, müssen Sie jetzt lediglich noch mit der Zielflussrate <strong>$TargetFlow</strong> multiplizieren. Erweitern Sie die Berechnung der Variable <strong>$Flow1</strong> um diesen Schritt:</p>
<p style="text-align: center;"><strong>$Flow1</strong> = (<strong>$Sinus</strong> + 1) / 2 *<strong> $TargetFlow</strong></p>
<p>Die Flussrate <strong>$Flow1</strong> wird nun sinusförmig zwischen 0 und der Zielflussrate oszillieren. Die Flussrate <strong>$Flow2</strong> der zweiten Pumpe soll die erste Flussrate so ergänzen, das ein konstanter Fluss mit gleichbleibender Flussrate <strong>$TargetFlow</strong> entsteht. Deshalb können Sie in der Variable <strong>$Flow2</strong> die Flussrate der zweiten Pumpe wie folgt berechnen</p>
<p style="text-align: center;"><strong>$Flow2</strong> = $TargetFlow &#8211; $Flow1</p>
<p>Fügen Sie nun vor die Write <strong>Device Property</strong> Funktion zwei <strong>Generate Flow</strong> Funktionen ein und löschen Sie anschließend die <strong>Write Device Property</strong> Funktion, da diese nicht mehr benötigt wird.</p>
<p><img decoding="async" class="aligncenter wp-image-2322 size-full" src="https://cetoni.de/wp-content/uploads/InsertGenerateFlowFunctions-1.gif" alt="" width="952" height="376" /><br />
Das Script sollte nun wie in der Abbildung unten aussehen <span style="color: #4393e9;">❶</span>. Konfigurieren Sie die beiden <strong>Generate Flow</strong> Funktionen so, dass die erste Pumpe mit der Flussrate <strong>$Flow1</strong><span style="color: #4393e9;"> ❷</span> gestartet wird und die zweite Pumpe mit der Flussrate <strong>$Flow2</strong> (siehe Abbildung unten). Achten Sie darauf, dass die Option <strong>Run to completion</strong> <span style="color: #4393e9;">❸</span> deaktiviert ist.</p>
<p><img decoding="async" class="aligncenter wp-image-2324 size-full" src="https://cetoni.de/wp-content/uploads/GenerateFlowSinus-1.png" alt="" width="917" height="359" srcset="https://cetoni.com/wp-content/uploads/GenerateFlowSinus-1.png 917w, https://cetoni.com/wp-content/uploads/GenerateFlowSinus-1-300x117.png 300w, https://cetoni.com/wp-content/uploads/GenerateFlowSinus-1-768x301.png 768w" sizes="(max-width: 917px) 100vw, 917px" /><br />
Löschen Sie jetzt erneut alle Daten aus dem grafischen Logger und aktivieren Sie die automatische Skalierung. Überprüfen Sie vor dem Scriptstart, dass die Spritzen der beiden Pumpen aufgezogen sind. Starten Sie dann Ihr Script. Wenn Sie alles richtig eingegeben haben, sollten Sie sehen, wie im grafischen Logger die folgenden Flussprofile generiert werden:</p>
<p><img decoding="async" class="aligncenter wp-image-2326 size-full" src="https://cetoni.de/wp-content/uploads/SinusFlowProfile.png" alt="" width="1096" height="249" srcset="https://cetoni.com/wp-content/uploads/SinusFlowProfile.png 1096w, https://cetoni.com/wp-content/uploads/SinusFlowProfile-300x68.png 300w, https://cetoni.com/wp-content/uploads/SinusFlowProfile-1024x233.png 1024w, https://cetoni.com/wp-content/uploads/SinusFlowProfile-768x174.png 768w" sizes="(max-width: 1096px) 100vw, 1096px" /><br />
Sie haben nun die Grundlagen erlernt, wie Sie in den Scriptfunktionen JavaScript verwenden können &#8211; z.B. um mathematische Berechnung durchzuführen. Wenden Sie das Erlernte an, indem Sie z.B. ein Script programmieren, dass zwei sinusförmige Flüsse erzeugt, bei dem der Sinus des zweiten Flusses die doppelte Periodendauer vom Sinus des ersten Flusses hat. Nutzen Sie den grafischen Logger, um die Ergebnisse zu überprüfen.</p>
<p>Im dritten Teil des Tutorials erfahren Sie, wie Sie das Script um eine Initialisierungsroutine erweitern, welche die Spritzen aufzieht und erhalten Tipps, welche Möglichkeiten es gibt, die Lesbarkeit Ihres Scriptes zu verbessern und Ihr Script zu dokumentieren.</p>
<p>Das QmixElements Projekt mit simulierten Geräten und dem im ersten und zweiten Teil des Tutorials erstellten Scripten können Sie <a href="https://cetoni.de/downloads/Flowprofiles.qpr" target="_blank" rel="noopener">hier herunterladen</a>.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-2/">Tutorial: Flussprofilgenerierung mit QmixElements (CETONI Elements) &#8211; Teil 2</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial Flussprofilgenerierung mit QmixElements (CETONI Elements)- Teil 1</title>
		<link>https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-1/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Wed, 20 Nov 2019 11:48:18 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/?p=2412</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-1/">Tutorial Flussprofilgenerierung mit QmixElements (CETONI Elements)- Teil 1</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be58175c73d"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<p>Die QmixElements Software verfügt über ein leistungsfähiges Script-System, um Prozesse und Abläufe schnell und einfach zu automatisieren. Sie erhalten im Rahmen dieses Tutorials einen Einblick und viele nützliche Hinweise zu einigen erweiterten Techniken, wie z.B. den Einsatz von Variablen, die Verwendung von JavaScript und die Nutzung von virtuellen Kanälen für die Aufzeichnung von Werten im grafischen Logger.</p>
<p>Im Rahmen des Tutorials erstellen Sie zwei Scripte, in denen auf Basis mathematischer Funktionen Flussgradienten bzw. Flussprofile generiert werden.</p>
<h3>Vorbereitung</h3>
<p>Bevor Sie mit der Programmierung der Scripte beginnen können, müssen Sie Ihr System konfigurieren. Wenn Sie nicht über entsprechende Geräte verfügen, können Sie das Tutorial auch gern mit simulierten Geräten nachvollziehen. Das QmixElements Projekt mit simulierten Geräten und dem im Tutorial erstellten Script können Sie hier herunterladen.</p>
<p><span style="color: #4393e9;"><strong>Wichtig</strong></span><br />
Für dieses Tutorial benötigen Sie die QmixElements Version v20191121 oder eine neuere Version. Wenn Sie noch eine ältere Version verwenden, aktualisieren Sie bitte auf die aktuellste QmixElements Version.</p>
<p>Aktuelle QmixElements Version</p>
<p>Für dieses Tutorial haben wir zwei Nemesys Niederdruck Spritzenpumpen mit 5 ml Glasspritzen <span style="color: #4393e9;">❶</span> verwendet. Sie können das Tutorial auch gern mit anderen Nemesys Spritzenpumpen oder Spritzen durchführen, müssen aber dann ggf. die Flussraten anpassen. Damit während der Generierung der Flussprofile die Ventile automatisch geschaltet werden, aktivieren Sie die Ventilautomatik für beide Pumpen <span style="color: #4393e9;">❷</span>. Als Einheit für die Flussrate konfigurieren Sie bitte <strong>ml/min</strong> <span style="color: #4393e9;">❸</span>.</p>
<p><img decoding="async" class="aligncenter wp-image-2416 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_Configuration.png" alt="" width="993" height="559" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_Configuration.png 993w, https://cetoni.com/wp-content/uploads/Flowprofile_Configuration-300x169.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_Configuration-768x432.png 768w" sizes="(max-width: 993px) 100vw, 993px" /></p>
<p>Um berechnete Werte aus dem Script grafisch visualisieren zu können, erstellen Sie in der Liste der I/O Kanäle einen virtuellen Kanal <span style="color: #4393e9;">❹</span>. Ein virtueller Kanal ist ein I/O Kanal, der für die Eingabe und Ausgabe von Werten verwendet werden kann.</p>
<p>Damit die generierten Flussprofile grafische in Echtzeit aufgezeichnet und visualisiert werden können, verwenden Sie den grafischen Logger und konfigurieren ihn entsprechend der Abbildung unten. Es soll von beiden Pumpen die aktuelle Flussrate und von dem virtuellen Kanal der aktuellen Wert angezeigt werden <span style="color: #4393e9;">❶</span>. Als <strong>Log Intervall</strong> <span style="color: #4393e9;">❷</span> stellen Sie einen Wert von 0,1 Sekunden ein. Jetzt können Sie mit der Programmierung des ersten Scripts starten.</p>
<h3><img decoding="async" class="aligncenter wp-image-2434 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_Loggerconfig.png" alt="" width="916" height="411" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_Loggerconfig.png 916w, https://cetoni.com/wp-content/uploads/Flowprofile_Loggerconfig-300x135.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_Loggerconfig-768x345.png 768w" sizes="(max-width: 916px) 100vw, 916px" /></h3>
<h3>Teil 1 &#8211; Script zur Generierung eines Sägezahnprofils</h3>
<p>Ziel dieses Scripts soll es sein, mit einer Pumpe ein Flussprofil in Form eines Sägezahns zu generieren und mit der zweiten Pumpe den Fluss der ersten Pumpe so zu ergänzen, dass die Summe der beiden Flüsse zu einem konstanten Fluss mit einer definierten Flussrate führt.</p>
<p><img decoding="async" class="aligncenter wp-image-2440 size-full" src="https://cetoni.de/wp-content/uploads/sawtooth_function.png" alt="" width="617" height="233" srcset="https://cetoni.com/wp-content/uploads/sawtooth_function.png 617w, https://cetoni.com/wp-content/uploads/sawtooth_function-300x113.png 300w" sizes="(max-width: 617px) 100vw, 617px" /></p>
<p>Den Sägezahn generieren Sie, indem Sie die Flussrate schrittweise in einem festen Intervall von 0 bis zur gewünschten Zielflussrate erhöhen. D.h. für das Script lassen sich die folgenden Parameter identifizieren:</p>
<ul>
<li>Anzahl der Schritte für einen einzelnen Sägezahn (<strong>$GradientSteps</strong>)</li>
<li>Dauer eines Schrittes in Millisekunden (<strong>$StepDuration</strong>)</li>
<li>Zielflussrate (<strong>$TargetFlow</strong>)</li>
</ul>
<p>Für diese Parameter legen Sie in Ihrem Script drei Variablen an. So können Sie die Parameter später schnell und einfach an einer Stelle ändern, ohne ständig durch das komplette Script navigieren zu müssen. Für jede Variable vergeben Sie einen aussagekräftigen und eindeutigen Namen.</p>
<p><img decoding="async" class="aligncenter wp-image-2436 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_Variables.png" alt="" width="517" height="176" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_Variables.png 517w, https://cetoni.com/wp-content/uploads/Flowprofile_Variables-300x102.png 300w" sizes="(max-width: 517px) 100vw, 517px" /></p>
<p>Für den Gradient verwenden Sie 20 Schritte (<strong>$GradientSteps = 20</strong>) mit einer Dauer von je 100 Millisekunden (<strong>$StepDuration = 100</strong>). Die Auflösung von 100 ms ist für viele Anwendungen eine hinreichend schnelle Zeitbasis. Diese Werte können Sie später jederzeit ändern. Für die Zielflussrate können Sie einen festen Wert eingeben, oder Sie berechnen die Zielflussrate auf Basis der maximalen Flussrate der ersten Pumpe. Dafür können Sie in das JavaScript Feld die Geräteeigenschaft (<strong>Insert device property</strong>) für die maximale Flussrate der Pumpe einfügen und für Berechnungen verwenden. In diesem Beispiel wollen wir mit einem Zehntel der Maximalflussrate dosieren und teilen diese deshalb einfach durch 10. Sie können aber auch gern andere Werte oder eigene Berechnungen verwenden.</p>
<p style="text-align: center;"><strong>$TargetFlow</strong> = $neMESYS_Low_Pressure_1.MaxFlow / 10</p>
<p>Um einen einzelnen Sägezahn zu erzeugen, benötigen Sie nun eine Zählschleife (<strong>Counting Loop</strong>) <span style="color: #4393e9;">❶</span>. Für eine Zählschleife können zwei Parameter konfiguriert werden: die Anzahl der Schleifendurchläufe (<strong>Loop Cycles</strong>) <span style="color: #4393e9;">❷</span> und der Name der Variable, in die der Zählerwert für den aktuellen Schleifendurchlauf gespeichert wird <span style="color: #4393e9;">❸</span>. Das Eingabfeld für die Loop Cycles <span style="color: #4393e9;">❷</span> ist mit einem orangefarbenen V markiert, d.h. Sie können in diesem Eingabefeld Variablen verwenden. Sie können an dieser Stelle also einfach die vorher definierte Variable <strong>$GradientSteps</strong> eintragen.</p>
<p><img decoding="async" class="aligncenter wp-image-2418 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_CountingLoop.png" alt="" width="918" height="240" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_CountingLoop.png 918w, https://cetoni.com/wp-content/uploads/Flowprofile_CountingLoop-300x78.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_CountingLoop-768x201.png 768w" sizes="(max-width: 918px) 100vw, 918px" /></p>
<p>Innerhalb der Schleife können Sie nun die Flussrate für die erste Pumpe berechnen und in einer Variablen speichern. Der Schleifenzähler <strong>$i</strong> nimmt bei den 20 Schleifendurchläufen die Werte 0 – 19 an. Die Flussrate können Sie deshalb mit der folgenden Formel berechnen:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❶</span> <strong>$Flow1</strong> = $TargetFlow / ($GradientSteps &#8211; 1) * $i</p>
<p>D.h. die Flussrate ist im ersten Schleifendurchlauf 0 und erreicht im letzten Durchlauf den Wert <strong>$TargetFlow</strong>. Die Summe der Flussraten beider Pumpen soll den Wert <strong>$TargetFlow</strong> ergeben. Deshalb können Sie in einer zweiten Variablen die Flussrate der zweiten Pumpe wie folgt berechnen:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❷</span> <strong>$Flow2</strong> = $TargetFlow &#8211; $Flow1</p>
<p><img decoding="async" class="aligncenter wp-image-2428 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_FlowVariables.png" alt="" width="847" height="309" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_FlowVariables.png 847w, https://cetoni.com/wp-content/uploads/Flowprofile_FlowVariables-300x109.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_FlowVariables-768x280.png 768w" sizes="(max-width: 847px) 100vw, 847px" /></p>
<p>Diese beiden Werte können Sie nun verwenden, um mit der Funktion <strong>Generate Flow</strong> <span style="color: #4393e9;">❶</span> die Dosierung der beiden Pumpen zu starten. Zur Konfiguration der Generate Flow Funktion wählen Sie einfach die entsprechende Pumpe aus und tragen im <strong>Feld Flow</strong> <span style="color: #4393e9;">❷</span> den berechneten Wert <strong>$Flow1</strong> oder <strong>$Flow2</strong> ein. Wichtig ist, dass hier die Einheit für die Flussrate auf den gleichen Wert eingestellt wird, wie er für die Pumpe konfiguriert wurde – in diesem Fall <strong>ml/min</strong> <span style="color: #4393e9;">❸</span>. Die Checkbox <strong>Run to completion</strong> <span style="color: #4393e9;">❹</span> müssen Sie deaktivieren. Ist dieses Feld aktiv, dann wird die nächste Funktion erst gestartet, wenn die Pumpe die Dosierung beendet hat. Im Fall der Generate Flow Funktion wäre das dann, wenn die Pumpe vollständig aufgezogen oder vollständig entleert ist. Da dies hier nicht erwünscht ist, sondern das Script sofort fortgesetzt werden soll, deaktivieren Sie das Feld.</p>
<p><img decoding="async" class="aligncenter wp-image-2430 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_GenerateFlow.png" alt="" width="850" height="280" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_GenerateFlow.png 850w, https://cetoni.com/wp-content/uploads/Flowprofile_GenerateFlow-300x99.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_GenerateFlow-768x253.png 768w" sizes="(max-width: 850px) 100vw, 850px" /></p>
<p>Um die gewünschte Schrittdauer für jeden Schleifendurchlauf zu erreichen, fügen Sie nun noch eine <strong>Delay</strong> Funktion <span style="color: #4393e9;">❶</span> als letzte Funktion in die Schleife ein. Im Konfigurationsbereich der Funktion im Eingabefeld <strong>Milliseconds</strong> <span style="color: #4393e9;">❷</span> können Sie direkt die Variable<strong> $StepDuratio</strong>n eintragen. Die Delay Funktion verzögert die weitere Scriptausführung für die konfigurierte Zeitdauer.</p>
<p><img decoding="async" class="aligncenter wp-image-2420 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_Delay.png" alt="" width="1001" height="241" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_Delay.png 1001w, https://cetoni.com/wp-content/uploads/Flowprofile_Delay-300x72.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_Delay-768x185.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /></p>
<p>Am Ende Ihres kurzen Scripts fügen Sie jetzt die Funktion <strong>Stop All Pumps</strong> <span style="color: #4393e9;">❶</span> ein, um alle Pumpen zu stoppen. Um die Aufzeichnung der Flussraten im grafischen Logger mit dem Scriptablauf zu synchronisieren, fügen Sie anschließend noch die Funktion zum Start des Loggers (<strong>Start Plot Logger</strong>) <span style="color: #4393e9;">❷</span> vor der Zählschleife ein und die Funktion zum Stoppen der Aufzeichnung (<strong>Stop Plot Logger</strong>)<span style="color: #4393e9;"> ❸</span> am Ende des Scripts.</p>
<p><img decoding="async" class="aligncenter wp-image-2426 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_FirstTestRun.png" alt="" width="535" height="280" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_FirstTestRun.png 535w, https://cetoni.com/wp-content/uploads/Flowprofile_FirstTestRun-300x157.png 300w" sizes="(max-width: 535px) 100vw, 535px" /></p>
<p>Wenn Sie Ihre Spritzen komplett gefüllt haben, können Sie jetzt den ersten Testlauf starten. Wenn das Script fehlerfrei durchgelaufen ist, sollten Sie im grafischen Logger das folgende Bild sehen.</p>
<p><img decoding="async" class="aligncenter wp-image-2424 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_FirstTestRun_Graph.png" alt="" width="926" height="260" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_FirstTestRun_Graph.png 926w, https://cetoni.com/wp-content/uploads/Flowprofile_FirstTestRun_Graph-300x84.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_FirstTestRun_Graph-768x216.png 768w" sizes="(max-width: 926px) 100vw, 926px" /></p>
<p>Im nächsten Schritt erweitern Sie das Script so, dass die Erzeugung des Sägezahns zyklisch wiederholt wird, bis der Anwender die Taste <strong>Request Script Stop</strong> <span style="color: #4393e9;"><strong>❶</strong></span> drückt. Fügen Sie dafür eine anfangsgeprüfte Schleife (<strong>Conditional Loop</strong>)<span style="color: #4393e9;"> ❷</span> vor die Sägezahnschleife ein. Wechseln Sie im Konfigurationsbereich der Funktion in den JavaScript Bereich <span style="color: #4393e9;">❸</span> und geben Sie dort folgende Bedingung ein:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❹</span> <strong>$StopRequested</strong> == false</p>
<p>Das bedeutet, diese Schleife wird ständig wiederholt, so lange die Bedingung erfüllt ist, d.h. so lange die globale Variable <strong>$StopRequested</strong> den Wert false hat. Die Variable <strong>$StopRequested</strong> ist eine globale Scriptvariable die immer vorhanden ist. Nach dem Start des Scripts hat diese Variable stets den Wert false. Erst wenn der Anwender die Schaltfläche <strong>Request Script Stop</strong> <span style="color: #4393e9;">❶</span> drückt, wird der Wert der Variable auf true gesetzt.</p>
<p><img decoding="async" class="aligncenter wp-image-2414 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_ConditionalLoop.png" alt="" width="817" height="251" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_ConditionalLoop.png 817w, https://cetoni.com/wp-content/uploads/Flowprofile_ConditionalLoop-300x92.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_ConditionalLoop-768x236.png 768w" sizes="(max-width: 817px) 100vw, 817px" /></p>
<p>Jetzt können Sie die Sägezahnschleife in den Conditional Loop einfügen. Klicken Sie dafür die Zählschleife (<strong>Counting Loop</strong>) <span style="color: #4393e9;">❺</span> an und ziehen Sie diese auf den <strong>Conditional Loop</strong> <span style="color: #4393e9;">❷</span>. Die Zählschleife wird damit in den Conditional Loop eingefügt. Starten Sie das Script nun erneut. Die Erzeugung des Sägezahns wird jetzt so lange wiederholt, bis Sie die Schaltfläche <strong>Request Script Stop</strong><span style="color: #4393e9;"> ❶</span> drücken.</p>
<p>Drücken Sie nach einigen Zyklen die <strong>Request Script Stop</strong> <span style="color: #4393e9;">❶</span> Schaltfläche um das Script zu beenden. Wenn das Script fehlerfrei durchgelaufen ist, sollten Sie im grafischen Logger das folgende Bild sehen.</p>
<p><img decoding="async" class="aligncenter wp-image-2432 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_GraphLog.png" alt="" width="963" height="258" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_GraphLog.png 963w, https://cetoni.com/wp-content/uploads/Flowprofile_GraphLog-300x80.png 300w, https://cetoni.com/wp-content/uploads/Flowprofile_GraphLog-768x206.png 768w" sizes="(max-width: 963px) 100vw, 963px" /></p>
<p>Damit ist Ihr Flussprofil Script fast fertig. Um die Übersichtlichkeit noch ein wenig zu verbessern, können Sie die Variablen, die Sie am Anfang des Scriptes deklariert haben, in einer Variablengruppe (<strong>Variable Declarations</strong>) zusammenfassen. Fügen Sie dafür eine <strong>Variable Declarations</strong> Funktion als erste Funktion in das Script ein. Markieren Sie anschließend alle Variablen. Klicken Sie dafür die erste <strong>Create Variable</strong> Funktion an und klicken Sie dann mit gedrückter Umschalttaste auf die letzte <strong>Create Variable</strong> Funktion &#8211; so wie Sie auch mehrere Dateien im Dateiexplorer markieren würden.</p>
<p>Anschließend können Sie alle markierten Variablen mit der Maus in die Variablengruppe verschieben. Damit haben Sie die Variablen gruppiert und die Übersichtlichkeit und Lesbarkeit des Scripts verbessert. Außerdem ist es nun leichter, diese Gruppe von Variablen an eine andere Position zu verschieben. Ihr Script sollte nun so aussehen:</p>
<p><img decoding="async" class="aligncenter wp-image-2422 size-full" src="https://cetoni.de/wp-content/uploads/Flowprofile_FinalSawtoothScript-1.png" alt="" width="536" height="526" srcset="https://cetoni.com/wp-content/uploads/Flowprofile_FinalSawtoothScript-1.png 536w, https://cetoni.com/wp-content/uploads/Flowprofile_FinalSawtoothScript-1-300x294.png 300w" sizes="(max-width: 536px) 100vw, 536px" /></p>
<p>Im zweiten Teil des Tutorials erfahren Sie, wie Sie das Script so ändern, dass mit Hilfe von JavaScript Funktionen sinusförmige Flussprofile erzeugt werden können. Zusätzlich erweitern Sie das Script um eine Initialisierungsroutine, welche die Spritzen aufzieht und lernen, wie Sie berechnete Werte mit Hilfe von virtuellen I/O Kanälen im grafischen Logger aufzeichnen können. Abschließend erhalten Sie dann noch Tipps, welche Möglichkeiten es gibt, die Lesbarkeit Ihres Scriptes zu verbessern und Ihr Script zu dokumentieren.</p>
<p>Das QmixElements Projekt mit simulierten Geräten und dem im Tutorial erstellten Script können Sie <a href="https://cetoni.de/downloads/Flowprofiles.qpr" target="_blank" rel="noopener">hier herunterladen</a>.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/tutorial-flussprofilgenerierung-mit-qmixelements-teil-1/">Tutorial Flussprofilgenerierung mit QmixElements (CETONI Elements)- Teil 1</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>QmixElements DAQ Add-on</title>
		<link>https://cetoni.com/de/qmixelements-daq-add-on/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Wed, 21 Aug 2019 15:32:53 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/?p=4482</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/qmixelements-daq-add-on/">QmixElements DAQ Add-on</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be58175ed72"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<p>In mikrofluidischen Anwendungen, z.B. bei der Detektierung oder Vermessung von Droplets, kann es erforderlich sein, bestimmte analoge Messwerte mit einer höheren Samplingfrequenz zu erfassen, als dies bisher in der QmixElements Software möglich war. Für diese Anforderung haben wir jetzt ein neues QmixElements Add-on: das DAQ (Data Acquisition) Add-on. Das Add-on unterstützt die Multifunktions-I/O-Geräte der USB-600x Serie von National Instruments. So können Sie z.B. mit dem USB-6002 die Daten von bis zu 8 Kanälen gleichzeitig mit einer Samplerate von bis zu 6,2 KHz pro Kanal erfassen.</p>
<p>Für diesen Blogbeitrag verwenden wir das NI USB-6002 zur Beschreibung der DAQ-Plugin Funktionalität.</p>
<p><img decoding="async" class="aligncenter wp-image-4486 size-full" src="https://cetoni.de/wp-content/uploads/csm_NI-USB6000_b6a41010c1.jpg" alt="" width="996" height="560" srcset="https://cetoni.com/wp-content/uploads/csm_NI-USB6000_b6a41010c1.jpg 996w, https://cetoni.com/wp-content/uploads/csm_NI-USB6000_b6a41010c1-300x169.jpg 300w, https://cetoni.com/wp-content/uploads/csm_NI-USB6000_b6a41010c1-768x432.jpg 768w" sizes="(max-width: 996px) 100vw, 996px" /><br />
Das USB-6002 Gerät wird einfach via USB and den PC angeschlossen und verfügt über 8 analoge Eingänge mit einer Auflösung von 12 bit. Zusätzlich stehen dem Anwender noch 4 digitale Eingänge und 4 digitale Ausgänge zur Verfügung. Um das USB-6002 in der QmixElements Software zu verwenden, müssen Sie es lediglich wie jedes andere CETONI Gerät im Gerätekonfigurator konfigurieren.</p>
<p><img decoding="async" class="aligncenter wp-image-4492 size-full" src="https://cetoni.de/wp-content/uploads/NI-USB_DeviceConfigurator.png" alt="" width="821" height="530" srcset="https://cetoni.com/wp-content/uploads/NI-USB_DeviceConfigurator.png 821w, https://cetoni.com/wp-content/uploads/NI-USB_DeviceConfigurator-300x194.png 300w, https://cetoni.com/wp-content/uploads/NI-USB_DeviceConfigurator-768x496.png 768w" sizes="(max-width: 821px) 100vw, 821px" /><br />
In der Software können Sie dann im Konfigurationsfenster für den neuen DAQ-Plot einstellen, welche analogen und digitalen Kanäle im Plot aufgezeichnet werden sollen und mit welcher Samplerate die Aufzeichnung erfolgt. Alle analogen und digitalen Kanäle des USB-6002 stehen in der Software als normale I/O-Channels zur Verfügung und können somit z.B. in Scriptprogrammen zum Triggern von Funktionen oder zur Steuerung von anderen Geräten (z.B. Pumpenflussrate) verwendet werden.</p>
<p><img decoding="async" class="aligncenter wp-image-4488 size-full" src="https://cetoni.de/wp-content/uploads/DAQ_Configuration.png" alt="" width="1280" height="463" srcset="https://cetoni.com/wp-content/uploads/DAQ_Configuration.png 1280w, https://cetoni.com/wp-content/uploads/DAQ_Configuration-300x109.png 300w, https://cetoni.com/wp-content/uploads/DAQ_Configuration-1024x370.png 1024w, https://cetoni.com/wp-content/uploads/DAQ_Configuration-768x278.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" /><br />
Sobald Sie die Aufzeichnung im DAQ-Plot starten, werden die Messwerte aller konfigurierten Kanäle in Echtzeit aufgezeichnet und im Plot angezeigt. Gleichzeitig werden die Messwerte in einer CSV-Datei erfasst und können so von externen Tools importiert und ausgewertet werden.</p>
<p><img decoding="async" class="aligncenter wp-image-4484 size-full" src="https://cetoni.de/wp-content/uploads/csm_DAQ-Add-on_NI-USB6000_Notebook_8ac55bf94e.jpg" alt="" width="996" height="560" srcset="https://cetoni.com/wp-content/uploads/csm_DAQ-Add-on_NI-USB6000_Notebook_8ac55bf94e.jpg 996w, https://cetoni.com/wp-content/uploads/csm_DAQ-Add-on_NI-USB6000_Notebook_8ac55bf94e-300x169.jpg 300w, https://cetoni.com/wp-content/uploads/csm_DAQ-Add-on_NI-USB6000_Notebook_8ac55bf94e-768x432.jpg 768w" sizes="(max-width: 996px) 100vw, 996px" /><br />
Damit steht Ihnen ein leistungsfähiges Tool zur Verfügung, um Messwerte mit höheren Sampleraten aufzuzeichnen. Zusätzlich erhalten Sie mit dem DAQ-Add-on die Möglichkeit, ein bereits vorhandenes NI USB-600x Gerät in die Software einzubinden um zusätzliche I/O-Kanäle zu erhalten.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/qmixelements-daq-add-on/">QmixElements DAQ Add-on</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Neue Features und Verbesserungen in Qmix Elements</title>
		<link>https://cetoni.com/de/neue-feature-und-verbesserungen-in-qmix-elements/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Mon, 27 May 2019 09:41:25 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/?p=2106</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/neue-feature-und-verbesserungen-in-qmix-elements/">Neue Features und Verbesserungen in Qmix Elements</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be581760d4c"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<p>Wer Spitzenforschung betreibt oder als Entwickler daran arbeitet, Probleme kreativ zu lösen, braucht Hard- und Software, die es ihm ermöglicht, sich voll und ganz auf seine Aufgabe zu konzentrieren. Mit QmixElements liefern wir eine umfangreiche Labor-Automatisierungs-Plattform, die dies gewährleistet und darüber hinaus neue Möglichkeiten eröffnet. Damit die Handhabung noch einfacher wird, arbeiten wir ständig an der Weiterentwicklung der Software und implementieren ständig neue Features, damit Sie Ihren Ideen freien Lauf lassen können.</p>
<p>In vorangegangenen Posts haben wir bereits ausführlich über das neue Advanced-Docking-System und die Baseline Korrektur für das Spektroskopie Plugin gesprochen. Doch unser neuestes Update bietet noch viele weitere Features, die wir Ihnen hier vorstellen möchten.</p>
<h3>Einstellungen, Autostart und mehr&#8230;</h3>
<p>Mit dem neuen Settings-Dialog finden Sie jetzt wichtige globale oder pluginspezifische Konfigurationseinstellungen gebündelt an einem Ort. Dort können Sie u.a. die neue Auto-Connect Funktion aktivieren oder das Script konfigurieren, welches beim Start der Anwendung geladen und ggf. auch gestartet werden soll.</p>
</div>




<div class="wpb_text_column wpb_content_element " >
	<p>QmixElements Settings Dialog</p>
<p>Mit diesen neuen Funktionen ist nun der vollautomatische Start der Software und eines Scripts nach dem Einschalten des Steuerungsrechners möglich. Sie müssen lediglich die folgenden Schritte durchführen:</p>
</div>



<div class="img-with-aniamtion-wrap " data-max-width="100%" data-max-width-mobile="default" data-shadow="none" data-animation="none" >
      <div class="inner">
        <div class="hover-wrap"> 
          <div class="hover-wrap-inner">
            <img decoding="async" class="img-with-animation skip-lazy" data-delay="0" height="298" width="649" data-animation="none" src="https://cetoni.com/wp-content/uploads/SettingsDialog.png" alt="" srcset="https://cetoni.com/wp-content/uploads/SettingsDialog.png 649w, https://cetoni.com/wp-content/uploads/SettingsDialog-300x138.png 300w" sizes="(max-width: 649px) 100vw, 649px" />
          </div>
        </div>
        
      </div>
    </div>
<div class="wpb_text_column wpb_content_element " >
	<ol>
<li><strong>Qmix Elements Autostart</strong><br />
Nutzen Sie die Möglichkeiten des Betriebssystems (Autostart, Aufgabenplanung) für den automatischen Start von QmixElements nach dem Start des Betriebssystems.</li>
<li><strong>Auto connect<br />
</strong>Aktivieren Sie im Settings-Dialog die Einstellung Enable auto connect und die Software verbindet sich nach dem Start automatisch mit den angeschlossenen Geräten.</li>
<li><strong>Script Autostart</strong><br />
Konfigurieren Sie im Settings-Dialog das Autostart Scriptfile und aktivieren Sie die Option Enable script autostart. Die Software startet dann nach dem Verbinden automatisch das konfigurierte Script.</li>
</ol>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69be581762aa8"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<h2>Nemesys Plugin</h2>
<p>Es sind viele kleine Details, die am neMESYS Plugin verbessert wurden. So haben wir z.B. die Anzeige der einzelnen neMESYS Bedienpanels kompakter gestaltet, so dass nun mehr Pumpen gleichzeitig ohne Scrollen auf dem Bildschirm angezeigt werden können. D.h. auch bei bis zu neun Pumpen haben Sie stets alle Geräte im Blick.</p>
<h3><img decoding="async" class="aligncenter wp-image-2114 size-full" src="https://cetoni.de/wp-content/uploads/Nemesys_Plugin_Compact.png" alt="" width="1280" height="360" srcset="https://cetoni.com/wp-content/uploads/Nemesys_Plugin_Compact.png 1280w, https://cetoni.com/wp-content/uploads/Nemesys_Plugin_Compact-300x84.png 300w, https://cetoni.com/wp-content/uploads/Nemesys_Plugin_Compact-1024x288.png 1024w, https://cetoni.com/wp-content/uploads/Nemesys_Plugin_Compact-768x216.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />Kompakteres Design der Nemesys Bedienoberfläche</h3>
<p>Die aktuelle Softwareversion unterstützt nun auch unsere neuen 3/4-Wege Contiflow-Ventile. Bei der Konfiguration dieser Ventile wird automatisch der Drucksensor entsprechend dem Sensor im Ventil konfiguriert und der Pumpe zugewiesen. Gleichzeitig haben wir auch die Sicherheit bei der Konfiguration von Ventilen und der Zuweisung von Drucksensoren verbessert. Bei der Ventilkonfiguration wird nun automatisch die Ventilautomatik aktiviert, um eine versehentliche Beschädigung der Ventile durch zu hohe Drücke zu verhindern. Bei der Zuweisung von Drucksensoren wird jetzt die Drucküberwachung immer automatisch aktiviert, um die Pumpe beim Überschreiten von Druckgrenzen zu stoppen und so die Gefahr der Beschädigung von Komponenten erheblich zu verringern.</p>
<p><img decoding="async" class="aligncenter wp-image-2116 size-full" src="https://cetoni.de/wp-content/uploads/ContiFlowValves_QmixElements.jpg" alt="" width="996" height="560" srcset="https://cetoni.com/wp-content/uploads/ContiFlowValves_QmixElements.jpg 996w, https://cetoni.com/wp-content/uploads/ContiFlowValves_QmixElements-300x169.jpg 300w, https://cetoni.com/wp-content/uploads/ContiFlowValves_QmixElements-768x432.jpg 768w" sizes="(max-width: 996px) 100vw, 996px" />Zusätzlich zu diesen Änderungen wurden noch viele weitere Details am neMESYS Plugin verbessert oder hinzugefügt. Hier einige der weiteren Highlights:</p>
<p>verbesserte Anzeige des Status der Drucküberwachung &#8211; Sie erkennen nun sofort, ob die Pumpe bei</p>
<ul>
<li>Überdruck gestoppt wird</li>
<li>verbesserte Konfiguration des kontinuierlichen Flusses</li>
<li>Variablenunterstützung für die Continuous Flow Scriptfunktion</li>
<li>neue Scriptfunktion Change Continuous Flow &#8211; damit können Sie nun über Scriptvariablen die Flussrate eines kontinuierlichen Flusses ohne Unterbrechung verändern.</li>
<li>im Spritzenauswahldialog finden Sie jetzt eine Suchfunktion für eine schnellere und einfachere Spritzenauswahl</li>
<li>Suche im Spritzenauswahldialog</li>
</ul>
<p><img decoding="async" class="aligncenter wp-image-2118 size-full" src="https://cetoni.de/wp-content/uploads/SyringeSearch_01.png" alt="" width="800" height="450" srcset="https://cetoni.com/wp-content/uploads/SyringeSearch_01.png 800w, https://cetoni.com/wp-content/uploads/SyringeSearch_01-300x169.png 300w, https://cetoni.com/wp-content/uploads/SyringeSearch_01-768x432.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
</div>




<div class="wpb_text_column wpb_content_element " >
	<h2>Spectra Viewer</h2>
<p>Mit dem neuen Spectra Viewer steht jetzt ein Tool zur Verfügung, um gespeicherte Spektraldaten im Analyze IQ Format (*.aiq) oder im CSV Format (*.txt) zu öffnen und zu betrachten. D.h. Sie können Spektren, die Sie manuell oder per Script mit dem Spektroskopie Plugin aufgenommen haben, jederzeit wieder laden und mit anderen Spektren vergleichen. Das ist besonders hilfreich, bei der Erstellung von umfangreichen Analyze IQ Trainingsdatensätzen. Sie können in einem Rutsch mehrere Spektren gleichzeitig laden oder später weitere Spektren zum Viewer hinzufügen. Wie in der Spektroskopie Live Anzeige können Sie den Inhalt des Spectra Viewers mit nur einem Mausklick als Bild oder PDF-Datei exportieren.</p>
<h2>Analyze IQ Dataset Preparation</h2>
<p>Mit dem neuen Analyze IQ Dataset Preparation Dialog haben wir die Erstellung von Analyze IQ Trainingsdatensätzen erheblich vereinfacht. Sie können jetzt mit Hilfe des Scriptsystems vollautomatisch unterschiedliche Stoffgemische mit verschiedenen Konzentrationen erzeugen. Die Konzentrationswerte der einzelnen Stoffe können dabei direkt als Metadaten in die aufgenommenen Spektren gespeichert werden. Der Analyze IQ Dataset Preparation Dialog kann diese Metadaten dann später auslesen und daraus die entsprechenden CSV-Dateien für Analyze IQ erstellen. Damit verringert sich der Zeitaufwand für die Erstellung von Trainingsdatensätzen erheblich.</p>
<h2><img decoding="async" class="aligncenter wp-image-2123 size-large" src="https://cetoni.de/wp-content/uploads/AnalyzeIQ_DatasetPreparation03-1024x410.png" alt="" width="1024" height="410" srcset="https://cetoni.com/wp-content/uploads/AnalyzeIQ_DatasetPreparation03-1024x410.png 1024w, https://cetoni.com/wp-content/uploads/AnalyzeIQ_DatasetPreparation03-300x120.png 300w, https://cetoni.com/wp-content/uploads/AnalyzeIQ_DatasetPreparation03-768x308.png 768w, https://cetoni.com/wp-content/uploads/AnalyzeIQ_DatasetPreparation03.png 1280w" sizes="(max-width: 1024px) 100vw, 1024px" />Wertanzeige in grafischen Diagrammen</h2>
<p>Alle grafischen Diagramme unterstützen nun die interaktive Anzeige von Werten, wenn Sie die Maus über eine Kurve bewegen. Sowohl im grafischen Logger, in der Spektren Live Anzeige der Spektrometermodule als auch im neuen Spectra Viewer können Sie die Maus über die einzelnen Kurven bewegen, um eine Live-Anzeige der Werte unter dem Maus Cursor zu erhalten.</p>
</div>



<div class="img-with-aniamtion-wrap " data-max-width="100%" data-max-width-mobile="default" data-shadow="none" data-animation="none" >
      <div class="inner">
        <div class="hover-wrap"> 
          <div class="hover-wrap-inner">
            <img decoding="async" class="img-with-animation skip-lazy" data-delay="0" height="473" width="1280" data-animation="none" src="https://cetoni.com/wp-content/uploads/SpectralViewer04.png" alt="" srcset="https://cetoni.com/wp-content/uploads/SpectralViewer04.png 1280w, https://cetoni.com/wp-content/uploads/SpectralViewer04-300x111.png 300w, https://cetoni.com/wp-content/uploads/SpectralViewer04-1024x378.png 1024w, https://cetoni.com/wp-content/uploads/SpectralViewer04-768x284.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
          </div>
        </div>
        
      </div>
    </div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69be581763b31"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row vc_row-o-equal-height vc_row-flex"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="img-with-aniamtion-wrap " data-max-width="100%" data-max-width-mobile="default" data-shadow="none" data-animation="none" >
      <div class="inner">
        <div class="hover-wrap"> 
          <div class="hover-wrap-inner">
            <img decoding="async" class="img-with-animation skip-lazy" data-delay="0" height="720" width="1280" data-animation="none" src="https://cetoni.com/wp-content/uploads/PlotLoggerTrace.png" alt="" srcset="https://cetoni.com/wp-content/uploads/PlotLoggerTrace.png 1280w, https://cetoni.com/wp-content/uploads/PlotLoggerTrace-300x169.png 300w, https://cetoni.com/wp-content/uploads/PlotLoggerTrace-1024x576.png 1024w, https://cetoni.com/wp-content/uploads/PlotLoggerTrace-768x432.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
          </div>
        </div>
        
      </div>
    </div>
<div class="wpb_text_column wpb_content_element  vc_custom_1612954659831" >
	<p>Anzeige von Informationen zu den einzelnen Kurven im grafischen Logger. Angezeigt werden der Name des aufgezeichneten Wertes sowie Zeitstempel und Wert.</p>
</div>




			</div> 
		</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="img-with-aniamtion-wrap " data-max-width="100%" data-max-width-mobile="default" data-shadow="none" data-animation="none" >
      <div class="inner">
        <div class="hover-wrap"> 
          <div class="hover-wrap-inner">
            <img decoding="async" class="img-with-animation skip-lazy" data-delay="0" height="720" width="1280" data-animation="none" src="https://cetoni.com/wp-content/uploads/SpectroscopyTrace02.png" alt="" srcset="https://cetoni.com/wp-content/uploads/SpectroscopyTrace02.png 1280w, https://cetoni.com/wp-content/uploads/SpectroscopyTrace02-300x169.png 300w, https://cetoni.com/wp-content/uploads/SpectroscopyTrace02-1024x576.png 1024w, https://cetoni.com/wp-content/uploads/SpectroscopyTrace02-768x432.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
          </div>
        </div>
        
      </div>
    </div>
<div class="wpb_text_column wpb_content_element  vc_custom_1612954727471" >
	<p>Anzeige der Werte in der Spektroskopie Live Anzeige. Wenn Sie die Maus über die Kurve bewegen erhalten Sie Informationen zur Wellenlänge und zur Intensität an der entsprechenden Position.</p>
</div>




			</div> 
		</div>
	</div> 

	<div  class="vc_col-sm-4 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				<div class="img-with-aniamtion-wrap " data-max-width="100%" data-max-width-mobile="default" data-shadow="none" data-animation="none" >
      <div class="inner">
        <div class="hover-wrap"> 
          <div class="hover-wrap-inner">
            <img decoding="async" class="img-with-animation skip-lazy" data-delay="0" height="720" width="1280" data-animation="none" src="https://cetoni.com/wp-content/uploads/SpectraViewerTrace02.png" alt="data integraty, KI, processed data" srcset="https://cetoni.com/wp-content/uploads/SpectraViewerTrace02.png 1280w, https://cetoni.com/wp-content/uploads/SpectraViewerTrace02-300x169.png 300w, https://cetoni.com/wp-content/uploads/SpectraViewerTrace02-1024x576.png 1024w, https://cetoni.com/wp-content/uploads/SpectraViewerTrace02-768x432.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
          </div>
        </div>
        
      </div>
    </div>
<div class="wpb_text_column wpb_content_element  vc_custom_1612954774194" >
	<p>Anzeige der Werte im Spectra-Viewer. Wird die Maus über eine Kurve bewegt, werden der Name der Kurve sowie X und Y-Wert an der aktuellen Position angezeigt.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69be5817660d2"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<h2>Script System</h2>
<p>Im Script System wurden viele kleine Details verbessert, um die Erstellung von Scripten für Anwender noch einfacher zu machen. Ein neues Feature ist z.B. die Variablen Deklarationssequenz. Damit können Sie Variablen zusammenfassen, gruppieren und somit die Übersichtlichkeit und Lesbarkeit Ihres Scripts erhöhen. Statt vieler einzelner Variablen ist nur noch die Variablendeklarationssequenz sichtbar und erst beim Aufklappen dieser Sequenz sehen Sie die deklarierten Variablen. In der Abbildung unten sehen Sie, wie das Script durch die Verwendung der neuen Sequenz wesentlich kompakter und übersichtlicher wird.</p>
</div>




<div class="wpb_text_column wpb_content_element " >
	<p>Der Script-Editor unterstützt nun auch die Auswahl von mehreren Scriptfunktionen gleichzeitig. Dadurch ist es ab jetzt wesentlich einfacher, komplette Abschnitte aus mehreren Scriptfunktionen an neue Positionen zu verschieben oder zu kopieren. Mit der neuen Funktion <strong>Convert Selection To Function Sequence</strong> können Sie blitzschnell eine Auswahl aus mehreren Scriptfunktionen in einer Funktionssequenz gruppieren und damit Ihr Script strukturieren und übersichtlicher gestalten.</p>
<p>Um die Übersichtlichkeit zu erhöhen oder die Darstellung des Editors an Ihre Bedürfnisse anzupassen, können Sie nun auch die Darstellung der Scriptfunktionen in drei Stufen skalieren. In der Stufe <strong>small</strong> erhalten Sie eine extrem kompakte Darstellung für maximale Übersichtlichkeit. <a href="https://www.youtube.com/watch?v=y2e_hC9MlLA&amp;feature=youtu.be" target="_blank" rel="noopener">Das Video auf unserem Youtube Channel</a> gibt einen kleinen Überblick über die neuen Möglichkeiten.</p>
<p>Zusätzlich zu den o.g. Funktionen, haben wir aber noch weitere Details verbessert:</p>
<ul>
<li>verbesserte <strong>Start-Timer</strong> Funktion für einen leichteren Restart von Timern</li>
<li><strong>Stop Request Button</strong> &#8211; damit können Sie nun Scripte so beenden, dass Geräte in einen sicheren Zustand gebracht werden können</li>
<li>verbesserte<strong> Show Message</strong> Funktion &#8211; das Script lässt sich nun durch Bestätigen des Nachrichtenfensters fortsetzen</li>
<li>die <strong>Counting Loop</strong> Funktion lässt sich nun durch Schreiben der Zählvariable durch eine Funktion innerhalb der Schleife abbrechen</li>
<li>verbesserter JavaScript Editor mit Syntax-Hervorhebung und Codevervollständigung</li>
</ul>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69be5817669a9"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<h2>UI Access Manager</h2>
<p>Die neue QmixElemens Version bietet Ihnen jetzt die Möglichkeit, mit Hilfe des UI-Access-Managers den Zugriff auf Bedienelemente in der Software einzuschränken. D.h., Sie können konfigurieren, welche Elemente der Anwendung für Anwender ausgeblendet werden sollen. Dies kann z.B. erwünscht sein, wenn Sie ein Script für andere Anwender oder Mitarbeiter geschrieben haben. Wenn Sie sicherstellen wollen, dass die Geräte nur über das Script bedient werden und nicht manuell „am Script vorbei“, können Sie Teile der Oberfläche ausblenden. Über ein Kennwort, das Sie vergeben, können Sie jederzeit in den &#8222;geschützten&#8220; Bereich gelangen, in dem alle Bedienelemente sichtbar sind.</p>
</div>



<div class="img-with-aniamtion-wrap " data-max-width="100%" data-max-width-mobile="default" data-shadow="none" data-animation="none" >
      <div class="inner">
        <div class="hover-wrap"> 
          <div class="hover-wrap-inner">
            <img decoding="async" class="img-with-animation skip-lazy" data-delay="0" height="332" width="645" data-animation="none" src="https://cetoni.com/wp-content/uploads/UI_Access_Manager.png" alt="" srcset="https://cetoni.com/wp-content/uploads/UI_Access_Manager.png 645w, https://cetoni.com/wp-content/uploads/UI_Access_Manager-300x154.png 300w" sizes="(max-width: 645px) 100vw, 645px" />
          </div>
        </div>
        
      </div>
    </div>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69be5817677a1"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<h2>Und vieles mehr&#8230;</h2>
<p>Neben den o.g. Verbesserungen finden sich auch viele Detailverbesserungen in anderen Plugins, wie z.B. das verbesserte Z-Panel im rotAXYS Plugin, das Hinzufügen von Geräten im Gerätekonfigurator via Doppelklick oder die Konfiguration der CAN-Baudrate im CANopen Tools Plugin.</p>
<p><strong>Und das Beste:</strong> das Update ist für alle unsere Kunden mit einer gültigen QmixElements Lizenz kostenfrei.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/neue-feature-und-verbesserungen-in-qmix-elements/">Neue Features und Verbesserungen in Qmix Elements</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Realtime Baselinekorrektur</title>
		<link>https://cetoni.com/de/realtime-baselinekorrektur/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Mon, 27 Aug 2018 12:20:05 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://cobomation.de/?p=4625</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/realtime-baselinekorrektur/">Realtime Baselinekorrektur</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be58176976d"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<p>Das Spektroskopie Plugin für die neue QmixElements Version v20180824 enthält nun eine Realtime-Baselinekorrektur. Damit können in der Software Verschiebungen der Baseline in Echtzeit bereits während der Spektrenaufnahme korrigiert werden. Eine nachträgliche Baslelinekorrektur kann damit entfallen. Dies erleichtert die spätere Auswertung der Daten und vereinfacht die Nachbearbeitung der aufgenommenen Spektren.</p>
<p>Die Baseline-Variation ist ein Problem, das bei vielen Arten von Spektraldaten auftritt. Typischerweise ist es eine lineare oder nichtlineare Addition zu den Spektren, die dazu führt, dass erwartete Nullmessungen einen positiven Wert erreichen. Dies kann z.B. die Fluoreszenz bei der Aufnahme von Raman-Spektren sein. Eine Baseline kann als die langsam variierende Kurve beschrieben werden, die durch den unteren Teil der Spektren verläuft, ohne die Sprünge der Peaks.</p>
<p>In der Software lässt sich die Anzeige der Baseline aktivieren, so dass diese als rote Linie in die Live-Anzeige der Spektraldaten eingeblendet wird.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-4627" src="https://cetoni.de/wp-content/uploads/Baseline.png" alt="" width="1131" height="411" srcset="https://cetoni.com/wp-content/uploads/Baseline.png 1131w, https://cetoni.com/wp-content/uploads/Baseline-300x109.png 300w, https://cetoni.com/wp-content/uploads/Baseline-1024x372.png 1024w, https://cetoni.com/wp-content/uploads/Baseline-768x279.png 768w" sizes="(max-width: 1131px) 100vw, 1131px" /></p>
<p>Bei der Baselinekorrektur wird durch den gewählten Algorithmus eine Baseline berechnet. Ist die Baselinekorrektur aktiviert, dann wird die berechnete Baseline nach jeder Spektrenaufnahme von den Spektraldaten abgezogen, um die Baseline-Variation zu korrigieren. Das Ergebnis sehen Sie sofort in der Live-Anzeige der Spektraldaten für das jeweilige Spektrometer.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-4631" src="https://cetoni.de/wp-content/uploads/CorrectedSpectrum.png" alt="" width="1131" height="411" srcset="https://cetoni.com/wp-content/uploads/CorrectedSpectrum.png 1131w, https://cetoni.com/wp-content/uploads/CorrectedSpectrum-300x109.png 300w, https://cetoni.com/wp-content/uploads/CorrectedSpectrum-1024x372.png 1024w, https://cetoni.com/wp-content/uploads/CorrectedSpectrum-768x279.png 768w" sizes="(max-width: 1131px) 100vw, 1131px" /></p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/realtime-baselinekorrektur/">Realtime Baselinekorrektur</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Qmix SDK (CETONI SDK) für Python</title>
		<link>https://cetoni.com/de/cetoni-python-sdk/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Mon, 23 Jul 2018 08:41:08 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/?p=2820</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/de/cetoni-python-sdk/">Qmix SDK (CETONI SDK) für Python</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69be58176b152"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone "  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<p>Mit der neuen Python Integration für das Qmix SDK entwickeln Sie in kürzester Zeit kleine Anwendungen, auomatisieren bestimme Dosierprozesse oder realisieren eigene Analysen. Der Hauptvorteil von Python ist dabei die einfache Programmierung, wodurch die Zeit für die Entwicklung, Fehlerbehebung und Wartung des Codes spürbar minimiert wird. In dem folgenden Beispiel zeigen wir Ihnen, wie einfach und schnell Sie eine Anwendung mit Python und dem Qmix SDK realisieren können.</p>
<h3>Installation</h3>
<p>Zur Installation verwenden Sie einfach das Qmix SDK Installationspaket für Windows. Das SDK wird in einen Ordner Ihrer Wahl installiert.</p>
<h3>Einbindung</h3>
<p>Zur Einbindung des Qmix SDK in Ihr Python Script müssen Sie den Pfad, der die Qmix SDK Module enthält zum Modulsuchpfad hinzufügen. Damit Python die Shared Libraries (DLLs) des SDK laden kann, müssen Sie dann noch den Pfad, der die DLLs enthält zum Windows Suchpfad hinzufügen. Alle Details dazu finden Sie auch in der Online Dokumentation.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import sys
import os
QMIXSDK_DIR = "C:/temp/QmixSDK-64bit_20180626"
sys.path.append(QMIXSDK_DIR + "/lib/python")
os.environ['PATH'] += os.pathsep + QMIXSDK_DIR</pre>
<p>&nbsp;</p>
<p><span style="color: #000000;">Jetzt können Sie die einzelnen Module der Qmix SDK Python Integration importieren.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">from qmixsdk import qmixbus
from qmixsdk import qmixpump</pre>
<p>&nbsp;</p>
<h3>Die erste Python Anwendung</h3>
<p>Danach können Sie mit der Entwicklung Ihrer ersten Anwendung beginnen. Das folgende Programm zeigt ein kleines Beispiel. Zuerst wird ein Bus Objekt angelegt, mit dem Pfad zur einer Gerätekonfiguration initialisiert und dann die Kommunikation gestartet. Danach erzeugen wir ein Pumpenobjekt und verbinden es mit der ersten Pumpe im SDK &#8211; Geräteindex 0. Testweise geben wir den Namen der Pumpe mit der print Funktion aus.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def main():
"""
A small example that shows how to use the Qmix SDK for Python
"""
bus = qmixbus.Bus()
bus.open("testconfig_qmixsdk", "")
bus.start()
pump = qmixpump.Pump()
pump.lookup_by_device_index(0)
print(pump.get_device_name())</pre>
<p>&nbsp;</p>
<p>Im nächsten Schritt führen wir mit calibrate eine Referenzfahrt durch um die Nullposition der Pumpe zu bestimmen. Vor der Referenzfahrt löschen wir noch eventuell vorhandene Fehler (clear_fault) und setzen die Pumpe betriebsbereit (enable). Mit Hilfe eines Timers warten wir dann, bis die Kalibrierung beendet ist.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">pump.clear_fault()
pump.enable(True)
pump.calibrate()
timeout_timer = qmixbus.PollingTimer(10000)
result = timeout_timer.wait_until(pump.is_calibration_finished, True)
print(result)</pre>
<p>&nbsp;</p>
<p>Die Pumpe ist nun initialisiert und wir können mit der Dosierung beginnen. Dafür setzen wir die Einheiten für Volumen und Flussrate auf Milliliter und Milliliter pro Sekunde. Testweise lassen wir uns die Einheit für den Fluss mit der print Funktion ausgeben. Dann konfigurieren wir die Spritze, die verwendet werden soll. Wir verwenden eine Spritze mit 1 mm Innendurchmesser und 60 mm Kolbenhub. In Zeile 41 starten wir die Aufnahme (aspirate) von 0.02 ml mit eine Flussrate von 0.004 ml/s. Mit einem Timer warten wir wieder, bis die Dosierung beendet ist.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">pump.set_volume_unit(UnitPrefix.milli, VolumeUnit.litres)
pump.set_flow_unit(UnitPrefix.milli, VolumeUnit.litres, TimeUnit.per_second)
print(pump.get_flow_unit()
pump.set_syringe_param(1, 60)
print(pump.get_syringe_param())
print(pump.get_volume_max())
print(pump.get_flow_rate_max())
pump.aspirate(0.02, 0.004)
timeout_timer.set_period(10000)
result = timeout_timer.wait_until(pump.is_pumping, False)
print(result)</pre>
<p>&nbsp;</p>
<p>Am Endes des Programms stoppen wir die Kommunikation und rufen die close Funktion des Bus Objektes auf, um alle Ressourcen wieder freizugeben.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">bus.stop()
bus.close()</pre>
<p>&nbsp;</p>
<p>Wir hoffen, Sie haben einen kleinen Eindruck davon bekommen, wie leistungsfähig und gleichzeitig einfach das Qmix SDK für Python ist. Das Python Beispiel aus diesem Blogbeitrag können Sie hier herunterladen.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/de/cetoni-python-sdk/">Qmix SDK (CETONI SDK) für Python</a> erschien zuerst auf <a href="https://cetoni.com/de/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
