From fd04fc4ea0241836fa41017379b14f52d42eb856 Mon Sep 17 00:00:00 2001
From: 17860779768 <3219079380@qq.com>
Date: Thu, 6 Apr 2023 08:57:18 +0800
Subject: [PATCH] 20230406Change
---
src/BRS.Common.Model/Helper/EnumHelper.cs | 16 +
src/BRS.Common.Model/Model/CustomizedPoint.cs | 42 +-
src/BRS.Common.Model/Model/DeviceOpBind.cs | 11 +-
.../A020Process_MachineState.cs | 8 +
src/BRS.Process.A020/A020Process_Operation.cs | 433 ++++++++++++++++--
.../A020Process_VisionProcessor.cs | 31 +-
.../UI/ContorlShaft.Designer.cs | 401 +++++++++-------
src/BRS.Process.A020/UI/ContorlShaft.cs | 67 +++
src/BRS.Process.A020/UI/OperationFrm.cs | 2 +-
src/BRS.Process.A020/UI/OperationFrm.resx | 2 +-
src/BRS.Process/ProcessConfig.cs | 2 +-
src/BRS.UI.Main/MenuForms/FrmOperation.resx | 4 +-
src/XKRS.Device.TCPSever/TCPSeverForm.cs | 2 +-
13 files changed, 764 insertions(+), 257 deletions(-)
diff --git a/src/BRS.Common.Model/Helper/EnumHelper.cs b/src/BRS.Common.Model/Helper/EnumHelper.cs
index 4b669b2..6b21514 100644
--- a/src/BRS.Common.Model/Helper/EnumHelper.cs
+++ b/src/BRS.Common.Model/Helper/EnumHelper.cs
@@ -739,6 +739,22 @@ namespace BRS.Common.Model.Helper
///
RobotFinish,
///
+ /// 拧紧轴拧紧运动
+ ///
+ ShaftToughRunning,
+ ///
+ /// 拧紧轴拧紧运动
+ ///
+ ShaftLoosenRunning,
+ ///
+ /// 判断是否拧紧
+ ///
+ Judge,
+ ///
+ /// 到位后退出拧紧轴
+ ///
+ UpShaft,
+ ///
/// 机器人下电 所有第七轴回归初始位置
///
RobotPLCInit,
diff --git a/src/BRS.Common.Model/Model/CustomizedPoint.cs b/src/BRS.Common.Model/Model/CustomizedPoint.cs
index eb0a9a5..41a05fb 100644
--- a/src/BRS.Common.Model/Model/CustomizedPoint.cs
+++ b/src/BRS.Common.Model/Model/CustomizedPoint.cs
@@ -835,32 +835,32 @@ namespace BRS.Common.Model
[Description("坐标Z")]
public float Z { get; set; }
- [Category("第七轴")]
- [Description("第七轴")]
- public float SevenDis { get; set; }
+ //[Category("第七轴")]
+ //[Description("第七轴")]
+ //public float SevenDis { get; set; }
- [Category("是否启动第七轴配置")]
- [Description("是否启用")]
- [DisplayName("是否启用")]
- public bool SevenDisIsLSEnabled { get; set; } = false;
+ //[Category("是否启动第七轴配置")]
+ //[Description("是否启用")]
+ //[DisplayName("是否启用")]
+ //public bool SevenDisIsLSEnabled { get; set; } = false;
- [Category("是否是两端特殊螺丝")]
- [Description("是否启用")]
- [DisplayName("是否启用")]
- public bool SpecialIsLSEnabled { get; set; } = false;
+ //[Category("是否是两端特殊螺丝")]
+ //[Description("是否启用")]
+ //[DisplayName("是否启用")]
+ //public bool SpecialIsLSEnabled { get; set; } = false;
- [Category("特别螺丝配置")]
- [Description("是否启用")]
- [DisplayName("是否启用")]
- public bool IsLSEnabled { get; set; } = false;
+ //[Category("特别螺丝配置")]
+ //[Description("是否启用")]
+ //[DisplayName("是否启用")]
+ //public bool IsLSEnabled { get; set; } = false;
- [Category("特别螺丝配置")]
- [Description("特别螺丝配置")]
- [TypeConverter(typeof(CollectionCountConvert))]
- [Editor(typeof(ComplexCollectionEditor), typeof(UITypeEditor))]
- [DisplayName("特别螺丝配置")]
- public List CVCalibrationConfig { get; set; } = new List();
+ //[Category("特别螺丝配置")]
+ //[Description("特别螺丝配置")]
+ //[TypeConverter(typeof(CollectionCountConvert))]
+ //[Editor(typeof(ComplexCollectionEditor), typeof(UITypeEditor))]
+ //[DisplayName("特别螺丝配置")]
+ //public List CVCalibrationConfig { get; set; } = new List();
public string GetDisplayText()
{
return $"X:{X.ToString()} Y:{Y.ToString()} Z:{Z.ToString()}";
diff --git a/src/BRS.Common.Model/Model/DeviceOpBind.cs b/src/BRS.Common.Model/Model/DeviceOpBind.cs
index a25c220..2f84632 100644
--- a/src/BRS.Common.Model/Model/DeviceOpBind.cs
+++ b/src/BRS.Common.Model/Model/DeviceOpBind.cs
@@ -54,7 +54,7 @@ namespace BRS.Common.Model
}
}
- public class DeviceModel : IComplexDisplay
+ public class DeviceModel : IComplexDisplay
{
[Category("模具类型")]
[Description("模具类型")]
@@ -70,13 +70,18 @@ namespace BRS.Common.Model
public List CVCalibrationConfig { get; set; } = new List();
- [Category("机械臂A配置项")]
+ [Category("机械臂配置项")]
[Description("偏移量:标定点减去拍摄点的坐标是偏移量")]
[DisplayName("偏移量")]
[TypeConverter(typeof(CollectionCountConvert))]
[Editor(typeof(ComplexCollectionEditor), typeof(UITypeEditor))]
//[TypeConverter(typeof(SimpleCollectionConvert))]
- public List A_deviation { get; set; } = new List();
+ public List Deviation { get; set; } = new List();
+
+ [Category("机械臂配置项")]
+ [Description("拧紧轴推进距离")]
+ [DisplayName("拧紧轴推进距离")]
+ public float NIJ_DisD { get; set; } = -99;
public string GetDisplayText()
{
diff --git a/src/BRS.Process.A020/A020Process_MachineState.cs b/src/BRS.Process.A020/A020Process_MachineState.cs
index bf9e6e8..d203e0c 100644
--- a/src/BRS.Process.A020/A020Process_MachineState.cs
+++ b/src/BRS.Process.A020/A020Process_MachineState.cs
@@ -354,6 +354,14 @@ namespace BRS.Process.A020
}
#endregion
+ public string MoveRobot(StrRobotPoint strPoint)
+ {
+ string pointsStr = Convert.ToString(strPoint.X) + "," + Convert.ToString(strPoint.Y) + "," + Convert.ToString(strPoint.Z) + "," +
+ Convert.ToString(strPoint.A) + "," + Convert.ToString(strPoint.B) + "," + Convert.ToString(strPoint.C);
+ string STRMove = "MoveLine_NULL_1_" + pointsStr + "_";
+ //string PointInit1 = "MoveLine_NULL_1_462.915,1119.150,1530.227,90.043,90.003,0.040_";
+ return STRMove;
+ }
public string MoveMoreNContinueRobot(List strPoints, ref StrRobotPoint CurrentPoint)
{
string strPointsStr = null;
diff --git a/src/BRS.Process.A020/A020Process_Operation.cs b/src/BRS.Process.A020/A020Process_Operation.cs
index 7d1ba30..95079eb 100644
--- a/src/BRS.Process.A020/A020Process_Operation.cs
+++ b/src/BRS.Process.A020/A020Process_Operation.cs
@@ -20,12 +20,18 @@ namespace BRS.Process.A020
{
public partial class A020Process
{
- private bool IsTesting { get; set; } = false;
+ private bool IsTesting { get; set; } = true;
public bool IsSingleStepOperating { get; set; } = false;
+ public bool IsArrive { get; set; } = false;//判断机械臂携带拧紧轴是否到位
- int ShiJiaoVecCountFlag1 = 0;// 相机1的示教点索引
- float A_Distance_DisD = 0;//拧紧轴推进距离100
+ private bool IsShaftOpen { get; set; } = false;//拧紧轴是否启动
+ private bool IsTough { get; set; } = false;//是否拧紧
+
+ int ShiJiaoVecCountFlag1 = 0;// 相机的示教点索引
+ float Distance_DisD = 0;//拧紧轴推进距离100
+
+
DeviceModel AModeTypeRun = new DeviceModel();//相机机械臂全局配置(务必要有)
private void StopMachineClosing(PLCBase MelsecPlc, TCPSeverBase TcpSeverBase1)
@@ -73,8 +79,6 @@ namespace BRS.Process.A020
// m_dev = Enumerator.GetDeviceByIndex(0);
m_dev = Enumerator.GetDeviceByGigeIP(IP);
-
-
/* 打开设备 */
if (!m_dev.Open())
{
@@ -143,7 +147,6 @@ namespace BRS.Process.A020
m_frameList.Add(e.GrabResult.Clone());
m_mutex.ReleaseMutex();
-
IGrabbedRawData frame = m_frameList.ElementAt(m_frameList.Count - 1);
var bitmap = frame.ToBitmap(false);
Bit_Image = bitmap;
@@ -154,11 +157,11 @@ namespace BRS.Process.A020
// Mat ss = Mat_CamA.Clone();
// Cv2.ImWrite("D",ss);
-
}
#endregion
+
public Mat AloghitomMat(Mat mat, ref MyPoint myPoint)
{
@@ -232,13 +235,92 @@ namespace BRS.Process.A020
return src;
+ }
+
+ ///
+ /// 获取区域轮廓 已过滤区域的边长
+ ///
+ /// 输入图像>
+ /// 轮廓结果>
+ public static void Contour_Get(Mat mat, List Lastcontours)
+ {
+ //高斯模糊
+ Mat dst = new Mat();
+ OpenCvSharp.Size ksize = new OpenCvSharp.Size(3, 3);
+ Cv2.GaussianBlur(mat, dst, ksize, 0);
+ Mat gray = new Mat();
+ Cv2.CvtColor(dst, gray, ColorConversionCodes.BGR2GRAY);
+ Mat binary = new Mat();
+ Cv2.Threshold(gray, binary, 0, 255, ThresholdTypes.BinaryInv | ThresholdTypes.Otsu);
+ //查找轮廓
+ //List> contours = new List>();
+ OpenCvSharp.Point[][] contours = null;
+ HierarchyIndex[] hierarchly;
+ Cv2.FindContours(binary, out contours, out hierarchly, RetrievalModes.Tree, ContourApproximationModes.ApproxSimple, new OpenCvSharp.Point(0, 0));
+
+ for (int i = 0; i < contours.Length; i++)
+ {
+ double length = Cv2.ArcLength(contours[i], true);
+ if (length > 300 && length < 400)
+ {
+ Lastcontours.Add(contours[i]);
+ }
+
+ }
+ }
+
+ ///
+ /// 螺丝位置确定
+ ///
+ /// 需要定位螺丝的图像>
+ /// 结果 螺丝中心坐标>
+ public void GetScrew(Mat image, List ResultPoint)
+ {
+ Mat SrcImage = image.Clone();
+ // 固定路径的模板图像
+ Mat Image = Cv2.ImRead(@"D:\MelsecPLCReadWrite\Bk\Image\1.png");
+ Mat TempleteImage = Image.Clone();
+
+ // Point[][] contours1 = new Point[][] { };
+ // Point[][] contours2 = null;
+ List contours1 = new List();
+ List contours2 = new List();
+
+ Contour_Get(SrcImage, contours1);
+ Contour_Get(TempleteImage, contours2);
+
+ // Hu矩计算
+ //Moments mm2 = Cv2.Moments(contours2[0]); // 先计算几何矩
+ //Mat hu2 = new Mat();
+ double[] hu2 = Cv2.Moments(contours2[0]).HuMoments();
+ //Cv2.HuMoments(mm2, hu2);
+ for (int t = 0; t < contours1.Count(); t++)
+ {
+ Moments mm = Cv2.Moments(contours1[t]); // 先计算几何矩
+ //Mat hu = new Mat();
+ //Cv2.HuMoments(mm, hu);
+ double[] hu = Cv2.Moments(contours1[t]).HuMoments();
+ double sim_value = Cv2.MatchShapes(hu[t], hu2[0], ShapeMatchModes.I1, 0);
+ if ((1 - sim_value) > 0.7)
+ {
+ // 获取图像1轮廓的中心位置
+ double cx = mm.M10 / mm.M00;
+ double cy = mm.M01 / mm.M00;
+ MyPoint Mypoints = new MyPoint();
+ Mypoints.dX = cx;
+ Mypoints.dY = cy;
+
+ ResultPoint.Add(Mypoints);
+ }
+ }
+
}
void genCalibratePts1()
{
try
{
CVCalibrationConfig AcVCalibrationConfig = new CVCalibrationConfig(); //每一组的标定配置务必要有
- DiffVPVRPoint A_ShiJIaoPoint = AModeTypeRun.A_deviation[ShiJiaoVecCountFlag1];
+ DiffVPVRPoint A_ShiJIaoPoint = AModeTypeRun.Deviation[ShiJiaoVecCountFlag1];
//CVCalibrationConfig cVCalibrationConfig = ModeTypeRun.CVCalibrationConfig;
foreach (var CalNum in AModeTypeRun.CVCalibrationConfig)
{
@@ -254,7 +336,7 @@ namespace BRS.Process.A020
current_P.Y = A_ShiJIaoPoint.Y;
current_P.Z = A_ShiJIaoPoint.Z;
float PYliangx = current_P.X;
- float PYliangy = current_P.Z;
+ float PYliangy = current_P.Y;
VP.Clear();
VR.Clear();
@@ -313,8 +395,6 @@ namespace BRS.Process.A020
tp.dY = VPList[11].Y;// 1727;
VP.Add(tp);
-
-
/*************生成三维数据*********************/
MyPoint tr;
@@ -386,19 +466,26 @@ namespace BRS.Process.A020
Stopwatch stopWatch = new Stopwatch();
stopWatch.Restart();
-
+ Mat Image = Cv2.ImRead(@"D:\MelsecPLCReadWrite\Bk\Image\1.png");
#if true
genCalibratePts1();
stopWatch2.Stop();
Console.WriteLine(DateTime.Now + "==========配置=================" + stopWatch2.ElapsedMilliseconds + "===========================");
- MyPoint ssw = new MyPoint();
+ //MyPoint ssw = new MyPoint();
+ List resultPoint = new List();
+
Mat _mat = dd.Clone();
string ss = "D:\\QT1\\" + DateTime.Now.ToString("HHmmssfff") + ".jpg";
Cv2.ImWrite(ss, _mat);
- Mat _mat2 = AloghitomMat(_mat, ref ssw);//根据拍摄的白纸定标图片确定二维到三维转换的关系
- ssw1 = Interpolation(VP, VR, ssw, true);//实际坐标值
+
+ GetScrew(Image, resultPoint);
+
+ MyPoint ssw3 = resultPoint[0];
+ Mat _mat2 = AloghitomMat(_mat, ref ssw3);//根据拍摄的白纸定标图片确定二维到三维转换的关系
+
+ ssw1 = Interpolation(VP, VR, ssw3, true);//实际坐标值
string ss2 = "D:\\QT\\" + DateTime.Now.ToString("HHmmssfff") + ".jpg";
Cv2.ImWrite(ss2, _mat2);
@@ -440,11 +527,13 @@ namespace BRS.Process.A020
return new ProcessResponse(false);
}
LogAsync(DateTime.Now, LogLevel.Information, "流程启动中,请稍候...");
+
PrepareBatchNO();
-
+ ProcessStatus = ProcessStatus.Unknown;
var MelsecPLC = DeviceCollection.FirstOrDefault(u => u is PLCBase) as PLCBase;
var KawasakiRobot = DeviceCollection.Find(d => d is KawasakiTCPSeverRobotDriver) as KawasakiTCPSeverRobotDriver;
- StrRobotPoint strPointInitA;
+
+ StrRobotPoint strPointInitA;//示教点位
strPointInitA.X = 847.462F;
strPointInitA.Y = 891.623F;
strPointInitA.Z = 803.067F;
@@ -452,24 +541,25 @@ namespace BRS.Process.A020
strPointInitA.B = 180F;
strPointInitA.C = 90F;
-
RobotPoint robotInitPoint = KawasakiRobot.IIConfig.RobotInitPosition;//机械臂初始点位
-
#region 驱动委托
if (KawasakiRobot != null)
{
KawasakiRobot.OnTcpDataReceived -= TCPseverDriver_OnDataReceived;
KawasakiRobot.OnTcpDataReceived += TCPseverDriver_OnDataReceived;
}
+ KawasakiRobot.SendMessage("PowerON_");
#endregion
var sw = A020Config.ProcessInitialOps[0];
+ InitialOEEStatistic();
MachineState = MachineState.Running;
- ProcessStatus = ProcessStatus.ALLFinish;
-
- //OpenCam1();
+ ProcessStatus = ProcessStatus.Init;
+ RobotsStatus = RobotsStatus.Release;
+ KawasakiRobotInit(KawasakiRobot);//机械臂移动到初始位置
+ OpenCam1();
Task.Run(() =>
{
@@ -479,16 +569,31 @@ namespace BRS.Process.A020
{
case ProcessStatus.Init:
{
+ string ALLShePinChar = "11 00 EE 00 AA 05 68 94 00 00 50 15 49 34 7C 55 4E 6C";
+ //从json配置中选择是某种模型 取出他们的配置
+ //等待光电触发来电信号
+ foreach (var sgepin in A020Config.ProcessInitialOps)
+ {
+ // foreach (var sp in sgepin.ShePinConfig)
+ {
+ // if (sp.ShePinConfig == ALLShePinChar)
+ // {
+
+ AModeTypeRun = sgepin;//模型型号匹配
+
+ // }
+ }
+ }
if (RobotsStatus.Release == RobotsStatus)//机器人复位,初始状态
{
-
//========移动到示教点(初始点)==========
- int ShiJiaoVecCount = AModeTypeRun.A_deviation.Count;//相机1的偏移点组
+ int ShiJiaoVecCount = AModeTypeRun.Deviation.Count;//相机的偏移点组
+ //int ShiJiaoVecCount =2;
if (ShiJiaoVecCountFlag1 < ShiJiaoVecCount)
{
CQRobotPoint cQRobotPoint = new CQRobotPoint();//示教拍摄点
-
- DiffVPVRPoint A_ShiJIaoPoint = AModeTypeRun.A_deviation[ShiJiaoVecCountFlag1];
+
+ DiffVPVRPoint A_ShiJIaoPoint = AModeTypeRun.Deviation[ShiJiaoVecCountFlag1];
//CVCalibrationConfig cVCalibrationConfig = ModeTypeRun.CVCalibrationConfig;
foreach (var CalNum in AModeTypeRun.CVCalibrationConfig)
{
@@ -502,7 +607,7 @@ namespace BRS.Process.A020
current_P.X = A_ShiJIaoPoint.X;
current_P.Y = A_ShiJIaoPoint.Y;
current_P.Z = A_ShiJIaoPoint.Z;
-
+ //当前拍摄点
StrRobotPoint CurrentPointInit = CQRobotPointChangeStrRobotPoint(cQRobotPoint, current_P);
strPointInitA.X = CurrentPointInit.X;
strPointInitA.Y = CurrentPointInit.Y;
@@ -511,19 +616,20 @@ namespace BRS.Process.A020
strPointInitA.B = CurrentPointInit.B;
strPointInitA.C = CurrentPointInit.C;
- //string PointInitMove = KawasakiRobotMove(KawasakiRobot, strPointInitA);
- //KawasakiRobot.SendMessage(PointInitMove);
- //LogAsync(DateTime.Now, LogLevel.Assist, $"机械臂A移动到示教点");
- //RobotsStatus = RobotsStatus.Runing;
- //DownCirce = DownCirce.DownCirce;
- //while (true)
- //{
- // if (DownCirce == DownCirce.DownCirceRuning)
- // break;
- // else
- // Thread.Sleep(10);
- //}
- KawasakiRobotInit(KawasakiRobot);
+ string PointInitMove = MoveRobot(strPointInitA);
+ KawasakiRobot.SendMessage(PointInitMove);
+ LogAsync(DateTime.Now, LogLevel.Assist, $"机械臂A移动到示教点");
+ RobotsStatus = RobotsStatus.Runing;
+ DownCirce = DownCirce.DownCirce;//标志机械臂的运动状态
+ while (true)
+ {
+ if (DownCirce == DownCirce.DownCirceRuning)
+ break;
+ else
+ Thread.Sleep(10);
+ }
+ ProcessStatus = ProcessStatus.OpenLight;
+ //KawasakiRobotInit(KawasakiRobot);
}
}
}
@@ -548,6 +654,7 @@ namespace BRS.Process.A020
Console.WriteLine(DateTime.Now + "=========拍照==================" + stopWatch.ElapsedMilliseconds + "===========================");
CamA = false;
}
+ ProcessStatus = ProcessStatus.CVLocation;
#endregion
}
break;
@@ -567,8 +674,8 @@ namespace BRS.Process.A020
#region 机械臂移动视觉定位点
strPointInitA.X = (float)sswF.dX;
- strPointInitA.Z = (float)sswF.dY;
- if (Math.Abs((float)strPointInitA.X) <= 100 || Math.Abs((float)strPointInitA.Z) <= 0)
+ strPointInitA.Y = (float)sswF.dY;//相机坐标赋值给机械臂坐标
+ if (Math.Abs((float)strPointInitA.X) <= 100 || Math.Abs((float)strPointInitA.Y) <= 0)
{
StopMachineClosing(MelsecPLC, KawasakiRobot);
@@ -576,7 +683,6 @@ namespace BRS.Process.A020
LogAsync(DateTime.Now, LogLevel.Assist, $"计算定位失败");
break;
-
}
//
//==========平滑移动
@@ -585,7 +691,7 @@ namespace BRS.Process.A020
strPointInitA1 = strPointInitA;
StrRobotPoint strPointInitA2 = new StrRobotPoint();
strPointInitA2 = strPointInitA;
- strPointInitA2.Y += A_Distance_DisD;
+ strPointInitA2.Z += Distance_DisD;//XYZ是毫米
_strRobotPointAs.Add(strPointInitA1);
_strRobotPointAs.Add(strPointInitA2);
//KawasakiRobotMoves(KawasakiRobot, _strRobotPointAs, false);
@@ -593,8 +699,8 @@ namespace BRS.Process.A020
DownCirce = DownCirce.DownCirce;
KawasakiRobot.SendMessage(TestPoint);//机械臂移动视觉定位点
- LogAsync(DateTime.Now, LogLevel.Assist, $"机械臂A移动视觉定位点完成");
+ LogAsync(DateTime.Now, LogLevel.Assist, $"机械臂A移动视觉定位点完成");
RobotsStatus = RobotsStatus.Runing;
while (true)
@@ -604,20 +710,245 @@ namespace BRS.Process.A020
else
Thread.Sleep(10);
}
+ IsArrive = true;
#endregion
+ if (IsTough == true)
+ {
+ ProcessStatus = ProcessStatus.ShaftLoosenRunning;
+ ShaftOperateOnce(MelsecPLC, "D1", 500);//D1置1延时500后置0
+ ShaftOperateOnce(MelsecPLC, "D55", 500);//自动拧紧螺丝标志位先置1,0.5s后置0
+ Thread.Sleep(20);
+ }
+ else
+ {
+ ProcessStatus = ProcessStatus.ShaftToughRunning;
+ ShaftOperateOnce(MelsecPLC, "D1", 500);//D1置1延时500后置0
+ ShaftOperateOnce(MelsecPLC, "D57", 500);//自动拧紧螺丝标志位先置1,0.5s后置0
+ Thread.Sleep(20);
+ }
+
}
else
{
Thread.Sleep(10);
}
}
+ break;
+ case ProcessStatus.ShaftToughRunning:
+ {
+ string ShaftCommunication = ProcessReadInt(MelsecPLC, "D201", "int");//通讯
+ if (ShaftCommunication == "111")//如果等于111,流程启动
+ {
+ string ShaftEmergencyStop = ProcessReadInt(MelsecPLC, "D19", "int");//急停
+ if (ShaftEmergencyStop != "0")//判断是否急停,0不急停,1急停
+ {
+ LogAsync(DateTime.Now, LogLevel.Warning, "设备急停!");
+ //Thread.Sleep(2000);
+ return;
+ }
+ else
+ {
+
+ //ProcessWriteInt(MelsecPLC, "D3", "int", "0");//D3置0
+ //ProcessWriteInt(MelsecPLC, "D7", "int", "1");//手动/自动,置1自动
+ //ProcessWriteInt(MelsecPLC, "D161", "int", "5");//旋转所需最小圈数
+ //ProcessWriteInt(MelsecPLC, "D163", "int", "15");//最大圈数
+ //ProcessWriteInt(MelsecPLC, "D151", "int", "3000");//超时停止设置值
+ //ProcessWriteInt(MelsecPLC, "D173", "int", "200");//目标扭矩
+ //ProcessWriteInt(MelsecPLC, "D171", "int", "2000");//最大扭矩3000
+ //ProcessWriteInt(MelsecPLC, "D55", "int", "1");//自动拧紧螺丝D55置1
+ ProcessWriteInt(MelsecPLC, "D155", "int", "10");//扭矩到目标设定值计时设定值,设为1秒
+ ShaftOperateOnce(MelsecPLC, "D55", 500);//自动拧紧螺丝标志位先置1,0.5s后置0
+
+ //machineState = MachineState.Waiting;//设备启动完成后保持状态
+ LogAsync(DateTime.Now, LogLevel.Detail, "设备已启动,请勿其他操作!!");
+ IsShaftOpen = true;
+ RobotsStatus = RobotsStatus.Runing;
+ // DownCirce = DownCirce.DownCirce;
+ }
+ //while (true)
+ //{
+ // if (DownCirce == DownCirce.DownCirceRuning)
+ // break;
+ // else
+ // Thread.Sleep(10);
+ //}
+ IsTough = true;
+ ProcessStatus = ProcessStatus.Judge;
+ }
+ else
+ {
+ LogAsync(DateTime.Now, LogLevel.Warning, "通讯故障!");
+
+ return;
+ }
+
+ }
+ break;
+ case ProcessStatus.ShaftLoosenRunning:
+ {
+ string ShaftCommunication = ProcessReadInt(MelsecPLC, "D201", "int");//通讯
+ if (ShaftCommunication == "111")//如果等于111,流程启动
+ {
+ string ShaftEmergencyStop = ProcessReadInt(MelsecPLC, "D19", "int");//急停
+ if (ShaftEmergencyStop != "0")//判断是否急停,0不急停,1急停
+ {
+ LogAsync(DateTime.Now, LogLevel.Warning, "设备急停!");
+ //Thread.Sleep(2000);
+ return;
+ }
+ else
+ {
+ //ProcessWriteInt(MelsecPLC, "D3", "int", "0");//D3置0
+ //ProcessWriteInt(MelsecPLC, "D7", "int", "1");//手动/自动,置1自动
+ //ProcessWriteInt(MelsecPLC, "D161", "int", "5");//旋转所需最小圈数
+ //ProcessWriteInt(MelsecPLC, "D163", "int", "15");//最大圈数
+ //ProcessWriteInt(MelsecPLC, "D151", "int", "3000");//超时停止设置值
+ //ProcessWriteInt(MelsecPLC, "D173", "int", "200");//目标扭矩
+ ProcessWriteInt(MelsecPLC, "D171", "int", "2000");//最大扭矩3000
+ //ProcessWriteInt(MelsecPLC, "D55", "int", "1");//自动拧紧螺丝D55置1
+ ProcessWriteInt(MelsecPLC, "D155", "int", "20");//扭矩到目标设定值计时设定值,设为1秒
+
+
+ //machineState = MachineState.Waiting;//设备启动完成后保持状态
+ LogAsync(DateTime.Now, LogLevel.Detail, "设备已启动,请勿其他操作!!");
+ IsShaftOpen = true;
+ RobotsStatus = RobotsStatus.Runing;
+ DownCirce = DownCirce.DownCirce;
+ }
+ while (true)
+ {
+ if (DownCirce == DownCirce.DownCirceRuning)
+ break;
+ else
+ Thread.Sleep(10);
+ }
+ IsTough = true;
+ ProcessStatus = ProcessStatus.Judge;
+ }
+ else
+ {
+ LogAsync(DateTime.Now, LogLevel.Warning, "通讯故障!");
+ return;
+ }
+ }
+ break;
+ case ProcessStatus.Judge:
+ {
+ int resValue1;
+ int resValue2;
+ string torsionValue = ProcessReadInt(MelsecPLC, "D251", "int");
+ string angleValue = ProcessReadInt(MelsecPLC, "D351", "int");
+ resValue1 = Convert.ToInt32(torsionValue);//将接收到的返回值转为int类型
+ resValue2 = Convert.ToInt32(angleValue) / 200000;
+
+ int MaxAngleValue = Convert.ToInt32(ProcessReadInt(MelsecPLC, "D163", "int"));//读取旋转所需圈数的最大值
+ int MinAngleValue = Convert.ToInt32(ProcessReadInt(MelsecPLC, "D161", "int"));//最小值
+ int overtime = Convert.ToInt32(ProcessReadInt(MelsecPLC, "D151", "int"));//拧紧超时设定值,当空转达到设定的值时会停止
+ int MaxSettingTorsionValue = Convert.ToInt32(ProcessReadInt(MelsecPLC, "D173", "int"));//最大扭矩设定值,当达到这一个值时会停止
+ int torsionTime = Convert.ToInt32(ProcessReadInt(MelsecPLC, "D155", "int"));//扭矩到目标设定值计时设定值
+ if (resValue1 >= MaxSettingTorsionValue)
+ {
+ LogAsync(DateTime.Now, LogLevel.Information, "已完成");
+ //ProcessWriteInt(MelsecPLC, "D171", "int", "0");
+
+ if (MinAngleValue <= resValue2 && resValue2 <= MaxAngleValue)
+ {
+
+ LogAsync(DateTime.Now, LogLevel.Information, "产品合格");
+
+ //机械手控制螺丝机退出螺丝,
+ return;
+ }
+ else if (resValue2 < MinAngleValue)
+ {
+ //ProcessWriteInt(MelsecPLC, "D171", "int", "0");
+ LogAsync(DateTime.Now, LogLevel.Error, "螺丝卡丝");
+
+ return;
+ }
+ //else if (resValue2 > MaxAngleValue)
+ //{
+ // LogAsync(DateTime.Now, LogLevel.Error, "螺丝滑丝");
+ // isOpenAuto = false;
+ // break;
+ //}
+ }
+ else if (resValue2 > MaxAngleValue)
+ {
+ Thread.Sleep(100);
+
+ LogAsync(DateTime.Now, LogLevel.Error, "螺丝滑丝");
+
+ return;
+ }
+ while (true)
+ {
+ if ("0" == ProcessReadInt(MelsecPLC, "D65", "int"))
+ break;
+ else
+ Thread.Sleep(10);
+ }
+ ShaftOperateOnce(MelsecPLC, "D57", 500);//自动拧紧螺丝标志位先置1,0.5s后置0
+ ProcessWriteInt(MelsecPLC, "D171", "int", "200");
+ ProcessWriteInt(MelsecPLC, "D167", "int", "50000");
+
+ Thread.Sleep(1000);
+
+ ProcessStatus = ProcessStatus.UpShaft;
+ }
+ break;
+ case ProcessStatus.UpShaft:
+ {
+ RobotPoint robotInitPoint1 = KawasakiRobot.IIConfig.RobotInitPosition;//机器人初始点
+ StrRobotPoint initPoint = ClassChangeStruct(robotInitPoint);
+
+ List _strRobotPointAup = new List();
+ StrRobotPoint strPointInitA3 = new StrRobotPoint();
+ strPointInitA3 = strPointInitA;
+ StrRobotPoint strPointInitA4 = new StrRobotPoint();
+ strPointInitA4 = strPointInitA;
+ StrRobotPoint strPointInitA5 = new StrRobotPoint();
+ strPointInitA5 = initPoint;
+ strPointInitA4.Z -= Distance_DisD;//XYZ是毫米
+ _strRobotPointAup.Add(strPointInitA4);
+ _strRobotPointAup.Add(strPointInitA3);
+ _strRobotPointAup.Add(strPointInitA5);
+ //KawasakiRobotMoves(KawasakiRobot, _strRobotPointAs, false);
+ string TestPoint1 = MoveMoreNContinueRobot(_strRobotPointAup, ref strPointInitA);
+
+ DownCirce = DownCirce.DownCirce;
+ KawasakiRobot.SendMessage(TestPoint1);//机械臂移动视觉定位点
+
+ RobotsStatus = RobotsStatus.Runing;
+
+ while (true)
+ {
+ if (DownCirce == DownCirce.DownCirceRuning)
+ break;
+ else
+ Thread.Sleep(10);
+ }
+ Thread.Sleep(3000);
+ ProcessStatus = ProcessStatus.Init;
+
+ }
+ break;
+ case ProcessStatus.Warning:
+ {
+
+ }
+
break;
}
+ Thread.Sleep(20);
}
});
-
-
-
+
+ Task.Run(() =>
+ {
+
+ });
LogAsync(DateTime.Now, LogLevel.Action, "流程启动完成!");
PubSubCenter.GetInstance().Publish(PubSubCenterMessageType.IsProcessOpened.ToString(), true, null);
return new ProcessResponse(true);
@@ -1047,6 +1378,8 @@ namespace BRS.Process.A020
/// 进入自动化控制进程,完成系列动作
///
///
+ ///
+#if false
public ProcessResponse StartProcess()
{
if (MachineState != MachineState.Ready)
@@ -1111,7 +1444,7 @@ namespace BRS.Process.A020
return new ProcessResponse(true);
}
-
+#endif
///
/// 使机器人回到初始位置
@@ -1291,7 +1624,7 @@ namespace BRS.Process.A020
ProcessWriteInt(PLC, Address, "int", "1");
Thread.Sleep(Duration);
ProcessWriteInt(PLC, Address, "int", "0");
- Thread.Sleep(500);
+ //Thread.Sleep(500);
}
///
diff --git a/src/BRS.Process.A020/A020Process_VisionProcessor.cs b/src/BRS.Process.A020/A020Process_VisionProcessor.cs
index 994414f..2bccf17 100644
--- a/src/BRS.Process.A020/A020Process_VisionProcessor.cs
+++ b/src/BRS.Process.A020/A020Process_VisionProcessor.cs
@@ -350,7 +350,7 @@ namespace BRS.Process.A020
if (ProcessStatus == ProcessStatus.Init && RobotsStatus == RobotsStatus.Runing && msg == "wanbi")
{
msg = string.Empty;
- ProcessStatus = ProcessStatus.InitPlc;
+
RobotsStatus = RobotsStatus.Release;
DownCirce = DownCirce.DownCirceRuning;
@@ -399,7 +399,34 @@ namespace BRS.Process.A020
RobotsStatus = RobotsStatus.Release;
}
#endregion
-
+ #region 拧紧轴拧紧到位
+ if(ProcessStatus == ProcessStatus.ShaftToughRunning && RobotsStatus == RobotsStatus.Runing && IsShaftOpen==true)
+ {
+ msg = string.Empty;
+ RobotsStatus = RobotsStatus.Release;
+ DownCirce = DownCirce.DownCirceRuning;
+ }
+
+ #region 判断拧紧后是否拧松
+ if (ProcessStatus == ProcessStatus.Judge && RobotsStatus == RobotsStatus.Runing)
+ {
+ msg = string.Empty;
+ RobotsStatus = RobotsStatus.Release;
+ DownCirce = DownCirce.DownCirceRuning;
+ }
+
+ #endregion
+
+ #endregion
+ #region 拧紧或拧松回原点
+ if (ProcessStatus == ProcessStatus.UpShaft && RobotsStatus == RobotsStatus.Runing && msg=="wanbi")
+ {
+ msg = string.Empty;
+ RobotsStatus = RobotsStatus.Release;
+ DownCirce = DownCirce.DownCirceRuning;
+ }
+
+ #endregion
}
///
diff --git a/src/BRS.Process.A020/UI/ContorlShaft.Designer.cs b/src/BRS.Process.A020/UI/ContorlShaft.Designer.cs
index 12af6d6..6cec8f3 100644
--- a/src/BRS.Process.A020/UI/ContorlShaft.Designer.cs
+++ b/src/BRS.Process.A020/UI/ContorlShaft.Designer.cs
@@ -46,6 +46,9 @@ namespace BRS.Process.A020.UI
this.StopStateLabel = new Sunny.UI.UILabel();
this.chart2 = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.uiPanel1 = new Sunny.UI.UIPanel();
+ this.uiPanel3 = new Sunny.UI.UIPanel();
+ this.StartBtn1 = new Sunny.UI.UIButton();
+ this.StopBtn2 = new Sunny.UI.UIButton();
this.BtnSeries = new Sunny.UI.UIPanel();
this.label13 = new System.Windows.Forms.Label();
this.ManualLoosenBtn = new Sunny.UI.UIButton();
@@ -67,26 +70,16 @@ namespace BRS.Process.A020.UI
this.textBox3 = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.LightSeries = new Sunny.UI.UIPanel();
+ this.label15 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
- this.ManualLight = new BRS.Process.A020.UI.CircleButton();
- this.AutoLight = new BRS.Process.A020.UI.CircleButton();
- this.MoveStateLight1 = new BRS.Process.A020.UI.CircleButton();
- this.StopStateLight1 = new BRS.Process.A020.UI.CircleButton();
- this.ToughLight1 = new BRS.Process.A020.UI.CircleButton();
- this.LoosenLight1 = new BRS.Process.A020.UI.CircleButton();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.uiPanel2 = new Sunny.UI.UIPanel();
this.label14 = new System.Windows.Forms.Label();
- this.AutoBtn1 = new BRS.Process.A020.UI.CircleButton();
- this.ManualBtn1 = new BRS.Process.A020.UI.CircleButton();
- this.ESBtn = new BRS.Process.A020.UI.CircleButton();
this.TestBtn = new Sunny.UI.UIButton();
- this.StopBtn2 = new Sunny.UI.UIButton();
- this.StartBtn1 = new Sunny.UI.UIButton();
this.AutoLoosenBtn = new Sunny.UI.UIButton();
this.AutoToughBtn = new Sunny.UI.UIButton();
this.uiLabel2 = new Sunny.UI.UILabel();
@@ -95,8 +88,19 @@ namespace BRS.Process.A020.UI
this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.uiButton1 = new Sunny.UI.UIButton();
this.timer2 = new System.Windows.Forms.Timer(this.components);
+ this.RobotAStatus = new BRS.Process.A020.UI.CircleButton();
+ this.ManualLight = new BRS.Process.A020.UI.CircleButton();
+ this.AutoLight = new BRS.Process.A020.UI.CircleButton();
+ this.MoveStateLight1 = new BRS.Process.A020.UI.CircleButton();
+ this.StopStateLight1 = new BRS.Process.A020.UI.CircleButton();
+ this.ToughLight1 = new BRS.Process.A020.UI.CircleButton();
+ this.LoosenLight1 = new BRS.Process.A020.UI.CircleButton();
+ this.AutoBtn1 = new BRS.Process.A020.UI.CircleButton();
+ this.ManualBtn1 = new BRS.Process.A020.UI.CircleButton();
+ this.ESBtn = new BRS.Process.A020.UI.CircleButton();
((System.ComponentModel.ISupportInitialize)(this.chart2)).BeginInit();
this.uiPanel1.SuspendLayout();
+ this.uiPanel3.SuspendLayout();
this.BtnSeries.SuspendLayout();
this.ParameterSetting.SuspendLayout();
this.LightSeries.SuspendLayout();
@@ -230,13 +234,12 @@ namespace BRS.Process.A020.UI
//
// uiPanel1
//
+ this.uiPanel1.Controls.Add(this.uiPanel3);
this.uiPanel1.Controls.Add(this.BtnSeries);
this.uiPanel1.Controls.Add(this.ParameterSetting);
this.uiPanel1.Controls.Add(this.LightSeries);
this.uiPanel1.Controls.Add(this.uiPanel2);
this.uiPanel1.Controls.Add(this.TestBtn);
- this.uiPanel1.Controls.Add(this.StopBtn2);
- this.uiPanel1.Controls.Add(this.StartBtn1);
this.uiPanel1.Dock = System.Windows.Forms.DockStyle.Left;
this.uiPanel1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiPanel1.Location = new System.Drawing.Point(0, 0);
@@ -250,6 +253,51 @@ namespace BRS.Process.A020.UI
this.uiPanel1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
this.uiPanel1.Load += new System.EventHandler(this.uiPanel1_Load);
//
+ // uiPanel3
+ //
+ this.uiPanel3.Controls.Add(this.StartBtn1);
+ this.uiPanel3.Controls.Add(this.StopBtn2);
+ this.uiPanel3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.uiPanel3.Location = new System.Drawing.Point(12, 0);
+ this.uiPanel3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.uiPanel3.MinimumSize = new System.Drawing.Size(1, 1);
+ this.uiPanel3.Name = "uiPanel3";
+ this.uiPanel3.Size = new System.Drawing.Size(204, 153);
+ this.uiPanel3.TabIndex = 41;
+ this.uiPanel3.Text = null;
+ this.uiPanel3.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
+ this.uiPanel3.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
+ //
+ // StartBtn1
+ //
+ this.StartBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.StartBtn1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.StartBtn1.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.StartBtn1.Location = new System.Drawing.Point(0, 0);
+ this.StartBtn1.MinimumSize = new System.Drawing.Size(1, 1);
+ this.StartBtn1.Name = "StartBtn1";
+ this.StartBtn1.Size = new System.Drawing.Size(97, 153);
+ this.StartBtn1.TabIndex = 7;
+ this.StartBtn1.Text = "开始";
+ this.StartBtn1.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.StartBtn1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
+ this.StartBtn1.Click += new System.EventHandler(this.StartBtn1_Click);
+ //
+ // StopBtn2
+ //
+ this.StopBtn2.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.StopBtn2.Dock = System.Windows.Forms.DockStyle.Right;
+ this.StopBtn2.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.StopBtn2.Location = new System.Drawing.Point(107, 0);
+ this.StopBtn2.MinimumSize = new System.Drawing.Size(1, 1);
+ this.StopBtn2.Name = "StopBtn2";
+ this.StopBtn2.Size = new System.Drawing.Size(97, 153);
+ this.StopBtn2.TabIndex = 8;
+ this.StopBtn2.Text = "停止";
+ this.StopBtn2.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.StopBtn2.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
+ this.StopBtn2.Click += new System.EventHandler(this.StopBtn2_Click);
+ //
// BtnSeries
//
this.BtnSeries.Controls.Add(this.label13);
@@ -258,11 +306,11 @@ namespace BRS.Process.A020.UI
this.BtnSeries.Controls.Add(this.AutoLoosenBtn1);
this.BtnSeries.Controls.Add(this.ManualToughBtn);
this.BtnSeries.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.BtnSeries.Location = new System.Drawing.Point(352, 155);
+ this.BtnSeries.Location = new System.Drawing.Point(352, 152);
this.BtnSeries.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.BtnSeries.MinimumSize = new System.Drawing.Size(1, 1);
this.BtnSeries.Name = "BtnSeries";
- this.BtnSeries.Size = new System.Drawing.Size(367, 391);
+ this.BtnSeries.Size = new System.Drawing.Size(367, 394);
this.BtnSeries.TabIndex = 40;
this.BtnSeries.Text = null;
this.BtnSeries.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
@@ -271,10 +319,11 @@ namespace BRS.Process.A020.UI
// label13
//
this.label13.BackColor = System.Drawing.Color.Transparent;
+ this.label13.Dock = System.Windows.Forms.DockStyle.Top;
this.label13.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.label13.Location = new System.Drawing.Point(1, 3);
+ this.label13.Location = new System.Drawing.Point(0, 0);
this.label13.Name = "label13";
- this.label13.Size = new System.Drawing.Size(123, 47);
+ this.label13.Size = new System.Drawing.Size(367, 47);
this.label13.TabIndex = 37;
this.label13.Text = "操作按钮";
this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -282,11 +331,11 @@ namespace BRS.Process.A020.UI
// ManualLoosenBtn
//
this.ManualLoosenBtn.Cursor = System.Windows.Forms.Cursors.Hand;
- this.ManualLoosenBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.ManualLoosenBtn.Location = new System.Drawing.Point(3, 206);
+ this.ManualLoosenBtn.Font = new System.Drawing.Font("微软雅黑", 18F);
+ this.ManualLoosenBtn.Location = new System.Drawing.Point(2, 223);
this.ManualLoosenBtn.MinimumSize = new System.Drawing.Size(1, 1);
this.ManualLoosenBtn.Name = "ManualLoosenBtn";
- this.ManualLoosenBtn.Size = new System.Drawing.Size(150, 75);
+ this.ManualLoosenBtn.Size = new System.Drawing.Size(170, 110);
this.ManualLoosenBtn.TabIndex = 10;
this.ManualLoosenBtn.Text = "手动拧松";
this.ManualLoosenBtn.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -297,11 +346,11 @@ namespace BRS.Process.A020.UI
// AutoToughBtn1
//
this.AutoToughBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.AutoToughBtn1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.AutoToughBtn1.Location = new System.Drawing.Point(212, 85);
+ this.AutoToughBtn1.Font = new System.Drawing.Font("微软雅黑", 18F);
+ this.AutoToughBtn1.Location = new System.Drawing.Point(192, 85);
this.AutoToughBtn1.MinimumSize = new System.Drawing.Size(1, 1);
this.AutoToughBtn1.Name = "AutoToughBtn1";
- this.AutoToughBtn1.Size = new System.Drawing.Size(150, 75);
+ this.AutoToughBtn1.Size = new System.Drawing.Size(170, 110);
this.AutoToughBtn1.TabIndex = 11;
this.AutoToughBtn1.Text = "自动拧紧";
this.AutoToughBtn1.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -311,11 +360,11 @@ namespace BRS.Process.A020.UI
// AutoLoosenBtn1
//
this.AutoLoosenBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.AutoLoosenBtn1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.AutoLoosenBtn1.Location = new System.Drawing.Point(212, 206);
+ this.AutoLoosenBtn1.Font = new System.Drawing.Font("微软雅黑", 18F);
+ this.AutoLoosenBtn1.Location = new System.Drawing.Point(192, 223);
this.AutoLoosenBtn1.MinimumSize = new System.Drawing.Size(1, 1);
this.AutoLoosenBtn1.Name = "AutoLoosenBtn1";
- this.AutoLoosenBtn1.Size = new System.Drawing.Size(150, 75);
+ this.AutoLoosenBtn1.Size = new System.Drawing.Size(170, 110);
this.AutoLoosenBtn1.TabIndex = 12;
this.AutoLoosenBtn1.Text = "自动拧松";
this.AutoLoosenBtn1.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -325,11 +374,11 @@ namespace BRS.Process.A020.UI
// ManualToughBtn
//
this.ManualToughBtn.Cursor = System.Windows.Forms.Cursors.Hand;
- this.ManualToughBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.ManualToughBtn.Font = new System.Drawing.Font("微软雅黑", 18F);
this.ManualToughBtn.Location = new System.Drawing.Point(3, 85);
this.ManualToughBtn.MinimumSize = new System.Drawing.Size(1, 1);
this.ManualToughBtn.Name = "ManualToughBtn";
- this.ManualToughBtn.Size = new System.Drawing.Size(150, 75);
+ this.ManualToughBtn.Size = new System.Drawing.Size(170, 110);
this.ManualToughBtn.TabIndex = 9;
this.ManualToughBtn.Text = "手动拧紧";
this.ManualToughBtn.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -357,7 +406,7 @@ namespace BRS.Process.A020.UI
this.ParameterSetting.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.ParameterSetting.MinimumSize = new System.Drawing.Size(1, 1);
this.ParameterSetting.Name = "ParameterSetting";
- this.ParameterSetting.Size = new System.Drawing.Size(332, 394);
+ this.ParameterSetting.Size = new System.Drawing.Size(338, 394);
this.ParameterSetting.TabIndex = 39;
this.ParameterSetting.Text = null;
this.ParameterSetting.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
@@ -366,10 +415,11 @@ namespace BRS.Process.A020.UI
// label10
//
this.label10.BackColor = System.Drawing.Color.Transparent;
+ this.label10.Dock = System.Windows.Forms.DockStyle.Top;
this.label10.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.label10.Location = new System.Drawing.Point(3, 3);
+ this.label10.Location = new System.Drawing.Point(0, 0);
this.label10.Name = "label10";
- this.label10.Size = new System.Drawing.Size(123, 47);
+ this.label10.Size = new System.Drawing.Size(338, 47);
this.label10.TabIndex = 36;
this.label10.Text = "参数设置";
this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -378,7 +428,7 @@ namespace BRS.Process.A020.UI
//
this.OKBtn.Cursor = System.Windows.Forms.Cursors.Hand;
this.OKBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.OKBtn.Location = new System.Drawing.Point(226, 250);
+ this.OKBtn.Location = new System.Drawing.Point(263, 324);
this.OKBtn.MinimumSize = new System.Drawing.Size(1, 1);
this.OKBtn.Name = "OKBtn";
this.OKBtn.Size = new System.Drawing.Size(70, 31);
@@ -395,7 +445,7 @@ namespace BRS.Process.A020.UI
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(134, 30);
this.textBox1.TabIndex = 24;
- this.textBox1.Text = "2000";
+ this.textBox1.Text = "200";
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label5
@@ -413,7 +463,7 @@ namespace BRS.Process.A020.UI
//
this.ResettingBtn.Cursor = System.Windows.Forms.Cursors.Hand;
this.ResettingBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.ResettingBtn.Location = new System.Drawing.Point(150, 250);
+ this.ResettingBtn.Location = new System.Drawing.Point(187, 324);
this.ResettingBtn.MinimumSize = new System.Drawing.Size(1, 1);
this.ResettingBtn.Name = "ResettingBtn";
this.ResettingBtn.Size = new System.Drawing.Size(70, 31);
@@ -427,7 +477,7 @@ namespace BRS.Process.A020.UI
//
this.label6.BackColor = System.Drawing.Color.Transparent;
this.label6.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label6.Location = new System.Drawing.Point(6, 112);
+ this.label6.Location = new System.Drawing.Point(6, 125);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(150, 30);
this.label6.TabIndex = 27;
@@ -436,7 +486,7 @@ namespace BRS.Process.A020.UI
//
// textBox5
//
- this.textBox5.Location = new System.Drawing.Point(162, 214);
+ this.textBox5.Location = new System.Drawing.Point(162, 260);
this.textBox5.Multiline = true;
this.textBox5.Name = "textBox5";
this.textBox5.Size = new System.Drawing.Size(134, 30);
@@ -446,7 +496,7 @@ namespace BRS.Process.A020.UI
//
// textBox2
//
- this.textBox2.Location = new System.Drawing.Point(162, 114);
+ this.textBox2.Location = new System.Drawing.Point(162, 127);
this.textBox2.Multiline = true;
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(134, 30);
@@ -458,7 +508,7 @@ namespace BRS.Process.A020.UI
//
this.label9.BackColor = System.Drawing.Color.Transparent;
this.label9.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label9.Location = new System.Drawing.Point(6, 214);
+ this.label9.Location = new System.Drawing.Point(6, 260);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(150, 30);
this.label9.TabIndex = 33;
@@ -469,7 +519,7 @@ namespace BRS.Process.A020.UI
//
this.label7.BackColor = System.Drawing.Color.Transparent;
this.label7.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label7.Location = new System.Drawing.Point(6, 147);
+ this.label7.Location = new System.Drawing.Point(6, 172);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(150, 30);
this.label7.TabIndex = 29;
@@ -478,7 +528,7 @@ namespace BRS.Process.A020.UI
//
// textBox4
//
- this.textBox4.Location = new System.Drawing.Point(162, 181);
+ this.textBox4.Location = new System.Drawing.Point(162, 217);
this.textBox4.Multiline = true;
this.textBox4.Name = "textBox4";
this.textBox4.Size = new System.Drawing.Size(134, 30);
@@ -488,7 +538,7 @@ namespace BRS.Process.A020.UI
//
// textBox3
//
- this.textBox3.Location = new System.Drawing.Point(162, 147);
+ this.textBox3.Location = new System.Drawing.Point(162, 172);
this.textBox3.Multiline = true;
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(134, 30);
@@ -500,7 +550,7 @@ namespace BRS.Process.A020.UI
//
this.label8.BackColor = System.Drawing.Color.Transparent;
this.label8.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label8.Location = new System.Drawing.Point(26, 181);
+ this.label8.Location = new System.Drawing.Point(26, 217);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(114, 30);
this.label8.TabIndex = 31;
@@ -509,6 +559,8 @@ namespace BRS.Process.A020.UI
//
// LightSeries
//
+ this.LightSeries.Controls.Add(this.label15);
+ this.LightSeries.Controls.Add(this.RobotAStatus);
this.LightSeries.Controls.Add(this.label12);
this.LightSeries.Controls.Add(this.label11);
this.LightSeries.Controls.Add(this.ManualLight);
@@ -522,21 +574,32 @@ namespace BRS.Process.A020.UI
this.LightSeries.Controls.Add(this.label3);
this.LightSeries.Controls.Add(this.label4);
this.LightSeries.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.LightSeries.Location = new System.Drawing.Point(219, 5);
+ this.LightSeries.Location = new System.Drawing.Point(219, 0);
this.LightSeries.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.LightSeries.MinimumSize = new System.Drawing.Size(1, 1);
this.LightSeries.Name = "LightSeries";
- this.LightSeries.Size = new System.Drawing.Size(812, 148);
+ this.LightSeries.Size = new System.Drawing.Size(819, 153);
this.LightSeries.TabIndex = 38;
this.LightSeries.Text = null;
this.LightSeries.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
this.LightSeries.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
//
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.BackColor = System.Drawing.Color.Silver;
+ this.label15.Location = new System.Drawing.Point(713, 100);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(74, 42);
+ this.label15.TabIndex = 29;
+ this.label15.Text = "机械臂\r\n连接状态";
+ this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
// label12
//
this.label12.AutoSize = true;
this.label12.BackColor = System.Drawing.Color.Silver;
- this.label12.Location = new System.Drawing.Point(668, 100);
+ this.label12.Location = new System.Drawing.Point(545, 100);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(106, 42);
this.label12.TabIndex = 27;
@@ -547,71 +610,13 @@ namespace BRS.Process.A020.UI
//
this.label11.AutoSize = true;
this.label11.BackColor = System.Drawing.Color.Silver;
- this.label11.Location = new System.Drawing.Point(537, 100);
+ this.label11.Location = new System.Drawing.Point(433, 100);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(106, 42);
this.label11.TabIndex = 26;
this.label11.Text = "自动拧紧状态\r\n指示灯";
this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
- // ManualLight
- //
- this.ManualLight.BackColor = System.Drawing.Color.Gray;
- this.ManualLight.Cursor = System.Windows.Forms.Cursors.Hand;
- this.ManualLight.Enabled = false;
- this.ManualLight.Location = new System.Drawing.Point(672, 7);
- this.ManualLight.Name = "ManualLight";
- this.ManualLight.Size = new System.Drawing.Size(90, 90);
- this.ManualLight.TabIndex = 25;
- this.ManualLight.UseVisualStyleBackColor = false;
- //
- // AutoLight
- //
- this.AutoLight.BackColor = System.Drawing.Color.Gray;
- this.AutoLight.Cursor = System.Windows.Forms.Cursors.Hand;
- this.AutoLight.Enabled = false;
- this.AutoLight.Location = new System.Drawing.Point(541, 7);
- this.AutoLight.Name = "AutoLight";
- this.AutoLight.Size = new System.Drawing.Size(90, 90);
- this.AutoLight.TabIndex = 24;
- this.AutoLight.UseVisualStyleBackColor = false;
- //
- // MoveStateLight1
- //
- this.MoveStateLight1.BackColor = System.Drawing.Color.Gray;
- this.MoveStateLight1.Location = new System.Drawing.Point(17, 7);
- this.MoveStateLight1.Name = "MoveStateLight1";
- this.MoveStateLight1.Size = new System.Drawing.Size(90, 90);
- this.MoveStateLight1.TabIndex = 3;
- this.MoveStateLight1.UseVisualStyleBackColor = false;
- //
- // StopStateLight1
- //
- this.StopStateLight1.BackColor = System.Drawing.Color.Gray;
- this.StopStateLight1.Location = new System.Drawing.Point(148, 7);
- this.StopStateLight1.Name = "StopStateLight1";
- this.StopStateLight1.Size = new System.Drawing.Size(90, 90);
- this.StopStateLight1.TabIndex = 15;
- this.StopStateLight1.UseVisualStyleBackColor = false;
- //
- // ToughLight1
- //
- this.ToughLight1.BackColor = System.Drawing.Color.Gray;
- this.ToughLight1.Location = new System.Drawing.Point(279, 7);
- this.ToughLight1.Name = "ToughLight1";
- this.ToughLight1.Size = new System.Drawing.Size(90, 90);
- this.ToughLight1.TabIndex = 16;
- this.ToughLight1.UseVisualStyleBackColor = false;
- //
- // LoosenLight1
- //
- this.LoosenLight1.BackColor = System.Drawing.Color.Gray;
- this.LoosenLight1.Location = new System.Drawing.Point(410, 7);
- this.LoosenLight1.Name = "LoosenLight1";
- this.LoosenLight1.Size = new System.Drawing.Size(90, 90);
- this.LoosenLight1.TabIndex = 17;
- this.LoosenLight1.UseVisualStyleBackColor = false;
- //
// label1
//
this.label1.AutoSize = true;
@@ -627,7 +632,7 @@ namespace BRS.Process.A020.UI
//
this.label2.AutoSize = true;
this.label2.BackColor = System.Drawing.Color.Silver;
- this.label2.Location = new System.Drawing.Point(155, 100);
+ this.label2.Location = new System.Drawing.Point(121, 100);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(74, 42);
this.label2.TabIndex = 21;
@@ -638,7 +643,7 @@ namespace BRS.Process.A020.UI
//
this.label3.AutoSize = true;
this.label3.BackColor = System.Drawing.Color.Silver;
- this.label3.Location = new System.Drawing.Point(271, 100);
+ this.label3.Location = new System.Drawing.Point(209, 100);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(106, 42);
this.label3.TabIndex = 22;
@@ -649,7 +654,7 @@ namespace BRS.Process.A020.UI
//
this.label4.AutoSize = true;
this.label4.BackColor = System.Drawing.Color.Silver;
- this.label4.Location = new System.Drawing.Point(405, 100);
+ this.label4.Location = new System.Drawing.Point(321, 100);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(106, 42);
this.label4.TabIndex = 23;
@@ -663,11 +668,11 @@ namespace BRS.Process.A020.UI
this.uiPanel2.Controls.Add(this.ManualBtn1);
this.uiPanel2.Controls.Add(this.ESBtn);
this.uiPanel2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.uiPanel2.Location = new System.Drawing.Point(728, 155);
+ this.uiPanel2.Location = new System.Drawing.Point(721, 152);
this.uiPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiPanel2.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPanel2.Name = "uiPanel2";
- this.uiPanel2.Size = new System.Drawing.Size(303, 391);
+ this.uiPanel2.Size = new System.Drawing.Size(317, 394);
this.uiPanel2.TabIndex = 37;
this.uiPanel2.Text = null;
this.uiPanel2.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
@@ -676,50 +681,15 @@ namespace BRS.Process.A020.UI
// label14
//
this.label14.BackColor = System.Drawing.Color.Transparent;
+ this.label14.Dock = System.Windows.Forms.DockStyle.Top;
this.label14.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.label14.Location = new System.Drawing.Point(3, 3);
+ this.label14.Location = new System.Drawing.Point(0, 0);
this.label14.Name = "label14";
- this.label14.Size = new System.Drawing.Size(123, 47);
+ this.label14.Size = new System.Drawing.Size(317, 47);
this.label14.TabIndex = 38;
this.label14.Text = "操作按钮";
this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
- // AutoBtn1
- //
- this.AutoBtn1.BackColor = System.Drawing.Color.Gray;
- this.AutoBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.AutoBtn1.Location = new System.Drawing.Point(3, 73);
- this.AutoBtn1.Name = "AutoBtn1";
- this.AutoBtn1.Size = new System.Drawing.Size(104, 104);
- this.AutoBtn1.TabIndex = 18;
- this.AutoBtn1.Text = "自动按钮";
- this.AutoBtn1.UseVisualStyleBackColor = false;
- this.AutoBtn1.Click += new System.EventHandler(this.AutoBtn1_Click);
- //
- // ManualBtn1
- //
- this.ManualBtn1.BackColor = System.Drawing.Color.Gray;
- this.ManualBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.ManualBtn1.Location = new System.Drawing.Point(3, 183);
- this.ManualBtn1.Name = "ManualBtn1";
- this.ManualBtn1.Size = new System.Drawing.Size(104, 104);
- this.ManualBtn1.TabIndex = 19;
- this.ManualBtn1.Text = "手动按钮";
- this.ManualBtn1.UseVisualStyleBackColor = false;
- this.ManualBtn1.Click += new System.EventHandler(this.ManualBtn1_Click);
- //
- // ESBtn
- //
- this.ESBtn.BackColor = System.Drawing.Color.Red;
- this.ESBtn.Cursor = System.Windows.Forms.Cursors.Hand;
- this.ESBtn.Location = new System.Drawing.Point(150, 107);
- this.ESBtn.Name = "ESBtn";
- this.ESBtn.Size = new System.Drawing.Size(137, 137);
- this.ESBtn.TabIndex = 0;
- this.ESBtn.Text = "急停";
- this.ESBtn.UseVisualStyleBackColor = false;
- this.ESBtn.Click += new System.EventHandler(this.ESBtn_Click);
- //
// TestBtn
//
this.TestBtn.Cursor = System.Windows.Forms.Cursors.Hand;
@@ -733,34 +703,6 @@ namespace BRS.Process.A020.UI
this.TestBtn.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.TestBtn.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
//
- // StopBtn2
- //
- this.StopBtn2.Cursor = System.Windows.Forms.Cursors.Hand;
- this.StopBtn2.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.StopBtn2.Location = new System.Drawing.Point(116, 12);
- this.StopBtn2.MinimumSize = new System.Drawing.Size(1, 1);
- this.StopBtn2.Name = "StopBtn2";
- this.StopBtn2.Size = new System.Drawing.Size(96, 141);
- this.StopBtn2.TabIndex = 8;
- this.StopBtn2.Text = "停止";
- this.StopBtn2.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.StopBtn2.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
- this.StopBtn2.Click += new System.EventHandler(this.StopBtn2_Click);
- //
- // StartBtn1
- //
- this.StartBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.StartBtn1.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.StartBtn1.Location = new System.Drawing.Point(12, 12);
- this.StartBtn1.MinimumSize = new System.Drawing.Size(1, 1);
- this.StartBtn1.Name = "StartBtn1";
- this.StartBtn1.Size = new System.Drawing.Size(96, 141);
- this.StartBtn1.TabIndex = 7;
- this.StartBtn1.Text = "开始";
- this.StartBtn1.TipsFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.StartBtn1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
- this.StartBtn1.Click += new System.EventHandler(this.StartBtn1_Click);
- //
// AutoLoosenBtn
//
this.AutoLoosenBtn.Cursor = System.Windows.Forms.Cursors.Hand;
@@ -852,6 +794,111 @@ namespace BRS.Process.A020.UI
this.timer2.Interval = 1000;
this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
//
+ // RobotAStatus
+ //
+ this.RobotAStatus.BackColor = System.Drawing.Color.Gray;
+ this.RobotAStatus.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.RobotAStatus.Enabled = false;
+ this.RobotAStatus.Location = new System.Drawing.Point(706, 7);
+ this.RobotAStatus.Name = "RobotAStatus";
+ this.RobotAStatus.Size = new System.Drawing.Size(90, 90);
+ this.RobotAStatus.TabIndex = 28;
+ this.RobotAStatus.UseVisualStyleBackColor = false;
+ //
+ // ManualLight
+ //
+ this.ManualLight.BackColor = System.Drawing.Color.Gray;
+ this.ManualLight.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.ManualLight.Enabled = false;
+ this.ManualLight.Location = new System.Drawing.Point(549, 7);
+ this.ManualLight.Name = "ManualLight";
+ this.ManualLight.Size = new System.Drawing.Size(90, 90);
+ this.ManualLight.TabIndex = 25;
+ this.ManualLight.UseVisualStyleBackColor = false;
+ //
+ // AutoLight
+ //
+ this.AutoLight.BackColor = System.Drawing.Color.Gray;
+ this.AutoLight.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.AutoLight.Enabled = false;
+ this.AutoLight.Location = new System.Drawing.Point(437, 7);
+ this.AutoLight.Name = "AutoLight";
+ this.AutoLight.Size = new System.Drawing.Size(90, 90);
+ this.AutoLight.TabIndex = 24;
+ this.AutoLight.UseVisualStyleBackColor = false;
+ //
+ // MoveStateLight1
+ //
+ this.MoveStateLight1.BackColor = System.Drawing.Color.Gray;
+ this.MoveStateLight1.Location = new System.Drawing.Point(17, 7);
+ this.MoveStateLight1.Name = "MoveStateLight1";
+ this.MoveStateLight1.Size = new System.Drawing.Size(90, 90);
+ this.MoveStateLight1.TabIndex = 3;
+ this.MoveStateLight1.UseVisualStyleBackColor = false;
+ //
+ // StopStateLight1
+ //
+ this.StopStateLight1.BackColor = System.Drawing.Color.Gray;
+ this.StopStateLight1.Location = new System.Drawing.Point(117, 7);
+ this.StopStateLight1.Name = "StopStateLight1";
+ this.StopStateLight1.Size = new System.Drawing.Size(90, 90);
+ this.StopStateLight1.TabIndex = 15;
+ this.StopStateLight1.UseVisualStyleBackColor = false;
+ //
+ // ToughLight1
+ //
+ this.ToughLight1.BackColor = System.Drawing.Color.Gray;
+ this.ToughLight1.Location = new System.Drawing.Point(217, 7);
+ this.ToughLight1.Name = "ToughLight1";
+ this.ToughLight1.Size = new System.Drawing.Size(90, 90);
+ this.ToughLight1.TabIndex = 16;
+ this.ToughLight1.UseVisualStyleBackColor = false;
+ //
+ // LoosenLight1
+ //
+ this.LoosenLight1.BackColor = System.Drawing.Color.Gray;
+ this.LoosenLight1.Location = new System.Drawing.Point(326, 7);
+ this.LoosenLight1.Name = "LoosenLight1";
+ this.LoosenLight1.Size = new System.Drawing.Size(90, 90);
+ this.LoosenLight1.TabIndex = 17;
+ this.LoosenLight1.UseVisualStyleBackColor = false;
+ //
+ // AutoBtn1
+ //
+ this.AutoBtn1.BackColor = System.Drawing.Color.Gray;
+ this.AutoBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.AutoBtn1.Location = new System.Drawing.Point(5, 85);
+ this.AutoBtn1.Name = "AutoBtn1";
+ this.AutoBtn1.Size = new System.Drawing.Size(112, 112);
+ this.AutoBtn1.TabIndex = 18;
+ this.AutoBtn1.Text = "自动按钮";
+ this.AutoBtn1.UseVisualStyleBackColor = false;
+ this.AutoBtn1.Click += new System.EventHandler(this.AutoBtn1_Click);
+ //
+ // ManualBtn1
+ //
+ this.ManualBtn1.BackColor = System.Drawing.Color.Gray;
+ this.ManualBtn1.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.ManualBtn1.Location = new System.Drawing.Point(5, 221);
+ this.ManualBtn1.Name = "ManualBtn1";
+ this.ManualBtn1.Size = new System.Drawing.Size(112, 112);
+ this.ManualBtn1.TabIndex = 19;
+ this.ManualBtn1.Text = "手动按钮";
+ this.ManualBtn1.UseVisualStyleBackColor = false;
+ this.ManualBtn1.Click += new System.EventHandler(this.ManualBtn1_Click);
+ //
+ // ESBtn
+ //
+ this.ESBtn.BackColor = System.Drawing.Color.Red;
+ this.ESBtn.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.ESBtn.Location = new System.Drawing.Point(157, 144);
+ this.ESBtn.Name = "ESBtn";
+ this.ESBtn.Size = new System.Drawing.Size(137, 137);
+ this.ESBtn.TabIndex = 0;
+ this.ESBtn.Text = "急停";
+ this.ESBtn.UseVisualStyleBackColor = false;
+ this.ESBtn.Click += new System.EventHandler(this.ESBtn_Click);
+ //
// 扭矩轴控制
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -866,6 +913,7 @@ namespace BRS.Process.A020.UI
this.Load += new System.EventHandler(this.扭矩轴控制_Load);
((System.ComponentModel.ISupportInitialize)(this.chart2)).EndInit();
this.uiPanel1.ResumeLayout(false);
+ this.uiPanel3.ResumeLayout(false);
this.BtnSeries.ResumeLayout(false);
this.ParameterSetting.ResumeLayout(false);
this.ParameterSetting.PerformLayout();
@@ -944,5 +992,8 @@ namespace BRS.Process.A020.UI
private CircleButton ManualLight;
private CircleButton AutoLight;
private System.Windows.Forms.Label label14;
+ private System.Windows.Forms.Label label15;
+ private CircleButton RobotAStatus;
+ private Sunny.UI.UIPanel uiPanel3;
}
}
\ No newline at end of file
diff --git a/src/BRS.Process.A020/UI/ContorlShaft.cs b/src/BRS.Process.A020/UI/ContorlShaft.cs
index db11d28..9e6424b 100644
--- a/src/BRS.Process.A020/UI/ContorlShaft.cs
+++ b/src/BRS.Process.A020/UI/ContorlShaft.cs
@@ -40,6 +40,7 @@ namespace BRS.Process.A020.UI
{
InitializeComponent();
}
+
public IDevice Device { get; set; }
protected PLCBase PLC
{
@@ -52,6 +53,72 @@ namespace BRS.Process.A020.UI
Device = device;
+ }
+ PLCBase pLCBase = null;
+ TCPSeverBase TcpListerWrapBase1 = null;
+ string Message1 = null;
+ public override void OnProcessUpdated()
+ {
+ base.OnProcessUpdated();
+ //ProcessA020.OnPLCStateChanged -= Test;
+ //ProcessA020.OnPLCStateChanged += Test;
+
+ //ProcessA020.OnBitmapChanged -= BitMapTest;
+ //ProcessA020.OnBitmapChanged += BitMapTest;
+ pLCBase = ProcessA020.DeviceCollection.FirstOrDefault(u => u is PLCBase) as PLCBase;
+ TcpListerWrapBase1 = ProcessA020.DeviceCollection.Find(d => d is TCPSeverBase && d.InitialConfig.Name == "ListenerA") as TCPSeverBase;
+ if (TcpListerWrapBase1 != null)
+ {
+ TcpListerWrapBase1.OnTcpDataReceived -= NbtRobotDriver_OnDataReceived;
+ TcpListerWrapBase1.OnTcpDataReceived += NbtRobotDriver_OnDataReceived;
+ TcpListerWrapBase1.OnTirggeredConnectClose -= NbtRobotDriver_OnTirggeredConnectClose;
+ TcpListerWrapBase1.OnTirggeredConnectClose += NbtRobotDriver_OnTirggeredConnectClose;
+ TcpListerWrapBase1.OnTirggeredConnectOpen -= NbtRobotDriver_OnTirggeredConnectOpen;
+ TcpListerWrapBase1.OnTirggeredConnectOpen += NbtRobotDriver_OnTirggeredConnectOpen;
+ }
+ }
+ private void NbtRobotDriver_OnTirggeredConnectClose()
+ {
+ RobotAStatus.BackColor = Color.Red;
+ }
+ private void NbtRobotDriver_OnTirggeredConnectOpen()
+ {
+ RobotAStatus.BackColor = Color.Green;
+ }
+ private void NbtRobotDriver_OnDataReceived(byte[] obj)
+ {
+ string msg = string.Empty;
+ msg = Encoding.Default.GetString(obj);
+ Message1 = msg;
+ //}
+ //else if (rbHexData.Checked)
+ //{
+ // //msg = ToHexStrFromByte(obj);
+ // msg = BitConverter.ToString(obj).Replace('-', ' ');
+
+ //}
+ bool Bmsg = msg.Contains("Status_");
+ if (Bmsg)
+ {
+
+ string[] arr = msg.Split('_');
+ if (arr.Count() > 6)
+ {
+ if (arr[1] == "TEACH")
+ MessageBox.Show("当前属于示教模式,请选择自动模式");
+ if (arr[2] == "ON")
+ MessageBox.Show("当前属于示教锁定,请选择自动模式");
+ if (arr[3] == "HOLD")
+ MessageBox.Show("当前系统状态异常,请检查");
+ if (arr[4] == "OFF")
+ MessageBox.Show("当前属于断电模式,请上电");
+ if (arr[6] == "ERROR")
+ MessageBox.Show("当前系统状态异常,请检查");
+
+ }
+
+ }
+
}
private async void StartBtn_Click(object sender, EventArgs e)
{
diff --git a/src/BRS.Process.A020/UI/OperationFrm.cs b/src/BRS.Process.A020/UI/OperationFrm.cs
index f886e2b..f553daf 100644
--- a/src/BRS.Process.A020/UI/OperationFrm.cs
+++ b/src/BRS.Process.A020/UI/OperationFrm.cs
@@ -183,7 +183,7 @@ namespace BRS.Process.A020.UI
else
{
Process_A020.BatchNO = textBoxBatchNO.Text;
- Process_A020.StartProcess();
+ Process_A020.StartProcess(null, null, null);
PubSubCenter.GetInstance().Publish(PubSubCenterMessageType.ClearData.ToString(), null, null);
btnProcessStart.Text = "流程停止";
btnProcessStart.ImageIndex = 3;
diff --git a/src/BRS.Process.A020/UI/OperationFrm.resx b/src/BRS.Process.A020/UI/OperationFrm.resx
index 66bbe7f..dce32a8 100644
--- a/src/BRS.Process.A020/UI/OperationFrm.resx
+++ b/src/BRS.Process.A020/UI/OperationFrm.resx
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAy
- CwAAAk1TRnQBSQFMAgEBBAEAAQgBBQEIAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CwAAAk1TRnQBSQFMAgEBBAEAARABBQEQAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
diff --git a/src/BRS.Process/ProcessConfig.cs b/src/BRS.Process/ProcessConfig.cs
index 65ddd91..841f39a 100644
--- a/src/BRS.Process/ProcessConfig.cs
+++ b/src/BRS.Process/ProcessConfig.cs
@@ -238,7 +238,7 @@ namespace BRS.Process
configs.AddRange(CameraConfigCollection);
configs.AddRange(PLCConfigCollection);
configs.AddRange(DeviceConfigs);
- //configs.AddRange(RobotConfigCollection);
+ configs.AddRange(KawasakiRobotConfigCollection);
return configs;
diff --git a/src/BRS.UI.Main/MenuForms/FrmOperation.resx b/src/BRS.UI.Main/MenuForms/FrmOperation.resx
index 015821a..8dc5a46 100644
--- a/src/BRS.UI.Main/MenuForms/FrmOperation.resx
+++ b/src/BRS.UI.Main/MenuForms/FrmOperation.resx
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm
- CgAAAk1TRnQBSQFMAgEBAgEAAegBAgHoAQIBGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CgAAAk1TRnQBSQFMAgEBAgEAAfgBAgH4AQIBGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -182,7 +182,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4
- CAAAAk1TRnQBSQFMAwEBAAHoAQIB6AECARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
+ CAAAAk1TRnQBSQFMAwEBAAH4AQIB+AECARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AWADAAEYAwABAQEAAQgGAAEJGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
diff --git a/src/XKRS.Device.TCPSever/TCPSeverForm.cs b/src/XKRS.Device.TCPSever/TCPSeverForm.cs
index d45067f..d45ed01 100644
--- a/src/XKRS.Device.TCPSever/TCPSeverForm.cs
+++ b/src/XKRS.Device.TCPSever/TCPSeverForm.cs
@@ -12,7 +12,7 @@ using System.Windows.Forms;
namespace XKRS.Device.TCPSever
{
- [Device("TCPSever", "TCP服务器", EnumHelper.DeviceAttributeType.RunCtrl)]
+ [Device("KawasakiRobot", "川崎Robot", EnumHelper.DeviceAttributeType.RunCtrl)]
public partial class TCPSeverForm : UserControl, IRunCtrl
{
#region 控件大小随窗体大小等比例缩放