TIA Portal in C#, eindelijk eenvoudig.
Ontwikkel C#/.NET-applicaties die communiceren met TIA Portal zonder de complicaties van de native SDK. T-IA Connect biedt een REST API of een moderne C# client met async/await.
De TIA Openness SDK is ingewikkeld
TIA Portal gebruiken vanuit C# met de native SDK vereist veel boilerplate code en diepgaande kennis van de Siemens-architectuur.
DLL-referenties
Elke TIA Portal-versie heeft zijn eigen DLL's. Het beheren van referenties en versies is tijdrovend.
STA Threading
TIA Openness vereist een STA-thread. Incompatibel met moderne async/await patronen.
Woordrijke code
Navigatie door de projectboom, type-casting, transactiebeheer... Veel code voor weinig waarde.
Geen NuGet
Geen officieel NuGet-pakket. Handmatige installatie van DLL's op elke ontwikkelmachine.
Twee benaderingen voor C#/.NET
T-IA Connect biedt u twee manieren om TIA Portal in uw C#-applicaties te integreren: een universele REST API of een native C# client.
REST API
Gebruik de standaard HttpClient om de T-IA Connect API aan te roepen. Werkt met .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>();Native C# client
NuGet-pakket met volledige IntelliSense, sterk getypeerde typen en async/await patronen.
// 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})");Waarom T-IA Connect voor C#
Systeemeigen Async/Await
Alle methoden zijn asynchroon. Perfect voor UI-applicaties en webservices.
Volledige IntelliSense
XML-documentatie, sterk getypeerde typen, autocompletion. Maximale productiviteit in Visual Studio.
NuGet-pakket
Installatie in één commando: dotnet add package TiaConnect.Client. Automatische updates.
Modern .NET
Compatibel met .NET 6, 7, 8 en .NET Framework 4.7.2+. Gebruik de nieuwste C#-functies.
Vergelijking van de 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}");Klaar om uw C#-code te vereenvoudigen?
Test de T-IA Connect API en ontdek een nieuwe manier om TIA Portal te programmeren.