cv4ab api dotnet
v0.1.7
الاتصالات لشركة Allen-Bradley Rockwell PLC في .NET Core
مكتبة LibPLCTag C++ API
بناءً على libplctag-csharp
نوجيت
شكر خاص لاختبار Mavert
شكر خاص لماريو أفيرولدي على الدعم الفني [email protected].
كورسينفيست ريالا
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Client Api Allen-Bradley PLC (Made in Italy)
ملحوظة: تتحكم PLCs في العديد من أنواع المعدات ويمكن أن يحدث فقدان للممتلكات أو الإنتاج أو حتى الحياة إذا حدثت أخطاء في البرمجة أو الوصول. كن حذرًا دائمًا عند الوصول إلى PLCs أو برمجتها!
نحن لا نقدم أي مطالبات أو ضمانات بشأن مدى ملاءمة هذا الرمز لأي غرض من الأغراض.
احرص!
العميل عبارة عن غلاف لمكتبة LibPLCTag.
[ Serializable ]
public class Test12
{
public int AA1 { get ; set ; }
public int AA2 { get ; set ; }
public int AA3 { get ; set ; }
public int AA4 { get ; set ; }
public int AA5 { get ; set ; }
public int AA6 { get ; set ; }
public int AA7 { get ; set ; }
public int AA8 { get ; set ; }
}
public static void Main ( string [ ] args )
{
//initialize controller
using ( var controller = new Controller ( "10.155.128.192" , "1, 0" , CPUType . LGX ) )
{
//ping controller
Console . Out . WriteLine ( "Ping " + controller . Ping ( true ) ) ;
//create group tag
var grp = controller . CreateGroup ( ) ;
//add tag
var tag = grp . CreateTagType < string [ ] > ( "Track" , TagSize . STRING , 300 ) ;
tag . Changed += TagChanged ;
var value = tag . Read ( ) ;
//add tag from Class
var tag1 = grp . CreateTagType < Test12 > ( "Test" ) ;
tag . Changed += TagChanged ;
var tag2 = grp . CreateTagFloat32 ( "Fl32" ) ;
grp . Changed += GroupChanged ;
grp . Read ( ) ;
}
}
private static void PrintChange ( string @event , ResultOperation result )
{
Console . Out . WriteLine ( $ " { @event } { result . Timestamp } Changed: { result . Tag . Name } " ) ;
}
static void TagChanged ( ResultOperation result )
{
PrintChange ( "TagChanged" , result ) ;
}
static void GroupChanged ( IEnumerable < ResultOperation > results )
{
foreach ( var result in results ) PrintChange ( "GroupTagChanged" , result ) ;
}
من الممكن إنشاء علامة من أي نوع:
يتم تحديد الأحجام في TagSize.
بالنسبة للمصفوفات، حدد الحجم في التعريف.
مثال:
public class TestArray
{
public int InTest { get ; set ; }
public int [ ] InTestArray { get ; set ; } = new int [ 5 ] ;
public string [ ] StringTestArray { get ; set ; } = new string [ 300 ] ;
}
الأنواع المخصصة هي فئات. تتم قراءة الخصائص بالتسلسل.