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.
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.
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})");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
// 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 - 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.