TIA Portal en C#, por fin sencillo.
Desarrolle aplicaciones C#/.NET que interactúen con TIA Portal sin las complicaciones del SDK nativo. T-IA Connect ofrece una API REST o un cliente C# moderno con soporte de async/await.
El SDK de TIA Openness es complejo
Utilizar TIA Portal desde C# con el SDK nativo requiere mucho código boilerplate y un conocimiento profundo de la arquitectura de Siemens.
Referencias a DLL
Cada versión de TIA Portal tiene sus propias DLL. Gestionar las referencias y versiones es tedioso.
Threading STA
TIA Openness requiere un hilo STA. Incompatible con los patrones async/await modernos.
Código verboso
Navegación por el árbol del proyecto, casting de tipos, gestión de transacciones... Mucho código para poco valor.
Sin NuGet
No existe un paquete NuGet oficial. Instalación manual de las DLL en cada máquina de desarrollo.
Dos enfoques para C#/.NET
T-IA Connect le ofrece dos formas de integrar TIA Portal en sus aplicaciones C#: una API REST universal o un cliente C# nativo.
API REST
Utilice el HttpClient estándar para llamar a la API de T-IA Connect. Funciona con .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>();Cliente C# nativo
Paquete NuGet con IntelliSense completo, tipos fuertemente tipados y patrones 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})");Por qué T-IA Connect para C#
Async/Await nativo
Todos los métodos son asíncronos. Perfecto para aplicaciones UI y servicios web.
IntelliSense completo
Documentación XML, tipos fuertemente tipados, autocompletado. Máxima productividad en Visual Studio.
Paquete NuGet
Instalación en un solo comando: dotnet add package TiaConnect.Client. Actualizaciones automáticas.
.NET moderno
Compatible con .NET 6, 7, 8 y .NET Framework 4.7.2+. Utilice las últimas funcionalidades de C#.
Comparación del código
// 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}");¿Listo para simplificar su código C#?
Pruebe la API de T-IA Connect y descubra una nueva forma de programar TIA Portal.