%% Generated by Sphinx.
\def\sphinxdocclass{article}
\documentclass[a4paper,11pt,english]{sphinxhowto}
\ifdefined\pdfpxdimen
   \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
\fi \sphinxpxdimen=.75bp\relax
\ifdefined\pdfimageresolution
    \pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax
\fi
%% let collapsible pdf bookmarks panel have high depth per default
\PassOptionsToPackage{bookmarksdepth=5}{hyperref}

\PassOptionsToPackage{booktabs}{sphinx}
\PassOptionsToPackage{colorrows}{sphinx}
\PassOptionsToPackage{svgnames}{xcolor}
\PassOptionsToPackage{warn}{textcomp}
\usepackage[utf8]{inputenc}
\ifdefined\DeclareUnicodeCharacter
% support both utf8 and utf8x syntaxes
  \ifdefined\DeclareUnicodeCharacterAsOptional
    \def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}}
  \else
    \let\sphinxDUC\DeclareUnicodeCharacter
  \fi
  \sphinxDUC{00A0}{\nobreakspace}
  \sphinxDUC{2500}{\sphinxunichar{2500}}
  \sphinxDUC{2502}{\sphinxunichar{2502}}
  \sphinxDUC{2514}{\sphinxunichar{2514}}
  \sphinxDUC{251C}{\sphinxunichar{251C}}
  \sphinxDUC{2572}{\textbackslash}
\fi
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amstext}
\usepackage{babel}



\usepackage{tgtermes}
\usepackage{tgheros}
\renewcommand{\ttdefault}{txtt}



\usepackage[Bjarne]{fncychap}
\usepackage[,numfigreset=2,mathnumfig]{sphinx}
\sphinxsetup{hmargin={0.7in,0.7in}, vmargin={1in,1in},         verbatimwithframe=true,         OuterLinkColor={rgb}{0,0,0.6},         InnerLinkColor={rgb}{0,0,0},         warningBorderColor={rgb}{0.8,0,0},         cautionBorderColor={rgb}{1,0.8,0},         TitleColor={rgb}{0,0,0}}
\fvset{fontsize=auto}
\usepackage{geometry}


% Include hyperref last.
\usepackage{hyperref}
% Fix anchor placement for figures with captions.
\usepackage{hypcap}% it must be loaded after hyperref.
% Set up styles of URL: it should be placed after hyperref.
\urlstyle{same}

\addto\captionsenglish{\renewcommand{\contentsname}{Contents}}

\usepackage{sphinxmessages}
\setcounter{tocdepth}{2}


        \usepackage{currfile}
        \usepackage[internal]{eso-pdm}

        \pdmProgram{ELT}
        \pdmProject{Beckhoff PLC Configuration Guide}
        \pdmDocType{Manual (MAN)}
        \pdmDocDate{2022-12-21}

        \pdmDocId{ESO-315156}
        \pdmDocVersion{2}
        \pdmTitle{Beckhoff PLC Configuration Guide}
        \pdmHeaderTitle{Beckhoff PLC Configuration Guide}
        \pdmSignatureList{
                \pdmSignature{Owner}{Popovic, Dan}
                \pdmSignature{Validated by WPM}{Kiekebusch, Mario}
                \pdmSignature{Approved by PM}{Haucke, Jochen}
            }
        % Disable pagestyle changes as it breaks ESO PDM style
        \renewcommand{\pagestyle}[1]{}

        % Map the unicode U+2A2F character to a multiplication sign.
        \DeclareUnicodeCharacter{2A2F}{$\times$}

        \newcommand{\DUrolered}[1]{{\color{red} #1}}
        \newcommand{\DUroleblue}[1]{{\color{blue} #1}}
    

\title{Beckhoff PLC Configuration Guide}
\date{Aug 25, 2026}
\release{2}
\author{Dan Popovic}
\newcommand{\sphinxlogo}{\vbox{}}
\renewcommand{\releasename}{Release}
\makeindex
\begin{document}

\ifdefined\shorthandoff
  \ifnum\catcode`\=\string=\active\shorthandoff{=}\fi
  \ifnum\catcode`\"=\active\shorthandoff{"}\fi
\fi

\pagestyle{empty}

        \pdmmaketitle

        % Scope redefinition of clearpage to relax to avoid new pages for each
        \begingroup
        \let\clearpage\relax

        \section*{Release}
        This document corresponds to
        \sphinxhref{https://gitlab.eso.org/ifw/ifw-ll}{\texttt{BeckhoffPLCConfigurationGuide}\footnote{\sphinxnolinkurl{https://gitlab.eso.org/ifw/ifw-ll}}} v2.

        \makeatletter
        \def\author{\@author}
        \makeatother

        \section*{Authors}
        \begin{tabularx}{\linewidth}{|p{0.25\linewidth}|X|}
        \hline
        \multicolumn{1}{|l|}{\textbf{Name}}\tbspa &
        \multicolumn{1}{l|}{\textbf{Affiliation}} \tbspb\\
        \hline
        \tbspa Claudio Reinero & ESO \tbspb\\
        \tbspa Dan Popovic & ESO \tbspb\\
        \tbspa Mario Kiekebusch & ESO \tbspb\\
        \hline
        \end{tabularx}

        \section*{Change Record from previous Version}
        \begin{tabularx}{\linewidth}{|p{0.25\linewidth}|X|}
        \hline
        \multicolumn{1}{|l|}{\textbf{Affected Section(s)}}\tbspa &
        \multicolumn{1}{l|}{\textbf{Changes / Reason / Remarks}} \tbspb\\
        \hline
        %\tbspa \ref{\detokenize{docs/clients/config_tool:config-tool-operations}}
        %    & TODO: Indicate changes. \tbspb\\
        \tbspa Section 4.10 & Added \tbspb\\
        \hline
        \end{tabularx}
        \pdmmakeauthors
        \pdmmakechangerecord

        % Restore \clearpage
        \endgroup
    
\pagestyle{plain}
\pagenumbering{arabic}\tableofcontents\newpage
\pagestyle{normal}
\phantomsection\label{\detokenize{index::doc}}


\sphinxstepscope


\section{Introduction}
\label{\detokenize{docs/000_introduction:introduction}}\label{\detokenize{docs/000_introduction::doc}}

\subsection{Scope}
\label{\detokenize{docs/000_introduction:scope}}
\sphinxAtStartPar
This document is a configuration guide for Beckhoff PLCs used for ESO
projects. It details how to order PLCs and corresponding licenses as
well as how to configure PLCs before connecting them to the control
network.


\subsection{Definitions, Acronyms and Abbreviations}
\label{\detokenize{docs/000_introduction:definitions-acronyms-and-abbreviations}}
\sphinxAtStartPar
This document employs several abbreviations and acronyms to refer
concisely to an item, after it has been introduced. The following list
is aimed to help the reader in recalling the extended meaning of each
short expression:


\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\begin{tabulary}{\linewidth}[t]{TT}
\sphinxtoprule
\sphinxstyletheadfamily 
\sphinxAtStartPar
TBC
&\sphinxstyletheadfamily 
\sphinxAtStartPar
To Be Clarified
\\
\sphinxmidrule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
TBD
&
\sphinxAtStartPar
To Be Defined
\\
\sphinxhline
\sphinxAtStartPar
PLC
&
\sphinxAtStartPar
Programmable Logic Controller
\\
\sphinxhline
\sphinxAtStartPar
TwinCAT
&
\sphinxAtStartPar
The Windows Control and Automation Technology
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\section{Related Documents}
\label{\detokenize{docs/000_introduction:related-documents}}
\sphinxAtStartPar
Non applicable


\section{Buying a PLC}
\label{\detokenize{docs/000_introduction:buying-a-plc}}

\subsection{TwinCAT 3 Platform Level (performance level)}
\label{\detokenize{docs/000_introduction:twincat-3-platform-level-performance-level}}
\sphinxAtStartPar
TwinCAT 3 Runtime components are available for different performance
platforms (performance levels, platform levels). Performance levels
currently range from 40 to 94. The TwinCAT 3 license price depends on
the platform level and the level has to be specified in the license
order number.

\sphinxAtStartPar
Examples of TwinCAT 3 platform levels are shown in \hyperref[\detokenize{docs/000_introduction:tc3-levels}]{Fig.\@ \ref{\detokenize{docs/000_introduction:tc3-levels}}}.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image1}.jpg}
\caption{TC3 Performance Platforms (source: Beckhoff Info System)}\label{\detokenize{docs/000_introduction:tc3-levels}}\end{figure}


\subsection{Standard PLC}
\label{\detokenize{docs/000_introduction:standard-plc}}
\sphinxAtStartPar
Currently, the standard PLC for ESO instruments is CX2030\sphinxhyphen{}0125 with 16
GB of CFast disk (CX2900\sphinxhyphen{}0033) instead of the default 8 GB disk. The
performance level of this unit is 60. The option 0125 means that the
system comes preinstalled with:
\begin{itemize}
\item {} 
\sphinxAtStartPar
Windows Embedded Standard 7 P 32\sphinxhyphen{}bit OS and

\item {} 
\sphinxAtStartPar
TwinCAT3 Runtime (XAR).

\end{itemize}

\sphinxAtStartPar
The CX2030 also requires a Power Supply unit CX2100\sphinxhyphen{}0004.


\subsection{PLC Licenses}
\label{\detokenize{docs/000_introduction:plc-licenses}}
\sphinxAtStartPar
Each PLC needs run\sphinxhyphen{}time licenses. The simplest way is to order licenses
together with the PLC in the same purchase order. This way the PLC comes
preconfigured by Beckhoff and the user doesn’t have to handle the
licenses himself. If additional licenses are needed later on, they can
be purchased and then activated by the user.

\sphinxAtStartPar
The following sections describe each item in a purchase order and then
give an example of a complete purchase order that includes both HW and
licenses.

\sphinxAtStartPar
PLC licenses are one\sphinxhyphen{}off licenses tied to the HW and the performance
platform. Licenses bought for a certain performance platform can be used
for that platform or a lower one but not for a higher platform. For
example, licenses bought for CX2030 (60) could be used for CX5120 (40)
but not for CX2040 (70).

\sphinxAtStartPar
For more information about TwinCAT licenses, go to Beckhoff Information
System and search for \sphinxstyleemphasis{Working with TwinCAT 3 license dongles}.


\subsubsection{Ordering Standard Licenses}
\label{\detokenize{docs/000_introduction:ordering-standard-licenses}}
\sphinxAtStartPar
TwinCAT 3 standard licenses are always linked to specific hardware. This
is usually a TwinCAT 3 license dongle (EL6070 License Key Terminal or
C9900\sphinxhyphen{}L100 license key USB stick). In principle it is also possible to
tie a TwinCAT 3 license to a specific Beckhoff PLC, e.g. CX2030.
However, this has a severe disadvantage that, if the PLC is replaced,
the TwinCAT 3 licenses are no longer valid for the new PLC. If, on the
other hand, the TwinCAT 3 licenses are tied to a TwinCAT 3 license
dongle, the PLC can easily be replaced. In addition, spare PLCs that are
kept in stock as replacement units don’t need additional licenses.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image2}.jpg}
\caption{License Dongles (source: Beckhoff Info System)}\label{\detokenize{docs/000_introduction:lic-dongles}}\end{figure}

\sphinxAtStartPar
\sphinxstyleemphasis{It is recommended to order licenses on the License terminal EL6070\sphinxhyphen{}0033.}

\sphinxAtStartPar
It is also recommended that the EL6070 terminal is placed as the very
first terminal after the CX2100\sphinxhyphen{}0004 Power Supply, so its presence is
clear when replacing a broken PLC (see \hyperref[\detokenize{docs/000_introduction:lic-dongles-pos}]{Fig.\@ \ref{\detokenize{docs/000_introduction:lic-dongles-pos}}}).

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image3}.jpg}
\caption{Recommended Position for License Dongle EL6070}\label{\detokenize{docs/000_introduction:lic-dongles-pos}}\end{figure}


\subsubsection{Mandatory Licenses}
\label{\detokenize{docs/000_introduction:mandatory-licenses}}
\sphinxAtStartPar
There are two runtime licenses that are mandatory for each PLC. One is
needed for the PLC Runtime and the other one for the communication with
the PLC. The designation pp in the license catalogue number stands for
Performance Platform and is 60 for the standard CX2030. When ordering,
pp should be substituted with the correct performance platform, e.g. 60.


\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\sphinxcapstartof{table}
\sphinxthecaptionisattop
\sphinxcaption{Mandatory PLC Licences}\label{\detokenize{docs/000_introduction:id8}}
\sphinxaftertopcaption
\begin{tabulary}{\linewidth}[t]{TTT}
\sphinxtoprule
\sphinxstyletheadfamily 
\sphinxAtStartPar
License Order \#
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Description
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Note
\\
\sphinxmidrule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
TC1200\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 PLC
&
\sphinxAtStartPar
This is a license to
run PLC programs
\\
\sphinxhline
\sphinxAtStartPar
TF6100\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 OPC UA
&
\sphinxAtStartPar
This is the license
for the OPC UA, the
standard
communication
interface between the
PLC and the outside
world.
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\subsubsection{Additional Licenses}
\label{\detokenize{docs/000_introduction:additional-licenses}}
\sphinxAtStartPar
Depending on the PLC application, additional licenses might be needed.
The most common licenses are for the motion control and for the
communication via serial port or TCP/IP. We also use C++ for some code
that has been ported from VxWorks systems.


\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\sphinxcapstartof{table}
\sphinxthecaptionisattop
\sphinxcaption{Most Common Additional PLC Licences}\label{\detokenize{docs/000_introduction:id9}}
\sphinxaftertopcaption
\begin{tabulary}{\linewidth}[t]{TTT}
\sphinxtoprule
\sphinxstyletheadfamily 
\sphinxAtStartPar
License Order \#
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Description
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Note
\\
\sphinxmidrule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
TF5000\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 NC PTP 10 Axes
&
\sphinxAtStartPar
Motion control for up
to 10 axes.
\\
\sphinxhline
\sphinxAtStartPar
TF5010\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 NC PTP Axes Pack
25
&
\sphinxAtStartPar
Motion control for up
to 25 axes. \sphinxstylestrong{This
license is in
addition to
TF5000\sphinxhyphen{}00pp!}
Essentially it adds
15 axes to the
system.
\\
\sphinxhline
\sphinxAtStartPar
TC1300\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 C++
&
\sphinxAtStartPar
Programming in C++
\\
\sphinxhline
\sphinxAtStartPar
TF6311\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 TCP/UDP Realtime
&
\sphinxAtStartPar
TCP/UDP communication
\\
\sphinxhline
\sphinxAtStartPar
TF6340\sphinxhyphen{}00pp
&
\sphinxAtStartPar
TC3 Serial
Communication
&
\sphinxAtStartPar
RS\sphinxhyphen{}232, 422 \& 485
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\subsubsection{License Bundles}
\label{\detokenize{docs/000_introduction:license-bundles}}
\sphinxAtStartPar
License bundles are just a simplified way of ordering licenses since one
license catalogue number can contain two or more licenses. For example,
TC1250\sphinxhyphen{}00pp (TC3 PLC/C++) contains both licenses TC1200\sphinxhyphen{}00pp and
TC1300\sphinxhyphen{}00pp. From the cost point of view there is no advantage in
ordering licenses in a bundle. The total cost of licenses is always the
same regardless of if they were purchased in a bundle or individually.


\subsubsection{Ordering TwinCAT 3 Standard Licenses with and without Pre\sphinxhyphen{}activation}
\label{\detokenize{docs/000_introduction:ordering-twincat-3-standard-licenses-with-and-without-pre-activation}}
\sphinxAtStartPar
To enable unambiguous assignment of TwinCAT 3 licenses for
pre\sphinxhyphen{}activation and the required licensing platform (dongle or PLC) in
the purchase order, please refer to Table 3 when ordering. The order
number of the TwinCAT 3 license dongle indicates whether or not to
pre\sphinxhyphen{}activate licenses for the dongle.


\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\sphinxcapstartof{table}
\sphinxthecaptionisattop
\sphinxcaption{Purchase Order Information for License Dongles}\label{\detokenize{docs/000_introduction:id10}}
\sphinxaftertopcaption
\begin{tabulary}{\linewidth}[t]{TT}
\sphinxtoprule
\sphinxstyletheadfamily 
\sphinxAtStartPar
Order number
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Description
\\
\sphinxmidrule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
EL6070\sphinxhyphen{}00\DUrole{blue}{33} or
C9900\sphinxhyphen{}L100\sphinxhyphen{}00\DUrole{blue}{33}
&
\sphinxAtStartPar
TwinCAT 3 dongle with
pre\sphinxhyphen{}activated TwinCAT 3 licenses
\\
\sphinxhline
\sphinxAtStartPar
EL6070\sphinxhyphen{}00\DUrole{blue}{00} or
C9900\sphinxhyphen{}L100\sphinxhyphen{}00\DUrole{blue}{00}
&
\sphinxAtStartPar
Empty TwinCAT 3 dongle (without
pre\sphinxhyphen{}activated TwinCAT 3 licenses)
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}

\sphinxAtStartPar
The order number of the TwinCAT 3 license is important for
pre\sphinxhyphen{}activation of TwinCAT 3 licenses for a type …\sphinxhyphen{}0033 dongle. In this
case, the third last digit of the TwinCAT 3 product number must be “\DUrole{blue}{1}”.
When reordering licenses for a TwinCAT 3 license dongle that is already
with the customer, the license must be activated by the customer. In
this case, the third last digit of the TwinCAT 3 product number must be
“\DUrole{blue}{2}”.

\sphinxAtStartPar
Examples of the two above cases are given in Table 4. License order is
for performance platform \DUrole{red}{60}, i.e. for CX2030.


\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\sphinxcapstartof{table}
\sphinxthecaptionisattop
\sphinxcaption{Order Number for Licenses Linked to Dongles}\label{\detokenize{docs/000_introduction:id11}}
\sphinxaftertopcaption
\begin{tabulary}{\linewidth}[t]{TT}
\sphinxtoprule
\sphinxstyletheadfamily 
\sphinxAtStartPar
License Order \#
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Description
\\
\sphinxmidrule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
TC1200\sphinxhyphen{}0\DUrole{blue}{1}\DUrole{red}{60}
&
\sphinxAtStartPar
Pre\sphinxhyphen{}activation by Beckhoff for a
TwinCAT 3 license dongle in the
same purchase order.
\\
\sphinxhline
\sphinxAtStartPar
TC1200\sphinxhyphen{}0\DUrole{blue}{2}\DUrole{red}{60}
&
\sphinxAtStartPar
No pre\sphinxhyphen{}activation by Beckhoff
(license activation by customer)
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\subsubsection{Quotation/Purchase Order Examples}
\label{\detokenize{docs/000_introduction:quotation-purchase-order-examples}}
\sphinxAtStartPar
In this section we provide examples of possible ways to order a PLC
CX2030 including the licenses for PLC programming, OPC UA communication,
up to 25 motor axes and the support for C++ programming. Note that the
option given in {\hyperref[\detokenize{docs/000_introduction:recommended-licenses-label}]{\sphinxcrossref{\DUrole{std,std-ref}{Option with EL6070 License Terminal EL6070\sphinxhyphen{}0033 (recommended)}}}} is the recommended one.


\paragraph{Licenses Linked to the PLC (not recommended)}
\label{\detokenize{docs/000_introduction:licenses-linked-to-the-plc-not-recommended}}

\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\begin{tabulary}{\linewidth}[t]{TT}
\sphinxtoprule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
CX2030\sphinxhyphen{}0125
&
\sphinxAtStartPar
Industrial PC with pre\sphinxhyphen{}installed TwinCAT 3 Runtime
\\
\sphinxhline
\sphinxAtStartPar
CX2100\sphinxhyphen{}0004
&
\sphinxAtStartPar
Power supply for PC
\\
\sphinxhline
\sphinxAtStartPar
CX2900\sphinxhyphen{}0033
&
\sphinxAtStartPar
16 GB CFast card, instead of 8 GB CFast card
\\
\sphinxhline
\sphinxAtStartPar
TC1250\sphinxhyphen{}0060
&
\sphinxAtStartPar
TC3 PLC / NC PTP 10
\\
\sphinxhline
\sphinxAtStartPar
TC1300\sphinxhyphen{}0060
&
\sphinxAtStartPar
TC3 C++
\\
\sphinxhline
\sphinxAtStartPar
TF5010\sphinxhyphen{}0060
&
\sphinxAtStartPar
TC3 NC PTP Axes Pack 25
\\
\sphinxhline
\sphinxAtStartPar
TF6100\sphinxhyphen{}0060
&
\sphinxAtStartPar
TC3 OPC UA
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\paragraph{Option with USB License dongle C9900\sphinxhyphen{}L100\sphinxhyphen{}0033}
\label{\detokenize{docs/000_introduction:option-with-usb-license-dongle-c9900-l100-0033}}

\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\begin{tabulary}{\linewidth}[t]{TT}
\sphinxtoprule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
CX2030\sphinxhyphen{}0125
&
\sphinxAtStartPar
Industrial PC with pre\sphinxhyphen{}installed TwinCAT 3 Runtime
\\
\sphinxhline
\sphinxAtStartPar
CX2100\sphinxhyphen{}0004
&
\sphinxAtStartPar
Power supply for PC
\\
\sphinxhline
\sphinxAtStartPar
CX2900\sphinxhyphen{}0033
&
\sphinxAtStartPar
16 GB CFast card, instead of 8 GB CFast card
\\
\sphinxhline
\sphinxAtStartPar
C9900\sphinxhyphen{}L100\sphinxhyphen{}00\DUrole{blue}{33}
&
\sphinxAtStartPar
License dongle with pre\sphinxhyphen{}activated TwinCAT 3 licenses
\\
\sphinxhline
\sphinxAtStartPar
TC1250\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 PLC / NC PTP 10
\\
\sphinxhline
\sphinxAtStartPar
TC1300\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 C++
\\
\sphinxhline
\sphinxAtStartPar
TF5010\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 NC PTP Axes Pack 25
\\
\sphinxhline
\sphinxAtStartPar
TF6100\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 OPC UA
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\paragraph{Option with EL6070 License Terminal EL6070\sphinxhyphen{}0033 (recommended)}
\label{\detokenize{docs/000_introduction:option-with-el6070-license-terminal-el6070-0033-recommended}}\label{\detokenize{docs/000_introduction:recommended-licenses-label}}

\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\begin{tabulary}{\linewidth}[t]{TT}
\sphinxtoprule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
CX2030\sphinxhyphen{}0125
&
\sphinxAtStartPar
Industrial PC with pre\sphinxhyphen{}installed TwinCAT 3 Runtime
\\
\sphinxhline
\sphinxAtStartPar
CX2100\sphinxhyphen{}0004
&
\sphinxAtStartPar
Power supply for PC
\\
\sphinxhline
\sphinxAtStartPar
CX2900\sphinxhyphen{}0033
&
\sphinxAtStartPar
16 GB CFast card, instead of 8 GB CFast card
\\
\sphinxhline
\sphinxAtStartPar
EL6070\sphinxhyphen{}00\DUrole{blue}{33}
&
\sphinxAtStartPar
License Key Terminal with pre\sphinxhyphen{}activated TwinCAT 3 licenses
\\
\sphinxhline
\sphinxAtStartPar
TC1250\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 PLC / NC PTP 10
\\
\sphinxhline
\sphinxAtStartPar
TC1300\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 C++
\\
\sphinxhline
\sphinxAtStartPar
TF5010\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 NC PTP Axes Pack 25
\\
\sphinxhline
\sphinxAtStartPar
TF6100\sphinxhyphen{}0\DUrole{blue}{1}60
&
\sphinxAtStartPar
TC3 OPC UA
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\subsubsection{Adding USB License to UserMode Runtime (4026)}
\label{\detokenize{docs/000_introduction:adding-usb-license-to-usermode-runtime-4026}}
\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
Tested on TwinCAT 3.1.4026.22.
\end{sphinxadmonition}

\begin{sphinxadmonition}{warning}{Warning:}
\sphinxAtStartPar
The Beckhoff documentation for UserMode Runtime states that USB access
is not supported. However, Beckhoff support has confirmed that USB access
works despite this statement. The documentation is expected to be updated
in the future.
\end{sphinxadmonition}

\sphinxAtStartPar
To add a USB key license to an IPC or non\sphinxhyphen{}Beckhoff PLC on a Windows 11 system,
you can use the UserMode Runtime.

\sphinxAtStartPar
Install the following packages:
\begin{itemize}
\item {} 
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{TwinCAT.Standard.XAR}}

\item {} 
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{TwinCAT.XAR.UserModeRuntime}}

\end{itemize}

\sphinxAtStartPar
These packages should also pull in the dependencies
\sphinxcode{\sphinxupquote{TwinCAT.XAR.USB.UM}} and \sphinxcode{\sphinxupquote{TwinCAT.XAR.UsbService}}.

\sphinxAtStartPar
Verify installed packages with:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
tcpkg\PYG{+w}{ }list\PYG{+w}{ }\PYGZhy{}i
\end{sphinxVerbatim}

\sphinxAtStartPar
This allows you to use, for example, a Scope View (TE1300) license in
an engineering PC.


\section{PLC Configuration}
\label{\detokenize{docs/000_introduction:plc-configuration}}
\sphinxAtStartPar
PLCs are normally placed on the control network. Therefore, they should
be assigned a name and the IP address. The following sections describe
how to configure a newly arrived PLC. Please note that \sphinxstylestrong{ALL} configuration
steps are needed for correct configuration. Most of the configuration
steps include a link to the corresponding videos of the procedure
executions.

\sphinxAtStartPar
New PLCs arrive with factory preset names and IP addresses that do not
match the control network. This makes it difficult to remotely connect
to the PLC. The easiest way to start working with a new PLC is to
connect a screen, a mouse and a keyboard directly to the PLC. This way
the PLC is seen as any other Windows PC.


\subsection{Backup of Delivered System}
\label{\detokenize{docs/000_introduction:backup-of-delivered-system}}
\sphinxAtStartPar
The first and very important step is to make a backup of the hard disk
(CFast SSD) of the delivered system, just in case something goes wrong,
and the user has to recover the system.

\sphinxAtStartPar
Backup can be done using freeware program \sphinxhref{http://clonezilla.org/downloads.php}{Clonezilla}%
\begin{footnote}[1]\sphinxAtStartFootnote
\sphinxnolinkurl{http://clonezilla.org/downloads.php}
%
\end{footnote}. However, it is
recommended to use Beckhoff Service Tool C9900\sphinxhyphen{}H377 that is based on
Acronis and is delivered on a bootable USB stick. Around 5GB of storage
is needed for the complete backup of the system. The USB stick has
enough space for two or three PLC backups.

\sphinxAtStartPar
Insert the USB stick into one of the available USB ports on the PLC and
reboot the PLC. Select Backup and follow the instructions. Once the
backup is complete, transfer the backup (*.tib) file to a safe place on
a PC.


\subsection{Setting IP address}
\label{\detokenize{docs/000_introduction:setting-ip-address}}
\sphinxAtStartPar
If possible, plug in one side of a network cable to the upper network
port of the PLC and the other side to a PC or some network. This will
help to easily identify the network connection in the Control Panel. The
unused port should display “Network cable unplugged”. Normally, the
upper connection has a name with higher number in it than the lower
port, e.g. Local Area Connection 2.

\sphinxAtStartPar
The procedure is the following:
\begin{itemize}
\item {} 
\sphinxAtStartPar
Go to: \sphinxstyleemphasis{Start\textbackslash{}Control Panel\textbackslash{}Network} and
\sphinxstyleemphasis{Sharing Center}

\item {} 
\sphinxAtStartPar
Select: Change \sphinxstyleemphasis{adapter settings}

\item {} 
\sphinxAtStartPar
Right\sphinxhyphen{}click on the network to configure and select \sphinxstyleemphasis{Properties}.

\item {} 
\sphinxAtStartPar
Scroll down to \sphinxstyleemphasis{Internet Protocol Version 4 (TCP/IPv4)}, click on it
and then press the \sphinxstyleemphasis{Properties} button.

\end{itemize}

\sphinxAtStartPar
A dialog shown in \hyperref[\detokenize{docs/000_introduction:settings-ip-address}]{Fig.\@ \ref{\detokenize{docs/000_introduction:settings-ip-address}}} will pop up. Enter the required configuration
and press OK.

\sphinxAtStartPar
A video showing how to set the IP address can be found \sphinxhref{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/Shared\%20Documents/PLC\%20Material/Videos/PLC\_Setup\_\_Set\_IP\_Address.mp4}{here}%
\begin{footnote}[2]\sphinxAtStartFootnote
\sphinxnolinkurl{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/Shared\%20Documents/PLC\%20Material/Videos/PLC\_Setup\_\_Set\_IP\_Address.mp4}
%
\end{footnote} .

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image4}.jpeg}
\caption{Setting of IP Address}\label{\detokenize{docs/000_introduction:settings-ip-address}}\end{figure}


\subsection{Changing PLC Name}
\label{\detokenize{docs/000_introduction:changing-plc-name}}
\sphinxAtStartPar
The procedure is the following:
\begin{itemize}
\item {} 
\sphinxAtStartPar
Go to: \sphinxstyleemphasis{Start\textbackslash{}Control Panel\textbackslash{}System}

\item {} 
\sphinxAtStartPar
Select: \sphinxstyleemphasis{Change settings} in the lower right side of the screen.

\item {} 
\sphinxAtStartPar
Under the \sphinxstyleemphasis{Computer Name} tab press the \sphinxstyleemphasis{Change…} button.

\item {} 
\sphinxAtStartPar
Enter the new name in the \sphinxstyleemphasis{“Computer name”} input field and confirm with
OK.

\end{itemize}

\sphinxAtStartPar
Once the name has been changed, the PLC has to be rebooted for the
change to take effect.

\sphinxAtStartPar
A video showing how to change the name of the PLC can be found \sphinxhref{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/Shared\%20Documents/PLC\%20Material/Videos/PLC\_Setup\_\_Set\_PLC\_Name.mp4}{here}%
\begin{footnote}[3]\sphinxAtStartFootnote
\sphinxnolinkurl{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/Shared\%20Documents/PLC\%20Material/Videos/PLC\_Setup\_\_Set\_PLC\_Name.mp4}
%
\end{footnote} .


\subsection{Enabling Firewall}
\label{\detokenize{docs/000_introduction:enabling-firewall}}
\sphinxAtStartPar
Firewall for both network ports should be active, i.e. turned ON, as
shown on \hyperref[\detokenize{docs/000_introduction:both-firewall}]{Fig.\@ \ref{\detokenize{docs/000_introduction:both-firewall}}}.

\sphinxAtStartPar
The procedure is the following:
\begin{itemize}
\item {} 
\sphinxAtStartPar
Go to: \sphinxstyleemphasis{Start\textbackslash{}Control Panel\textbackslash{}Windows Firewall}

\item {} 
\sphinxAtStartPar
Click on: \sphinxstyleemphasis{Turn Windows Firewall on} or \sphinxstyleemphasis{off} in the upper left side of the
screen.

\item {} 
\sphinxAtStartPar
\sphinxstyleemphasis{Turn on Windows Firewall} for both networks and confirm with OK.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image5}.jpg}
\caption{Both Networks with Firewall ON}\label{\detokenize{docs/000_introduction:both-firewall}}\end{figure}


\subsection{Opening OPC UA Port 4840}
\label{\detokenize{docs/000_introduction:opening-opc-ua-port-4840}}
\sphinxAtStartPar
Due to the active firewall, in order to be able to communicate with the
PLC from the high\sphinxhyphen{}level software, a special port 4840 will have to be
open.

\sphinxAtStartPar
The port is open from the Control Panel Firewall Advanced settings by
defining a new inbound rule.

\sphinxAtStartPar
A video showing how to open OPC UA port 4840 can be found \sphinxhref{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/SharedDocuments/PLCMaterial/Videos/PLC\_Setup\_\_Opening\_OPC\_UA\_Port.mp4}{here}%
\begin{footnote}[4]\sphinxAtStartFootnote
\sphinxnolinkurl{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/SharedDocuments/PLCMaterial/Videos/PLC\_Setup\_\_Opening\_OPC\_UA\_Port.mp4}
%
\end{footnote}.


\subsection{Enable \sphinxstyleemphasis{ping} Service}
\label{\detokenize{docs/000_introduction:enable-ping-service}}
\sphinxAtStartPar
The ping service can be enabled from the Control Panel Firewall Advanced
settings by reconfiguring one of the existing \sphinxstyleemphasis{Inbound rules} for \sphinxstyleemphasis{File and
Printer Sharing (Echo Request \textendash{} ICMPv4\sphinxhyphen{}In)} for \sphinxstyleemphasis{Private, Public} Profile.
The \sphinxstyleemphasis{Remote Address} must be changed from \sphinxstyleemphasis{Local subnet} to \sphinxstyleemphasis{Any}.

\sphinxAtStartPar
A video showing how the \sphinxstyleemphasis{ping} service is enabled can be found \sphinxhref{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/SharedDocuments/PLCMaterial/Videos/PLC\_Setup\_\_How\_to\_Enable\_ping\_Service.mp4}{here}%
\begin{footnote}[5]\sphinxAtStartFootnote
\sphinxnolinkurl{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/SharedDocuments/PLCMaterial/Videos/PLC\_Setup\_\_How\_to\_Enable\_ping\_Service.mp4}
%
\end{footnote}.

\sphinxAtStartPar
Note: From this point on, the PLC can be put on the network and accessed
via \sphinxstyleemphasis{Remote Desktop}.


\subsection{Install and Configure OPC UA Server v5}
\label{\detokenize{docs/000_introduction:install-and-configure-opc-ua-server-v5}}
\sphinxAtStartPar
Since version 4.4.0, the TwinCAT OPC UA Server has added some complexity
to the installation and initialization process to increase security.
This chapter describes the entire process of installing a new Server
version with the additional security but allowing the OPC UA Server to
be back compatible with the less secure communication methods.


\subsubsection{Install OPC UA Server v5 and OPC UA Configurator}
\label{\detokenize{docs/000_introduction:install-opc-ua-server-v5-and-opc-ua-configurator}}\begin{itemize}
\item {} 
\sphinxAtStartPar
Login to PLC using the \sphinxstyleemphasis{Remote Desktop}.

\item {} 
\sphinxAtStartPar
Double\sphinxhyphen{}click the downloaded binary for the \sphinxstyleemphasis{OPC UA Server} and start
the installation process.

\item {} 
\sphinxAtStartPar
A popup will come up with an option of installing a \sphinxstyleemphasis{none/none
endpoint}, this should be selected.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image6}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image6}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Complete the installation.

\item {} 
\sphinxAtStartPar
Double click the downloaded binary for the \sphinxstyleemphasis{OPC UA Configurator} and
complete the installation.

\item {} 
\sphinxAtStartPar
Reboot the PLC.

\end{itemize}


\subsubsection{Connecting for the First Time}
\label{\detokenize{docs/000_introduction:connecting-for-the-first-time}}\begin{itemize}
\item {} 
\sphinxAtStartPar
Using \sphinxstyleemphasis{UAExpert} connect to the PLC using the \sphinxstyleemphasis{Basic256Sha256} method and
Anonymous user.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image7}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image7}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Ignore any error.

\item {} 
\sphinxAtStartPar
Temporarily accept the server certificate and press \sphinxstyleemphasis{Continue}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image8}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image8}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Find the RPC call \sphinxstyleemphasis{TrustOnFirstUse} and call it by right\sphinxhyphen{}clicking on
the name.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image9}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image9}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
The values for Username: \sphinxstyleemphasis{opcua\_user} and Password: \sphinxstyleemphasis{pass4u!} should be
filled in. This user will be created as a Windows user and will
become the administrator user for the OPC UA Server.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image10}.PNG}
\caption{. .}\label{\detokenize{docs/000_introduction:image10}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Press the \sphinxstyleemphasis{Call} button. The \sphinxstyleemphasis{Result} should be \sphinxstyleemphasis{Succeeded}, and the
\sphinxstyleemphasis{AddStatus} value should be \sphinxstylestrong{“0 (Succeeded)”}. Then, after a couple of
seconds, the OPC UA Server should reset.

\item {} 
\sphinxAtStartPar
If the \sphinxstyleemphasis{AddStatus} is not as expected (see example in \hyperref[\detokenize{docs/000_introduction:image11}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image11}}}), most
likely the \sphinxstyleemphasis{OPC UA Server} and the \sphinxstyleemphasis{Configurator} will have to be
uninstalled, and the user \sphinxstyleemphasis{opcua\_user} deleted from the system, before
the complete process is repeated. Chapter {\hyperref[\detokenize{docs/000_introduction:uninstalling-opc-ua-label}]{\sphinxcrossref{\DUrole{std,std-ref}{Uninstalling Existing OPC UA Server}}}} describes this procedure.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image11}.PNG}
\caption{. .}\label{\detokenize{docs/000_introduction:image11}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
If there is a \sphinxstyleemphasis{Connect Error}, \sphinxstyleemphasis{Ignore} it to continue.

\item {} 
\sphinxAtStartPar
Disconnect from the Server.

\item {} 
\sphinxAtStartPar
Now, you should be able to reconnect to the server again using
\sphinxstyleemphasis{Basic256Sha256} but now using the \sphinxstyleemphasis{Username} and \sphinxstyleemphasis{Password} that was
entered in the previous step. Please note that in case you were using
\sphinxstyleemphasis{Custom} discovery in \sphinxstyleemphasis{UaExpert}, you should \sphinxstyleemphasis{Rebrowse} to have the client
request for \sphinxstyleemphasis{Username} and \sphinxstyleemphasis{Password}, as it’s shown in \hyperref[\detokenize{docs/000_introduction:image12}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image12}}}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image12}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image12}}\end{figure}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image13}.PNG}
\caption{. .}\label{\detokenize{docs/000_introduction:image13}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Connect again.

\item {} 
\sphinxAtStartPar
If there is a \sphinxstyleemphasis{Connect Error}, \sphinxstyleemphasis{Ignore} it to continue.

\item {} 
\sphinxAtStartPar
Press the \sphinxstyleemphasis{Trust Server Certificate} button and then check the \sphinxstyleemphasis{Temporarily accept} the server certificate checkbox. Press \sphinxstyleemphasis{Continue}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image14}.PNG}
\caption{. .}\label{\detokenize{docs/000_introduction:image14}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
If there is a \sphinxstyleemphasis{Connect Error}, \sphinxstyleemphasis{Ignore} it to continue.

\item {} 
\sphinxAtStartPar
Disconnect from the Server.

\end{itemize}


\subsubsection{Allow Anonymous Connections to the Server}
\label{\detokenize{docs/000_introduction:allow-anonymous-connections-to-the-server}}\begin{itemize}
\item {} 
\sphinxAtStartPar
Connect to the PLC via Remote Desktop.

\item {} 
\sphinxAtStartPar
Open the TwinCAT OPC UA Configurator via \sphinxstyleemphasis{Start \textgreater{} BECKHOFF \textgreater{} TF6100
OPC\sphinxhyphen{}UA Configurator}.

\item {} 
\sphinxAtStartPar
Press \sphinxstyleemphasis{Edit} to configure the server to connect to. It is better to use
the real PLC name in \sphinxstyleemphasis{Server URL} rather than \sphinxstyleemphasis{localhost} to avoid some
nagging popups.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image15}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image15}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Click on \sphinxstyleemphasis{Get Endpoints}, a certificate will need to be created and a
popup will emerge. Accept the defaults and press \sphinxstyleemphasis{Create} to continue.

\item {} 
\sphinxAtStartPar
Click on \sphinxstyleemphasis{Add}, this will add a line to the bottom table.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image16}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image16}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Double click on the server line and a popup will emerge with the
details of the connection.

\item {} 
\sphinxAtStartPar
On the popup, you can change the \sphinxstyleemphasis{Name} of the server and in \sphinxstyleemphasis{Identity
Token Type} select \sphinxstyleemphasis{UserName}, then in \sphinxstyleemphasis{Identity} please write the
\sphinxstyleemphasis{UserName}, i.e., \sphinxstyleemphasis{opcua\_user}, from the \sphinxstyleemphasis{TrustOnFirstUse} Call in the
previous step.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image17}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image17}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Click on Ok and then close the Configured TwinCAT OPC UA Servers
window. You will be back to the configurator, and the name of the
connection will be displayed.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image18}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image18}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Click on \sphinxstyleemphasis{Connect}, a popup will appear. Write the \sphinxstyleemphasis{Password} for the
user. Press OK.

\item {} 
\sphinxAtStartPar
The status \sphinxstyleemphasis{connected} should appear at \sphinxstyleemphasis{Connection} state.

\item {} 
\sphinxAtStartPar
Click on \sphinxstyleemphasis{Server \textgreater{} Open from target} to load the current configuration
from the OPC UA Server.

\item {} 
\sphinxAtStartPar
Click on the \sphinxstyleemphasis{Security} tab.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image19}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image19}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Right click on the \sphinxstyleemphasis{Users box} and select \sphinxstyleemphasis{Add}.

\item {} 
\sphinxAtStartPar
The \sphinxstyleemphasis{User details} popup emerges. Select \sphinxstyleemphasis{None} in \sphinxstyleemphasis{Authentication
Provider} and \sphinxstyleemphasis{Users} in \sphinxstyleemphasis{Member of group}, then press \sphinxstyleemphasis{Ok}

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image20}.PNG}
\caption{. .}\label{\detokenize{docs/000_introduction:image20}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
A new user \sphinxstyleemphasis{Anonymous} appears in \sphinxstyleemphasis{Users}

\item {} 
\sphinxAtStartPar
Click on the menu \sphinxstyleemphasis{Server / Activate} on \sphinxstyleemphasis{target} and select \sphinxstyleemphasis{Yes} to
restart the Server.

\end{itemize}


\subsubsection{Allow None as Security Policy}
\label{\detokenize{docs/000_introduction:allow-none-as-security-policy}}\begin{itemize}
\item {} 
\sphinxAtStartPar
On the TwinCAT OPC UA Configurator click on the \sphinxstyleemphasis{Server Settings} tab.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image21}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image21}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Right\sphinxhyphen{}click on the \sphinxstyleemphasis{Security settings} box and click on \sphinxstyleemphasis{Add} in the
popup menu.

\item {} 
\sphinxAtStartPar
A \sphinxstyleemphasis{Configure endpoint security} popup emerges. Under \sphinxstyleemphasis{SecurityPolicy}
select \sphinxstyleemphasis{SecurityPolicy\#None} and in \sphinxstyleemphasis{MessageSecurityModes} enable \sphinxstyleemphasis{None}.
Press \sphinxstyleemphasis{Ok}. This will add the \sphinxstyleemphasis{SecurityPolicy\#None}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image22}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image22}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Click on the menu \sphinxstyleemphasis{Server/Activate on target} and click \sphinxstyleemphasis{Yes} to
restart the server.

\item {} 
\sphinxAtStartPar
After this last step, \sphinxstyleemphasis{UaExpert} should provide a new configuration
option \sphinxstyleemphasis{None \textendash{} None}.

\item {} 
\sphinxAtStartPar
Connect as \sphinxstyleemphasis{Anonymous} and the \sphinxstyleemphasis{Security Policy None\sphinxhyphen{}None}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image23}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image23}}\end{figure}

\sphinxAtStartPar
If for some reason you would like to reinstall the OPC UA Server v5,
first you should uninstall it. To be able to start from scratch, the
procedure described in Chapter {\hyperref[\detokenize{docs/000_introduction:uninstalling-opc-ua-label}]{\sphinxcrossref{\DUrole{std,std-ref}{Uninstalling Existing OPC UA Server}}}} should be followed.


\subsection{Configure OPC UA Server v5 for solutions with multiple PLC projects}
\label{\detokenize{docs/000_introduction:configure-opc-ua-server-v5-for-solutions-with-multiple-plc-projects}}
\sphinxAtStartPar
In cases where the TwinCAT solution contains more than one PLC project,
the OPC UA Server requires some additional configuration to properly
expose variables from all projects/ports.
\begin{itemize}
\item {} 
\sphinxAtStartPar
In \sphinxstyleemphasis{TwinCAT XAE Shell} confirm the port that the PLC projects are
using. In the Solution Explorer double click on a particular PLC
project to open the \sphinxstyleemphasis{Project} tab.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image24}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image24}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Open the OPC UA Server \sphinxstyleemphasis{Configurator} and connect to the \sphinxstyleemphasis{OPC UA Server}
as \sphinxstyleemphasis{opcua\_user}. You will have to enter the password as well.

\item {} 
\sphinxAtStartPar
Repeat the following for every project/port in the TwinCAT solution:

\item {} 
\sphinxAtStartPar
Once connected, switch to \sphinxstyleemphasis{Data Access} tab. There should be at least
one \sphinxstyleemphasis{Device} configured for the default port 851. Right\sphinxhyphen{}click to \sphinxstyleemphasis{Add} a
new project.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image25}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image25}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
In the popup, enter the relevant information for your project and
press OK. Pay special attention to the \sphinxstyleemphasis{AdsPort} and \sphinxstyleemphasis{SymbolFile} values,
that should contain the \sphinxstyleemphasis{Port} of your specific PLC Project.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image26}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image26}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
After the devices for all project ports are added, Select \sphinxstyleemphasis{Server /
Activate on target} to update the configuration and restart the OPC UA
Server.

\item {} 
\sphinxAtStartPar
Go to the \sphinxstyleemphasis{Security} tab and in the \sphinxstyleemphasis{Groups} window right\sphinxhyphen{}click on the
\sphinxstyleemphasis{Users} group, then click on \sphinxstyleemphasis{Edit}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image27}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image27}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
In case the configuration has not been automatically added, right
click on the \sphinxstyleemphasis{NamespaceName} table and then on Add.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image28}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image28}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
From the \sphinxstyleemphasis{Available namespaces} menu, select the one that corresponds
to the PLC project port you are configuring. Then, in the bottom
frame click on \sphinxstyleemphasis{All} to give all permissions to access this namespace
to the \sphinxstyleemphasis{Users} group.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image29}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image29}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Select \sphinxstyleemphasis{Server / Activate on target} to update the configuration and
restart the \sphinxstyleemphasis{OPC UA Server}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image30}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image30}}\end{figure}
\begin{itemize}
\item {} 
\sphinxAtStartPar
At this point, the \sphinxstyleemphasis{OPC UA Server} should expose the data from the
projects you have configured. This can be checked using \sphinxstyleemphasis{UaExpert}, as
shown in \hyperref[\detokenize{docs/000_introduction:image31}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image31}}}.

\end{itemize}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image31}.png}
\caption{. .}\label{\detokenize{docs/000_introduction:image31}}\end{figure}


\subsection{Configure OPC UA Server for TMC}
\label{\detokenize{docs/000_introduction:configure-opc-ua-server-for-tmc}}
\sphinxAtStartPar
The OPC UA Server Configurator program \sphinxstyleemphasis{TcOpcUaConfigurator.exe} is
located under:

\sphinxAtStartPar
\sphinxcode{\sphinxupquote{C:\textbackslash{}TwinCAT\textbackslash{}Functions\textbackslash{}TF6100\sphinxhyphen{}OPC\sphinxhyphen{}UA\textbackslash{}Win32\textbackslash{}Configurator}}

\sphinxAtStartPar
By double\sphinxhyphen{}clicking on it, the configurator panel will pop up. Then one
should \sphinxstyleemphasis{Connect}, click on \sphinxstyleemphasis{Server / Open from target}, and then double
click on the PLC line. In most cases the user doesn’t have to do
anything since the system is already configured for the TMC notation.
However, it is worth checking that everything is properly configured, as
shown on \hyperref[\detokenize{docs/000_introduction:image32}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image32}}}.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image32}.png}
\caption{OPC UA Server Configuration}\label{\detokenize{docs/000_introduction:image32}}\end{figure}


\subsubsection{Connecting to the Control Network}
\label{\detokenize{docs/000_introduction:connecting-to-the-control-network}}
\sphinxAtStartPar
Once the PLC has been fully configured, it should be put on the control
network and tested by creating a simple application with TwinCAT
software.


\subsubsection{Backup of Newly Configured System}
\label{\detokenize{docs/000_introduction:backup-of-newly-configured-system}}
\sphinxAtStartPar
Once it has been confirmed that the PLC is correctly configured and
ready to use, it is highly recommended to do another backup of the
system following the instructions given in section 4.1.


\subsubsection{EL6688 (PTP) Configuration}
\label{\detokenize{docs/000_introduction:el6688-ptp-configuration}}
\sphinxAtStartPar
This section explains how to configure terminal EL6688 in order to
obtain external time references using PTP.

\sphinxAtStartPar
Assumptions:
\begin{itemize}
\item {} 
\sphinxAtStartPar
A PTP network connection is available and ready to use.

\item {} 
\sphinxAtStartPar
The EL6688 hardware version is 10 or above.

\item {} 
\sphinxAtStartPar
The EL6688 software version is 11 or above %
\begin{footnote}[8]\sphinxAtStartFootnote
If these conditions are not met, the EL6688 might have problems working with switches due to a lack of support for IGMP protocol version 3. It can still be used but it requires static switch configurations.
%
\end{footnote}.

\item {} 
\sphinxAtStartPar
There is another DC\sphinxhyphen{}capable terminal in the EtherCAT network. This
terminal is the one to be used by the EtherCAT master as a reference
clock.

\item {} 
\sphinxAtStartPar
EtherCAT cycle time: 1 ms recommended, with slower cycle times the
synchronization becomes less exact.

\end{itemize}

\sphinxAtStartPar
The TwinCAT system does not update its internal time (Distributed Clocks
time) but it delivers an offset to be used by the applications to derive
the absolute time (UTC or TAI). Once the terminal EL6688 (see \hyperref[\detokenize{docs/000_introduction:image33}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image33}}})
has been added to the EtherCAT network, it is then possible to start its
configuration following the steps described below.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image33}.png}
\caption{Terminal EL6688 (PTP)}\label{\detokenize{docs/000_introduction:image33}}\end{figure}

\sphinxAtStartPar
The hardware and software versions can be obtained from the terminal
“CoE \textendash{} Online” tab.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image34}.png}
\caption{EL6688 CoE\sphinxhyphen{}Online tab}\label{\detokenize{docs/000_introduction:image34}}\end{figure}


\paragraph{Changing CoE Settings}
\label{\detokenize{docs/000_introduction:changing-coe-settings}}
\sphinxAtStartPar
The EL6688 needs to be configured to enable the reception of PTP updates
from the PTP master. Follow the steps according to what is described by
the Beckhoff documentation.
\begin{enumerate}
\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}%
\item {} 
\sphinxAtStartPar
Set EL6688 to PREOP
This should be correctly reflected in the “\sphinxstyleemphasis{Current State}” field under
the “Online” tab, see \hyperref[\detokenize{docs/000_introduction:image35}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image35}}}.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image35}.png}
\caption{EL6688 set to PREOP.}\label{\detokenize{docs/000_introduction:image35}}\end{figure}

\item {} 
\sphinxAtStartPar
Set \sphinxstyleemphasis{CoE} parameters as shown in \hyperref[\detokenize{docs/000_introduction:image37}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image37}}}.
Note that the \sphinxstyleemphasis{IP Address} in index F8E0:02 is entered as a single hex
number by converting the four decimal numbers of the IP address into hex
numbers. In the given example, the IP address is “192.168.1.15”.
The same rule is for the \sphinxstyleemphasis{Subnetmask} in index F8E0:03, in this case
“255.255.0.0”.

\item {} 
\sphinxAtStartPar
Enter the value 0x65766173 in index \sphinxhref{http://infosys.beckhoff.com/content/1033/el6688/html/Bt\_EL6688\_ObjectDescription.htm}{1010:01}%
\begin{footnote}[6]\sphinxAtStartFootnote
\sphinxnolinkurl{http://infosys.beckhoff.com/content/1033/el6688/html/Bt\_EL6688\_ObjectDescription.htm}
%
\end{footnote}.
This action will save permanently the parameters in the terminal.

\item {} 
\sphinxAtStartPar
Set EL6688 to INIT and then to OP.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image36}.png}
\caption{EL6688 set back to OP.}\label{\detokenize{docs/000_introduction:image36}}\end{figure}

\end{enumerate}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image37}.png}
\caption{EL6688 Relevant configuration parameters}\label{\detokenize{docs/000_introduction:image37}}\end{figure}

\sphinxAtStartPar
After doing the above steps and if everything is connected properly, the
EL6688 should start receiving packets. These can be seen in the \sphinxstyleemphasis{External
Sync} parameters below the terminal in the solution explorer, see \hyperref[\detokenize{docs/000_introduction:image38}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image38}}}.
The “\sphinxstyleemphasis{External device not connected}” parameter shall be zero and the
“\sphinxstyleemphasis{Control value update toggle}” shall toggle between 1 and 0.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image38}.png}
\caption{EL6688 External Sync parameters}\label{\detokenize{docs/000_introduction:image38}}\end{figure}


\paragraph{EtherCAT Configuration}
\label{\detokenize{docs/000_introduction:ethercat-configuration}}
\sphinxAtStartPar
In order to use the time from the IEEE1588 network, the EtherCAT master
shall be configured accordingly. The above means that DC must be in use
and the option ‘\sphinxstyleemphasis{DC time controlled by External Sync Device}’ must be
selected. This is usually done automatically by the system which will
attempt to select a DC\sphinxhyphen{}capable terminal as the reference clock. This
terminal has to be installed before the EL6688 in the EtherCAT network.
Whenever possible, it is recommended to use coupler EK1110 as a
reference clock. In order to access this configuration, select the
EtherCAT master (“\sphinxstyleemphasis{Device 1 (EtherCAT)}” as shown in \hyperref[\detokenize{docs/000_introduction:image39}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image39}}}) and then
select “\sphinxstyleemphasis{Advanced Settings}” from the “\sphinxstyleemphasis{EtherCAT}” tab. Once this is done,
the configuration is found under “\sphinxstyleemphasis{Distributed Clocks}”, see the example
in \hyperref[\detokenize{docs/000_introduction:image40}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image40}}}.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image39}.png}
\caption{EtherCAT master parameter window.}\label{\detokenize{docs/000_introduction:image39}}\end{figure}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image40}.png}
\caption{EtherCAT DC configuration.}\label{\detokenize{docs/000_introduction:image40}}\end{figure}


\paragraph{EL6688 Diagnostic}
\label{\detokenize{docs/000_introduction:el6688-diagnostic}}
\sphinxAtStartPar
Under the \sphinxstyleemphasis{CoE} parameters of the EL6688 terminal, one could find some
diagnostic data that indicates how the terminal is functioning. The “\sphinxstyleemphasis{PTP
State}” shall be in “SLAVE (9)” for a correct operation, see the example
in \hyperref[\detokenize{docs/000_introduction:image41}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image41}}}.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image41}.png}
\caption{EL6688 Diagnostic}\label{\detokenize{docs/000_introduction:image41}}\end{figure}


\section{Keeping PLC Up to Date}
\label{\detokenize{docs/000_introduction:keeping-plc-up-to-date}}
\sphinxAtStartPar
From time\sphinxhyphen{}to\sphinxhyphen{}time Beckhoff releases new versions of TwinCAT software. It
is a good practice to follow the releases and keep the PLC SW (as well
as the TwinCAT SW on the PC) up to date.

\sphinxAtStartPar
If not already done, create a Data directory on the PLC. This directory
can be used to store various installation files.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image42}.jpg}
\caption{PLC Data Directory}\label{\detokenize{docs/000_introduction:image42}}\end{figure}


\subsection{TwinCAT Runtime Update}
\label{\detokenize{docs/000_introduction:twincat-runtime-update}}
\sphinxAtStartPar
To download latest TwinCAT software, go to \sphinxurl{www.beckhoff.com} and navigate
to: \sphinxstyleemphasis{Download/Software/TwinCAT 3/TE1xxx | Runtime} and select the latest
version of \sphinxstyleemphasis{TwinCAT 3.1 \textendash{} eXtended Automation Runtime (XAR)}.

\sphinxAtStartPar
After the download, unzip the file and copy it to the Data directory on
the target PLC using the Remote Desktop.

\sphinxAtStartPar
\hyperref[\detokenize{docs/000_introduction:image42}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image42}}} shows an example file TC31\sphinxhyphen{}XAR\sphinxhyphen{}Setup.3.1.4022.14.exe.
Double\sphinxhyphen{}click on the file and follow the instructions. The update takes
just a couple of minutes. At the end of the installation, the system
will have to be rebooted.

\sphinxAtStartPar
A video showing how to install new version of TwinCAT Runtime can be
found \sphinxhref{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/SharedDocuments/PLCMaterial/Videos/PLC\_Setup\_\_TC31-XAR\_Installation.mp4}{here}%
\begin{footnote}[7]\sphinxAtStartFootnote
\sphinxnolinkurl{https://europeansouthernobservatory-my.sharepoint.com/personal/jhaucke\_eso\_org/CSE/cins/cins\_public/SharedDocuments/PLCMaterial/Videos/PLC\_Setup\_\_TC31-XAR\_Installation.mp4}
%
\end{footnote}.


\subsection{How to Check TwinCAT Runtime Version}
\label{\detokenize{docs/000_introduction:how-to-check-twincat-runtime-version}}
\sphinxAtStartPar
To check the version of currently installed TwinCAT Runtime, firstly log
into the PLC. Click on the \sphinxstyleemphasis{TwinCAT} icon in the lower right corner and
select \sphinxstyleemphasis{About TwinCAT…}.

\sphinxAtStartPar
A window \sphinxstyleemphasis{About TwinCAT} System will pop up showing, among the others, the
version, the performance platform and the status of the licenses (see
\hyperref[\detokenize{docs/000_introduction:image43}]{Fig.\@ \ref{\detokenize{docs/000_introduction:image43}}}).

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image43}.jpg}
\caption{TwinCAT Runtime Version}\label{\detokenize{docs/000_introduction:image43}}\end{figure}


\section{Uninstalling Existing OPC UA Server}
\label{\detokenize{docs/000_introduction:uninstalling-existing-opc-ua-server}}\label{\detokenize{docs/000_introduction:uninstalling-opc-ua-label}}
\sphinxAtStartPar
To properly uninstall an existing OPC UA Server, several steps should be
taken. This is necessary when one wants to reinstall the server to
modify some of the decisions taken during the original installation, or
when migrating from Servers versions prior to version 4.4.0. The process
also includes the removal of the \sphinxstyleemphasis{opcua\_user} user.
\begin{enumerate}
\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}%
\item {} 
\sphinxAtStartPar
Connect to the PLC via Remote Desktop

\item {} 
\sphinxAtStartPar
In Apps \& Features (or Programs and Features on some machines)
uninstall \sphinxstyleemphasis{Beckhoff TF6100 OPC\sphinxhyphen{}UA Configurator}

\item {} 
\sphinxAtStartPar
In Apps \& Features (or Programs and Features on some machines)
uninstall \sphinxstyleemphasis{Beckhoff TF6100 OPC\sphinxhyphen{}UA Server}

\item {} 
\sphinxAtStartPar
Remove the folder:
\sphinxcode{\sphinxupquote{C:\textbackslash{}TwinCAT\textbackslash{}Functions\textbackslash{}TF6100\sphinxhyphen{}OPC\sphinxhyphen{}UA}}

\item {} 
\sphinxAtStartPar
Remove the folder:
\sphinxcode{\sphinxupquote{C:\textbackslash{}ProgramData\textbackslash{}Beckhoff\textbackslash{}TF6100\sphinxhyphen{}OPC\sphinxhyphen{}UA}}

\item {} 
\sphinxAtStartPar
Remove the folder:
\sphinxcode{\sphinxupquote{C:\textbackslash{}ProgramData\textbackslash{}Beckhoff\textbackslash{}TF6100\sphinxhyphen{}OPC\sphinxhyphen{}UA\sphinxhyphen{}Server}}

\item {} 
\sphinxAtStartPar
Remove the local users \sphinxstyleemphasis{opcua\_user}:
\begin{enumerate}
\sphinxsetlistlabels{\alph}{enumii}{enumiii}{}{.}%
\item {} 
\sphinxAtStartPar
Right click on \sphinxstyleemphasis{Start}

\item {} 
\sphinxAtStartPar
Click on \sphinxstyleemphasis{Computer management}. The same can be achieved by
right\sphinxhyphen{}clicking on \sphinxstyleemphasis{Computer} in the \sphinxstyleemphasis{Windows Explorer} and selecting \sphinxstyleemphasis{Manage}.

\item {} 
\sphinxAtStartPar
On the left pane: \sphinxstyleemphasis{Local Users} and \sphinxstyleemphasis{Groups \textgreater{} Users}

\item {} 
\sphinxAtStartPar
Delete the necessary users by right clicking on the name and
selecting \sphinxstyleemphasis{Delete}.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image44}.PNG}
\caption{. .}\label{\detokenize{docs/000_introduction:image44}}\end{figure}

\end{enumerate}

\item {} 
\sphinxAtStartPar
Reboot the PLC

\end{enumerate}


\section{Migration to TwinCAT Build 4026}
\label{\detokenize{docs/000_introduction:migration-to-twincat-build-4026}}

\subsection{Introduction}
\label{\detokenize{docs/000_introduction:id7}}
\sphinxAtStartPar
With TwinCAT Build 4026, Beckhoff introduces a major update to TwinCAT 3.1.
Installation or migration to Build 4026 is only possible using the TwinCAT Package Manager.
The TwinCAT Package Manager can be downloaded from the Beckhoff website.
The general installation process for Build 4026 is the same for both an engineering PC and a target PLC system. The only differences are the packages installed using the TwinCAT Package Manager.
A detailed description of the installation process using the TwinCAT Package Manager is provided in a later section.
It is important to note that migration to Build 4026 and the installation of packages can be performed either with or without an Internet connection.
Second case might be a common case for PLC\sphinxhyphen{}systems in productive systems.
A documentation when working on an offline system is provided by Beckhoff: \sphinxurl{https://infosys.beckhoff.com/english.php?content=../content/1033/tc3\_installation/20646399115.html\&id==}

\sphinxAtStartPar
This documentation first provides an overview of the general installation process with an Internet connection. It then describes the process in detail using a concrete example of an offline installation.

\sphinxAtStartPar
The tested scenarios are shown in following figure:

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image45}.png}
\caption{Test scenarios}\label{\detokenize{docs/000_introduction:image45}}\end{figure}


\subsection{Required Base Packages for TwinCAT 4026 XAE Installation}
\label{\detokenize{docs/000_introduction:required-base-packages-for-twincat-4026-xae-installation}}
\sphinxAtStartPar
Base packages for engineering PC applying to all scenarios:
\begin{itemize}
\item {} 
\sphinxAtStartPar
TwinCAT.Standard.XAE

\item {} 
\sphinxAtStartPar
TwinCAT.StandardRM.XAE 4024.x

\end{itemize}

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
Only if additional package ‘TwinCAT.StandardRM.XAE 4024.x’ is installed the engineering PC can connect to PLC systems with runtime \textless{} Build 4026.
Via the TcXaeShell, older Remote Manager versions can be loaded by pre\sphinxhyphen{}selection in drop\sphinxhyphen{}down list.
\end{sphinxadmonition}

\sphinxAtStartPar
The list of installed Remote Manager packages in this example is shown below.

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image47}.png}
\caption{Selection of TcXaeShell}\label{\detokenize{docs/000_introduction:image47}}\end{figure}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image46}.png}
\caption{Selection of Remote Manager version}\label{\detokenize{docs/000_introduction:image46}}\end{figure}

\sphinxAtStartPar
Base package for PLCs applying for scenario 2b:
\begin{itemize}
\item {} 
\sphinxAtStartPar
TwinCAT.Standard.XAR

\end{itemize}


\subsection{Migration from TwinCAT 4024 XAE to Build 4026 \sphinxhyphen{} General Steps}
\label{\detokenize{docs/000_introduction:migration-from-twincat-4024-xae-to-build-4026-general-steps}}\begin{itemize}
\item {} 
\sphinxAtStartPar
Download and install the Beckhoff TwinCAT Package Manager

\item {} 
\sphinxAtStartPar
Add the required feeds

\item {} 
\sphinxAtStartPar
Install the migration tool as package named \sphinxstyleemphasis{TwinCAT.XAE.MigrateCli}

\item {} 
\sphinxAtStartPar
Execute the migration tool \sphinxstyleemphasis{TwinCAT.XAE.MigrateCli}

\item {} 
\sphinxAtStartPar
Install the package named \sphinxstyleemphasis{TwinCAT.Standard.XAE}

\item {} 
\sphinxAtStartPar
Install the package named \sphinxstyleemphasis{TwinCAT.StandardRM.XAE}

\item {} 
\sphinxAtStartPar
Install the package named \sphinxstyleemphasis{TwinCAT.StandardRM.XAE=4024.x} to be able to target PLCs that are running with Build 4024

\end{itemize}


\subsection{TwinCAT Package Manager}
\label{\detokenize{docs/000_introduction:twincat-package-manager}}
\sphinxAtStartPar
The TwinCAT Package Manager (TcPkg) is a tool by Beckhoff and is used to manage software packages and extensions that integrate installed packages into TwinCAT system.
TcPkg can be used with GUI or via CLI (Command Line Interface). Both provide the same core purpose. While the GUI\sphinxhyphen{}Version provides a user\sphinxhyphen{}friendly and intuitive interface,
working with CLI\sphinxhyphen{}version is faster and ideal for automation and scalable solutions, although interfacing is less intuitive for new users than the GUI\sphinxhyphen{}Version.


\subsection{Download and Installation of the TwinCAT Package Manager}
\label{\detokenize{docs/000_introduction:download-and-installation-of-the-twincat-package-manager}}
\sphinxAtStartPar
Downloading the TwinCAT Package Manager executable file is possible from Beckhoff website.
Installation process is clear, as no configurations needed to be done.
TcPkg\sphinxhyphen{}path is added to environment variables by installation. As result commands via \sphinxcode{\sphinxupquote{tcpkg}} are directly executable with PowerShell or CMD\sphinxhyphen{}terminal.
At the time of testing and documentation TcPkg\sphinxhyphen{}version 2.2.101 was used.

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
Installations of packages via tcpkg\sphinxhyphen{}command requires permissions of an administrator for PowerShell or CMD\sphinxhyphen{}terminal.
In this documentation PowerShell is preferred compared to CMD\sphinxhyphen{}terminal, because of its more advanced scripting capabilites.
\end{sphinxadmonition}


\subsection{Adding Feeds}
\label{\detokenize{docs/000_introduction:adding-feeds}}
\sphinxAtStartPar
Feeds are package repositories that provide versioned packages to TCPKG for installation, updates, and dependency restoration.
\begin{itemize}
\item {} 
\sphinxAtStartPar
\sphinxstyleemphasis{Stable feed}: Open PowerShell and the following input (Please be beware of, that your individual Beckhoff login data needs to be added):

\end{itemize}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{source} \PYG{n}{add} \PYG{o}{\PYGZhy{}}\PYG{n}{n}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Beckhoff Stable Feed}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{n}{s}\PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{https://public.tcpkg.beckhoff\PYGZhy{}cloud.com/api/v1/feeds/Stable}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{priority}\PYG{o}{=} \PYG{l+m+mi}{1} \PYG{o}{\PYGZhy{}}\PYG{n}{u}\PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{[YOUR BECKHOFF LOGIN MAILADRESS]}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{password} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{[YOUR BECKHOFF LOGIN PASSWORD]}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}
\begin{itemize}
\item {} 
\sphinxAtStartPar
\sphinxstyleemphasis{Outdated feed} (is required to install Remote Manager 4024.X to target PLC with older runtime builds installed):

\end{itemize}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{source} \PYG{n}{add} \PYG{o}{\PYGZhy{}}\PYG{n}{n}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Beckhoff Outdated Feed}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{n}{s}\PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{https://public.tcpkg.beckhoff\PYGZhy{}cloud.com/api/v1/feeds/Outdated}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{priority}\PYG{o}{=} \PYG{l+m+mi}{2} \PYG{o}{\PYGZhy{}}\PYG{n}{u}\PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{[YOUR BECKHOFF LOGIN MAILADRESS]}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{password} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{[YOUR BECKHOFF LOGIN PASSWORD]}\PYG{l+s+s2}{\PYGZdq{}}
\end{sphinxVerbatim}

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
With ‘y’\sphinxhyphen{}flag at the end of line adding for ‘Stable\sphinxhyphen{}Feed’ can be confirmed directly.
It is no longer possible to use this flag when adding the ‘Testing\sphinxhyphen{}feed’ or the ‘Outdated\sphinxhyphen{}feed’.
\end{sphinxadmonition}

\sphinxAtStartPar
Following table provides an overview with all avalaible feeds:


\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
\centering
\begin{tabulary}{\linewidth}[t]{TTT}
\sphinxtoprule
\sphinxstyletheadfamily 
\sphinxAtStartPar
Feed Name
&\sphinxstyletheadfamily 
\sphinxAtStartPar
URL
&\sphinxstyletheadfamily 
\sphinxAtStartPar
Notes
\\
\sphinxmidrule
\sphinxtableatstartofbodyhook
\sphinxAtStartPar
Stable
&
\sphinxAtStartPar
\sphinxurl{https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/Stable}
&
\sphinxAtStartPar
Production\sphinxhyphen{}ready, stable releases
\\
\sphinxhline
\sphinxAtStartPar
Testing
&
\sphinxAtStartPar
\sphinxurl{https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/Testing}
&
\sphinxAtStartPar
Beta/preview versions for testing
\\
\sphinxhline
\sphinxAtStartPar
Outdated
&
\sphinxAtStartPar
\sphinxurl{https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/Outdated}
&
\sphinxAtStartPar
Legacy/older tools, not actively maintained
\\
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}


\subsection{Installation and Using of the Migration Tool}
\label{\detokenize{docs/000_introduction:installation-and-using-of-the-migration-tool}}
\sphinxAtStartPar
Input command:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{XAE}\PYG{o}{.}\PYG{n}{MigrateCli} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}

\sphinxAtStartPar
Input command:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{TcMigrateCmd} \PYG{n}{clean} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{whatIf}\PYG{o}{=}\PYG{n}{false} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}

\sphinxAtStartPar
This will remove all TwinCAT Build 4024 files.

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
If on your system already TwinCAT Build \sphinxstyleemphasis{4026} packages are installed, migration tool will exit with an error.
With \sphinxstylestrong{TcMigrateCmd clean} command, cleaning can be simulated before and checked, if command works without errors.
\end{sphinxadmonition}


\subsection{Installation of the Engineering Package XAE}
\label{\detokenize{docs/000_introduction:installation-of-the-engineering-package-xae}}
\sphinxAtStartPar
Input command:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{Standard}\PYG{o}{.}\PYG{n}{XAE} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}


\subsection{Installation of the Remote Manager}
\label{\detokenize{docs/000_introduction:installation-of-the-remote-manager}}
\sphinxAtStartPar
Input command:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{StandardRM}\PYG{o}{.}\PYG{n}{XAE} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}

\sphinxAtStartPar
Install the package named ‘TwinCAT.StandardRM.XAE=4024.X’ to be able to target PLCs with \textless{} Build 4026

\sphinxAtStartPar
Input command with concrete example for minor revision X=68.1:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{StandardRM}\PYG{o}{.}\PYG{n}{XAE}\PYG{o}{=}\PYG{l+m+mf}{4024.68}\PYG{l+m+mf}{.1} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}


\subsection{Migration to Build 4026 in Scripted Version (dev)}
\label{\detokenize{docs/000_introduction:migration-to-build-4026-in-scripted-version-dev}}
\sphinxAtStartPar
To automatically start all commands,the PowerShell ISE (Integrated Scripting Environment) can be used.
Open it with administrator permissions.
The following script is tested a few times, but includes no error handling or error logging.
It needs more extensions and is not supposed to use in productive systems.

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
At the time of documentation and testing downloading of TwinCAT Package Manager needs to be done manually before executing the script.
Also adding the ‘Outdated’ feed must be done manually, because confirmation of disclaimer at adding feed process
is no longer possible with ‘y’\sphinxhyphen{}flag.
\end{sphinxadmonition}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{source} \PYG{n}{add} \PYG{o}{\PYGZhy{}}\PYG{n}{n}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Beckhoff Stable Feed}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{n}{s}\PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{https://public.tcpkg.beckhoff\PYGZhy{}cloud.com/api/v1/feeds/Stable}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{priority}\PYG{o}{=} \PYG{l+m+mi}{1} \PYG{o}{\PYGZhy{}}\PYG{n}{u}\PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{[YOUR BECKHOFF LOGIN MAILADRESS]}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{password} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{[YOUR BECKHOFF LOGIN PASSWORD]}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{XAE}\PYG{o}{.}\PYG{n}{MigrateCli} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\PYG{n}{TcMigrateCmd} \PYG{n}{clean} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{whatIf}\PYG{o}{=}\PYG{n}{false} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{Standard}\PYG{o}{.}\PYG{n}{XAE}\PYG{p}{,} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{StandardRM}\PYG{o}{.}\PYG{n}{XAE} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{StandardRM}\PYG{o}{.}\PYG{n}{XAE}\PYG{o}{=}\PYG{l+m+mf}{4024.68}\PYG{l+m+mf}{.1} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}

\sphinxAtStartPar
Processing the script took 14 to 15 minutes on test computer {[}(Intel(R) Core(TM) Ultra 5 238V (2.10 GHz){]}.


\subsection{Installation of the TwinCAT 4026 XAR Using NC PTP, Tcp IP and OPC UA Packages as Example}
\label{\detokenize{docs/000_introduction:installation-of-the-twincat-4026-xar-using-nc-ptp-tcp-ip-and-opc-ua-packages-as-example}}
\sphinxAtStartPar
\sphinxstylestrong{Prerequisites}
\begin{itemize}
\item {} 
\sphinxAtStartPar
Access to the PLC via Remote Desktop

\item {} 
\sphinxAtStartPar
Administrator privileges on the PLC PC

\item {} 
\sphinxAtStartPar
Folder containing the installation packages. In the following example, \sphinxcode{\sphinxupquote{C:\textbackslash{}TC\_Packages}} is used.

\end{itemize}

\sphinxAtStartPar
\sphinxstylestrong{Required Packages in this Example (Dependencies not listed)}
\begin{itemize}
\item {} 
\sphinxAtStartPar
TwinCAT\sphinxhyphen{}Package\sphinxhyphen{}Manager\sphinxhyphen{}GUI\sphinxhyphen{}Setup.exe

\item {} 
\sphinxAtStartPar
TwinCAT.XAE.MigrateCli.1.0.860.nupkg

\item {} 
\sphinxAtStartPar
TwinCAT.Standard.XAR.4026.22.0.nupkg

\item {} 
\sphinxAtStartPar
TwinCAT.XAR.OpcUaClient.2.2.36.nupkg

\item {} 
\sphinxAtStartPar
TF5000.NCPTP.XAR 3.1.5049

\item {} 
\sphinxAtStartPar
TF6100.OpcUaServer.XAR.5.4.6.nupkg

\item {} 
\sphinxAtStartPar
TF610x.OpcUaClientPubSub.XAR.2.0.2.nupkg

\item {} 
\sphinxAtStartPar
TF6310.TcpIp.XAR.3.3.24.nupkg

\end{itemize}

\sphinxAtStartPar
\sphinxstylestrong{Installation Procedure}
\begin{enumerate}
\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}%
\item {} 
\sphinxAtStartPar
Connect to the PLC: Connect to the target PLC using the Remote Desktop.

\item {} 
\sphinxAtStartPar
Download the \sphinxstyleemphasis{TwinCAT Package Manager} and copy the executable file to the desktop of the PLC.

\item {} 
\sphinxAtStartPar
Create the following directory on the PLC PC: \sphinxcode{\sphinxupquote{C:\textbackslash{}TC\_Packages}}.

\item {} 
\sphinxAtStartPar
Copy the TwinCAT packages to be installed to \sphinxcode{\sphinxupquote{C:\textbackslash{}TC\_Packages}}.
\begin{quote}

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
The packages share common dependencies. Replace duplicate files if prompted during the copy process.
\end{sphinxadmonition}
\end{quote}

\item {} 
\sphinxAtStartPar
Run the installer \sphinxstyleemphasis{TwinCAT\sphinxhyphen{}Package\sphinxhyphen{}Manager\sphinxhyphen{}GUI\sphinxhyphen{}Setup.exe}. Follow the installation wizard and complete the installation.

\item {} 
\sphinxAtStartPar
Wait until the installation is complete and click ‘Close’.

\item {} 
\sphinxAtStartPar
Open a PowerShell terminal with Administrator permissions.

\item {} 
\sphinxAtStartPar
Execute the following command to add the local package feed:
\begin{quote}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{source} \PYG{n}{add} \PYG{o}{\PYGZhy{}}\PYG{n}{n}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Local Feed}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{n}{s}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{C:}\PYG{l+s+s2}{\PYGZbs{}}\PYG{l+s+s2}{TC\PYGZus{}Packages}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{priority}\PYG{o}{=}\PYG{l+m+mi}{1}
\end{sphinxVerbatim}
\end{quote}

\sphinxAtStartPar
After executing the command, PowerShell may display a confirmation prompt like the example shown in the picture.
\begin{quote}

\begin{figure}[H]
\centering
\capstart

\noindent\sphinxincludegraphics{{image48}.png}
\caption{PowerShell Output}\label{\detokenize{docs/000_introduction:image48}}\end{figure}
\end{quote}

\item {} 
\sphinxAtStartPar
Check whether the packages are detected correctly:
\begin{quote}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n+nb}{list}
\end{sphinxVerbatim}
\end{quote}

\item {} 
\sphinxAtStartPar
Install the migration tool using:
\begin{quote}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{XAE}\PYG{o}{.}\PYG{n}{MigrateCli} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}
\end{quote}

\item {} 
\sphinxAtStartPar
Close PowerShell.
\begin{quote}

\begin{sphinxadmonition}{note}{Note:}
\sphinxAtStartPar
The migration tool will not be recognized until PowerShell is restarted.
\end{sphinxadmonition}
\end{quote}

\item {} 
\sphinxAtStartPar
Open PowerShell again with administrator privileges.

\item {} 
\sphinxAtStartPar
Start migration tool by executing following command:
\begin{quote}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{TcMigrateCmd} \PYG{n}{clean} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{whatIf}\PYG{o}{=}\PYG{n}{false} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}
\end{quote}

\item {} 
\sphinxAtStartPar
Wait until TwinCAT Build 4024 has been completely uninstalled.
After the migration process, the PLC will automatically restart and finalize the migration procedure.

\item {} 
\sphinxAtStartPar
After the PLC has restarted, open PowerShell as Administrator again and install the required packages:
\begin{quote}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{tcpkg} \PYG{n}{install} \PYG{n}{TF5000}\PYG{o}{.}\PYG{n}{NCPTP}\PYG{o}{.}\PYG{n}{XAR}\PYG{p}{,} \PYG{n}{TF6100}\PYG{o}{.}\PYG{n}{OpcUaServer}\PYG{o}{.}\PYG{n}{XAR}\PYG{p}{,} \PYG{n}{TF610x}\PYG{o}{.}\PYG{n}{OpcUaClientPubSub}\PYG{o}{.}\PYG{n}{XAR}\PYG{p}{,} \PYG{n}{TF6310}\PYG{o}{.}\PYG{n}{TcpIp}\PYG{o}{.}\PYG{n}{XAR}\PYG{p}{,} \PYG{n}{TwinCAT}\PYG{o}{.}\PYG{n}{Standard}\PYG{o}{.}\PYG{n}{XAR} \PYG{o}{\PYGZhy{}}\PYG{n}{y}
\end{sphinxVerbatim}
\end{quote}

\sphinxAtStartPar
During the installation process, a Windows Security dialog box may appear asking for confirmation to install driver software.

\item {} 
\sphinxAtStartPar
If the command prompt returning (e.g., PS C:\textgreater{}) appears again, then TwinCAT Build 4026 XAR is successfully installed.

\end{enumerate}



\renewcommand{\indexname}{Index}
\newpage
\end{document}