Files

140 lines
5.0 KiB
C#

using MesToMs;
using MesWork;
using SlMesDbIterface;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DC_A95
{
/// <summary>
/// 钩子函数
/// </summary>
public class Hanger
{
/// <summary>
/// 加载界面显示的信号值的初始值
/// </summary>
public static void Load_Station_PageShowSignal()
{
foreach (DictionaryEntry item in MesWorkForm.ht_Station_Label)
{
var stationName = item.Key.ToString();
MesWorkForm.ht_Signal__Station_Auto.Add(stationName, false);
MesWorkForm.ht_Signal__Station_Running.Add(stationName, false);
MesWorkForm.ht_Signal__Station_Manual.Add(stationName, false);
MesWorkForm.ht_Signal__Station_Alarm.Add(stationName, false);
if (!MesWorkForm.ht_Signal__Station_OffLine.ContainsKey(stationName))
{
MesWorkForm.ht_Signal__Station_OffLine.Add(stationName, false);
}
}
}
public static void Load_Table()
{
//查询出“全部原始基本数据列表”
var drs = MesWork.PlcLinkForm.dt_BasicData.Select($"是否启用 = 1 and 变量类型代码=101 or 变量类型代码 = 102 or 变量类型代码 = 105 and 监控属性代码 = '{DataLinkMesWork.ApplicationConfig.MES_Code.ToString()}'");
if (drs.Length > 1)
{
MesWork_QC.BasicDataTagValue = MesWork.PlcLinkForm.dt_BasicData.Select($"是否启用 = 1 and 变量类型代码=101 or 变量类型代码 = 102 or 变量类型代码 = 105 and 监控属性代码 = '{DataLinkMesWork.ApplicationConfig.MES_Code.ToString()}'").CopyToDataTable<DataRow>();
if (MesWork_QC.BasicDataTagValue.Columns.Contains("上限值"))
{
MesWork_QC.BasicDataTagValue.Columns["上限值"].ColumnName = "值上限";
}
if (MesWork_QC.BasicDataTagValue.Columns.Contains("下限值"))
{
MesWork_QC.BasicDataTagValue.Columns["下限值"].ColumnName = "值下限";
}
}
// BasicDataTagValue = MesWork.PlcLinkForm.dt_BasicData.Select($"是否启用 = 1 and 监控属性代码 = '{DataLinkMesWork.ApplicationConfig.MES_Code.ToString()}'").CopyToDataTable<DataRow>();
//查询出“MES_基本数据_测量范围”
MesWork_QC.BasicDataTagValueUpDown = MesWork.PlcLinkForm.dt_BasicData;
if (MesWork_QC.BasicDataTagValueUpDown.Columns.Contains("上限值"))
{
MesWork_QC.BasicDataTagValueUpDown.Columns["上限值"].ColumnName = "值上限";
}
if (MesWork_QC.BasicDataTagValueUpDown.Columns.Contains("下限值"))
{
MesWork_QC.BasicDataTagValueUpDown.Columns["下限值"].ColumnName = "值下限";
}
// 模拟时,写入质量数据
InitBasicDataTagValue();
}
/// <summary>
/// 模拟时,写入质量数据
/// </summary>
private static void InitBasicDataTagValue()
{
if (MesWorkForm.IsDemoMesServer != 1) return;
string tagID;
double tagValue;
//写工位总合格标志 变量类型代码=21
for (int i = 0; i < MesWork.PlcLinkForm.dt_BasicData.Rows.Count; i++)
{
if (MesWork.PlcLinkForm.dt_BasicData.Rows[i]["变量类型代码"].ToString() == "21")
{
tagID = MesWork.PlcLinkForm.dt_BasicData.Rows[i]["TagID"].ToString();
MesWorkForm.WritePLC(tagID, 1);
}
}
if (MesWork_QC.BasicDataTagValue != null)
{
for (int i = 0; i < MesWork_QC.BasicDataTagValue.Rows.Count; i++)
{
try
{
switch (Convert.ToInt32(MesWork_QC.BasicDataTagValue.Rows[i]["变量特点"]))
{
case 7:
tagID = MesWork_QC.BasicDataTagValue.Rows[i]["TagID"].ToString();
MesWorkForm.WritePLC(tagID, 1);
break;
case 6:
tagID = MesWork_QC.BasicDataTagValue.Rows[i]["TagID"].ToString();
tagValue = Convert.ToDouble(MesWork_QC.BasicDataTagValue.Rows[i]["列位置"]) * 100
+ Convert.ToDouble(MesWork_QC.BasicDataTagValue.Rows[i]["变量排序"]) / 100;
MesWorkForm.WritePLC(tagID, tagValue);
break;
}
}
catch { }
}
}
}
}
}