Data Change Event
The Changed event fires when the Tag changes value or Quality state
VB ' ****************************** ' * Initialize Controller and Tag Dim MyPLC As New ABLink.Controller("192.168.1.32") Dim WithEvents MyTag As New ABLink.Tag("N7:0") Try ' ***************************** ' * add event handler AddHandler MyTag.Changed, AddressOf MyTag_Changed ' **************************** ' * read tag MyPLC.ReadTag(MyTag) Catch ex As System.Exception Console.WriteLine(ex.Message) End Try {...elsewhere in code...} ' ********************************* ' * event handler Private Sub MyTag_Changed(ByVal sender As Object, ByVal e As System.EventArgs) Try Dim theTag as ABLink.Tag Dim args as ABLink.DataChangeEventArgs ' *************************** ' * Tag that caused the event theTag = sender ' *************************** ' * event argument parameters args = e ' *************************** ' * process the event data If ResultCode.QUAL_GOOD = args.QualityCode Then Console.WriteLine(Convert.ToString(args.Value)) Console.WriteLine(args.TimeStamp.ToString()) Else Console.WriteLine(args.ErrorString) End If Console.WriteLine(args.QualityString) Catch ex As System.Exception Console.WriteLine(ex.Message) End Try End Sub
C# /////////////////////////// // initialize controller and tag ABLink.Controller MyPLC = new ABLink.Controller("192.168.1.32"); ABLink.Tag MyTag = new ABLink.Tag("N7:0"); try { /////////////////////////// // add event handler MyTag.Changed +=new EventHandler(MyTag_Changed); /////////////////////////// // read the tag MyPLC.ReadTag(MyTag); } catch(System.Excpetion ex) { Console.WriteLine(ex.Message); } {...elsewhere in code...} ///////////////////////////////////// // EVENT HANDLER private void MyTag_Changed(object sender, EventArgs e) { try { ////////////////////////////////////// // Tag that caused the event ABLink.Tag theTag = (ABLink.Tag)sender; ////////////////////////////////////// // event argument parameters ABLink.DataChangeEventArgs args = (ABLink.DataChangeEventArgs)e; ///////////////////////////////////// // process the event data if(ResultCode.QUAL_GOOD == args.QualityCode) { Console.WriteLine(Convert.ToString(args.Value)); Console.WriteLine(args.TimeStamp.ToString()); } else Console.WriteLine(args.ErrorString); Console.WriteLine(args.QualityString); } catch (System.Exception ex) { Console.WriteLine(ex.Message); } }
Tag Class | ABLink Namespace | ReadTag | WriteTag | Active | GroupRead | GroupWrite