TIA Portal in C#, finalmente semplice.
Sviluppa applicazioni C#/.NET che interagiscono con TIA Portal senza le complicazioni del SDK nativo. T-IA Connect offre un'API REST o un client C# moderno con supporto async/await.
Il SDK TIA Openness è complesso
Utilizzare TIA Portal da C# con il SDK nativo richiede molto codice boilerplate e una conoscenza approfondita dell'architettura Siemens.
Riferimenti DLL
Ogni versione di TIA Portal ha le proprie DLL. Gestire i riferimenti e le versioni è faticoso.
Threading STA
TIA Openness richiede un thread STA. Incompatibile con i moderni pattern async/await.
Codice prolisso
Navigazione nell'albero del progetto, cast di tipi, gestione transazioni... Molto codice per poco valore aggiunto.
Nessun pacchetto NuGet
Manca un pacchetto NuGet ufficiale. Installazione manuale delle DLL su ogni macchina di sviluppo.
Due approcci per C#/.NET
T-IA Connect ti offre due modi per integrare TIA Portal nelle tue applicazioni C#: un'API REST universale o un client C# nativo.
API REST
Usa HttpClient standard per chiamare l'API T-IA Connect. Funziona 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>();Client C# nativo
Pacchetto NuGet con IntelliSense completo, tipi fortemente tipizzati e pattern 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})");Perché T-IA Connect per C#
Async/Await nativo
Tutti i metodi sono asincroni. Perfetto per applicazioni UI e servizi web.
IntelliSense completo
Documentazione XML, tipi fortemente tipizzati, autocompletamento. Massima produttività in Visual Studio.
Pacchetto NuGet
Installazione con un comando: dotnet add package TiaConnect.Client. Aggiornamenti automatici.
.NET moderno
Compatibile con .NET 6, 7, 8 e .NET Framework 4.7.2+. Utilizza le ultime funzionalità C#.
Confronto del codice
// 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}");Pronto a semplificare il tuo codice C# ?
Prova l'API T-IA Connect e scopri un nuovo modo di programmare TIA Portal.