Communication pour Allen-Bradley Rockwell PLC dans .NET Core
Bibliothèque LibPLCTag API C++
Basé sur libplctag-csharp
Nuget
Un merci spécial pour avoir testé Mavert
Un merci spécial à Mario Averoldi pour le support technique [email protected].
Corsinvest Srl
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Client Api Allen-Bradley PLC (Made in Italy)
Remarque : Les automates contrôlent de nombreux types d'équipements et des pertes de propriété, de production, voire de vie, peuvent survenir si des erreurs de programmation ou d'accès sont commises. Soyez toujours prudent lorsque vous accédez ou programmez des automates !
Nous ne faisons aucune réclamation ni garantie quant à l'adéquation de ce code à quelque fin que ce soit.
Sois prudent!
Le client est le wrapper de la bibliothèque 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 ) ;
}
Il est possible de créer une balise de n'importe quel type :
Les tailles sont spécifiées dans TagSize.
Pour les tableaux, spécifiez la taille dans la définition.
Exemple:
public class TestArray
{
public int InTest { get ; set ; }
public int [ ] InTestArray { get ; set ; } = new int [ 5 ] ;
public string [ ] StringTestArray { get ; set ; } = new string [ 300 ] ;
}
Les types personnalisés sont des classes. Les propriétés sont lues séquentiellement.