init: CATL电池线SCADA首次入库
This commit is contained in:
219
DT_SCADA/BusinessCode/MIS_Funtion.cs
Normal file
219
DT_SCADA/BusinessCode/MIS_Funtion.cs
Normal file
@@ -0,0 +1,219 @@
|
||||
|
||||
using ABB.Robotics.Controllers.IOSystemDomain;
|
||||
using BasicData;
|
||||
using DeviceDriver_BasicData;
|
||||
using Newtonsoft.Json;
|
||||
using OpcBasic;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Web;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 处理MIS逻辑
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
private void MIS_Funtion(object e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var msgEvent = (CustomeEvetnArgs)e;
|
||||
if (msgEvent.TagValue == null) return;
|
||||
|
||||
var tagID = msgEvent.TagID.ToString();
|
||||
var opName = msgEvent.OpName.ToString();
|
||||
var tagTypeCodeID = (int)msgEvent.TagTypeCodeID;
|
||||
var tagTypeID = (EnumTagTypeID)msgEvent.TagTypeID;
|
||||
var TagTypeCodeID = (EnumTagTypeCodeID)tagTypeCodeID;
|
||||
var alarmMsg = msgEvent.TagName.ToString();
|
||||
var tagValue = "";
|
||||
switch (tagTypeID)
|
||||
{
|
||||
case EnumTagTypeID.BOOL:
|
||||
tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString();
|
||||
break;
|
||||
default:
|
||||
tagValue = msgEvent.TagValue.ToString();
|
||||
break;
|
||||
}
|
||||
|
||||
switch (tagTypeCodeID)
|
||||
{
|
||||
case 14:
|
||||
MesWorkForm.WritePLC(15, opName, tagValue);
|
||||
break;
|
||||
case 19:
|
||||
if (tagValue == "1")
|
||||
{
|
||||
DataTable dt_WWW = BuildDataTables_WWW();
|
||||
SaveQualityData(opName, tagValue, tagID, out dt_WWW);
|
||||
string qty = JsonConvert.SerializeObject(dt_WWW);
|
||||
string SendMessage = "MES|ShowTimelyQuality_Resources|" + opName + "|" + qty;
|
||||
SendMsg(opName, MesServer_SendProtocol_Plc, SendMessage);
|
||||
}
|
||||
else
|
||||
{
|
||||
MesWorkForm.WritePLC(20, opName, "0");
|
||||
}
|
||||
break;
|
||||
// 扫码完成,比对结果
|
||||
case 65:
|
||||
if (tagValue == "1")
|
||||
{
|
||||
GetQualityDataCount(opName);
|
||||
}
|
||||
else
|
||||
{
|
||||
MesWorkForm.WritePLC(66, opName, 0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{ }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static void SaveQualityData(string opName, string tagValue, string tagID, out DataTable dt_WWW, bool isCheck = false)
|
||||
{
|
||||
int id_tagCF;
|
||||
int qualityMask = 0;
|
||||
int engineTypeID = 0;
|
||||
string engineID = "";
|
||||
string engineType = "";
|
||||
string partPallet = "";
|
||||
string orderFormPlc = "";
|
||||
DataTable BasicDataTagValueUpDown = new DataTable();
|
||||
DataTable BasicDataTagValue = new DataTable();
|
||||
dt_WWW = BuildDataTables_WWW();
|
||||
Hashtable valueList;
|
||||
try
|
||||
{
|
||||
|
||||
// 加注结果
|
||||
//dt_WWW.Rows.Add(GetQualityData(opName, 63, isOk).ItemArray);
|
||||
string isOk = MesWorkForm.ReadPLC(63, opName).ToString();
|
||||
engineID = MesWorkForm.ReadPLC(64, opName).ToString();
|
||||
engineID = engineID.Replace(" ", "");
|
||||
// 真空值
|
||||
dt_WWW.Rows.Add(GetQualityData(opName, 60, isOk).ItemArray);
|
||||
// 加注量
|
||||
dt_WWW.Rows.Add(GetQualityData(opName, 61, isOk).ItemArray);
|
||||
// 节拍时间
|
||||
dt_WWW.Rows.Add(GetQualityData(opName, 62, isOk).ItemArray);
|
||||
|
||||
|
||||
DateTime lastupdatetime = DateTime.Now;
|
||||
//保存质量数
|
||||
B_DB_Opera.BaseData_tagTable_QualityData_B5A_IndexInsert(engineID, tagID, engineType, engineTypeID, opName, qualityMask, partPallet, out id_tagCF);
|
||||
B_DB_Opera.BaseData_tagTable_QualityData_B5A_Insert(engineID, id_tagCF, opName, dt_WWW, isCheck);
|
||||
//回写保存完成数据
|
||||
WritePLC(20, opName, true);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
WritePLC(20, opName, true);
|
||||
}
|
||||
}
|
||||
|
||||
static public DataTable BuildDataTables_WWW()
|
||||
{
|
||||
DataTable table;
|
||||
DataColumnCollection columns;
|
||||
table = new DataTable();
|
||||
columns = table.Columns;
|
||||
table.Columns.Add("TagID", typeof(System.String));
|
||||
table.Columns.Add("TagValue", typeof(System.String));
|
||||
table.Columns.Add("IsGoodBad", typeof(System.Int32));
|
||||
table.Columns.Add("测量位置", typeof(System.String));
|
||||
table.Columns.Add("测量项目", typeof(System.String));
|
||||
table.Columns.Add("工位号", typeof(System.String));
|
||||
table.Columns.Add("理论值", typeof(System.String));
|
||||
table.Columns.Add("上限值", typeof(System.String));
|
||||
table.Columns.Add("下限值", typeof(System.String));
|
||||
table.Columns.Add("测量单位", typeof(System.String));
|
||||
table.Columns.Add("列位置", typeof(System.Int32));
|
||||
table.Columns.Add("变量排序", typeof(System.Int32));
|
||||
|
||||
return table;
|
||||
}
|
||||
public static DataRow GetQualityData(string opName, int tagTypeCode, string isOk)
|
||||
{
|
||||
string TagValueUp = "";
|
||||
string TagValueDown = "";
|
||||
DataRow dr = BuildDataTables_WWW().NewRow();
|
||||
var qualityData = (TagFormat)MesWorkForm.ReadPLC_TF(tagTypeCode, opName);
|
||||
if(tagTypeCode == 61)
|
||||
{
|
||||
TagValueUp = MesWorkForm.ReadPLC(67, opName).ToString();
|
||||
TagValueDown = MesWorkForm.ReadPLC(68, opName).ToString();
|
||||
}
|
||||
if (tagTypeCode == 60)
|
||||
{
|
||||
TagValueUp = MesWorkForm.ReadPLC(69, opName).ToString();
|
||||
}
|
||||
dr["TagID"] = qualityData.TagID;
|
||||
dr["测量位置"] = qualityData.ShaftID;
|
||||
dr["测量项目"] = qualityData.ItemName;
|
||||
dr["测量单位"] = qualityData.Unit;
|
||||
dr["上限值"] = TagValueUp;
|
||||
dr["下限值"] = TagValueDown;
|
||||
dr["理论值"] = qualityData.TagValeNormal;
|
||||
dr["工位号"] = opName;
|
||||
dr["列位置"] = qualityData.TagOrderBy;
|
||||
dr["变量排序"] = qualityData.TagItemOrderBy;
|
||||
dr["IsGoodBad"] = isOk;
|
||||
dr["TagValue"] = Convert.ToString(qualityData.TagValue);
|
||||
return dr;
|
||||
}
|
||||
|
||||
public static void GetQualityDataCount(string opName)
|
||||
{
|
||||
string engineID = "";
|
||||
engineID = MesWorkForm.ReadPLC(64, opName).ToString();
|
||||
if(engineID == null || engineID == "")
|
||||
{
|
||||
WritePLC(66, opName, 2);
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
DataTable dt = null;
|
||||
B_DB_Opera.GetQualityDataCount(engineID, opName, out dt);
|
||||
if (dt != null && dt.Rows.Count > 0)
|
||||
{
|
||||
WritePLC(66, opName, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
WritePLC(66, opName, 1);
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
WritePLC(66, opName, 2);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user