Prerequisite
- A Braincube IoT Server
- The application Siemens S7 install (see appsmanager to install new application)
- A Siemens PLC
The PLC settings
The PLC settings
On the PLC side, on newer PLCs you need to check which rack and slot are configured in the programming software.
In the example below we have a PLC in Rack 0 and Slot 1.

You need to select the option "Permit access with PUT/GET communication from remote partner" within the PLC properties.

If you need to access data from a DB, you must disable the "Optimized block access" option in its properties.

The node settings
Once the application Siemens S7 installed you will find new nodes in your node palette:
- s7-in

S7-in
The s7-in node is designed to help you read data from a Siemens PLC.
You can easily drag and drop this node from the palette to your dataflow and start working with it. The first thing to do is to set up the node:
- Connection
- Variables list
To start with this node you will create a new "S7 endpoint" by opening the dropdown menu, choose "Add new s7 endpoint..." and click on the "edit" button. You will then access this page where you have two tabs for the two settings we have to work on:

About the server connection s7 requires :
- Name: a name to identify the endpoint
- IP: an IP Address which is the IP of the PLC you want to connect to
- Port: 102 is the standard port used by s7 protocol, change it if you use a specific port in your implementation
- Mode:
- Rack/Slot: Refer to the physical hardware configuration of Siemens S7 PLCs. In a Siemens S7 system, the PLCs are modular in design, consisting of a rack and multiple slots within the rack
- TSAP: Is a logical network address used in the S7 communication protocol to identify a specific device or service
- Connection Timeout: configure the timeout of the connection and reconnection

Once you set up this you can click on Add, Done, Deploy to save the settings and then come back to this node configuration.

The Tags Selection is a list of Address/Name. This list can be created or updated manually or can be uploaded from a text file. In the node documentation you can find everything about the types we can use. To know what addresses to use you must work with the automation department on your side and the person who can extract this list from the program for you.
In the address field the entries can be configured as:
- DB: for Data Block Area
- M: for Merker (shared memory)
- I: for Input data
- Q: for Output data
- PI: for Peripherical input data
- PQ: for Peripherical output data
Here is an example of a list we can have in this s7-in connector:
