tia-networks
Scope
Topology and low-level network engineering — full C# Openness implementation.
When the roadmap routes here, the entire solution is C#.
Do not mix with Python wrapper calls.
Always load tia-csharp-common first (done by roadmap).
Reference files
Load ONLY the reference file(s) relevant to the task. Do not load all files at once.
| Reference file | Load when the task involves |
|---|---|
references/subnets-and-nodes.md |
Reading/writing subnet attributes (name, type, PROFIBUS bus params, isochronous settings); accessing node attributes (IP address, PROFINET device name, node type); SubnetOwner service |
references/io-systems.md |
PROFINET IO system attributes; DP master system (IoSystem) attributes; TransferArea creation/deletion on PN or DP interfaces |
references/addresses-and-channels.md |
Address objects (StartAddress, IoType, Length, IsochronousMode, ProcessImage); channel access (ChannelType, ChannelIoType); AddressController service |
references/io-timing.md |
IoConnector timing/watchdog attributes (PnUpdateTime, PnWatchdogFactor, RtClass, SyncRole); IO device interface isochronous settings (PnSendClock, IsochronousTi, IsochronousTo) |
references/communication-connections.md |
Configuring and inspecting S7, FDL, ISO, ISO-on-TCP, TCP, UDP, PTP, and HMI communication connections through CommunicationManagement.Connections |
references/online-connection-configuration.md |
Choosing/inspecting online connection paths with ConnectionConfiguration: modes, PC interfaces, target interfaces, subnets, gateways, accessible devices, and ApplyConfiguration |
For tasks spanning multiple areas, load all relevant reference files before generating code.
Safety and dependency gate
- Resolve project, device, recursive device-item path, interface/node, subnet, IO system, and connection with exact selectors. A name alone is insufficient when the same name can occur in another group or interface.
- Obtain explicit authorization for the exact topology, address, timing, connection, or online-path mutation. Read-only discovery and static validation are not authorization.
- Before delete, disconnect, reconnect, readdress, or subnet replacement, inventory every dependent node, IO system, communication connection, assigned PLC tag/address, and online route that the change can affect.
- Bind that dependency inventory to the proposed change. If any connection endpoint or
selector cannot be identified completely, return
dependency_evidence_incompleteand refuse the mutation. - Use
ExclusiveAccessand a transaction where the operation supports them, then compile the affected hardware/software. Do not save after ambiguous selection, partial mutation, incomplete dependency evidence, or compile/consistency failure. - Applying an online connection configuration, enumerating accessible devices, or going online is a live operation. Keep it separate from offline topology edits and require the exact target and PC interface to be authorized.
Execution pattern
- Access devices and device items from
Project.Devices - Navigate network interfaces and nodes via Openness HW namespace
- Use
GetService<SubnetOwner>()to access subnets owned by a device item - Use
GetService<NetworkInterface>()to access the network interface - Resolve exact endpoints and complete dependency evidence before creating or modifying IO systems, subnets, nodes, or connections
- Modify addresses or channel timing via
deviceItem.Addresses/deviceItem.Channels - Use
GetService<CommunicationManagement>()for configured communication connections - Use
OnlineProvider.Configurationonly for online connection-path selection, not for project topology creation - Compile hardware after changes, inspect the complete result, and save only on success (see
tia-project-general/references/compile.md)