/// <summary> /// 根据PLC类型读取--文本输入类 /// </summary> /// <param name="pLC"></param> /// <param name="numerical_Class"></param> /// <param name="skinTextBox_Reform"></param> /// <returns></returns> public void Refresh(TextBox_base textBox)//根据PLC类型读取--文本输入类 { switch (textBox.Plc) { case PLC.Mitsubishi: IPLC_interface mitsubishi = new Mitsubishi_realize(); //实例化接口--实现三菱在线访问 if (mitsubishi.PLC_ready) //PLC是否准备完成 { string data = mitsubishi.PLC_read_D_register(textBox.PLC_Contact, textBox.PLC_Address, textBox.numerical); //读取PLC数值 TextBox_state(textBox, data); //填充文本数据--自动判断用户设定的小数点位置--多余的异常 } break; case PLC.Siemens: IPLC_interface Siemens = new Siemens_realize(); //实例化接口--实现西门子在线访问 if (Siemens.PLC_ready) //PLC是否准备完成 { string data = Siemens.PLC_read_D_register(textBox.PLC_Contact, textBox.PLC_Address, textBox.numerical); //读取PLC数值 TextBox_state(textBox, data); //填充文本数据--自动判断用户设定的小数点位置--多余的异常 } break; case PLC.MODBUS_TCP: MODBUD_TCP MODBUD_TCP = new MODBUD_TCP(); //实例化接口--实现MODBUS TCP if (MODBUD_TCP.IPLC_interface_PLC_ready) //PLC是否准备完成 { //由于modbus_TCP读写状态不同 读输出 写输入模式 string data = MODBUD_TCP.IPLC_interface_PLC_read_D_register(textBox.PLC_Contact, textBox.PLC_Address, textBox.numerical); //读取PLC数值 TextBox_state(textBox, data); //填充文本数据--自动判断用户设定的小数点位置--多余的异常 } break; } }
public bool state = false; //定义标志位--复归型按钮-判断状态 public string plc(Button_base Button) //根据PLC类型写入 { string pLC = Button.Plc.ToString(); switch (pLC) { case "Mitsubishi": //三菱有二种模式 --在线与仿真 IPLC_interface mitsubishi = new Mitsubishi_realize(); //实例化接口--实现三菱在线访问 if (mitsubishi.PLC_ready) //PLC是否准备完成 { Button_write_select(Button.Pattern.ToString(), mitsubishi, Button); //根据按钮模式进行写入操作 } else { MessageBox.Show("未连接设备:" + pLC.Trim(), "Err"); //推出异常提示用户 } break; case "Siemens": IPLC_interface Siemens = new Siemens_realize(); //实例化接口--实现西门子在线访问 if (Siemens.PLC_ready) //PLC是否准备完成 { Button_write_select(Button.Pattern.ToString(), Siemens, Button); //根据按钮模式进行写入操作 } else { MessageBox.Show("未连接设备:" + pLC.Trim(), "Err"); //推出异常提示用户 } break; case "Modbus_TCP": MODBUD_TCP MODBUD_TCP = new MODBUD_TCP(); //实例化接口--实现MODBUS TCP if (MODBUD_TCP.IPLC_interface_PLC_ready) //PLC是否准备完成 { Button_write_select(Button.Pattern.ToString(), "MODBUD_TCP", MODBUD_TCP, Button); //根据按钮模式进行写入操作 } else { MessageBox.Show("未连接设备:" + pLC.Trim(), "Err"); //推出异常提示用户 } break; } return("OK"); }
public string plc(TextBox_base textBox)//根据PLC类型写入 { switch (textBox.Plc) { case PLC.Mitsubishi: IPLC_interface mitsubishi = new Mitsubishi_realize(); //实例化接口--实现三菱在线访问 if (mitsubishi.PLC_ready) { mitsubishi.PLC_write_D_register(textBox.PLC_Contact, textBox.PLC_Address, textBox.Control_Text, textBox.numerical); } else { MessageBox.Show("未连接设备:" + textBox.Plc.ToString(), "Err"); //推出异常提示 } break; case PLC.Siemens: IPLC_interface Siemens = new Siemens_realize(); //实例化接口--实现西门子在线访问 if (Siemens.PLC_ready) { Siemens.PLC_write_D_register(textBox.PLC_Contact, textBox.PLC_Address, textBox.Control_Text, textBox.numerical); } else { MessageBox.Show("未连接设备:" + textBox.Plc.ToString(), "Err"); //推出异常提示 } break; case PLC.MODBUS_TCP: MODBUD_TCP MODBUD_TCP = new MODBUD_TCP(); //实例化接口--实现MODBUS TCP if (MODBUD_TCP.IPLC_interface_PLC_ready) { MODBUD_TCP.IPLC_interface_PLC_write_D_register(textBox.PLC_Contact, textBox.PLC_Address, textBox.Control_Text, textBox.numerical); } else { MessageBox.Show("未连接设备:" + textBox.Plc.ToString(), "Err"); //推出异常提示用户 } break; } return("OK_RUN"); }
public List <string> plc(TextBox_base textBox, Histogram_base dataGridView, int Idx)//根据PLC类型写入 { List <string> Data = new List <string>(); switch (textBox.Plc) { case PLC.Mitsubishi: IPLC_interface mitsubishi = new Mitsubishi_realize(); //实例化接口--实现三菱在线访问 if (mitsubishi.PLC_ready) { for (int i = 0; i < Idx; i++) { Data.Add(mitsubishi.PLC_read_D_register(textBox.PLC_Contact, dataGridView.Total_address[i].ToString(), dataGridView.Histogram_numerical[i])); } } break; case PLC.Siemens: IPLC_interface Siemens = new Siemens_realize(); //实例化接口--实现西门子在线访问 if (Siemens.PLC_ready) { for (int i = 0; i < Idx; i++) { Data.Add(Siemens.PLC_read_D_register(textBox.PLC_Contact, dataGridView.Total_address[i].ToString(), dataGridView.Histogram_numerical[i])); } } break; case PLC.MODBUS_TCP: MODBUD_TCP MODBUD_TCP = new MODBUD_TCP(); //实例化接口--实现MODBUS TCP if (MODBUD_TCP.IPLC_interface_PLC_ready) { for (int i = 0; i < Idx; i++) { Data.Add(MODBUD_TCP.IPLC_interface_PLC_read_D_register(textBox.PLC_Contact, dataGridView.Total_address[i].ToString(), dataGridView.Histogram_numerical[i])); } } break; } return(Data); }
/// <summary> /// 定时刷新控件 /// </summary> /// <param name="button"></param> public void Refresh(Control button, PLC Plc) //根据PLC类型读取--按钮类 { Button_state button_State = Button_state.Off; //按钮状态 Button_base button_base = button as Button_base; switch (Plc) { case PLC.Mitsubishi: IPLC_interface mitsubishi = new Mitsubishi_realize(); //实例化接口--实现三菱在线访问 if (mitsubishi.PLC_ready) //PLC是否准备完成 { List <bool> data = mitsubishi.PLC_read_M_bit(button_base.PLC_Contact, button_base.PLC_Address); //读取状态 button_State = data[0] == true ? Button_state.ON : Button_state.Off; button_state(button, button_State); } break; case PLC.Siemens: IPLC_interface Siemens = new Siemens_realize(); //实例化接口--实现西门子在线访问 if (Siemens.PLC_ready) //PLC是否准备完成 { List <bool> data = Siemens.PLC_read_M_bit(button_base.PLC_Contact, button_base.PLC_Address); //读取状态 button_State = data[0] == true ? Button_state.ON : Button_state.Off; button_state(button, button_State); } break; case PLC.MODBUS_TCP: MODBUD_TCP MODBUD_TCP = new MODBUD_TCP(); //实例化接口--实现MODBUS TCP if (MODBUD_TCP.IPLC_interface_PLC_ready) //PLC是否准备完成 { List <bool> data = MODBUD_TCP.IPLC_interface_PLC_read_M_bit(button_base.PLC_Contact, button_base.PLC_Address); //读取状态 button_State = data[0] == true ? Button_state.ON : Button_state.Off; button_state(button, button_State); } break; } }
static void Main(string[] args) { //对PLC进行远程操作 //Mitsubishi_PLC_remote mitsubishi_PLC_Remote = new Mitsubishi_PLC_remote(new IPEndPoint(IPAddress.Parse("192.168.3.2"), int.Parse("4999"))); //mitsubishi_PLC_Remote.Open(); //Console.WriteLine(mitsubishi_PLC_Remote.); //mitsubishi_PLC_Remote.Write_PLC_Rrr_Rest(); //Thread.Sleep(5000); //mitsubishi_PLC_Remote.Write_PLC_Stop(); //Thread.Sleep(5000); //mitsubishi_PLC_Remote.Write_PLC_Run(); //Thread.Sleep(5000); //mitsubishi_PLC_Remote.Write_PLC_Stop(); //Thread.Sleep(5000); //mitsubishi_PLC_Remote.Write_PLC_Run(); //modbus_tcp测试 //Modbus.Modbus_TCPrealize modbus_TCPrealize = new Modbus_TCPrealize(new IPEndPoint(IPAddress.Parse("192.168.3.2"), int.Parse("502"))); //modbus_TCPrealize.Open(); //var t = Task.Run(() => //{ // for (int I = 0; I < 9999; I++) // { // //复位 // Console.WriteLine(modbus_TCPrealize.write_multi_Bool(20, 3, 0).Content); // Console.WriteLine(modbus_TCPrealize.Read_Bool(0).Content); // Console.WriteLine(modbus_TCPrealize.Read_Byet(0).Content); // Console.WriteLine(modbus_TCPrealize.Read_multi_Bool(10, 3).Content); // Console.WriteLine(modbus_TCPrealize.Read_uint(13).Content); // Console.WriteLine(modbus_TCPrealize.write_Bool(20, coil.ON).Content); // Thread.Sleep(300); // Console.WriteLine(modbus_TCPrealize.write_multi_Bool(20, 3, 15).Content); // Console.WriteLine(modbus_TCPrealize.Write_int(20, 666).Content); // Thread.Sleep(300); // } //}); ////三菱3E帧报文测试 Mitsubishi_realize mitsubishi_Realize = new Mitsubishi_realize(new IPEndPoint(IPAddress.Parse("192.168.3.251"), int.Parse("501"))); mitsubishi_Realize.Open(); Console.WriteLine(mitsubishi_Realize.write_Bool(message_bit.Y, 37, false).Content.ToString() ?? "00"); //var D = mitsubishi_Realize.Read_Bool(message_bit.Y, 42); //mitsubishi_Realize.write_Bool(message_bit.Y, 27, false); //var t1 = Task.Run(() => // { // for (int I = 0; I < 9999; I++) // { // Console.WriteLine(mitsubishi_Realize.Read_Byet(message_Word.D, 0).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Read_short(message_Word.D, 0).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Read_int(message_Word.D, 1).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Read_uint(message_Word.D, 1).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Read_float(message_Word.D, 4).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Write_Byte(message_Word.D, 10, 66).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Write_short(message_Word.D, 11, 66).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Write_ushort(message_Word.D, 12, 66).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Write_int(message_Word.D, 13, 66666).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Write_Int64(message_Word.D, 15, 55555555).Content.ToString() ?? "00"); // } // }); //for (int I = 0; I < 9999; I++) //{ // Console.WriteLine(mitsubishi_Realize.write_Bool(message_bit.Y, 0, false).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.write_multi_Bool(message_bit.Y, 10, new bool[] { true, true, true }).Content.Length); // Thread.Sleep(600); // Console.WriteLine(mitsubishi_Realize.write_multi_Bool(message_bit.Y, 10, new bool[] { false, false, false }).Content); // Console.WriteLine(mitsubishi_Realize.write_Bool(message_bit.Y, 0, true).Content.ToString() ?? "00"); // Thread.Sleep(600); // Console.WriteLine(mitsubishi_Realize.Read_Bool(message_bit.Y, 0).Content.ToString() ?? "00"); // Console.WriteLine(mitsubishi_Realize.Read_Byet(message_Word.D, 0).Content); // Console.WriteLine(mitsubishi_Realize.Read_Bool(message_bit.Y, 0, 3).Content); // Console.WriteLine(mitsubishi_Realize.Read_Bool(message_bit.Y, 10, 3).Content); //} Console.Read(); }