<?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>XML Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/xml/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Wed, 22 Jul 2026 18:57:32 +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>XML Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Using XML Templates in TIA Openness</title>
		<link>https://static.dmcinfo.com/blog/21173/using-xml-templates-in-tia-openness/</link>
		
		<dc:creator><![CDATA[Patrick Smith]]></dc:creator>
		<pubDate>Thu, 01 Aug 2019 09:35:26 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[Function Blocks]]></category>
		<category><![CDATA[Openness]]></category>
		<category><![CDATA[TIA Portal]]></category>
		<category><![CDATA[XML]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/21173/using-xml-templates-in-tia-openness/</guid>

					<description><![CDATA[<p>In my previous post, we looked at how Openness formats the XML files that it uses to create objects in TIA Portal. After reviewing some examples, we concluded that creating code in XML can be very complicated and that it is best to use existing blocks to generate XML using Openness. On the surface, that [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/21173/using-xml-templates-in-tia-openness/">Using XML Templates in TIA Openness</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="/latest-thinking/blog/id/9908/how-to-read-an-openness-xml-file">In my previous post</a>, we looked at how Openness formats the XML files that it uses to create objects in TIA Portal. After reviewing some examples, we concluded that creating code in XML can be very complicated and that it is best to use existing blocks to generate XML using Openness.</p>



<p class="wp-block-paragraph">On the surface, that doesn’t seem very useful, since writing code requires you to have already written code. However, another way to look at it is that by writing your desired code once, you can use Openness to automatically generate the code as much as needed. By creating XML templates, your Openness application can be used to quickly generate new code from an existing codebase.</p>



<h2 class="wp-block-heading" id="h-what-is-a-template-for">What is a Template For?</h2>



<p class="wp-block-paragraph">Let’s take a step back and consider when generating code from a template using Openness is more useful than creating the necessary code yourself in TIA Portal. Imagine you are in charge of maintaining the PLC code for your company’s line of modular conveyor systems. When a customer wants to order a conveyor system, they choose from the dozens of available modules and arrange them in the configuration that suits their needs. Since you’re a smart programmer, you’ve created a set of function blocks that can control each module.</p>



<p class="wp-block-paragraph">When it comes time to develop the final PLC program, you have to copy in your existing modules, link them to the appropriate inputs and outputs, create the handshakes for passing data between each module, collect each module’s fault codes and send them to the master controller, and the list can go on and on. For large systems, this can become very tedious and time-consuming. However, you can take your modules, export them to XML, and with a little tweaking, allow Openness to automatically insert the relevant data and create the code for you.</p>



<h2 class="wp-block-heading" id="h-creating-a-template">Creating a Template</h2>



<p class="wp-block-paragraph">The first step of automating your code generation is to create your template files. We’ll start by using Openness to create the XML file, and then we’ll add some modifications that will allow our Openness application to fill in data for us.</p>



<p class="wp-block-paragraph">To keep things simple, we’ll assume we have 3 modules that have been packaged into function blocks called <strong>fbModule1</strong>,<strong> fbModule2</strong>, and <strong>fbModule3</strong>. Each module has the same block interface. There’s an input for the motor feedback, an interlock signal from the upstream module, a module ID that the block uses for fault messaging, an output to turn on the motor, and an interlock sent to the downstream module.</p>



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



<p class="wp-block-paragraph">Since the modules are completely self-contained blocks, in this case, there’s no need to create templates for them. As long as they are part of the final TIA Portal project, we just need a template for creating the block calls and assigning the tags. We’ll also need a template for the instance data blocks, a template for creating the I/O tags, and a template for the global data block that will contain the handshake bits.</p>



<p class="wp-block-paragraph">Let’s start with the I/O tags. I’ve created a tag table called IO and added one input and one output.</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(2 * 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">XML</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>&lt;Document>
&lt;SW.Tags.PlcTagTable ID="0">
    &lt;AttributeList>
      &lt;Name>IO&lt;/Name>
    &lt;/AttributeList>
    &lt;ObjectList>
      &lt;SW.Tags.PlcTag ID="1" CompositionName="Tags">
        &lt;AttributeList>
          &lt;DataTypeName>Bool&lt;/DataTypeName>
          &lt;ExternalAccessible>true&lt;/ExternalAccessible>
          &lt;ExternalVisible>true&lt;/ExternalVisible>
          &lt;ExternalWritable>true&lt;/ExternalWritable>
          &lt;LogicalAddress>%I0.0&lt;/LogicalAddress>
          &lt;Name>I_Section1Running&lt;/Name>
        &lt;/AttributeList>
        &lt;ObjectList>
          &lt;MultilingualText ID="2" CompositionName="Comment">
            &lt;ObjectList>
              &lt;MultilingualTextItem ID="3" CompositionName="Items">
                &lt;AttributeList>
                  &lt;Culture>en-US&lt;/Culture>
                  &lt;Text>Section 1 motor running&lt;/Text>
                &lt;/AttributeList>
              &lt;/MultilingualTextItem>
            &lt;/ObjectList>
          &lt;/MultilingualText>
        &lt;/ObjectList>
      &lt;/SW.Tags.PlcTag>
	  &lt;SW.Tags.PlcTag ID="10" CompositionName="Tags">
        &lt;AttributeList>
          &lt;DataTypeName>Bool&lt;/DataTypeName>
          &lt;ExternalAccessible>true&lt;/ExternalAccessible>
          &lt;ExternalVisible>true&lt;/ExternalVisible>
          &lt;ExternalWritable>true&lt;/ExternalWritable>
          &lt;LogicalAddress>%Q0.0&lt;/LogicalAddress>
          &lt;Name>Q_Section1Run&lt;/Name>
        &lt;/AttributeList>
        &lt;ObjectList>
          &lt;MultilingualText ID="11" CompositionName="Comment">
            &lt;ObjectList>
              &lt;MultilingualTextItem ID="12" CompositionName="Items">
                &lt;AttributeList>
                  &lt;Culture>en-US&lt;/Culture>
                  &lt;Text>Run section 1 motor&lt;/Text>
                &lt;/AttributeList>
              &lt;/MultilingualTextItem>
            &lt;/ObjectList>
          &lt;/MultilingualText>
        &lt;/ObjectList>
      &lt;/SW.Tags.PlcTag>
	 &lt;/Document></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: #808080">&lt;</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Tags.PlcTagTable</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">IO</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Tags.PlcTag</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Tags&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataTypeName</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Bool</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">DataTypeName</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalAccessible</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalAccessible</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalVisible</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalVisible</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalWritable</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalWritable</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">LogicalAddress</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">%I0.0</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">LogicalAddress</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">I_Section1Running</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;2&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Comment&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;3&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Section 1 motor running</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Tags.PlcTag</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Tags.PlcTag</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;10&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Tags&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataTypeName</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Bool</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">DataTypeName</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalAccessible</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalAccessible</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalVisible</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalVisible</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalWritable</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalWritable</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">LogicalAddress</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">%Q0.0</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">LogicalAddress</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Q_Section1Run</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;11&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Comment&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;12&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Run section 1 motor</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Tags.PlcTag</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	 </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">This XML needs to be broken into 2 parts: the XML for the tag table, where we will add tags, and the XML for a tag, which we will fill in with the relevant data. To create these templates, delete the data that we will replicate, and add a placeholder that your application will use to perform the replacement. I like the syntax <strong>{Placeholder_Name}</strong>.</p>



<p class="wp-block-paragraph">Here are my templates for the tag table and tags.</p>



<p class="wp-block-paragraph"><strong>Tag Table Template:</strong></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(2 * 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">XML</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>&lt;Document>
  &lt;SW.Tags.PlcTagTable ID="0">
    &lt;AttributeList>
      &lt;Name>IO&lt;/Name>
    &lt;/AttributeList>
    &lt;ObjectList>
		{Tags}
	&lt;/ObjectList>
   &lt;/SW.Tags.PlcTagTable>
 &lt;/Document></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: #808080">&lt;</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Tags.PlcTagTable</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">IO</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		{Tags}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">   </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Tags.PlcTagTable</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4"> </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>Tag Template:</strong></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(2 * 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">XML</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>&lt;SW.Tags.PlcTag ID="{Iterate}" CompositionName="Tags">
&lt;AttributeList>
       &lt;DataTypeName>Bool&lt;/DataTypeName>
       &lt;ExternalAccessible>true&lt;/ExternalAccessible>
       &lt;ExternalVisible>true&lt;/ExternalVisible>
       &lt;ExternalWritable>true&lt;/ExternalWritable>
	   &lt;LogicalAddress>{Address}&lt;/LogicalAddress>
	   &lt;Name>{TagName}&lt;/Name>
&lt;/AttributeList>
		&lt;ObjectList>
          &lt;MultilingualText ID="{Iterate}" CompositionName="Comment">
            &lt;ObjectList>
              &lt;MultilingualTextItem ID="{Iterate}" CompositionName="Items">
                &lt;AttributeList>
                  &lt;Culture>en-US&lt;/Culture>
                  &lt;Text>{Tag Comment}&lt;/Text>
                &lt;/AttributeList>
              &lt;/MultilingualTextItem>
            &lt;/ObjectList>
          &lt;/MultilingualText>
        &lt;/ObjectList>
&lt;/SW.Tags.PlcTag></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: #808080">&lt;</span><span style="color: #569CD6">SW.Tags.PlcTag</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Tags&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">       </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataTypeName</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Bool</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">DataTypeName</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">       </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalAccessible</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalAccessible</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">       </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalVisible</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalVisible</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">       </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ExternalWritable</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ExternalWritable</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	   </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">LogicalAddress</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{Address}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">LogicalAddress</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	   </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{TagName}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Comment&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{Tag Comment}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Tags.PlcTag</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">In the Openness application, for each module, we would use the tag template to fill in<strong> {Address}</strong>, <strong>{TagName}</strong>, <strong>{TagComment}</strong>, and <strong>{Iterate}</strong>. These tags would then be grouped together and inserted into the tag template at the <strong>{Tags}</strong> placeholder. How you get this data is up to you. An easy solution is to read in a user-created Excel table, such as the following.</p>



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



<p class="wp-block-paragraph">The application would create the input and output tags for each module and could be set up to give specific tag names depending on the section and module. For example, the tags for Section 1 could be named “I_Section1MotorRunning” and “Q_RunSection1Motor”. The final XML file would contain all the I/O tags, ready to be imported into the project.</p>



<p class="wp-block-paragraph">A similar process could be done for the<strong> global data block.</strong> The format is similar to that of the tag table. The resulting templates would look something like the code below.</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(2 * 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">XML</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>&lt;Document>
  &lt;SW.Blocks.GlobalDB ID="0">
    &lt;AttributeList>
      &lt;AutoNumber>true&lt;/AutoNumber>
      &lt;HeaderAuthor />
      &lt;HeaderFamily />
      &lt;HeaderName />
      &lt;HeaderVersion>0.1&lt;/HeaderVersion>
      &lt;Interface>
		 &lt;Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v2">
  			&lt;Section Name="Static">
			{Tags}
			&lt;/Section>
		&lt;/Sections>
	 &lt;IsOnlyStoredInLoadMemory>false&lt;/IsOnlyStoredInLoadMemory>
      &lt;IsRetainMemResEnabled>false&lt;/IsRetainMemResEnabled>
      &lt;IsWriteProtectedInAS>false&lt;/IsWriteProtectedInAS>
      &lt;MemoryLayout>Optimized&lt;/MemoryLayout>
      &lt;MemoryReserve>100&lt;/MemoryReserve>
      &lt;Name>dbHandshakes&lt;/Name>
      &lt;Number>6&lt;/Number>
      &lt;ProgrammingLanguage>DB&lt;/ProgrammingLanguage>
    &lt;/AttributeList>
    &lt;ObjectList>
      &lt;MultilingualText ID="1" CompositionName="Comment">
        &lt;ObjectList>
          &lt;MultilingualTextItem ID="2" CompositionName="Items">
            &lt;AttributeList>
              &lt;Culture>en-US&lt;/Culture>
              &lt;Text />
            &lt;/AttributeList>
          &lt;/MultilingualTextItem>
        &lt;/ObjectList>
      &lt;/MultilingualText>
      &lt;MultilingualText ID="3" CompositionName="Title">
        &lt;ObjectList>
          &lt;MultilingualTextItem ID="4" CompositionName="Items">
            &lt;AttributeList>
              &lt;Culture>en-US&lt;/Culture>
              &lt;Text />
            &lt;/AttributeList>
          &lt;/MultilingualTextItem>
        &lt;/ObjectList>
      &lt;/MultilingualText>
    &lt;/ObjectList>
  &lt;/SW.Blocks.GlobalDB>
&lt;/Document></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: #808080">&lt;</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Blocks.GlobalDB</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AutoNumber</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AutoNumber</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderAuthor</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderFamily</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderName</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderVersion</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">0.1</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">HeaderVersion</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Interface</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		 </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Sections</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">xmlns</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;http://www.siemens.com/automation/Openness/SW/Interface/v2&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  			</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Section</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Static&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">			{Tags}</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Section</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Sections</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	 </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">IsOnlyStoredInLoadMemory</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">IsOnlyStoredInLoadMemory</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">IsRetainMemResEnabled</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">IsRetainMemResEnabled</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">IsWriteProtectedInAS</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">IsWriteProtectedInAS</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MemoryLayout</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Optimized</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MemoryLayout</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MemoryReserve</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">100</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MemoryReserve</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">dbHandshakes</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Number</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">6</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Number</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">DB</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Comment&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;2&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;3&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Title&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;4&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Blocks.GlobalDB</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">The data block tags would use the tag template, and the {TagName} and {TagComment} fields would be filled in. The created tags would be used in the {Tags} placeholder in the data block template. Creating the instance data block template is very simple since each data block can be in a separate XML file. All that needs to be filled in is the function block name, the data block name, and the datablock number.</p>



<p class="wp-block-paragraph">This assumes that each module has the same block interface. If any module was different, it would need its own instance data block template. Note that I’ve hidden the Interface section in the below template to make it easier to read.</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(2 * 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">XML</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>&lt;Document>
&lt;SW.Blocks.InstanceDB ID="0">
    &lt;AttributeList>
      &lt;AutoNumber>false&lt;/AutoNumber>
      &lt;HeaderAuthor />
      &lt;HeaderFamily />
      &lt;HeaderName />
      &lt;HeaderVersion>0.1&lt;/HeaderVersion>
	  &lt;InstanceOfName>{FunctionBlockName}&lt;/InstanceOfName>
      &lt;Interface>
	&lt;MemoryLayout>Optimized&lt;/MemoryLayout>
      &lt;Name>{BlockName}&lt;/Name>
      &lt;Number>{BlockNumber}&lt;/Number>
      &lt;ProgrammingLanguage>DB&lt;/ProgrammingLanguage>
    &lt;/AttributeList>
	&lt;ObjectList>
      &lt;MultilingualText ID="1" CompositionName="Comment">
        &lt;ObjectList>
          &lt;MultilingualTextItem ID="2" CompositionName="Items">
            &lt;AttributeList>
              &lt;Culture>en-US&lt;/Culture>
              &lt;Text />
            &lt;/AttributeList>
          &lt;/MultilingualTextItem>
        &lt;/ObjectList>
      &lt;/MultilingualText>
      &lt;MultilingualText ID="3" CompositionName="Title">
        &lt;ObjectList>
          &lt;MultilingualTextItem ID="4" CompositionName="Items">
            &lt;AttributeList>
              &lt;Culture>en-US&lt;/Culture>
              &lt;Text />
            &lt;/AttributeList>
          &lt;/MultilingualTextItem>
        &lt;/ObjectList>
      &lt;/MultilingualText>
    &lt;/ObjectList>
  &lt;/SW.Blocks.InstanceDB>
&lt;/Document></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: #808080">&lt;</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Blocks.InstanceDB</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AutoNumber</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AutoNumber</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderAuthor</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderFamily</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderName</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderVersion</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">0.1</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">HeaderVersion</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">InstanceOfName</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{FunctionBlockName}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">InstanceOfName</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Interface</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MemoryLayout</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Optimized</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MemoryLayout</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{BlockName}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Name</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Number</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{BlockNumber}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Number</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">DB</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Comment&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;2&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;3&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Title&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;4&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Blocks.InstanceDB</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">Finally, we can create our template for the block calls. In this case, I’ll call all the modules from our PLC’s OB1. We will need 2 templates again; one for the network, and one for the constant that will be linked to the iInModuleID parameter. I’ve hidden a few sections for readability.</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">XML</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>&lt;Member Name="{Name}" Datatype="Int" Accessibility="Public">
	&lt;Comment>
	  &lt;MultiLanguageText Lang="en-US">{Comment}&lt;/MultiLanguageText>
	&lt;/Comment>
	  &lt;StartValue>{Value}&lt;/StartValue>
&lt;/Member></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: #808080">&lt;</span><span style="color: #569CD6">Member</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Name}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Datatype</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Int&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Accessibility</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Public&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultiLanguageText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Lang</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;en-US&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{Comment}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultiLanguageText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">StartValue</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">{Value}</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">StartValue</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Member</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<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(2 * 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">XML</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>&lt;SW.Blocks.CompileUnit ID="{Iterate}" CompositionName="CompileUnits">
      &lt;AttributeList>
        &lt;NetworkSource>
		&lt;FlgNet xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v1">
  &lt;Parts>
    &lt;Access Scope="GlobalVariable" UId="{Iterate}">
      &lt;Symbol>
        &lt;Component Name="{MotorRunningTag}" />
      &lt;/Symbol>
    &lt;/Access>
    &lt;Access Scope="GlobalVariable" UId="{Iterate}">
      &lt;Symbol>
        &lt;Component Name="dbHandshakes" />
        &lt;Component Name="{InterlockInputTag}" />
      &lt;/Symbol>
    &lt;/Access>
    &lt;Access Scope="LocalConstant" UId="{Iterate}">
      &lt;Constant Name="{ModuleIDTag}" />
    &lt;/Access>
    &lt;Access Scope="GlobalVariable" UId="{Iterate}">
      &lt;Symbol>
        &lt;Component Name="{MotorRunTag}" />
      &lt;/Symbol>
    &lt;/Access>
    &lt;Access Scope="GlobalVariable" UId="{Iterate}">
      &lt;Symbol>
        &lt;Component Name="dbHandshakes" />
        &lt;Component Name="bSection1OK" />
      &lt;/Symbol>
    &lt;/Access>
    &lt;Call UId="26">
      &lt;CallInfo Name="fbModule3" BlockType="FB">
        &lt;Instance UId="27" Scope="GlobalVariable">
          &lt;Component Name="dbIns_Section1" />
        &lt;/Instance>
        &lt;Parameter Name="bInMotorRunning" Section="Input" Type="Bool" />
        &lt;Parameter Name="bInOkToRun" Section="Input" Type="Bool" />
        &lt;Parameter Name="iInModuleID" Section="Input" Type="Int" />
        &lt;Parameter Name="bOutRunMotor" Section="Output" Type="Bool" />
        &lt;Parameter Name="bOutModuleOK" Section="Output" Type="Bool" />
      &lt;/CallInfo>
    &lt;/Call>
  &lt;/Parts>
  &lt;Wires>
  &lt;/FigNet>
  &lt;/NetworkSource>
  &lt;ProgrammingLanguage>LAD&lt;/ProgrammingLanguage>
 &lt;/AttributeList>
	&lt;ObjectList>
&lt;/SW.Blocks.CompileUnit></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: #808080">&lt;</span><span style="color: #569CD6">SW.Blocks.CompileUnit</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;CompileUnits&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NetworkSource</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">FlgNet</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">xmlns</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v1&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parts</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;GlobalVariable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{MotorRunningTag}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;GlobalVariable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;dbHandshakes&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{InterlockInputTag}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;LocalConstant&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Constant</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{ModuleIDTag}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;GlobalVariable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{MotorRunTag}&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;GlobalVariable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;{Iterate}&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;dbHandshakes&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bSection1OK&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Call</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;26&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">CallInfo</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;fbModule3&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">BlockType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;FB&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Instance</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;27&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;GlobalVariable&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;dbIns_Section1&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Instance</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parameter</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bInMotorRunning&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Section</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Input&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Bool&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parameter</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bInOkToRun&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Section</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Input&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Bool&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parameter</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;iInModuleID&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Section</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Input&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Int&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parameter</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bOutRunMotor&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Section</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Output&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Bool&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parameter</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bOutModuleOK&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Section</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Output&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Bool&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">CallInfo</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Call</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Parts</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Wires</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">FigNet</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">NetworkSource</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">LAD</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4"> </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Blocks.CompileUnit</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">The application will use the {Name}, {Comment}, and {Value} placeholders to create the constant tags. The block calls will require filling in all the input and output parameters, as well as the function block and instance data block. Once all the code elements have been generated from templates, they can be imported into the project. If all goes well, your project is now ready to run the system!</p>



<p class="wp-block-paragraph">While setting up these templates is a difficult and time-consuming process, it can have a lot of benefits in the long run. Once the templates are created, any future projects can be created with a few lines in Excel and the click of a button. It also makes code updates easy. Any changes to a template will be reflected in all projects that are then generated from the template.</p>



<p class="wp-block-paragraph">By letting Openness handle the low-level, repetitive details of your code, you can quickly layout a project architecture that makes use of clean, reusable code.</p>



<p class="wp-block-paragraph">Learn more about our <a href="/services/manufacturing-automation-and-intelligence/plc-programming">PLC Programming</a> and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming/">TIA Development</a> Services. <a href="/contact">Contact us</a> for more information.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/21173/using-xml-templates-in-tia-openness/">Using XML Templates in TIA Openness</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Read an Openness XML File</title>
		<link>https://static.dmcinfo.com/blog/21358/how-to-read-an-openness-xml-file/</link>
		
		<dc:creator><![CDATA[Patrick Smith]]></dc:creator>
		<pubDate>Thu, 27 Jun 2019 08:36:02 +0000</pubDate>
				<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[Function Blocks]]></category>
		<category><![CDATA[Openness]]></category>
		<category><![CDATA[TIA Portal]]></category>
		<category><![CDATA[XML]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/21358/how-to-read-an-openness-xml-file/</guid>

					<description><![CDATA[<p>In my previous post, I explained what TIA Openness is and how using it can streamline your development process. Since Openness uses XML files as the basis for its import and export functions, knowing how to understand these XML files is vital for creating and modifying code with Openness. Becoming fluent in the XML structure [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/21358/how-to-read-an-openness-xml-file/">How to Read an Openness XML File</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In <a href="/latest-thinking/blog/id/9877/advantages-disadvantages-of-siemens-tia-openness">my previous post</a>, I explained what <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming/">TIA Openness</a> is and how using it can streamline your development process. Since Openness uses XML files as the basis for its import and export functions, knowing how to understand these XML files is vital for creating and modifying code with Openness.</p>



<p class="wp-block-paragraph">Becoming fluent in the XML structure of Openness is not a quick and easy process; it takes time and a lot of experience. However, with the basics I’ll cover in this post, you’ll have the tools and background you need to take your first steps.</p>



<h2 class="wp-block-heading" id="h-reading-an-xml-file">Reading an XML File</h2>



<p class="wp-block-paragraph">XML stands for <strong>eXtensible Markup Language</strong> and is a language used for storing data. Like HTML, it is a markup language, and is meant to be self-descriptive. XML is great for storing complex data structures since it encodes them in a hierarchical tag structure. Let’s take a look at a simple piece of XML.</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">XML</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>&lt;email>
	&lt;to>Alice&lt;/to>
	&lt;from>Bob&lt;/from>
	&lt;subject>XML&lt;/subject>
	&lt;message>Isn't XML the best?&lt;/message>
&lt;/email></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: #808080">&lt;</span><span style="color: #569CD6">email</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">to</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Alice</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">to</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">from</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Bob</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">from</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">subject</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">XML</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">subject</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">message</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Isn&apos;t XML the best?</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">message</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">email</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">This code represents an email. You can see that within the Email object, it contains information for To, From, Subject, and Message. These elements are children of the Email parent. Unlike HTML, XML has no predefined tags. Having no predefined tags allows the creator of XML to make those tags as descriptive as possible. XML also relies on other programs to read and write it; it does not do anything by itself. For the sample code above, someone must have created a program to store emails. In order to do something with those stored emails, there needs to be a program that converts the XML to a more human-friendly format.</p>



<p class="wp-block-paragraph">This is all that Openness does; it takes XML files that contain all the information needed for, say, a function block, reads them, and processes that information to make a new function block. When Openness exports a function block (or other piece of code), it converts all that data to an XML format. This means that when you open an Openness XML document, it will contain many tags that have been defined by Siemens. These tags are descriptive but can be hard to understand at first glance. Here’s a snippet of a function block in XML.</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(2 * 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">XML</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>&lt;Document>
  &lt;SW.Blocks.FB ID="0">
    &lt;AttributeList>
      &lt;AutoNumber>true&lt;/AutoNumber>
      &lt;HeaderAuthor />
      &lt;HeaderFamily />
      &lt;HeaderName />
      &lt;HeaderVersion>0.1&lt;/HeaderVersion>
      &lt;Interface>
		  &lt;Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v2">
  			&lt;Section Name="Input">
    			&lt;Member Name="bInCondition" Datatype="Bool" Remanence="NonRetain" Accessibility="Public">
					&lt;AttributeList>
						&lt;BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false&lt;/BooleanAttribute>
						&lt;BooleanAttribute Name="ExternalVisible" SystemDefined="true">false&lt;/BooleanAttribute>
						&lt;BooleanAttribute Name="ExternalWritable" SystemDefined="true">false&lt;/BooleanAttribute>
					&lt;/AttributeList>
					&lt;Comment>
						&lt;MultiLanguageText Lang="en-US">Input condition&lt;/MultiLanguageText>
					&lt;/Comment>
				&lt;/Member>
  			&lt;/Section>
 			&lt;Section Name="Output">
    			&lt;Member Name="bOutDoSomething" Datatype="Bool" Remanence="NonRetain" Accessibility="Public">
					&lt;AttributeList>
						&lt;BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false&lt;/BooleanAttribute>
						&lt;BooleanAttribute Name="ExternalVisible" SystemDefined="true">false&lt;/BooleanAttribute>
						&lt;BooleanAttribute Name="ExternalWritable" SystemDefined="true">false&lt;/BooleanAttribute>
					&lt;/AttributeList>
					&lt;Comment>
						&lt;MultiLanguageText Lang="en-US">Output action&lt;/MultiLanguageText>
					&lt;/Comment>
				&lt;/Member>
  			&lt;/Section></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: #808080">&lt;</span><span style="color: #569CD6">Document</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">SW.Blocks.FB</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AutoNumber</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">true</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AutoNumber</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderAuthor</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderFamily</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderName</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">HeaderVersion</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">0.1</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">HeaderVersion</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Interface</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Sections</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">xmlns</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;http://www.siemens.com/automation/Openness/SW/Interface/v2&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  			</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Section</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Input&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    			</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Member</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bInCondition&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Datatype</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Bool&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Remanence</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;NonRetain&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Accessibility</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Public&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;ExternalAccessible&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">SystemDefined</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;ExternalVisible&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">SystemDefined</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;ExternalWritable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">SystemDefined</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultiLanguageText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Lang</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;en-US&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Input condition</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultiLanguageText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Member</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  			</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Section</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4"> 			</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Section</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Output&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    			</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Member</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bOutDoSomething&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Datatype</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Bool&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Remanence</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;NonRetain&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Accessibility</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Public&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;ExternalAccessible&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">SystemDefined</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;ExternalVisible&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">SystemDefined</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;ExternalWritable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">SystemDefined</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">false</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">BooleanAttribute</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultiLanguageText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Lang</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;en-US&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Output action</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultiLanguageText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Member</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  			</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Section</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">This is part of the block interface of a function block. Let’s start at the top and work our way down.</p>



<p class="wp-block-paragraph"><strong>The Document Tag</strong><br>
The first element is the ‘Document’ tag. This tag is just used to delineate the start and end of the XML file. Each XML file you create for Openness should only contain one “Document” tag. Next, we have ‘SW.Blocks.FB ID=”0”’.</p>



<p class="wp-block-paragraph"><strong>SW.Blocks.FB</strong><br>
The ‘SW.Blocks.FB’ tells Openness that we are defining a function block. In a similar fashion, we could use ‘SW.Blocks.DB’ to define a data block. The ‘ID=”0”’ part is an internal ID used by Openness. This ID is only used to identify the different data within the XML file. If you have multiple blocks defined inside one ‘Document’ tag, each block will need to have a unique ID, or the import process will fail. In the event of an error, Openness will use these ID numbers to specify where the error occurred.</p>



<p class="wp-block-paragraph">Every function block has certain attributes, which are encapsulated in the ‘AttributeList’ tag. A lot of these attributes will look similar to ones you see when you go to the properties of the function block in Portal. For example, we have a value for ‘AutoNumber’ that tells us if the function block number is set automatically or manually. The ‘HeaderAuthor’, ‘HeaderFamily’, ‘HeaderName’, and ‘HeaderVersion’ attributes can be found in the properties of the block as well. The ‘Interface’ tag is used to define the block interface of the function block.</p>



<p class="wp-block-paragraph"><strong>Sections</strong><br>
The interface contains a set of ‘Sections’. A ‘Section’ is one of the different types of data that a function block can contain. In this example, we have a section named ‘Input’ and a section named ‘Output’. These correspond to the input and output parameters of the block, respectively. To define an input parameter, we create a ‘Member’ in the ‘Input’ section. In the above image, we have an input parameter called ‘bInCondition’. A member has its own set of attributes.</p>



<p class="wp-block-paragraph"><strong>Members</strong><br>
In the ‘Member’ definition, there are ‘Name’, ‘Datatype’, ‘Remanence’, and ‘Accessibility’ attributes. These correspond to the name of the variable, its datatype, whether or not it is retentive, and who can access the variable. Additional attributes are defined in the enclosed ‘AttributeList’. These three attributes, ‘ExternalAccessible’, ‘ExternalVisible’, and ‘ExternalWritable’ correspond to the checkboxes you see in Portal: ‘Accessible from HMI’, ‘Writable from HMI’, and ‘Visible in HMI engineering’.</p>



<p class="wp-block-paragraph"><strong>The Comment Attribute</strong><br>
Finally, the ‘Member’ contains a ‘Comment’ attribute. The comment contains a ‘MultiLanguageText’ attribute that contains the actual comment value. If you are programming in multiple languages, additional ‘MultiLanguageText’ attributes would be defined, and would allow the comment to appear in multiple languages. By setting the values of these attributes, you can fully define the variable. So the XML code above translates into the following block definition.</p>



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



<p class="wp-block-paragraph"><seems a="" get="" like="" lot="" of="" simple="" so="" something="" text="" to=""> </seems></p>



<h2 class="wp-block-heading" id="h-creating-code-from-xml">Creating Code from XML</h2>



<p class="wp-block-paragraph">Let’s start by looking at a few examples. Here’s a network in our existing function block.</p>



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



<p class="wp-block-paragraph">And here’s the associated XML.</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(2 * 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">XML</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>&lt;SW.Blocks.CompileUnit ID="3" CompositionName="CompileUnits">
        &lt;AttributeList>
          &lt;NetworkSource>
			  &lt;FlgNet xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v1">
 				&lt;Parts>
    				&lt;Access Scope="LocalVariable" UId="21">
      					&lt;Symbol>
        						&lt;Component Name="bInCondition" />
      					&lt;/Symbol>
    				&lt;/Access>
    				&lt;Access Scope="LocalVariable" UId="22">
      					&lt;Symbol>
        						&lt;Component Name="bOutDoSomething" />
     					&lt;/Symbol>
   					&lt;/Access>
    				&lt;Part Name="Contact" UId="23" />
    				&lt;Part Name="Coil" UId="24" />
  				&lt;/Parts>
  				&lt;Wires>
    				&lt;Wire UId="25">
      					&lt;Powerrail />
      					&lt;NameCon UId="23" Name="in" />
    				&lt;/Wire>
    				&lt;Wire UId="26">
      					&lt;IdentCon UId="21" />
      					&lt;NameCon UId="23" Name="operand" />
    				&lt;/Wire>
    				&lt;Wire UId="27">
     					&lt;NameCon UId="23" Name="out" />
      					&lt;NameCon UId="24" Name="in" />
    				&lt;/Wire>
    				&lt;Wire UId="28">
      					&lt;IdentCon UId="22" />
      					&lt;NameCon UId="24" Name="operand" />
    				&lt;/Wire>
  				&lt;/Wires>
			&lt;/FlgNet>
		&lt;/NetworkSource>
        &lt;ProgrammingLanguage>LAD&lt;/ProgrammingLanguage>
      &lt;/AttributeList>
        &lt;ObjectList>
          &lt;MultilingualText ID="4" CompositionName="Comment">
            &lt;ObjectList>
              &lt;MultilingualTextItem ID="5" CompositionName="Items">
                &lt;AttributeList>
                  &lt;Culture>en-US&lt;/Culture>
                  &lt;Text>This network uses an input condition to activate an output action&lt;/Text>
                &lt;/AttributeList>
              &lt;/MultilingualTextItem>
            &lt;/ObjectList>
          &lt;/MultilingualText>
          &lt;MultilingualText ID="6" CompositionName="Title">
            &lt;ObjectList>
              &lt;MultilingualTextItem ID="7" CompositionName="Items">
                &lt;AttributeList>
                  &lt;Culture>en-US&lt;/Culture>
                  &lt;Text>Simple contact/coil network&lt;/Text>
                &lt;/AttributeList>
              &lt;/MultilingualTextItem>
            &lt;/ObjectList>
          &lt;/MultilingualText>
        &lt;/ObjectList>
      &lt;/SW.Blocks.CompileUnit></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: #808080">&lt;</span><span style="color: #569CD6">SW.Blocks.CompileUnit</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;3&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;CompileUnits&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NetworkSource</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">			  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">FlgNet</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">xmlns</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v1&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4"> 				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Parts</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;LocalVariable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;21&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bInCondition&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Access</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Scope</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;LocalVariable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;22&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        						</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Component</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bOutDoSomething&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">     					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Symbol</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">   					</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Access</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Part</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Contact&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;23&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Part</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Coil&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;24&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Parts</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Wires</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Wire</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;25&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Powerrail</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NameCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;23&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;in&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Wire</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Wire</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;26&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">IdentCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;21&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NameCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;23&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;operand&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Wire</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Wire</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;27&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">     					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NameCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;23&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;out&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NameCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;24&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;in&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Wire</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Wire</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;28&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">IdentCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;22&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      					</span><span style="color: #808080">&lt;</span><span style="color: #569CD6">NameCon</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">UId</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;24&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;operand&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Wire</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  				</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Wires</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">FlgNet</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">NetworkSource</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">LAD</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ProgrammingLanguage</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;4&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Comment&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;5&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">This network uses an input condition to activate an output action</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualText</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;6&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Title&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;7&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">CompositionName</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Items&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">en-US</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Culture</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Simple contact/coil network</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">AttributeList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">              </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualTextItem</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">MultilingualText</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">ObjectList</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">SW.Blocks.CompileUnit</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">The XML, while more complicated than the ladder logic view, is still relatively readable. There are attributes of the network, a section for declaring all used variables, a section that defines the ladder elements used, and a section that creates the connections between the variables and the separate ladder elements. However, while the sections stay the same, adding more complex elements quickly makes this XML extremely difficult to parse.</p>



<p class="wp-block-paragraph">Here’s an example of creating an instance of the <strong>Open Library fb_ValveSolenoid</strong> function block.</p>



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



<p class="wp-block-paragraph">While still a relatively simple network, the XML to encapsulate this network is 187 lines long (I won’t post it here to save space). Every part of the XML has to be accurately defined, or you will end up with import errors. In addition, learning the various pieces that Openness uses to define function blocks takes a lot of practice.</p>



<p class="wp-block-paragraph">For these reasons, it very rarely makes sense to start from scratch to create an XML version of a function block. You can add functions to your Openness application to export existing blocks to XML. Then, you can create your blocks in Portal, and have Openness generate the associated XML automatically. When editing these XML documents, I would recommend using a text editor that has support for proper XML formatting, such as Notepad++ or Visual Studio Code.</p>



<p class="wp-block-paragraph">While being at least somewhat familiar with Openness’ XML format is very useful for debugging purposes, we’ve seen that it can be overwhelming when trying to write code. Using Openness to generate the XML code is easy, but requires creating the desired object in Portal anyway.</p>



<p class="wp-block-paragraph">What then, you might ask, is the point of creating objects in XML? In the next post, I’ll cover how you can use Openness to automate the creation of code using XML templates.</p>



<p class="wp-block-paragraph">Learn more about <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming/">DMC&#8217;s TIA Portal Development</a> and <a href="/contact">contact us</a> for more information.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/21358/how-to-read-an-openness-xml-file/">How to Read an Openness XML File</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Writing Rockwell Ladder Logic in XML</title>
		<link>https://static.dmcinfo.com/blog/21432/writing-rockwell-ladder-logic-in-xml/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Fri, 07 Jun 2019 11:54:26 +0000</pubDate>
				<category><![CDATA[Allen Bradley PLC]]></category>
		<category><![CDATA[Denver]]></category>
		<category><![CDATA[.L5X]]></category>
		<category><![CDATA[Rockwell]]></category>
		<category><![CDATA[XML]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/21432/writing-rockwell-ladder-logic-in-xml/</guid>

					<description><![CDATA[<p>Have you ever been coding the same thing over and over again, and thought “man, there must be an easier way to do this!” Well, I have. And luckily, so has Rockwell! The XML import feature allows you to generate repeat code with ease.&#160; In this blog, I’ll walk you through writing XML code to [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/21432/writing-rockwell-ladder-logic-in-xml/">Writing Rockwell Ladder Logic in XML</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Have you ever been coding the same thing over and over again, and thought “man, there must be an easier way to do this!” Well, I have. And luckily, so has Rockwell! The XML import feature allows you to generate repeat code with ease.&nbsp;</p>



<p class="wp-block-paragraph">In this blog, I’ll walk you through writing <strong>XML code</strong> to generate <strong>ladder logic in Rockwell</strong>. Using these techniques, you can write scripts, macros, and other tools to create .L5X files that can be directly imported into your Rockwell program. You can create data types, tags, rungs, routines, or even entire programs, all from your favorite text-based program.</p>



<p class="wp-block-paragraph">To see how this technique can be used to buffer IO, <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9856/generating-buffering-routines-on-an-allen-bradley-plc-using-excel-macros">check out Brandon&#8217;s Blog!</a></p>



<p class="wp-block-paragraph">To start, let&#8217;s look at the bare bones of a .L5X file and the required structure. It has a nested structure, with the controller at the highest level and rung content at the lowest. In order for Studio 5000 to recognize the file, you must keep this structure. In this example, I&#8217;ll write a &#8220;rung&#8221; import file, but it&#8217;s easy to adapt to generate routines or entire programs.&nbsp;</p>



<p class="wp-block-paragraph">Here&#8217;s a skeleton of a .L5X file:</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(2 * 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">XML</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>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?>

&lt;RSLogix5000Content
    SchemaRevision="1.0"
    SoftwareRevision="28.00"
    TargetType="Rung"
    TargetCount="1"
    ContainsContext="true"
    Owner="DMC"
    ExportDate="Mon May 20 15:46:14 2019"
    ExportOptions="
        References
        NoRawData
        L5KData
        DecoratedData
        Context
        Dependencies
        ForceProtectedEncoding
        AllProjDocTrans">

    &lt;Controller Use="Context">

        &lt;DataTypes Use="Context">
        &lt;/DataTypes>

        &lt;Tags Use="Context">
        &lt;/Tags>

        &lt;Programs Use="Context">

            &lt;Program Use="Context">

                &lt;Routines Use="Context">

                    &lt;Routine Use="Context">

                        &lt;RLLContent Use="Context">
                        &lt;/RLLContent>

                    &lt;/Routine>

                &lt;/Routines>

            &lt;/Program>

        &lt;/Programs>

    &lt;/Controller>

&lt;/RSLogix5000Content></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: #808080">&lt;?</span><span style="color: #569CD6">xml</span><span style="color: #9CDCFE"> version</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1.0&quot;</span><span style="color: #9CDCFE"> encoding</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;UTF-8&quot;</span><span style="color: #9CDCFE"> standalone</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;yes&quot;</span><span style="color: #808080">?&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">RSLogix5000Content</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">SchemaRevision</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1.0&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">SoftwareRevision</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;28.00&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">TargetType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Rung&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">TargetCount</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">ContainsContext</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">Owner</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;DMC&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">ExportDate</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Mon May 20 15:46:14 2019&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">ExportOptions</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;</span></span>
<span class="line"><span style="color: #CE9178">        References</span></span>
<span class="line"><span style="color: #CE9178">        NoRawData</span></span>
<span class="line"><span style="color: #CE9178">        L5KData</span></span>
<span class="line"><span style="color: #CE9178">        DecoratedData</span></span>
<span class="line"><span style="color: #CE9178">        Context</span></span>
<span class="line"><span style="color: #CE9178">        Dependencies</span></span>
<span class="line"><span style="color: #CE9178">        ForceProtectedEncoding</span></span>
<span class="line"><span style="color: #CE9178">        AllProjDocTrans&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Controller</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataTypes</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">DataTypes</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Tags</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Tags</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Programs</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Program</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Routines</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Routine</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">RLLContent</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">RLLContent</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Routine</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Routines</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Program</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Programs</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Controller</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">RSLogix5000Content</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">Let&#8217;s use this skeleton to create a simple rung to turn on the red light if the red button is pressed. While this is clearly overkilled for this one rung, it would be very useful if you had 100 button/light combinations.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/goal-rung-blog.png" alt="Goal rung to generate in XML. "/></figure>



<p class="wp-block-paragraph">We&#8217;ll need to add code for the tags, the rung logic, and the rung comment. First, let&#8217;s create the two boolean tags used in this rung. Between the lines <code>&lt;Tags Use="Context"> </code>and <code>&lt;/Tags></code>, insert the following lines. These tell the import tool to make new tags of type bool with the proper names. The line <code>&lt;![CDATA[0]]&gt; </code>sets the initial value of the tag to 0. I often use this feature to initialize values of a user defined type.</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(2 * 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">XML</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>&lt;Tag Name="bInRedButtonPressed" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write">
&lt;Data Format="L5K">
&lt;![CDATA&#91;0&#93;]>
&lt;/Data>
&lt;Data Format="Decorated">
&lt;DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
&lt;/Data>
&lt;/Tag>
&lt;Tag Name="bOutRedLightOn" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write">
&lt;Data Format="L5K">
&lt;![CDATA&#91;0&#93;]>
&lt;/Data>
&lt;Data Format="Decorated">
&lt;DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
&lt;/Data>
&lt;/Tag></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: #808080">&lt;</span><span style="color: #569CD6">Tag</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bInRedButtonPressed&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">TagType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Base&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Constant</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;false&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ExternalAccess</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Read/Write&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;L5K&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #CE9178">&lt;![CDATA&#91;0&#93;]&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decorated&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataValue</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Tag</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">Tag</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bOutRedLightOn&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">TagType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Base&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Constant</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;false&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ExternalAccess</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Read/Write&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;L5K&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #CE9178">&lt;![CDATA&#91;0&#93;]&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decorated&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataValue</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Tag</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">You can continue to add more tags as needed, change their properties, and their initial values. Next, let&#8217;s add logic for the rung. Between<code> the lines &lt;RLLContent Use="Context"></code> and <code>&lt;/RLLContent></code>, add the following lines.</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(2 * 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">XML</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>&lt;Rung Use="Target" Number="1" Type="N">

    &lt;Comment>
        &lt;![CDATA&#91;
        Turn on the Red Light when the Red Button is pressed.
        &#93;]>
    &lt;/Comment>

    &lt;Text>
        &lt;![CDATA&#91;
        XIC(bInRedButtonPressed) OTE(bOutRedLightOn);
        &#93;]>
    &lt;/Text>

&lt;/Rung></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: #808080">&lt;</span><span style="color: #569CD6">Rung</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Target&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Number</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;N&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #CE9178">&lt;![CDATA&#91;</span></span>
<span class="line"><span style="color: #CE9178">        Turn on the Red Light when the Red Button is pressed.</span></span>
<span class="line"><span style="color: #CE9178">        &#93;]&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #CE9178">&lt;![CDATA&#91;</span></span>
<span class="line"><span style="color: #CE9178">        XIC(bInRedButtonPressed) OTE(bOutRedLightOn);</span></span>
<span class="line"><span style="color: #CE9178">        &#93;]&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Rung</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">The <strong>&#8220;text&#8221;</strong> section is where you add the code for your rung. For something simple like this, it&#8217;s fairly easy to do (just XIC and OTE instructions). However, if you&#8217;re unsure of the &#8220;text version&#8221; of your ladder logic, just double click on the rung number in the ladder editor, and it will display the text.</p>



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



<p class="wp-block-paragraph">And that&#8217;s all you need to do! You can add more rungs just by repeating the pattern. Be sure to edit the <code>targetcount </code>on line 2 to match the number of rungs you&#8217;re making. Save the file with a .L5X extension and import it directly into your routine!</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(2 * 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">XML</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>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?>

&lt;RSLogix5000Content
    SchemaRevision="1.0"
    SoftwareRevision="28.00"
    TargetType="Rung"
    TargetCount="1"
    ContainsContext="true"
    Owner="DMC"
    ExportDate="Mon May 20 15:46:14 2019">

    &lt;Controller Use="Context">

        &lt;DataTypes Use="Context">
        &lt;/DataTypes>

        &lt;Tags Use="Context">

            &lt;Tag
                Name="bInRedButtonPressed"
                TagType="Base"
                DataType="BOOL"
                Radix="Decimal"
                Constant="false"
                ExternalAccess="Read/Write">

                &lt;Data Format="L5K">&lt;![CDATA&#91;0&#93;]>&lt;/Data>

                &lt;Data Format="Decorated">
                    &lt;DataValue
                        DataType="BOOL"
                        Radix="Decimal"
                        Value="0"/>
                &lt;/Data>
            &lt;/Tag>

            &lt;Tag
                Name="bOutRedLightOn"
                TagType="Base"
                DataType="BOOL"
                Radix="Decimal"
                Constant="false"
                ExternalAccess="Read/Write">

                &lt;Data Format="L5K">&lt;![CDATA&#91;0&#93;]>&lt;/Data>

                &lt;Data Format="Decorated">
                    &lt;DataValue
                        DataType="BOOL"
                        Radix="Decimal"
                        Value="0"/>
                &lt;/Data>
            &lt;/Tag>

        &lt;/Tags>

        &lt;Programs Use="Context">
            &lt;Program Use="Context">

                &lt;Routines Use="Context">
                    &lt;Routine Use="Context">

                        &lt;RLLContent Use="Context">

                            &lt;Rung Use="Target"
                                  Number="1"
                                  Type="N">

                                &lt;Comment>
                                    &lt;![CDATA&#91;
                                    Turn on the Red Light when the Red Button is pressed.
                                    &#93;]>
                                &lt;/Comment>

                                &lt;Text>
                                    &lt;![CDATA&#91;
                                    XIC(bInRedButtonPressed)
                                    OTE(bOutRedLightOn);
                                    &#93;]>
                                &lt;/Text>

                            &lt;/Rung>

                        &lt;/RLLContent>

                    &lt;/Routine>
                &lt;/Routines>

            &lt;/Program>
        &lt;/Programs>

    &lt;/Controller>

&lt;/RSLogix5000Content></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: #808080">&lt;?</span><span style="color: #569CD6">xml</span><span style="color: #9CDCFE"> version</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1.0&quot;</span><span style="color: #9CDCFE"> encoding</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;UTF-8&quot;</span><span style="color: #9CDCFE"> standalone</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;yes&quot;</span><span style="color: #808080">?&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">RSLogix5000Content</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">SchemaRevision</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1.0&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">SoftwareRevision</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;28.00&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">TargetType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Rung&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">TargetCount</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">ContainsContext</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;true&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">Owner</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;DMC&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">ExportDate</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Mon May 20 15:46:14 2019&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Controller</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataTypes</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">DataTypes</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Tags</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Tag</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bInRedButtonPressed&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">TagType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Base&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">Constant</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;false&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">ExternalAccess</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Read/Write&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;L5K&quot;</span><span style="color: #808080">&gt;</span><span style="color: #CE9178">&lt;![CDATA&#91;0&#93;]&gt;</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decorated&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataValue</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #9CDCFE">Value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Tag</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Tag</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;bOutRedLightOn&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">TagType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Base&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">Constant</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;false&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #9CDCFE">ExternalAccess</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Read/Write&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;L5K&quot;</span><span style="color: #808080">&gt;</span><span style="color: #CE9178">&lt;![CDATA&#91;0&#93;]&gt;</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Data</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Format</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decorated&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">DataValue</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #9CDCFE">DataType</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;BOOL&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #9CDCFE">Radix</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Decimal&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #9CDCFE">Value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;0&quot;</span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Data</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Tag</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Tags</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Programs</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Program</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Routines</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Routine</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">RLLContent</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Context&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                            </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Rung</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Use</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Target&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                                  </span><span style="color: #9CDCFE">Number</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">                                  </span><span style="color: #9CDCFE">Type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;N&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                                    </span><span style="color: #CE9178">&lt;![CDATA&#91;</span></span>
<span class="line"><span style="color: #CE9178">                                    Turn on the Red Light when the Red Button is pressed.</span></span>
<span class="line"><span style="color: #CE9178">                                    &#93;]&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Comment</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                                </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                                    </span><span style="color: #CE9178">&lt;![CDATA&#91;</span></span>
<span class="line"><span style="color: #CE9178">                                    XIC(bInRedButtonPressed)</span></span>
<span class="line"><span style="color: #CE9178">                                    OTE(bOutRedLightOn);</span></span>
<span class="line"><span style="color: #CE9178">                                    &#93;]&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Text</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Rung</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">RLLContent</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">                    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Routine</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">                </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Routines</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Program</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Programs</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">Controller</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">RSLogix5000Content</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">This blog was inspired by a new Excel tool I wrote to help us write sequences for one of our large Oil and Gas clients. These sequences were often very similar, so having a tool to auto-generate them made a lot of sense. Our engineers can now fill out the system parameters in Excel, and a macro generates all the rungs and data required for the program.</p>



<p class="wp-block-paragraph">What used to take us a few hours can now be done in a matter of minutes!&nbsp;You can learn more about the project and the customer benefits here.</p>



<p class="wp-block-paragraph">If you need help with <a href="https://static.dmcinfo.com/latest-thinking/blog/articletype/categoryview/categoryid/58/allen-bradley-plc">Rockwell Programming</a>&nbsp;or any other automation tasks, <a href="https://static.dmcinfo.com/contact">let us know</a>!</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/21432/writing-rockwell-ladder-logic-in-xml/">Writing Rockwell Ladder Logic in XML</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
