133 lines
4.3 KiB
C#
133 lines
4.3 KiB
C#
using DC_A95;
|
|
using Opc.Ua;
|
|
using OpcBasic;
|
|
using Rhino.DocObjects;
|
|
using SlMesDbIterface;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using SystemFramework;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
namespace MesWork
|
|
{
|
|
/// <summary>
|
|
/// 即时数据的处理
|
|
/// </summary>
|
|
public partial class MesWorkForm
|
|
{
|
|
/// <summary>
|
|
/// 即时数据的处理
|
|
/// </summary>
|
|
/// <param name="e"></param>
|
|
private void MIS_ImmediateParam(object e)
|
|
{
|
|
try
|
|
{
|
|
var msgEvent = (OpcData.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;
|
|
string tagValue;
|
|
switch (tagTypeID)
|
|
{
|
|
case EnumTagTypeID.BOOL:
|
|
tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString();
|
|
break;
|
|
default:
|
|
tagValue = msgEvent.TagValue.ToString();
|
|
break;
|
|
}
|
|
|
|
switch (tagTypeCodeID)
|
|
{
|
|
case 100000://自动模式
|
|
case 100001://运行中
|
|
case 100002://手动模式
|
|
case 100004://故障
|
|
case 100005://警告
|
|
case 100006://堵料
|
|
case 100007://缺料
|
|
ExecuteDB.Update_ImmediateParam(opName, tagTypeCodeID, tagValue, tagID);
|
|
|
|
if (tagTypeCodeID == 100000)
|
|
{
|
|
ht_Signal__Station_Auto[opName] = tagValue;
|
|
}
|
|
if (tagTypeCodeID == 100001)
|
|
{
|
|
ht_Signal__Station_Running[opName] = tagValue;
|
|
}
|
|
if (tagTypeCodeID == 100002)
|
|
{
|
|
ht_Signal__Station_Manual[opName] = tagValue;
|
|
}
|
|
if (tagTypeCodeID == 100004)
|
|
{
|
|
ht_Signal__Station_Alarm[opName] = tagValue;
|
|
}
|
|
|
|
break;
|
|
case 200001://工件离开,这个时候复位信号
|
|
if (tagValue == "1")
|
|
{
|
|
/*
|
|
//100060 当前循环时间
|
|
//100080 上一工件的循环时间
|
|
//100100 平均循环时间
|
|
//100120 总计数(当前班次)
|
|
//100160 合格工件计数(总计)
|
|
//100200 不合格工件计数(总计)
|
|
*/
|
|
var list = new List<Int32>() { 100060, 100080, 100100, 100120, 100160, 100200 };
|
|
foreach (var _TagTypeCodeID in list)
|
|
{
|
|
if (int.Parse(opName.Replace("OP", "")) > 4000 && int.Parse(opName.Replace("OP", "")) < 4100)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
var _Value = ReadPLC(_TagTypeCodeID, opName).ToString();
|
|
ExecuteDB.Update_ImmediateParam(opName, _TagTypeCodeID, _Value, $"{opName}_{_TagTypeCodeID}");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
catch (Exception err)
|
|
{ }
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|