Program - Manual - Monitor - The SIMATIC Monitor. Enables you to monitor global variables on your PLC. - Monitor (mon),tool

Monitor CLI Tool (mon)

Portfolio
SIMATIC AX
Product
Monitor
Software version
1.1.2
Edition
03/2024
Language
English (original)
Package Name
@ax/mon

Given the following ST file in a valid Apax project with an installed SDK.

CONFIGURATION PLC_1
    VAR_GLOBAL
        myBOOL : BOOL;
        myINT : INT;
        myDINT : DINT;
        myLINT : LINT;
        mySINT : SINT;
        myUINT AT %MW3 : UINT;
        myUDINT : UDINT;
        myULINT : ULINT;
        myUSINT : USINT;
        myREAL : REAL;
        myLREAL : LREAL;
        myMotor : Motor;
        myConveyor : Conveyor;
        mySimpleArray : ARRAY [0..2] OF BOOL;
        myArray : ARRAY [0..1, 1..2] of INT;
    END_VAR

    TASK Main(Interval := T#3000ms, Priority := 1);
    PROGRAM P1 WITH Main : SampleProgram;
END_CONFIGURATION

TYPE
    Motor : STRUCT
        is_running        : BOOL;
        power_consumption : REAL;
        hours_operating   : INT;
    END_STRUCT;
END_TYPE

CLASS Conveyor
    VAR PRIVATE
        Motor1 : Motor;
        Motor2 : Motor;
    END_VAR

    VAR PUBLIC
        is_running : BOOL;
    END_VAR

    METHOD PUBLIC Start        
        Motor1.is_running := TRUE;
        Motor2.is_running := TRUE;
        is_running := TRUE;
    END_METHOD

    METHOD PUBLIC Stop
        Motor1.is_running := FALSE;
        Motor2.is_running := FALSE;
        is_running := FALSE;
    END_METHOD
END_CLASS

FUNCTION_BLOCK FBWithStaticVariable
    VAR
        myVarStaticInt : INT;
    END_VAR

    myVarStaticInt := 42;

END_FUNCTION_BLOCK

PROGRAM SampleProgram
    VAR_EXTERNAL
        myBOOL : BOOL;
        myINT : INT;
        myDINT : DINT;
        myLINT : LINT;
        mySINT : SINT;
        myUINT : UINT;
        myUDINT : UDINT;
        myULINT : ULINT;
        myUSINT : USINT;
        myREAL : REAL;
        myLREAL : LREAL;
        myMotor: Motor;
        myConveyor : Conveyor;
        mySimpleArray : ARRAY [0..2] OF BOOL;
        myArray : ARRAY [0..1, 1..2] of INT;
    END_VAR

    VAR
        myFBWithStatic : FBWithStaticVariable;
    END_VAR

    myINT := myINT + 3;
    myDINT := DINT#-56;
    myLINT := LINT#512;
    mySINT := SINT#-5;
    myUINT := myUINT + UINT#10000;
    myUDINT := UDINT#512;
    myULINT := ULINT#512;
    myUSINT := USINT#5;
    myREAL := REAL#5.0;
    myLREAL := 3.14159;
    myMotor.is_running := TRUE;
    myMotor.power_consumption := REAL#10.0;
    myMotor.hours_operating := myMotor.hours_operating + 1;

    IF myINT MOD 2 = 0 THEN
        myBOOL := TRUE;
        myConveyor.Start();
    ELSE
        myBOOL := FALSE;
        myConveyor.Stop();
    END_IF;

    mySimpleArray[0] := TRUE;
    mySimpleArray[1] := FALSE;
    mySimpleArray[2] := TRUE;
    myArray[0,1] := 1;
    myArray[0,2] := 2;
    myArray[1,2] := 5;

    myFBWithStatic();

END_PROGRAM

Build the program and download it to the SIMATIC 1500 PLC by performing these steps:

apax build
apax sld load --target 192.168.0.1 --input ./bin/plcsim/ --certificate ./cert.cer --password aSecurePassword --restart --accept-security-disclaimer