<?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>CETONI Elements software, blog posts, plugins, features and news</title>
	<atom:link href="https://cetoni.com/en/category/software-en/feed/" rel="self" type="application/rss+xml" />
	<link>https://cetoni.com/en/category/software-en/</link>
	<description>Automatisierungs- und Mikrofluidiklösungen für das Labor</description>
	<lastBuildDate>Mon, 09 Feb 2026 14:29:23 +0000</lastBuildDate>
	<language>en-US</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>CETONI Elements software, blog posts, plugins, features and news</title>
	<link>https://cetoni.com/en/category/software-en/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CETONI Elements now supports precision scales</title>
		<link>https://cetoni.com/en/qmixelements-now-supports-precision-lab-balances/</link>
					<comments>https://cetoni.com/en/qmixelements-now-supports-precision-lab-balances/#comments</comments>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Tue, 08 Jun 2021 16:37:46 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://cobomation.de/qmixelements-now-supports-precision-lab-balances/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/qmixelements-now-supports-precision-lab-balances/">CETONI Elements now supports precision scales</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d61697d20"  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 now supports precision scales!</h2>
<p>Integration of a high-resolution precision balance in your application offers you precise information at every point in your process and thus additional security. With the help of our flexible laboratory automation software<a href="https://cetoni.com/en/cetoni-elements/"> CETONI Elements</a> You can now integrate precision scales into your process and use them for targeted control of your high-precision dosing, automation of processes or permanent process monitoring.</p>
<h3>Simply install the latest QmixElements update and getting started!</h3>
<p>The CETONI Elements software now supports the integration of laboratory balances via the balance plug-in. A device driver for Sartorius scales (Entris, ED, GK and GW scales) is already included with the release of the plugin. This means that you can easily integrate your existing Sartorius laboratory balance into the CETONI Elements software. Thus you not only extend your CETONI system with the possibility to weigh substances, substances or dosed liquids, but you can also synchronise or completely automate processes as you wish in interaction with other CETONI hardware and your own analysis.</p>
<h3><img fetchpriority="high" decoding="async" class="aligncenter wp-image-2284 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 with two Nemesys syringe pumps and a scale</h3>
<p>The configuration of the scale devices is carried out, as you are used to from the CETONI Elements software, via the device configurator. Simply create a new configuration or add the scale to an existing configuration and save it. After activating the configuration, the scale is available in the software.</p>
<h3><img decoding="async" class="aligncenter wp-image-2286 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 the software, the scale is then displayed as a normal analogue input channel in the list of I/O channels <span style="color: #4393e9;">❶</span>. There you can see the current value at any time and tare the scale via the context menu of the channel. Like all other analogue channels, you can also record this channel in the graphic logger <span style="color: #4393e9;">❷</span> or in the CSV logger and use it to create control channels. Due to the real-time recording of the measured value in the graphic logger, dynamic weight changes, e.g. when dosing into a sample vessel, can be visualised and followed very well.</p>
<h3><img decoding="async" class="aligncenter wp-image-2288 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" />List of I/O channels with scale channel</h3>
<p>The measuring channel of the scale can be read via the script system and taring of the scale is also possible via a script function. This allows the scale to be easily integrated into more complex analyses and automated processes.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/en/qmixelements-now-supports-precision-lab-balances/">CETONI Elements now supports precision scales</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cetoni.com/en/qmixelements-now-supports-precision-lab-balances/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2</title>
		<link>https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-2/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Tue, 08 Jun 2021 15:20:49 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/tutorial-flow-profile-generation-with-qmixelements-part-2/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-2/">Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d6169b0c7"  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 the second part of this tutorial you will learn how to create sinusoidal flow profiles using JavaScript functions. To do this, you modify the script from the first part so that a sinusoidal profile is generated instead of a sawtooth profile. Before you start with this second part, you may want to read <a href="https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-1/">the first part of the tutorial here</a>.</p>
<p><span style="color: #4393e9;"><strong>Important</strong></span><br />For this tutorial, you need QmixElements version v20191121 or a newer version. If you are still using an older version, please update to the latest QmixElements version.</p>
<p><a href="#">Latest QmixElements Version</a></p>
<h3>Preparation</h3>
<p>Configure your system as described in the first part of the tutorial and then connect to your devices. If you do not have the appropriate devices, you are welcome to follow the tutorial with simulated devices. The QmixElements project with simulated devices and the script created in the first tutorial can be downloaded here.</p>
<p>Now open the script <strong>Tutorial_Sawtooth_Profile.qsc</strong> that you created in the first part of the tutorial and save it under a new name. You should then see the following program in script editor.</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>Part 2 &#8211; Script for generating a sinusoidal profile</h3>
<p>The goal of this script is to generate a flow profile in the form of a sine wave from 0 to the defined target flow rate with one pump and to supplement the flow of the first pump with the second pump in such a way that the sum of the two flows results in a constant flow with a defined flow rate.</p>
<p>To generate the profile, the flow rate of the pump must be changed step by step so that a sinusoidal profile is created over time. The number of steps for generating the sine profile, i.e. the resolution, should be set to 100 steps for one sine. In the previous sawtooth script you had set the number of steps to 20. Therefore change the value of the variable <strong>$GradientSteps</strong> to 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>Adjusting the resolution (number of steps) for a sine profile</h3>
<p>Now delete the two <strong>Generate Flow</strong> functions as shown in the figure below. To do this, select both functions and then delete them using the context menu (right mouse button) or by pressing the <strong>Delete key</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 />Now insert a new variable before the two existing variables in the counting loop. Name the variable <strong>$Sinus</strong> and select <strong>JavaScript Expression</strong> in the <strong>Type</strong> field.</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 />The <strong>$Sine</strong> variable is used to store the calculation of the sine value for further processing. To calculate the sine value, use the JavaScript function <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sin" target="_blank" rel="noopener">Math.sin()</a> together with the constant <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI" target="_blank" rel="noopener">Math.PI.</a> Enter the following into the input field for the JavaScript expression:</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>The loop counter <strong>$i</strong> runs from 0 to the number of <strong>$GradientSteps</strong> &#8211; 1. To calculate the current sine value, the period 2π is divided by the number of steps &#8211; 1 and then multiplied by the current step <strong>$i</strong>.</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 />To check the calculated value of the <strong>$Sine</strong> variable, you can display its value in the graphical logger. To do this, you have already created the virtual I/O channel <strong>Script Value 1</strong> in the first part of the tutorial and added it to the graphical logger. Now insert the function <strong>Write Device Property</strong> <span style="color: #4393e9;">❶</span> into the script. Then configure the function as shown in the figure below.</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 the field <strong>Value to be written</strong> <span style="color: #4393e9;">❷</span> enter the variable name <strong>$Sinus</strong>. In the <strong>Device Property</strong> area <span style="color: #4393e9;">❸</span> select in the <strong>Device</strong>field the virtual channel <strong>Script Value 1</strong>. In the <strong>Property</strong> field select the property <strong>ActualValue</strong>. You can now read the function as follows:</p>
<p style="text-align: center;">Write the value of the variable <strong>$Sinus</strong> into the property <strong>ActualValue</strong> of the virtual channel <strong>Script Value 1</strong>.</p>
<p>Now delete all data from the graphical logger and activate automatic scaling. Now start your script. If you have entered everything correctly, you should see how the following sine function is generated in the graphical logger:</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 />The sine oscillates between 1 and -1 as expected. For the sinusoidal flow profile to be generated, the flow rate should oscillate between 0 and the target flow rate. In a first step, the sine value should be adjusted so that it oscillates between 0 and 1. You can achieve this by shifting the sine on the Y-axis upwards by 1 and then halve the amplitude. To store the new value, we use the existing variable <strong>$Flow1</strong> <span style="color: #4393e9;">❶</span>. This can now be calculated like this:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❷</span> <strong>$Flow1</strong> = (<strong>$Sine</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 />Now change the <strong>Write Device Property</strong> function so that the value of the variable <strong>$Flow1</strong> is displayed instead of the value of the variable <strong>$Sine</strong>. Then delete the graphical logger and reactivate automatic scaling. You should now see the following function in the graphic logger &#8211; a sine function oscillating between 0 and 1:</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 />To make the sine oscillate between 0 and the target flow rate, you now only have to multiply by the target flow rate <strong>$TargetFlow</strong>. Extend the calculation of the variable <strong>$Flow1</strong> by this step:</p>
<p style="text-align: center;"><strong>$Flow1</strong> = (<strong>$Sine</strong> + 1) / 2 *<strong> $TargetFlow</strong></p>
<p>The flow rate <strong>$Flow1</strong> will now oscillate sinusoidally between 0 and the target flow rate. The flow rate <strong>$Flow2</strong> of the second pump should complement the first flow rate in such a way that a constant flow with a constant flow rate <strong>$TargetFlow</strong> is created. You can therefore calculate the flow rate of the second pump in the variable <strong>$Flow2</strong> as follows:</p>
<p style="text-align: center;"><strong>$Flow2</strong> = $TargetFlow &#8211; $Flow1</p>
<p>Now insert two <strong>Generate Flow</strong> functions in front of the <strong>Write Device Property</strong> function and then delete the <strong>Write Device Property</strong> function as it is no longer needed.</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 />The script should now look like the figure below <span style="color: #4393e9;">❶</span>. Configure the two <strong>Generate Flow</strong> functions to start the first pump at flow rate <strong>$Flow1</strong> <span style="color: #4393e9;">❷</span> and the second pump at flow rate <strong>$Flow2</strong> (see figure below). Make sure that the <strong>Run to completion</strong> option <span style="color: #4393e9;">❸</span> is disabled.</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 />Now delete all data from the graphical logger again and activate automatic scaling. Before starting the script, check that the syringes of both pumps are filled. Then start your script. If you have entered everything correctly, you should see how the following flow profiles are generated in the graphical logger:</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 />You have now learned the basics of how to use JavaScript in the script functions &#8211; e.g. to perform mathematical calculations. Apply what you have learned, for example by programming a script that generates two sinusoidal flows, where the sine of the second flow has twice the period of the sine of the first flow. Use the graphical logger to check the results.</p>
<p>In the third part of the tutorial you will learn how to add an initialization routine to the script, how to wind up the syringes and get tips on how to improve the readability of your script and how to document your script.</p>
<p>The QmixElements project with simulated devices and the scripts created in the first and second part of the tutorial can be <a href="https://cetoni.de/downloads/Flowprofiles.qpr" target="_blank" rel="noopener">downloaded here</a>.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-2/">Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial flow profile generation with QmixElements (CETONI Elements) &#8211; Part 1</title>
		<link>https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-1/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Mon, 07 Jun 2021 16:04:54 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/tutorial-flow-profile-generation-with-qmixelements-part-1/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-1/">Tutorial flow profile generation with QmixElements (CETONI Elements) &#8211; Part 1</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d6169de2f"  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>The QmixElements software has a powerful script system to automate processes and procedures quickly and easily. This tutorial will give you an insight and many useful hints on some of the advanced features of QmixElements. Techniques, such as the use of variables, the use of JavaScript and the use of virtual channels for recording values in the graphical logger.</p>
<p>In this tutorial, you will create two scripts that generate flow gradients or flow profiles based on mathematical functions.</p>
<h3>Preparation</h3>
<p>Before you can start programming the scripts, you must configure your system. If you do not have the appropriate devices, you are welcome to follow the tutorial with simulated devices. You can download the QmixElements project with simulated devices and the script created in the tutorial here.</p>
<p><span style="color: #4393e9;"><strong>Important</strong></span><br />
For this tutorial you need the QmixElements version v20191121 or a newer version. If you are still using an older version, please update to the latest QmixElements version.</p>
<p>Latest QmixElements Version</p>
<p>For this tutorial we used two neMESYS low pressure syringe pumps with 5 ml glass syringes <span style="color: #4393e9;">❶</span>. You can do this tutorial with other neMESYS syringe pumps or syringes, but you may have to adjust the flow rates. To switch the valves automatically during the generation of the flow profiles, activate the valve automation for both pumps <span style="color: #4393e9;">❷</span>. Please configure <strong>ml/min</strong> <span style="color: #4393e9;">❸</span> as the unit for the flow rate.</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>To visualize calculated values from the script graphically, create a virtual channel <span style="color: #4393e9;">❹</span>in the list of I/O channels. A virtual channel is an I/O channel that can be used for entering and outputting values.</p>
<p>To record and visualize the generated flow profiles graphically in real time, use the graphical logger and configure it according to the figure below. The current flow rate of both pumps should be displayed as well as the current value of the virtual channel <span style="color: #4393e9;">❶</span>. As <strong>Log Interval</strong><span style="color: #4393e9;">❷</span> set a value of 0.1 seconds. Now you can start programming the first script.</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>Part 1 &#8211; Script for generating a sawtooth profile</h3>
<p>The aim of this script is to generate a flow profile in the form of a sawtooth with one pump and to supplement the flow of the first pump with the second pump so that the sum of the two flows leads to a constant flow with a defined flow rate but with a mixing ratio that changes over time.</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>The sawtooth is generated by increasing the flow rate stepwise in a fixed interval from 0 to the desired target flow rate. The following parameters can be identified for the script:</p>
<ul>
<li>Number of steps for a single sawtooth (<strong>$GradientSteps</strong>)</li>
<li>Duration of a step in milliseconds (<strong>$StepDuration</strong>)</li>
<li>Target flow rate (<strong>$TargetFlow</strong>)</li>
</ul>
<p>You create three variables for these parameters in your script. So you can change the parameters later quickly and easily in one place, without having to navigate through the complete script all the time. For each variable you assign a meaningful and unique name.</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>For the gradient, use 20 steps (<strong>$GradientSteps = 20</strong>) with a duration of 100 milliseconds each (<strong>$StepDuration = 100</strong>). The resolution of 100 ms is a reasonably fast time base for many applications. You can change these values later at any time. You can enter a fixed value for the target flow rate, or you can calculate the target flow rate based on the maximum flow rate of the first pump. To do this, you can insert the device property (<strong>Insert device property</strong>) for the maximum flow rate of the pump into the JavaScript field and use it for calculations. In this example we want to dose with one tenth of the maximum flow rate and therefore simply divide it by 10. You can also use other values or your own calculations:</p>
<p style="text-align: center;"><strong>$TargetFlow</strong> = $neMESYS_Low_Pressure_1.MaxFlow / 10</p>
<p>To create a single sawtooth, you now need a <strong>Counting Loop</strong> <span style="color: #4393e9;">❶</span>. Two parameters can be configured for a counting loop: the number of <strong>Loop Cycles</strong> <span style="color: #4393e9;">❷</span> and the name of the variable (Counter Variable) in which the counter value for the current loop cycle is stored <span style="color: #4393e9;">❸</span>. The input field for the loop cycles <span style="color: #4393e9;">❷</span> is marked with an orange V, i.e. you can use variables in this input field. At this point you can simply enter the previously defined variable <strong>$GradientSteps</strong>.</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>Within the loop you can now calculate the flow rate for the first pump and save it in a variable. The loop counter <strong>$i</strong> takes the values 0 &#8211; 19 for the 20 loop passes. You can therefore calculate the flow rate with the following formula:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❶</span> <strong>$Flow1</strong> = $TargetFlow / ($GradientSteps &#8211; 1) * $i</p>
<p>I.e. the flow rate is 0 in the first loop pass and reaches the value <strong>$TargetFlow</strong> in the last loop pass. The sum of the flow rates of both pumps should give the value <strong>$TargetFlow</strong>. Therefore, in a second variable, you can calculate the flow rate of the second pump as follows:</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>You can now use these two values to start the dosing of the two pumps with the function <strong>Generate Flow</strong> <span style="color: #4393e9;">❶</span>. To configure the Generate Flow function, simply select the appropriate pump and enter the calculated value <strong>$Flow1</strong> or <strong>$Flow2</strong> in the <strong>Flow field</strong> <span style="color: #4393e9;">❷</span>. It is important that the unit for the flow rate is set to the same value as configured for the pump &#8211; in this case <strong>ml/min</strong> <span style="color: #4393e9;">❸</span>. You have to deactivate the <strong>Run to completition</strong> checkbox <span style="color: #4393e9;">❹</span>. If this field is active, the next function will not be started until the pump has finished dosing. In the case of the Generate Flow function, this would be when the pump is fully wound or drained. Since this is not desired here, but the script is to be continued immediately, deactivate the field.</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>To achieve the desired step duration for each loop cycle, add a <strong>Delay</strong>function <span style="color: #4393e9;">❶</span> as the last function in the loop. You can directly enter the variable <strong>$StepDuration</strong> in the configuration area of the function in the input field <strong>Milliseconds</strong> <span style="color: #4393e9;">❷</span>. The Delay function delays the further execution of the script for the configured time period.</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>At the end of your short script, now add the <strong>Stop All Pumps</strong> <span style="color: #4393e9;">❶</span> to stop all pumps. To synchronize the recording of the flow rates in the graphical logger with the script flow, add the function to start the logger (<strong>Start Plot Logger</strong>) <span style="color: #4393e9;">❷</span> before the counting loop and the function to stop the recording (<strong>Stop Plot Logger</strong>) <span style="color: #4393e9;">❸</span> at the end of the script.</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>When your syringes are completely filled, you can now start the first test run. If the script has run without errors, you should see the following graphs in the graphical logger.</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>In the next step, extend the script to repeat the generation of the sawtooth cyclically until the user presses the <strong>Request Script Stop</strong> <span style="color: #4393e9;"><strong>❶</strong></span> button. To do this, insert a <strong>Conditional Loop</strong> <span style="color: #4393e9;">❷</span> in front of the sawtooth loop. In the configuration area of the function, switch to the JavaScript area <span style="color: #4393e9;">❸</span> and enter the following condition:</p>
<p style="text-align: center;"><span style="color: #4393e9;">❹</span> <strong>$StopRequested</strong> == false</p>
<p>This means that this loop is repeated continuously as long as the condition is fulfilled, i.e. as long as the global variable <strong>$StopRequested</strong> has the value false. The variable <strong>$StopRequested</strong> is a global script variable that is always present. After starting the script this variable always has the value false. Only when the user presses the button <strong>Request Script Stop</strong> <span style="color: #4393e9;">❶</span>, the value of the variable is set to true.</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>Now you can insert the sawtooth loop into the conditional loop. Click on the <strong>Counting Loop</strong> <span style="color: #4393e9;">❺</span> and drag it to the <strong>Conditional Loop</strong> <span style="color: #4393e9;">❷</span>. The counting loop is then inserted into the conditional loop. Now restart the script. The generation of the sawtooth is now repeated until you press the button <strong>Request Script Stop</strong> <span style="color: #4393e9;">❶</span>.</p>
<p>After a few cycles, press the <strong>Request Script Stop</strong> <span style="color: #4393e9;">❶</span> button to end the script. If the script has run without errors, you should see the following graphs in the graphical logger.</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>Your flow profile script is almost finished. To improve the clarity, you can combine the variables you declared at the beginning of the script in a variable group (<strong>Variable Declarations</strong>). Insert a <strong>Variable Declarations</strong> function as the first function in the script. Then select all variables. Click on the first <strong>Create Variable</strong> function and then click on the last <strong>Create Variable</strong> function while holding down the Shift key &#8211; just as you would select several files in your file explorer.</p>
<p>Afterwards you can move all marked variables with the mouse into the variable group. With this you have grouped the variables and improved the clarity and readability of the script. In addition, it is now easier to move this group of variables to another position. Your script should now look like this:</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>In the second part of the tutorial you will learn how to modify the script so that sinusoidal flow profiles can be generated with the help of JavaScript functions. You will also learn how to add an initialization routine to the script that pulls up the syringes and how to record calculated values using virtual I/O channels in the graphical logger. Finally, you will receive tips on how to improve the readability of your script and document your script.</p>
<p>The QmixElements project with simulated devices and the script created in the tutorial can be <a href="https://cetoni.de/downloads/Flowprofiles.qpr" target="_blank" rel="noopener">downloaded here</a>.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/en/tutorial-flow-profile-generation-with-qmixelements-part-1/">Tutorial flow profile generation with QmixElements (CETONI Elements) &#8211; Part 1</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>QmixElements DAQ add-on</title>
		<link>https://cetoni.com/en/qmixelements-daq-add-on/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Mon, 07 Jun 2021 12:04:28 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/qmixelements-daq-add-on/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/qmixelements-daq-add-on/">QmixElements DAQ add-on</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d616a1571"  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 microfluidic applications, e.g. when detecting or measuring droplets, it may be necessary to acquire certain analog measured values with a higher sampling frequency than was previously possible in the QmixElements software. For this requirement we now have a new QmixElements add-on: the DAQ (Data Acquisition) add-on. The add-on supports the multifunction I / O devices of the USB-600x series from National Instruments. For example, you can use the USB-6002 to capture data from up to 8 channels at the same time with a sample rate of up to 6.2 KHz per channel.</p>
<p>For this blog post we use the NI USB-6002 to describe the DAQ plug-in functionality.</p>
<p><img decoding="async" class="aligncenter wp-image-4487 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 />
The USB-6002 device is simply connected to the PC via USB and has 8 analog inputs with a resolution of 12 bits. In addition, there are 4 digital inputs and 4 digital outputs available to the user. To use the USB-6002 in the QmixElements software, you only have to configure it like any other CETONI device in the device configurator.</p>
<p><img decoding="async" class="aligncenter wp-image-4493 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 the software you can then use the configuration window for the new DAQ plot to set which analog and digital channels are to be recorded in the plot and which sample rate is used for recording. All analog and digital channels of the USB-6002 are available in the software as normal I / O channels and can therefore be used, for example, in script programs to trigger functions or to control other devices (e.g. pump flow rate).</p>
<p><img decoding="async" class="aligncenter wp-image-4489 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 />
As soon as you start recording in the DAQ plot, the measured values of all configured channels are recorded in real time and displayed in the plot. At the same time, the measured values are recorded in a CSV file and can therefore be imported and evaluated by external tools.</p>
<p><img decoding="async" class="aligncenter wp-image-4485 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 />
This provides you with a powerful tool for recording measured values with higher sample rates. In addition, the DAQ add-on gives you the option of integrating an existing NI USB-600x device into the software in order to obtain additional I / O channels.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/en/qmixelements-daq-add-on/">QmixElements DAQ add-on</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New features and improvements in Qmix Elements</title>
		<link>https://cetoni.com/en/new-features-and-improvements-in-qmix-elements/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Sun, 06 Jun 2021 16:27:18 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/new-features-and-improvements-in-qmix-elements/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/new-features-and-improvements-in-qmix-elements/">New features and improvements in Qmix Elements</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d616a42ad"  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>Whoever conducts top research or works as a developer to solve problems creatively needs hardware and software that allows him to concentrate fully on his task. With QmixElements, we provide a comprehensive laboratory automation platform that ensures this and also opens up new possibilities. To make it even easier to use, we are constantly working on the further development of the software and are constantly implementing new features.</p>
<p>In previous posts we have already talked in detail about the new advanced docking system and baseline correction for the spectroscopy plugin. But our latest update offers many more features, which we would like to introduce to you here.</p>
<h3>Settings, Autostart and more&#8230;</h3>
<p>With the new Settings dialog, you can now find important global or plugin-specific configuration settings bundled in one place. There you can activate the new Auto-Connect function or configure the script which should be loaded and run when starting the application.</p>
</div>




<div class="wpb_text_column wpb_content_element " >
	<p>QmixElements Settings Dialog</p>
<p>With these new functions it is now possible to start the software and a script fully automatically after switching on the control computer. You only have to perform the following steps:</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>QmixElements Autostart</strong><br />
Use the features of the operating system (autostart, task scheduling) for the automatic start of QmixElements after the operating system has been booted.</li>
<li><strong>Auto connect<br />
</strong>Activate the Enable auto connect setting in the settings dialog and the software automatically connects to the attached devices after startup.</li>
<li><strong>Script Autostart</strong><br />
In the settings dialog, configure the Autostart Scriptfile and activate the option Enable script autostart. After connecting, the software will automatically start the configured script.</li>
</ol>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69c1d616a6770"  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>There are many small details that have been improved in the neMESYS plugin. For example, we have made the display of the individual neMESYS control panels more compact, so that now more pumps can be displayed simultaneously on the screen without scrolling. This means that even with up to 9 pumps you always have all devices in view.</p>
<h3><img decoding="async" class="aligncenter wp-image-2115 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" />More compact design of the neMESYS user interface</h3>
<p>The current software version now also supports our new 3/4-way contiflow valves. When these valves are configured, the pressure sensor is automatically configured according to the sensor in the valve and assigned to the pump. In addition, we have also improved safety when configuring valves and assigning pressure sensors. When configuring valves, the automatic valve switching is always activated to prevent accidental damage to the valves caused by excessive pressures. When assigning pressure sensors, pressure monitoring is now always automatically activated to stop the pump when pressure limits are exceeded, significantly reducing the risk of component damage.</p>
<p><img decoding="async" class="aligncenter wp-image-2117 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" />In addition to these changes, many more details have been improved or added to the neMESYS plugin. Here are some of the other highlights:</p>
<p>improved display of pressure monitoring status &#8211; you can now immediately see if the pump</p>
<ul>
<li>is stopped in case of overpressure</li>
<li>improved configuration of the continuous flow</li>
<li>variable support for the Continuous Flow Script function</li>
<li>new script function Change Continuous Flow &#8211; now you can use script variables to change the flow rate of a continuous flow without interruption</li>
<li>the syringe selection dialog now includes a search function for faster and easier syringe selection</li>
<li>Search in the syringe selection dialog</li>
</ul>
<p><img decoding="async" class="aligncenter wp-image-2119 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>With the new Spectra Viewer a tool is now available to open and view stored spectral data in Analyze IQ format (*.aiq) or in CSV format (*.txt). This means that you can load spectra that you have recorded manually or via script with the Spectroscopy Plugin at any time and compare them with other spectra. This is especially helpful when creating extensive Analyze IQ training data sets. You can load multiple spectra in one go or add more spectra to the viewer later. As in the spectroscopy live display, you can export the contents of the Spectra Viewer as an image or PDF file with just one mouse click.</p>
<h2>Analyze IQ Dataset Preparation</h2>
<p>With the new Analyze IQ Dataset Preparation Dialog, we have greatly simplified the creation of Analyze IQ training data sets. With the help of the script system, you can now automatically generate different substance mixtures with different concentrations. The concentration values of the individual substances can be stored directly as metadata in the recorded spectra. The Analyze IQ Dataset Preparation dialog can then read out this metadata later and create the corresponding CSV files for Analyze IQ. This considerably reduces the time required to create training data sets.</p>
<h2><img decoding="async" class="aligncenter wp-image-2124 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" />Value display and tracing in graphical diagrams</h2>
<p>All graphical plots now support interactive display of values when you move the mouse over a curve. In the graphical logger, in the spectra live display of the spectrometer modules as well as in the new Spectra Viewer you can move the mouse over the individual curves to get a live display of the values under the mouse cursor.</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_69c1d616a7cf8"  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>Display of information on the individual curves in the graphical logger. The name of the recorded value as well as time stamp and value are displayed.</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>Display of the values in the spectroscopy live display. If you move the mouse over the curve you get information about the wavelength and the intensity at the corresponding 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>Display of the values in the Spectra-Viewer. If the mouse is moved over a curve, the name of the curve and the X and Y values at the current position are displayed.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69c1d616aaa40"  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>Many small details have been improved in the script system to make script creation even easier for users. A new feature is e.g. the Variable Declaration Sequence. It allows you to combine and group variables and thus increase the clarity and readability of your script. Instead of many single variables, only the variable declaration sequence is visible and only when you expand this sequence, you see the declared variables. In the figure below you can see how the script becomes much more compact and clearer by using the new sequence.</p>
</div>




<div class="wpb_text_column wpb_content_element " >
	<p>The script editor now also supports the selection of several script functions at the same time. This makes it much easier to move or copy complete sections of multiple script functions to new positions. With the new <strong>Convert Selection To Function Sequence</strong> function, you can group a selection of several script functions into a function sequence at lightning speed, thus structuring your script and making it clearer.</p>
<p>In order to increase the clarity or to adapt the display of the editor to your needs, you can now also scale the display of the script functions in three steps. The setting <strong>small</strong>gives you an extremely compact display for maximum clarity. The <a href="https://www.youtube.com/watch?v=y2e_hC9MlLA&amp;feature=youtu.be" target="_blank" rel="noopener">video on our youtube channel</a> gives a small overview of the new possibilities.</p>
<p>In addition to the functions mentioned above, we have improved some more details:</p>
<ul>
<li>improved <strong>Start Timer</strong> function for easier restart of timers</li>
<li><strong>Stop Request Button</strong> &#8211; now you can stop scripts in a way that devices can be brought into a secure state</li>
<li>improved <strong>Show Message</strong> function &#8211; the script can now be resumed by confirming the message window</li>
<li>the <strong>Counting Loop</strong> function can now be aborted by writing the counting variable by a function within the loop</li>
<li>improved JavaScript editor with syntax highlighting and code completion</li>
</ul>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69c1d616ab4ab"  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>The new QmixElemens version now offers you the possibility to restrict access to control elements in the software with the help of the UI Access Manager. This means that you can configure which elements of the application should be hidden for users. This can be desirable, for example, if you have written a script for other users or employees. If you want to ensure that the devices are only operated via the script and not manually &#8220;by-passing&#8221; the script, you can hide parts of the interface. By assigning a password, you can access the &#8220;protected&#8221; area where all control elements are visible at any time.</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_69c1d616ac3a7"  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>And much more&#8230;</h2>
<p>Beside the above mentioned improvements there are also many detail improvements in other plugins, e.g. the improved Z-Panel in the rotAXYS plugin, the addition of devices in the device configurator via double click or the configuration of the CAN baud rate in the CANopen Tools plugin.</p>
<p><strong>And best of all:</strong> the update is free of charge for all our customers with a valid QmixElements license.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/en/new-features-and-improvements-in-qmix-elements/">New features and improvements in Qmix Elements</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Qmix Elements v20190108</title>
		<link>https://cetoni.com/en/qmix-elements-v20190108/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Sun, 06 Jun 2021 11:39:26 +0000</pubDate>
				<category><![CDATA[Product News]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[#CETONIacademy]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Publication]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://cobomation.de/qmix-elements-v20190108/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/qmix-elements-v20190108/">Qmix Elements v20190108</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d616af078"  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>We are pleased to announce the first release of the QmixElements software in 2019. With this release we extend the functional range of the CETONI devices by new features, functions and we supplement the software with many useful details or improve existing functions. Highlight of the new QmixElements version v20190108 is the improved graphical user interface with the new Advanced Docking System.</p>
<p>In the previous QmixElements software there was a central area for switching workspaces. Individual tool windows could be freely arranged and moved around this central area. So it was possible to customize the graphical user interface to a limited extent.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-4579" src="https://cetoni.de/wp-content/uploads/QmixElements_Legacy_Docking04.png" alt="" width="1920" height="1080" srcset="https://cetoni.com/wp-content/uploads/QmixElements_Legacy_Docking04.png 1920w, https://cetoni.com/wp-content/uploads/QmixElements_Legacy_Docking04-300x169.png 300w, https://cetoni.com/wp-content/uploads/QmixElements_Legacy_Docking04-1024x576.png 1024w, https://cetoni.com/wp-content/uploads/QmixElements_Legacy_Docking04-768x432.png 768w, https://cetoni.com/wp-content/uploads/QmixElements_Legacy_Docking04-1536x864.png 1536w" sizes="(max-width: 1920px) 100vw, 1920px" /></p>
<p>However, the individual workspaces displayed in the central area could not be moved and only one workspace was visible at a time. For example, one could work either in the user interface of the neMESYS pumps, or in the positioning map for the rotAXYS or one could show the graphical logger. A simultaneous display was not possible up to now.</p>
<h3>Dock everywhere &#8211; no central widget</h3>
<p>In the new QmixElements software this limitation no longer exists. Due to the new advanced docking system there is no longer a central workspace, but only single views (windows) which can be positioned freely in the graphical user interface or can be detached from it.</p>
<p><img decoding="async" class="aligncenter wp-image-4575 size-full" src="https://cetoni.de/wp-content/uploads/QmixElements_AdvancedDockingSystem01-1.jpg" alt="" width="1280" height="720" srcset="https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDockingSystem01-1.jpg 1280w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDockingSystem01-1-300x169.jpg 300w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDockingSystem01-1-1024x576.jpg 1024w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDockingSystem01-1-768x432.jpg 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></p>
<p>You can dock all views at any edge of the main window or in any other view &#8211; so you can dock virtually anywhere and move any view to any position. Markers make it easy to see where you can insert a view.</p>
<p><img decoding="async" class="aligncenter wp-image-4577 size-full" src="https://cetoni.de/wp-content/uploads/QmixElements_DockEverywhere.png" alt="" width="1280" height="563" srcset="https://cetoni.com/wp-content/uploads/QmixElements_DockEverywhere.png 1280w, https://cetoni.com/wp-content/uploads/QmixElements_DockEverywhere-300x132.png 300w, https://cetoni.com/wp-content/uploads/QmixElements_DockEverywhere-1024x450.png 1024w, https://cetoni.com/wp-content/uploads/QmixElements_DockEverywhere-768x338.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></p>
<h3>Detach views as separate windows &#8211; perfect for multi-monitor use</h3>
<p>Not only can you move all views to new positions in the main window, but you can also detach the individual views completely from the application window and move them as a stand-alone window. This allows you, for example, to move each individual view to a different monitor. This ensures that you always keep an eye on important information and make optimum use of the available screen space.</p>
<p><img decoding="async" class="aligncenter wp-image-4571 size-full" src="https://cetoni.de/wp-content/uploads/QmixElements_AdvancdeDocking_FLoating01.jpg" alt="" width="1280" height="500" srcset="https://cetoni.com/wp-content/uploads/QmixElements_AdvancdeDocking_FLoating01.jpg 1280w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancdeDocking_FLoating01-300x117.jpg 300w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancdeDocking_FLoating01-1024x400.jpg 1024w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancdeDocking_FLoating01-768x300.jpg 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></p>
<p>Individual views can be &#8220;docked&#8221; to any position not only in the main window of the application, but in every window and every individual view of the application. This allows you to distribute all views across multiple windows or even across multiple monitors.</p>
<p><img decoding="async" class="wp-image-4573 size-full" src="https://cetoni.de/wp-content/uploads/QmixElements_AdvancedDocking_Floating02.png" alt="" width="1280" height="642" srcset="https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDocking_Floating02.png 1280w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDocking_Floating02-300x150.png 300w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDocking_Floating02-1024x514.png 1024w, https://cetoni.com/wp-content/uploads/QmixElements_AdvancedDocking_Floating02-768x385.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></p>
<h3>Moving Multiple Views Simultaneously</h3>
<p>You can not only move individual views and detach them from the user interface, but also complete view groups. If you have grouped several views in tabs, you can remove the entire view group by clicking on the title bar of the group and pulling it out of its position. This allows you to quickly customize even complex layouts.</p>
<h3><img decoding="async" class="aligncenter wp-image-4569 size-full" src="https://cetoni.de/wp-content/uploads/grouped-dragging_dark.png" alt="" width="1060" height="380" srcset="https://cetoni.com/wp-content/uploads/grouped-dragging_dark.png 1060w, https://cetoni.com/wp-content/uploads/grouped-dragging_dark-300x108.png 300w, https://cetoni.com/wp-content/uploads/grouped-dragging_dark-1024x367.png 1024w, https://cetoni.com/wp-content/uploads/grouped-dragging_dark-768x275.png 768w" sizes="(max-width: 1060px) 100vw, 1060px" /></h3>
<h3>Perspectives &#8211; fast switching of the entire user interface</h3>
<p>A certain layout of views that is perfectly suited for a particular application or user may be less suited for other tasks or other users. The new graphical user interface helps you to switch the complete layout with just one mouse click and to completely change the arrangement of views and windows in a second. The software offers so-called &#8220;perspectives&#8221; for this purpose. A perspective is nothing more than a certain layout of views with a fixed name. This means that if you have found the perfect configuration of views for a certain task, simply save this configuration under a name as a perspective.</p>
<p><img decoding="async" class="aligncenter wp-image-4581 size-full" src="https://cetoni.de/wp-content/uploads/QmixElements_Perspectives.png" alt="" width="1024" height="403" srcset="https://cetoni.com/wp-content/uploads/QmixElements_Perspectives.png 1024w, https://cetoni.com/wp-content/uploads/QmixElements_Perspectives-300x118.png 300w, https://cetoni.com/wp-content/uploads/QmixElements_Perspectives-768x302.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p>Other perspectives can be created for other tasks and other users. Later, you can simply select a perspective from the perspective menu to quickly switch the interface layout for a new task.</p>
<p>The <a href="https://www.youtube.com/watch?v=7pdNfafg3Qc" target="_blank" rel="noopener">video on our youtube channel</a> gives you a first impression of what is possible with the new advanced docking system of the QmixElements software.</p>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>Der Beitrag <a href="https://cetoni.com/en/qmix-elements-v20190108/">Qmix Elements v20190108</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Realtime baseline correction</title>
		<link>https://cetoni.com/en/realtime-baseline-correction/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Sat, 05 Jun 2021 15:21:02 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://cobomation.de/realtime-baseline-correction/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/realtime-baseline-correction/">Realtime baseline correction</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d616b0e35"  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>The spectroscopy plugin for the new QmixElements version v20180824 now comes with a real-time baseline correction. This enables the software to correct baseline shifts in real time while the spectra are being recorded. A subsequent baseline correction can thus be omitted. This facilitates the later evaluation of the data and simplifies the post-processing of the recorded spectra.</p>
<p>Baseline variation is a problem that occurs with many types of spectral data. Typically, it is a linear or nonlinear addition to the spectra that results in expected zero measurements reaching a positive value. This can be caused, for example, by the fluorescence during the recording of Raman spectra. A baseline can be described as the slowly varying curve that runs through the lower part of the spectra without the jumps of the peaks.</p>
<p>The baseline display can be activated in the software so that it appears as a red line in the live display of the spectral data.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-4628" 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>During baseline correction, a baseline is calculated by the selected algorithm. If baseline correction is activated, the calculated baseline is subtracted from the spectral data after each spectral acquisition in order to correct the baseline variation. You see the result immediately in the live display of the spectral data for the respective spectrometer.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-4632" 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/en/realtime-baseline-correction/">Realtime baseline correction</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Qmix SDK (CETONI SDK) for Python</title>
		<link>https://cetoni.com/en/cetoni-python-sdk/</link>
		
		<dc:creator><![CDATA[CETONI]]></dc:creator>
		<pubDate>Sat, 05 Jun 2021 14:38:30 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://cobomation.de/qmix-sdk-for-python/</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://cetoni.com/en/cetoni-python-sdk/">Qmix SDK (CETONI SDK) for Python</a> erschien zuerst auf <a href="https://cetoni.com/en/">CETONI GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_69c1d616b2a43"  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>With the new Python integration for the Qmix SDK you can develop small applications in the shortest time, automate certain dosing processes or realize your own analyses. The main advantage of Python is its ease of programming, which significantly reduces the time required to develop, debug and maintain the code. In the following example we show you how easy and fast you can implement an application with Python and the Qmix SDK.</p>
<h3>Installation</h3>
<p>To install, simply use the Qmix SDK installation package for Windows. The SDK will be installed in a folder of your choice.</p>
<h3>Integration</h3>
<p>To include the Qmix SDK in your Python script you have to add the path containing the Qmix SDK modules to the module search path. In order for Python to load the shared libraries (DLLs) of the SDK, you must then add the path containing the DLLs to the Windows search path. All details are also available in the online documentation.</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;">Now you can import the modules of the Qmix SDK Python integration.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">from qmixsdk import qmixbus
from qmixsdk import qmixpump</pre>
<p>&nbsp;</p>
<h3>The first Python application</h3>
<p>Now you can start developing your first application. The following program shows a small example. First a bus object is created, initialized with the path to a device configuration and then the communication is started. Then we create a pump object and connect it to the first pump in the SDK &#8211; device index 0. As a test we print the name of the pump with the print function.</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>In the next step we perform a reference run with the calibrate function to determine the zero position of the pump. Before the reference run, we clear any remaining errors (clear_fault) and enable the pump (enable). With the help of a timeout timer we wait until the calibration is finished.</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>The pump is now initialized and we can start dosing. For this we set the units for volume and flow rate to milliliter and milliliter per second. As a test we will output the unit for the flow with the print function. Then we configure the syringe to be used. We use a syringe with 1 mm inner diameter and 60 mm plunger stroke. In line 41 we start the aspiration (aspirate) of 0.02 ml with a flow rate of 0.004 ml/s. With a timeout timer we wait again until the dosage is finished.</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>At the end of the program we stop the communication and call the close function of the bus object to release all resources again.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">bus.stop()
bus.close()</pre>
<p>&nbsp;</p>
<p>We hope you got a small impression of how powerful and simple the Qmix SDK for Python is. You can download the Python example from this blog post here.</p>
</div>




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