Commit 232d4f2f 张东亮

1

1 个父辈 5ad947ef
...@@ -92,6 +92,12 @@ ...@@ -92,6 +92,12 @@
<Compile Include="Form1.Designer.cs"> <Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="FrmLabelEdit.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmLabelEdit.Designer.cs">
<DependentUpon>FrmLabelEdit.cs</DependentUpon>
</Compile>
<Compile Include="IOControl.cs"> <Compile Include="IOControl.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
...@@ -146,6 +152,9 @@ ...@@ -146,6 +152,9 @@
<EmbeddedResource Include="Form1.resx"> <EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmLabelEdit.resx">
<DependentUpon>FrmLabelEdit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="IOControl.resx"> <EmbeddedResource Include="IOControl.resx">
<DependentUpon>IOControl.cs</DependentUpon> <DependentUpon>IOControl.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
......
...@@ -66,20 +66,6 @@ namespace AutoScanAndLabel ...@@ -66,20 +66,6 @@ namespace AutoScanAndLabel
启用调试模式ToolStripMenuItem.Text = !RobotManage.IsDebug ? crc.GetString("Res0101", "启用配置模式") : crc.GetString("Res0012", "停用配置模式"); 启用调试模式ToolStripMenuItem.Text = !RobotManage.IsDebug ? crc.GetString("Res0101", "启用配置模式") : crc.GetString("Res0012", "停用配置模式");
if (RobotManage.isRunning)
{
if (userpause)
{
btn_run.BackColor = Color.LightGreen;
btn_run.Text = crc.GetString("Res0014", "恢复运行");
}
else
{
btn_run.Text = crc.GetString("Res0013", "暂停运行");
btn_run.BackColor = Color.Yellow;
}
}
} }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ {
...@@ -153,7 +139,52 @@ namespace AutoScanAndLabel ...@@ -153,7 +139,52 @@ namespace AutoScanAndLabel
AddForm("Res0007", crc.GetString("Res0007", "日志"), lc); AddForm("Res0007", crc.GetString("Res0007", "日志"), lc);
RobotManage.Init(); RobotManage.Init();
RobotManage.UserPauseSet += RobotManage_UserPauseSet; RobotManage.UserPauseSet += RobotManage_UserPauseSet;
Common.LabelResult += Common_LabelResult;
OnlineStore.CodeResourceControl.RefreshLanguageEvent += CodeResourceControl_RefreshLanguageEvent;
} }
private void CodeResourceControl_RefreshLanguageEvent()
{
if(RobotManage.isRunning)
{
if (userpause)
{
(btn_run as Button).Text = crc.GetString("Res0014", "恢复运行");
}
else
{
(btn_run as Button).Text = crc.GetString("Res0013", "暂停运行");
}
}
}
private void Common_LabelResult(LabelResult args)
{
if (ConfigHelper.Config.Get("ShowLabelResultImg", true))
try
{
if (pictureBox1.InvokeRequired)
{
pictureBox1.Invoke(new Action(() =>
{
pictureBox1.Visible = true;
pictureBox1.Image = args.Bitmap;
}
));
}
else
{
pictureBox1.Visible = true;
pictureBox1.Image = args.Bitmap;
}
}
catch (Exception ex)
{
LogUtil.error("Common_LabelResult", ex);
}
}
private void RobotManage_UserPauseSet(object sender, bool e) private void RobotManage_UserPauseSet(object sender, bool e)
{ {
if (this.InvokeRequired) if (this.InvokeRequired)
...@@ -262,8 +293,6 @@ namespace AutoScanAndLabel ...@@ -262,8 +293,6 @@ namespace AutoScanAndLabel
(sender as ToolStripMenuItem).Text = !RobotManage.IsDebug ? crc.GetString("Res0101", "设备操作") : crc.GetString("Res0012", "停用配置模式"); (sender as ToolStripMenuItem).Text = !RobotManage.IsDebug ? crc.GetString("Res0101", "设备操作") : crc.GetString("Res0012", "停用配置模式");
//RobotManage.Init();
if (RobotManage.IsDebug) if (RobotManage.IsDebug)
{ {
RobotManage.Config = (Robot_Config)CSVConfigReader.LoadConfig(RobotManage.Config); RobotManage.Config = (Robot_Config)CSVConfigReader.LoadConfig(RobotManage.Config);
...@@ -284,6 +313,7 @@ namespace AutoScanAndLabel ...@@ -284,6 +313,7 @@ namespace AutoScanAndLabel
private void MainMachine_ProcessMsgEvent(List<Msg> msgs) private void MainMachine_ProcessMsgEvent(List<Msg> msgs)
{ {
var d = new setmsgdelegate(SetMsg); var d = new setmsgdelegate(SetMsg);
if (this.IsHandleCreated)
this.Invoke(d, msgs); this.Invoke(d, msgs);
} }
...@@ -570,5 +600,24 @@ namespace AutoScanAndLabel ...@@ -570,5 +600,24 @@ namespace AutoScanAndLabel
crc.CurrLanguage = Config.Get("Default_Language"); crc.CurrLanguage = Config.Get("Default_Language");
crc.LanguageChange(); crc.LanguageChange();
} }
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
var obj = sender as PictureBox;
if (obj.Dock == DockStyle.Fill)
obj.Dock = DockStyle.None;
else
{
obj.BringToFront();
obj.Dock = DockStyle.Fill;
}
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
var obj = sender as PictureBox;
if (obj.Dock == DockStyle.Fill)
obj.Dock = DockStyle.None;
}
} }
} }
\ No newline at end of file \ No newline at end of file
using CodeLibrary;
using DeviceLibrary;
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
using JsonHelper = OnlineStore.Common.JsonHelper;
namespace PrintLabel
{
public partial class FrmLabelEdit : Form
{
public FrmLabelEdit()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
loadCames();
}
void loadCames()
{
comboBox1.Items.AddRange(CodeManager.cameraNameList.ToArray());
if (comboBox1.Items.Count > 0)
comboBox1.SelectedIndex = 0;
}
string filename = "";
List<CodeInfo> codeinfo = null;
Dictionary<string, string> keyword;
private void btnAcquire_Click(object sender, EventArgs e)
{
Task.Factory.StartNew(delegate
{
(codeinfo, keyword, filename)= CodeManager.CameraScan(new List<string>() { comboBox1.SelectedItem.ToString() });
if (string.IsNullOrEmpty(filename)) return;
pictureBox1.Image = new Bitmap(filename);
});
}
LabelParam labelparam = new LabelParam();
private void btnCalculate_Click(object sender, EventArgs e)
{
//if (string.IsNullOrEmpty(filename)) return;
//labelparam.BitmapFilename = filename;
//labelparam.LabelContent = new LabelContent();
//labelparam.LabelContent.codeInfos = codeinfo;
//labelparam.LabelContent.PN = textBox2.Text;
//labelparam.TrayCenterInImg_X = int.Parse(txtX.Text);
//labelparam.TrayCenterInImg_Y = int.Parse(txtY.Text);
//labelparam.LabelInImgAngle = int.Parse(txtLabel_R_Angle_Diff.Text);
//labelparam.RelativeAngle = int.Parse(txtRelativeAngle.Text);
//(string resFile, int codeAngle, int labelAngle, int needRound) res = LabelManager.CalcLabelAngle(labelparam, true);
//lblCodePos.Text = $"二维码角度:{res.codeAngle}°";
//lblAngle.Text = $"旋转角度:{res.needRound}°";
//lblLabelAngle.Text = $"标签角度:{res.labelAngle}°";
//pictureBox2.Image = new Bitmap(res.resFile);
//textBox1.Text = JsonHelper.SerializeObject(codeinfo);
}
private void load(int side = 0)
{
if (side == 0)
{
//txtX.Text = ConfigAppSettings.GetValue(Setting_Init.TrayCenterInImg_X_CamA,"2600");
//txtY.Text = ConfigAppSettings.GetValue(Setting_Init.TrayCenterInImg_Y_CamA,"1700");
//txtLabel_R_Angle_Diff.Text = ConfigAppSettings.GetValue(Setting_Init.LabelInImgAngle_CamA,"190");
//txtRelativeAngle.Text = ConfigAppSettings.GetValue(Setting_Init.RelativeAngle_CamA,"150");
}
}
private void save(int side = 0)
{
//if (side == 0)
//{
// ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_X_CamA, txtX.Text);
// ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_Y_CamA, txtY.Text);
// ConfigAppSettings.SaveValue(Setting_Init.LabelInImgAngle_CamA, txtLabel_R_Angle_Diff.Text);
// ConfigAppSettings.SaveValue(Setting_Init.RelativeAngle_CamA, txtRelativeAngle.Text);
//}
//else if (side == 1)
//{
// ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_X_CamB, txtX.Text);
// ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_Y_CamB, txtY.Text);
// ConfigAppSettings.SaveValue(Setting_Init.LabelInImgAngle_CamB, txtLabel_R_Angle_Diff.Text);
// ConfigAppSettings.SaveValue(Setting_Init.RelativeAngle_CamB, txtRelativeAngle.Text);
//}
//else
// return;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
load(comboBox1.SelectedIndex);
}
private void button1_Click(object sender, EventArgs e)
{
save(comboBox1.SelectedIndex);
}
}
}
...@@ -6,6 +6,7 @@ using System.Data; ...@@ -6,6 +6,7 @@ using System.Data;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
...@@ -36,6 +37,8 @@ namespace AutoScanAndLabel ...@@ -36,6 +37,8 @@ namespace AutoScanAndLabel
public int showCount = 30; public int showCount = 30;
private void ShowLogPro(string msg, Color color) private void ShowLogPro(string msg, Color color)
{ {
if(Monitor.TryEnter(logBox))
{
try try
{ {
if (logList.Count >= showCount) if (logList.Count >= showCount)
...@@ -45,7 +48,7 @@ namespace AutoScanAndLabel ...@@ -45,7 +48,7 @@ namespace AutoScanAndLabel
DateTime now = DateTime.Now; DateTime now = DateTime.Now;
logList.Add(now.ToLongTimeString() + " " + msg + Environment.NewLine); logList.Add(now.ToLongTimeString() + " " + msg + Environment.NewLine);
logBox.Text= string.Join("", logList); logBox.Text = string.Join("", logList);
logBox.Select(logBox.Text.Length, 0); logBox.Select(logBox.Text.Length, 0);
logBox.ScrollToCaret(); logBox.ScrollToCaret();
...@@ -54,6 +57,12 @@ namespace AutoScanAndLabel ...@@ -54,6 +57,12 @@ namespace AutoScanAndLabel
{ {
LogUtil.error("出错:" + ex.ToString()); LogUtil.error("出错:" + ex.ToString());
} }
finally
{
Monitor.Exit(logBox);
}
}
} }
private void LogControl_Load(object sender, EventArgs e) private void LogControl_Load(object sender, EventArgs e)
......
...@@ -75,7 +75,7 @@ namespace AutoScanAndLabel ...@@ -75,7 +75,7 @@ namespace AutoScanAndLabel
private void btn_labeledit_Click(object sender, EventArgs e) private void btn_labeledit_Click(object sender, EventArgs e)
{ {
var keys = File.ReadAllLines("NeoScan\\config\\MacroKey.txt"); var keys = File.ReadAllLines("NeoScan\\Config\\MacroKey.txt");
//RobotManage.PrintBean.EditLabel(); //RobotManage.PrintBean.EditLabel();
PrintLabel.FrmLabel frmLabel = new PrintLabel.FrmLabel(); PrintLabel.FrmLabel frmLabel = new PrintLabel.FrmLabel();
......
...@@ -15,6 +15,8 @@ namespace DeviceLibrary ...@@ -15,6 +15,8 @@ namespace DeviceLibrary
{ {
public class Common public class Common
{ {
public delegate void LabelResultEventHandler(LabelResult args);
public static event LabelResultEventHandler LabelResult;
/**获取角度*/ /**获取角度*/
// 求3点形成的夹角 // 求3点形成的夹角
public static float getAngle2(Point pt1, Point pt2, Point pt0) public static float getAngle2(Point pt1, Point pt2, Point pt0)
...@@ -87,7 +89,8 @@ namespace DeviceLibrary ...@@ -87,7 +89,8 @@ namespace DeviceLibrary
/// <param name="angle">角度</param> /// <param name="angle">角度</param>
/// <param name="distance">距离</param> /// <param name="distance">距离</param>
/// <returns></returns> /// <returns></returns>
public static Point PointWithAngle(Point p1, double angle, double distance) { public static Point PointWithAngle(Point p1, double angle, double distance)
{
var x2 = p1.X + distance * Math.Cos(angle / 180 * Math.PI); var x2 = p1.X + distance * Math.Cos(angle / 180 * Math.PI);
var y2 = p1.Y + distance * Math.Sin(angle / 180 * Math.PI); var y2 = p1.Y + distance * Math.Sin(angle / 180 * Math.PI);
return new Point((int)x2, (int)y2); return new Point((int)x2, (int)y2);
...@@ -100,12 +103,15 @@ namespace DeviceLibrary ...@@ -100,12 +103,15 @@ namespace DeviceLibrary
/// <param name="Label_R_Offset">贴标臂偏移</param> /// <param name="Label_R_Offset">贴标臂偏移</param>
/// <param name="labelAngle">贴标角度</param> /// <param name="labelAngle">贴标角度</param>
/// <returns></returns> /// <returns></returns>
public static Point CalcLabelPoint(LabelParam labelParam, Point org,int Label_R_Offset, int Label_R_Angle_Diff, out int labelAngle) { public static Point CalcLabelPoint(LabelParam labelParam, Point org, int Label_R_Offset, int Label_R_Angle_Diff, out int labelAngle)
{
SolidBrush blue = new SolidBrush(Color.BlueViolet); //标签位置
SolidBrush blue = new SolidBrush(Color.DarkBlue);
//料盘中心点
SolidBrush red = new SolidBrush(Color.Red); SolidBrush red = new SolidBrush(Color.Red);
SolidBrush tmpPlace = new SolidBrush(Color.BlueViolet);
//贴标位置
SolidBrush yeelow = new SolidBrush(Color.Yellow); SolidBrush yeelow = new SolidBrush(Color.Yellow);
SolidBrush AliceBlue = new SolidBrush(Color.AliceBlue);
Font font = new Font(FontFamily.GenericSansSerif, 60); Font font = new Font(FontFamily.GenericSansSerif, 60);
Pen Greenpen = new Pen(Color.Green, 10); Pen Greenpen = new Pen(Color.Green, 10);
...@@ -114,7 +120,8 @@ namespace DeviceLibrary ...@@ -114,7 +120,8 @@ namespace DeviceLibrary
{ {
srcbitmap = new Bitmap(labelParam.bitmapfilename); srcbitmap = new Bitmap(labelParam.bitmapfilename);
} }
else { else
{
srcbitmap = new Bitmap(3648, 3648); srcbitmap = new Bitmap(3648, 3648);
} }
...@@ -126,30 +133,23 @@ namespace DeviceLibrary ...@@ -126,30 +133,23 @@ namespace DeviceLibrary
int srcbitmap_Width = srcbitmap.Width; int srcbitmap_Width = srcbitmap.Width;
srcbitmap.Dispose(); srcbitmap.Dispose();
//bitmap.RotateFlip(RotateFlipType.Rotate270FlipNone);//格力 Size pointsize = new Size(60, 60);
//bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);
Size pointsize = new Size(30, 30);
int widthOffset = 0; int widthOffset = 0;
//Point Right_Batch_Point = new Point(RobotManage.Config.Right_Batch_X, RobotManage.Config.Right_Batch_Y);
Point Right_Batch_Point = org; Point Right_Batch_Point = org;
g.FillEllipse(blue, new Rectangle(Right_Batch_Point, pointsize)); g.FillEllipse(red, new Rectangle(Right_Batch_Point, pointsize));
List<int> angles = new List<int>(); List<int> angles = new List<int>();
labelParam.codeInfos.ForEach((c) => { List<int> widthOffsets = new List<int>();
labelParam.codeInfos.ForEach((c) =>
//var x = c.Y; {
//var y = srcbitmap_Width - c.X;
//c.X = x;
//c.Y = y;
if (true) if (true)
{ {
Point op = new Point(c.X, c.Y); Point op = new Point(c.X, c.Y);
g.FillEllipse(blue, new Rectangle(op, pointsize)); g.FillEllipse(blue, new Rectangle(op, pointsize));
var a = (int)getAngle(Right_Batch_Point, op); var a = (int)getAngle(Right_Batch_Point, op);
a = a < 0 ? 360 + a : a; a = a < 0 ? 360 + a : a;
//g.FillEllipse(red, new Rectangle(PointRotate(org, op, a), pointsize));
angles.Add(a); angles.Add(a);
widthOffset = (int)Common.distance(org, op); widthOffset = (int)Common.distance(org, op);
widthOffsets.Add(widthOffset);
LogUtil.info($"angles:{a}, widthOffset:{widthOffset}"); LogUtil.info($"angles:{a}, widthOffset:{widthOffset}");
} }
...@@ -163,20 +163,23 @@ namespace DeviceLibrary ...@@ -163,20 +163,23 @@ namespace DeviceLibrary
if (labelParam.PlateW == 15) if (labelParam.PlateW == 15)
{ {
labelAngle = angles[0] + 120; labelAngle = angles[0] + 120;
}else if (labelParam.PlateW == 13) }
else if (labelParam.PlateW == 13)
{ {
labelAngle = angles[0] + 180; labelAngle = angles[0] + 180;
} }
else else
{ {
//labelAngle = bigangles + biglen / 2; labelAngle = angles[0] + 180;
labelAngle = angles[0]+180;
} }
widthOffset = widthOffsets.Max();
labelAngle = labelAngle > 360 ? labelAngle- 360 : labelAngle; LogUtil.info($"use widthOffset:{widthOffset}");
labelAngle = labelAngle > 360 ? labelAngle- 360 : labelAngle; labelAngle = labelAngle > 360 ? labelAngle - 360 : labelAngle;
labelAngle = labelAngle > 360 ? labelAngle - 360 : labelAngle;
LogUtil.info($"labelAngle1:{labelAngle}"); LogUtil.info($"labelAngle1:{labelAngle}");
var p1 = PointWithAngle(org, labelAngle, widthOffset);
g.FillEllipse(tmpPlace, new Rectangle(p1, pointsize));
//匹配照片角度与贴标旋转轴的角度差 //匹配照片角度与贴标旋转轴的角度差
labelAngle += 83; labelAngle += 83;
LogUtil.info($"labelAngle2:{labelAngle}"); LogUtil.info($"labelAngle2:{labelAngle}");
...@@ -187,7 +190,7 @@ namespace DeviceLibrary ...@@ -187,7 +190,7 @@ namespace DeviceLibrary
//贴标偏移 //贴标偏移
var p3 = PointWithAngle(p2, labelAngle, Label_R_Offset); var p3 = PointWithAngle(p2, labelAngle, Label_R_Offset);
labelAngle -= 83;
labelAngle = labelAngle > 360 ? labelAngle - 360 : labelAngle; labelAngle = labelAngle > 360 ? labelAngle - 360 : labelAngle;
labelAngle = 360 - labelAngle; labelAngle = 360 - labelAngle;
LogUtil.info($"labelAngle4:{labelAngle}"); LogUtil.info($"labelAngle4:{labelAngle}");
...@@ -195,13 +198,15 @@ namespace DeviceLibrary ...@@ -195,13 +198,15 @@ namespace DeviceLibrary
labelAngle += Label_R_Angle_Diff; labelAngle += Label_R_Angle_Diff;
labelAngle = labelAngle > 360 ? labelAngle - 360 : labelAngle; labelAngle = labelAngle > 360 ? labelAngle - 360 : labelAngle;
LogUtil.info($"labelAngle5:{labelAngle}"); LogUtil.info($"labelAngle5:{labelAngle}");
g.FillEllipse(red, new Rectangle(p3, pointsize)); g.FillEllipse(yeelow, new Rectangle(p3, pointsize));
g.Save(); g.Save();
g.Dispose(); g.Dispose();
string dir = "/image/labeldebug/"; string dir = "/image/labeldebug/";
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir); Directory.CreateDirectory(dir);
string filepath = dir + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".jpg";
bitmap.Save(dir+DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") +".jpg",ImageFormat.Jpeg); bitmap.Save(filepath, ImageFormat.Jpeg);
LabelResult?.Invoke(new LabelResult() { Bitmap = (Bitmap)bitmap.Clone() });
bitmap.Dispose(); bitmap.Dispose();
return p3; return p3;
...@@ -209,11 +214,13 @@ namespace DeviceLibrary ...@@ -209,11 +214,13 @@ namespace DeviceLibrary
static IdWorker id = new IdWorker(1, 1); static IdWorker id = new IdWorker(1, 1);
static string[] pnreglist; static string[] pnreglist;
static string[] qtyreglist; static string[] qtyreglist;
public static void LoadMatchList() { public static void LoadMatchList()
{
pnreglist = File.ReadAllLines("config\\pn.list").ToList().FindAll((s) => { return !string.IsNullOrWhiteSpace(s); }).ToArray(); pnreglist = File.ReadAllLines("config\\pn.list").ToList().FindAll((s) => { return !string.IsNullOrWhiteSpace(s); }).ToArray();
qtyreglist = File.ReadAllLines("config\\qty.list").ToList().FindAll((s) => { return !string.IsNullOrWhiteSpace(s); }).ToArray(); qtyreglist = File.ReadAllLines("config\\qty.list").ToList().FindAll((s) => { return !string.IsNullOrWhiteSpace(s); }).ToArray();
} }
public static bool codeProcess(LabelParam labelParam,out string debugmsg) { public static bool codeProcess(LabelParam labelParam, out string debugmsg)
{
debugmsg = ""; debugmsg = "";
return labelParam.codeInfos.Count > 0; return labelParam.codeInfos.Count > 0;
if (pnreglist == null) if (pnreglist == null)
...@@ -232,7 +239,8 @@ namespace DeviceLibrary ...@@ -232,7 +239,8 @@ namespace DeviceLibrary
foreach (var qtyreg in pnreglist) foreach (var qtyreg in pnreglist)
{ {
var partrules = qtyreg.Split('%'); var partrules = qtyreg.Split('%');
if (partrules.Length == 2) { if (partrules.Length == 2)
{
if (ci.CodeType != partrules[1]) if (ci.CodeType != partrules[1])
break; break;
} }
...@@ -286,7 +294,7 @@ namespace DeviceLibrary ...@@ -286,7 +294,7 @@ namespace DeviceLibrary
//labelParam.codeInfos = newcodeInfos; //labelParam.codeInfos = newcodeInfos;
labelParam.FC = "985022"; labelParam.FC = "985022";
labelParam.RI = "AL"+DateTime.Now.ToString("yyMMddHHmmssf"); labelParam.RI = "AL" + DateTime.Now.ToString("yyMMddHHmmssf");
labelParam.Batch = DateTime.Now.ToString("MMdd"); labelParam.Batch = DateTime.Now.ToString("MMdd");
labelParam.WareCode = labelParam.RI; labelParam.WareCode = labelParam.RI;
LogUtil.info($"匹配成功:{labelParam.PN},{labelParam.QTY},{labelParam.RI}"); LogUtil.info($"匹配成功:{labelParam.PN},{labelParam.QTY},{labelParam.RI}");
...@@ -306,6 +314,11 @@ namespace DeviceLibrary ...@@ -306,6 +314,11 @@ namespace DeviceLibrary
return dstobject; return dstobject;
} }
} }
public class LabelResult : EventArgs
{
public string ImgPath { get; set; }
public Bitmap Bitmap { get; set; }
}
public class Msg public class Msg
{ {
public static List<Msg> msg = new List<Msg>(); public static List<Msg> msg = new List<Msg>();
...@@ -313,8 +326,10 @@ namespace DeviceLibrary ...@@ -313,8 +326,10 @@ namespace DeviceLibrary
public MsgLevel msgLevel; public MsgLevel msgLevel;
public DateTime datetime; public DateTime datetime;
public static List<Msg> get() { public static List<Msg> get()
if (_setlogones) { {
if (_setlogones)
{
_setlogones = false; _setlogones = false;
foreach (var m in msg) foreach (var m in msg)
LogUtil.info(m.msgtxt); LogUtil.info(m.msgtxt);
...@@ -324,7 +339,7 @@ namespace DeviceLibrary ...@@ -324,7 +339,7 @@ namespace DeviceLibrary
} }
public static void add(string m, MsgLevel ml) public static void add(string m, MsgLevel ml)
{ {
msg.Add(new Msg { msgtxt = m, msgLevel = ml, datetime=DateTime.Now }); msg.Add(new Msg { msgtxt = m, msgLevel = ml, datetime = DateTime.Now });
} }
static bool _setlogones = false; static bool _setlogones = false;
internal static void setlogones() internal static void setlogones()
...@@ -337,7 +352,8 @@ namespace DeviceLibrary ...@@ -337,7 +352,8 @@ namespace DeviceLibrary
msg.Clear(); msg.Clear();
} }
} }
public enum MsgLevel { public enum MsgLevel
{
warning, warning,
info info
......
...@@ -118,10 +118,12 @@ namespace DeviceLibrary ...@@ -118,10 +118,12 @@ namespace DeviceLibrary
//计算像素点位与中心点的差 //计算像素点位与中心点的差
Label_p3 = new Point(p.X - Right_Batch_Point.X, p.Y - Right_Batch_Point.Y); Label_p3 = new Point(p.X - Right_Batch_Point.X, p.Y - Right_Batch_Point.Y);
//计算像素*脉冲像素比得到脉冲值+中心点基准脉冲 //计算像素*脉冲像素比得到脉冲值+中心点基准脉冲
Label_p3.X = (int)(Label_p3.X * Config.Cam_Pixel_X_Ratio) + Config.Label_X_P3; int xDiff = (int)(Label_p3.X * Config.Cam_Pixel_X_Ratio);
Label_p3.Y = (int)(Label_p3.Y * Config.Cam_Pixel_Y_Ratio) + Config.Label_Y_P3; int yDiff = (int)(Label_p3.Y * Config.Cam_Pixel_Y_Ratio);
Label_p3.X = xDiff + Config.Label_X_P3;
Label_p3.Y = yDiff + Config.Label_Y_P3;
LabelMoveInfo.log($"计算贴标像素点位为{p},轴点位为{Label_p3},角度{labelAngle},R轴{labelAxisPos},盘宽{LabelMoveInfo.MoveParam.PlateW}"); LabelMoveInfo.log($"计算贴标像素点位为{p},轴点位为{Label_p3},X脉冲差值={xDiff},Y脉冲差值={yDiff},角度{labelAngle},R轴{labelAxisPos},盘宽{LabelMoveInfo.MoveParam.PlateW}");
LabelMoveInfo.NextMoveStep(MoveStep.Lbl10_1); LabelMoveInfo.NextMoveStep(MoveStep.Lbl10_1);
Label_X_Axis.AbsMove(LabelMoveInfo, Config.Label_X_P1, Config.Label_X_P1_speed); Label_X_Axis.AbsMove(LabelMoveInfo, Config.Label_X_P1, Config.Label_X_P1_speed);
Label_R_Axis.AbsMove(LabelMoveInfo, labelAxisPos, Config.Label_R_P2_speed); Label_R_Axis.AbsMove(LabelMoveInfo, labelAxisPos, Config.Label_R_P2_speed);
......
...@@ -240,26 +240,27 @@ namespace DeviceLibrary ...@@ -240,26 +240,27 @@ namespace DeviceLibrary
ResetMoveInfo.log("正在回原"); ResetMoveInfo.log("正在回原");
SafeReleaseLeftShelf = false; SafeReleaseLeftShelf = false;
Label_Z_Axis.HomeMove(ResetMoveInfo); Label_Z_Axis.HomeMove(ResetMoveInfo);
Left_Batch_Axis.HomeMove(ResetMoveInfo);
Right_Batch_Axis.HomeMove(ResetMoveInfo);
clampTool.HomeReset(); clampTool.HomeReset();
break; break;
case MoveStep.H02_HomeReset: case MoveStep.H02_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H03_HomeReset); ResetMoveInfo.NextMoveStep(MoveStep.H03_HomeReset);
ResetMoveInfo.log("正在回原");
Label_Z_Axis.AbsMove(ResetMoveInfo, Config.Label_Z_P1, Config.Label_Z_P1_speed);
Left_Batch_Axis.HomeMove(ResetMoveInfo);
Right_Batch_Axis.HomeMove(ResetMoveInfo);
Label_R_Axis.HomeMove(ResetMoveInfo); Label_R_Axis.HomeMove(ResetMoveInfo);
Label_X_Axis.HomeMove(ResetMoveInfo);
Label_Y_Axis.HomeMove(ResetMoveInfo);
ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
break; break;
case MoveStep.H03_HomeReset: case MoveStep.H03_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H04_HomeReset); ResetMoveInfo.NextMoveStep(MoveStep.H04_HomeReset);
ResetMoveInfo.log("正在回原"); ResetMoveInfo.log("正在回原");
Label_X_Axis.HomeMove(ResetMoveInfo); Label_R_Axis.AbsMove(ResetMoveInfo, Config.Label_R_P1, Config.Label_R_P1_speed);
Label_Y_Axis.HomeMove(ResetMoveInfo);
Label_Z_Axis.AbsMove(ResetMoveInfo, Config.Label_Z_P1, Config.Label_Z_P1_speed);
break; break;
case MoveStep.H04_HomeReset: case MoveStep.H04_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H05_HomeReset); ResetMoveInfo.NextMoveStep(MoveStep.H05_HomeReset);
ResetMoveInfo.log("正在回原"); ResetMoveInfo.log("正在回原");
Label_R_Axis.AbsMove(ResetMoveInfo, Config.Label_R_P1, Config.Label_R_P1_speed);
Take_UpDown_Axis.HomeMove(ResetMoveInfo); Take_UpDown_Axis.HomeMove(ResetMoveInfo);
ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
break; break;
...@@ -268,20 +269,19 @@ namespace DeviceLibrary ...@@ -268,20 +269,19 @@ namespace DeviceLibrary
Take_Middle_Axis.HomeMove(ResetMoveInfo); Take_Middle_Axis.HomeMove(ResetMoveInfo);
Label_X_Axis.AbsMove(ResetMoveInfo, Config.Label_X_P1, Config.Label_X_P1_speed); Label_X_Axis.AbsMove(ResetMoveInfo, Config.Label_X_P1, Config.Label_X_P1_speed);
Label_Y_Axis.AbsMove(ResetMoveInfo, Config.Label_Y_P1, Config.Label_Y_P1_speed); Label_Y_Axis.AbsMove(ResetMoveInfo, Config.Label_Y_P1, Config.Label_Y_P1_speed);
Right_Batch_Axis.AbsMove(ResetMoveInfo, Config.Right_Batch_P1, Config.Right_Batch_P1_speed);
Left_Batch_Axis.AbsMove(ResetMoveInfo, Config.Left_Batch_P1, Config.Left_Batch_P1_speed);
ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
break; break;
case MoveStep.H06_HomeReset: case MoveStep.H06_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H07_HomeReset); ResetMoveInfo.NextMoveStep(MoveStep.H07_HomeReset);
ResetMoveInfo.log("正在回原"); ResetMoveInfo.log("正在回原");
Take_UpDown_Axis.AbsMove(ResetMoveInfo, Config.Take_UpDown_P1, Config.Take_UpDown_P1_speed); Take_UpDown_Axis.AbsMove(ResetMoveInfo, Config.Take_UpDown_P1, Config.Take_UpDown_P1_speed);
Right_Batch_Axis.AbsMove(ResetMoveInfo, Config.Right_Batch_P1, Config.Right_Batch_P1_speed);
Left_Batch_Axis.AbsMove(ResetMoveInfo, Config.Left_Batch_P1, Config.Left_Batch_P1_speed);
ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
break; break;
case MoveStep.H07_HomeReset: case MoveStep.H07_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H08_HomeReset); ResetMoveInfo.NextMoveStep(MoveStep.H08_HomeReset);
Take_Middle_Axis.AbsMove(ResetMoveInfo, Config.Take_Middle_P1, Config.Take_Middle_P1_speed); Take_Middle_Axis.AbsMove(ResetMoveInfo, Config.Take_Middle_P1, Config.Take_Middle_P1_speed);
ResetMoveInfo.log("正在回原 进出料口滚筒正转10秒"); ResetMoveInfo.log("正在回原 进出料口滚筒正转5秒");
IOMove(IO_Type.LeftMoto_Reverse, IO_VALUE.LOW); IOMove(IO_Type.LeftMoto_Reverse, IO_VALUE.LOW);
IOMove(IO_Type.RightMoto_Reverse, IO_VALUE.LOW); IOMove(IO_Type.RightMoto_Reverse, IO_VALUE.LOW);
IOMove(IO_Type.LeftMoto_Run, IO_VALUE.HIGH); IOMove(IO_Type.LeftMoto_Run, IO_VALUE.HIGH);
......
...@@ -109,13 +109,12 @@ namespace DeviceLibrary ...@@ -109,13 +109,12 @@ namespace DeviceLibrary
mainMachine?.ServerCM?.StopConnectServer(); mainMachine?.ServerCM?.StopConnectServer();
mainMachine?.Stop(); mainMachine?.Stop();
mainMachine.UserPause = false; mainMachine.UserPause = false;
//IOManager.CloseAllConnection();
//electricGripper.ClosePort();
isRunning = false; isRunning = false;
} }
public static void ShutDown() public static void ShutDown()
{ {
LogUtil.info("开始关闭系统."); LogUtil.info("开始关闭系统.");
IOManager.CloseAllDO();
IOManager.CloseAllConnection(); IOManager.CloseAllConnection();
clampTool.Close(); clampTool.Close();
} }
......
...@@ -36,7 +36,10 @@ namespace DeviceLibrary ...@@ -36,7 +36,10 @@ namespace DeviceLibrary
electricGripper.ClosePort(); electricGripper.ClosePort();
return true; return true;
} }
return true; else
{
return SuckerRelease();
}
} }
public void HomeReset() public void HomeReset()
{ {
...@@ -44,6 +47,10 @@ namespace DeviceLibrary ...@@ -44,6 +47,10 @@ namespace DeviceLibrary
{ {
electricGripper.HomeReset(); electricGripper.HomeReset();
} }
else
{
SuckerRelease();
}
} }
/// <summary> /// <summary>
/// 释放 /// 释放
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!