C# & .NET

TIA Portal in C#, endlich einfach.

Entwickeln Sie C#/.NET-Anwendungen, die mit TIA Portal interagieren, ohne die Komplikationen des nativen SDK. T-IA Connect bietet eine REST-API oder einen modernen C#-Client mit async/await.

Die Herausforderung

Das TIA Openness SDK ist komplex

Die Verwendung von TIA Portal aus C# mit dem nativen SDK erfordert viel Boilerplate-Code und tiefgreifende Kenntnisse der Siemens-Architektur.

DLL-Referenzen

Jede TIA Portal-Version hat ihre eigenen DLLs. Die Verwaltung von Referenzen und Versionen ist mühsam.

STA-Threading

TIA Openness erfordert einen STA-Thread. Inkompatibel mit modernen async/await-Patterns.

Ausführlicher Code

Navigation im Projektbaum, Type-Casting, Transaktionsverwaltung... Viel Code für wenig Wert.

Kein NuGet

Kein offizielles NuGet-Paket. Manuelle DLL-Installation auf jedem Entwicklungsrechner.

Die Lösung

Zwei Ansätze für C#/.NET

T-IA Connect bietet zwei Möglichkeiten, TIA Portal in Ihre C#-Anwendungen zu integrieren: eine universelle REST-API oder einen nativen C#-Client.

REST-API

Verwenden Sie Standard-HttpClient zum Aufrufen der T-IA Connect API. Funktioniert mit .NET Core, .NET 5+, .NET Framework.

// .NET with HttpClient
using var client = new HttpClient();
var response = await client.PostAsJsonAsync(
    "http://localhost:5000/api/blocks",
    new { name = "FC_Motor", type = "FC", language = "SCL" }
);
var block = await response.Content.ReadFromJsonAsync<Block>();

Nativer C#-Client

NuGet-Paket mit vollständigem IntelliSense, stark typisierten Typen und async/await-Patterns.

// T-IA Connect C# Client
using TiaConnect.Client;

var client = new TiaConnectClient("http://localhost:5000");

// Create a block with IntelliSense
var block = await client.Blocks.CreateAsync(new CreateBlockRequest
{
    Name = "FC_Motor",
    Type = BlockType.FC,
    Language = ProgrammingLanguage.SCL
});

Console.WriteLine($"Block created: {block.Name} (#{block.Number})");
Vorteile

Warum T-IA Connect für C#

Natives Async/Await

Alle Methoden sind asynchron. Perfekt für UI-Anwendungen und Webdienste.

Vollständiges IntelliSense

XML-Dokumentation, stark typisierte Typen, Autovervollständigung. Maximale Produktivität in Visual Studio.

NuGet-Paket

Installation mit einem Befehl: dotnet add package TiaConnect.Client. Automatische Updates.

Modernes .NET

Kompatibel mit .NET 6, 7, 8 und .NET Framework 4.7.2+. Nutzen Sie die neuesten C#-Funktionen.

Code- Vergleich

Natives TIA Openness
// Native TIA Openness - STA thread required
[STAThread]
static void Main()
{
    using (TiaPortal portal = new TiaPortal(TiaPortalMode.WithUserInterface))
    {
        Project project = portal.Projects.Open(new FileInfo(path));
        
        foreach (Device device in project.Devices)
        {
            DeviceItem cpu = device.DeviceItems
                .FirstOrDefault(di => di.GetService<SoftwareContainer>() != null);
            
            if (cpu != null)
            {
                var sw = cpu.GetService<SoftwareContainer>();
                var plc = sw.Software as PlcSoftware;
                var blocks = plc.BlockGroup.Blocks;
                
                // Create a block
                PlcBlock fc = blocks.CreateFC("FC_Motor");
            }
        }
    }
}
T-IA Connect C#
// T-IA Connect - Modern async
using TiaConnect.Client;

var client = new TiaConnectClient("http://localhost:5000");

// Open project
var project = await client.Projects.OpenAsync("C:/Projects/MyProject.ap18");

// Create an FC block
var block = await client.Blocks.CreateAsync(new CreateBlockRequest
{
    Name = "FC_Motor",
    Type = BlockType.FC,
    Language = ProgrammingLanguage.SCL,
    Comment = "Main motor control"
});

Console.WriteLine($"Created: {block.Name}");

Bereit, Ihren C#-Code zu vereinfachen?

Testen Sie die T-IA Connect API und entdecken Sie eine neue Art, TIA Portal zu programmieren.