cv4ab api dotnet
v0.1.7
.NET Core의 Allen-Bradley Rockwell PLC용 통신
LibPLCTag 라이브러리 C++ API
libplctag-csharp 기반
너겟
Mavert를 테스트해 주셔서 특별히 감사드립니다.
기술 지원을 제공한 Mario Averoldi에게 특별히 감사드립니다. [email protected].
코르신베스트 Srl
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Client Api Allen-Bradley PLC (Made in Italy)
참고: PLC는 다양한 종류의 장비를 제어하며 프로그래밍이나 액세스에 실수가 발생하면 재산, 생산 또는 생명의 손실이 발생할 수 있습니다. PLC에 액세스하거나 프로그래밍할 때는 항상 주의하십시오!
우리는 어떤 목적으로든 이 코드의 적합성에 대해 어떠한 주장이나 보증도 하지 않습니다.
조심하세요!
클라이언트는 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 ] ;
}
사용자 정의 유형은 클래스입니다. 속성은 순차적으로 읽혀집니다.