Example

(*! @summary a program with a simple counter
<description>This is a sample program in which I will increase a counter variable. Of course the description of this program could be longer than one line </description> *)
//! @param iCount2 variable to increase the counter
PROGRAM MAIN
VAR
    btest AT%Q*   : BOOL;   //! A sample variable not needed for this POU
    iCount2       : INT;    // This is my internal comment which will not be visible in the docu
    myPOU         : POU     //! This is a sample of a FB instanciated within this program
END_VAR

(*! <example> This sample shows how to increase the variable <c>iCount2</c>.
The following code can be used to increase $iCount:
<code>iCount2:=iCount2+1; </code></example>*)
//! @summary sample function block for the PS meeting

FUNCTION_BLOCK FB_Cylinder IMPLEMENTS ICylinder
VAR_INPUT
    bTest :BOOL;
END_VAR
VAR

//! @param tTimerValue internal TIME variable that is being accessed via property "P_Timervalue" (Get/Set)
    tTimerValue      : TIME := T#500MS;   //internal comment
    iState           : INT;               //! state of the state machine
    bAtLeftPosFbk    : BOOL;              //internal comment
    bAtRightPosFbk   : BOOL;              //! software watchdog to reach the end position
    TimerReach       : TON;               //! software watchdog to reach the end position
    TimerStart       : TON;               //! Start timer
END_VAR

//! <description> regular FB that additionally implements an interface "ICylinder" </description>