Files
42-CATL-DianChiXian-SCADA_CATL/DT_SCADA/F_RobotMonitor.cs
2026-06-08 17:12:01 +08:00

347 lines
12 KiB
C#

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
{
/// <summary>
///
/// </summary>
public string Curr_RobotKey = "";
public string Curr_RobotId = "";
string[] AxisString = new string[] { "x", "y", "z" };
string[] FilpString = new string[] { "1", "-1" };
/// <summary>
///
/// </summary>
List<JointConfig> jointsCurrent = new List<JointConfig>();
List<DiyJoint> diyJoint = new List<DiyJoint>();
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;
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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<JointConfig>();
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<JointConfig> 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<MachineToolConfig>();
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; }
}
}