Tag Value Changed Event 처리
1. Form1.cs 파일 내에서 아래와 같이 추가로 소스를 작성한다.
· 전 과정에서 작성한 item_ValueChanged 메소드 생성에 대한 예제이다.
· 변경된 태그의 값을 tagNameBox, curValueBox 객체(화면)에 표현할 예정이다.
· tagNameBox, curValueBox 등에 대한 부분은 다음 과정에서 진행할 예정이다.
void item_ValueChanged(object sender, EventArgs e) { IDataTag dataTag = sender as IDataTag; Debug.WriteLine(string.Format("DateTime:{0} tagName:{1} tagValue:{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), dataTag.Name, dataTag.Value)); tagNameBox.Text = dataTag.FullName.ToString(); curValueBox.Text = Convert.ToInt32(dataTag.Value).ToString(); } |
2. 추가적인 Tag에 대한 활용 방법은 아래와 같다.
1) Tag 종류에 대한 세부 속성
· Tag의 세부 속성에 접근하기 위해서는 해당 형으로 변환 필요
var tag = dataTag as IStringTag; var tag = dataTag as IDigitalTag; var tag = dataTag as IAnalogTag; |
2) Group에 대한 Children Tag
var g = Program.document.Tags.GetByFullName(Group명); foreach (var tag in g.Children) { ... } var port = network .RemotePort; //port |
3) 특정 Tag 정보 추출
Program.document.Tags.GetByFullName(FullTag명); |
4) Tag 값 쓰기
var tag = Program.document.Tags.GetByFullName(FullTag명); tag.Value = “값"; |
5) Tag 값 읽기
var tag = Program.document.Tags.GetByFullName(FullTag명); var value = tag.Value; |
6) Device 정보 추출
var tag = Program.document.Tags.GetByFullName(FullTag명); var device = tag.Device as IDevice; //Device 정보 device.IsAlive //Device 연결상태 |
7) Network 정보 추출
var network = device.Connections[0] as INetworkConnection; var address = network.RemoteAddress; //IP |