TIA Portal w C#, wreszcie proste.
Buduj aplikacje C#/.NET, które wchodzą w interakcję z TIA Portal bez komplikacji natywnego SDK. T-IA Connect oferuje REST API lub nowoczesnego klienta C# z async/await.
SDK TIA Openness jest skomplikowane
Korzystanie z TIA Portal w C# za pomocą natywnego SDK wymaga mnóstwa kodu szablonowego (boilerplate) i głębokiej wiedzy o architekturze Siemensa.
Referencje DLL
Każda wersja TIA Portal ma własne DLL. Zarządzanie referencjami i wersjami jest uciążliwe.
Wątki STA
TIA Openness wymaga wątku STA. Niekompatybilne z nowoczesnymi wzorcami async/await.
Rozwlekły Kod
Nawigacja po drzewie projektu, rzutowanie typów, obsługa transakcji... Dużo kodu, mało wartości.
Brak NuGet
Brak oficjalnego pakietu NuGet. Ręczna instalacja DLL na każdym komputerze deweloperskim.
Dwa podejścia dla C#/.NET
T-IA Connect oferuje dwa sposoby integracji TIA Portal z Twoimi aplikacjami C#: uniwersalne REST API lub natywny klient C#.
REST API
Użyj standardowego HttpClient do wywoływania API T-IA Connect. Działa z .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>();Natywny Klient C#
Pakiet NuGet z pełnym IntelliSense, silnym typowaniem i wzorcami 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})");Dlaczego T-IA Connect dla C#
Natywne Async/Await
Wszystkie metody są asynchroniczne. Idealne dla aplikacji UI i usług webowych.
Pełne IntelliSense
Dokumentacja XML, silne typowanie, autouzupełnianie. Maksymalna produktywność w Visual Studio.
Pakiet NuGet
Instalacja jedną komendą: dotnet add package TiaConnect.Client. Automatyczne aktualizacje.
Nowoczesny .NET
Kompatybilne z .NET 6, 7, 8 i .NET Framework 4.7.2+. Używaj najnowszych funkcji C#.
Kod Porównanie
// 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}");Gotowy uprościć swój kod C#?
Wypróbuj API T-IA Connect i odkryj nowy sposób programowania TIA Portal.