<?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>HMI and SCADA Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/category/manufacturing-automation-intelligence/hmi-and-scada/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Tue, 08 Sep 2026 19:31:40 +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>HMI and SCADA Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Beckhoff Setup Basics: TwinCAT HMI Configuration Steps</title>
		<link>https://static.dmcinfo.com/blog/19459/getting-started-with-a-beckhoff-plc-part-three-hmi-configuration/</link>
		
		<dc:creator><![CDATA[Owen Johnson]]></dc:creator>
		<pubDate>Tue, 08 Sep 2026 19:31:30 +0000</pubDate>
				<category><![CDATA[Beckhoff PLC]]></category>
		<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[Beckhoff and TwinCAT]]></category>
		<category><![CDATA[IPC Configuration]]></category>
		<category><![CDATA[PLC Programming]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19459/getting-started-with-a-beckhoff-plc-part-three-hmi-configuration/</guid>

					<description><![CDATA[<p>This blog is Part 3 of a multi-part series. Make sure to check out the other blogs on this topic: Term Definitions Throughout this blog series, I refer to two devices repeatedly. For clarity, those devices are as follows: Configure HMI Server First, we’ll need to configure the HMI server so we can publish to [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19459/getting-started-with-a-beckhoff-plc-part-three-hmi-configuration/">Beckhoff Setup Basics: TwinCAT HMI Configuration Steps</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-bcadade0 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)">
<p class="wp-block-paragraph">This blog is <strong>Part 3</strong> of a multi-part series. Make sure to check out the other blogs on this topic:</p>



<ol class="wp-block-list">
<li><a href="https://static.dmcinfo.com/blog/19695/getting-started-with-a-beckhoff-plc-part-one-setup/" target="_blank" rel="noreferrer noopener">Beckhoff Setup Basics: IPC Configuration Steps</a></li>



<li><a href="https://static.dmcinfo.com/blog/19664/getting-started-with-a-beckhoff-plc-part-two-plc-configuration/" target="_blank" rel="noreferrer noopener">Beckhoff Setup Basics: Getting Started with a Beckhoff PLC</a></li>



<li><strong>Beckhoff Setup Basics: HMI Configuration Steps</strong></li>
</ol>
</div>



<h2 id="h-term-definitions" class="wp-block-heading">Term Definitions</h2>



<p class="wp-block-paragraph">Throughout this blog series, I refer to two devices repeatedly. For clarity, those devices are as follows:</p>



<ol class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--40)"><strong>“Beckhoff IPC”</strong> – The industrial PC that will run the PLC and HMI server. Device configuration will occur on this device. Beckhoff sells these directly. Third-party IPCs can also be used, but licensing is more expensive.</li>



<li><strong>“Programming Computer”</strong> – A computer, such as an engineer’s laptop, where the TwinCAT XAE development environment is installed. Programming happens on this device, as well as some of the configuration of the Beckhoff IPC.</li>
</ol>



<h2 id="h-configure-hmi-server" class="wp-block-heading">Configure HMI Server</h2>



<p class="wp-block-paragraph">First, we’ll need to configure the HMI server so we can publish to it. On the Beckhoff IPC, find the HMI server tray icon, and click on it.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="68" height="50" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-1.jpg.png" alt="Beckhoff HMI server tray icon" class="wp-image-51374"/></figure>



<p class="wp-block-paragraph"><em><strong>Note: </strong>If you do not see this icon, double-check that TE2000 HMI Server is installed on the Beckhoff IPC following the instructions in Part 1 of this blog series.</em></p>



<p class="wp-block-paragraph">Select <strong>“Service Configuration.”</strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="273" height="49" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-2.jpg.png" alt="Beckhoff IPC service configuration" class="wp-image-51376"/></figure>



<p class="wp-block-paragraph">The webpage <a href="http://127.0.0.1:19800/">http://127.0.0.1:19800/</a> should open in the default browser.</p>



<p class="wp-block-paragraph">On that page, add a new Server Instance by entering the information in the form and creating an HMI administrator password.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img fetchpriority="high" decoding="async" width="1883" height="863" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-3.jpg.png" alt="Beckhoff HMI configuration Add Server Instance" class="wp-image-51381" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1200px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-3.jpg.png 1883w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-3.jpg-300x137.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-3.jpg-766x351.png 766w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-3.jpg-1024x469.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-3.jpg-1536x704.png 1536w" sizes="(max-width: 1883px) 100vw, 1883px" /></figure>



<p class="wp-block-paragraph">In the menu that appears, select the HMI Instance we created and select “Config.” (If there are issues, you may need to restart the HMI server through the same menu).</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="433" height="142" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-4.jpg.png" alt="Beckhoff HMI setup &quot;Config&quot; screen" class="wp-image-51378" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:500px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-4.jpg.png 433w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-4.jpg-300x98.png 300w" sizes="(max-width: 433px) 100vw, 433px" /></figure>



<p class="wp-block-paragraph">The default startup page will open.</p>



<p class="wp-block-paragraph">If you get a “License Expired” error page, then double-check that you have a valid or trial license for TE2000.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="658" height="252" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-5.jpg.png" alt="Beckhoff HMI setup license expired error" class="wp-image-51380" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-5.jpg.png 658w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-5.jpg-300x115.png 300w" sizes="(max-width: 658px) 100vw, 658px" /></figure>



<p class="wp-block-paragraph">In XAE Shell, ensure that TF2000 is selected and there is an active trial license.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="249" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-6.jpg-1024x249.png" alt="TC3 HMI Server CPU license" class="wp-image-51383" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-6.jpg-1024x249.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-6.jpg-300x73.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-6.jpg-768x187.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-6.jpg.png 1490w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="973" height="507" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-7.jpg.png" alt="Beckhoff Automation licensing" class="wp-image-51384" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-7.jpg.png 973w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-7.jpg-300x156.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-7.jpg-768x400.png 768w" sizes="(max-width: 973px) 100vw, 973px" /></figure>



<p class="wp-block-paragraph">If you have created a new trial license but still experience this error, then restart the HMI Server Instance.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="433" height="142" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-8.jpg.png" alt="Beckhoff HMI setup &quot;Restart&quot; screen" class="wp-image-51385" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:500px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-8.jpg.png 433w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-8.jpg-300x98.png 300w" sizes="(max-width: 433px) 100vw, 433px" /></figure>



<p class="wp-block-paragraph">Once the HMI Server has a valid or trial license, the Config page will show this. Enter the HMI administrator password created on the “Server Configuration” page.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="441" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-9.jpg-1024x441.png" alt="TwinCAT HMI server configuration" class="wp-image-51386" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1200px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-9.jpg-1024x441.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-9.jpg-300x129.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-9.jpg-766x330.png 766w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-9.jpg-1536x662.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-9.jpg.png 1912w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The configuration will open. Navigate to <strong>TcHmiSrv &gt; Webserver</strong>.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="811" height="815" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-10.jpg.png" alt="TcHmiSrv webserver endpoints" class="wp-image-51387" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-10.jpg.png 811w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-10.jpg-150x150.png 150w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-10.jpg-299x300.png 299w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-10.jpg-767x771.png 767w" sizes="(max-width: 811px) 100vw, 811px" /></figure>



<p class="wp-block-paragraph">Expand the <strong>Endpoints</strong> menu and select <strong>“Add.”</strong></p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="710" height="162" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-11.jpg.png" alt="Endpoints menu" class="wp-image-51388" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-11.jpg.png 710w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-11.jpg-300x68.png 300w" sizes="(max-width: 710px) 100vw, 710px" /></figure>



<p class="wp-block-paragraph">Add the IP address of the HMI Server where it will be accessed externally (an external browser or HMI) and use your HTTPS port.</p>



<p class="wp-block-paragraph">For this guide, we will assume the HMI server is on the Beckhoff IPC and use the URL: <strong>https://192.168.42.42:1021/</strong>.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="745" height="150" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-12.jpg.png" alt="HMI server IP address" class="wp-image-51660" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-12.jpg.png 745w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-12.jpg-300x60.png 300w" sizes="(max-width: 745px) 100vw, 745px" /></figure>



<p class="wp-block-paragraph">An <strong>“Add successful”</strong> message will appear at the top of the page if it is successful. If not, make sure the URL is correct and you’ve used <strong>https://</strong> as a prefix to the IP address.</p>



<h2 id="h-publish-hmi-program" class="wp-block-heading">Publish HMI Program</h2>



<p class="wp-block-paragraph">Now that the HMI server is configured, we can create the HMI Project in XAE Shell on the Programming PC.</p>



<p class="wp-block-paragraph">Once the HMI project is complete, we can publish it to the HMI server.</p>



<p class="wp-block-paragraph">To do this, select the HMI program in the project tree.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="386" height="385" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-13.jpg.png" alt="Beckhoff HMI program" class="has-border-color has-custom-light-gray-neutral-2-border-color wp-image-51390" style="border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:500px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-13.jpg.png 386w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-13.jpg-150x150.png 150w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-13.jpg-300x299.png 300w" sizes="(max-width: 386px) 100vw, 386px" /></figure>



<p class="wp-block-paragraph">At the top of XAE Shell, change the platform dropdown to <strong>“TwinCAT HMI.”</strong></p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="796" height="549" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-14.jpg.png" alt="TwinCAT HMI dropdown" class="wp-image-51391" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-14.jpg.png 796w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-14.jpg-300x207.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-14.jpg-767x529.png 767w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<p class="wp-block-paragraph">At the top of XAE Shell, select <strong>TwinCAT HMI &gt; Publish to TwinCAT HMI Server</strong>.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="960" height="235" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-15.jpg.png" alt="Publish to TwinCAT HMI Server" class="wp-image-51392" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-15.jpg.png 960w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-15.jpg-300x73.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-15.jpg-768x188.png 768w" sizes="(max-width: 960px) 100vw, 960px" /></figure>



<p class="wp-block-paragraph">If you have not created any profiles, TwinCAT will prompt you to enter a profile name. Different profiles can be used for different environments (ex: development, release, etc)</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="726" height="571" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-16.jpg.png" alt="Publish TwinCAT HMI Project module" class="wp-image-51393" style="border-top-left-radius:16px;border-top-right-radius:16px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-16.jpg.png 726w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-16.jpg-300x236.png 300w" sizes="(max-width: 726px) 100vw, 726px" /></figure>



<p class="wp-block-paragraph">Enter the IP address of the HMI endpoint created earlier, the appropriate port (1020), and the administrator password for the HMI Server set up earlier in this guide.</p>



<p class="wp-block-paragraph">You can also click the <strong>“…” </strong>button to open a pop-up of available HMI servers to connect to.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="1012" height="536" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-17.jpg.png" alt="Beckhoff HMI sever connection" class="wp-image-51395" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-17.jpg.png 1012w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-17.jpg-300x159.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-17.jpg-767x406.png 767w" sizes="(max-width: 1012px) 100vw, 1012px" /></figure>



<p class="wp-block-paragraph">It’s a good idea to click <strong>“Validate Connection”</strong> to ensure all information is correct and a connection is successful. If an error occurs during validation, you will not be able to publish until you correct it.</p>



<p class="wp-block-paragraph">Then click <strong>“Publish”</strong> in the top-right corner to publish the HMI project to the Server.</p>



<p class="wp-block-paragraph">It may take a long time for the project to publish. You can track progress in the bottom bar of XAE Shell.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="466" src="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-18.jpg-1024x466.png" alt="HMI sever connection progress bar" class="wp-image-51396" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1200px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-18.jpg-1024x466.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-18.jpg-300x136.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-18.jpg-767x349.png 767w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-18.jpg-1536x699.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/09/beckhoff-hmi-configuration-image-18.jpg.png 1919w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="h-full-screen-hmi-start-in-chrome-firefox" class="wp-block-heading">Full-Screen HMI Start in Chrome/Firefox</h2>



<p class="wp-block-paragraph">When our Beckhoff IPC is booted, we usually want it to immediately open the HMI screen instead of requiring an operator to start the HMI manually. This can be accomplished with a very simple batch script.</p>



<p class="wp-block-paragraph">Open Notepad on your Beckhoff IPC and paste in the following code:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">BAT (Batchfile)</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>@echo off
start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --kiosk -fullscreen --incognito http://127.0.0.1:1010/
exit</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">@</span><span style="color: #569CD6">echo</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">off</span></span>
<span class="line"><span style="color: #569CD6">start</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;C:\Program Files (x86)\Google\Chrome\Application\chrome.exe&quot;</span><span style="color: #D4D4D4"> --kiosk -fullscreen --incognito http://127.0.0.1:1010/</span></span>
<span class="line"><span style="color: #C586C0">exit</span></span></code></pre></div>



<p class="wp-block-paragraph">Save this file as <strong>“StartHMI.bat”</strong> in your startup folder. For convenience, if the HMI screen ever does need to be started manually, create a shortcut for this batch script and place it on the desktop.</p>



<p class="wp-block-paragraph">This will automatically open Chrome in full screen on startup. You may want to do this step after you’ve finished other setup steps, as it can be a bit of a nuisance after restarts.</p>



<p class="wp-block-paragraph">Make sure the path for Chrome in the batch file is correct. The above is the default location, but it may not be correct.</p>



<p class="wp-block-paragraph"><strong>Note:</strong> <em>Similar instructions are <a href="https://support.mozilla.org/en-US/kb/firefox-enterprise-kiosk-mode" target="_blank" rel="noreferrer noopener">available for Firefox</a>.</em></p>



<p class="wp-block-paragraph">Once the HMI is published on the server and starts in kiosk mode on startup, you are now complete with your Beckhoff PLC and HMI.</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">Have an upcoming project? DMC can help you get started or take the next step.</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">Learn more about DMC’s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/beckhoff-and-twincat-3-programming/" target="_blank" rel="noopener">Beckhoff automation expertise</a> and programming, and get started modernizing your system today.</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/19459/getting-started-with-a-beckhoff-plc-part-three-hmi-configuration/">Beckhoff Setup Basics: TwinCAT HMI Configuration Steps</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Which Ignition MQTT Modules Do You Need? Transmission, Engine, and Distributor Explained</title>
		<link>https://static.dmcinfo.com/blog/50802/ignition-mqtt-modules-transmission-engine-distributor/</link>
		
		<dc:creator><![CDATA[Lovin George]]></dc:creator>
		<pubDate>Fri, 28 Aug 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Ignition MQTT Modules]]></category>
		<category><![CDATA[Ignition SCADA]]></category>
		<category><![CDATA[Industrial MQTT]]></category>
		<category><![CDATA[MQTT Modules]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=50802</guid>

					<description><![CDATA[<p>Ignition supports MQTT through three modules from Cirrus Link: MQTT Transmission, MQTT Engine, and MQTT Distributor. When building an Ignition MQTT architecture for the first time, it can be hard to figure out which modules you need or where they go. Transmission publishes data to a broker, Distributor acts as the broker, and Engine subscribes [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/50802/ignition-mqtt-modules-transmission-engine-distributor/">Which Ignition MQTT Modules Do You Need? Transmission, Engine, and Distributor Explained</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ignition supports MQTT through three modules from Cirrus Link: MQTT Transmission, MQTT Engine, and MQTT Distributor. When building an Ignition MQTT architecture for the first time, it can be hard to figure out which modules you need or where they go. Transmission publishes data to a broker, Distributor acts as the broker, and Engine subscribes to data from the broker.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">I like to think of it like the marketing emails you never manage to escape. A company hands its emails to a mailing service, the mailing service keeps the list of subscribers and delivers copies to everyone on it, and you signed up once for a 10% off coupon and have received every email since. The company doesn’t know who you are, and you never talk to the company directly. In this setup, Transmission is the company, Distributor is the mailing service, and Engine is your inbox, still subscribed.</p>



<figure class="wp-block-image aligncenter size-full has-custom-border"><img decoding="async" width="1262" height="687" src="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-6.png" alt="Ignition MQTT modules 1" class="has-border-color wp-image-50850" style="border-color:#c4c4c4;border-width:1px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-6.png 1262w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-6-300x163.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-6-1024x557.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-6-768x418.png 768w" sizes="(max-width: 1262px) 100vw, 1262px" /><figcaption class="wp-element-caption">Image source: Cirrus Link Solutions, <em>Getting Started: Two Ignition Architecture.</em> Retrieved from https://docs.chariot.io/display/CLD80/Getting+Started:+Two+Ignition+Architecture</figcaption></figure>



<h2 id="h-why-use-mqtt" class="wp-block-heading">Why Use MQTT?</h2>



<p class="wp-block-paragraph">MQTT is a publish-and-subscribe protocol, and that structure is the reason to use it. The central gateway maintains a single broker connection no matter how many edge sites feed into it, instead of polling every device directly. Data is also published by exception, so values only cross the network when they change, which is useful on cellular links and other constrained networks.</p>



<p class="wp-block-paragraph">MQTT alone consolidates connections into a single stream, but it says nothing about what the data looks like. A plain MQTT message is just a value on a named topic (think a string or a JSON blob), and every publisher may format it differently.</p>



<p class="wp-block-paragraph">Sparkplug adds a standard structure on top of MQTT: publishers announce everything they’re going to send when they first connect, and the broker notifies subscribers if a publisher drops offline. Ignition uses that first announcement, called a birth certificate, to build matching tags automatically instead of you mapping topics to tags by hand.</p>



<p class="wp-block-paragraph">It’s like the welcome email of the subscription that lists everything you’re about to receive. And if the company quietly shuts down, the mailing service lets you know instead of leaving you to wonder why the emails with deals stopped.</p>



<h3 id="h-mqtt-transmission" class="wp-block-heading">MQTT Transmission</h3>



<p class="wp-block-paragraph">Transmission is the publisher. It’s installed on an edge or site-level gateway that already polls local PLCs or sensors over OPC UA or native drivers. Transmission watches the tag providers or folders you select and publishes them to the broker in Sparkplug format. In the email analogy, Transmission is the company’s sending tool. The PLCs write the content, and Transmission hands it to the mailing service.</p>



<p class="wp-block-paragraph">You don’t need Transmission if a device already publishes Sparkplug natively, or if the gateway only consumes MQTT data.</p>



<h3 id="h-mqtt-distributor" class="wp-block-heading">MQTT Distributor</h3>



<p class="wp-block-paragraph">Distributor is the broker. It runs inside an Ignition gateway and accepts connections from publishers and subscribers. It’s the mailing service itself. It keeps the subscriber list and moves the mail but never writes any of it.</p>



<p class="wp-block-paragraph">Since Distributor runs inside Ignition, the module works well for proofs of concept, development environments, and smaller production systems. Larger production systems will often use a standalone broker such as Chariot or HiveMQ, especially when applications outside Ignition share the broker or when security policies require the broker and SCADA system to be separate. Transmission and Engine can connect to compatible external MQTT brokers, so Distributor is not required.</p>



<h3 id="h-mqtt-engine" class="wp-block-heading">MQTT Engine</h3>



<p class="wp-block-paragraph">Engine is the MQTT subscriber. When it’s installed on a central Ignition gateway, it connects to the broker, subscribes to Sparkplug data, and creates Ignition tags for every edge node, device, and metric it receives. Think of it like your email inbox. Everything a company sends to you shows up there, sorted and ready to read.</p>



<p class="wp-block-paragraph">Once created, these tags act like any other Ignition tags. You can display them in Ignition Perspective, historize them, and use them for alarming and scripting. Because Sparkplug carries connection state, Engine also marks tags with bad quality when an edge node goes offline.</p>



<p class="wp-block-paragraph">Engine is not the broker. It connects to the broker as a client in the same way Transmission does. If you want MQTT data to show up in Ignition, this is the module that does it.</p>



<h2 id="h-quick-guide-for-setting-up-a-basic-edge-to-central-connection" class="wp-block-heading">Quick Guide for Setting Up a Basic Edge-to-Central Connection</h2>



<p class="wp-block-paragraph">For a basic two-gateway architecture, install the Transmission module at the edge and both Distributor and Engine modules on the <a href="https://inductiveautomation.com/downloads/third-party-modules/8.3.9" target="_blank" rel="noreferrer noopener">central gateway</a>. Then:</p>



<p class="wp-block-paragraph" style="padding-bottom:0">1. <strong>Configure MQTT Distributor on the central gateway:</strong> Confirm that MQTT Distributor is enabled and listening for TCP connections on port 1883. Under <strong>Users</strong>, create a broker user or confirm that one already exists. For a production connection across an untrusted network, use TLS instead of the non-secure listener.</p>



<figure class="wp-block-image aligncenter size-full has-custom-border" style="margin-bottom:0"><img decoding="async" width="1425" height="596" src="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-1.png" alt="MQTT Distributor module" class="wp-image-50844" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-1.png 1425w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-1-300x125.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-1-1024x428.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-1-768x321.png 768w" sizes="(max-width: 1425px) 100vw, 1425px" /></figure>



<p class="wp-block-paragraph">2. <strong>Verify Engine connection on the same gateway.</strong> Under <strong>MQTT Engine &gt; Servers</strong>, confirm that the default connection points to tcp:https://static.dmcinfo.com/ and shows <strong>Connected</strong>. If authentication is enabled in Distributor, confirm that the Engine connection uses the matching credentials.</p>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="1428" height="619" src="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-2.png" alt="MQTT Engine module" class="wp-image-50845" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-2.png 1428w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-2-300x130.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-2-1024x444.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-2-768x333.png 768w" sizes="(max-width: 1428px) 100vw, 1428px" /></figure>



<p class="wp-block-paragraph">3. <strong>Configure Transmission connection on the edge gateway.</strong> Under <strong>MQTT Transmission &gt; Servers</strong>, point the broker connection to tcp://:1883 and confirm it shows <strong>1 of 1 connected</strong>. Afterward, create a Transmitter with the tag provider, publish path, a Sparkplug Group ID, and a unique Edge Node ID. Transmission uses the next folder beneath that path as the Device ID.</p>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="1465" height="401" src="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-3.png" alt="MQTT Transmission module 1" class="wp-image-50846" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-3.png 1465w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-3-300x82.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-3-1024x280.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-3-768x210.png 768w" sizes="(max-width: 1465px) 100vw, 1465px" /></figure>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="1963" height="693" src="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-4.png" alt="MQTT Transmission module 2" class="wp-image-50847" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-4.png 1963w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-4-300x106.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-4-1024x362.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-4-768x271.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-4-1536x542.png 1536w" sizes="(max-width: 1963px) 100vw, 1963px" /></figure>



<p class="wp-block-paragraph">4. <strong>Verify data in the Designer.</strong> Browse the MQTT Engine tag provider on the central gateway, find your Group ID and Edge Node, and confirm metrics appear and update when source values change.</p>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="698" height="493" src="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-5.png" alt="Ignition Tag Browser" class="has-border-color has-custom-medium-gray-neutral-2-border-color wp-image-50848" style="border-width:1px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-5.png 698w, https://static.dmcinfo.com/wp-content/uploads/2026/08/ignition-mqtt-modules-5-300x212.png 300w" sizes="(max-width: 698px) 100vw, 698px" /></figure>



<p class="wp-block-paragraph">For anything beyond a test setup, structure the edge tags as UDTs so every equipment instance publishes the same structure. New equipment can then appear in the namespace with the same layout as everything else.</p>



<h2 id="h-when-to-use-mqtt" class="wp-block-heading">When to Use MQTT</h2>



<p class="wp-block-paragraph">MQTT is a strong fit when you’re consolidating many edge sites or feeding the same data to several consumers. MQTT is also worth considering for bandwidth-constrained or congested networks because its publish-by-exception model reduces unnecessary traffic.  On one of my recent projects, we chose MQTT because of the number of devices. Terminating hundreds of individual connections at the Ignition gateway wasn’t practical, so the devices published through a broker and Ignition held a single consolidated connection.</p>



<p class="wp-block-paragraph">MQTT is not the best choice for every system. For a handful of devices on a single reliable plant network, with Ignition as the only consumer, a direct OPC UA connection is simpler. The Gateway Network also handles tag, alarm, and history sharing between a small number of Ignition gateways without extra infrastructure. And MQTT means another service to configure, secure, and monitor.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--50)">Once each module’s responsibility is clear, it becomes easier to place components, troubleshoot connections, and scale the architecture. The same pattern can also support a unified namespace, in which sites publish to a shared structure consumed by SCADA, MES, analytics, and cloud applications.</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">Have an upcoming Ignition project? DMC can help you take the next step.</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">DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" target="_blank" rel="noreferrer noopener">Automation</a> experts develop <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/" target="_blank" rel="noreferrer noopener">scalable Ignition</a> and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/industrial-iot/" target="_blank" rel="noreferrer noopener">industrial MQTT solutions</a> that connect field equipment, edge gateways, and enterprise applications.</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/50802/ignition-mqtt-modules-transmission-engine-distributor/">Which Ignition MQTT Modules Do You Need? Transmission, Engine, and Distributor Explained</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Beckhoff Setup Basics: IPC Configuration Steps</title>
		<link>https://static.dmcinfo.com/blog/19695/getting-started-with-a-beckhoff-plc-part-one-setup/</link>
		
		<dc:creator><![CDATA[Owen Johnson]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 18:48:15 +0000</pubDate>
				<category><![CDATA[Beckhoff PLC]]></category>
		<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[Beckhoff and TwinCAT]]></category>
		<category><![CDATA[IPC Configuration]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19695/getting-started-with-a-beckhoff-plc-part-one-setup/</guid>

					<description><![CDATA[<p>This blog is Part 1 of a multi-part series. Make sure to check out the other blogs on this topic: Summary This is the first&#160;installment of a three-part blog series covering all you need to know about getting started with a Beckhoff PLC/HMI.&#160;In this blog, we&#8217;ll be&#160;covering how to initially set up&#160;your Beckhoff IPC to [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19695/getting-started-with-a-beckhoff-plc-part-one-setup/">Beckhoff Setup Basics: IPC Configuration Steps</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-bcadade0 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)">
<p class="wp-block-paragraph">This blog is <strong>Part 1</strong> of a multi-part series. Make sure to check out the other blogs on this topic:</p>



<ol class="wp-block-list">
<li><strong>Beckhoff Setup Basics: IPC Configuration Steps</strong></li>



<li><a href="https://static.dmcinfo.com/blog/19664/getting-started-with-a-beckhoff-plc-part-two-plc-configuration/" target="_blank" rel="noreferrer noopener">Beckhoff Setup Basics: Getting Started with a Beckhoff PLC</a></li>



<li><a href="https://static.dmcinfo.com/blog/19459/getting-started-with-a-beckhoff-plc-part-three-hmi-configuration/" target="_blank" rel="noreferrer noopener">Beckhoff Basics: HMI Configuration</a></li>
</ol>
</div>



<h2 id="h-summary" class="wp-block-heading">Summary</h2>



<p class="wp-block-paragraph">This is the <strong>first&nbsp;installment of a three-part blog series</strong> covering all you need to know about getting started with a Beckhoff PLC/HMI.&nbsp;In this blog, we&#8217;ll be&nbsp;covering how to initially set up&nbsp;your Beckhoff IPC to run PLC code and a TCHMI server.</p>



<p class="wp-block-paragraph">Within DMC, we often find ourselves setting up a new IPC, and it has proved very helpful to have a standardized guide to start with. So, we’ve compiled this guide to serve as a resource both within our organization and externally, and we’ve updated it for TwinCAT build 3.1.4026. <strong>Some key steps have changed significantly with build 4026</strong>, so if you are using an earlier version, please consult the version notes on the package install steps.</p>



<p class="wp-block-paragraph"><em>Note: If you aren&#8217;t planning to use TwinCAT HMI, you may disregard any steps specific to it. If you find yourself needing to use it in the future, you can perform those steps at any point.</em></p>



<p class="wp-block-paragraph">The process below was developed and documented on a Windows 10 development machine, but the process will be functionally identical for Windows 11.</p>



<h2 id="h-term-definitions" class="wp-block-heading">Term Definitions</h2>



<p class="wp-block-paragraph">Throughout this blog series, we refer to two devices repeatedly. For clarity, those devices are as follows:</p>



<ol class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--30)"><strong>&#8220;Beckhoff IPC&#8221;</strong>– The industrial PC that will run the PLC and HMI server. Device configuration will occur on this device. Beckhoff sells these directly. Third-party IPCs can also be used, but licensing is more expensive.</li>



<li><strong>&#8220;Programming Computer&#8221;</strong>– A computer, such as an engineer&#8217;s laptop, where the TwinCAT XAE development environment is installed. Programming happens on this device, as well as some of the configuration of the Beckhoff IPC.</li>
</ol>



<h2 id="h-power-on-and-connection" class="wp-block-heading">Power-On and Connection</h2>



<p class="wp-block-paragraph">Most Beckhoff IPCs do not have a power button; rather, they power on as soon as power is supplied. When ready, supply power. A keyboard, mouse, and monitor will also be useful for first power-on and initial configuration.</p>



<h2 id="h-beckhoff-device-manager" class="wp-block-heading">Beckhoff Device Manager</h2>



<p class="wp-block-paragraph">If your device is a Beckhoff IPC, Beckhoff Device Manager will generally run on startup. For a basic setup, you can step through the wizard with default options, and on the last page, uncheck the box that says “Run Beckhoff Security Wizard on next startup,” so it won’t run on startup in the future.</p>



<h2 id="h-change-nic-settings" class="wp-block-heading">Change NIC Settings</h2>



<p class="wp-block-paragraph">We’ll begin with some basic network setup. Open up the IPC’s adapter settings by right-clicking on the Network Icon in the system tray and selecting <strong>“Open Network &amp; Internet settings”</strong>.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">From this window, select <strong>“Change adapter options”</strong> (<strong>“Change adapter settings”</strong> on the left side of the window in Windows 7).</p>



<figure class="wp-block-image size-full has-custom-border" style="margin-bottom:var(--wp--preset--spacing--40)"><img decoding="async" width="900" height="675" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-1.png" alt="Beckhoff IPC Configuration 'Change Adapter Options'" class="has-border-color wp-image-49459" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-1.png 900w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-1-300x225.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-1-768x576.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">This window should display the Network Interface Connections (NICs) available on your Beckhoff IPC. There are often two (though there may be more or less) – one that you can use to connect a programming computer and another that can be used to connect to IO racks/devices. Before you proceed, identify which NIC you will be using for each purpose and the IP addresses that you’d like to assign to these NICs. A helpful (but optional) step is to rename each NIC to describe its purpose.</p>



<p class="wp-block-paragraph">To do this, right-click on a NIC and select <strong>Rename</strong>. In this example, <strong>Programming Port</strong> will be used for programming, and <strong>EtherCAT Master</strong> will be used to connect to IO.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">To change IP addresses for these NICs, right-click on them and select <strong>Properties</strong>. Then navigate to <strong>Internet Protocol Version 4 (TCP/IPv4)</strong> and select <strong>Properties</strong>. You can then input your selected IP addresses. For advanced network configurations, the subnet mask can also be changed at this point.</p>



<figure class="wp-block-image size-full is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="900" height="393" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-2.png" alt="Beckhoff IPC Configuration 'Network Connections'" class="has-border-color wp-image-49460" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:2.2770398481973433;object-fit:cover;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-2.png 900w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-2-300x131.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-2-768x335.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">For this tutorial, we will be using:<br>Programming Port: 192.168.42.42<br>EtherCAT Master: 192.168.43.43</p>



<h2 id="h-optional-rename-pc" class="wp-block-heading">(Optional) Rename PC</h2>



<p class="wp-block-paragraph">While this step isn’t necessary, it can be helpful to rename your PC so if it’s connected to a network in the future, it can be easily identified. To do so, navigate to <strong>Start Menu &gt; Settings &gt; System &gt; About &gt; Rename PC</strong>.</p>



<p class="wp-block-paragraph">After you rename your IPC, it will prompt you for a restart. You may postpone this to save time, as some of the following steps will also require a restart.</p>



<h2 id="h-install-chrome-or-firefox-if-using-twincat-hmi" class="wp-block-heading"><u><a name="Download Software" id="Download Software"></a></u>Install Chrome or Firefox If Using TwinCAT HMI</h2>



<p class="wp-block-paragraph">Google Chrome and Mozilla Firefox work well with TwinCAT 3, and we’ve seen issues with other browsers in the past. So, we recommend you install one of these browsers if you’re going to be using TwinCAT 3 HMI on this IPC.</p>



<p class="wp-block-paragraph">If you’re working on an IPC that cannot be connected to the internet during setup, you will need a standalone installer.</p>



<ul style="padding-bottom:0" class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--30)">Chrome requires a <a href="https://www.google.com/intl/en/chrome/?standalone=1" data-type="link" data-id="https://www.google.com/intl/en/chrome/?standalone=1">special installer</a> for this.
<ul class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--30)">At the time of writing, Google does not make it clear on the webpage whether the installer is standalone or not.</li>



<li>The downloaded file from the given link should contain “Standalone” in its filename, which confirms it is correct.</li>
</ul>
</li>



<li style="padding-bottom:var(--wp--preset--spacing--30)">Firefox <a href="https://www.firefox.com/en-US/download/all/" data-type="link" data-id="https://www.firefox.com/en-US/download/all/">install files</a> are generally standalone by default.</li>
</ul>



<p class="wp-block-paragraph">Download or transfer the install files to the IPC and follow the instructions in the installer. Once installed, you may want to launch the browser and disable distracting features such as suggested homepage links or password-manager prompts.</p>



<h2 id="h-create-a-beckhoff-account" class="wp-block-heading">Create a Beckhoff Account</h2>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">If you do not already have a Beckhoff account, you must register so you can download software. Beckhoff generally requires an account for any software downloads, so this will be useful going forward as well. Go to https.www.beckhoff.com, where you can register for an account as shown below.</p>



<figure class="wp-block-image size-large is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="1024" height="419" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-3-1024x419.png" alt="Beckhoff account registration" class="has-border-color wp-image-49463" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:2.4302295398079132;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-3-1024x419.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-3-300x123.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-3-768x315.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-3.png 1360w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="h-setup-packages" class="wp-block-heading">Setup Packages</h2>



<p class="wp-block-paragraph">The installation process has changed significantly for build 4026. Package Manager is a new feature that streamlines downloading and installing packages, and it must be used when working with 4026.</p>



<h3 id="h-legacy-4024-installation-notes" class="wp-block-heading">Legacy 4024 installation notes</h3>



<p class="wp-block-paragraph">If you are using 4024, you have two options. You may install legacy packages through Package Manager. Or, you may follow the legacy installation procedure using EXEs.</p>



<p class="wp-block-paragraph">The legacy installation procedure:</p>



<ol class="wp-block-list">
<li>Visit https://beckhoff.com/, log in, and navigate to <strong>Download finder &gt; Software and tools</strong>.</li>



<li>On your programming PC, you will need <strong>eXtended Automation Engineering (XAE) and the engineering versions of any TwinCAT functions.</strong></li>



<li>On the Beckhoff IPC, you will need <strong>eXtended Automation Runtime (XAR) and the runtime versions of any TwinCAT functions.</strong>
<ul class="wp-block-list">
<li>Note: If you require a build of 4024 not available on the website, you will need to reach out to Beckhoff support for assistance.</li>



<li>TwinCAT Functions are Beckhoff-developed applications that allow for special functionality on the PLC. They will have their own separate EXE to install.</li>



<li>Common TwinCAT Functions include the following–install the ones required based on your project; you can install more functions later if required.
<ul class="wp-block-list">
<li>TF2000: TwinCAT HMI</li>



<li>TF3300: TwinCAT Scope</li>



<li>TF5000: TwinCAT NC PTP</li>



<li>TF6100: OPC UA Server</li>



<li>TF6250: Modbus TCP</li>



<li>TF6255: Modbus RTU</li>



<li>TF6310: TCP/IP</li>
</ul>
</li>
</ul>
</li>



<li>For any Engineering EXEs, install them onto your programming PC.</li>



<li>For Runtime EXEs, transfer the EXEs to your IPC, then install them. Install XAR first, then the remaining packages.</li>
</ol>



<p class="wp-block-paragraph">You cannot use the legacy EXE installation along with the newer Package Manager-based installation. If you need to upgrade or change versions, you must carefully follow the instructions in this Infosys page before installing the other version.</p>



<h3 id="h-install-package-manager" class="wp-block-heading">Install Package Manager</h3>



<p class="wp-block-paragraph">You will need Package Manager on the IPC–it should come preinstalled with Beckhoff 4026 IPCs. You will likely also need Package Manager on your programming computer.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">Once you have registered or logged in on Beckhoff.com, go to Download Finder as boxed in the figure below.</p>



<figure class="wp-block-image size-large is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="1024" height="443" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-4-1024x443.png" alt="Beckhoff 'Download Finder'" class="has-border-color wp-image-49466" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-4-1024x443.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-4-300x130.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-4-768x333.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-4.png 1284w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Package manager should be the first option at the top of the page; if it isn’t, search for it in the download finder.</p>



<p class="wp-block-paragraph">Download the available version as an EXE, and install it on your programming computer and IPC if it is not already installed.</p>



<h3 id="h-configure-feeds" class="wp-block-heading">Configure Feeds</h3>



<p class="wp-block-paragraph">Feeds are repositories of packages that Beckhoff provides. Beckhoff provides a Stable Feed, Outdated Feed, and Testing Feed. We recommend using the Beckhoff Stable Feed for any production systems. See <a href="https://infosys.beckhoff.com/content/1033/tc3_installation/20646388747.html?id=6601972365691117656" target="_blank" rel="noreferrer noopener">this Infosys page</a> for details on each feed.</p>



<p class="wp-block-paragraph">If your IPC is (or can easily be) connected to the internet directly, you will likely find it easiest to download and install your required packages from the online feeds.</p>



<p class="wp-block-paragraph">If the IPC cannot be connected to Beckhoff’s servers, then you can follow these <a href="https://infosys.beckhoff.com/content/1033/tc3_installation/20646399115.html?id=5634929850179798270" target="_blank" rel="noreferrer noopener">instructions</a> from Beckhoff to transfer the packages onto your offline IPC. Beckhoff supports using a file directory with package files as a personal feed. Beckhoff also supports a compressed file containing all selected packages, transferred from a programming computer.</p>



<p class="wp-block-paragraph">To configure the feeds, launch Package Manager.</p>



<figure class="wp-block-image size-large is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="1024" height="576" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-5-1024x576.png" alt="TwinCAT Package Manager 'Introduction' tab" class="has-border-color has-custom-light-gray-neutral-2-border-color wp-image-49468" style="border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-5-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-5-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-5-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-5.png 1432w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Click the <strong>“+ Add new feed”</strong> button to add a new feed.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="467" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-6-1024x467.png" alt="TwinCAT Package Manager 'Feeds' tab" class="wp-image-49469" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-6-1024x467.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-6-300x137.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-6-768x351.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-6-1536x701.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-6.png 1917w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="469" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-7-1024x469.png" alt="TwinCAT Package Manager 'Add Feed' window" class="wp-image-49470" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-7-1024x469.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-7-300x137.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-7-768x352.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-7-1536x703.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-7.png 1917w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">As discussed, you may enter the Beckhoff online feeds if connected to the internet, or if offline, you may use any local folder as a feed.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="469" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-8-1024x469.png" alt="TwinCAT Package Manager 'Edit Feed' window" class="wp-image-49472" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-8-1024x469.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-8-300x137.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-8-768x352.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-8-1536x703.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-8.png 1917w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">If selecting the outdated feed, you may get a disclaimer as shown. If you are comfortable with the disclaimer, you may accept it by clicking <strong>&#8220;Yes,</strong>&#8221; and the feed will be added.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="576" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-9-1024x576.png" alt="TwinCAT Package Manager 'DISCLAIMER' warning" class="has-border-color wp-image-49473" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-9-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-9-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-9-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-9.png 1432w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Multiple feeds can be added, as necessary, and will be used in the priority order displayed.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="576" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-10-1024x576.png" alt="TwinCAT Package Manager 'Feeds' tab" class="has-border-color wp-image-49475" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-10-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-10-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-10-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-10.png 1432w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Package Manager will next ask to integrate with Visual Studio (if installed), or XAE Shell or XAE Shell 64-bit. XAE Shell 64-bit is a more modern, faster version of XAE Shell, newly added with the release of 4026.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="576" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-11-1024x576.png" alt="TwinCAT Package Manager 'Integration' tab" class="has-border-color wp-image-49476" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-11-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-11-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-11-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-11.png 1432w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Select a location to install the TwinCAT Packages.</p>



<p class="wp-block-paragraph">Note: This is a different default location than legacy 4024 XAE/XAR installations.</p>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="576" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-12-1024x576.png" alt="TwinCAT Package Manager 'Location' tab" class="has-border-color wp-image-49477" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-12-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-12-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-12-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-12.png 1432w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="h-use-package-manager-to-install-twincat-packages" class="wp-block-heading">Use Package Manager to Install TwinCAT Packages</h2>



<p class="wp-block-paragraph">Once Package Manager is set up, we can now install packages onto the IPC.</p>



<p class="wp-block-paragraph">If the IPC is connected to the internet and can access the Beckhoff-hosted feeds, you will see a list of available packages to install.</p>



<p class="wp-block-paragraph">The packages can be filtered by Engineering Packages and Runtime Packages:</p>



<ul class="wp-block-list">
<li>Engineering Packages are meant to be installed on your programming computer and will allow you to connect, modify, or control the PLC.
<ul class="wp-block-list">
<li>Common examples include:
<ul class="wp-block-list">
<li>TwinCAT Standard</li>



<li>TwinCAT XAE Shell / XAE Shell 64-bit</li>



<li>TE9000: Safety Editor</li>



<li>TE1300: TwinCAT Scope</li>



<li>TE2000: TwinCAT HMI</li>
</ul>
</li>
</ul>
</li>



<li>Runtime Packages provide applications that will run on the Beckhoff IPC.
<ul class="wp-block-list">
<li>Common examples include:
<ul class="wp-block-list">
<li>TwinCAT Standard</li>



<li>TC1000: TwinCAT ADS</li>



<li>TF2000: TwinCAT HMI Server</li>



<li>TF3300: TwinCAT Scope Server</li>



<li>TF5000: TwinCAT NC PTP</li>



<li>TF6100: OPC UA Server</li>



<li>TF6250: Modbus TCP</li>



<li>TF6255: Modbus RTU</li>



<li>TF6310: TCP/IP</li>



<li>Beckhoff Device Manager</li>
</ul>
</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Select all the packages that you need for your system. Then either click Install (Blue Download button) to install locally, or Download to send to an offline IPC (Press 3 dots button, then <strong>&#8220;Download&#8221;</strong>).</p>



<figure class="wp-block-image size-large is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="1024" height="469" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-13-1024x469.png" alt="TwinCAT Package Manager download manager" class="has-border-color has-custom-light-gray-neutral-2-border-color wp-image-49480" style="border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1018px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-13-1024x469.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-13-300x137.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-13-768x352.png 768w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-13-1536x703.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-13.png 1917w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Once all the packages are selected, either click <strong>“Apply Modifications”</strong> to install them locally, or click <strong>“Start Download”</strong> or <strong>“Start Download as a Zip”</strong>. Please refer to <a href="https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_installation/20646399115.html&amp;id=5634929850179798270" target="_blank" rel="noreferrer noopener">Infosys</a> for more information on installing offline feeds.</p>



<h2 id="h-install-the-beckhoff-real-time-ethernet-driver" class="wp-block-heading">Install the Beckhoff Real-Time Ethernet Driver</h2>



<p class="wp-block-paragraph">Next, you will need to install the Beckhoff Real-Time Ethernet Driver on the NIC to which you plan to connect your IO. This will allow the Beckhoff IPC to communicate with said IO.</p>



<p class="wp-block-paragraph">Navigate to <strong>C:\TwinCAT\3.1\System and run TcRteInstall.exe</strong>.</p>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="660" height="371" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-20.png" alt="Local TwinCAT installer" class="has-border-color wp-image-49520" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-20.png 660w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-20-300x169.png 300w" sizes="(max-width: 660px) 100vw, 660px" /></figure>



<p class="wp-block-paragraph">In the Compatible devices section, select the NIC that you will use for IO (EtherCAT Master if you configured your NIC settings as described earlier) and click Install.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="609" height="451" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-21.png" alt="TwinCAT RT-Ethernet Adapters 'Install' button" class="has-border-color has-custom-light-gray-neutral-2-border-color wp-image-49524" style="border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.3355119825708062;width:657px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-21.png 609w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-21-300x222.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<p class="wp-block-paragraph">After the process is completed, the NIC should move to the Installed and ready-to-use devices (real-time capable) section. You can close out of the application.</p>



<h2 id="h-set-firewall-settings" class="wp-block-heading">Set Firewall Settings</h2>



<p class="wp-block-paragraph">It’s important to maintain secure firewall settings on industrial devices to avoid allowing unwanted access to an industrial network, especially if said devices will be connected to the internet. But we must allow communication to the TwinCATTwinCAT runtime/HMI server via a programming computer to download code. To do this, we will enable a few rules within the firewall. Beckhoff will pre-configure certain ports on IPCs, but we recommend going through these steps to confirm that no traffic will be blocked. You may also need to refer to this section if firewall settings are inadvertently changed or reset.</p>



<p class="wp-block-paragraph">Navigate to <strong>Start Menu &gt; Settings</strong>. In the search bar, search “firewall” and open <strong>Windows Defender Firewall</strong>.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="871" height="668" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-14.png" alt="Windows Settings 'Defender Firewall'" class="has-border-color wp-image-49484" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:871px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-14.png 871w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-14-300x230.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-14-768x589.png 768w" sizes="(max-width: 871px) 100vw, 871px" /></figure>



<p class="wp-block-paragraph">In the window that appears, select <strong>Advanced Settings</strong> on the right.</p>



<figure class="wp-block-image size-full is-resized has-custom-border"><img decoding="async" width="900" height="352" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-15.png" alt="Windows Defender Firewall 'Advanced Settings'" class="has-border-color wp-image-49490" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:2.53934664726888;width:876px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-15.png 900w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-15-300x117.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-15-768x300.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">In the Windows Defender Firewall with Advanced Security window, select <strong>Inbound Rules</strong> on the left and click <strong>New Rule</strong> on the right.</p>



<figure class="wp-block-image size-full is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="900" height="403" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-16.png" alt="Windows Defender Firewall 'New Rule...'" class="has-border-color wp-image-49491" style="border-color:#eeeeee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:2.221108240465816;width:871px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-16.png 900w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-16-300x134.png 300w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-16-768x344.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">Details on important TCP/UDP ports required for TwinCAT Services can be found on <a href="https://infosys.beckhoff.com/english.php?content=../content/1033/ipc_security_wince/11019143435.html&amp;id=" data-type="link" data-id="https://infosys.beckhoff.com/english.php?content=../content/1033/ipc_security_wince/11019143435.html&amp;id=" target="_blank" rel="noreferrer noopener">Infosys</a>, but in our experience, the most important ports are:</p>



<ul class="wp-block-list">
<li>TCP 48898 (TwinCAT ADS Not Secure)</li>



<li>UDP 48899 (TwinCAT ADS Discovery)</li>



<li>TCP 8016 (TwinCAT ADS Secure)</li>



<li>TCP 1010 (TwinCAT HMI &lt;=1.12 Local)</li>



<li>TCP 1020 (TwinCAT HMI &lt;=1.12 Incoming)</li>



<li>TCP 2010 (TwinCAT HMI &gt;=1.14 Local)</li>



<li>TCP 2020 (TwinCAT HMI &gt;=1.14 Incoming)</li>
</ul>



<p class="wp-block-paragraph">Step through the wizard, using <strong>Port </strong>as the rule type, and add rules for all required ports.</p>



<h2 id="h-change-ams-net-id" class="wp-block-heading">Change AMS Net ID</h2>



<p class="wp-block-paragraph">The AMS Net ID is used by the TwinCAT XAE programming suite to identify specific PLC runtimes, and to connect to that runtime. It is made up of 6 values from 0-255, period-delimited. At DMC, we usually set the AMS Net ID to be the same as the IP address of the programming port of the Beckhoff IPC, followed by “.1.1”, for instance, “192.168.42.42.1.1”. This makes it easier to remember than using an entirely different number (though any value technically works).</p>



<p class="wp-block-paragraph">Click on the TwinCAT gear icon in the system tray and select <strong>Router &gt; Change AMS Net ID</strong>. If this gear icon does not appear in the system tray, you may need to restart your IPC first. After typing in your selected AMS Net ID and confirming, you will be prompted to restart. Now is a good time to do so.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-e8839977 wp-block-columns-is-layout-flex" style="padding-bottom:var(--wp--preset--spacing--30)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image aligncenter size-full is-resized has-custom-border"><img decoding="async" width="207" height="279" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-17.png" alt="Windows settings icon" class="wp-image-49492" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:0.7333333333333333;object-fit:cover;width:159px;height:auto"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40%">
<figure class="wp-block-image aligncenter size-full is-resized has-custom-border"><img decoding="async" width="408" height="265" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-18.png" alt="'Change AMS Netld' &gt; 'Router' menu options" class="has-border-color has-custom-black-border-color wp-image-49494" style="border-width:1px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.56;object-fit:cover;width:340px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-18.png 408w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-18-300x195.png 300w" sizes="(max-width: 408px) 100vw, 408px" /></figure>
</div>



<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40%">
<figure class="wp-block-image aligncenter size-full is-resized has-custom-border"><img decoding="async" width="473" height="239" src="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-19.png" alt="AMS Router window with AMS Net Id display" class="has-border-color wp-image-49496" style="border-color:#eeeeee;border-width:1px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.96921875;width:425px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-19.png 473w, https://static.dmcinfo.com/wp-content/uploads/2020/10/beckhoff-setup-image-19-300x152.png 300w" sizes="(max-width: 473px) 100vw, 473px" /></figure>
</div>
</div>



<h2 id="h-legacy-troubleshooting-steps" class="wp-block-heading">Legacy Troubleshooting Steps</h2>



<p class="wp-block-paragraph" id="h-6-nbsp-install-the-beckhoff-real-time-ethernet-driver">In the past, when using build 3.1.4024, we have sometimes seen an error message when trying to put the PLC into Run Mode:</p>



<pre class="wp-block-code has-text-color has-link-color wp-elements-1" style="color:#d50000"><code>Init4\RTime: Start Interrupt: Ticker started &gt;&gt; AdsWarning: 4115 (0x1013, RTIME: system clock setup fails)</code></pre>



<p class="wp-block-paragraph" id="h-6-nbsp-install-the-beckhoff-real-time-ethernet-driver" style="padding-bottom:var(--wp--preset--spacing--30)">We have not seen this yet with build 3.1.4026 but have preserved the resolution here. If you encounter this error, you can navigate to <strong>C:\Program Files (x86)\Beckhoff\TwinCAT\3.1\System</strong> and run win8settick.bat as administrator. This sets some TwinCAT-required clock settings and resolves the error.</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">Have an upcoming project? DMC can help you get started or take the next step.</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">Learn more about DMC’s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/beckhoff-and-twincat-3-programming/">Beckhoff automation expertise</a> and programming, and get started modernizing your system today.</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/19695/getting-started-with-a-beckhoff-plc-part-one-setup/">Beckhoff Setup Basics: IPC Configuration Steps</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC Wins &#8216;Best Error Handling&#8217; in Preliminary Round of the 2026 ICC Build-a-Thon</title>
		<link>https://static.dmcinfo.com/blog/49324/dmc-wins-best-error-handling-2026-icc-build-a-thon/</link>
		
		<dc:creator><![CDATA[Lovin George]]></dc:creator>
		<pubDate>Mon, 03 Aug 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=49324</guid>

					<description><![CDATA[<p>This July, DMC competed in the preliminary round of Inductive Automation’s 2026 Build-a-Thon ahead of this year’s Inductive Community Conference (ICC), an event DMC&#8217;s Automation team is no stranger to. Our challenge was to build a world-class alarm analysis dashboard entirely in Ignition Perspective. This year’s primary round was unique in that we had eight [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/49324/dmc-wins-best-error-handling-2026-icc-build-a-thon/">DMC Wins &#8216;Best Error Handling&#8217; in Preliminary Round of the 2026 ICC Build-a-Thon</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This July, DMC competed in the preliminary round of Inductive Automation’s 2026 Build-a-Thon ahead of this year’s <a href="https://icc.inductiveautomation.com/">Inductive Community Conference</a> (ICC), an <a href="https://static.dmcinfo.com/blog/15927/dmc-wins-the-2024-icc-build-a-thon/">event DMC&#8217;s Automation team</a> is no stranger to.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--20)">Our challenge was to build a world-class alarm analysis dashboard entirely in <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/">Ignition Perspective</a>. This year’s primary round was unique in that we had eight consecutive hours to plan, develop, test, and submit the application.</p>



<h2 id="h-the-alarm-intelligence-center" class="wp-block-heading">The Alarm Intelligence Center</h2>



<figure class="wp-block-image size-large has-custom-border" style="margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="1024" height="576" src="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-1-1024x576.png" alt="Alarm intelligence center." class="wp-image-49332" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-1-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-1-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-1-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-1-1536x864.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-1.png 1921w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Our goal was to build more than a list of alarms. While Ignition’s standard alarm status and journal tables serve many applications well, we wanted our dashboard to help operators understand what the alarm data was telling them.</p>



<p class="wp-block-paragraph">The result was the Alarm Intelligence Center, an operator-focused dashboard organized around three questions:</p>



<ul class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--20)">How healthy is the facility?</li>



<li style="padding-bottom:var(--wp--preset--spacing--30)">Which alarms or sources need attention?</li>



<li>Is performance improving over time?</li>
</ul>



<h2 id="h-the-implementation" class="wp-block-heading">The Implementation</h2>



<p class="wp-block-paragraph">We focused on creating a slick, intuitive dashboard that made both real-time alarm data and historical performance easy to understand at a glance.</p>



<p class="wp-block-paragraph">On the backend, we used named queries and custom scripting to analyze current and historical alarm events. Using EEMUA-informed alarm management metrics, we turned that analysis into information operators could act on, including:</p>



<ul class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--20)">Alarm rate and time spent in flood.</li>



<li style="padding-bottom:var(--wp--preset--spacing--20)">Average time to acknowledge.</li>



<li style="padding-bottom:var(--wp--preset--spacing--20)">Standing and chattering alarms.</li>



<li style="padding-bottom:var(--wp--preset--spacing--20)">Priority distribution and historical trends.</li>



<li style="padding-bottom:var(--wp--preset--spacing--30)">A Pareto view identifying the sources responsible for most of the alarm load.</li>
</ul>



<div class="wp-block-cb-carousel-v2 cb-carousel-block cb-single-slide" data-cb-slides-per-view="1" data-cb-slides-per-group="1" data-cb-space-between="15" data-cb-speed="300" data-cb-navigation="true" data-cb-pagination="true" data-cb-loop="true" data-cb-autoplay="true" data-cb-autoplay-speed="3000" data-cb-pause-on-mouse-enter="true" data-cb-breakpoints="{&quot;768&quot;:{&quot;slidesPerView&quot;:1,&quot;slidesPerGroup&quot;:1}}"><div class="swiper"><div class="cb-wrapper swiper-wrapper">
<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<figure class="wp-block-image aligncenter size-full has-custom-border" style="margin-bottom:0"><img decoding="async" width="1920" height="1077" src="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-2.png" alt="Alarm center sources." class="wp-image-49335" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-2.png 1920w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-2-300x168.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-2-1024x574.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-2-768x431.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-2-1536x862.png 1536w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>
</div>



<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="1920" height="1077" src="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-3.png" alt="Daily alarm load." class="wp-image-49336" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-3.png 1920w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-3-300x168.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-3-1024x574.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-3-768x431.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-3-1536x862.png 1536w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>
</div>
</div></div><div class="cb-pagination swiper-pagination"></div><div class="cb-button-prev swiper-button-prev"></div><div class="cb-button-next swiper-button-next"></div></div>



<p class="wp-block-paragraph" style="padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--40)">We also built custom alarm status and alarm history tables that fit seamlessly with the dashboard’s visual style. The tables provided simplified filtering and controls for viewing alarm details, acknowledging active alarms, and shelving them.</p>



<div class="wp-block-cb-carousel-v2 cb-carousel-block cb-single-slide" data-cb-slides-per-view="1" data-cb-slides-per-group="1" data-cb-space-between="15" data-cb-speed="300" data-cb-navigation="true" data-cb-pagination="true" data-cb-loop="true" data-cb-autoplay="true" data-cb-autoplay-speed="3000" data-cb-pause-on-mouse-enter="true" data-cb-breakpoints="{&quot;768&quot;:{&quot;slidesPerView&quot;:1,&quot;slidesPerGroup&quot;:1}}"><div class="swiper"><div class="cb-wrapper swiper-wrapper">
<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<figure class="wp-block-image aligncenter size-full has-custom-border" style="margin-bottom:0"><img decoding="async" width="1918" height="1081" src="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-4.png" alt="Active alarm states." class="wp-image-49339" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-4.png 1918w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-4-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-4-1024x577.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-4-768x433.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-4-1536x866.png 1536w" sizes="(max-width: 1918px) 100vw, 1918px" /></figure>
</div>



<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="1918" height="1078" src="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-5.png" alt="Alarm history dashboard." class="wp-image-49340" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-5.png 1918w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-5-300x169.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-5-1024x576.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-5-768x432.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/07/dmc-wins-best-error-handling-5-1536x863.png 1536w" sizes="(max-width: 1918px) 100vw, 1918px" /></figure>
</div>
</div></div><div class="cb-pagination swiper-pagination"></div><div class="cb-button-prev swiper-button-prev"></div><div class="cb-button-next swiper-button-next"></div></div>



<p class="wp-block-paragraph">The result was a polished, standards-driven dashboard that helped operators quickly understand system health, identify problem areas, and decide where to focus their attention.</p>



<p class="wp-block-paragraph">DMC is proud to share that our submission received the <strong>Best Error Handling </strong>award.</p>



<p class="wp-block-paragraph">The experience demonstrated what DMC does best: bring the right people together, quickly turn ideas into action, and deliver a polished solution under a demanding deadline.</p>



<p class="wp-block-paragraph">Check out the project on <a href="https://inductiveautomation.com/exchange/2986" target="_blank" rel="noreferrer noopener">Ignition Exchange</a>.</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">Have an upcoming project? DMC can help you take the next step.</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">DMC helps manufacturers build intuitive <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/">SCADA applications</a> that turn operational data into actionable information. Contact us to learn more about our Ignition programming and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/">automation solutions</a>.</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/49324/dmc-wins-best-error-handling-2026-icc-build-a-thon/">DMC Wins &#8216;Best Error Handling&#8217; in Preliminary Round of the 2026 ICC Build-a-Thon</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How Drivers Enable Industrial Cloud Connectivity</title>
		<link>https://static.dmcinfo.com/blog/46440/industrial-device-cloud-connectivity-drivers/</link>
		
		<dc:creator><![CDATA[Kirsten Zimmerle]]></dc:creator>
		<pubDate>Fri, 17 Jul 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Cloud Integration]]></category>
		<category><![CDATA[Driver Development]]></category>
		<category><![CDATA[Industrial Connectivity]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=46440</guid>

					<description><![CDATA[<p>Industrial environments are generating more data than ever before. Modern equipment continuously logs signals like temperature, pressure, vibration, cycle time, and fault states. The usefulness of this data is largely dictated by accessibility. At the same time, many organizations are expanding initiatives like predictive maintenance and real-time quality monitoring, which depend on reliable connectivity between [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/46440/industrial-device-cloud-connectivity-drivers/">How Drivers Enable Industrial Cloud Connectivity</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph" id="h-industrial-environments-are-generating-more-data-than-ever-before-modern-equipment-continuously-logs-signals-like-temperature-pressure-vibration-cycle-time-and-fault-states-the-usefulness-of-this-data-is-largely-dictated-by-accessibility">Industrial environments are generating more data than ever before. Modern equipment continuously logs signals like temperature, pressure, vibration, cycle time, and fault states. The usefulness of this data is largely dictated by accessibility.</p>



<p class="wp-block-paragraph">At the same time, many organizations are expanding initiatives like predictive maintenance and real-time quality monitoring, which depend on reliable connectivity between industrial devices and the cloud.</p>



<p class="wp-block-paragraph">This level of connectivity is a point where things can get complicated.</p>



<p class="wp-block-paragraph">Unlike consumer IoT, industrial systems weren’t always designed to be connected to the cloud. Devices speak a wide range of protocols, networks can be slow or unstable, and shutting down operations to make fixes can be expensive. Connection to the cloud becomes an exercise in translation, normalization, and careful system design.</p>



<p class="wp-block-paragraph">This blog focuses on one of the key components of that process: <strong><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/device-driver-development/" type="page" id="719">driver development</a></strong>.</p>



<h2 id="h-understanding-industrial-iot-connectivity" class="wp-block-heading">Understanding Industrial IoT Connectivity</h2>



<p class="wp-block-paragraph">Historically, data produced by industrial equipment during manufacturing processes stayed local, stored on PLCs, SCADA systems, or proprietary vendor interfaces. This local storage provides a hurdle to implementing modern strategies for predictive maintenance, real-time quality monitoring, or the use of digital twins. There’s now a strong need to move machine data out of isolated systems and into centralized platforms where it can be analyzed and used to inform decisions or actions.</p>



<p class="wp-block-paragraph">Centralizing data requires thinking about connectivity beyond simply networking machines together. To have an accessible, centralized system, one must ensure that each device can reliably and securely communicate with systems outside a traditional OT network.</p>



<h3 id="h-connectivity-challenges-from-plant-floor-to-the-cloud" class="wp-block-heading">Connectivity Challenges: From Plant Floor to the Cloud</h3>



<p class="wp-block-paragraph">On the plant floor, machines often communicate using standards like Modbus, OPC UA, or BACnet. These are well-suited for communicating with local devices but require translation when mapping onto cloud-native systems that rely on protocols like MQTT, HTTPS, or AMQP.</p>



<p class="wp-block-paragraph">Take a legacy Modbus device, for example. It might provide a set of registers containing raw integer values. One number could represent motor speed; another might indicate tank level. But on their own, those values are just numbers; they don’t explain what they represent. A value of 4231 might mean 42.31°C, 423.1 psi, or something entirely different depending on scaling and encoding.</p>



<p class="wp-block-paragraph">Cloud systems, on the other hand, are typically designed to expect structured, self-describing data. Timestamps, units, and data types may all be expected to come alongside the value for a datapoint.</p>



<p class="wp-block-paragraph">This means there are two challenges to hooking industrial systems into cloud architectures. The first is extracting reliable data from industrial equipment by leveraging tools like serial connections, legacy backplanes, or proprietary APIs. The second is transforming that data into something the cloud can understand. Drivers act as a middle layer in the system to address these challenges.</p>



<h3 id="h-cloud-focused-considerations-in-industrial-connectivity" class="wp-block-heading">Cloud-Focused Considerations in Industrial Connectivity</h3>



<p class="wp-block-paragraph">Once data is collected on the factory floor, the next step is sending it to the cloud safely, reliably, and with the ability to scale over time.</p>



<p class="wp-block-paragraph">This adds a new layer of complexity at the edge. Practitioners now have to keep in mind things like communication, managing network interruptions, and efficiently moving large amounts of data without slowdowns. What previously worked for local devices and machines won’t always work when cloud platforms are involved.</p>



<p class="wp-block-paragraph">From an edge perspective, this introduces a new set of design considerations.</p>



<h2 id="h-protocol-compatibility" class="wp-block-heading">Protocol Compatibility</h2>



<p class="wp-block-paragraph">Cloud systems typically rely on internet-friendly protocols. MQTT is often the default choice due to its publish/subscribe model and its efficiency, but HTTPS and AMQP are also common depending on the platform.</p>



<p class="wp-block-paragraph">Drivers or gateways must translate industrial protocols into one of these formats, often while enriching and compressing the data.</p>



<h2 id="h-data-modeling-and-normalization" class="wp-block-heading">Data Modeling and Normalization</h2>



<p class="wp-block-paragraph">Cloud platforms expect data to be consistent across devices and sites. That means:</p>



<ul class="wp-block-list">
<li>Clearly defined data types</li>



<li>Standardized units</li>



<li>Consistent naming conventions</li>



<li>Structured metadata</li>
</ul>



<p class="wp-block-paragraph">Without normalization, every device can become a custom integration problem.</p>



<h2 id="h-security-requirements" class="wp-block-heading">Security Requirements</h2>



<p class="wp-block-paragraph">Unlike a local OT network, cloud connectivity requires strong security controls:</p>



<ul class="wp-block-list">
<li>TLS encryption for all data in transit</li>



<li>Certificate-based authentication for devices</li>



<li>Managed identity and access control</li>
</ul>



<p class="wp-block-paragraph">In many cases, the gateway handles these responsibilities, but it’s essential that the driver integrates cleanly with that security model.</p>



<h2 id="h-reliability-and-offline-operation" class="wp-block-heading">Reliability and Offline Operation</h2>



<p class="wp-block-paragraph">Industrial environments don&#8217;t always have the best connectivity. Networks fail, systems can be routinely interrupted for maintenance, and some locations have limited bandwidth.</p>



<p class="wp-block-paragraph">Drivers and gateways need to buffer data locally, retry transmissions intelligently, and ensure that important data isn’t lost.</p>



<h2 id="h-edge-processing" class="wp-block-heading">Edge Processing</h2>



<p class="wp-block-paragraph">Not all data needs to be sent to the cloud.</p>



<p class="wp-block-paragraph">In many cases, it’s more efficient to process data at the edge by:</p>



<ul class="wp-block-list">
<li>Filtering noise</li>



<li>Aggregating high-frequency signals</li>



<li>Detecting simple events</li>
</ul>



<p class="wp-block-paragraph">This reduces bandwidth usage and keeps cloud systems focused on higher-value analysis.</p>



<h2 id="h-core-concepts-in-building-industrial-iot-drivers" class="wp-block-heading">Core Concepts in Building Industrial IoT Drivers</h2>



<p class="wp-block-paragraph">Developing a driver requires understanding both how devices represent data and how that data will ultimately be used.</p>



<h3 id="h-understanding-device-data-structures" class="wp-block-heading">Understanding Device Data Structures</h3>



<p class="wp-block-paragraph">Industrial devices commonly expose data through:</p>



<ul class="wp-block-list">
<li>Registers (e.g., Modbus)</li>



<li>Tags or variables (PLCs)</li>



<li>Objects (BACnet, OPC UA)</li>



<li>Vendor-specific memory maps</li>
</ul>



<p class="wp-block-paragraph">Interpreting these correctly is critical. A single value can represent very different things depending on scaling, encoding, and byte order.</p>



<p class="wp-block-paragraph">Drivers must apply the correct transformations to ensure accuracy.</p>



<h3 id="h-timing-and-polling" class="wp-block-heading">Timing and Polling</h3>



<p class="wp-block-paragraph">Devices often expect communication at specific intervals. Poll too quickly and you risk overloading the device or network. Poll too slowly and you may miss important changes.</p>



<p class="wp-block-paragraph">Drivers need to balance these constraints while also considering how frequently data should be sent to the cloud.</p>



<h3 id="h-event-driven-vs-polled-data" class="wp-block-heading">Event-Driven vs. Polled Data</h3>



<p class="wp-block-paragraph">Some systems support event-driven communication (such as OPC UA subscriptions), while others rely entirely on polling.</p>



<p class="wp-block-paragraph">Supporting both approaches allows for more efficient and scalable designs.</p>



<h3 id="h-essential-components-of-an-iot-driver" class="wp-block-heading">Essential Components of an IoT Driver</h3>



<p class="wp-block-paragraph">A production-ready driver includes several key components beyond basic protocol handling:</p>



<p class="wp-block-paragraph"><strong>Protocol Parsing</strong>: The process that translates raw bytes into structured values. It includes handling message formats, checksums, and protocol-specific logic.</p>



<p class="wp-block-paragraph"><strong>Transport Layer Handling</strong>: Drivers often interact with multiple transport layers such as serial communication (RS-232, RS-485), TCP/UDP networking, and fieldbus interfaces. These layers must be resilient to noise, dropped packets, and physical issues.</p>



<p class="wp-block-paragraph"><strong>Configuration Models</strong>: Scalability depends on structured configuration. Drivers typically support:</p>



<ul class="wp-block-list">
<li>External configuration files</li>



<li>Dynamic updates via APIs</li>



<li>Metadata definitions for signals</li>
</ul>



<p class="wp-block-paragraph">This avoids hardcoding logic for each deployment.</p>



<p class="wp-block-paragraph"><strong>Error Handling and Recovery</strong>: Reliable operation requires robust handling of timeouts, invalid responses, and disconnections. Drivers should automatically retry and recover without manual intervention.</p>



<p class="wp-block-paragraph"><strong>Logging and Diagnostics</strong>: Remote troubleshooting depends on visibility. Drivers should expose logs, communication traces, and status information that can be accessed remotely.</p>



<h3 id="h-best-practices-for-cloud-focused-driver-development" class="wp-block-heading"><strong>Best Practices for Cloud-Focused Driver Development</strong></h3>



<p class="wp-block-paragraph">Several patterns consistently improve reliability and maintainability.</p>



<p class="wp-block-paragraph"><strong>Use Abstraction Layers</strong>: Separating protocol logic from device-specific mappings makes drivers more reusable and easier to extend.</p>



<p class="wp-block-paragraph"><strong>Support Simulation and Testing</strong>: Simulated devices allow for faster development and safer testing, especially when physical hardware is limited.</p>



<p class="wp-block-paragraph"><strong>Control Data Volume</strong>: Sending too much data is a common mistake. Drivers should support filtering, aggregation, and event-based reporting.</p>



<p class="wp-block-paragraph"><strong>Prioritize Security</strong>: Drivers should align with secure communication practices and integrate with certificate-based authentication and encrypted transport layers.</p>



<h2 id="h-choosing-the-right-connectivity-approach" class="wp-block-heading">Choosing the Right Connectivity Approach</h2>



<p class="wp-block-paragraph">There is no one-size-fits-all architecture for industrial IoT. The right approach depends on a mix of technical and operational factors.</p>



<p class="wp-block-paragraph">Data volume, update frequency, and real-time requirements all influence how much processing should happen at the edge versus the cloud.</p>



<p class="wp-block-paragraph">Network reliability plays a major role—especially in environments where connectivity is intermittent.</p>



<p class="wp-block-paragraph">Security requirements can further shape architecture, particularly in regulated industries.</p>



<p class="wp-block-paragraph">When it comes to implementation, most teams choose between building custom solutions, buying commercial products, or combining both. Custom development offers flexibility but requires ongoing maintenance. Many commercial tools enable faster deployment but come with limited customization options. In practice, many organizations take a hybrid approach, using standard tools wherever possible and customization where necessary.</p>



<p class="wp-block-paragraph">The key is to start with a reliable foundation and evolve the architecture as requirements become clearer.</p>



<h2 id="h-conclusion" class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Connecting industrial devices to the cloud is not a single step—it’s a layered process that starts with reliable data extraction and ends with meaningful insights.</p>



<p class="wp-block-paragraph">Drivers play a very central role. They translate raw machine data into structured, usable information and ensure it can move reliably between systems that were never designed to work together.</p>



<p class="wp-block-paragraph">By combining well-designed drivers, thoughtful edge architectures, and scalable cloud platforms, it becomes possible to unlock the full value of industrial data.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">As technologies continue to evolve—through digital twins, edge computing, and next-generation networking—the importance of this foundation will only grow.</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">Looking to connect your industrial systems to the cloud? DMC can help!</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">DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/">Automation team</a> can translate, normalize, and securely deliver machine data from the plant floor to modern cloud platforms.</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/46440/industrial-device-cloud-connectivity-drivers/">How Drivers Enable Industrial Cloud Connectivity</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Triggering Gateway File Syncs for Ignition 8.3 Using Git Hooks</title>
		<link>https://static.dmcinfo.com/blog/44721/ignition-8-3-gateway-file-sync-git/</link>
		
		<dc:creator><![CDATA[Wenjing Deng]]></dc:creator>
		<pubDate>Wed, 03 Jun 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[GIT]]></category>
		<category><![CDATA[SCADA]]></category>
		<category><![CDATA[Workflows]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=44721</guid>

					<description><![CDATA[<p>Ignition 8.3’s file-based project structure makes it much easier to use standard Git workflows with SCADA projects. Project resources can now be version-controlled directly as files, which makes branch switching, pull requests, and external editing more practical. This also enables patterns&#160;such as&#160;using symbolic links to share project resources across environments. One issue that arises with [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/44721/ignition-8-3-gateway-file-sync-git/">Triggering Gateway File Syncs for Ignition 8.3 Using Git Hooks</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ignition 8.3’s file-based project structure makes it much easier to use standard Git workflows with SCADA projects. Project resources can now be version-controlled directly as files, which makes branch switching, pull requests, and external editing more practical. This also enables patterns&nbsp;such as&nbsp;<a href="https://static.dmcinfo.com/blog/44390/symbolic-links-shared-ignition-project-libraries/">using symbolic links</a> to share project resources across environments.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">One issue that arises with this workflow is that Ignition does not always immediately detect file changes made outside the Designer. After checking out a branch, merging changes, or pulling updates, the gateway will still need a manual file scan from the Gateway before the latest project or configuration files are reflected.</p>



<p class="wp-block-paragraph">To make development workflows smoother for our projects at DMC, we created a script that uses the Ignition 8.3 Gateway API endpoints to trigger project and configuration file scans. By integrating this script into Git hooks, file scans can run automatically after branch checkouts or merges, eliminating the need to manually navigate to the Gateway webpage and trigger them each time (fig1 and fig2). Additionally, developers can manually run the script from Bash or the command line to trigger file scans on demand.</p>



<p class="wp-block-paragraph">In this blog, we have provided a sample script and .env file, and we will walk you through the steps to set this up.</p>



<figure class="wp-block-image aligncenter size-full has-custom-border"><img decoding="async" width="1429" height="277" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-1.png" alt="Screenshot of the &quot;Platform Overview&quot; page in the Ignition Gateway UI." class="has-border-color has-custom-light-blue-border-color wp-image-44728" style="border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-1.png 1429w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-1-300x58.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-1-1024x198.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-1-768x149.png 768w" sizes="(max-width: 1429px) 100vw, 1429px" /><figcaption class="wp-element-caption"><em>Figure 1: Platform File System Scan Button</em></figcaption></figure>



<figure class="wp-block-image aligncenter size-full has-custom-border"><img decoding="async" width="1427" height="334" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-2.png" alt="Screenshot of the Projects section of Ignition." class="has-border-color has-custom-light-blue-border-color wp-image-44729" style="border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-2.png 1427w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-2-300x70.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-2-1024x240.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-2-768x180.png 768w" sizes="(max-width: 1427px) 100vw, 1427px" /><figcaption class="wp-element-caption"><em>Figure 2: Project File System Scan Button</em></figcaption></figure>



<h2 id="h-why-this-step-matters" class="wp-block-heading">Why This Step Matters</h2>



<p class="wp-block-paragraph">There are a variety of reasons why automating this step is both important and beneficial. This automation reduces friction in the development workflow, reducing some of the common sources of errors and delays while improving team-wide consistency and clarity. By using Git hooks to automate file syncing in Ignition, developers avoid repeated trips to the Gateway UI and reduce mental load.</p>



<p class="wp-block-paragraph">By adding automated file scans into the development workflow, teams can make Ignition 8.3 development feel more like regular software development, where Git-based practices like branching, merging, and pull requests fit naturally into SCADA projects.</p>



<h2 id="h-set-up-gateway-api-key" class="wp-block-heading">Set Up Gateway API Key</h2>



<p class="wp-block-paragraph">In order to access the API endpoint, we need to set up an API key in the Gateway. Follow <a href="https://www.docs.inductiveautomation.com/docs/8.3/platform/security/api-keys" target="_blank" rel="noreferrer noopener">Ignition’s manual</a> for this.</p>



<p class="wp-block-paragraph">By default, Ignition requires API keys to be used over secure HTTPS connections. Since this script commonly runs against local development Gateways using standard HTTP, the Require secure connections for API Keys setting must be disabled for the requests to succeed.</p>



<p class="wp-block-paragraph">Make sure to copy the ENTIRE api key. We will add it to the <em><strong>.env</strong></em> file in the next section.</p>



<h2 id="h-repo-and-environment-variables-set-up" class="wp-block-heading">Repo and Environment Variables Set Up</h2>



<p class="wp-block-paragraph">Copy the example script (included in the section below) into your desired location in your repo. For example, in this repo, we have put it at the following location and called it <strong>gateway_scan.py</strong>.</p>



<p class="wp-block-paragraph">Path: <em><strong>ignition-docker-8-3\scripts\gateway_scan</strong></em></p>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="1798" height="453" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-4.png" alt="Screenshot of a file explorer window displaying a Python source file named gateway_scan.py." class="wp-image-44730" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-4.png 1798w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-4-300x76.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-4-1024x258.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-4-768x193.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/05/ignition-8.3.-git-workflow-image-4-1536x387.png 1536w" sizes="(max-width: 1798px) 100vw, 1798px" /></figure>



<p class="wp-block-paragraph">Next, add the following variables to your .env file:</p>



<p class="wp-block-paragraph"><strong><em>GATEWAY_IP= (your gateway’s IP address)</em><br><em>HTTP_PORT = (your gateway’s port)</em><br><em>GATEWAY_API_TOKEN=(your generated API token for the gateway)</em></strong></p>



<p class="wp-block-paragraph">The example script looks for these variables; if they are already in your <strong>.env</strong> and are named differently, open the example script and do a find-and-replace to update the variable names.</p>



<h2 id="h-git-hook-set-up" class="wp-block-heading">Git Hook Set Up</h2>



<p class="wp-block-paragraph">Git hooks let us automatically run scripts when certain Git actions occur. For this workflow, we typically set up Git hooks to run the gateway_scan.py script after branch checkouts and merges.</p>



<p class="wp-block-paragraph">This means that when a developer switches branches, pulls changes, or merges updates, the Gateway file scan can run automatically without having to open the Gateway webpage and manually trigger it.</p>



<p class="wp-block-paragraph">To set this up, create two files in the <strong>.git/hooks</strong> folder:</p>



<p class="wp-block-paragraph"><em><strong>.git/hooks/post-checkout<br>.git/hooks/post-merge</strong></em></p>



<p class="wp-block-paragraph">Paste the following code into both files:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">C</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#!/bin/sh

# Move to the root of the git repository
cd "$(git rev-parse --show-toplevel)" || exit 1

# Run file scan script
py scripts/gateway_scan/gateway_scan.py</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">#!/bin/sh</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4"># Move to the root of the git repository</span></span>
<span class="line"><span style="color: #D4D4D4">cd </span><span style="color: #CE9178">&quot;$(git rev-parse --show-toplevel)&quot;</span><span style="color: #D4D4D4"> || exit </span><span style="color: #B5CEA8">1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4"># Run file scan script</span></span>
<span class="line"><span style="color: #D4D4D4">py scripts/gateway_scan/gateway_scan.py</span></span></code></pre></div>



<p class="wp-block-paragraph">The post-checkout hook runs after switching branches. The post-merge hook runs after a merge, which also commonly happens when pulling new changes from the remote repository.</p>



<p class="wp-block-paragraph">The first command moves the terminal to the root of the Git repository. This helps ensure the script runs from the correct location, even if Git triggers the hook from within the repository.</p>



<p class="wp-block-paragraph">The second command runs the Gateway scan script:</p>



<p class="wp-block-paragraph"><em><strong>py scripts/gateway_scan/gateway_scan.py</strong></em></p>



<p class="wp-block-paragraph">Developers can also run this command manually from Bash or the command line whenever they want to trigger a Gateway file scan on demand.</p>



<p class="wp-block-paragraph">If the repository contains multiple gateways you want to automatically file scan for, add a separate set of environment variables for each gateway in the <strong>.env file</strong>, create an API key for each gateway, and then update the <strong>gateway_scan.py</strong> script following the comments, so the script knows which gateways to scan.</p>



<h2 id="h-example-script-amp-env-file" class="wp-block-heading">Example Script &amp; env. File</h2>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(3 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">Python</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#------------------Gateway Scan Trigger Script Example------------------
"""
Run script to trigger file scans for gateways.
"""
import os
from pathlib import Path
from urllib import error, request

REQUEST_TIMEOUT_SECONDS = 5

print("Syncing Ignition Gateway...", flush=True)


def load_env_file(env_path):
	"""
	Load simple KEY=value pairs from a .env file without third-party dependencies.
	"""
	if not env_path.exists():
		return

	for line in env_path.read_text(encoding="utf-8").splitlines():
		line = line.strip()

		if not line or line.startswith("#") or "=" not in line:
			continue

		key, value = line.split("=", 1)
		os.environ.setdefault(key.strip(), value.strip().strip("\"'"))


# Read in .env file
load_env_file(Path(__file__).resolve().parents&#91;2&#93; / ".env")

# Grab environment variables
# TODO: VERIFY YOUR .ENV FILE HAS THESE VARIABLES SET CORRECTLY
# CREATE ADDITIONAL ENVIRONMENT VARIABLES FOR ADDITIONAL GATEWAYS IF NEEDED
# BY COPYING THE FOLLOWING FORMAT
GATEWAY_PORT = os.getenv("HTTP_PORT_IGN")
GATEWAY_IP = os.getenv("GATEWAY_IP")
GATEWAY_API_TOKEN = os.getenv("GATEWAY_API_TOKEN")

# TODO: ADD ADDITIONAL GATEWAYS HERE IF NEEDED!
gateways = {
	"Ignition": {"ip": GATEWAY_IP, "port": GATEWAY_PORT, "token": GATEWAY_API_TOKEN}
	# Additional gateways can be added here in the same format
}

actions = &#91;"projects", "config"&#93;

def post_scan_request(url, headers):
	"""
	Post a gateway scan request and return the HTTP status code.
	"""
	req = request.Request(url, headers=headers, method="POST")

	with request.urlopen(req, timeout=REQUEST_TIMEOUT_SECONDS) as response:
		return response.status


def trigger_scans():
	"""
	Trigger scans on the specified gateways.
	"""
	for name, config in gateways.items():
		ip = config&#91;"ip"&#93;
		token = config&#91;"token"&#93;
		port = config&#91;"port"&#93;

		if not ip or not token or not port:
			var_name = "ip address" if not ip else "API token" if not token else "Port"
			print(f"Skipping {name}: Missing environment variable '{var_name}'.")
			continue

		headers = {
			"X-Ignition-API-Token": f"{token}"
		}

		for action in actions:
			# Ignition uses the final path segment to choose the scan type
			url = f""

			try:
				status_code = post_scan_request(url, headers)

				if status_code == 200:
					print(f"Success: File Scan {name} {action}")
				else:
					print(f"Failed: File Scan {name} {action} (Status: {status_code})")
			except TimeoutError:
				print(f"Timeout: {name} took too long to respond.")
			except error.HTTPError as err:
				print(f"Failed: File Scan {name} {action} (Status: {err.code})")
			except error.URLError as err:
				print(f"Connection Error: Could not reach {name} at {ip}. ({err.reason})")


if __name__ == "__main__":
	trigger_scans()

# ---------------------.env file example for one gateway--------------------
# HTTP_PORT_IGN= "your gateway's port"
# GATEWAY_IP= "your gateway's IP address"
# GATEWAY_API_TOKEN= "your gateway's API token"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">#------------------Gateway Scan Trigger Script Example------------------</span></span>
<span class="line"><span style="color: #CE9178">&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #CE9178">Run script to trigger file scans for gateways.</span></span>
<span class="line"><span style="color: #CE9178">&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #C586C0">import</span><span style="color: #D4D4D4"> os</span></span>
<span class="line"><span style="color: #C586C0">from</span><span style="color: #D4D4D4"> pathlib </span><span style="color: #C586C0">import</span><span style="color: #D4D4D4"> Path</span></span>
<span class="line"><span style="color: #C586C0">from</span><span style="color: #D4D4D4"> urllib </span><span style="color: #C586C0">import</span><span style="color: #D4D4D4"> error, request</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">REQUEST_TIMEOUT_SECONDS = </span><span style="color: #B5CEA8">5</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Syncing Ignition Gateway...&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">flush</span><span style="color: #D4D4D4">=</span><span style="color: #569CD6">True</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">def</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">load_env_file</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">env_path</span><span style="color: #D4D4D4">):</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #CE9178">&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #CE9178">	Load simple KEY=value pairs from a .env file without third-party dependencies.</span></span>
<span class="line"><span style="color: #CE9178">	&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> env_path.exists():</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #C586C0">return</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> line </span><span style="color: #C586C0">in</span><span style="color: #D4D4D4"> env_path.read_text(</span><span style="color: #9CDCFE">encoding</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;utf-8&quot;</span><span style="color: #D4D4D4">).splitlines():</span></span>
<span class="line"><span style="color: #D4D4D4">		line = line.strip()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> line </span><span style="color: #569CD6">or</span><span style="color: #D4D4D4"> line.startswith(</span><span style="color: #CE9178">&quot;#&quot;</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">or</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;=&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">in</span><span style="color: #D4D4D4"> line:</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #C586C0">continue</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">		key, value = line.split(</span><span style="color: #CE9178">&quot;=&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">		os.environ.setdefault(key.strip(), value.strip().strip(</span><span style="color: #CE9178">&quot;</span><span style="color: #D7BA7D">\&quot;</span><span style="color: #CE9178">&apos;&quot;</span><span style="color: #D4D4D4">))</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># Read in .env file</span></span>
<span class="line"><span style="color: #D4D4D4">load_env_file(Path(</span><span style="color: #9CDCFE">__file__</span><span style="color: #D4D4D4">).resolve().parents&#91;</span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">&#93; / </span><span style="color: #CE9178">&quot;.env&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># Grab environment variables</span></span>
<span class="line"><span style="color: #6A9955"># </span><span style="color: #569CD6">TODO</span><span style="color: #6A9955">: VERIFY YOUR .ENV FILE HAS THESE VARIABLES SET CORRECTLY</span></span>
<span class="line"><span style="color: #6A9955"># CREATE ADDITIONAL ENVIRONMENT VARIABLES FOR ADDITIONAL GATEWAYS IF NEEDED</span></span>
<span class="line"><span style="color: #6A9955"># BY COPYING THE FOLLOWING FORMAT</span></span>
<span class="line"><span style="color: #D4D4D4">GATEWAY_PORT = os.getenv(</span><span style="color: #CE9178">&quot;HTTP_PORT_IGN&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">GATEWAY_IP = os.getenv(</span><span style="color: #CE9178">&quot;GATEWAY_IP&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">GATEWAY_API_TOKEN = os.getenv(</span><span style="color: #CE9178">&quot;GATEWAY_API_TOKEN&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># </span><span style="color: #569CD6">TODO</span><span style="color: #6A9955">: ADD ADDITIONAL GATEWAYS HERE IF NEEDED!</span></span>
<span class="line"><span style="color: #D4D4D4">gateways = {</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #CE9178">&quot;Ignition&quot;</span><span style="color: #D4D4D4">: {</span><span style="color: #CE9178">&quot;ip&quot;</span><span style="color: #D4D4D4">: GATEWAY_IP, </span><span style="color: #CE9178">&quot;port&quot;</span><span style="color: #D4D4D4">: GATEWAY_PORT, </span><span style="color: #CE9178">&quot;token&quot;</span><span style="color: #D4D4D4">: GATEWAY_API_TOKEN}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #6A9955"># Additional gateways can be added here in the same format</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">actions = &#91;</span><span style="color: #CE9178">&quot;projects&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;config&quot;</span><span style="color: #D4D4D4">&#93;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">def</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">post_scan_request</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">headers</span><span style="color: #D4D4D4">):</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #CE9178">&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #CE9178">	Post a gateway scan request and return the HTTP status code.</span></span>
<span class="line"><span style="color: #CE9178">	&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">	req = request.Request(url, </span><span style="color: #9CDCFE">headers</span><span style="color: #D4D4D4">=headers, </span><span style="color: #9CDCFE">method</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;POST&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">with</span><span style="color: #D4D4D4"> request.urlopen(req, </span><span style="color: #9CDCFE">timeout</span><span style="color: #D4D4D4">=REQUEST_TIMEOUT_SECONDS) </span><span style="color: #C586C0">as</span><span style="color: #D4D4D4"> response:</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> response.status</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">def</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">trigger_scans</span><span style="color: #D4D4D4">():</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #CE9178">&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #CE9178">	Trigger scans on the specified gateways.</span></span>
<span class="line"><span style="color: #CE9178">	&quot;&quot;&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> name, config </span><span style="color: #C586C0">in</span><span style="color: #D4D4D4"> gateways.items():</span></span>
<span class="line"><span style="color: #D4D4D4">		ip = config&#91;</span><span style="color: #CE9178">&quot;ip&quot;</span><span style="color: #D4D4D4">&#93;</span></span>
<span class="line"><span style="color: #D4D4D4">		token = config&#91;</span><span style="color: #CE9178">&quot;token&quot;</span><span style="color: #D4D4D4">&#93;</span></span>
<span class="line"><span style="color: #D4D4D4">		port = config&#91;</span><span style="color: #CE9178">&quot;port&quot;</span><span style="color: #D4D4D4">&#93;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> ip </span><span style="color: #569CD6">or</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> token </span><span style="color: #569CD6">or</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> port:</span></span>
<span class="line"><span style="color: #D4D4D4">			var_name = </span><span style="color: #CE9178">&quot;ip address&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> ip </span><span style="color: #C586C0">else</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;API token&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> token </span><span style="color: #C586C0">else</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Port&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Skipping </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">name</span><span style="color: #569CD6">}</span><span style="color: #CE9178">: Missing environment variable &apos;</span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">var_name</span><span style="color: #569CD6">}</span><span style="color: #CE9178">&apos;.&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #C586C0">continue</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">		headers = {</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #CE9178">&quot;X-Ignition-API-Token&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;</span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">token</span><span style="color: #569CD6">}</span><span style="color: #CE9178">&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">		}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> action </span><span style="color: #C586C0">in</span><span style="color: #D4D4D4"> actions:</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #6A9955"># Ignition uses the final path segment to choose the scan type</span></span>
<span class="line"><span style="color: #D4D4D4">			url = </span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;http://</span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">ip</span><span style="color: #569CD6">}</span><span style="color: #CE9178">:</span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">port</span><span style="color: #569CD6">}</span><span style="color: #CE9178">/data/api/v1/scan/</span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">action</span><span style="color: #569CD6">}</span><span style="color: #CE9178">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #C586C0">try</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">				status_code = post_scan_request(url, headers)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> status_code == </span><span style="color: #B5CEA8">200</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Success: File Scan </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">name</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">action</span><span style="color: #569CD6">}</span><span style="color: #CE9178">&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #C586C0">else</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Failed: File Scan </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">name</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">action</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> (Status: </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">status_code</span><span style="color: #569CD6">}</span><span style="color: #CE9178">)&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #C586C0">except</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">TimeoutError</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Timeout: </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">name</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> took too long to respond.&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #C586C0">except</span><span style="color: #D4D4D4"> error.HTTPError </span><span style="color: #C586C0">as</span><span style="color: #D4D4D4"> err:</span></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Failed: File Scan </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">name</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">action</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> (Status: </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">err.code</span><span style="color: #569CD6">}</span><span style="color: #CE9178">)&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #C586C0">except</span><span style="color: #D4D4D4"> error.URLError </span><span style="color: #C586C0">as</span><span style="color: #D4D4D4"> err:</span></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Connection Error: Could not reach </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">name</span><span style="color: #569CD6">}</span><span style="color: #CE9178"> at </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">ip</span><span style="color: #569CD6">}</span><span style="color: #CE9178">. (</span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">err.reason</span><span style="color: #569CD6">}</span><span style="color: #CE9178">)&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">__name__</span><span style="color: #D4D4D4"> == </span><span style="color: #CE9178">&quot;__main__&quot;</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">	trigger_scans()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># ---------------------.env file example for one gateway--------------------</span></span>
<span class="line"><span style="color: #6A9955"># HTTP_PORT_IGN= &quot;your gateway&apos;s port&quot;</span></span>
<span class="line"><span style="color: #6A9955"># GATEWAY_IP= &quot;your gateway&apos;s IP address&quot;</span></span>
<span class="line"><span style="color: #6A9955"># GATEWAY_API_TOKEN= &quot;your gateway&apos;s API token&quot;</span></span></code></pre></div>



<h2 id="h-conclusion" class="wp-block-heading" style="padding-top:var(--wp--preset--spacing--40)">Conclusion</h2>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">Automating file syncs in Ignition 8.3 is a simple configuration change that can deliver meaningful improvements to your development workflow. By reducing manual steps and ensuring the Gateway always reflects the latest project state, teams can work more efficiently and with greater confidence. For engineers using Git to manage their Ignition projects, this approach unlocks the full benefits of modern version control while keeping SCADA development reliable and consistent.</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>Starting an Ignition project? DMC can help you take the next step.</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">Find out more about our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" target="_blank" rel="noreferrer noopener">Manufacturing Automation</a> and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/" target="_blank" rel="noreferrer noopener">SCADA programming</a> solutions and reach out to an expert today.</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"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/44721/ignition-8-3-gateway-file-sync-git/">Triggering Gateway File Syncs for Ignition 8.3 Using Git Hooks</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Commission a WinCC Unified Comfort Panel</title>
		<link>https://static.dmcinfo.com/blog/44303/wincc-unified-comfort-panel-commissioning-settings/</link>
		
		<dc:creator><![CDATA[Jackson Seida]]></dc:creator>
		<pubDate>Wed, 20 May 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[Siemens]]></category>
		<category><![CDATA[Siemens HMI]]></category>
		<category><![CDATA[WinCC Comfort]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=44303</guid>

					<description><![CDATA[<p>Commissioning a WinCC Unified Comfort Panel is one of the last and most critical steps in completing an HMI project. A smooth commissioning process ensures secure communication, reliable runtime behavior, and a system prepared for long-term operation. In this guide, we walk through the essential steps for downloading, configuring, and commissioning a WinCC Unified Comfort [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/44303/wincc-unified-comfort-panel-commissioning-settings/">How to Commission a WinCC Unified Comfort Panel</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Commissioning a WinCC Unified Comfort Panel is one of the last and most critical steps in completing an HMI project. A smooth commissioning process ensures secure communication, reliable runtime behavior, and a system prepared for long-term operation.<a></a></p>



<p class="wp-block-paragraph">In this guide, we walk through the essential steps for downloading, configuring, and commissioning a WinCC Unified Comfort Panel using Siemens TIA Portal. You will learn how to set network parameters, configure users and security, enable encrypted transfers, and successfully load your project to the device. As <a href="https://static.dmcinfo.com/blog/16495/setting-up-basic-user-profiles-and-login-for-wincc-unified-runtime/">Siemens Solutions Partners</a>, we also provide tips for common commissioning tasks to save time and prevent headaches in the field.</p>



<p class="wp-block-paragraph">All example screenshots were captured using TIA Portal V20 and an MTP700 Unified Comfort Panel (6AV2 128-3GB06-0AX1), but the same concepts apply across the WinCC Unified Comfort Panel family.<a id="_msocom_1"></a></p>



<h2 id="h-pre-requisites" class="wp-block-heading">Pre-requisites</h2>



<p class="wp-block-paragraph">Before you begin commissioning, your system must meet certain prerequisites. For instance, your TIA Portal project must be set up with the appropriate hardware, network connections, and screens developed, and your WinCC Unified Comfort Panel must be powered on. Here is how you download your project and commission your WinCC Unified Comfort Panel.</p>



<h2 id="h-change-ip-address" class="wp-block-heading">Change IP Address</h2>



<p class="wp-block-paragraph">On the WinCC Unified Comfort Panel, go to <strong>Network and Internet</strong>, then <strong>Network settings</strong>. Here, select the port you wish to set the IP address for, then select <strong>Specify an IP address</strong>. Enter your desired IP address and subnet mask and click the <strong>Set IP address</strong> button.</p>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="801" height="479" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-1.png" alt="The network settings configuration screen for a Siemens SIMATIC HMI Unified Comfort panel displaying an IP address and Subnet mask." class="has-border-color wp-image-44316" style="border-color:#dfe6ee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.6179264636263215;object-fit:cover;width:798px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-1.png 801w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-1-300x179.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-1-768x459.png 768w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<h2 id="h-configure-users" class="wp-block-heading">Configure Users</h2>



<p class="wp-block-paragraph">To configure users, go to <strong>“Security settings” > “Users and roles”</strong> in the TIA Portal project tree. From there, create an administrator user, set a password, and assign it all roles. Feel free to learn more about Users and roles, by <a href="https://static.dmcinfo.com/blog/16495/setting-up-basic-user-profiles-and-login-for-wincc-unified-runtime/" type="link" id="https://static.dmcinfo.com/blog/16495/setting-up-basic-user-profiles-and-login-for-wincc-unified-runtime/">seeing a previous guide</a> about setting up basic user profiles for WinCC Unified Runtime.</p>



<figure class="wp-block-image aligncenter size-full is-resized" style="margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="1919" height="1038" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-2.png" alt="Siemens TIA Portal V20 user management configuration screen for a Unified Comfort Panel showing create password dialogue box." class="wp-image-44317" style="aspect-ratio:1.8487790131335864;width:1174px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-2.png 1919w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-2-300x162.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-2-1024x554.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-2-768x415.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-2-1536x831.png 1536w" sizes="(max-width: 1919px) 100vw, 1919px" /></figure>



<h2 id="h-configure-encrypted-transfer" class="wp-block-heading">Configure Encrypted Transfer</h2>



<p class="wp-block-paragraph">An encrypted transfer ensures secure download of project files to your WinCC Unified Comfort Panel. On the panel, navigate to <strong>Service and commissioning &gt; Transfer</strong>. Enable the <strong>Enable transfer</strong> checkbox and create a password.</p>



<p class="wp-block-paragraph">In TIA Portal, go to <strong>Runtime settings</strong> under your HMI. In the <strong>General</strong> section, enable the <strong>Activate encrypted transfer</strong> checkbox and enter the same password that you created on your WinCC Unified Comfort Panel.</p>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="801" height="479" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-3.png" alt="This screen is from the Siemens SIMATIC HMI Unified Comfort panel's Service and Commissioning menu with a red box around 'Enable transfer' and a password field." class="has-border-color wp-image-44318" style="border-color:#dfe6ee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-3.png 801w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-3-300x179.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-3-768x459.png 768w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<h2 id="h-download-to-the-unified-comfort-panel" class="wp-block-heading">Download to the Unified Comfort Panel</h2>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">Finally, it is time to download your developed screens and configured TIA Portal project to the WinCC Unified Comfort Panel. To do so, click on your HMI in the Project tree, then click the <strong>Download</strong> button in the toolbar. This opens the <strong>Extended download to device</strong> window.</p>



<figure class="wp-block-image aligncenter size-full is-resized" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="1919" height="1040" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-4.png" alt="The General runtime settings for a Siemens SIMATIC HMI Unified Comfort Panel within the TIA Portal engineering software." class="wp-image-44319" style="aspect-ratio:1.8450605075257283;width:1146px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-4.png 1919w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-4-300x163.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-4-1024x555.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-4-768x416.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-4-1536x832.png 1536w" sizes="(max-width: 1919px) 100vw, 1919px" /></figure>



<p class="wp-block-paragraph" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)">From here, set the <strong>Type of PG/PC Interface</strong> to PN/IE, and the <strong>PG/PC Interface</strong> to your network adapter, and click <strong>Start search</strong>. If you do not see your device, you can see all compatible devices by selecting the drop-down menu above the table of possible target devices and choosing <strong>Show all compatible devices</strong>. When you see your HMI appear in the table, select it and click <strong>Load</strong>.</p>



<figure class="wp-block-image aligncenter size-full is-resized" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="1919" height="1040" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-5.png" alt="Siemens TIA Portal software interface during an &quot;Extended download to device&quot; operation." class="wp-image-44320" style="width:1164px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-5.png 1919w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-5-300x163.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-5-1024x555.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-5-768x416.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-5-1536x832.png 1536w" sizes="(max-width: 1919px) 100vw, 1919px" /></figure>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">In the <strong>Load preview</strong> window, select <strong>Full download</strong> and click <strong>Load</strong>. Check to ensure that the option to download all users and authentication settings is selected. If successful, you should then see your TIA Portal screens loaded onto the WinCC Unified Comfort Panel!</p>



<figure class="wp-block-image aligncenter size-full is-resized" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="790" height="469" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-6.png" alt="Load Preview dialog box in Siemens TIA Portal software, showing the steps required to transfer a project to an HMI device." class="wp-image-44321" style="width:800px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-6.png 790w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-6-300x178.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-6-768x456.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></figure>



<h2 id="h-trusting-the-plc-communication-certificate" class="wp-block-heading">Trusting the PLC Communication Certificate</h2>



<p class="wp-block-paragraph">By default, the <strong>Only allow secure PG/PC and HMI communication</strong> setting in your TIA Portal project for your PLC is enabled. Enabling this means that during the download of your TIA Portal Project to the PLC and HMI, a PLC communication certificate will be automatically generated and transferred to your WinCC Unified Comfort Panel. But this PLC communication certificate needs to be trusted by completing the following steps.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">Go to <strong>Security&gt;Certificates</strong> on the WinCC Unified Comfort Panel. In the <strong>Certificate store</strong> dropdown menu, <strong>select Other Certificates</strong>. Here you should see your certificate, and press <strong>Trust</strong>. Then, restart the HMI runtime software.</p>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="801" height="479" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-7.png" alt="Security &gt; Certificates section of a Siemens SIMATIC HMI Unified Comfort Panel configuration screen with 'Other Certificates' selected form a Certificates dropdown menu," class="has-border-color wp-image-44322" style="border-color:#dfe6ee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-7.png 801w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-7-300x179.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-7-768x459.png 768w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<h2 id="h-additional-settings-to-apply-to-your-hmi-panel" class="wp-block-heading">Additional Settings to Apply to Your HMI Panel</h2>



<p class="wp-block-paragraph">Beyond core commissioning steps, there are a handful of additional settings that can be helpful for further improving system reliability and maintainability. While they aren&#8217;t required for every project, these settings are commonly used to help reduce downtime, manage system access, and recover information and settings in the event of outages or reboots. Consider the settings below as they apply to your unique project requirements. Storage Device Set Up</p>



<h3 id="h-storage-device-set-up" class="wp-block-heading">Storage Device Set Up</h3>



<p class="wp-block-paragraph">When commissioning a WinCC Unified Comfort Panel, it is often recommended to activate the <strong>Automatic Backup</strong> option. This will ensure that the HMI device&#8217;s data is backed up to the storage device. If the WinCC Unified Comfort Panel becomes inoperable, you can simply purchase a replacement and insert it into the new HMI to resume operation.</p>



<p class="wp-block-paragraph">To do this, slot in a SIMATIC HMI Memory (SD) Card into the X50&nbsp;SYSTEM slot of the Unified Comfort Panel. Note, the system memory card of the comfort panel must be a SIMATIC HMI Memory Card.</p>



<p class="wp-block-paragraph">Slotting in the storage device will cause a <strong>System memory card plugged</strong> dialog window to pop up. Click <strong>OK</strong>. This takes you to the settings <strong>Service and Commissioning/ Automatic Backup</strong> screen.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--20)">Here, click the <strong>Start</strong> button, and <strong>OK</strong> in the <strong>Start automatic backup</strong> dialog window to activate Automatic Backups. Once preparation is complete, the <strong>Status</strong> box will display automatic backup active.</p>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="801" height="479" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-8.png" alt="Automatic backup status with the 'Start' button highlighted." class="has-border-color wp-image-44323" style="border-color:#dfe6ee;border-width:2px;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:800px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-8.png 801w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-8-300x179.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-8-768x459.png 768w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<h3 id="h-restrict-control-panel-access" class="wp-block-heading"><strong>Restrict Control Panel Access</strong></h3>



<p class="wp-block-paragraph">To limit access to certain system settings, go to <strong>Security</strong> and <strong>Control panel access</strong> on the WinCC Unified Comfort Panel and click the checkbox to <strong>Enable password protection for control panel</strong>. This option requires a user with proper access to log in to use the WinCC Control panel, reducing the risk of accidental or unauthorized changes.</p>



<h3 id="h-automatic-runtime-start" class="wp-block-heading"><strong>Automatic Runtime Start</strong></h3>



<p class="wp-block-paragraph">To set a delay time before the automatic start of a project, click the icon with a wrench and a play button. This will open the Runtime Properties page. Locate the <strong>Automatic runtime start</strong> section and select a time from the &#8220;Waiting time(s)&#8221; dropdown menu. This is a very helpful setting to allow for some time before the automatic start to access the control panel.</p>



<h3 id="h-enable-smart-server-access" class="wp-block-heading">Enable Smart Server Access</h3>



<p class="wp-block-paragraph">Enabling <strong>Smart Server Access</strong> allows VNC access to the WinCC Unified Comfort Panel.</p>



<p class="wp-block-paragraph">To enable<strong> this setting</strong> in TIA Portal, go to <strong>Runtime settings</strong>, &gt; <strong>Remote Access</strong>, &gt; &nbsp;<strong>Smart Server</strong>. Click the <strong>Enable Smart Server</strong> checkbox. You must then configure unique passwords for each User1 and User2.</p>



<p class="wp-block-paragraph">If you wish to allow a user with that password to access the WinCC Unified Comfort Panel, click the <strong>Authorize User# for remote access to the panel</strong> checkbox. Upon your next download, the <strong>Smart Server</strong> will be enabled on the WinCC Unified Comfort Panel.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="1919" height="1045" src="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-9-1.png" alt="WinCC Unified Sm@rtServer configuration settings for a Siemens SIMATIC HMI Unified Comfort Panel with user password fields highlighted." class="wp-image-44370" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-9-1.png 1919w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-9-1-300x163.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-9-1-1024x558.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-9-1-768x418.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/05/wincc-unified-comort-image-9-1-1536x836.png 1536w" sizes="(max-width: 1919px) 100vw, 1919px" /></figure>



<h3 id="h-firmware-updates" class="wp-block-heading"><strong>Firmware updates</strong></h3>



<p class="wp-block-paragraph">Depending on the panel and the version of TIA Portal you are using, you may need to update the device firmware prior to commissioning. If this is the case, follow these steps:</p>



<ol style="padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)" class="wp-block-list">
<li style="padding-top:0;padding-bottom:var(--wp--preset--spacing--40)">It can be helpful to connect to the maintenance port on the HMI (PN-X2).</li>



<li style="padding-top:0;padding-bottom:var(--wp--preset--spacing--40)">Right-click the HMI in the Project Tree while the device is offline. Go to HMI device maintenance and select Update operating system.</li>



<li>TIA Portal will now prompt you to connect to the HMI via ethernet. Enter the IP address of the PN-X2 port. A pop-up with a progress bar should appear on the HMI, and a pop-up will appear on TIA Portal stating the firmware is being transferred.</li>
</ol>



<h3 id="h-date-and-time" class="wp-block-heading"><strong>Date and time</strong></h3>



<p class="wp-block-paragraph">Operators can also set a date and time on their panel by clicking the world icon in the sidebar menu. This will open the <strong>Language, Region and Formats/Date and time</strong> UI, allowing you to set your local date and time.</p>



<h2 id="h-synchronizing-time" class="wp-block-heading">Synchronizing Time</h2>



<p class="wp-block-paragraph">If the clocks between the HMI and PLC are not synchronized, HMI communication may be limited or blocked. If the HMI still cannot read tags from the PLC after following the steps above, first ensure the correct time zone is selected for the PLC. Then check the clock on the PLC through Online and Diagnostics. Under <strong>Functions &gt; Set Time</strong>, select <strong>Take from PG/PC Interface</strong> to synchronize the PLC with your PC.</p>



<h2 id="h-conclusion" class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Commissioning a WinCC Unified Comfort Panel is about more than getting screens to load. Proper network configuration, security settings, and runtime behavior all play a critical role in building a reliable, maintainable HMI system. By taking the time to configure encrypted transfers, user access, certificates, and startup behavior correctly, you set your system up for long-term success in the field.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--60)">Whether you are bringing a new HMI online, modernizing an existing system, or troubleshooting communication and security challenges, we can support you at any stage of the project. Partner with DMC to streamline your Siemens automation efforts and commission your systems with confidence.</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">Need help with an upcoming project? DMC can help you take the next step.</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">Move your next project forward with DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/">Automation</a> experts to commission your next <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/siemens-simatic-wincc-programming/">HMI project</a> and design reliable systems that scale your operations.</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"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/44303/wincc-unified-comfort-panel-commissioning-settings/">How to Commission a WinCC Unified Comfort Panel</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ignition 8.3–What’s New and Reasons to Upgrade Your Project</title>
		<link>https://static.dmcinfo.com/blog/15670/ignition-8-3-whats-new-and-reasons-to-upgrade-your-project/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 13 Feb 2025 16:48:10 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/15670/ignition-8-3-whats-new-and-reasons-to-upgrade-your-project/</guid>

					<description><![CDATA[<p>Ignition 8.3 is almost here, delivering a wave of powerful new features and enhancements that will make it the most advanced version of Ignition yet. Whether you&#8217;re looking for improved performance, enhanced security, or game-changing new tools, Ignition 8.3 delivers innovations that can transform the way you design, deploy, and manage your industrial applications. From [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15670/ignition-8-3-whats-new-and-reasons-to-upgrade-your-project/">Ignition 8.3–What’s New and Reasons to Upgrade Your Project</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ignition 8.3 is almost here, delivering a wave of powerful new features and enhancements that will make it the most advanced version of Ignition yet. Whether you&#8217;re looking for improved performance, enhanced security, or game-changing new tools, Ignition 8.3 delivers innovations that can transform the way you design, deploy, and manage your industrial applications.</p>



<p class="wp-block-paragraph">From cutting-edge visualization capabilities to streamlined development workflows, this release is packed with upgrades that make it easier than ever to build scalable, efficient, and future-proof systems. In this blog, we’ll dive into the most exciting features of Ignition 8.3 and explore why upgrading to this latest version is a smart move for any organization looking to stay ahead in the world of industrial automation.</p>



<h2 id="h-technical-improvements-and-new-features" class="wp-block-heading">Technical Improvements and New Features</h2>



<p class="wp-block-paragraph">The new improvements of Ignition 8.3 can be classified into three broad categories: Applications, Power Historian, and Infrastructure. Each category contains improvements in current features and new features that will be valuable to users. Some features that we are particularly excited about are the event streams, power historian, new Siemens driver, and improved GIT integration. Read on for a detailed look at these exciting features in version 8.3.&nbsp;</p>



<h3 id="h-applications-nbsp" class="wp-block-heading">Applications&nbsp;</h3>



<p class="wp-block-paragraph">The application improvements encompass changes to the Designer and the Gateway that will make the day-to-day development of Ignition a breeze.</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Perspective Drawing Tools</h4>



<p class="wp-block-paragraph">The highly anticipated Perspective Drawing Tools have arrived in Ignition 8.3! This release introduces powerful new Drawing Tools alongside a native Drawing Editor, providing a seamless way to create and manage graphics within Perspective. Featuring a robust vector drawing package, these tools make it easier than ever to integrate Scalable Vector Graphics (SVGs) into your projects. Plus, with native binding integration, animating elements has never been more intuitive—enabling developers to craft dynamic, interactive visualizations with ease.&nbsp;</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Perspective Forms</h4>



<p class="wp-block-paragraph">The new Perspective Forms component brings a powerful and flexible way to capture and manage user input. This component allows users to configure the fields in the form, including its layout and validation process to suit the user’s needs. Forms being a popular way of capturing data makes this component an exciting one. Not only will it make the visuals look more consistent, but will also make it easy to handle submissions and validations for the data.&nbsp;</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Perspective Offline Mode</h4>



<p class="wp-block-paragraph">Offline Mode enables users to collect data even without an active network connection. Once the system reconnects, the data is seamlessly synchronized with the Gateway. This feature is particularly useful for entering data in remote locations where network service is unavailable.&nbsp;</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Event Streams</h4>



<p class="wp-block-paragraph">This new feature in Ignition 8.3 is a way to trigger data flow through the system and can function as a method of communication within and outside of Ignition. Event streams get triggered from a source which can be a message handler, API endpoint, Kafka, etc. The event source then goes into the Data Filter &amp; Transform where you can add scripts or filters to your data to massage and transform the data between the source and the handler. Finally, the data goes to the Data Buffer and then the handler sends the data to its destination. &nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/ignition-event-streams.png" alt="Event Streams in Ignition"/></figure>



<p class="wp-block-paragraph">Event Streams are a big shift in the way data is handled in Ignition. This powerful new architecture unifies multiple data sources into a seamless, event-driven framework. By consolidating these elements, Event Streams provides a more efficient and dynamic way to handle data throughout your system. Additionally, with robust error handling methods and a built-in test mode, it makes it easier for developers to build robust data pipelines.</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">New Gateway UI</h4>



<p class="wp-block-paragraph">With the intent to make Gateway UI work better at scale, Ignition 8.3 is going to have a new Gateway UI designed from scratch. It will have improved search functionality and bulk editing capabilities to make finding and changing gateway configurations a lot easier.&nbsp;</p>



<h3 id="h-power-historian-nbsp" class="wp-block-heading">Power Historian&nbsp;</h3>



<p class="wp-block-paragraph">Ignition 8.3 introduces a new Historian, streamlining the implementation of the Ignition Historian. The Power Historian enhances integration with platforms like Snowflake and Influx while removing the need for a history splitter between local and remote historians. Good news for the Power Historian is that it is included in the existing Historian Module, so existing users with a support contract will get it when they upgrade to 8.3!&nbsp;</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Features&nbsp;</h4>



<ul class="wp-block-list">
<li>Supports ~2M tags ingested as compared to ~500k in the existing historian</li>



<li>Easy configuration&nbsp;</li>



<li>Richer data modeling capabilities&nbsp;</li>



<li>Open source and cross-platform integration&nbsp;</li>



<li>Ability to change the path of a tag without losing history</li>
</ul>



<p class="wp-block-paragraph">Probably one of the most exciting features of Ignition 8.3, the Power Historian will add a lot of value to projects due to its greatly improved capacity and performance. &nbsp;</p>



<h3 id="h-infrastructure-nbsp" class="wp-block-heading">Infrastructure&nbsp;</h3>



<p class="wp-block-paragraph">With Ignition 8.3, IA also promises to bring about “the new SCADA” which include a lot of improvements that we as developers are very excited about. It includes the following new infrastructure features.</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Source Control Compatibility and Secret Provider</h4>



<p class="wp-block-paragraph">Source control compatibility is another much-awaited feature added to Ignition 8.3. Along with making collaboration and deployments easier, this feature will also make projects more secure with its secrets management functionality. This feature includes: &nbsp;</p>



<ul class="wp-block-list">
<li>
<p class="wp-block-paragraph">New file structure and configuration will enable source control compatibility (easy integration into Git and other platforms).&nbsp;</p>
</li>



<li>
<p class="wp-block-paragraph">Source control will also have a Secret Provider capability to keep confidential information such as passwords, keys, and bearer tokens safe.&nbsp;</p>
</li>



<li>
<p class="wp-block-paragraph">Secrets management also makes it easier to change passwords since every password usage can be linked to a location in the Secret Provider.</p>
</li>
</ul>



<h3 id="h-gateway-settings-configuration-via-rest-api" class="wp-block-heading"><em>Gateway Settings Configuration via REST API</em></h3>



<p class="wp-block-paragraph">Gateway settings can be configured via scripting and Ignition will autogenerate a REST API schema document based on the modules installed on the Gateway.&nbsp;</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Deployment Modes</h4>



<p class="wp-block-paragraph">The deployment modes promise to be a huge improvement for the developers and process owners alike. This will give the system the ability to run a Gateway in different modes with alternate settings will make developing, testing and deploying a smoother process.&nbsp;</p>



<ul class="wp-block-list">
<li>
<p class="wp-block-paragraph">Users can now define any number of modes on the Gateway to enable ease of deployment across modes.&nbsp;</p>
</li>



<li>
<p class="wp-block-paragraph">In each mode (for instance Development, Staging and Production), users can define alternative settings for any configuration.&nbsp;</p>



<ul class="wp-block-list">
<li>
<p class="wp-block-paragraph">For instance, Development mode could be set up to use a Simulator while Production mode interacts with an actual device.&nbsp;</p>
</li>
</ul>
</li>



<li>
<p class="wp-block-paragraph">All production modes are stored in a single gateway backup. This means one Gateway backup can be used across all Gateways and eliminates the need for tracking differences between Gateways.&nbsp;</p>
</li>
</ul>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Updates to OPC-UA</h4>



<p class="wp-block-paragraph">With the new Ignition version, users can specify which tags to share with specific OPC UA clients. OPC events will also be added to event streams and will be logged on to the Gateway.&nbsp;</p>



<h4 class="wp-block-heading" style="font-style: italic; font-size: 18pt;">Other New Features</h4>



<ul class="wp-block-list">
<li>New Siemens S7+ driver will have the capability to browse PLCs for tags with symbolic addressing capability</li>



<li>Twilio voice notification and Whatsapp integration&nbsp;</li>



<li>Improved Alarm Aggregation and Security&nbsp;</li>



<li>Improved searching and filtering across Gateway and Designer&nbsp;</li>



<li>Kafka integration&nbsp;</li>



<li>Kubernetes integration with Helm Charts&nbsp;</li>
</ul>



<p class="wp-block-paragraph">Ignition 8.3 promises to be a significant step up in the SCADA platform’s capabilities!&nbsp;</p>



<h2 id="h-why-should-you-upgrade-nbsp" class="wp-block-heading">Why Should You Upgrade&nbsp;</h2>



<p class="wp-block-paragraph">Still on the fence about upgrading to Ignition 8.3? Beyond the exciting new features, we talked about above, here are some key details to help you decide if an upgrade is right for you.&nbsp;</p>



<p class="wp-block-paragraph">First, the upgrade process will be seamless from 8.1 Gateways. If you&#8217;re running an older version, it&#8217;s best to upgrade to 8.1 first before making the jump to 8.3.&nbsp;</p>



<p class="wp-block-paragraph">Additionally, 8.3 is expected to have long-term version support and regular updates. With the release of 8.3, it is expected that releases for 8.1 will slow down and be mainly focused on bug fixes and security updates. While 8.1 is expected to be supported through 2028, active support for 8.1 will end in 2026–meaning now is the time to start planning your transition.&nbsp;</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">Ready to take advantage of Ignition 8.3’s newest features and improvements?</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">DMC’s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/" data-type="page" data-id="509">Ignition-certified experts</a> can help you upgrade, ensuring your <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/" data-type="page" data-id="497">SCADA and HMI systems</a> remain secure for your <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" data-type="page" data-id="420">Automation</a> 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/15670/ignition-8-3-whats-new-and-reasons-to-upgrade-your-project/">Ignition 8.3–What’s New and Reasons to Upgrade Your Project</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ten Tips and Tricks for Iconics Genesis 64</title>
		<link>https://static.dmcinfo.com/blog/36720/ten-tips-and-tricks-for-iconics-genesis-64/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 05 Dec 2024 22:05:00 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=36720</guid>

					<description><![CDATA[<p>Iconics Genesis 64 is a powerful SCADA platform used for a vast variety of automation applications. Whether this is your first time working with Iconics Genesis or if you have been working with it for a while, here are ten useful tips and tricks that everyone working with Iconics should know.&#160; 1. Ctrl+m Hot Key [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/36720/ten-tips-and-tricks-for-iconics-genesis-64/">Ten Tips and Tricks for Iconics Genesis 64</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/iconics-programming/">Iconics Genesis 64</a> is a powerful SCADA platform used for a vast variety of automation applications. Whether this is your first time working with <a href="https://iconics.com/en-us/">Iconics Genesis</a> or if you have been working with it for a while, here are ten useful tips and tricks that everyone working with Iconics should know.&nbsp;</p>



<h2 class="wp-block-heading" id="h-1-ctrl-m-hot-key-for-runtime">1. Ctrl+m Hot Key for Runtime</h2>



<p class="wp-block-paragraph">Quickly entering and exiting runtime is the most effective method for testing the screen&#8217;s functionality. The fastest way to do this is to simply hit Ctrl + M from inside GraphWorx. Once inside the runtime, the only way to exit the runtime is to hit Ctrl + M once again. &nbsp;</p>



<h2 class="wp-block-heading" id="h-2-find-and-replace-through-all-screens-at-once-with-ctrl-f-and-ctrl-h">2. Find and Replace Through All Screens at Once with Ctrl+F and Ctrl+H</h2>



<p class="wp-block-paragraph">Need to search through all your screens at once? Simply hit CTRL + F while NOT inside the scripting window to display the popup shown below. Select what “Type” you want to find from the “Find Type” section. Next, choose if you want to search the current open section, the current display, or multiple files. If searching through multiple files, either add your files individually or the folder containing the relevant files. Add in your keyword and search. Note, other screens will open, so be sure to save the current screen before leaving it.&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="504" height="428" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Find.png" alt="iconics genesis 64 find" class="wp-image-36722" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Find.png 504w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Find-300x255.png 300w" sizes="(max-width: 504px) 100vw, 504px" /></figure>



<p class="wp-block-paragraph">If you are trying to replace an item instead of finding it, hit CTRL+H instead. All the steps will be the same, except there will be an extra text entry section for what you want to replace the text with.&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="534" height="460" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Replace.png" alt="iconics genesis 64 replace" class="wp-image-36723" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Replace.png 534w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Replace-300x258.png 300w" sizes="(max-width: 534px) 100vw, 534px" /></figure>



<h2 class="wp-block-heading" id="h-3-calling-script-or-event-an-opening-a-screen">3. Calling Script or Event an Opening a Screen</h2>



<p class="wp-block-paragraph">Calling an event on a screen opening can be quite useful. Often, there are values or connections that need to be initialized when a screen is called. To set this up, add a button to the screen and set the initial click to true.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="272" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Call-Script.png" alt="iconics genesis 64 call script" class="wp-image-36724" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Call-Script.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Call-Script-300x131.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">From here, you can add your event or script that should be called at the screen opening. Next, turn off the button’s visibility in the project explorer on the left side. Now the button won’t be interactable from the user, but will still call the startup action or script when the screen is opened. &nbsp;</p>



<h2 class="wp-block-heading" id="h-4-can-t-add-a-script-to-a-button">4. Can&#8217;t Add a Script to a Button?</h2>



<p class="wp-block-paragraph">Are you unable to find a function you wrote from the “RunScript” drop-down?&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="228" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Script-to-Button.png" alt="iconics genesis 64 script to button" class="wp-image-36725" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Script-to-Button.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Script-to-Button-300x110.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">That is because the function needs the following parameters to be passed in: &nbsp;</p>



<p class="wp-block-paragraph">sender : System.Object, cmdArgs : Ico.Gwx.CommandExecutionEventArgs&nbsp;</p>



<p class="wp-block-paragraph">Now, the script should be able to be linked to the “RunScript” drop-down.&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="228" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Script-Linked.png" alt="iconics genesis 64 script linked" class="wp-image-36728" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Script-Linked.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Script-Linked-300x110.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<h2 class="wp-block-heading" id="h-5-c-syntax-to-get-close">5. C# Syntax to Get Close</h2>



<p class="wp-block-paragraph">If you are new to coding in JavaScript. net and unsure of how to get started, C# is a similar language, as they are both .NET languages. Be warned, the two languages do have some differences, and some fine-tuning and error fixing will be required. Luckily, Iconics has built-in error checking!&nbsp;</p>



<h2 class="wp-block-heading" id="h-6-check-for-errors-in-script">6. Check for Errors in Script</h2>



<p class="wp-block-paragraph">In the top ribbon of the code view window, there is an error checking button. &nbsp;</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="624" height="92" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Error-Checking.png" alt="iconics genesis 64 error checking" class="wp-image-36729" style="width:665px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Error-Checking.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Error-Checking-300x44.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">This button will scan through the script and check for any syntax errors. If there are any errors within the script, the first error will be displayed at the bottom of the window.&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="164" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Error-Display.png" alt="iconics genesis 64 error display" class="wp-image-36730" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Error-Display.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Error-Display-300x79.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Please note that this only checks for syntax, and bugs and invalid function calls will not be flagged.&nbsp;</p>



<h2 class="wp-block-heading" id="h-7-adding-variables-into-workbench-sql">7. Adding Variables into Workbench SQL</h2>



<p class="wp-block-paragraph">When querying from SQL, it is often useful to insert variables so that the query can be dynamically modified. To implement this, within the workbench, add the ‘@’ to declare that the following is a variable that will be defined later.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="472" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Workbench-SQL.png" alt="iconics genesis 64 workbench sql" class="wp-image-36731" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Workbench-SQL.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Workbench-SQL-300x227.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">This can be utilized within the script by adding a string to the SQL call. &nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="42" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-SQL-Call.png" alt="iconics genesis 64 SQL call" class="wp-image-36732" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-SQL-Call.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-SQL-Call-300x20.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">This line sets the variable “@Second” to “World”, modifying the query to “SELECT [first] FROM dbo.Table_2 where second = World.” &nbsp;</p>



<h2 class="wp-block-heading" id="h-8-inserting-variables-into-sql-calls">8. Inserting Variables into SQL Calls</h2>



<p class="wp-block-paragraph">This can be further dynamized by turning the string that is being passed in, in this case “World”, into a variable. &nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="78" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Inserting-Variables.png" alt="iconics genesis 64 inserting variables" class="wp-image-36733" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Inserting-Variables.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Inserting-Variables-300x38.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">This is a simple use case, but the ability to pass variables into SQL queries from a script enables more complex usage, such as passing in user data and retrieving the relevant information.&nbsp;</p>



<h2 class="wp-block-heading" id="h-9-how-to-find-workbench-sql-path">9. How to Find Workbench SQL Path</h2>



<p class="wp-block-paragraph">Trying to find the correct path for SQL data sources or modifiers in the workbench can be challenging, and typos can be difficult to identify. An easy way to copy this path is to add a process point and click the ellipse next to “data source.”&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="396" height="426" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Find-Path.png" alt="iconics genesis 64 find path" class="wp-image-36734" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Find-Path.png 396w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Find-Path-279x300.png 279w" sizes="(max-width: 396px) 100vw, 396px" /></figure>



<p class="wp-block-paragraph">From here, navigate to the data source or modifier from the drop-down menu.&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="286" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Naviage.png" alt="iconics genesis 64 navigate" class="wp-image-36735" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Naviage.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Naviage-300x138.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Now, the process point’s data source will have the appropriate path to the selected data source or modifier.&nbsp;</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="624" height="40" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Data-Source.png" alt="iconics genesis 64 data source" class="wp-image-36736" style="width:1200px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Data-Source.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/Iconics-Genesis-64-Data-Source-300x19.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">This can be copy and pasted into a script and will then point to relevant spot in workbench. &nbsp;</p>



<h2 class="wp-block-heading" id="h-10-locked-out-of-a-local-instance-of-iconics-genesis-64">10. Locked out of a Local Instance of Iconics Genesis 64?</h2>



<p class="wp-block-paragraph">This trick only works if you are working on a local instance. If you exceed the number of login attempts, you will be locked out of the account you are using. &nbsp;</p>



<p class="wp-block-paragraph">If the Iconics configuration SQL database is local, you can access it through Microsoft SQL Server Management Studio. Once you connect to your local server, two databases should appear, “IcoSetup” and “IcoUnifiedConfig.” We care about the latter. Open IcoUnifiedConfig and then open the Tables subsection. Scroll through until you find dbo.SEC_Users, right click and hit “Edit Top 200 Rows.” If there are more than 200 users on your server, this will not work, and you will have to use a SQL query to modify the value. Once the page is open, scroll until you find the relevant username, move over to the “AccountLocked” column, and change this value from True to False. You may need to restart Iconics, but your account should no longer be locked!&nbsp;</p>



<p class="wp-block-paragraph"><strong>Learn more about DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/iconics-programming/">Iconics programming</a> expertise and <a href="https://static.dmcinfo.com/contact">contact us</a> for your next project.</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/36720/ten-tips-and-tricks-for-iconics-genesis-64/">Ten Tips and Tricks for Iconics Genesis 64</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC Wins the 2024 ICC Build-a-Thon</title>
		<link>https://static.dmcinfo.com/blog/15927/dmc-wins-the-2024-icc-build-a-thon/</link>
		
		<dc:creator><![CDATA[Elizabeth Hill Reed]]></dc:creator>
		<pubDate>Mon, 14 Oct 2024 10:50:26 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Ignition]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/15927/dmc-wins-the-2024-icc-build-a-thon/</guid>

					<description><![CDATA[<p>DMC’s team was proud to win first place at the Ignition Community Conference (ICC) 2024 Build-a-thon in Folsom, CA. After finishing first in a field of 24 Premier Integrators in a preliminary round, we faced BIJC Ltd in the final round of the competition to build a solution in two short days. &#160; Congratulations to [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15927/dmc-wins-the-2024-icc-build-a-thon/">DMC Wins the 2024 ICC Build-a-Thon</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC’s team was proud to win first place at the Ignition Community Conference (ICC) 2024 Build-a-thon in Folsom, CA. After finishing first in a field of 24 Premier Integrators in a <a href="https://inductiveautomation.com/blog/and-then-there-were-two-who-will-claim-the-buildathon-title" target="_blank">preliminary round</a>, we faced BIJC Ltd in the final round of the competition to build a solution in two short days. &nbsp;</p>



<p class="wp-block-paragraph">Congratulations to our team members Brandon Tanner, Sheila Kennedy-Moore, and Nicoli Liedtke for representing DMC and bringing home the win!&nbsp;</p>



<h2 id="h-the-competition-nbsp" class="wp-block-heading">The Competition&nbsp;</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/buildathon-2024-3.jpg" alt="ICC Build-a-Thon 2024"/></figure>



<p class="wp-block-paragraph">DMC and BIJC Ltd competed live on stage in an industrial automation challenge for the ICC Build-a-thon’s grand finale. To challenge our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming">Ignition programming skills</a>, we had two days to program an Ignition application to control a convenience store. The store had a car wash, gas pump, and food market.&nbsp;</p>



<p class="wp-block-paragraph">Opto 22 provided the PLCs and a miniature convenience store that we could control. The goal provided by Inductive Automation was to make it easy to expand our brand of convenience stores and take over the world with our stores. We decided to include a Minion theme in our project, saying that we were hired by Gru to take over the world with our convenience stores. Our tagline was, “This is a first for DMC, being hired by a villain.”&nbsp;</p>



<p class="wp-block-paragraph">To accomplish this goal, DMC made a high-level map screen displaying the location and the status of each store. Users could click on a store location on the screen to see more details. In order to verify that each store was profitable for our business expansion, we used simulation logic to simulate transactions. We also tracked the store’s transactions and profitability with custom dashboards. Our solution streamlined configuring new stores by prompting the user to fill out its name and select the location on a map once the project detected new MQTT tags.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/buildathon-app-3.jpg" alt="DMC's build-a-thon application"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/buildathon-app-1.jpg" alt="DMC's build-a-thon application"/></figure>



<p class="wp-block-paragraph">One highlight of our solution was our slick user interface (UI). We implemented custom CSS in our project to give the UI a polished look. This is a complex aspect of Ignition that not everyone has experience with, and we spent extra time on the UI to make our project stand out.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/buildathon-app-4.png" alt="DMC build-a-thon application"/></figure>



<p class="wp-block-paragraph">Other fun aspects of the project included creating a car wash button with an animated car and bubbles. We also created a custom SVG to control the store’s lights. Every time the car wash ran, we brought out bubble guns.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/buildathon-2024-1.jpg" alt="ICC Build-a-Thon 2024"/></figure>



<p class="wp-block-paragraph">Each member of DMC’s team presented on part of the project. Sheila handled the introduction and the project overview.&nbsp; Nicoli did the technical project review and Brandon took on the project curveball which was adding a new store to the application. The audience voted on the winner, and we were proud to take home the honors and wear the orange winner’s blazers!&nbsp;</p>



<p class="wp-block-paragraph">If you are interested in digging into the code that we made during the Build-a-Thon, we’ve uploaded <a href="https://inductiveautomation.com/exchange/2699/overview">our project</a> to the Ignition Exchange. &nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/buildathon-2024-2.jpg" alt="ICC Build-a-Thon 2024"/></figure>



<h2 id="h-ignition-community-conference-nbsp" class="wp-block-heading">Ignition Community Conference&nbsp;</h2>



<p class="wp-block-paragraph">The Ignition Community Conference&#8217;s mission is to see new technology, share ideas, and find inspiration. In addition to competing in the Build-a-Thon, DMC led a presentation on <a href="https://static.dmcinfo.com/latest-thinking/blog/id/13664/dmc-presents-at-icc-optimizing-load-times-in-ignition-perspective">Optimizing Load Time in Ignition Perspective</a> by Elizabeth Reed and Casimir Smith.&nbsp;</p>



<h2 id="h-dmc-and-ignition-nbsp" class="wp-block-heading">DMC and Ignition&nbsp;</h2>



<p class="wp-block-paragraph">DMC is an Ignition Premier Integrator. We are Ignition 8.1 Gold certified, illustrating our commitment to delivering Ignition expertise. Our partnership allows DMC access to exclusive technical resources which enables us to deliver top-notch customer service to our clients.&nbsp;</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>Award-Winning Ignition Expertise </strong>at ICC Build-a-Thon.</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">See more about our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" data-type="page" data-id="420">Automation</a> solutions for scalable Ignition applications, MQTT integration, and custom industrial user interfaces. Learn about DMC&#8217;s partnership with <a href="https://static.dmcinfo.com/about/partners/ignition-premier-integrator/" data-type="page" data-id="888">Ignition</a>.</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/15927/dmc-wins-the-2024-icc-build-a-thon/">DMC Wins the 2024 ICC Build-a-Thon</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
