You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
181 lines
6.3 KiB
C#
181 lines
6.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using Estsh.Client.Base;
|
|
using System.Configuration;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
namespace Estsh.Client.StepLibrary
|
|
{
|
|
public partial class KpsnTorque : StepBase
|
|
{
|
|
private StepLibraryAPP app = null;
|
|
private string _terminalID = string.Empty;
|
|
private string _sn = string.Empty;
|
|
private List<dynamic> _dtKeydataItems = null; //当前工位采集数据需求
|
|
|
|
public KpsnTorque()
|
|
{
|
|
InitializeComponent();
|
|
|
|
// 有用户界面的工步在初始化时需要设置为不可见
|
|
// 开始执行此工步后再置为可见
|
|
this.Visible = false;
|
|
}
|
|
|
|
public override bool Do()
|
|
{
|
|
try
|
|
{
|
|
ShowMessage(this, "green|正在采集扭矩信息...");
|
|
|
|
// 置为可见并加载到最前端
|
|
this.Visible = true;
|
|
this.BringToFront();
|
|
|
|
app = new StepLibraryAPP(httpClient);
|
|
|
|
// 从配置文件中加载工位编号
|
|
_terminalID = Context["terminal_id"].ToString();
|
|
_sn = Context["serial_number"].ToString();
|
|
|
|
////测试代码
|
|
//_terminalID = "100003";
|
|
//_sn = "1PY448HUG985791400003";
|
|
|
|
_dtKeydataItems = app.GetKeyData(_sn, _terminalID);
|
|
if (_dtKeydataItems == null || _dtKeydataItems.Count < 1)
|
|
{
|
|
ShowMessage(this, "red|扭矩信息配置错误");
|
|
|
|
// 工步完成(扭矩信息未配置,直接完成)
|
|
Complate(this, null);
|
|
}
|
|
if (_dtKeydataItems.Count > 5)
|
|
{
|
|
dgbKeyDatas.RowTemplate.Height = 30;
|
|
}
|
|
dgbKeyDatas.AutoGenerateColumns = false;
|
|
dgbKeyDatas.DataSource = _dtKeydataItems;
|
|
|
|
|
|
CollectKeydata.Enabled = true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// 记录日志
|
|
using (StreamWriter sw = new StreamWriter("Error_Log_" + DateTime.Now.ToString("yyyyMM") + ".txt", true))
|
|
{
|
|
sw.WriteLine(string.Format("{0} {1}", "["
|
|
+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
+ "] ", ex.ToString()));
|
|
sw.Flush();
|
|
sw.Close();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// 执行父类的 Do 方法并返回
|
|
return base.Do();
|
|
|
|
}
|
|
|
|
private void CollectKeydata_Tick(object sender, EventArgs e)
|
|
{
|
|
WriteKeydataFactValue();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将已获取的关键数据更新至程序数据网格中
|
|
/// </summary>
|
|
/// <param name="sn">条码</param>
|
|
/// <param name="terminalId">工位ID</param>
|
|
public void WriteKeydataFactValue()
|
|
{
|
|
try
|
|
{
|
|
//获取当前工位操作的扭矩信息
|
|
List<dynamic> dt = app.GetKeyDataValue(_sn, _terminalID);
|
|
if (dt == null || dt.Count < 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
bool updateKeyDataResult = false;
|
|
for (int i = 0; i < dt.Count; i++)
|
|
{
|
|
if (string.IsNullOrEmpty(_dtKeydataItems[i]["keydata_value"].ToString()))
|
|
{
|
|
Double maxValue = Convert.ToDouble(_dtKeydataItems[i]["max_value"].ToString());
|
|
Double minValue = Convert.ToDouble(_dtKeydataItems[i]["min_value"].ToString());
|
|
Double keyDataValue = Convert.ToDouble(dt[i]["keydata_value"].ToString());
|
|
|
|
if (keyDataValue > maxValue || keyDataValue < minValue)
|
|
{
|
|
updateKeyDataResult = app.updateKeyDataResult(_sn, keyDataValue.ToString());
|
|
dt.Remove(dt[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int i = 0; i < dt.Count; i++)
|
|
{
|
|
if (string.IsNullOrEmpty(_dtKeydataItems[i]["keydata_value"].ToString()))
|
|
{
|
|
Double maxValue = Convert.ToDouble(_dtKeydataItems[i]["max_value"].ToString());
|
|
Double minValue = Convert.ToDouble(_dtKeydataItems[i]["min_value"].ToString());
|
|
Double keyDataValue = Convert.ToDouble(dt[i]["keydata_value"].ToString());
|
|
|
|
_dtKeydataItems[i]["keydata_value"] = dt[i]["keydata_value"].ToString();
|
|
_dtKeydataItems[i]["keydata_angle"] = dt[i]["keydata_angle"].ToString();
|
|
_dtKeydataItems[i]["keydata_status"] = dt[i]["keydata_status"].ToString();
|
|
|
|
_dtKeydataItems[i]["keydata_result"] = dt[i]["keydata_result"].ToString();
|
|
_dtKeydataItems[i]["keydata_ymd"] = dt[i]["keydata_ymd"].ToString();
|
|
_dtKeydataItems[i]["keydata_hms"] = dt[i]["keydata_hms"].ToString();
|
|
|
|
dgbKeyDatas.DataSource = _dtKeydataItems;
|
|
dgbKeyDatas.Update();
|
|
|
|
dgbKeyDatas.Rows[i].DefaultCellStyle.BackColor = Color.Green;
|
|
}
|
|
}
|
|
|
|
if (dt.Count == _dtKeydataItems.Count)
|
|
{
|
|
CollectKeydata.Enabled = false;
|
|
|
|
// 工步完成
|
|
Complate(this, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// 记录日志
|
|
using (StreamWriter sw = new StreamWriter("Error_Log_" + DateTime.Now.ToString("yyyyMM") + ".txt", true))
|
|
{
|
|
sw.WriteLine(string.Format("{0} {1}", "["
|
|
+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
+ "]", ex.ToString()));
|
|
sw.Flush();
|
|
sw.Close();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void dgbKeyDatas_SelectionChanged(object sender, EventArgs e)
|
|
{
|
|
dgbKeyDatas.ClearSelection();
|
|
}
|
|
|
|
|
|
}
|
|
}
|