S7 Communication with Wandelbots NOVA
S7 Communication is the PUT/GET protocol used by Siemens PLCs. It is the recommended way to connect Wandelbots NOVA to a simulated PLC running in SIMATIC S7-PLCSIM Advanced , as an alternative to PROFINET for simulated PLCs.
You can use S7 Communication to integrate NOVA into a virtual commissioning setup before the physical PLC and cell hardware are available.
The S7 Communication endpoints are experimental and currently only available through the Wandelbots NOVA API. Behavior, endpoint paths, and parameters may change without notice.
Supported
S7 Communication is built on top of the open-source snap7 library, which implements the Siemens S7 PUT/GET protocol.
S7 Communication in Wandelbots NOVA is supported on:
- Bare-metal NOVA instances in the same network as the PLC.
- Virtual machine NOVA instances in the same network as the PLC.
It is not supported on NOVA Cloud instances, since these cannot reach the PLC network directly.
Per cell, you can only activate one communication protocol at a time: either PROFINET, Modbus, or S7. Signals registered via the NOVA API are addressed by name, so you can switch between PROFINET and S7 without changing your robot programs, as long as the signal names match.
Prerequisites
You’ll need:
- A Wandelbots NOVA instance (bare-metal or VM) connected to the same network as the PLC.
- A Siemens PLC or a simulated PLC running in SIMATIC S7-PLCSIM Advanced.
- The IP address of the (virtual) PLC.
- TIA Portal to prepare the PLC project, see Configure the PLC in TIA Portal.
Configure the PLC in TIA Portal
S7 Communication accesses PLC data through data blocks by offset. Prepare the PLC project in TIA Portal accordingly:
Disable optimized block access
- In the project tree, right-click the data block you want to expose to NOVA and select
Properties. - Open
Attributes. - Disable
Optimized block access.
This ensures the data block uses absolute byte offsets that snap7 can address.
Permit PUT/GET access from remote partners
- Right-click the PLC and select
Properties. - Open
Protection & Security > Connection mechanisms. - Enable
Permit access with PUT/GET communication from remote partner.
Note down the data block addressing
For every signal you want to use in NOVA, note down:
- The data block number.
- The byte offset within the data block.
- The data type.
You will use these values when registering signals via the NOVA API.
Export of S7 signals from TIA Portal is not supported. Signals must be created manually via the NOVA API.
For details on configuring PUT/GET communication, refer to the Siemens documentation on PUT/GET communication .
Set up S7 Communication on Wandelbots NOVA
S7 Communication is set up through the BUS IO endpoints of the Wandelbots NOVA API.
Connect the NOVA instance to the PLC network
Make sure the NOVA instance can reach the (virtual) PLC over the network. For a simulated PLC, the IPC running NOVA must be connected to the machine hosting PLCSIM Advanced.
Add the S7 BUS IO service
- Open the Wandelbots NOVA API v2 on your NOVA instance.
- Use
POST /api/v2/cells/{cell}/bus-io/servicesto add the S7 service. Set at least:bus_type:snap7address: the IP address of the (virtual) PLC.
- Verify the service was created with
GET /api/v2/cells/{cell}/bus-io/services.
Register signals
For each signal noted in Configure the PLC in TIA Portal, register an input or output via the BUS IO endpoints. Provide the data block number, byte offset, and data type matching the PLC configuration.
Use the same signal names as in your existing PROFINET configuration if you want robot programs to work with both protocols interchangeably.
Use S7 signals in Python
Once signals are registered via the NOVA API, you can read, write, and wait for them in your Python programs
using the busio functions of the NOVA Python SDK, just like PROFINET or Modbus signals.
Known limitations
- S7 Communication is experimental and only available via the NOVA API. There is no Setup app integration yet.
- Signals cannot be exported from TIA Portal and must be registered manually.
- Not available on NOVA Cloud instances.