using MesWork; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DT_YQJF_DC_SLN { public partial class F_RobotMonitor : Form { /// /// /// public string Curr_RobotKey = ""; public string Curr_RobotId = ""; string[] AxisString = new string[] { "x", "y", "z" }; string[] FilpString = new string[] { "1", "-1" }; /// /// /// List jointsCurrent = new List(); List diyJoint = new List(); public F_RobotMonitor() { InitializeComponent(); InitComBoxVale(); foreach (var item in MesWorkForm.dc_Robot.Keys) { lb_Robot.Items.Add(item); } if (MesWorkForm.IsDemoMesServer == 1) { panel_Debug_Btn.Visible = true; panel_Debug_Txt.Visible = true; } else { panel_Debug_Btn.Visible = false; panel_Debug_Txt.Visible = false; } } /// /// /// /// /// private void lb_Robot_SelectedIndexChanged(object sender, EventArgs e) { label19_currentId.Text = ""; Curr_RobotId = ""; var selectedItem = lb_Robot.SelectedItem; if (selectedItem == null) { return; } jointsCurrent = new List(); Curr_RobotKey = selectedItem.ToString(); GetRobot(Curr_RobotKey, out string type, out string robotCode, out object robotObj); double[] j = null; switch (type.ToUpper()) { case "ROBOTFANUC": var fanuc = (B_Robot_Fanuc)robotObj; j = fanuc.j; label19_currentId.Text = fanuc.Id; Curr_RobotId = fanuc.Id; break; case "ROBOTKUKA": var kuka = (B_Robot_Kuka)robotObj; jointsCurrent = kuka.Joints; label19_currentId.Text = kuka.Id; Curr_RobotId = kuka.Id; j = kuka.j; break; case "ROBOTABB": var abb = (B_Robot_Abb)robotObj; jointsCurrent = abb.Joints; label19_currentId.Text = abb.Id; Curr_RobotId = abb.Id; j = abb.j; break; case "ROBOTEPSON": var espon = (B_Robot_Espon)robotObj; jointsCurrent = espon.Joints; label19_currentId.Text = espon.Id; Curr_RobotId = espon.Id; j = espon.j; break; case "CNCEDM": var edm = (B_Cnc_Edm)robotObj; jointsCurrent = edm.Joints; label19_currentId.Text = edm.Id; Curr_RobotId = edm.Id; j = edm.machine_j; break; default: break; } button1.Enabled = true; button2save.Enabled = true; ShowJoint(j); ShowJointDT(jointsCurrent); txt_Detail.Text = JObject.Parse(JsonConvert.SerializeObject(robotObj)).ToString(); } private void GetRobot(string robotKey,out string type, out string robotCode,out object robotObj) { type = ""; robotCode = ""; robotObj = null; try { type = robotKey.Split('|')[0]; robotCode = robotKey.Split('|')[1]; robotObj = MesWorkForm.dc_Robot[robotKey]; } catch (Exception err) { } } private void InitComBoxVale() { foreach (string item in AxisString) { comboBox1_Axis_J1.Items.Add(item); comboBox1_Axis_J2.Items.Add(item); comboBox1_Axis_J3.Items.Add(item); comboBox1_Axis_J4.Items.Add(item); comboBox1_Axis_J5.Items.Add(item); comboBox1_Axis_J6.Items.Add(item); } foreach (string item in FilpString) { comboBox1_Flip_J1.Items.Add(item); comboBox1_Flip_J2.Items.Add(item); comboBox1_Flip_J3.Items.Add(item); comboBox1_Flip_J4.Items.Add(item); comboBox1_Flip_J5.Items.Add(item); comboBox1_Flip_J6.Items.Add(item); } } private void ShowJoint(double[] j) { txt_J1.Text = j[0].ToString(); txt_J2.Text = j[1].ToString(); txt_J3.Text = j[2].ToString(); txt_J4.Text = j[3].ToString(); txt_J5.Text = j[4].ToString(); txt_J6.Text = j[5].ToString(); txt_J7.Text = j[6].ToString(); txt_J8.Text = j[7].ToString(); txt_J9.Text = j[8].ToString(); txt_J10.Text = j[9].ToString(); txt_J11.Text = j[10].ToString(); txt_J12.Text = j[11].ToString(); } private void ShowJointDT(List joints) { if (joints == null) { return; } for (int i = 0; i < joints.Count; i++) { diyJoint.Add(new DiyJoint() { Axis = joints[i].Axis, Delta = joints[i].Delta, Flip = joints[i].Flip, ModelCode = joints[i].ModelCode, }); } comboBox1_Axis_J1.Text = joints[0].Axis.ToString(); comboBox1_Axis_J2.Text = joints[1].Axis.ToString(); comboBox1_Axis_J3.Text = joints[2].Axis.ToString(); comboBox1_Axis_J4.Text = joints[3].Axis.ToString(); comboBox1_Axis_J5.Text = joints[4].Axis.ToString(); comboBox1_Axis_J6.Text = joints[5].Axis.ToString(); comboBox1_Flip_J1.Text = joints[0].Flip.ToString(); comboBox1_Flip_J2.Text = joints[1].Flip.ToString(); comboBox1_Flip_J3.Text = joints[2].Flip.ToString(); comboBox1_Flip_J4.Text = joints[3].Flip.ToString(); comboBox1_Flip_J5.Text = joints[4].Flip.ToString(); comboBox1_Flip_J6.Text = joints[5].Flip.ToString(); numericUpDown_j1.Text = joints[0].Delta.ToString(); numericUpDown_j2.Text = joints[1].Delta.ToString(); numericUpDown_j3.Text = joints[2].Delta.ToString(); numericUpDown_j4.Text = joints[3].Delta.ToString(); numericUpDown_j5.Text = joints[4].Delta.ToString(); numericUpDown_j6.Text = joints[5].Delta.ToString(); } private void btn_Fill_Joint_Click(object sender, EventArgs e) { txt_Set_J1.Text = txt_J1.Text; txt_Set_J2.Text = txt_J2.Text; txt_Set_J3.Text = txt_J3.Text; txt_Set_J4.Text = txt_J4.Text; txt_Set_J5.Text = txt_J5.Text; txt_Set_J6.Text = txt_J6.Text; txt_Set_J7.Text = txt_J7.Text; txt_Set_J8.Text = txt_J8.Text; txt_Set_J9.Text = txt_J9.Text; txt_Set_J10.Text = txt_J10.Text; txt_Set_J11.Text = txt_J11.Text; txt_Set_J12.Text = txt_J12.Text; } private void btn_Submit_Click(object sender, EventArgs e) { var jSet = new double[12]; jSet[0] = Convert.ToDouble(txt_Set_J1.Text); jSet[1] = Convert.ToDouble(txt_Set_J2.Text); jSet[2] = Convert.ToDouble(txt_Set_J3.Text); jSet[3] = Convert.ToDouble(txt_Set_J4.Text); jSet[4] = Convert.ToDouble(txt_Set_J5.Text); jSet[5] = Convert.ToDouble(txt_Set_J6.Text); jSet[6] = Convert.ToDouble(txt_Set_J7.Text); jSet[7] = Convert.ToDouble(txt_Set_J8.Text); jSet[8] = Convert.ToDouble(txt_Set_J9.Text); jSet[9] = Convert.ToDouble(txt_Set_J10.Text); jSet[10] = Convert.ToDouble(txt_Set_J11.Text); jSet[11] = Convert.ToDouble(txt_Set_J12.Text); GetRobot(Curr_RobotKey, out string type, out string robotCode, out object robotObj); switch (type) { case "ROBOTFANUC": var fanuc = (B_Robot_Fanuc)robotObj; fanuc.jDemo = jSet; break; case "ROBOTKUKA": var kuka = (B_Robot_Kuka)robotObj; kuka.jDemo = jSet; break; case "ROBOTABB": var abb = (B_Robot_Abb)robotObj; abb.jDemo = jSet; break; case "ROBOTEPSON": var espon = (B_Robot_Espon)robotObj; espon.jDemo = jSet; break; default: break; } } private void button1_Click(object sender, EventArgs e) { if(Curr_RobotId == "") { MessageBox.Show("请选择机器人"); } label19_apply.Text = ""; try { jointsCurrent[0].Delta = numericUpDown_j1.Text; jointsCurrent[1].Delta = numericUpDown_j2.Text; jointsCurrent[2].Delta = numericUpDown_j3.Text; jointsCurrent[3].Delta = numericUpDown_j4.Text; jointsCurrent[4].Delta = numericUpDown_j5.Text; jointsCurrent[5].Delta = numericUpDown_j6.Text; jointsCurrent[0].Axis = comboBox1_Axis_J1.Text; jointsCurrent[1].Axis = comboBox1_Axis_J2.Text; jointsCurrent[2].Axis = comboBox1_Axis_J3.Text; jointsCurrent[3].Axis = comboBox1_Axis_J4.Text; jointsCurrent[4].Axis = comboBox1_Axis_J5.Text; jointsCurrent[5].Axis = comboBox1_Axis_J6.Text; jointsCurrent[0].Flip = comboBox1_Flip_J1.Text; jointsCurrent[1].Flip = comboBox1_Flip_J2.Text; jointsCurrent[2].Flip = comboBox1_Flip_J3.Text; jointsCurrent[3].Flip = comboBox1_Flip_J4.Text; jointsCurrent[4].Flip = comboBox1_Flip_J5.Text; jointsCurrent[5].Flip = comboBox1_Flip_J6.Text; label19_apply.Text = "应用成功!\r\n等待数据发送更新"; } catch (Exception err ) { label19_apply.Text = err.Message; } } private void button2save_Click(object sender, EventArgs e) { if (Curr_RobotId == "") { MessageBox.Show("请选择机器人"); } ScadaConfig scadaConfig = new ScadaConfig(); scadaConfig.MachineTool = new List(); for (int i = 0; i < MesWorkForm.scadaConfig.MachineTool.Count; i++) { MachineToolConfig machineToolConfig = MesWorkForm.scadaConfig.MachineTool[i]; string Id = machineToolConfig.Id; if (Id == Curr_RobotId) { machineToolConfig.Joints = jointsCurrent; } scadaConfig.MachineTool.Add(machineToolConfig); } string scadaConfigStr = JsonConvert.SerializeObject(scadaConfig); System.IO.File.WriteAllText(@"config.json", scadaConfigStr); MessageBox.Show("保存成功"); } } public class DiyJoint { public string ModelCode { get; set; } public string Axis { get; set; } public string Flip { get; set; } public string Delta { get; set; } } }