<?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>Kristen Stubenazy, Author at DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/author/kristens/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Thu, 03 Sep 2026 15:25:21 +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>Kristen Stubenazy, Author at DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Beckhoff TwinCAT 2 to TwinCAT 3 Conversion</title>
		<link>https://static.dmcinfo.com/blog/42538/twincat-2-to-twincat-3-conversion/</link>
		
		<dc:creator><![CDATA[Kristen Stubenazy]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Beckhoff PLC]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=42538</guid>

					<description><![CDATA[<p>TwinCAT 3 is Beckhoff’s flagship software suite for configuring and programming Beckhoff’s PC-based hardware and controllers. Introduced as a significant upgrade over TwinCAT 2, it offers a wide array of technology modules, debugging tools, and Visual Studio integration to make programming even easier. With the advances in TwinCAT 3 and the eventual discontinuation of TwinCAT [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/42538/twincat-2-to-twincat-3-conversion/">Beckhoff TwinCAT 2 to TwinCAT 3 Conversion</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">TwinCAT 3 is Beckhoff’s flagship software suite for configuring and programming Beckhoff’s PC-based hardware and controllers. Introduced as a significant upgrade over TwinCAT 2, it offers a wide array of technology modules, debugging tools, and Visual Studio integration to make programming even easier.</p>



<p class="wp-block-paragraph">With the advances in TwinCAT 3 and the eventual discontinuation of TwinCAT 2 support in the coming years, now is a great time to upgrade your TwinCAT 2 projects to TwinCAT 3. TwinCAT 2 requires a 32-bit operating system, and as of early 2026, most 32-bit operating systems are nearing end-of-support. Luckily, conversion is an easy process, and most conversions can be accomplished seamlessly with just a few clicks.</p>



<p class="wp-block-paragraph">This guide provides step-by-step instructions for upgrading your TwinCAT 2 Project to TwinCAT 3, including information on converting Safety and Motion projects.</p>



<h2 id="h-section-1-hardware-selection-considerations" class="wp-block-heading">Section 1: Hardware Selection / Considerations:</h2>



<ol class="wp-block-list">
<li>Take inventory of your controls hardware, including controllers, I/O, drives, and checking support/sales status. Beckhoff publishes a list of End-of-Life products along with successor products on their <a href="https://www.beckhoff.com/en-us/support/service-products/">Service Products page</a>.
<ul class="wp-block-list">
<li>Reach out to your local Beckhoff Sales Engineer for more personalized recommendations on product upgrade paths.</li>
</ul>
</li>



<li>Upgrade any legacy K-Bus I/O to EtherCAT, which is faster, more performant, and easier to maintain. Alternatively, consider replacing any K-Bus IO couplers with the <a href="https://www.beckhoff.com/en-us/products/i-o/ethercat-terminals/ek-ec1xxx-bk1xx0-ethercat-coupler/bk1120.html">BK1120</a>, which allows an upgrade to EtherCAT without re-terminating any I/O points.</li>



<li>Consider your safety system as part of the upgrade plan. Some TwinCAT 2 systems use the KL6904 Safety Controller, which is not programmable within TwinCAT 3 and will not be convertible to a TwinCAT 3 Project.
<ul class="wp-block-list">
<li>This should be replaced with a TwinSAFE Logic-capable EtherCAT terminal, like the <a href="https://www.beckhoff.com/en-us/products/automation/twinsafe/twinsafe-hardware/el6910.html" type="link" id="https://www.beckhoff.com/en-us/products/automation/twinsafe/twinsafe-hardware/el6910.html">EL6910</a>.</li>
</ul>
</li>
</ol>



<h3 id="h-what-you-ll-need" class="wp-block-heading">What You&#8217;ll Need:</h3>



<p class="wp-block-paragraph">If you are interested in converting an entire TC2 Project (PLC project and related Motion, IO, and System information), you will need the TC2 project’s .tsm/.wsm, .pro files, and any referenced libraries. Then follow the instructions in <a href="#h-section-2-twincat-project-conversion-system-motion-io-plc" type="internal" id="#h-section-2-twincat-project-conversion-system-motion-io-plc">Section 2</a>. </p>



<p class="wp-block-paragraph">If you only wish to convert a library or a PLC project by itself, you will only need the .pro or .lib file) and to follow the instructions in <a href="#h-section-3-convert-tc2-plc-code-libraries-to-tc3-section" type="internal" id="#h-section-3-convert-tc2-plc-code-libraries-to-tc3-section">Section 3</a>.</p>



<p class="wp-block-paragraph">Please note: Beckhoff provides some&nbsp;additional&nbsp;information on restrictions and warnings on TC2 Conversion projects on&nbsp;<a href="https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/2526152075.html&amp;id=">Infosys</a>. These can help resolve some compilation errors.&nbsp;</p>



<h2 id="h-section-2-twincat-project-conversion-system-motion-io-plc" class="wp-block-heading">Section 2: TwinCAT Project Conversion (System, Motion, IO, PLC):</h2>



<ol class="wp-block-list">
<li>Ensure that you have the .tsm and .pro files for the TwinCAT 2 Project
<ul class="wp-block-list">
<li>The TwinCAT 2 project must successfully compile before attempting the conversion.</li>



<li>If you have a .wsm file instead of .tsm, the file can be easily converted using TwinCAT System Manager by clicking “Save As…” and choosing the .tsm file format.</li>
</ul>
</li>



<li>Ensure that you have the .lib file for any custom libraries used in the Tc2 project available for conversion
<ul class="wp-block-list">
<li>Any missing libraries will need to be re-created or replaced</li>
</ul>
</li>



<li>If you are planning on using TwinCAT 3 4026, the conversion from TwinCAT 2 MUST occur in 4024 first. After conversion, the 4024 project can then be migrated to 4026.
<ul class="wp-block-list">
<li>This guide will be for converting using TwinCAT 3 4024 installed through the Full XAE Installer.</li>



<li>Doing the conversion using an Engineering PC with TwinCAT Package Manager may be possible with the 4024 Remote Manager, but for the smoothest process, use an Engineering PC with 4024 installed.</li>
</ul>
</li>



<li>Create a new XAE Shell project for the new TC3 Project</li>



<li>Right-click the XAE Project and select “Load Project from TwinCAT 2.XX Version …”
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-2-conversion.png" alt="TwinCAT 2 Conversion"></li>



<li>Note: By loading the project here, the .tsm project will also be converted.
<ul class="wp-block-list">
<li>If you want to convert only the PLC code (.pro file), that is detailed in section 3: <a href="#h-section-3-convert-tc2-plc-code-libraries-to-tc3-section" type="internal" id="#h-section-3-convert-tc2-plc-code-libraries-to-tc3-section">“Convert TC2 PLC Code / Libraries to TC3</a><strong>.</strong></li>
</ul>
</li>
</ul>
</li>



<li>In the pop-up window, select the .tsm file of the TwinCAT 2 Project
<ul class="wp-block-list">
<li>Reminder: If you have a .wsm file, this needs to be re-saved as a .tsm file in TwinCAT System Manager (Tc2 IDE)</li>



<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat2-project.png" alt="TwinCAT 2 Project"></li>
</ul>
</li>



<li>Select OK in the confirmation pop-up
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/TcXaeShell.png" alt="TcXaeShell"></li>
</ul>
</li>



<li>XAE Shell will now begin converting the project</li>



<li>If there are any custom libraries in the TC2 Project, you will receive the following warning message that it cannot find certain libraries. Please press no.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-plc-cloud.png" alt=""></li>



<li>Any libraries with available source code (.lib file) can be converted and added to the project later in the guide.</li>
</ul>
</li>



<li>A new pop-up will appear with a list of all missing libraries
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-plc-cloud-missing-libraries.png" alt="TwinCAT PLC Cloud missing libraries"></li>
</ul>
</li>



<li>During the conversion, there may be unrestored links. Press Yes to keep this information.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/unrestorted-variables-links-twincat.png" alt="unrestored variables links twincat"></li>



<li>Later in the guide, we will go through this list to ensure no IO is unlinked.</li>
</ul>
</li>



<li>After this, information in SYSTEM, MOTION, PLC, Visu, and I/O should be populated from the converted project.
<ul class="wp-block-list">
<li>I recommend going through the project to make sure there are no missing files or IO that were missed in the conversion.</li>
</ul>
</li>



<li>Congratulations! Most of the project is now converted. Now, we just need to resolve any issues that came from the conversion.</li>



<li>If there were any external libraries in the TC2 Project that were not converted, we will add them now.
<ul class="wp-block-list">
<li>If no external libraries need to be converted, skip to <a href="#step-20-acnchor-link" type="internal" id="#step-20-acnchor-link">Step 20</a>.</li>
</ul>
</li>



<li id="step-15">Follow the instructions in <a href="#h-section-3-convert-tc2-plc-code-libraries-to-tc3-section" type="internal" id="#h-section-3-convert-tc2-plc-code-libraries-to-tc3-section">section 3</a> “Convert TC2 PLC Code / Libraries to TC3” below to convert the library. Once complete, return to this step.</li>



<li>After converting the external library, right-click the library’s .plcproj and click “Save As Library” or “Save as Library and Install…”
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/plc-ctrl-project.png" alt="PLC Ctrl Project"></li>
</ul>
</li>



<li>You may get a warning and be asked to fill in Library Information. If so, fill out the 3 bolded sections and click Save.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/plc-library-information-twincat.png" alt="PLC Library Information TwinCAT"></li>
</ul>
</li>



<li>Try “Save as Library …” or “Save as Library and Install …” again
<ul class="wp-block-list">
<li>After this, the library should now be installed as TwinCat 3 library and can be added to our PLC project.</li>



<li>Example of the converted library below:</li>



<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-converted-library.png" alt="TwinCAT Converted Library"></li>
</ul>
</li>



<li>Once the library has been installed, we can delete the library’s PLC project from our solution.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/library-plc-project.png" alt="Library PLC Project"></li>
</ul>
</li>



<li id="step-20-acnchor-link">Once all external libraries have been converted and installed, we can now perform some library management.
<ul class="wp-block-list">
<li>Some of the Beckhoff-provided libraries may be obsolete and should be replaced.</li>



<li>One common replacement needed is the TcMC library. This should be upgraded to the TcMC2 Library.
<ul class="wp-block-list">
<li>Beckhoff provides great documentation on what is needed for this upgrade in the <a href="https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibmc2/458356875.html&amp;id=">Infosys</a>.</li>
</ul>
</li>
</ul>
</li>



<li>This guide does not cover any hardware changes needed, but the IO tree will need to include any changes made to the hardware configuration.</li>



<li>After this, you can attempt to compile the code and work through any errors that may come up.</li>



<li>Once the code successfully compiles, your PLC Project should be complete!</li>



<li>Please check the Safety or Motion sections of this guide to set up those sides of the project.</li>



<li>Tips and Tricks:
<ul class="wp-block-list">
<li>All GVLs will come with attribute {attribute &#8216;Tc2GvlVarNames’} and all GVL tag references will not include the GVL’s namespace.
<ul class="wp-block-list">
<li>This can make the converted code unclear, as global variables may appear as local variables.</li>



<li>I recommend that you add the GVL namespace to all global variables in the converted code if possible.</li>



<li>More info on this attribute can be found on <a href="https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/3107783051.html&amp;id=" target="_blank" rel="noreferrer noopener">Infosys</a>.</li>
</ul>
</li>
</ul>
</li>
</ol>



<h2 id="h-section-3-convert-tc2-plc-code-libraries-to-tc3-section" class="wp-block-heading">Section 3: Convert TC2 PLC Code / Libraries to TC3 Section:</h2>



<p class="wp-block-paragraph">This section of the guide will cover how to convert a single PLC project or a library file to TwinCAT 3.</p>



<ol class="wp-block-list">
<li>Ensure that you have the .pro or .lib file that you wish to convert. Start with the .lib files.</li>



<li>Open the TwinCAT project that you wish to add the PLC project to.</li>



<li>Right-click the PLC Project node, and select “Add Existing Item…”
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/add-existing-item-to-plc.png" alt=""></li>
</ul>
</li>



<li>Then select either the .pro file if PLC project, or the .lib file if converting a library
<ul class="wp-block-list">
<li>The default selection in the file explorer will allow both file formats.</li>



<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/plc-project-file.png" alt="PLC project file"></li>
</ul>
</li>



<li>Once added, XAE Shell will convert the code to TC3, and add it as a separate .plcproj to the solution.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/plc-ctrl.png" alt="PLC CTRL"></li>
</ul>
</li>



<li>Look through the converted project to ensure there are no errors or mis-conversion. This should be unlikely, as XAE Shell does a good job of converting.</li>



<li>If you are converting a library, you can now return to <a href="#step-15" type="internal" id="#step-15">Step 15</a> of the TwinCAT Project conversion section to continue with the System Configuration conversion.
<ul class="wp-block-list">
<li>If you are only converting PLC code, you are done!</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph">It is possible&nbsp;even if only converting the&nbsp;.pro&nbsp;file&nbsp;that&nbsp;when importing into&nbsp;TC3&nbsp;the system will ask about converting&nbsp;libraries. You should go back and convert libraries first, then use the installed library with the second&nbsp;option&nbsp;in the dialog to avoid issues.&nbsp;</p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" width="472" height="305" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/library-reference-conversion-1.png" alt="Library reference conversion" class="wp-image-43140" style="aspect-ratio:1.5476046088538509;width:459px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/library-reference-conversion-1.png 472w, https://static.dmcinfo.com/wp-content/uploads/2026/04/library-reference-conversion-1-300x194.png 300w" sizes="(max-width: 472px) 100vw, 472px" /></figure>



<h2 id="h-section-4-safety-twinsafe-projects" class="wp-block-heading">Section 4: Safety / TwinSAFE Projects:</h2>



<p class="wp-block-paragraph">Safety projects are not automatically converted when converting the .tsm file covered in Section 2, so we will need to manually import the project from TwinCAT 2.</p>



<p class="wp-block-paragraph">Note: If the TwinCAT 2 Project is using the KL6904 Controller, that will need to be replaced as it is not configurable through TwinCAT 3. To see a listing of acceptable terminals with both logic and output like the KL6904, see the <a href="https://www.beckhoff.com/en-en/products/i-o/ethercat-terminals/elx9xx-twinsafe/tabular-product-overview/">TwinSAFE product overview page</a>.</p>



<ol class="wp-block-list">
<li>Open the TSM file in TwinCAT System Manager and navigate to your IO Configuration.</li>



<li>Inside your IO configuration, identify your Safety Controllers
<ul class="wp-block-list">
<li>TwinCAT 2 Compatible safety controllers are:
<ul class="wp-block-list">
<li>EL6900</li>



<li>EL6930</li>



<li>KL6904 – see note above about TC3 compatibility</li>
</ul>
</li>
</ul>
</li>



<li>From your TSM file in TwinCAT 2, open your safety controller and click the “TwinSAFE Logic” Tab. Then click the “Export…” button and save the export as an XML file.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/TwinSAFE-Logic.png" alt="TwinSAFE Logic"></li>
</ul>
</li>



<li>With the XML export, go to the Safety Node of the TwinCAT project and select “Add Existing Item…”
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/safety-node.png" alt=""></li>
</ul>
</li>



<li>In the pop-up, select the XML export of the Safety Project(s). Make sure to change the file format options to include XMLs.
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-safety-export.png" alt="TwinCAT Safety Export"></li>
</ul>
</li>



<li>In the pop-up, select your Safety Controller
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-safety-controller.png" alt="TwinCAT safety controller"></li>
</ul>
</li>



<li>Then restore all the links in the Safety Project
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/safety-project.png" alt="Safety Project"></li>



<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-physicial-channel.png" alt="TwinCAT physical channel"></li>



<li>Finished Example:</li>



<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/restore-displayed-links.png" alt="TwinCAT restore displayed links"></li>
</ul>
</li>



<li>With the safety project converted, double-check that all connections and TwinSAFE FBs are correct.</li>
</ol>



<h2 id="h-section-5-motion" class="wp-block-heading">Section 5: Motion</h2>



<p class="wp-block-paragraph">While the Motion tasks and axes are automatically converted by XAE Shell with the TSM configuration, the PLC control of the axes may need manual adjustments. This section of the guide&nbsp;covers how to re-link the Axes to the TcMC2 data types.</p>



<ol class="wp-block-list">
<li>If the TwinCAT 2 Project used TcMC, please follow the instructions in <a href="#step-20-acnchor-link" type="internal" id="#step-20-acnchor-link">Step 20</a> of the TwinCAT Project Conversion section regarding the PLC code changes recommended by Beckhoff.
<ul class="wp-block-list">
<li>The NCTOPLC and PLCTONC AXIS_REFs have been combined into a single AXIS_REF struct</li>



<li>Old: 
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/old-axis-ref.png" alt="Old AXIS_REF"></li>
</ul>
</li>



<li>New: 
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/new-axis-ref.png" alt="New AXIS REF"></li>
</ul>
</li>
</ul>
</li>



<li>Once completed with these changes, the AXIS_REF structs will need to be linked back to the axes.
<ul class="wp-block-list">
<li>Note: If you do not see the Axis when linking, try rebuilding your PLC Project.</li>



<li>Linking:
<ul class="wp-block-list">
<li><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/twincat-conversion.png" alt="TwinCAT 2 Conversion"></li>
</ul>
</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph">Congratulations, your TwinCAT 2 Project is now ready for a TwinCAT 3 PLC!</p>



<p class="wp-block-paragraph">You can follow our other guides: <a href="https://static.dmcinfo.com/blog/19695/getting-started-with-a-beckhoff-plc-part-one-setup/">Getting Started with a Beckhoff PLC</a> to continue with your PLC upgrade. </p>



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



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" data-type="page" data-id="420">Automation</a> experts can help upgrade TwinCAT 2 projects with TwinCAT 3, TwinSAFE, and next-generation EtherCAT hardware. Learn more about our <a href="https://static.dmcinfo.com/our-work/category/service/manufacturing-automation-and-intelligence/beckhoff-twincat/" data-type="work_category" data-id="1289">Beckhoff PLC</a> capabilities.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/42538/twincat-2-to-twincat-3-conversion/">Beckhoff TwinCAT 2 to TwinCAT 3 Conversion</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Getting Started with Beckhoff AMP8000 Series Motors in TwinSAFE</title>
		<link>https://static.dmcinfo.com/blog/36150/getting-started-with-beckhoff-amp8000-series-motors-in-twinsafe/</link>
		
		<dc:creator><![CDATA[Kristen Stubenazy]]></dc:creator>
		<pubDate>Fri, 11 Jul 2025 15:51:42 +0000</pubDate>
				<category><![CDATA[Beckhoff PLC]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=36150</guid>

					<description><![CDATA[<p>This walkthrough details how to configure safety for multiple Beckhoff AMP8000 series drives, but can be used for a single drive or AX8000 series drives as well. This only covers a simple STO application with the intention of the PLC handling reset of safety, drives, and error acknowledgment programmatically. We will be using the information [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/36150/getting-started-with-beckhoff-amp8000-series-motors-in-twinsafe/">Getting Started with Beckhoff AMP8000 Series Motors in TwinSAFE</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This walkthrough details how to configure safety for multiple Beckhoff AMP8000 series drives, but can be used for a single drive or AX8000 series drives as well. This only covers a simple STO application with the intention of the PLC handling reset of safety, drives, and error acknowledgment programmatically.</p>



<p class="wp-block-paragraph">We will be using the information from <a href="https://www.youtube.com/watch?v=AWgjPmUjJ5I" target="_blank" rel="noreferrer noopener">TwinSAFE Tutorial 11: Safe Addressing for AMP and AMI</a>, and <a href="https://youtu.be/UG8Xzj9f6Sg" target="_blank" rel="noreferrer noopener">TwinSAFE Tutorial 1: SafeMotion Wizard – Creating and configuring a Safe Motion project with SLS</a>.</p>



<h2 id="h-load-in-io" class="wp-block-heading">Load In IO</h2>



<p class="wp-block-paragraph">The drives and safety IO will need to have been scanned or added into your IO tree and &nbsp;axes created in a MOTION project. After downloading the Drive Manager 2 (DM2) software from Beckhoff, a project can be added to the TwinCAT solution. See Beckhoff’s <a href="https://download.beckhoff.com/download/document/motion/tc3_drive_manager_2_en.pdf" target="_blank" rel="noreferrer noopener">Quick commissioning guide | EN TE5950 TC3 Drive Manager 2</a> for more information on setting up DM2.</p>



<p class="wp-block-paragraph">With the system still in config mode, a new DM2 project can be created by right-clicking on the solution and selecting ‘Add’. Then, in the project tree, you can select the new project, and it will search for drives. In the popup, you should see every drive currently connected to the PLC.</p>



<p class="wp-block-paragraph">In this example, DM2 was able to automatically find all of these drives shown below. You can click “Check all” at the top for both options to enable automatic scanning of the motors and have &#8216;Scan motor in Pre-Op&#8217; selection.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><a id="_msocom_1"></a></p>



<figure class="wp-block-image size-full"><img decoding="async" width="780" height="354" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/motor-scan.png" alt="motor scan" class="wp-image-36153" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/motor-scan.png 780w, https://static.dmcinfo.com/wp-content/uploads/2025/07/motor-scan-300x136.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/07/motor-scan-768x349.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="wp-block-paragraph">The other setting shown will be system specific, follow the specs for your motors. Any additional gear box ratio and settings for the motor should be applied.</p>



<p class="wp-block-paragraph">Then, make sure you Activate Config to push configuration settings and scaling from the DM2 project to the motors.</p>



<h2 id="h-create-and-expose-plc-variables" class="wp-block-heading">Create and Expose PLC Variables</h2>



<p class="wp-block-paragraph">Create a PLC project if you haven’t already. Our safety program will require input from the PLC. In either a global variable list (GVL) or a program (PRG), make your four output address variables.</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">Structured Text</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>OUT_bSafetyResetSignal AT %Q*: BOOL;
OUT_bSafetyRun AT %Q*: BOOL;
OUT_bSafetyErrorAck AT %Q*: BOOL;
OUT_bSafetyDriveErrorAck AT %Q*: BOOL;</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: #9CDCFE">OUT_bSafetyResetSignal</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">AT</span><span style="color: #D4D4D4"> %</span><span style="color: #4FC1FF">Q</span><span style="color: #D4D4D4">*: </span><span style="color: #4FC1FF">BOOL</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #9CDCFE">OUT_bSafetyRun</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">AT</span><span style="color: #D4D4D4"> %</span><span style="color: #4FC1FF">Q</span><span style="color: #D4D4D4">*: </span><span style="color: #4FC1FF">BOOL</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #9CDCFE">OUT_bSafetyErrorAck</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">AT</span><span style="color: #D4D4D4"> %</span><span style="color: #4FC1FF">Q</span><span style="color: #D4D4D4">*: </span><span style="color: #4FC1FF">BOOL</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #9CDCFE">OUT_bSafetyDriveErrorAck</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">AT</span><span style="color: #D4D4D4"> %</span><span style="color: #4FC1FF">Q</span><span style="color: #D4D4D4">*: </span><span style="color: #4FC1FF">BOOL</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p class="wp-block-paragraph">Build, so that the variables generate in the instance of the PLC project and can later be used for linking.</p>



<p class="wp-block-paragraph">Every TwinSAFE program for an EL6910 or newer logics is required to have &#8220;RUN&#8221; and &#8220;ERRACK&#8221; signals linked to standard signals, which we are calling OUT_bSafetyRun and OUT_bSafetyErrorAck, as error acknowledgement is not automatic in TwinSAFE. Without these, the TwinSAFE Group our function blocks are in will not execute. Additionally, we have created a reset signal (OUT_bSafetyResetSignal) that we can use in the PLC to reset our function blocks when specific conditions are met. This could be from an external push button, an HMI screen, or some other code condition.</p>



<p class="wp-block-paragraph">Lastly, specific to the fact that we are making a safety program for Beckhoff Motors with embedded safety cards, we have a separate error acknowledgment signal (OUT_bSafetyDriveErrorAck) for the drives. This is because many types of drives require explicit error acknowledgement, and it may be that this needs to be distinct from error acknowledgment of the entire TwinSAFE group. The operating manual for your specific drive&#8217;s safety card is the best reference. </p>



<h2 id="h-creating-the-standard-el6910-safety-project" class="wp-block-heading">Creating the Standard EL6910 Safety Project </h2>



<p class="wp-block-paragraph">Click the blue cog icon in the top left of the TwinCAT toolbar to swap the system back into config mode and select yes on the popup to activate free run. This will allow for proper scanning of terminals.</p>



<p class="wp-block-paragraph">Now, a standard TwinSAFE project can be created by right clicking on the safety node and selecting ‘Add New Item’. In the window, select “TwinCAT Safety Project Preconfigured Inputs” to create a project with preconfigured inputs.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="344" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/creating-standard-EL6910-safety-project.png" alt="EL6910 Safety project " class="wp-image-36155" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/creating-standard-EL6910-safety-project.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/creating-standard-EL6910-safety-project-300x165.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">In the project’s Target System, select the terminal you will use as your safety controller. For this example, here is the relevant safety IO.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="188" height="245" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safety-io.png" alt="safety IO" class="wp-image-36161"/></figure>



<p class="wp-block-paragraph">We have an EtherCAT coupler, a power supply terminal, a safety digital input/output card, a standard digital output card, a standard digital input card, a dedicated safety controller card, and a license key terminal followed by a bus end cap. For more information about each terminal, see <a href="https://www.beckhoff.com/en-us/products/i-o/ethercat-terminals/tabular-product-overview/" target="_blank" rel="noreferrer noopener">Beckhoff’s EtherCAT terminals overview</a>.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="231" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/solution-explorer.png" alt="solution explorer" class="wp-image-36165" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/solution-explorer.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/solution-explorer-300x111.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">After selecting the Target system from the drop down, you need to ensure the Safe Address matches the hardware address for the terminal. This example uses an EL6910, so the hardware address was set via the dipswitch on the physical terminal and, when scanned in, we see it reads the number expected in the hardware address field.</p>



<p class="wp-block-paragraph">NOTE: If you forgot to set the hardware address on any of your safety terminals (EK1914, EL2911, EL6910, or any ELx9xxx series terminals), please pause now and safely power down your system so that the physical terminals can be accessed. Read the operating manual for each terminal for information on how to set the hardware address. Remember, each address must be unique within the network and 0 is not a valid TwinSAFE address.</p>



<p class="wp-block-paragraph">To make the Safe Address match the hardware address, select the green reload button next to the hardware address box to make sure the number in the field is correct, and then the green arrow button to push the number to the safe address field.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="424" height="333" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-safe-address.png" alt="safe motion safe address" class="wp-image-36166" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-safe-address.png 424w, https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-safe-address-300x236.png 300w" sizes="(max-width: 424px) 100vw, 424px" /></figure>



<p class="wp-block-paragraph">Additionally, for this project we are going to select the two checkmarks for Connection Inputs/Outputs for visible traceability. This allows for an exact interpretation of the links.</p>



<p class="wp-block-paragraph">‘Save-All’ with CTRL+SHIFT+S or via the top menu bar before leaving this page.</p>



<h3 id="h-add-relevant-alias-devices" class="wp-block-heading">Add Relevant Alias Devices</h3>



<p class="wp-block-paragraph">With our safety controller configured to hold a project, you can now import in your PLC variables, and any additional safety terminals. Importantly, you do not want to add any of the drives to this safety project. They will instead be added via the safe motion wizard later.</p>



<p class="wp-block-paragraph">To do this, right-click on our newly created safety project’s Alias Devices folder. From here, you can click on New Item and make both of the additional digital Inputs. You should name both of them appropriately. Then, you can import any safety terminals you will use in the safety project from your IO.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="237" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/io-configuration.png" alt="io configuration" class="wp-image-36167" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/io-configuration.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/io-configuration-300x114.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">As shown above, two of the inputs we need were created already by choosing to make a preconfigured safety project. Since we already created the PLC variables we need to link to, we can do that as well. For each alias device created, open its page and click the:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="37" height="37" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/add-alias-devices-icon-1.png" alt="" class="wp-image-36616"/></figure>



<p class="wp-block-paragraph">symbol to link each to its corresponding PLC variable. </p>



<p class="wp-block-paragraph">Now, the blocks inside the standard safety project can be made.</p>



<h3 id="h-write-the-sal" class="wp-block-heading">Write the .SAL</h3>



<p class="wp-block-paragraph">First, you add a safeEStop and safeAnd block. This is for our single dual channel EStop. Then, create variables that match those below. It is important that this layout of this is not deviated from for reasons discussed below.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="297" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/estop.png" alt="estop" class="wp-image-36168" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/estop.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/estop-300x143.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">bPLCRestart and bPLCDriveErrorAck will be the two additional standard digital input variables we created. In order to have the drive error acknowledgment signal properly reset the entire safety system, it must be the first input on the safeAnd block as it is a standard input. Beckhoff has documentation on <a href="https://download.beckhoff.com/download/Document/automation/twinsafe/twinsafe-logic-fb_en.pdf" target="_blank" rel="noreferrer noopener">TwinSAFE Logic and Function Blocks</a> if you want to learn more.</p>



<p class="wp-block-paragraph">bChannelA and bChannelB represent both channels of the E-Stop, and will be physically wired through the EL2911. By clicking on the EStopIn1 port you can open the properties tab and change the channel interface from Single-Channel Both Activated to Two-Channel and set a discrepancy time.</p>



<p class="wp-block-paragraph">For now, we will not do the Variable Mapping as there is more to add in. Save All and then Verify the project. Errors are expected and can be ignored for now.</p>



<h2 id="h-safe-addressing-for-amp-and-ami" class="wp-block-heading">Safe Addressing for AMP and AMI</h2>



<p class="wp-block-paragraph">Beckhoff AMP and AMI drives have internal TwinSAFE cards that like their physical terminal counterparts, also require unique safe addresses. These drives do not have physical hardware switches though and must be set a different way. AX8xxx drives do have physical hardware switches to set and this section can be skipped for such hardware.</p>



<p class="wp-block-paragraph">With the system in config mode, and free run activated, navigate to the TwinSAFE toolbar. If you do not have this toolbar added, you can do so from right-clicking in the toolbar area and clicking to add TwinCAT Safety, or under View on the menu bar, View&gt;Toolbars&gt;TwinCAT Safety.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="345" height="80" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/download-safe-address.png" alt="download safe address" class="wp-image-36170" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/download-safe-address.png 345w, https://static.dmcinfo.com/wp-content/uploads/2025/07/download-safe-address-300x70.png 300w" sizes="(max-width: 345px) 100vw, 345px" /></figure>



<p class="wp-block-paragraph">Click ‘Download Safe Address’. In the popup, select all the drives you need to set the safe address of.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="296" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/choose-safety-device.png" alt="choose safety device" class="wp-image-36171" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/choose-safety-device.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/choose-safety-device-300x142.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Click ’Next‘. Now you need to assign &nbsp;a unique safe address within the network for each drive. Remember, address 0 is not a valid TwinSAFE address. In this example, the Terminal number was arbitrarily decided to be made the drive’s address. When finished, click Next.</p>



<p class="wp-block-paragraph">Input the default TwinSAFE username (Administrator) and password (TwinSAFE) to the window and select all the devices to download the safe addresses.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="306" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/download-safe-address-on-devices.png" alt="download safe address on devices" class="wp-image-36172" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/download-safe-address-on-devices.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/download-safe-address-on-devices-300x147.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Read through and finish verifying you work, closing the window with the ‘Finish’ button when you are done.</p>



<p class="wp-block-paragraph">Now, you need to power cycle your system (specifically, the drives) so that upon system startup, the drives will load the correct FSOE address.</p>



<p class="wp-block-paragraph">To check and make sure the address was set, in the IO tree navigate to any drive and go to the CoE &#8211; Online tab. Click Update All to refresh the information there. Scroll down until you see Safe Address and expand it. By default, the FSOE address was 1, it should now be what you set it to.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="212" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/io-tree-navigation.png" alt="io tree navigation" class="wp-image-36173" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/io-tree-navigation.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/io-tree-navigation-300x102.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">In this picture, we can see the FSOE was set to 4</p>



<h2 id="h-create-safe-motion-wizard-safety-project" class="wp-block-heading">Create Safe Motion Wizard Safety Project</h2>



<p class="wp-block-paragraph">If you have not followed the above steps for Safe Addressing <strong>AND</strong> powered cycled your motors for AMP or AMI systems, do not continue.</p>



<p class="wp-block-paragraph">Now that you have your standard safety project and safe addresses on your drives, you can run the Beckhoff TwinSAFE Motion Wizard. This requires &gt;=v1.3.0 of the Safety Editor. Start the wizard from the drop-down option under TwinSAFE&gt;Wizards&gt;Start Safe Motion Wizard….</p>



<figure class="wp-block-image size-full"><img decoding="async" width="596" height="624" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/beckhoff-twinsafe-motion-wizard.png" alt="beckhoff twinsafe motion wizard" class="wp-image-36174" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/beckhoff-twinsafe-motion-wizard.png 596w, https://static.dmcinfo.com/wp-content/uploads/2025/07/beckhoff-twinsafe-motion-wizard-287x300.png 287w" sizes="(max-width: 596px) 100vw, 596px" /></figure>



<p class="wp-block-paragraph">Then, in the popup that opens, select your drives under Target Type &nbsp;if they do not automatically populate. Check all of the drives as the project targets.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="371" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard.png" alt="safe motion wizard" class="wp-image-36175" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-300x178.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Click ‘Next’. For the safety feedbacks, on the AMP8xxxx system there is only the default encoder option available for all drives, and only on channel A. Choose the option appropriate for your hardware.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="329" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safety.png" alt="safe motion wizard safety" class="wp-image-36176" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safety.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safety-300x158.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">An AX8xxx system might have options for channel A and B, as well as options on what encoder can be selected on each. If only using one channel on AX8xxxx systems, select No Safety Encoder for the unused channel.</p>



<p class="wp-block-paragraph">Click ‘Next’. For selecting safety function(s), we only desire STO functionality and will therefore touch nothing. This is auto-selected for all of our drives.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="354" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safety-function.png" alt="safe motion wizard safety function" class="wp-image-36177" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safety-function.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safety-function-300x170.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Click ‘Next’. The project can be given a name on the configuration page. We will call it Safe Motion.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="351" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/configure-twinsafe-projects.png" alt="configure twinsafe projects" class="wp-image-36178" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/configure-twinsafe-projects.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/configure-twinsafe-projects-300x169.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Click ‘Next’. On the assignment step, click on the “…” button to select the drives. This will create the FSOE connections in the standard safety project to allow communication between it and the safe motion project.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="236" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/assignment-of-master-target-logics.png" alt="assignment of master targets logics" class="wp-image-36180" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/assignment-of-master-target-logics.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/assignment-of-master-target-logics-300x113.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Click ‘Next’. For the Safe Address page, a few incorrect states can be noted. As the system should be connected, you should not see the red boxes. The wizard should automatically load in the correct TwinSAFE address from the drives.</p>



<p class="wp-block-paragraph">If this is being performed offline, manually putting the FSOE addresses here would suffice.</p>



<p class="wp-block-paragraph">Troubleshooting Note: If addresses show up as zero, and we have communication to the drive under the EtherCAT master (free run turned on), it is possible that the safe addresses were not set properly either via safe addressing download or dipswitch. Cancel the wizard and perform necessary checks, do not try and continue with an FSOE address of zero on any device.</p>



<p class="wp-block-paragraph">The following is incorrect:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="355" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safe-address-selection.png" alt="safe motion wizard safe address selection incorrect" class="wp-image-36181" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safe-address-selection.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safe-address-selection-300x171.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">This is correct:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="304" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safe-address-selection-correct.png" alt="safe motion wizard safe address selection correct" class="wp-image-36182" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safe-address-selection-correct.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/safe-motion-wizard-safe-address-selection-correct-300x146.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Click ‘Next’. Read and acknowledge the safety warning and exit the wizard by clicking the ‘Finish’ button.</p>



<p class="wp-block-paragraph">There should be a popup that the safe motion wizard project was created successfully, and the master project was updated successfully.</p>



<h2 id="h-finishing-the-standard-el6910-safety-project" class="wp-block-heading">Finishing the Standard EL6910 Safety Project</h2>



<p class="wp-block-paragraph">As promised, we now return to the standard safety project for variable mapping.</p>



<p class="wp-block-paragraph">In the standard safety project we created before, you should now see new custom FSOE connections for each of the drives. This is why we did not manually add the drives to this project earlier.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="306" height="93" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/connection-to-drive.png" alt="connection to drive safe motion wizard" class="wp-image-36185" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/connection-to-drive.png 306w, https://static.dmcinfo.com/wp-content/uploads/2025/07/connection-to-drive-300x91.png 300w" sizes="(max-width: 306px) 100vw, 306px" /></figure>



<p class="wp-block-paragraph">Open up the .SAL and click on the bottom tab for Variable Mapping. The following picture shows all the mappings with explanations of each piece to follow.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="320" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/variable-mapping.png" alt="variable mapping " class="wp-image-36189" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/variable-mapping.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/variable-mapping-300x154.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">The first two variables are the standard I/O variables from the PLC defined by the preconfigured project. They should already be mapped for you.</p>



<p class="wp-block-paragraph">Next, the bPLCRestart signal to our safeEStop block is mapped to the corresponding alias device digital input created earlier. As previously mentioned, this allows for the PLC to issue a signal for restart of the safeEstop block and ensuing error acknowledgement, presumably after an EStop press.</p>



<p class="wp-block-paragraph">bChannelA and bChannelB are the two inputs from our physical EStop, run through the EL2911 safety terminal and activate our safeEStop block.</p>



<p class="wp-block-paragraph">The EStopOut signal from the safeEStop block is mapped to a multitude of devices. Notably, both &nbsp;ChA STO and SS1 bits for each drive. You can hold down CTRL+Click to select a multitude of variables. In addition to the drives, another standard variable was created to see the EStop signal status in the PLC (not necessary for functionality), and the signal was mapped to the coupler (also not necessary). This was done for the ability to add other functionality desired later.</p>



<p class="wp-block-paragraph">The safeAnd block then takes in the EStop signal, expected to be high, with drive error acknowledgment from the PLC. This lets the PLC acknowledge drive errors and if the EStop has been reset since it was last pressed, the bSafetyErrorAck then pushes the error acknowledgment to the drive. CTRL+Click to select all the error acks on each drive.</p>



<p class="wp-block-paragraph">Save-All when done.</p>



<h2 id="h-finishing-the-safe-motion-wizard-project" class="wp-block-heading">Finishing the Safe Motion Wizard Project</h2>



<p class="wp-block-paragraph">Looking at the newly created safe motion wizard project, there is nothing in the SALs we need to touch as the wizard handles it all. For this example, since we have multiple AMP8xxx series drives, we need to do multisettings. If you only had one drive, this part is not necessary, and you can skip to the last section.</p>



<h3 id="h-multi-settings" class="wp-block-heading">Multi-Settings</h3>



<p class="wp-block-paragraph">In the safe motion wizard project, there is a last bit of configuration to be done before everything fits nicely together. If we open the Multi-settings.sms, we see all the drives we previously added. If we horizontally scroll to the right, we can see that Run and Err_Ack don’t have all the same links as the first motor.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="230" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-settings-safe-motion-wizard.png" alt="multi settings safe motion wizard" class="wp-image-36191" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-settings-safe-motion-wizard.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-settings-safe-motion-wizard-300x111.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">You need to click the “…” on each and add the run and err ack links. Then it should look like this when it is finished.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="213" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-settings.png" alt="multi settings safe motion wizard" class="wp-image-36193" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-settings.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-settings-300x102.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<h2 id="h-completing-and-downloading" class="wp-block-heading">Completing and Downloading</h2>



<p class="wp-block-paragraph">With the projects complete, you can now verify the main project and then perform a multi-download.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="624" height="202" src="https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-download-safe-motion-wizard.png" alt="multi download safe motion wizard" class="wp-image-36194" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-download-safe-motion-wizard.png 624w, https://static.dmcinfo.com/wp-content/uploads/2025/07/multi-download-safe-motion-wizard-300x97.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p class="wp-block-paragraph">Now activate the configuration.</p>



<p class="wp-block-paragraph">Using the login feature on the PLC, you can now toggle the ErrAck and Run signals. You will now be able to move the motors via the MOTION project, or Drive Manager 2.</p>



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



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">From TwinSAFE configuration and Safe Motion setup to advanced motion control systems, See how our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" id="420">Automation</a> team helps manufacturers deploy safe and scalable <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/motion-control-engineering-and-servo-systems/beckhoff-motion-control-programming/" data-type="page" data-id="491">Beckhoff</a> solutions.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/36150/getting-started-with-beckhoff-amp8000-series-motors-in-twinsafe/">Getting Started with Beckhoff AMP8000 Series Motors in TwinSAFE</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
