<?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>MES Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/category/manufacturing-automation-intelligence/mes/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Fri, 04 Sep 2026 18:24:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>MES Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>DMC Joins Partnership with Kanoa</title>
		<link>https://static.dmcinfo.com/blog/41404/dmc-joins-partnership-with-kanoa/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 26 Feb 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=41404</guid>

					<description><![CDATA[<p>We’re excited to announce that DMC has partnered with Kanoa, expanding our ability to deliver quality MES solutions to our customers. Kanoa is a next-generation Manufacturing Execution System built on Ignition that helps manufacturers improve production visibility, support better decision-making, and advance digital transformation on the plant floor. Through this partnership, DMC can offer clients [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/41404/dmc-joins-partnership-with-kanoa/">DMC Joins Partnership with Kanoa</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We’re excited to announce that DMC has partnered with <a href="https://static.dmcinfo.com/about/partners/kanoa-partner/">Kanoa</a>, expanding our ability to deliver quality <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/" type="link" id="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/">MES</a> solutions to our customers.</p>



<p class="wp-block-paragraph">Kanoa is a next-generation Manufacturing Execution System built on Ignition that helps manufacturers improve production visibility, support better decision-making, and advance digital transformation on the plant floor. Through this partnership, DMC can offer clients an additional, flexible MES option that complements our existing Ignition-based and custom manufacturing solutions.</p>



<p class="wp-block-paragraph">We’re excited to collaborate with the Kanoa team and see this as a strong fit for many of the manufacturers we work with.</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong><strong>Accelerate Your Digital Transformation Journey</strong></strong> with DMC.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Want to learn more about how <a href="https://static.dmcinfo.com/about/partners/kanoa-partner/">Kanoa</a> fits into DMC’s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/">manufacturing</a> and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/">MES</a> offerings? <a href="https://static.dmcinfo.com/contact/" id="411">Reach out</a> to our team and discover how we can help with your next automation project.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/41404/dmc-joins-partnership-with-kanoa/">DMC Joins Partnership with Kanoa</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC Presents at ICC: Optimizing Load Times in Ignition Perspective</title>
		<link>https://static.dmcinfo.com/blog/15963/dmc-presents-at-icc-optimizing-load-times-in-ignition-perspective/</link>
		
		<dc:creator><![CDATA[Casimir Smith]]></dc:creator>
		<pubDate>Wed, 25 Sep 2024 11:18:19 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[Ignition Perspective]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/15963/dmc-presents-at-icc-optimizing-load-times-in-ignition-perspective/</guid>

					<description><![CDATA[<p>At the Ignition Community Conference, Elizabeth Hill Reed and Casimir Smith presented a series of helpful tips for improving perceived load times in Ignition Perspective. We were excited to see how many people were excited about our findings, so we’ve released our notes here on our blog! Types of Performance Fundamental Principles for Improving Perceived [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15963/dmc-presents-at-icc-optimizing-load-times-in-ignition-perspective/">DMC Presents at ICC: Optimizing Load Times in Ignition Perspective</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">At the Ignition Community Conference, Elizabeth Hill Reed and Casimir Smith presented a series of helpful tips for improving perceived load times in Ignition Perspective. We were excited to see how many people were excited about our findings, so we’ve released our notes here on our blog!</p>



<h2 id="h-types-of-performance" class="wp-block-heading">Types of Performance</h2>



<ul class="wp-block-list">
<li><strong>Perceived Performance:</strong> How long do pages feel to load, our focus</li>



<li><strong>Responsiveness:</strong> How long between user action and result</li>



<li><strong>Resource Usage:</strong> How much RAM or CPU is being used</li>
</ul>



<h2 id="h-fundamental-principles-for-improving-perceived-performance" class="wp-block-heading">Fundamental Principles for Improving Perceived Performance</h2>



<ul class="wp-block-list">
<li>Reduce amount of data and calculation</li>



<li>Reduce layout recalculations</li>



<li>Reduce initial load actions</li>



<li>Reduce heavyweight components</li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Improving-Perceived-Performance.png" alt="Improving Perceived Performance"/></figure>



<h2 id="h-reduce-amount-of-data-and-calculation" class="wp-block-heading">Reduce Amount of Data and Calculation</h2>



<h3 id="h-binding-efficiency" class="wp-block-heading">Binding Efficiency</h3>



<p class="wp-block-paragraph">Some binding and transform types are more efficient than others. Make sure you choose the correct type intentionally, especially when you can accomplish the same task with a more efficient type.</p>



<p class="wp-block-paragraph"><strong>Binding Ranking (best to worst)</strong></p>



<ul class="wp-block-list">
<li>Direct tag binding</li>



<li>Indirect tag binding</li>



<li>runScript() expression</li>



<li>tag() expression</li>
</ul>



<p class="wp-block-paragraph"><strong>Transform Efficiency Ranking (best to worst)</strong></p>



<ul class="wp-block-list">
<li>Format transform</li>



<li>Map transform</li>



<li>Expression transform</li>



<li>Script transform (much slower than others)</li>
</ul>



<p class="wp-block-paragraph">Note that transforms always add additional processing time, so runScript() can be a faster way to run a Python script compared to script transforms. Also remember that when reading multiple tag values, using separate custom properties with indirect tag bindings is better than trying to read multiple tags using tag().</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Binding-Efficiency.png" alt="Binding Efficiency"/></figure>



<h3 id="h-query-efficiency" class="wp-block-heading">Query Efficiency</h3>



<ul class="wp-block-list">
<li>Always include a range limiter on queries that select from large tables
 
 
<ul class="wp-block-list">
<li>Time-based or count-based</li>
</ul>
</li>



<li>Avoid polling
 
 
<ul class="wp-block-list">
<li>Use a refresh button that calls refreshBinding() instead</li>
</ul>
</li>



<li>Use named queries with caching enabled</li>



<li>Use database tools to troubleshoot query performance
 
 
<ul class="wp-block-list">
<li>For Microsoft SQL, use execution plan monitoring and event tracing</li>



<li>For PostgreSQL, use tools like pgwatch, pgdash, and datadog</li>
</ul>
</li>
</ul>



<h3 id="h-scripting-efficiency" class="wp-block-heading">Scripting Efficiency</h3>



<ul class="wp-block-list">
<li><strong>Focus on reducing use of scripting unless necessary</strong></li>



<li>Don’t sacrifice readability or maintainability for performance</li>



<li>Combine tag read/write into one bulk call</li>



<li>Avoid repeating logic in a loop</li>
</ul>



<h2 id="h-reduce-layout-recalculation" class="wp-block-heading">Reduce Layout Recalculation</h2>



<p class="wp-block-paragraph">The browser performs reflow operations to set the position and layout of the page. When bindings or scripts alter the layout of your page, this forces the browser to recalculate, which slows down your page. Avoid unnecessary use of bindings that alter page layout, such as:</p>



<ul class="wp-block-list">
<li>Binding that sets the basis property</li>



<li>Binding that sets the display property</li>



<li>Binding that sets the instances property of a flex repeater directly</li>



<li>Binding that alters margin, padding, or border width</li>
</ul>



<h3 id="h-use-persistence-to-set-starting-layout" class="wp-block-heading">Use Persistence to Set Starting Layout</h3>



<ul class="wp-block-list">
<li>Change a bound property to “persistent” to save the starting value instead of initializing to null.</li>



<li>Use persistence to set starting layout.</li>



<li>Use persistence to avoid red overlays on initial load.</li>
</ul>



<p class="wp-block-paragraph">&nbsp;</p>



<h3 id="h-avoid-excessive-embedded-view-nesting" class="wp-block-heading">Avoid Excessive Embedded View Nesting</h3>



<ul class="wp-block-list">
<li>Avoid nesting more than 3 layers deep</li>



<li>Pass in tag paths as parameters, then use indirect tag bindings</li>



<li>Try both with-parent and after-parent loading</li>



<li>Balance the maintainability of core templates with the performance of fewer nesting layers</li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Nesting-Layers.gif" alt="Nesting Layers"/></figure>



<h2 id="h-reduce-initial-load-actions" class="wp-block-heading">Reduce Initial Load Actions</h2>



<p class="wp-block-paragraph">It’s best to limit the amount of actions that your page has to perform when it first loads. The best way to do this is by caching data in tags so it can be calculated on the gateway, instead of the session. This has several key advantages:</p>



<ul class="wp-block-list">
<li>The script only needs to run once on the gateway, instead of once per open session</li>



<li>The view has instant access to data, so pages load faster</li>



<li>Scripts run faster in gateway scope</li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Move-Calculations-to-Gateway-Scope.png" alt="Move Calculations to Gateway Scope"/></figure>



<h2 id="h-reduce-use-of-heavyweight-components" class="wp-block-heading">Reduce Use of Heavyweight Components</h2>



<p class="wp-block-paragraph">Some Ignition components import large libraries and can take longer to load the resource. Some key heavy components are the XY Chart, Gauge, and Markdown components. This performance is greatly improved by the use of React 18, introduced in Ignition 8.1.31.</p>



<p class="wp-block-paragraph">If you have many repeated uses of one item on-screen, you can consider replacing a component with a custom svg. The Ignition exchange has many examples of svg objects to replace Ignition ones.</p>



<p class="wp-block-paragraph"><strong>Slow Example: Built-in Ignition Gauge</strong></p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/ignition-react-gauge.gif" alt="Built-in Ignition Guage"/></figure>



<p class="wp-block-paragraph"><strong>Fast Example: DMC’s Lightweight SVG Gauge</strong></p>



<h2 id="h-advanced-technique-analyzing-load-time-with-chrome-devtools" class="wp-block-heading">Advanced Technique: Analyzing Load Time with Chrome DevTools</h2>



<p class="wp-block-paragraph">Chrome has a built-in DevTools option to help test page responsiveness and loading behavior. This can be used to quantitatively test behavior or compare different variants against each other.</p>



<h3 id="h-devtools-basics" class="wp-block-heading">DevTools Basics</h3>



<ul class="wp-block-list">
<li>Open your Perspective screen in Chrome and press F12 to open DevTools</li>



<li>Resize your window to test responsive design across device screen sizes</li>



<li>Throttle network speeds to simulate a slow connection</li>
</ul>



<h3 id="h-how-to-open-performance-monitor" class="wp-block-heading">How to Open Performance Monitor</h3>



<ol class="wp-block-list">
<li>Open Chrome DevTools</li>



<li>Switch the right sidebar to the “Performance” tab</li>



<li>Press the circle button to start recording</li>



<li>Navigate and perform actions on your page</li>



<li>Stop recording</li>
</ol>



<h3 id="h-how-to-interpret-performance-monitor" class="wp-block-heading">How to Interpret Performance Monitor</h3>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Analyze-Loading-Performace-Monitor.png" alt="Analyze Loading: Performance Monitor"/></figure>



<h2 id="h-how-to-hide-loading-with-fade-in-animations" class="wp-block-heading">How to Hide Loading with Fade-In Animations</h2>



<p class="wp-block-paragraph">Creating a fade-in style can make views feel more premium and hide dreaded pop-in effects. This often feels nicer even when the raw time is longer. Create style classes that animate to change the opacity from 0 to 1, and create multiple classes with different delays.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Edit-Style.png" alt="Edit Style"/></figure>



<p class="wp-block-paragraph"><strong>Fade-in Animation Example</strong></p>



<h2 id="h-balance-performance-vs-maintainability" class="wp-block-heading">Balance Performance vs Maintainability</h2>



<p class="wp-block-paragraph">Don’t forget that maintainability is even more important than performance. Many performance boosts introduce custom or duplicate code. You should always get user feedback, and THEN consider optimizing.</p>



<p class="wp-block-paragraph"><em>“Premature optimization is the root of all evil” – Donald Knuth</em></p>



<p class="wp-block-paragraph"><em>View or download&nbsp;the complete presentation:&nbsp;<strong><a href="https://static.dmcinfo.com/wp-content/uploads/2025/06/DMC-ICC-2024-Optimizing-Load-Time-in-Ignition-Perspective-1.pdf">Optimizing Load Time in Ignition Perspective</a></strong></em></p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step">Interested in Working with an Ignition Premier Integrator? See DMC at ICC!</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">As an <a href="https://static.dmcinfo.com/about/partners/ignition-premier-integrator/" target="_blank" rel="noreferrer noopener">Ignition Premier Integrator</a>, DMC delivers cutting-edge <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/" target="_blank" rel="noreferrer noopener">Ignition HMI</a> and SCADA solutions tailored to your needs. <a href="https://static.dmcinfo.com/contact/" target="_blank" rel="noreferrer noopener">Contact us</a> to unlock the full potential of your industrial automation with DMC!</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/15963/dmc-presents-at-icc-optimizing-load-times-in-ignition-perspective/">DMC Presents at ICC: Optimizing Load Times in Ignition Perspective</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Intro to Manufacturing Execution Systems (MES)</title>
		<link>https://static.dmcinfo.com/blog/16420/intro-to-manufacturing-execution-systems-mes/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 11 Apr 2024 12:59:48 +0000</pubDate>
				<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[Automation]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/16420/intro-to-manufacturing-execution-systems-mes/</guid>

					<description><![CDATA[<p>Data is the currency in the world of technology. This incentivizes creating systems of data capture, storage, and search. In the automation space, many industries rely heavily on data to record and improve their manufacturing process. &#160; Five Levels of Automation According to the ISA-95 standards there are five&#160;levels of automation (also referred to as [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/16420/intro-to-manufacturing-execution-systems-mes/">Intro to Manufacturing Execution Systems (MES)</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Data is the currency in the world of technology. This incentivizes creating systems of data capture, storage, and search. In the automation space, many industries rely heavily on data to record and improve their manufacturing process. &nbsp;</p>



<h2 id="h-five-levels-of-automation" class="wp-block-heading">Five Levels of Automation</h2>



<p class="wp-block-paragraph">According to the ISA-95 standards there are five&nbsp;levels of automation (also referred to as the “Automation Pyramid”. Those are:&nbsp;</p>



<ul class="wp-block-list">
<li>Level 4: Enterprise management (ERP)</li>



<li>Level 3: Manufacturing operations planning (MES and MOM)</li>



<li>Level 2: Supervising (HMI and SCADA)</li>



<li>Level 1: Control (PLCs)</li>



<li>Level 0: Field devices</li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Automation-Pyramid-DMC-1.png" alt="Diagram of the four levels of automation"/></figure>



<h2 id="h-purpose-of-the-mes-layer" class="wp-block-heading">Purpose of the MES Layer</h2>



<p class="wp-block-paragraph">This blog series will be focusing on <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming">Manufacturing Execution Systems</a> (MES) which lives in Level 3. The main intent of the MES layer is to act as a messenger between the ERP and the SCADA and PLC/HMI layers. For instance, in a car manufacturing firm, the ERP will have a customer order for 10 blue cars along with the design of the car model they want to build. The SCADA system will send commands and recipe data to the PLCs and acquire data while the PLCs are sending commands to the devices assembling the car. &nbsp;</p>



<p class="wp-block-paragraph">In this system, the missing functionality is taking the customer order information, scheduling it to the applicable production lines, and sending the car model specific data that is in the ERP to the control layer. This task is typically completed by the MES layer. The MES layer takes in an idea of a product and then creates a plan to execute it in the manufacturing environment. &nbsp;</p>



<p class="wp-block-paragraph">The basic building blocks of a typical Manufacturing Execution&nbsp;System include:</p>



<ul class="wp-block-list">
<li>Create Work Orders, Part Numbers, and Recipes&nbsp;</li>



<li>Schedule work orders&nbsp;</li>



<li>Material tracking and traceability&nbsp;</li>



<li><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/oee-and-downtime-tracking">Overall equipment effectiveness (OEE)&nbsp;</a></li>



<li>Downtime tracking&nbsp;</li>



<li>Quality control and statistical process control (SPC)&nbsp;</li>



<li>Digital work instructions&nbsp;</li>



<li>Tracking consumption of inventory and relaying that information to the ERP or WMS&nbsp;</li>



<li>Labor management&nbsp;</li>
</ul>



<p class="wp-block-paragraph">The lines between the different ISA-95 levels can sometimes be blurred and functionality that may be a traditional MES feature you may see in the ERP or SCADA layers. This is normal and gives you the flexibility to design your systems to best fit your processes. For example, sometimes the ERP will have work orders or SCADA may calculate OEE.&nbsp;</p>



<h2 id="h-mes-platforms" class="wp-block-heading">MES Platforms</h2>



<p class="wp-block-paragraph">There are multiple industry-wide used platforms for MES, each with their own set of features and capabilities. Some common platforms are:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/wonderware-programming">AVEVA MES </a>&nbsp;</li>



<li><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/rockwell-factorytalk">Rockwell FactoryTalk ProductionCentre</a></li>



<li><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/sepasoft-programming">Sepasoft</a>&nbsp;(built on Ignition)</li>



<li>Siemens OpCenter</li>



<li><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/traksys">TrackSYS</a></li>



<li><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/tulip-services">Tulip</a></li>
</ul>



<h3 id="h-sepasoft" class="wp-block-heading">Sepasoft</h3>



<p class="wp-block-paragraph">Sepasoft offers real-time visibility into the operations of the plant floor to help improve efficiency and reduce costs.&nbsp;</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/case-studies/view/id/604/sepasoft-mes-solution-for-food-processing-facility">Sepasoft MES Solution for Food Processing Facility</a><br>
DMC developed a custom Manufacturing Execution System (MES) application for a large manufacturer in the food and beverage industry to optimize and automate their system.</p>



<h3 id="h-factorytalk" class="wp-block-heading">FactoryTalk</h3>



<p class="wp-block-paragraph">FactoryTalk is an industrial automation software from Rockwell Automation that improves plant efficiency and productivity.&nbsp;</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/case-studies/view/id/355/factory-wide-mes-data-collection-system">Factory-Wide MES Data Collection System</a><br>
DMC implemented an extensive data collection system for a client in the confectionary industry offering the client a closer lens into their processes with automated data aggregation.</p>



<h3 id="h-ignition" class="wp-block-heading">Ignition</h3>



<p class="wp-block-paragraph">Ignition is a development environment from Inductive Automation that allows you to create an industrial software application. It&#8217;s one of the fastest growing HMI/SCADA platforms today.</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/blog/id/13664/categoryid/72/dmc-presents-at-icc-optimizing-load-times-in-ignition-perspective">Optimizing Load Times in Ignition Perspective</a><br>
Ensure that screens load fast and actions are snappy when using Ignition Perspective to create bigger and better projects.</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/blog/id/10250/categoryid/72/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms">Creating Dynamic Ignition Perspective Projects, Part One: Bindings and Transforms</a><br>
Learn how to start a Perspective view in Ignition, create bindings to tags and properties, and use binding transforms to correctly display that information.</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/blog/id/10251/categoryid/72/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions">Creating Dynamic Ignition Perspective Projects, Part 2: Button Event Actions</a><br>
Learn&nbsp;how to use button events to write to component properties and tags in Ignition.</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/blog/id/10252/categoryid/72/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers">Creating Dynamic Ignition Perspective Projects, Part 3: Embedded Views and Flex Containers</a><br> Learn how to combine objects into an embedded view in Ignition and create a dynamic layout using&nbsp;a flex repeater.</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/blog/id/10253/categoryid/72/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters">Creating Dynamic Ignition Perspective Projects, Part 4: Parameters, Indirect Bindings, and Flex Repeaters</a><br>
Learn how to add parameters to your embedded view in Ignition, drive indirect tag bindings, and&nbsp;maximize our layout efficiency in a flex repeater.</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Bridge the Gap Between Production and Enterprise Systems</strong>.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Explore our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" data-type="page" data-id="420">Automation</a> expertise in <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/" data-type="page" data-id="530">MES Programming</a> solutions for work-order scheduling, traceability, OEE, quality control, and plant-floor data integration.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/16420/intro-to-manufacturing-execution-systems-mes/">Intro to Manufacturing Execution Systems (MES)</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC is a Sepasoft MES Premier Integrator</title>
		<link>https://static.dmcinfo.com/blog/17090/dmc-is-a-sepasoft-mes-premier-integrator/</link>
		
		<dc:creator><![CDATA[Elizabeth Hill Reed]]></dc:creator>
		<pubDate>Fri, 20 Oct 2023 13:33:48 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/17090/dmc-is-a-sepasoft-mes-premier-integrator/</guid>

					<description><![CDATA[<p>DMC is proud to announce we are a Sepasoft MES Premier Integrator. This Premier level partnership&#160;represents&#160;the highest&#160;competency&#160;in the Sepasoft Certified Integrator program.&#160; This certification required&#160;passing several exams and proving success in implementing Sepasoft&#160;in customer&#160;MES solutions. Sepasoft&#8217;s MES solutions help&#160;manufacturers improve production efficiency, quality control, and overall operations. DMC has been a Sepasoft partner for several [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/17090/dmc-is-a-sepasoft-mes-premier-integrator/">DMC is a Sepasoft MES Premier Integrator</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">DMC is proud to announce we are a Sepasoft MES Premier Integrator. This Premier level partnership&nbsp;represents&nbsp;the highest&nbsp;competency&nbsp;in the Sepasoft Certified Integrator program.&nbsp;</p>

<p class="wp-block-paragraph">This certification required&nbsp;passing several exams and proving success in implementing Sepasoft&nbsp;in customer&nbsp;MES solutions.</p>

<p class="wp-block-paragraph">Sepasoft&rsquo;s MES solutions help&nbsp;manufacturers improve production efficiency, quality control, and overall operations. DMC has been a Sepasoft partner for several years and currently has 14 Gold and 2 Credentialed engineers on our team. We are recognized for our competency in a variety of Sepasoft offerings including <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/oee-and-downtime-tracking">OEE</a>, SPC, <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/track-trace-mes-integration">Track and Trace</a>, and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/mes-erp-integration">Business Connector</a>.</p>

<p class="wp-block-paragraph">I have been working with Sepasoft for years and I am very excited that DMC&apos;s MES expertise is being recognized by Sepasoft with the Premier Partner status. I hope to continue delivering high quality Sepasoft solutions to even more of our customers and seeing how Sepasoft can transform their operations.</p>

<p class="wp-block-paragraph"><strong>Learn more about DMC&apos;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/sepasoft-programming">Sepasoft Programming&nbsp;</a>expertise.</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/17090/dmc-is-a-sepasoft-mes-premier-integrator/">DMC is a Sepasoft MES Premier Integrator</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DCS &#038; MES Integration Test Case</title>
		<link>https://static.dmcinfo.com/blog/17317/dcs-mes-integration-test-case/</link>
		
		<dc:creator><![CDATA[Keith Janson]]></dc:creator>
		<pubDate>Mon, 07 Aug 2023 23:31:35 +0000</pubDate>
				<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/17317/dcs-mes-integration-test-case/</guid>

					<description><![CDATA[<p>DMC collaborated with Dow and Siemens to create a process demonstration testbed at MxD in Chicago. As part of this testbed, DMC integrated Siemens’ PCS neo (DCS) and Opcenter (MES) platforms to demonstrate the value of cross-communication between the ISA-95 levels 2 (DCS) and 3 (MES). While both the Distributed Control System (DCS) and MES [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/17317/dcs-mes-integration-test-case/">DCS &#038; MES Integration Test Case</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC collaborated with Dow and Siemens to create a process demonstration testbed at <a href="https://www.mxdusa.org/" target="_blank">MxD</a> in Chicago. As part of this testbed, DMC integrated Siemens’ PCS neo (DCS) and Opcenter (MES) platforms to demonstrate the value of cross-communication between the ISA-95 levels 2 (DCS) and 3 (MES).</p>



<p class="wp-block-paragraph">While both the Distributed Control System (DCS) and MES layers provide automation capability, they serve two very different purposes. PCS neo, our DCS, excels at device level control, sequencing, and visualization. Opcenter, our MES, is geared towards automating workflows and managing data from disparate sources.</p>



<p class="wp-block-paragraph">By integrating these two layers, we demonstrate a use case of how a complex set of operations (process actions, operator actions, data logging, lab testing, etc.) can be simplified into a repeatable, streamlined standard operating procedure.</p>



<p class="wp-block-paragraph">As a demonstration use case for the Manufacturing Execution System (MES) integration, we developed a simple scenario where a work order would perform a basic process action and then create a corresponding lab test to verify quality prior to product release. To integrate PCS neo and Opcenter, DMC used OPC UA to facilitate secure and robust bi-directional communication.</p>



<p class="wp-block-paragraph">In Opcenter, a Supervisor would create a work order instance by selecting a preconfigured template and filling out the required information. In our demo scenario, the Supervisor is manually creating the work order and filling in the required information; however, in a real-world application, this process could be further automated such that an ERP generates the work order on a scheduled period, the completion of a batch on the process control system, etc.</p>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="900" height="441" src="https://static.dmcinfo.com/wp-content/uploads/2023/08/image.png" alt="PCS neo MES Work Orders" class="wp-image-32633" srcset="https://static.dmcinfo.com/wp-content/uploads/2023/08/image.png 900w, https://static.dmcinfo.com/wp-content/uploads/2023/08/image-300x147.png 300w, https://static.dmcinfo.com/wp-content/uploads/2023/08/image-768x376.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">After creating the work order, the Supervisor releases it to Operations. The work order will then appear in the Task List for an Operator to start.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="900" height="440" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-operator-task-list.png" alt="Operator Task List" class="wp-image-17314" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-operator-task-list.png 900w, https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-operator-task-list-300x147.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-operator-task-list-768x375.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">The first thing our work order will do is prompt the Operator to input a level to charge the tank to. In our demonstration case, this could be thought of as a proxy for the Operator inputting or verifying batch formula information, performing any required manual actions, or completing any other general workflow items that are better managed in the MES layer.</p>



<p class="wp-block-paragraph">Once confirmed, our work order will then send the information to our PCS neo system and trigger an automated transfer of material between the tanks to the set point the Operator previously entered.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="900" height="440" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-task-execution.png" alt="Task Execution" class="wp-image-17315" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-task-execution.png 900w, https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-task-execution-300x147.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-task-execution-768x375.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">After this transfer begins in PCS neo, Opcenter generates a separate workflow in its RD&amp;L (Research, Development, and Laboratory) module to create a sample request to verify product quality.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="900" height="441" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-open-sample-wizard.png" alt="Open Sample Wizard" class="wp-image-17316" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-open-sample-wizard.png 900w, https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-open-sample-wizard-300x147.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/pcs-neo-mes-open-sample-wizard-768x376.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">Once the RD&amp;L results are entered, it will send a passing result back to the Opcenter work order, which allows the order to be completed and the product to be released.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="900" height="440" src="https://static.dmcinfo.com/wp-content/uploads/2023/08/pcs-neo-mes-wp-in-progress.png" alt="WP in Progress" class="wp-image-35301" srcset="https://static.dmcinfo.com/wp-content/uploads/2023/08/pcs-neo-mes-wp-in-progress.png 900w, https://static.dmcinfo.com/wp-content/uploads/2023/08/pcs-neo-mes-wp-in-progress-300x147.png 300w, https://static.dmcinfo.com/wp-content/uploads/2023/08/pcs-neo-mes-wp-in-progress-768x375.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">In addition to the above, we also demonstrated the value of putting this on mobile platforms like <a href="https://static.dmcinfo.com/blog/18553/pcs-neo-on-ipads/" target="_blank" rel="noreferrer noopener">iPads</a>.</p>



<p class="wp-block-paragraph"><strong>Learn more about </strong><a href="https://static.dmcinfo.com/about/partners/siemens-solution-partner/" target="_blank" rel="noreferrer noopener"><strong>DMC’s Siemen’s partnership</strong></a><strong> and </strong><a href="https://static.dmcinfo.com/contact/" target="_blank" rel="noreferrer noopener"><strong>contact us</strong></a><strong> today for your next project.</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/17317/dcs-mes-integration-test-case/">DCS &#038; MES Integration Test Case</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC Achieves Tulip Certified Partner Status</title>
		<link>https://static.dmcinfo.com/blog/17359/dmc-achieves-tulip-certified-partner-status/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 01 Aug 2023 16:15:53 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/17359/dmc-achieves-tulip-certified-partner-status/</guid>

					<description><![CDATA[<p>DMC is pleased&#160;to announce that we have achieved Tulip Certified Partner status.&#160;This certification&#160;recognizes our training and demonstrated&#160;proficiency with the Tulip platform for customer projects. We are proud to be recognized by Tulip for our expertise, and appreciate the opportunity&#160;to further demonstrate&#160;this capability&#160;to&#160;our&#160;clients. About Tulip: Tulip, the leader in frontline operations, is helping companies of all [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/17359/dmc-achieves-tulip-certified-partner-status/">DMC Achieves Tulip Certified Partner Status</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC is pleased&nbsp;to announce that we have achieved Tulip Certified Partner status.&nbsp;This certification&nbsp;recognizes our training and demonstrated&nbsp;proficiency with the Tulip platform for customer projects. We are proud to be recognized by Tulip for our expertise, and appreciate the opportunity&nbsp;to further demonstrate&nbsp;this capability&nbsp;to&nbsp;our&nbsp;clients.</p>



<p class="wp-block-paragraph"><strong>About Tulip:</strong></p>



<p class="wp-block-paragraph"><em>Tulip, the leader in frontline operations, is helping companies of all sizes and across industries, including complex manufacturing, pharmaceuticals, and medical devices, equip their workforce with connected apps, leading to higher quality work, improved efficiency, and end-to-end traceability across operations. A spinoff out of MIT, the company is headquartered in Somerville, MA, with offices in Germany and Hungary.</em></p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/about/employee-bios/kevin-ferrigno">Kevin Ferrigno</a>, Senior Director of Smart Manufacturing at DMC, works extensively with the Tulip platform and is proud of this achievement.</p>



<p class="wp-block-paragraph">&#8220;After working with Tulip for many years and seeing how quickly and easily many of our clients have been able to realize value from Tulip deployments, we are excited to achieve Certified Partner level with Tulip,&#8221; Ferrigno said. &#8220;We look forward to continuing to provide more value to our current Tulip clients and working with additional customers in the future.&#8221;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Partner-Certificate-GM-DMC.png" alt="DMC's Tulip Partner Program certificate"/></figure>



<p class="wp-block-paragraph"><strong>Learn more about DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/tulip-services">Tulip services</a>.&nbsp;</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/17359/dmc-achieves-tulip-certified-partner-status/">DMC Achieves Tulip Certified Partner Status</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Dynamic Ignition Perspective Projects, Part 4: Parameters, Indirect Bindings, and Flex Repeaters</title>
		<link>https://static.dmcinfo.com/blog/19090/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters/</link>
		
		<dc:creator><![CDATA[Casimir Smith]]></dc:creator>
		<pubDate>Fri, 27 Aug 2021 12:27:37 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[flex repeater]]></category>
		<category><![CDATA[ignition]]></category>
		<category><![CDATA[indirect]]></category>
		<category><![CDATA[parameter]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19090/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters/</guid>

					<description><![CDATA[<p>One of the fastest-growing SCADA/HMI platforms today is Inductive Automation&apos;s Ignition. In addition to the well-known Vision visualization module, Ignition&#160;contains Perspective, a web-friendly visualization module&#160;which&#160;works in any web browser&#8212;even on mobile! Although most Ignition functions work the same across Perspective or Vision, there are some necessary adjustments to work better in a web-friendly environment. This [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19090/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters/">Creating Dynamic Ignition Perspective Projects, Part 4: Parameters, Indirect Bindings, and Flex Repeaters</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">One of the fastest-growing SCADA/HMI platforms today is Inductive Automation&apos;s <a href="https://inductiveautomation.com/ignition/" target="_blank">Ignition</a>. In addition to the well-known <a href="https://inductiveautomation.com/ignition/modules/vision" target="_blank">Vision visualization module</a>, Ignition&nbsp;contains<a href="https://inductiveautomation.com/ignition/modules/perspective" target="_blank"> Perspective</a>, a web-friendly visualization module&nbsp;which&nbsp;works in any web browser&mdash;even on mobile!</p>

<p class="wp-block-paragraph">Although most Ignition functions work the same across Perspective or Vision, there are some necessary adjustments to work better in a web-friendly environment. This multi-part blog will serve as a guide to setting up dynamic Perspective screens that take full advantage of the powerful&nbsp;new features.</p>

<p class="wp-block-paragraph">In&nbsp;<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10252/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers">part&nbsp;3</a>, we created a template view that controls an enable property and shows a numeric&nbsp;tag. In this part, we will go over how to add parameters to your embedded view, then use those parameters to drive indirect tag bindings. We can then use our parametrized template in a flex repeater to maximize our layout efficiency.</p>

<h2 class="wp-block-heading">Adding View Parameters</h2>

<p class="wp-block-paragraph">First, we will cover how to add a parameter to a view and change the tag binding based on that parameter. My example project has the following tag structure, where each TemperatureZone folder has an Enable tag and OutputTemp tag. We want the parameter to change which temperature zone&nbsp;the view displays.</p>

<figure class="wp-block-image"><img decoding="async" alt="We want our template to look at one of these tag folders" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/2_tag_folders.png"  /></figure>

<p class="wp-block-paragraph">First, open the flex container template view we created in&nbsp;<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10252/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers">part 3</a>. Select the view in the project browser, which will open the view properties in the property editor. Press the blue &quot;Add View Parameter&quot; button to create a new param. Change the param name to &quot;TempZone&quot; and set the value to 1.</p>

<figure class="wp-block-image"><img decoding="async" alt="Create a parameter in the view property editor" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/4_create_view_param.png"  /></figure>

<p class="wp-block-paragraph">Next, we are going to adjust the button text to display the name of the current zone. Select the button and add an expression binding to the &quot;text&quot; property. Add the following expression, which will display the parameter value with the Zone prefix:</p>

<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">&apos;Zone &apos; + {view.params.TempZone}</div>

<figure class="wp-block-image"><img decoding="async" alt="Add a binding to the button text to show name" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/4b_add_name_binding.png"  /></figure>

<h2 class="wp-block-heading">Indirect Tag Bindings</h2>

<p class="wp-block-paragraph">Next, we will change our temperature tag binding to an indirect tag binding. If you are creating an indirect binding from scratch&nbsp;the method is the same. Select the temperature label and change the tag binding type from Direct to Indirect. Next, delete the &quot;1&quot; index from the tag path (or whatever index distinguishes your tag folders or UDTs).</p>

<figure class="wp-block-image"><img decoding="async" alt="Change the tag binding to an indirect binding" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/5_select_indirect_binding.png"  /></figure>

<p class="wp-block-paragraph">Place your cursor where you wish to add the indirect reference (where the 1 used to be), then press the property reference button to the right of the tag path entry box. Find the TempZone parameter in the tree and press Ok to insert the TempZone param. The reference is now shown in both the tag path and the reference list. You will know that you&apos;ve configured the binding correctly when the Binding Preview shows the tag value, not an error.</p>

<figure class="wp-block-image"><img decoding="async" alt="Create an indirect reference in your binding" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/7_indirect_reference.png"  /></figure>

<p class="wp-block-paragraph">(Note: Previous guides did not explicitly cover binding the &quot;enable&quot; custom property to the enable tag. This can be accomplished with an&nbsp;indirect tag binding on the custom property. Don&apos;t forget to set the bidirectional checkbox so the property can write back to the tag!)</p>

<h2 class="wp-block-heading">Configuring Embedded View Parameters and Flex Repeaters</h2>

<p class="wp-block-paragraph">Once you have added a parameter to a view, you can add a value to that parameter on any embedded view instances. Select the embedded view, then find &quot;params&quot; in the property editor. Click &quot;Add Object Member&quot;, then find TempZone (input) in the parameters list. Once you add that parameter, it will appear in the parameters list and you can edit the value. Try changing the TempZone param to different values to see how the template reacts.</p>

<figure class="wp-block-image"><img decoding="async" alt="Add a parameter to the embedded view object" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/8_add_parameter_1.png"  /></figure>

<p class="wp-block-paragraph">One of the most common ways to embed templates is the flex repeater. This object works like a flex container, but it creates multiple instances of a single specified view. Drag a flex repeater from the toolbox to the main view.</p>

<figure class="wp-block-image"><img decoding="async" alt="Add a flex repeater to your view" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/9_add_flex_repeater.png"  /></figure>

<p class="wp-block-paragraph">Next, select the flex repeater and change its path property to the path of the template view. Under instances, click &quot;Add Array Element&quot; and add three instances of the template.</p>

<figure class="wp-block-image"><img decoding="async" alt="Add instances to your flex repeater" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/10_add_flex_instance.png"  /></figure>

<p class="wp-block-paragraph">The three instances will appear as array objects under the instances property. Each instance has an instanceStyle and instancePosition, but you will need to add the TempZone parameter. Click the grey plus button by the instance number and add TempZone (input) as a parameter.</p>

<figure class="wp-block-image"><img decoding="async" alt="Add parameters to your flex repeater instances" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/11_add_parameters.png"  /></figure>

<p class="wp-block-paragraph">Change each TempZone parameter to a different index. The objects inside the template will use that parameter value for display (Zone 1, Zone 2, Zone 3) and for their indirect tag bindings&nbsp;(note the different temperature values).</p>

<figure class="wp-block-image"><img decoding="async" alt="Flex repeater result" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/12_final_result_1.png"  /></figure>

<p class="wp-block-paragraph">In this guide, we&apos;ve learned how to create view parameters, use them to drive indirect bindings, and how to use flex repeaters to efficiently copy embedded views. In the next guide, we&apos;ll cover a more advanced flex repeater technique to allow for a variable number of instances.</p>

<p class="wp-block-paragraph"><strong>Learn more about DMC&apos;s&nbsp;<a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-designer-programming">Ignition expertise</a>.&nbsp;&nbsp;<a href="https://static.dmcinfo.com/contact">Contact us</a>&nbsp;to get started on your next <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming">HMI, SCADA</a>, or MES project.<br />
<br />
See other blogs in this series:&nbsp;</strong>Creating Dynamic Ignition Perspective Projects<br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10250/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms">Part 1: Bindings and Transforms</a><br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10251/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions">Part 2: Button Event Actions</a><br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10252/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers">Part 3: Embedded Views and Flex Containers</a><br />
Part 4: View Parameters, Indirect Bindings, and Flex Repeaters<br />
Part 5: Flex Repeaters with Variable Number of Instances (coming soon)<br />
Part 6: Changing Colors and Other Properties (coming soon)</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19090/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters/">Creating Dynamic Ignition Perspective Projects, Part 4: Parameters, Indirect Bindings, and Flex Repeaters</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Dynamic Ignition Perspective Projects, Part 3: Embedded Views and Flex Containers</title>
		<link>https://static.dmcinfo.com/blog/19104/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers/</link>
		
		<dc:creator><![CDATA[Casimir Smith]]></dc:creator>
		<pubDate>Fri, 27 Aug 2021 11:11:11 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[ignition]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19104/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers/</guid>

					<description><![CDATA[<p>One of the fastest growing SCADA/HMI platforms today is Inductive Automation&apos;s Ignition. In addition to the well-known Vision visualization module, Ignition&#160;contains Perspective, a web-friendly visualization module built from the ground up to work in any web browser &#8212;&#160;even on mobile! Although most Ignition functions work the same across Perspective or Vision, there are some adjustments&#160;to&#160;work&#160;better&#160;in [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19104/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers/">Creating Dynamic Ignition Perspective Projects, Part 3: Embedded Views and Flex Containers</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">One of the fastest growing SCADA/HMI platforms today is Inductive Automation&apos;s <a href="https://inductiveautomation.com/ignition/" target="_blank">Ignition</a>. In addition to the well-known <a href="https://inductiveautomation.com/ignition/modules/vision" target="_blank">Vision</a> visualization module, Ignition&nbsp;contains <a href="https://inductiveautomation.com/ignition/modules/perspective">Perspective</a>, a web-friendly visualization module built from the ground up to work in any web browser &mdash;&nbsp;even on mobile!</p>

<p class="wp-block-paragraph">Although most Ignition functions work the same across Perspective or Vision, there are some adjustments&nbsp;to&nbsp;work&nbsp;better&nbsp;in a web-friendly environment. This multi-part blog will serve as a guide to setting up dynamic Perspective screens that take full advantage of the powerful new features.</p>

<p class="wp-block-paragraph">In the last two blogs, we created a status display to toggle an enable bit and display a numeric value. In this blog, we will combine&nbsp;those objects into an embedded view and use a flex repeater to create a dynamic layout.</p>

<h2 class="wp-block-heading">Creating a New Flex View</h2>

<p class="wp-block-paragraph">To create a new view, right click &quot;Views&quot; in the Project Browser then click &quot;New View&quot; In the popup. Be sure to change the root container type to &quot;Flex Container&quot;. The root container type cannot be changed once the view is created.</p>

<figure class="wp-block-image"><img decoding="async" alt="Create a new view with a flex root container" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/1_new_flex_view.png"  /></figure>

<p class="wp-block-paragraph">Next, select the view in the project browser and resize it using the width and height properties in the property editor. Change the dimensions to 400x100px.</p>

<figure class="wp-block-image"><img decoding="async" alt="Resize the view for it to be a template" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/2_resized_view.png"  /></figure>

<p class="wp-block-paragraph">Next, return to the main view and copy the toggle button, enable display, and numeric value display. Paste these three components into the new view&apos;s root container.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Copy your components from the main view" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/3_copy_from_main_view.png"  /></figure><figure class="wp-block-image"><img decoding="async" alt="Paste your components to the template view" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/4_paste_to_main_view.png"  /></figure></p>

<p class="wp-block-paragraph">The three views line up on top of each other in the flex container, which is not what we want. We need to configure the flex container and object position properties to best display our data.</p>

<h2 class="wp-block-heading">Configuring the Flex Container</h2>

<p class="wp-block-paragraph">The flex container has many different properties that determine how objects are displayed, the first is the direction. Switch this to &quot;row&quot; to change the orientation of the three objects.</p>

<figure class="wp-block-image"><img decoding="async" alt="Change the flex container direction" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/6_flex_container_props.png"  /></figure>

<p class="wp-block-paragraph">Now our objects are in a row, but they are not the correct size. We want the button, enable, and numeric display to take up different amounts of space. Luckily, there are position properties on each object that can achieve this exact behavior.</p>

<figure class="wp-block-image"><img decoding="async" alt="Row oriented flex container" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/7_row_flex_container.png"  /></figure>

<p class="wp-block-paragraph">Select the button object and find the position properties in the property editor. The basis determines how much space the object &quot;wants&quot; to take up. It can be in percent (%) or pixels (px). Set the button basis to 20%, the enable label basis to 30%, and the numeric label to 50%.</p>

<figure class="wp-block-image"><img decoding="async" alt="Change the basis in the object's position props" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/8_flex_position_props.png"  /></figure>

<p class="wp-block-paragraph">The other parameters are shrink, which decides if the object should shrink if there isn&apos;t enough space, and grow, which decides if the object should grow to take up unallocated space. We do not need to adjust these.</p>

<p class="wp-block-paragraph">After adjusting the basis, each object takes up the allotted percentage of space.&nbsp;There is one final tweak: adding a margin to the button so it is spaced away&nbsp;from the edges and other components.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="With proper basis settings, the elements look better" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/9_spaced_flex.png"  /></figure>

<p class="wp-block-paragraph">Select the button and find the &quot;style&quot; property in the property editor. Press the plus button to add a new style entry. Name it &quot;margin&quot; and set the value to 5px. Alternatively, you can click the style card icon button to graphically view and edit style definitions.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="Add a margin to the button to space it from other components" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/11_add_margin.png"  /></figure>

<p class="wp-block-paragraph">With a margin on the button, our flex container view looks ready to go! All that&apos;s left to do is to&nbsp;add it to our main view.</p>

<figure class="wp-block-image"><img decoding="async" alt="That is a nice looking flex container!" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/12_final_result.png"  /></figure>

<h2 class="wp-block-heading">Embedding in Another View</h2>

<p class="wp-block-paragraph">Embedding views within other views is easy. Just find your desired view in the project browser, then drag it into your current&nbsp;view. Alternatively, you can grab an &quot;Embedded View&quot; object from the toolbox, then set the path parameter to your view&apos;s path. The embedded view now acts as a singular object.</p>

<figure class="wp-block-image"><img decoding="async" alt="Drag your embedded view into the main view" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/13_drag_into_main_view.png"  /></figure>

<p class="wp-block-paragraph">In this blog, we learned how to create an embedded view template and add it to another view. <a href="https://static.dmcinfo.com/latest-thinking/blog/id/10253/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters">In the next blog</a>, we will add parameters to this template so we can create multiple instances to get data from different sources!</p>

<p class="wp-block-paragraph"><strong>Learn more about DMC&apos;s&nbsp;<a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-designer-programming">Ignition expertise</a>.&nbsp;&nbsp;<a href="https://static.dmcinfo.com/contact">Contact us</a>&nbsp;to get started on your next HMI, SCADA, or MES project.<br />
<br />
See other blogs in this series:&nbsp;</strong>Creating Dynamic Ignition Perspective Projects<br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10250/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms">Part 1: Bindings and Transforms</a><br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10251/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions">Part 2: Button Event Actions</a><br />
Part 3: Embedded Views and Flex Containers<br />
Part 4: View Parameters,&nbsp;Indirect Bindings, and Flex Repeaters<br />
Part 5: Flex Repeaters with Variable Number of Instances (coming soon)<br />
Part 6: Changing Colors and Other Properties (coming soon)</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19104/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers/">Creating Dynamic Ignition Perspective Projects, Part 3: Embedded Views and Flex Containers</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Dynamic Ignition Perspective Projects, Part 2: Button Event Actions</title>
		<link>https://static.dmcinfo.com/blog/19118/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions/</link>
		
		<dc:creator><![CDATA[Casimir Smith]]></dc:creator>
		<pubDate>Fri, 27 Aug 2021 10:28:32 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[ignition]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[script]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19118/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions/</guid>

					<description><![CDATA[<p>One of the fastest growing SCADA/HMI platforms today is Inductive Automation&apos;s Ignition. In addition to the well-known Vision visualization module, Ignition&#160;contains Perspective, a web-friendly visualization module built from the ground up to work in any web browser &#8212; even on mobile! Although most Ignition functions work the same across Perspective or Vision, there are some [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19118/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions/">Creating Dynamic Ignition Perspective Projects, Part 2: Button Event Actions</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">One of the fastest growing SCADA/HMI platforms today is Inductive Automation&apos;s <a href="https://inductiveautomation.com/ignition/" target="_blank">Ignition</a>. In addition to the well-known <a href="https://inductiveautomation.com/ignition/modules/vision" target="_blank">Vision</a> visualization module, Ignition&nbsp;contains <a href="https://inductiveautomation.com/ignition/modules/perspective" target="_blank">Perspective</a>, a web-friendly visualization module built from the ground up to work in any web browser &mdash; even on mobile!</p>

<p class="wp-block-paragraph">Although most Ignition functions work the same across Perspective or Vision, there are some adjustments to&nbsp;work better in a web-friendly environment. This multi-part blog will serve as a guide to setting up dynamic Perspective screens that take full advantage of its powerful new&nbsp;features.</p>

<p class="wp-block-paragraph">In this part, we will cover how to configure button presses to modify properties and tags in Perspective. Using Python scripting can be intimidating at first, but it is a key skill in creating HMI and SCADA systems that can send commands to other systems. This blog will teach you how to use button events to write to component properties and tags.</p>

<h2 class="wp-block-heading">Example 1: Toggling a Boolean Property</h2>

<p class="wp-block-paragraph">First, we will create a button and use it to toggle the enable/disable custom property that we created in the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/10250/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms">last Perspective blog</a>. Drag a button from the component toolbox onto your view. Then change its text property to &quot;Toggle Enable&quot;</p>

<figure class="wp-block-image"><img decoding="async" alt="Add a button object to the view" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/1_add_button.png"  /></figure>

<p class="wp-block-paragraph">Right click your button and select &quot;Configure Events&quot; to open the event popup. You can also use the handy shortcut <strong>Ctrl+J</strong>.</p>

<figure class="wp-block-image"><img decoding="async" alt="Open the button's configure events popup" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/3_config_events_button.png"  /></figure>

<p class="wp-block-paragraph">The left-hand list shows all possible button events. Select &quot;onActionPerformed&quot;, which is triggered when the button is pressed. Then click the plus icon and add a script action for this event. There are many different actions, but scripts are used for manipulating properties and tags.</p>

<figure class="wp-block-image"><img decoding="async" alt="Configure a script action on the onActionPerformed event" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/4_script_action.png"  /></figure>

<p class="wp-block-paragraph">The runAction Python script is called when the button is pressed. We are going to write a short script to read the &quot;enable custom property&quot; value, toggle that value, then write back to the property. First, press the property reference button, find the property in the tree, and click Ok to add the reference to your script.<figure class="wp-block-image"><img decoding="async" alt="Find the custom property reference" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/5_property_reference.png"  /></figure></p>

<p class="wp-block-paragraph">Next, write the following script. The exact reference may change depending on your object names. First,&nbsp;assign the property value to &quot;input&quot;. Then,&nbsp;assign &quot;output = not input&quot; to toggle the bit. Finally, assign &quot;output&quot; back to the original property.</p>

<figure class="wp-block-image"><img decoding="async" alt="This script toggles the boolean property" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/6_toggle_script.png"  /></figure>

<p class="wp-block-paragraph">To test out your script, enter preview mode by clicking the Play Button icon. This simulates your view as it will run on the Ignition webpage. To exit preview mode and go back to editing, press the button again.</p>

<figure class="wp-block-image"><img decoding="async" alt="The preview button lets you test out your page" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/7_preview_button.png"  /></figure>

<p class="wp-block-paragraph">In preview mode, you can&nbsp;press the button to enable and disable the custom property.</p>

<figure class="wp-block-image"><img decoding="async" alt="The button toggles the enable/disable property" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/8_toggle_result.png"  /></figure>

<h2 class="wp-block-heading">Example 2: Incrementing a Numeric Tag</h2>

<p class="wp-block-paragraph">Next, we will learn how to use a button to update a tag value. The core workflow of using a script to manipulate a property is the same, but that property will now be&nbsp;bidirectionally bound to a tag.</p>

<p class="wp-block-paragraph">Create a new button, rename it&nbsp;&quot;counter&quot;, then add a custom property &quot;count&quot; to it. Next, add a tag binding to the custom property and navigate to an integer or float tag on your gateway.&nbsp;<strong>Make sure to select the bidirectional checkbox.</strong>&nbsp;This makes sure that the property can write back to the tag. For help with these steps, see &quot;Tag Binding&quot; in the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/10250/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms">previous Prespective blog</a> installment.</p>

<figure class="wp-block-image"><img decoding="async" alt="Bind the integer counter tag to a custom button property" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/9_bind_int_tag.png"  /></figure>

<p class="wp-block-paragraph">Next, we will update the button text to display the current counter value. Add an expression binding to the button&apos;s text property. Insert the expression shown in the screenshot below. You can use the property reference button on the right side to find your custom property.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="Bind the text property to the counter tag" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/10_bind_int_text.png"  /></figure>

<p class="wp-block-paragraph">We will now add a script to manipulate the custom property that is bound to the tag. Like the previous example, create a script action on the button&apos;s onActionPerformed event. Next, insert the property reference to your custom property. This script is even simpler than the last. Simply add &quot; += 1 &quot; to the end of your property reference to increment the value by one.</p>

<figure class="wp-block-image"><img decoding="async" alt="This script increments the counter" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/11_counter_increment_script.png"  /></figure>

<p class="wp-block-paragraph">Enter preview mode and click your new button to watch the counter increment on each press. This basic technique of creating a bidirectional tag binding and an event action script can be used for simple and complex behavior.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="In preview mode, the button increments the counter" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/12_counter_preview.png"  /></figure>

<p class="wp-block-paragraph"><strong>Learn more about DMC&apos;s&nbsp;<a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-designer-programming">Ignition expertise</a>.&nbsp;&nbsp;<a href="https://static.dmcinfo.com/contact">Contact us</a>&nbsp;to get started on your next HMI, SCADA, or MES project.<br />
<br />
See other blogs in this series: </strong>Creating Dynamic Ignition Perspective Projects<br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10250/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms">Part 1: Bindings and Transforms</a><br />
Part 2: Button Event Actions<br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10252/creating-dynamic-ignition-perspective-projects-part-3-embedded-views-and-flex-containers">Part 3: Embedded Views and Flex Containers</a><br />
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/10253/creating-dynamic-ignition-perspective-projects-part-4-parameters-indirect-bindings-and-flex-repeaters">Part 4: View Parameters, Indirect Bindings, and Flex Repeaters</a><br />
Part 5: Flex Repeaters with Variable Number of Instances (coming soon)<br />
Part 6: Changing Colors and Other Properties (coming soon)</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19118/creating-dynamic-ignition-perspective-projects-part-2-button-event-actions/">Creating Dynamic Ignition Perspective Projects, Part 2: Button Event Actions</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Dynamic Ignition Perspective Projects, Part One: Bindings and Transforms</title>
		<link>https://static.dmcinfo.com/blog/19135/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms/</link>
		
		<dc:creator><![CDATA[Casimir Smith]]></dc:creator>
		<pubDate>Thu, 26 Aug 2021 13:23:56 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[MES]]></category>
		<category><![CDATA[binding]]></category>
		<category><![CDATA[ignition]]></category>
		<category><![CDATA[transform]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19135/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms/</guid>

					<description><![CDATA[<p>One of the fastest-growing SCADA/HMI platforms today is Inductive Automation&#8217;s&#160;Ignition. In addition to the well-known&#160;Vision visualization module, Ignition also contains&#160;Perspective, a web-friendly visualization module&#160;that&#160;works in any web browser—even on mobile! Although most Ignition functions work the same across Perspective or Vision, there are some necessary adjustments to work better in a web-friendly environment. This multi-part [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19135/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms/">Creating Dynamic Ignition Perspective Projects, Part One: Bindings and Transforms</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">One of the fastest-growing SCADA/HMI platforms today is Inductive Automation&#8217;s&nbsp;<a href="https://inductiveautomation.com/ignition/" target="_blank">Ignition</a>. In addition to the well-known&nbsp;<a href="https://inductiveautomation.com/ignition/modules/vision" target="_blank">Vision</a> visualization module, Ignition also contains&nbsp;<a href="https://inductiveautomation.com/ignition/modules/perspective" target="_blank">Perspective</a>, a web-friendly visualization module&nbsp;that&nbsp;works in any web browser—even on mobile!</p>



<p class="wp-block-paragraph">Although most Ignition functions work the same across Perspective or Vision, there are some necessary adjustments to work better in a web-friendly environment. This multi-part blog will serve as a guide to setting up dynamic Perspective screens that take full advantage of its&nbsp;new powerful features.</p>



<p class="wp-block-paragraph">To begin this series, we&#8217;ll&nbsp;focus on starting a Perspective view and creating bindings to tags and properties.&nbsp;We will then&nbsp;use&nbsp;binding transforms to display that information in the correct format.</p>



<h2 class="wp-block-heading" id="h-creating-a-perspective-view-and-label-object">Creating a Perspective View and Label Object</h2>



<p class="wp-block-paragraph">The first step of working with Perspective is creating a view. Views serve the same purpose as Vision windows, but they can also be embedded in other views to act like Vision templates. In the project browser, find Perspective/Views and select <strong>New View</strong>. Give your view a name and keep the container type as a <strong>Coordinate Container</strong>.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">When you open your view, the screen layout will switch to the Perspective view layout. The menu toolbar (1), project browser tree (2), and tag browser (3) are in their usual&nbsp;positions&nbsp;and the central designer panel shows the current view (4). However, the right side of the layout is a bit different. Instead of the Vision property editor in the bottom left, there is the Perspective property editor on the right side. There is also the Perspective component toolbox, which may need to be unhidden by pressing its button.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/3_perspective_layout_marked.png" alt="Perspective designer layout"/></figure>



<p class="wp-block-paragraph">First, create&nbsp;three&nbsp;label objects by dragging them&nbsp;from the toolbox to the view window. When you click on a label, the property editor will show all the properties of that object.&nbsp;Nearly all the properties can be edited, but for now,&nbsp;note the object name in the meta category&nbsp;and&nbsp;the text property that determines what text is displayed.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/4_label_props.png" alt="Label object properties"/></figure>



<h2 class="wp-block-heading" id="h-creating-a-property-binding">Creating a Property Binding</h2>



<p class="wp-block-paragraph"><strong>Tag Binding</strong><br>
On the first label, we will create a tag binding to map the &#8220;text&#8221; property to a numeric tag.</p>



<p class="wp-block-paragraph">To create a binding, hover your mouse over the left side of the property, then click when you see the greyed-out chain symbol. This will open the Edit Binding Popup.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/5_add_label_binding.png" alt="Add binding to label object"/></figure>



<p class="wp-block-paragraph">To create a tag binding, select <strong>Tag</strong> as the binding type, then click the tag button to the right of the Tag Path input box. This will open a list of tags on the current gateway. I have configured a few sample tags already, but you can use any tags available on your gateway. Find the desired tag in the tag tree and click Ok to bind to that tag.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/6_config_label_binding.png" alt="Configure label binding"/></figure>



<p class="wp-block-paragraph"><strong>Property Binding</strong><br>
On our second label, we will create a custom boolean property then bind the &#8220;text&#8221; attribute to that property.</p>



<p class="wp-block-paragraph">Select the second label and add a custom property&nbsp;with the blue <strong>Add Custom Property</strong>&nbsp;button in the property editor. Name it &#8220;enabled&#8221; and&nbsp;set its value to true.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/7_add_custom_prop.png" alt="Add a custom property to the label"/></figure>



<p class="wp-block-paragraph">You can bind to this custom property just as easily as a tag binding. Add a binding to the text property, then select <strong>Property</strong> as the binding type and click the button to the right of the input box to open the property tree. Find your custom prop in<strong> view &gt; root &gt; {label name} &gt; custom &gt; enabled</strong>, then click Ok to add the property binding.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/8_property_binding.png" alt="Bind the text to the new custom property"/></figure>



<p class="wp-block-paragraph"><strong>Expression Binding</strong><br> On our third label, we will create an expression binding, which can use Ignition&#8217;s <a href="https://docs.inductiveautomation.com/docs/8.1/platform/expression-language-and-syntax" target="_blank" rel="noreferrer noopener">Expression language</a> to accomplish a wide variety of calculations.</p>



<p class="wp-block-paragraph">Create another label and add another binding to the text property. Select the <strong>Expression</strong> binding type.&nbsp;Type &#8220;now()&#8221; to return the current date and time, then click Ok to apply the binding to the label.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/9_expression_binding.png" alt="Create an expression binding to show the current date"/></figure>



<p class="wp-block-paragraph">The three labels you&#8217;ve created are now bound to a tag, a property, and an expression. However, these raw values (shown below) are not always what you want to display on your&nbsp;screen. To turn these bindings into more human-readable text, you can use binding transforms.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/10_untransformed.png" alt="The direct bindings are not always formatted as you wish"/></figure>



<h2 class="wp-block-heading" id="h-using-binding-transforms">Using Binding Transforms</h2>



<p class="wp-block-paragraph">Binding transforms take the results of a binding, then manipulate the value to become more useful for your application. This section will show you how to use expression, map, and format transforms.</p>



<p class="wp-block-paragraph"><strong>Expression Transform</strong><br>
Open the binding on the first label&#8217;s tag transform and click&nbsp;<strong>Add Transform</strong>, then select an expression transform. This transform lets you use the binding value as the input to an expression function. Type</p>


<pre>
<strong>&apos;Temperature: &apos; round({value}) + &apos; F&apos;</strong>
</pre>


<p class="wp-block-paragraph">to round the value to the nearest integer and add the label before and after it. You can look at the binding preview at the bottom of the popup to see how your value will be transformed.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/12_expression_transform.png" alt="Add an expression transform"/></figure>



<p class="wp-block-paragraph"><strong>Map Transform</strong><br>
We will use a map transform to change the enable/disable boolean to show enabled/disabled as text. Open the boolean property binding and add a Map Transform. Click the plus icon to add new maps for &#8220;true&#8221; and &#8220;false&#8221;, then type in the desired text for true and false. The map transform also works for integers&nbsp;and even ranges of numbers!</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/13_map_transform.png" alt="Add a map transform"/></figure>



<p class="wp-block-paragraph"><strong>Format Transform</strong><br>
The format transform is used to display numbers and dates in your&nbsp;desired format. Open the datetime expression binding and add a Format Transform. Select the datetime type and choose your desired datetime format. The preview will show how the date will be displayed on the label.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/14_format_transform.png" alt="Add a format transform"/></figure>



<p class="wp-block-paragraph">After we have applied our bindings and transforms, the labels now show tag data in an&nbsp;easy-to-read format.</p>



<p class="wp-block-paragraph"><br>
<br>
<strong>Learn more about DMC&#8217;s&nbsp;<a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-designer-programming">Ignition expertise</a>.&nbsp;&nbsp;<a href="https://static.dmcinfo.com/contact">Contact us</a>&nbsp;to get started on your next HMI, SCADA, or MES project.</strong><br>
&nbsp;</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19135/creating-dynamic-ignition-perspective-projects-part-one-bindings-and-transforms/">Creating Dynamic Ignition Perspective Projects, Part One: Bindings and Transforms</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
