<?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>Siemens Programming Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/siemens-programming/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Tue, 07 Jul 2026 16:33:00 +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>Siemens Programming Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Communicating Between a Siemens PLC and LabVIEW Using Modbus TCP</title>
		<link>https://static.dmcinfo.com/blog/20491/communicating-between-a-siemens-plc-and-labview-using-modbus-tcp/</link>
		
		<dc:creator><![CDATA[Maddie Drake]]></dc:creator>
		<pubDate>Wed, 27 Nov 2019 13:32:16 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW Programming]]></category>
		<category><![CDATA[Modbus]]></category>
		<category><![CDATA[Siemens Programming]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/20491/communicating-between-a-siemens-plc-and-labview-using-modbus-tcp/</guid>

					<description><![CDATA[<p>Have you ever needed to integrate LabVIEW into a Siemens PLC project or vice versa? PLCs offer features such as reliability and safety, whereas LabVIEW has plug and play libraries for a variety of hardware. The list of different benefits these two offerings is long, but what if you need both? Modbus TCP is an [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20491/communicating-between-a-siemens-plc-and-labview-using-modbus-tcp/">Communicating Between a Siemens PLC and LabVIEW Using Modbus TCP</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 needed to integrate <a href="/services/test-and-measurement-automation/labview-programming">LabVIEW</a> into a <a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">Siemens PLC</a> project or vice versa? PLCs offer features such as reliability and safety, whereas LabVIEW has plug and play libraries for a variety of hardware.</p>

<p class="wp-block-paragraph">The list of different benefits these two offerings is long, but what if you need both?</p>

<p class="wp-block-paragraph"><strong>Modbus TCP</strong> is an excellent way to transfer data between the two programs. Modbus is an easy to deploy protocol that enables multiple devices on the same network to communicate. To set up Modbus Communication in <a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming/tia-portal-development">TIA Portal</a>, drag an &ldquo;MB_Server&rdquo; block to the Main[OB1]. This will be the only rung you need in Main [OB1].</p>

<figure class="wp-block-image"><img decoding="async" alt="program blocks" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/1-program-blocks.png"  /></figure>

<p class="wp-block-paragraph">You will need to create a data block for holding registers, which contain the information you are trying to send and receive. Mine is named <strong>&ldquo;dbHoldingRegisters&rdquo;</strong> and I filled it with an array of random values to send to LabVIEW.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/2-datablocks-siemens.png"  /></figure>

<p class="wp-block-paragraph">You will also need space in a data block to save configuration information to connect using Modbus. The data block should be of type <strong>TCON_IP_v4</strong>, which includes all address parameters required for establishing a connection. Details on how to populate this are listed below.</p>

<figure class="wp-block-image"><img decoding="async" alt="populate data blocks" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/3-populate-data-blocks.png"  /></figure>

<ul class="wp-block-list">
 <li style="margin-bottom: 10px;"><strong>InterfaceID:</strong> This references hardware identifier number, found in &ldquo;Devices and Networks&rdquo;, pictured below.<br />
 <figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/4-interfaceid.png"  /></figure></li>
 <li style="margin-bottom: 10px;"><strong>ID:</strong> A unique ID for the connection within the CPU ranging from 1 to 4095. If you have multiple &ldquo;MB_Server&rdquo; blocks, they will each need unique numbers.</li>
 <li style="margin-bottom: 10px;"><strong>Connection Type:</strong> 11 is for TCP connections</li>
 <li style="margin-bottom: 10px;"><strong>Active Established:&nbsp;</strong>Select false for passive connection establishment.</li>
 <li style="margin-bottom: 10px;"><strong>Remote Address:</strong> The default address is 0.0.0.0 (any IP address), but you can enter a specific IP address so that the server only responds to requests from this address. For example, if the IP address of my computer is 192.168.0.73, the addresses will be.
 <ul class="wp-block-list">
  <li style="margin-bottom: 10px;">addr[1] = 192</li>
  <li style="margin-bottom: 10px;">addr[2] = 168</li>
  <li style="margin-bottom: 10px;">addr[3] = 0</li>
  <li style="margin-bottom: 10px;">addr[4] = 73</li>
 </ul>
 </li>
 <li style="margin-bottom: 10px;"><strong>Remote Port:</strong> This is the incoming tunnel port number of the remote connection partner (value range: 1 to 49151) or 0 for any.</li>
 <li style="margin-bottom: 10px;"><strong>Local Port:</strong> This is the outgoing port number of the local connection partner (value range: 1 to 49151), 502 is the default. A Modbus client (LabVIEW) sends its messages on the port 502, and a Modbus server (PLC) receives messages on 502.</li>
</ul>

<p class="wp-block-paragraph">On the LabVIEW side, the code is straightforward. All VIs are taken from the Modbus Master.lvclass and are listed below. You will need to create a TCP connection to the IP address of the PLC as well as use the same local port number (502) in your <strong>&ldquo;serverData&rdquo;</strong> data block. Then, you can write and read registers as you choose. As always, make sure to close the connection when you are done.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/5-labview-sample-code.png"  /></figure>

<p class="wp-block-paragraph">In this example, the value 999 was written to address 0, and then all the holding register values were read and populated in the &ldquo;register values&rdquo; indicator. And Voila! The random array of values we sent from the PLC has been transmitted successfully. You are now reading and writing data from LabVIEW to a PLC.</p>

<p class="wp-block-paragraph">Happy programming!</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/6-programcode.png"  /></figure>

<p class="wp-block-paragraph">Learn more about <a href="/services/test-and-measurement-automation/labview-programming">DMC&apos;s LabVIEW Programming services</a> and <a href="/contact">contact us</a> with any project inquiries!</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20491/communicating-between-a-siemens-plc-and-labview-using-modbus-tcp/">Communicating Between a Siemens PLC and LabVIEW Using Modbus TCP</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Adding Multiple Language Configurations to your Siemens HMI</title>
		<link>https://static.dmcinfo.com/blog/21041/adding-multiple-language-configurations-to-your-siemens-hmi/</link>
		
		<dc:creator><![CDATA[Carolyn Corcoran]]></dc:creator>
		<pubDate>Tue, 27 Aug 2019 14:39:05 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Siemens Programming]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/21041/adding-multiple-language-configurations-to-your-siemens-hmi/</guid>

					<description><![CDATA[<p>When working on-site recently, I was challenged with configuring translations for several Siemens PLC &amp; HMI projects. After many rounds of trial and error, I was finally able to track down every location where text was being stored in my project. Eventually, I was able to not only display all of my translations appropriately, but [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/21041/adding-multiple-language-configurations-to-your-siemens-hmi/">Adding Multiple Language Configurations to your Siemens HMI</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When working on-site recently, I was challenged with configuring translations for several <a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">Siemens PLC</a> &amp; <a href="/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming">HMI</a> projects. After many rounds of trial and error, I was finally able to track down every location where text was being stored in my project. Eventually, I was able to not only display all of my translations appropriately, but also eliminate all the default “Text” boxes that kept reminding me I still had some mysterious untranslated text lists.</p>



<p class="wp-block-paragraph">The following guide walks through all the steps required to configure your Siemens project for language translations and reveals several locations that text lists may be hiding on your PLC and HMI.</p>



<h2 class="wp-block-heading" id="h-configuring-global-project-languages">Configuring Global Project Languages</h2>



<p class="wp-block-paragraph">The first step to adding multiple languages to your project is to configure the global project language. In your project tree, you should have a <strong>“Languages &amp; resources”</strong> folder.</p>



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



<p class="wp-block-paragraph">Double-clicking on <strong>“Project languages”</strong> will bring up all the available project languages. For this example, my editing and reference languages will stay in English, but I want to add Hungarian to my project.</p>



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



<h2 class="wp-block-heading" id="h-configuring-runtime-language-hmi">Configuring Runtime Language (HMI)</h2>



<p class="wp-block-paragraph">Now that Hungarian is one of my project languages, I can add it to my HMI. In the HMI portion of the project tree, navigate to the <strong>runtime settings,</strong> and make sure all your desired languages are selected and enabled.</p>



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



<h2 class="wp-block-heading" id="h-exporting-project-texts">Exporting Project Texts</h2>



<p class="wp-block-paragraph">Unfortunately, there is no auto-translate feature. The next step to configuring our translations is to track down every piece of text that needs to display in the new language and give it an accurate translation. <strong>Let’s start with our HMI.</strong></p>



<p class="wp-block-paragraph">In the global <strong>“Languages &amp; resources” folder</strong>, navigate to your <strong>project texts</strong>. Filter for just your HMI (deselect the PLC in the dropdown, then click the green arrow). While you’re at it, filter out any empty entries by clicking the filter icon on the left as well.</p>



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



<p class="wp-block-paragraph">You could type all your translations directly into <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming/">TIA Portal</a> from this view. However, texts can also be exported as an Excel spreadsheet where they can be edited and re-imported later. Click on the <strong>export arrow.</strong></p>



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



<p class="wp-block-paragraph">A window will pop up that will allow you to filter your texts even more. For this project, my alarm texts all live on the PLC side, which will be exported separately. Therefore, all I need to export from the project texts is what will be displayed on the HMI.</p>



<p class="wp-block-paragraph">This text list will include button text, help text, text boxes on your HMI. Make sure your source (existing) and target (desired) languages are configured before hitting export!</p>



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



<h2 class="wp-block-heading" id="h-faceplate-translations">Faceplate Translations</h2>



<p class="wp-block-paragraph">If your HMI uses any faceplates that have text, these will not be included in the project texts that you just exported. First, we need to edit each faceplate to add the language configuration! I have not found a better way of doing this than going through each faceplate, adding a language, and releasing the new version.</p>



<p class="wp-block-paragraph">Be sure to select the option to update all faceplate instances when you release the new one. Translations cannot be completed if any faceplates are still &#8220;in test&#8221; (unreleased).</p>



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



<p class="wp-block-paragraph">Once all your faceplates have the correct language configuration, you can export your library texts for easy translation in Excel.</p>



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



<h2 class="wp-block-heading" id="h-alarm-warning-message-translations">Alarm/Warning Message Translations</h2>



<p class="wp-block-paragraph">In my project, I am using program alarms and&nbsp;building the&nbsp;alarm message strings&nbsp;on the PLC. Therefore, these texts will not be included in previous text exports from the HMI project. I have four text lists on the CPU, and each one must be exported, translated, and re-imported individually.</p>



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



<h2 class="wp-block-heading" id="h-editing-text-lists-in-excel">Editing Text Lists in Excel</h2>



<p class="wp-block-paragraph">Editing the text lists in Excel is straightforward. Add or modify entries in your target language column, but don’t touch anything else on the spreadsheet!</p>



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



<h2 class="wp-block-heading" id="h-importing-text-lists">Importing Text Lists</h2>



<p class="wp-block-paragraph">Once you complete the translation column, the next step is to import your text lists back into your project. Importing text lists may be as simple as selecting the <strong>import arrow</strong>, selecting&nbsp;your translated Excel sheet, and pressing<strong> “Import.”</strong></p>



<p class="wp-block-paragraph">In some cases, however, it may not be so straightforward. For instance, I got the warning message below during one of my imports, and none of my translated texts showed up:</p>



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



<p class="wp-block-paragraph">I viewed the log file to find a bunch of warnings the internal ID of&nbsp;my imported texts&nbsp;did not match my current project. This warning was indicating that I had exported text from an older version of my project and it no longer recognized the translated file when I tried to import.</p>



<p class="wp-block-paragraph">This is most likely to happen if you’ve made numerous changes to your project texts since your original export or if you’ve changed the name of your project.</p>



<p class="wp-block-paragraph">My solution was to re-export all the text lists from my project so that the project data captured in the excel sheet was up-to-date. I then manually copied over the translation column from the old Excel sheet into the new one (without modifying any other columns on the spreadsheet), and it imported with no issues.</p>



<h2 class="wp-block-heading" id="h-changing-languages-from-the-operator-panel">Changing Languages from the Operator Panel</h2>



<p class="wp-block-paragraph">Now that we have all our HMI texts translated and imported, let’s test it out! <strong>Add two&nbsp;buttons</strong>&nbsp;to a screen on your HMI with a <strong>click event</strong> to set the language. One button is for your new language and one is to switch it back to your primary language!</p>



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



<p class="wp-block-paragraph">Compile your HMI – best to do a <strong>“Rebuild All” </strong>at this point – and download!</p>



<p class="wp-block-paragraph"><strong>Learn more about our <a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">Siemens PLC Programming</a> and <a href="/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming">HMI &amp; SCADA services</a>. We are <a href="/about/partners/siemens-solution-partner">Siemens Solution Partners </a>with extensive Siemens expertise. Contact us with any questions or project inquiries.&nbsp;</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/21041/adding-multiple-language-configurations-to-your-siemens-hmi/">Adding Multiple Language Configurations to your Siemens HMI</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
