using HHWCS.Bll; using OPCHelper; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace HHWCSHost.View { /// <summary> /// Frm_OPCTest.xaml 的交互逻辑 /// </summary> public partial class Frm_OPCTest : Window { OPCHelp help = new OPCHelp("192.168.10.100"); public Frm_OPCTest() { InitializeComponent(); } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = true; this.Hide(); } private void btn_Read_Click(object sender, RoutedEventArgs e) { try { int[] serverHandle = new int[1]; string address = txt_Adress.Text; serverHandle[0] = help.AddAddr(address, 1); Array temp_Array = help.ReadData(serverHandle); //按照 OPC 规范,数组始终以索引 1 开始。 var a = temp_Array.GetValue(1); lab_Value.Content = a; lab_Type.Content = a.GetType()+" || "+a.ToString(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void btn_Write_Click(object sender, RoutedEventArgs e) { try { int[] serverHandle = new int[1]; serverHandle[0] = help.AddAddr(txt_Adress.Text, 1); if (help.WriteData(serverHandle, new object[] { txt_Write.Text })) { MessageBox.Show("成功"); } else { MessageBox.Show("失败"); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void Button_Click(object sender, RoutedEventArgs e) { if (help.OpenConn() == false) { MessageBox.Show("打开PLC连接失败"); return; } help.CreateGroup("test"); } private void Button_Click_1(object sender, RoutedEventArgs e) { help.CloseConn(); MessageBox.Show("关闭成功"); return; } /// <summary> /// 读取chart /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click_2(object sender, RoutedEventArgs e) { try { int[] serverHandle = new int[1]; string address = txt_Adress.Text; serverHandle[0] = help.AddAddr(address, 1); Array temp_Array = help.ReadData(serverHandle); //按照 OPC 规范,数组始终以索引 1 开始。 var a = temp_Array.GetValue(1); lab_Value.Content = Bll.ASCIIToString((short[])a); lab_Type.Content = a.GetType() + " || " + a.ToString(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } /// <summary> /// 写入chart /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click_3(object sender, RoutedEventArgs e) { try { int[] serverHandle = new int[1]; serverHandle[0] = help.AddAddr(txt_Adress.Text, 1); System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); byte[] bytes = asciiEncoding.GetBytes(txt_Write.Text.PadRight(20, ' ')); if (help.WriteData(serverHandle, new object[] {bytes })) { MessageBox.Show("成功"); } else { MessageBox.Show("失败"); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } }