{"id":4834,"date":"2021-06-08T17:20:49","date_gmt":"2021-06-08T15:20:49","guid":{"rendered":"https:\/\/cobomation.de\/tutorial-flow-profile-generation-with-qmixelements-part-2\/"},"modified":"2026-02-09T15:29:23","modified_gmt":"2026-02-09T14:29:23","slug":"tutorial-flow-profile-generation-with-qmixelements-part-2","status":"publish","type":"post","link":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/","title":{"rendered":"Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2"},"content":{"rendered":"[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; column_margin=&#8221;default&#8221; column_direction=&#8221;default&#8221; column_direction_tablet=&#8221;default&#8221; column_direction_phone=&#8221;default&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; row_border_radius=&#8221;none&#8221; row_border_radius_applies=&#8221;bg&#8221; overlay_strength=&#8221;0.3&#8243; gradient_direction=&#8221;left_to_right&#8221; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_tablet=&#8221;inherit&#8221; column_padding_phone=&#8221;inherit&#8221; column_padding_position=&#8221;all&#8221; background_color_opacity=&#8221;1&#8243; background_hover_color_opacity=&#8221;1&#8243; column_shadow=&#8221;none&#8221; column_border_radius=&#8221;none&#8221; column_link_target=&#8221;_self&#8221; gradient_direction=&#8221;left_to_right&#8221; overlay_strength=&#8221;0.3&#8243; width=&#8221;1\/1&#8243; tablet_width_inherit=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221; phone_text_alignment=&#8221;default&#8221; column_border_width=&#8221;none&#8221; column_border_style=&#8221;solid&#8221; bg_image_animation=&#8221;none&#8221;][vc_column_text]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>\n<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>\n<p><a href=\"#\">Latest QmixElements Version<\/a><\/p>\n<h3>Preparation<\/h3>\n<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>\n<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>\n<p><img loading=\"lazy\" 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=\"auto, (max-width: 536px) 100vw, 536px\" \/><\/p>\n<h3>Part 2 &#8211; Script for generating a sinusoidal profile<\/h3>\n<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>\n<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>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2306 size-full\" src=\"https:\/\/cetoni.de\/wp-content\/uploads\/ChangeGradientSteps.gif\" alt=\"\" width=\"1024\" height=\"320\"><\/h3>\n<h3>Adjusting the resolution (number of steps) for a sine profile<\/h3>\n<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>\n<p><img loading=\"lazy\" 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=\"auto, (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>\n<p><img loading=\"lazy\" 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>\n<p style=\"text-align: center;\"><strong>Math.sin<\/strong>(2 * <strong>Math.PI<\/strong> \/ (<strong>$GradientSteps<\/strong> &#8211; 1) * <strong>$i<\/strong>)<\/p>\n<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\u03c0 is divided by the number of steps &#8211; 1 and then multiplied by the current step <strong>$i<\/strong>.<\/p>\n<p><img loading=\"lazy\" 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=\"auto, (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;\">\u2776<\/span> into the script. Then configure the function as shown in the figure below.<\/p>\n<p><img loading=\"lazy\" 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=\"auto, (max-width: 300px) 100vw, 300px\" \/><br \/>In the field <strong>Value to be written<\/strong> <span style=\"color: #4393e9;\">\u2777<\/span> enter the variable name <strong>$Sinus<\/strong>. In the <strong>Device Property<\/strong> area <span style=\"color: #4393e9;\">\u2778<\/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>\n<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>\n<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>\n<p><img loading=\"lazy\" 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=\"auto, (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;\">\u2776<\/span>. This can now be calculated like this:<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #4393e9;\">\u2777<\/span> <strong>$Flow1<\/strong> = (<strong>$Sine<\/strong> + 1) \/ 2<\/p>\n<p><img loading=\"lazy\" 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=\"auto, (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>\n<p><img loading=\"lazy\" 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=\"auto, (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>\n<p style=\"text-align: center;\"><strong>$Flow1<\/strong> = (<strong>$Sine<\/strong> + 1) \/ 2 *<strong> $TargetFlow<\/strong><\/p>\n<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>\n<p style=\"text-align: center;\"><strong>$Flow2<\/strong> = $TargetFlow &#8211; $Flow1<\/p>\n<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>\n<p><img loading=\"lazy\" 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;\">\u2776<\/span>. Configure the two <strong>Generate Flow<\/strong> functions to start the first pump at flow rate <strong>$Flow1<\/strong> <span style=\"color: #4393e9;\">\u2777<\/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;\">\u2778<\/span> is disabled.<\/p>\n<p><img loading=\"lazy\" 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=\"auto, (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>\n<p><img loading=\"lazy\" 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=\"auto, (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>\n<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>\n<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>.[\/vc_column_text][\/vc_column][\/vc_row]\n","protected":false},"excerpt":{"rendered":"<p>[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; column_margin=&#8221;default&#8221; column_direction=&#8221;default&#8221; column_direction_tablet=&#8221;default&#8221; column_direction_phone=&#8221;default&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; row_border_radius=&#8221;none&#8221; row_border_radius_applies=&#8221;bg&#8221; overlay_strength=&#8221;0.3&#8243; gradient_direction=&#8221;left_to_right&#8221; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_tablet=&#8221;inherit&#8221; column_padding_phone=&#8221;inherit&#8221; column_padding_position=&#8221;all&#8221; background_color_opacity=&#8221;1&#8243; background_hover_color_opacity=&#8221;1&#8243; column_shadow=&#8221;none&#8221; column_border_radius=&#8221;none&#8221; column_link_target=&#8221;_self&#8221; gradient_direction=&#8221;left_to_right&#8221; overlay_strength=&#8221;0.3&#8243; width=&#8221;1\/1&#8243; tablet_width_inherit=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2335,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[90],"tags":[93,97],"class_list":{"0":"post-4834","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorial-en","8":"tag-software-en","9":"tag-tutorial-en"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: Flow profile generation with QmixElements (CETONI Elements) - Part 2 - CETONI GmbH<\/title>\n<meta name=\"description\" content=\"CETONI \u2013 Automatisierungstechnik + Mikrosysteme vom Prototyp bis zur Kleinserie. Ger\u00e4teentwicklung \u2713 Laborautomatisierung \u2713 Mikrosystemtechnik \u2713 Lab-on-chip \u2713\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Flow profile generation with QmixElements (CETONI Elements) - Part 2 - CETONI GmbH\" \/>\n<meta property=\"og:description\" content=\"CETONI \u2013 Automatisierungstechnik + Mikrosysteme vom Prototyp bis zur Kleinserie. Ger\u00e4teentwicklung \u2713 Laborautomatisierung \u2713 Mikrosystemtechnik \u2713 Lab-on-chip \u2713\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"CETONI GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-08T15:20:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T14:29:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cetoni.com\/wp-content\/uploads\/Header_FlowProfiles_Part2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"380\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CETONI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CETONI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/\"},\"author\":{\"name\":\"CETONI\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/#\\\/schema\\\/person\\\/f2d4de804c915072039aae63b057de8e\"},\"headline\":\"Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2\",\"datePublished\":\"2021-06-08T15:20:49+00:00\",\"dateModified\":\"2026-02-09T14:29:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/\"},\"wordCount\":1271,\"image\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cetoni.com\\\/wp-content\\\/uploads\\\/Header_FlowProfiles_Part2.png\",\"keywords\":[\"Software\",\"Tutorial\"],\"articleSection\":[\"Tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/\",\"url\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/\",\"name\":\"Tutorial: Flow profile generation with QmixElements (CETONI Elements) - Part 2 - CETONI GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cetoni.com\\\/wp-content\\\/uploads\\\/Header_FlowProfiles_Part2.png\",\"datePublished\":\"2021-06-08T15:20:49+00:00\",\"dateModified\":\"2026-02-09T14:29:23+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/#\\\/schema\\\/person\\\/f2d4de804c915072039aae63b057de8e\"},\"description\":\"CETONI \u2013 Automatisierungstechnik + Mikrosysteme vom Prototyp bis zur Kleinserie. Ger\u00e4teentwicklung \u2713 Laborautomatisierung \u2713 Mikrosystemtechnik \u2713 Lab-on-chip \u2713\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cetoni.com\\\/wp-content\\\/uploads\\\/Header_FlowProfiles_Part2.png\",\"contentUrl\":\"https:\\\/\\\/cetoni.com\\\/wp-content\\\/uploads\\\/Header_FlowProfiles_Part2.png\",\"width\":1280,\"height\":380},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/tutorial-flow-profile-generation-with-qmixelements-part-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/cetoni.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/cetoni.com\\\/en\\\/\",\"name\":\"CETONI GmbH\",\"description\":\"Automatisierungs- und Mikrofluidikl\u00f6sungen f\u00fcr das Labor\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cetoni.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cetoni.com\\\/en\\\/#\\\/schema\\\/person\\\/f2d4de804c915072039aae63b057de8e\",\"name\":\"CETONI\",\"sameAs\":[\"http:\\\/\\\/cobomation.de\"],\"url\":\"https:\\\/\\\/cetoni.com\\\/en\\\/author\\\/cetoni\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: Flow profile generation with QmixElements (CETONI Elements) - Part 2 - CETONI GmbH","description":"CETONI \u2013 Automatisierungstechnik + Mikrosysteme vom Prototyp bis zur Kleinserie. Ger\u00e4teentwicklung \u2713 Laborautomatisierung \u2713 Mikrosystemtechnik \u2713 Lab-on-chip \u2713","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Flow profile generation with QmixElements (CETONI Elements) - Part 2 - CETONI GmbH","og_description":"CETONI \u2013 Automatisierungstechnik + Mikrosysteme vom Prototyp bis zur Kleinserie. Ger\u00e4teentwicklung \u2713 Laborautomatisierung \u2713 Mikrosystemtechnik \u2713 Lab-on-chip \u2713","og_url":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/","og_site_name":"CETONI GmbH","article_published_time":"2021-06-08T15:20:49+00:00","article_modified_time":"2026-02-09T14:29:23+00:00","og_image":[{"width":1280,"height":380,"url":"https:\/\/cetoni.com\/wp-content\/uploads\/Header_FlowProfiles_Part2.png","type":"image\/png"}],"author":"CETONI","twitter_card":"summary_large_image","twitter_misc":{"Written by":"CETONI","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#article","isPartOf":{"@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/"},"author":{"name":"CETONI","@id":"https:\/\/cetoni.com\/en\/#\/schema\/person\/f2d4de804c915072039aae63b057de8e"},"headline":"Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2","datePublished":"2021-06-08T15:20:49+00:00","dateModified":"2026-02-09T14:29:23+00:00","mainEntityOfPage":{"@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/"},"wordCount":1271,"image":{"@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/cetoni.com\/wp-content\/uploads\/Header_FlowProfiles_Part2.png","keywords":["Software","Tutorial"],"articleSection":["Tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/","url":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/","name":"Tutorial: Flow profile generation with QmixElements (CETONI Elements) - Part 2 - CETONI GmbH","isPartOf":{"@id":"https:\/\/cetoni.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#primaryimage"},"image":{"@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/cetoni.com\/wp-content\/uploads\/Header_FlowProfiles_Part2.png","datePublished":"2021-06-08T15:20:49+00:00","dateModified":"2026-02-09T14:29:23+00:00","author":{"@id":"https:\/\/cetoni.com\/en\/#\/schema\/person\/f2d4de804c915072039aae63b057de8e"},"description":"CETONI \u2013 Automatisierungstechnik + Mikrosysteme vom Prototyp bis zur Kleinserie. Ger\u00e4teentwicklung \u2713 Laborautomatisierung \u2713 Mikrosystemtechnik \u2713 Lab-on-chip \u2713","breadcrumb":{"@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#primaryimage","url":"https:\/\/cetoni.com\/wp-content\/uploads\/Header_FlowProfiles_Part2.png","contentUrl":"https:\/\/cetoni.com\/wp-content\/uploads\/Header_FlowProfiles_Part2.png","width":1280,"height":380},{"@type":"BreadcrumbList","@id":"https:\/\/cetoni.com\/en\/tutorial-flow-profile-generation-with-qmixelements-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/cetoni.com\/en\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Flow profile generation with QmixElements (CETONI Elements) &#8211; Part 2"}]},{"@type":"WebSite","@id":"https:\/\/cetoni.com\/en\/#website","url":"https:\/\/cetoni.com\/en\/","name":"CETONI GmbH","description":"Automatisierungs- und Mikrofluidikl\u00f6sungen f\u00fcr das Labor","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cetoni.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cetoni.com\/en\/#\/schema\/person\/f2d4de804c915072039aae63b057de8e","name":"CETONI","sameAs":["http:\/\/cobomation.de"],"url":"https:\/\/cetoni.com\/en\/author\/cetoni\/"}]}},"_links":{"self":[{"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/posts\/4834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/comments?post=4834"}],"version-history":[{"count":5,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/posts\/4834\/revisions"}],"predecessor-version":[{"id":8710,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/posts\/4834\/revisions\/8710"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/media\/2335"}],"wp:attachment":[{"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/media?parent=4834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/categories?post=4834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cetoni.com\/en\/wp-json\/wp\/v2\/tags?post=4834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}