\XtoCBlock{PI}
\label{block:PI}
\begin{figure}[H]\includegraphics{PI}\end{figure} 
PI controller:

    G(s) = Kp + Ki/s

\begin{XtoCtabular}{Inports}
In & Control error input\\
\hline
Init & Initial value of output Out when enabled\\
\hline
Enable & Enable == 0: Deactivation of block; Out set to 0

Enable 0->1: Preload of integral part

Enable == 1: Activation of block\\
\hline
\end{XtoCtabular}


\begin{XtoCtabular}{Outports}
Out & Control value\\
\hline
\end{XtoCtabular}

\begin{XtoCMaskParamTabular}{Mask Parameters}
Kp & 1 & Proportional Factor\\
\hline
Ki & 2 & Integral Factor\\
\hline
initHandling & 3 & Determines what the signal provided on Init input is used for\\
\hline
ts\_fact & 4 & Multiplication factor of base sampling time (in integer format)\\
\hline
\end{XtoCMaskParamTabular}

\ifdefined \XcOverviewDocu
% omit optional documentation file
\else
% include optional documentation file
\IfFileExists{\XcHomePath/Library/Control/Doc/PI_Info.tex}
  {\subsubsection*{Description:}
   \input{\XcHomePath/Library/Control/Doc/PI_Info.tex}}
  {\vspace{1ex}}
\fi

\subsubsection*{Implementations:}
\begin{tabular}{l l}
\textbf{FiP8} & 8 Bit Fixed Point Implementation\\
\textbf{FiP16} & 16 Bit Fixed Point Implementation\\
\textbf{FiP32} & 32 Bit Fixed Point Implementation\\
\textbf{Float32} & 32 Bit Floating Point Implementation\\
\textbf{Float64} & 64 Bit Floating Point Implementation\\
\end{tabular}

\ifdefined \XcOverviewDocu
% omit implementation details and test reports
\else
\XtoCImplementation{FiP8}
\nopagebreak[0]

8 Bit Fixed Point Implementation

\begin{XtoCtabular}{Inports Data Type}
In & int8\\
\hline
Init & int8\\
\hline
Enable & bool\\
\hline
\end{XtoCtabular}

\begin{XtoCtabular}{Outports Data Type}
Out & int8\\
\hline
\end{XtoCtabular}

\XtoCImplementation{FiP16}
\nopagebreak[0]

16 Bit Fixed Point Implementation

\begin{XtoCtabular}{Inports Data Type}
In & int16\\
\hline
Init & int16\\
\hline
Enable & bool\\
\hline
\end{XtoCtabular}

\begin{XtoCtabular}{Outports Data Type}
Out & int16\\
\hline
\end{XtoCtabular}

\XtoCImplementation{FiP32}
\nopagebreak[0]

32 Bit Fixed Point Implementation

\begin{XtoCtabular}{Inports Data Type}
In & int32\\
\hline
Init & int32\\
\hline
Enable & bool\\
\hline
\end{XtoCtabular}

\begin{XtoCtabular}{Outports Data Type}
Out & int32\\
\hline
\end{XtoCtabular}

\XtoCImplementation{Float32}
\nopagebreak[0]

32 Bit Floating Point Implementation

\begin{XtoCtabular}{Inports Data Type}
In & float32\\
\hline
Init & float32\\
\hline
Enable & bool\\
\hline
\end{XtoCtabular}

\begin{XtoCtabular}{Outports Data Type}
Out & float32\\
\hline
\end{XtoCtabular}

\XtoCImplementation{Float64}
\nopagebreak[0]

64 Bit Floating Point Implementation

\begin{XtoCtabular}{Inports Data Type}
In & float64\\
\hline
Init & float64\\
\hline
Enable & bool\\
\hline
\end{XtoCtabular}

\begin{XtoCtabular}{Outports Data Type}
Out & float64\\
\hline
\end{XtoCtabular}

\ifdefined \AddTestReports
\InputIfFileExists{\XcHomePath/Library/Control/Doc/Test-Results/Test_PI_FiP8.tex}{}{}
\InputIfFileExists{\XcHomePath/Library/Control/Doc/Test-Results/Test_PI_FiP16.tex}{}{}
\InputIfFileExists{\XcHomePath/Library/Control/Doc/Test-Results/Test_PI_FiP32.tex}{}{}
\InputIfFileExists{\XcHomePath/Library/Control/Doc/Test-Results/Test_PI_Float32.tex}{}{}
\InputIfFileExists{\XcHomePath/Library/Control/Doc/Test-Results/Test_PI_Float64.tex}{}{}
\fi
\fi
