TIA Portal en C#, enfin simple.
Développez des applications C#/.NET qui interagissent avec TIA Portal sans les complications du SDK natif. T-IA Connect offre une API REST ou un client C# moderne avec async/await.
Le SDK TIA Openness est complexe
Utiliser TIA Portal depuis C# avec le SDK natif demande beaucoup de code boilerplate et une connaissance approfondie de l'architecture Siemens.
Références DLL
Chaque version de TIA Portal a ses propres DLL. Gérer les références et versions est fastidieux.
Threading STA
TIA Openness requiert un thread STA. Incompatible avec les patterns async/await modernes.
Code verbeux
Navigation dans l'arborescence projet, casting de types, gestion des transactions... Beaucoup de code pour peu de valeur.
Pas de NuGet
Pas de package NuGet officiel. Installation manuelle des DLL sur chaque machine de développement.
Deux approches pour C#/.NET
T-IA Connect vous offre deux façons d'intégrer TIA Portal dans vos applications C# : une API REST universelle ou un client C# natif.
API REST
Utilisez HttpClient standard pour appeler l'API T-IA Connect. Fonctionne avec .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>();Client C# natif
Package NuGet avec IntelliSense complet, types fortement typés et patterns async/await.
// 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})");Pourquoi T-IA Connect pour C#
Async/Await natif
Toutes les méthodes sont asynchrones. Parfait pour les applications UI et les services web.
IntelliSense complet
Documentation XML, types fortement typés, autocomplétion. Productivité maximale dans Visual Studio.
NuGet package
Installation en une commande : dotnet add package TiaConnect.Client. Mises à jour automatiques.
.NET moderne
Compatible .NET 6, 7, 8 et .NET Framework 4.7.2+. Utilisez les dernières fonctionnalités C#.
Comparaison du code
// 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}");Prêt à simplifier votre code C# ?
Testez l'API T-IA Connect et découvrez une nouvelle façon de programmer TIA Portal.