Ever needed a simple console program to read some variables from a Siemens S7 PLC?
Sharp7Monitor is a .NET Console program written in C# that connects to a Siemens S7 PLC (Programmable Logic Controller) and reads specified variables. It displays the variable values in a table format directly in your console. The content of these variables is automatically updated.
-
Download the zip file for your plattform from releases:
- Windows x64 - If you are not sure what to download, this is most likely what you need.
- Windows Arm 64
- Linux x64
- Linux Arm 64
-
Extract the
s7mon.exe
, resp.s7mon
binary.The binaries are self contained - no installation of .Net Runtime is required.
-
Run the following command:
.\s7mon.exe <IP_Address> <Variable1> <Variable2> ... <VariableN>
Replace
<IP_Address>
with the IP address of your Siemens S7 PLC, and list the desired variables (e.g.,DB2050.Byte1
,DB2050.Int6
, etc.).You can find a description of the variable format on the Sharp7.Rx readme.
If the connection cannot be established, try setting CPU and Rack with the
--cpu
and--rack
parameters. -
The program will establish a connection to the PLC and continuously display the values of the specified variables in a table format.
Press
Ctrl + C
to exit.
s7mon.exe <IP address> [variables] [OPTIONS]
<IP address> IP address of S7
[variables] Variables to read from S7, like Db200.Int4.
For format description see https://github.com/evopro-ag/Sharp7Reactive
DEFAULT
-h, --help Prints help information
-c, --cpu 0 CPU MPI address of S7 instance.
See https://github.com/fbarresi/Sharp7/wiki/Connection#rack-and-slot.
-r, --rack 0 Rack number of S7 instance.
See https://github.com/fbarresi/Sharp7/wiki/Connection#rack-and-slot.
.\s7mon.exe 10.30.110.62 DB2050.Byte1 DB2050.Byte2.4 DB2050.Int6 DB2050.Real34 DB2050.String50.20
Use --cpu
and --rack
parameters to specity the S7 instance to connect to. The required values depend on
the S7 you are using and it's configuration. You can find more information in the
Sharp 7 docs.
Contributions are welcome! If you encounter any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
This project is based on great libraries:
- The Sharp 7 S7 PLC driver, based on Snap 7 by Davide Nardella
- Sharp 7 Reactive
- Spectre.Console