C# i .NET

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.

Wyzwanie

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.

Rozwiązanie

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})");
Korzyści

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

Natywne TIA Openness
// 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 C#
// 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.