C# و .NET

TIA Portal بلغة C#، بسيطة أخيراً.

قم بتطوير تطبيقات C#/.NET التي تتفاعل مع TIA Portal دون تعقيدات الـ SDK الأصلي. يوفر T-IA Connect واجهة برمجة تطبيقات REST أو عميلاً حديثاً لـ C# مع دعم async/await.

التحدي

SDK TIA Openness معقد جداً

يتطلب استخدام TIA Portal من لغة C# باستخدام الـ SDK الأصلي الكثير من الأكواد الروتينية ومعرفة عميقة ببنية Siemens.

مراجع الـ DLL

كل إصدار من TIA Portal له ملفات DLL الخاصة به. إدارة المراجع والإصدارات أمر مرهق.

خيوط المعالجة STA

يتطلب TIA Openness خيط معالجة STA. وهو غير متوافق مع أنماط async/await الحديثة.

كود مطول

التنقل في شجرة المشروع، تحويل الأنواع، إدارة المعاملات... الكثير من الكود لقيمة مضافة قليلة.

لا يوجد حزمة NuGet

لا توجد حزمة NuGet رسمية. تثبيت يدوي لملفات الـ DLL على كل جهاز تطوير.

الحل

نهجان لـ C#/.NET

يوفر لك T-IA Connect طريقتين لدمج TIA Portal في تطبيقات C# الخاصة بك: واجهة برمجة تطبيقات REST عالمية أو عميل C# أصلي.

واجهة برمجة تطبيقات REST

استخدم HttpClient المعياري لاستدعاء API T-IA Connect. يعمل مع .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>();

عميل C# أصلي

حزمة NuGet مع IntelliSense كامل، وأنواع محددة القوة، وأنماط 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})");
المزايا

لماذا T-IA Connect لـ لغة C#

دعم أصلي لـ Async/Await

جميع الطرق غير متزامنة. مثالية لتطبيقات واجهة المستخدم وخدمات الويب.

IntelliSense كامل

توثيق XML، أنواع محددة القوة، وإكمال تلقائي. إنتاجية قصوى في Visual Studio.

حزمة NuGet

تثبيت بأمر واحد: dotnet add package TiaConnect.Client. تحديثات تلقائية.

.NET حديث

متوافق مع .NET 6, 7, 8 و .NET Framework 4.7.2+. استخدم أحدث ميزات C#.

مقارنة الكود

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

هل أنت مستعد لتبسيط كود C# الخاص بك؟

اختبر API T-IA Connect واكتشف طريقة جديدة لبرمجة TIA Portal.