Komunikasi untuk Allen-Bradley Rockwell PLC di .NET Core
Pustaka LibPLCTag C++ Api
Berdasarkan libplctag-csharp
Nuget
Terima kasih khusus telah menguji Mavert
Terima kasih khusus kepada Mario Averoldi atas dukungan teknis [email protected].
Korsinvest Srl
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Client Api Allen-Bradley PLC (Made in Italy)
Catatan: PLC mengontrol berbagai jenis peralatan dan kerugian harta benda, produksi, atau bahkan nyawa dapat terjadi jika terjadi kesalahan dalam pemrograman atau akses. Selalu berhati-hati saat mengakses atau memprogram PLC!
Kami tidak membuat klaim atau jaminan tentang kesesuaian kode ini untuk tujuan apa pun.
Hati-hati!
Klien adalah pembungkus perpustakaan 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 ) ;
}
Dimungkinkan untuk membuat tag jenis apa pun:
Ukuran ditentukan dalam TagSize.
Untuk array tentukan ukurannya dalam definisi.
Contoh:
public class TestArray
{
public int InTest { get ; set ; }
public int [ ] InTestArray { get ; set ; } = new int [ 5 ] ;
public string [ ] StringTestArray { get ; set ; } = new string [ 300 ] ;
}
Tipe khusus adalah kelas. Properti dibaca secara berurutan.