init: 导入项目到 meswork Gitea

This commit is contained in:
XingCheng3
2026-05-29 10:07:05 +08:00
commit ad9a4106fb
3582 changed files with 460312 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
using System;
using System.Text;
using System.Data;
using System.Collections;
using SystemFramework;
using bizFacade;
//using Monitor;
namespace bizFacade
{
/// <summary>
/// Alarm 的摘要说明。
/// </summary>
public class Alarm
{
/// <summary>
/// 报警
/// </summary>
public static DataTable alarmView;
/// <summary>
/// 产生报警
/// </summary>
public static Hashtable table_MSGBIT1;
/// <summary>
/// 解除报警
/// </summary>
public static Hashtable table_MSGBIT2;
/// <summary>
/// 报警列表
/// </summary>
public static Hashtable table_AlarmStart;
/// <summary>
/// 系统启动后,没有解除的报警
/// </summary>
static public DataTable AlarmStart;
/// <summary>
/// 新产生报警临时表
/// </summary>
static public DataTable AlarmTemp;
/// <summary>
/// 解除的报警临时表
/// </summary>
static public DataTable AlarmTempOK;
/// <summary>
/// 时时产生的报警文本
/// </summary>
static public DataTable PLC_AlgViewCHT_Temp;
/// <summary>
/// 报警变量基本文本
/// </summary>
static public DataTable PLC_MSMsgs_WORK;
//static DataRow[] alarmDataRow;
//static string strWhere;
/// <summary>
///
/// </summary>
public Alarm()
{
table_MSGBIT1 = new Hashtable();
table_MSGBIT2 = new Hashtable();
table_AlarmStart = new Hashtable();
//目的是创建PLC_MSMsgs_WORK数据表结构
QualityDataSystem.PLC_MSMsgs_WORKSelect(out PLC_MSMsgs_WORK);
//Init_table_AlarmStart(AlarmStart);
AlarmTemp = AlarmCommonFunction.BuildDataTablesAlarmView(); // AlarmStart.Clone();
AlarmTempOK = AlarmCommonFunction.BuildDataTablesAlarmView();// AlarmStart.Clone();
alarmView = AlarmCommonFunction.BuildDataTablesAlarmView(); //GetInitAlarmStart(AlarmStart);
}
}
}

View File

@@ -0,0 +1,371 @@
using System;
using System.Text;
using System.Data;
using System.Collections;
using SystemFramework;
namespace bizFacade
{
/// <summary>
///
/// </summary>
public class AlarmCommonFunction
{
/// <summary>
///
/// </summary>
/// <param name="AlarmTemp"></param>
/// <param name="AlarmTempOK"></param>
/// <returns></returns>
static public DataTable GetAlarmView(DataTable AlarmTemp, DataTable AlarmTempOK)
{
DateTime lastupdatetime;
DataRow dataRow;
DataTable algView = AlarmCommonFunction.BuildDataTablesAlarmView();
lastupdatetime = DateTime.Now;
for (int i = 0; i < AlarmTemp.Rows.Count; i++)
{
dataRow = algView.NewRow();
dataRow["AlarmID"] = AlarmTemp.Rows[i]["AlarmID"];
dataRow["TagID"] = AlarmTemp.Rows[i]["TagID"];
dataRow["TagValue"] = AlarmTemp.Rows[i]["TagValue"];
dataRow["MsgNr"] = AlarmTemp.Rows[i]["MsgNr"];
dataRow["State"] = AlarmTemp.Rows[i]["State"];
dataRow["DateTime"] = AlarmTemp.Rows[i]["alarmStartTime"];
dataRow["alarmStartTime"] = AlarmTemp.Rows[i]["alarmStartTime"];
dataRow["alarmEndTime"] = System.DBNull.Value;
dataRow["TypeName"] = AlarmTemp.Rows[i]["TypeName"];
dataRow["Text1"] = AlarmTemp.Rows[i]["Text1"];
dataRow["Text2"] = AlarmTemp.Rows[i]["Text2"];
dataRow["lastupdatetime"] = lastupdatetime;
algView.Rows.Add(dataRow);
}
for (int i = 0; i < AlarmTempOK.Rows.Count; i++)
{
dataRow = algView.NewRow();
dataRow["AlarmID"] = AlarmTempOK.Rows[i]["AlarmID"];
dataRow["TagID"] = AlarmTempOK.Rows[i]["TagID"];
dataRow["TagValue"] = AlarmTempOK.Rows[i]["TagValue"];
dataRow["MsgNr"] = AlarmTempOK.Rows[i]["MsgNr"];
dataRow["State"] = AlarmTempOK.Rows[i]["State"];
dataRow["DateTime"] = AlarmTempOK.Rows[i]["alarmEndTime"];
dataRow["alarmStartTime"] = AlarmTempOK.Rows[i]["alarmStartTime"];
dataRow["alarmEndTime"] = AlarmTempOK.Rows[i]["alarmEndTime"];
dataRow["TypeName"] = AlarmTempOK.Rows[i]["TypeName"];
dataRow["Text1"] = AlarmTempOK.Rows[i]["Text1"];
dataRow["Text2"] = AlarmTempOK.Rows[i]["Text2"];
dataRow["TimeDiff"] = AlarmTempOK.Rows[i]["TimeDiff"];
dataRow["lastupdatetime"] = lastupdatetime;
algView.Rows.Add(dataRow);
}
return algView;
}
/// <summary>
/// 新产生解除报警临时表
/// AlarmTempOK
/// </summary>
/// <param name="MSGVAR_Value">报警变量TagID</param>
/// <param name="inValue">报警变量值</param>
/// <param name="dateTimeValue">报警产生时间</param>
/// <param name="table_MSGBIT2"></param>
/// <param name="PLC_MSMsgs_WORK">全部报警报文</param>
/// <param name="AlarmTempOK">被解除的报警列表</param>
/// <param name="table_AlarmStart"></param>
static public void ReleaseAlarmTemp(int MSGVAR_Value, object inValue, DateTime dateTimeValue,
Hashtable table_MSGBIT2, DataTable PLC_MSMsgs_WORK,
ref DataTable AlarmTempOK, ref Hashtable table_AlarmStart)
{
AlarmText alarmText = new AlarmText();
AlarmText alarmTextStart = new AlarmText();
DataRow dataRow;
DataTable data = AlarmCommonFunction.BuildDataTablesAlarmView();
string strWhere;
DataRow[] alarmDataRow;
int NR;
alarmText.AlarmID = 0;
alarmText.TagID = MSGVAR_Value;
alarmText.TagValue = Convert.ToInt32(inValue);
alarmText.alarmStartTime = dateTimeValue;
AlarmTempOK.Clear();
//解除报警
for (int i = 0; i < table_MSGBIT2.Count; i++)
{
strWhere = @" (MSGVAR = " + MSGVAR_Value.ToString() + ") AND (MSGBIT=" + table_MSGBIT2[i].ToString() + ")";
alarmDataRow = PLC_MSMsgs_WORK.Select(strWhere);
if (alarmDataRow.Length > 0)
{
NR = Convert.ToInt32(alarmDataRow[0]["NR"]);
//报警存在于table_AlarmStart中
if (table_AlarmStart.ContainsKey(NR))
{
alarmTextStart = (AlarmText)table_AlarmStart[NR];
alarmText.AlarmID = alarmTextStart.AlarmID;
alarmText.TypeName = alarmDataRow[0]["TypeName"].ToString();
alarmText.Text1 = alarmDataRow[0]["Text1"].ToString();
alarmText.Text2 = alarmDataRow[0]["Text2"].ToString();
alarmText.MsgNr = Convert.ToInt32(alarmDataRow[0]["NR"]);
alarmText.State = 2;
alarmText.alarmStartTime = alarmTextStart.alarmStartTime;
alarmText.alarmEndTime = DateTime.Now;
System.TimeSpan diff1 = alarmText.alarmEndTime.Subtract(alarmText.alarmStartTime);
alarmText.TimeDiff = Convert.ToInt32(diff1.TotalSeconds);
//[测量数据报警全部]
//QualityDataSystem.AlarmStartAllInsert(alarmText.AlarmID,
// alarmText.TagID, alarmText.TagValue, alarmText.MsgNr,alarmText.State,
// alarmText.alarmStartTime.ToString("G"), alarmText.alarmEndTime.ToString("G"),
// alarmText.TimeDiff, alarmText.TypeName, alarmText.Text1, alarmText.Text2);
table_AlarmStart.Remove(NR);
dataRow = AlarmTempOK.NewRow();
dataRow["AlarmID"] = alarmText.AlarmID;
dataRow["TagID"] = alarmText.TagID;
dataRow["TagValue"] = alarmText.TagValue;
dataRow["MsgNr"] = alarmText.MsgNr;
dataRow["State"] = alarmText.State;
dataRow["alarmStartTime"] = alarmText.alarmStartTime;
dataRow["alarmEndTime"] = alarmText.alarmEndTime;
dataRow["TimeDiff"] = alarmText.TimeDiff;
dataRow["TypeName"] = alarmText.TypeName;
dataRow["Text1"] = alarmText.Text1;
dataRow["Text2"] = alarmText.Text2;
AlarmTempOK.Rows.Add(dataRow);
}
}
}
}
/// <summary>
/// 新产生报警临时表
/// </summary>
/// <param name="MSGVAR_Value"></param>
/// <param name="inValue"></param>
/// <param name="dateTimeValue"></param>
/// <param name="table_MSGBIT1"></param>
/// <param name="PLC_MSMsgs_WORK"></param>
/// <param name="AlarmTemp"></param>
/// <param name="table_AlarmStart"></param>
static public void CraeteAlarmTemp(int MSGVAR_Value, object inValue, DateTime dateTimeValue,
Hashtable table_MSGBIT1, DataTable PLC_MSMsgs_WORK,
ref DataTable AlarmTemp, ref Hashtable table_AlarmStart)
{
AlarmText alarmText;
DataRow dataRow;
string strWhere;
DataRow[] alarmDataRow;
int NR;
alarmText = new AlarmText();
alarmText.AlarmID = 0;
alarmText.TagID = MSGVAR_Value;
alarmText.TagValue = Convert.ToInt32(inValue);
alarmText.alarmStartTime = dateTimeValue;
AlarmTemp.Clear();
for (int i = 0; i < table_MSGBIT1.Count; i++)
{
strWhere = @" (MSGVAR = " + MSGVAR_Value.ToString() + ") AND (MSGBIT=" + table_MSGBIT1[i].ToString() + ")";
alarmDataRow = PLC_MSMsgs_WORK.Select(strWhere);
if (alarmDataRow.Length > 0)
{
NR = Convert.ToInt32(alarmDataRow[0]["NR"]);
//报警不存在于table_AlarmStart中
if (!table_AlarmStart.ContainsKey(NR))
{
alarmText.TypeName = alarmDataRow[0]["TypeName"].ToString();
alarmText.Text1 = alarmDataRow[0]["Text1"].ToString();
alarmText.Text2 = alarmDataRow[0]["Text2"].ToString();
alarmText.MsgNr = Convert.ToInt32(alarmDataRow[0]["NR"]);
alarmText.State = 1;
//[测量数据报警全部]
//QualityDataSystem.AlarmStartAllInsert(alarmText.AlarmID,
// alarmText.TagID, alarmText.TagValue, alarmText.MsgNr,alarmText.State,
// alarmText.alarmStartTime.ToString("G"), alarmText.alarmStartTime.ToString("G"),
// 0, alarmText.TypeName, alarmText.Text1, alarmText.Text2);
dataRow = AlarmTemp.NewRow();
dataRow["AlarmID"] = alarmText.AlarmID;
dataRow["TagID"] = alarmText.TagID;
dataRow["TagValue"] = alarmText.TagValue;
dataRow["MsgNr"] = alarmText.MsgNr;
dataRow["State"] = alarmText.State;
dataRow["alarmStartTime"] = alarmText.alarmStartTime;
dataRow["TypeName"] = alarmText.TypeName;
dataRow["Text1"] = alarmText.Text1;
dataRow["Text2"] = alarmText.Text2;
AlarmTemp.Rows.Add(dataRow);
table_AlarmStart.Add(NR, alarmText);
}
}
}
}
/// <summary>
/// 获得产生或解除报警的位
/// 根据报警值,通过与原始报警列表进行位操作比较,得到该报警值对应的报警文本列表
/// </summary>
/// <param name="alarmValue"></param>
/// <param name="table_MSGBIT1"></param>
/// <param name="table_MSGBIT2"></param>
static public void GetBit(int alarmValue, out Hashtable table_MSGBIT1, out Hashtable table_MSGBIT2)
{
int count1;
int count2;
table_MSGBIT1 = new Hashtable();
table_MSGBIT2 = new Hashtable();
count1 = 0;
count2 = 0;
for (int i = 0; i < 8; i++)
{
if ((alarmValue & (int)Math.Pow(2, i)) == Math.Pow(2, i))
{
table_MSGBIT1.Add(count1, i);
count1++;
}
else
{
table_MSGBIT2.Add(count2, i);
count2++;
}
}
}
/// <summary>
/// 创建报警列表
/// </summary>
/// <returns></returns>
static public DataTable BuildDataTablesAlarmView()
{
//数据
DataTable table;
DataColumnCollection columns;
table = new DataTable();
columns = table.Columns;
columns.Add("AlarmID", typeof(System.Int32));
columns.Add("TagID", typeof(System.Int32));
columns.Add("TagValue", typeof(System.String));
columns.Add("MsgNr", typeof(System.Int32));
columns.Add("State", typeof(System.Int16));
columns.Add("alarmStartTime", typeof(System.DateTime));
columns.Add("alarmEndTime", typeof(System.DateTime));
columns.Add("Comment", typeof(System.String));
columns.Add("Username", typeof(System.String));
columns.Add("Counter", typeof(System.Int32));
columns.Add("TimeDiff", typeof(System.Int32));
columns.Add("TypeName", typeof(System.String));
columns.Add("Text1", typeof(System.String));
columns.Add("Text2", typeof(System.String));
columns.Add("lastupdatetime", typeof(System.DateTime));
columns.Add("DateTime", typeof(System.DateTime));
return table;
}
/// <summary>
///
/// </summary>
public struct AlarmText
{
/// <summary>
///
/// </summary>
public long ID;
/// <summary>
///
/// </summary>
public long AlarmID;
/// <summary>
///
/// </summary>
public int TagID;
/// <summary>
///
/// </summary>
public int TagValue;
/// <summary>
///
/// </summary>
public int MsgNr;
/// <summary>
///
/// </summary>
public int State;
/// <summary>
///
/// </summary>
public DateTime alarmStartTime;
/// <summary>
///
/// </summary>
public DateTime alarmEndTime;
/// <summary>
///
/// </summary>
public string Comment;
/// <summary>
///
/// </summary>
public string Username;
/// <summary>
///
/// </summary>
public long Counter;
/// <summary>
///
/// </summary>
public int TimeDiff;
/// <summary>
///
/// </summary>
public string TypeName;
/// <summary>
///
/// </summary>
public string Text1;
/// <summary>
///
/// </summary>
public string Text2;
/// <summary>
///
/// </summary>
public DateTime lastupdatetime;
/// <summary>
///
/// </summary>
public int IsOk;
}
}
}

View File

@@ -0,0 +1,129 @@
using System;
using System.Text;
using System.Data;
using System.Collections;
using SystemFramework;
using bizFacade;
namespace bizFacade
{
/// <summary>
/// Alarm 产生报警。
/// </summary>
public class AlarmOpcServer
{
/// <summary>
///
/// </summary>
public static DataTable alarmView;
/// <summary>
/// 产生报警
/// </summary>
private Hashtable table_MSGBIT1;
/// <summary>
/// 解除报警
/// </summary>
private Hashtable table_MSGBIT2;
/// <summary>
/// 报警列表
/// </summary>
private Hashtable table_AlarmStart;
///// <summary>
///// 报警代码
///// </summary>
//private int NR;
///// <summary>
///// 系统启动后,没有解除的报警
///// </summary>
//private static DataTable AlarmStart;
/// <summary>
/// 新产生报警临时表
/// </summary>
private DataTable AlarmTemp;
/// <summary>
/// 解除的报警临时表
/// </summary>
private DataTable AlarmTempOK;
///// <summary>
///// 时时产生的报警文本
///// </summary>
//private DataTable PLC_AlgViewCHT_Temp;
/// <summary>
/// 报警变量基本文本
/// </summary>
private DataTable PLC_MSMsgs_WORK;
//DataRow[] alarmDataRow;
//string strWhere;
/// <summary>
///
/// </summary>
public AlarmOpcServer()
{
//
// TODO: 在此处添加构造函数逻辑
//
table_MSGBIT1 = new Hashtable();
table_MSGBIT2 = new Hashtable();
table_AlarmStart = new Hashtable();
//目的是创建AlarmStart数据表结构
//QualityDataSystem.AlarmStartSelect(out AlarmStart);
QualityDataSystem.PLC_MSMsgs_WORKSelect(out PLC_MSMsgs_WORK);
//Init_table_AlarmStart(AlarmStart);
AlarmTemp = AlarmCommonFunction.BuildDataTablesAlarmView(); // AlarmStart.Clone();
AlarmTempOK = AlarmCommonFunction.BuildDataTablesAlarmView();// AlarmStart.Clone();
alarmView = AlarmCommonFunction.BuildDataTablesAlarmView(); //GetInitAlarmStart(AlarmStart);
}
/// <summary>
/// 产生报警文本
/// </summary>
/// <param name="MSGVAR_Value"></param>
/// <param name="inValue"></param>
/// <param name="dateTimeValue"></param>
/// <returns></returns>
public DataTable AlarmInsert(int MSGVAR_Value, object inValue, DateTime dateTimeValue)
{
try
{
//DataRow dataRow;
DataTable algView ;//= AlarmCommonFunction.BuildDataTablesAlarmView();
int alarmValue;
alarmValue = Convert.ToInt32(inValue);
//获得报警值的报警位
AlarmCommonFunction.GetBit(alarmValue,out table_MSGBIT1,out table_MSGBIT2);
// 新产生报警临时表
// AlarmTemp
AlarmCommonFunction.CraeteAlarmTemp(MSGVAR_Value, inValue, dateTimeValue,
table_MSGBIT1, PLC_MSMsgs_WORK,
ref AlarmTemp, ref table_AlarmStart);
//// 新产生报警临时表
//// AlarmTemp
//CraeteAlarmTemp(MSGVAR_Value, inValue, dateTimeValue);
// 新产生解除报警临时表
// AlarmTempOK
AlarmCommonFunction.ReleaseAlarmTemp(MSGVAR_Value, inValue, dateTimeValue,
table_MSGBIT2, PLC_MSMsgs_WORK,
ref AlarmTempOK, ref table_AlarmStart);
//ReleaseAlarmTemp(MSGVAR_Value, inValue, dateTimeValue);
algView = AlarmCommonFunction.GetAlarmView(AlarmTemp, AlarmTempOK);
return algView;
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, "\r\nAlarmInsert产生报警模块\r\nAlarmInsert\r\nMSGVAR_Value(TagID)=" + MSGVAR_Value.ToString() + "\r\ninValue=" + inValue.ToString());
return null;
}
}
}
}

View File

@@ -0,0 +1,80 @@
using System;
using System.Data;
using System.Data.SqlClient;
using DataLinkMesWork;
using System.Collections;
using System.Collections.Specialized;
using SystemFramework;
using System.Data.OleDb;
namespace bizFacade
{
/// <summary>
/// 机床加工时间
/// </summary>
public partial class QualityDataSystem
{
/// <summary>
/// 从Access 数据库获得,报警变量基本文本
/// </summary>
public static bool PLC_MSMsgs_WORKSelect(out DataTable dt)
{
string sql = "SELECT * FROM [MES_基本变量_报警报文] ";
return DataAccess.ExecuteDataTable(sql, out dt);
}
/// <summary>
/// INSERT INTO [测量数据报警全部]
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static void AlarmStartAllInsert(DataTable dt)
{
string sql;
sql = "INSERT INTO [测量数据报警全部]"
+ "(AlarmID,TagID, TagValue, MsgNr, State,alarmStartTime,alarmEndTime,TimeDiff,TypeName,Text1, Text2,lastupdatetime)"
+ "VALUES(@AlarmID,@TagID,@TagValue,@MsgNr,@State,@alarmStartTime,@alarmEndTime,@TimeDiff,@TypeName,@Text1,@Text2,@lastupdatetime)";
OleDbParameter[] thisParmsAccess = new OleDbParameter[12];
thisParmsAccess[0] = new OleDbParameter("@AlarmID", OleDbType.Integer, 4, "AlarmID");
thisParmsAccess[1] = new OleDbParameter("@TagID", OleDbType.Integer, 4, "TagID");
thisParmsAccess[2] = new OleDbParameter("@TagValue", OleDbType.Integer, 4, "TagValue");
thisParmsAccess[3] = new OleDbParameter("@MsgNr", OleDbType.Integer, 4, "MsgNr");
thisParmsAccess[4] = new OleDbParameter("@State", OleDbType.Integer, 4, "State");
thisParmsAccess[5] = new OleDbParameter("@alarmStartTime", OleDbType.Date, 8, "alarmStartTime");
thisParmsAccess[6] = new OleDbParameter("@alarmEndTime", OleDbType.Date, 8, "alarmEndTime");
thisParmsAccess[7] = new OleDbParameter("@TimeDiff", OleDbType.Integer, 4, "TimeDiff");
thisParmsAccess[8] = new OleDbParameter("@TypeName", OleDbType.VarChar, 50, "TypeName");
thisParmsAccess[9] = new OleDbParameter("@Text1", OleDbType.VarChar, 50, "Text1");
thisParmsAccess[10] = new OleDbParameter("@Text2", OleDbType.VarChar, 50, "Text2");
thisParmsAccess[11] = new OleDbParameter("@lastupdatetime", OleDbType.Date, 8, "lastupdatetime");
//
SqlParameter[] thisParmsSql = new SqlParameter[12];
thisParmsSql[0] = new SqlParameter("@AlarmID", SqlDbType.Int, 4, "AlarmID");
thisParmsSql[1] = new SqlParameter("@TagID", SqlDbType.Int, 4, "TagID");
thisParmsSql[2] = new SqlParameter("@TagValue", SqlDbType.Int, 4, "TagValue");
thisParmsSql[3] = new SqlParameter("@MsgNr", SqlDbType.Int, 4, "MsgNr");
thisParmsSql[4] = new SqlParameter("@State", SqlDbType.Int, 4, "State");
thisParmsSql[5] = new SqlParameter("@alarmStartTime", SqlDbType.DateTime, 8, "alarmStartTime");
thisParmsSql[6] = new SqlParameter("@alarmEndTime", SqlDbType.DateTime, 8, "alarmEndTime");
thisParmsSql[7] = new SqlParameter("@TimeDiff", SqlDbType.Int, 4, "TimeDiff");
thisParmsSql[8] = new SqlParameter("@TypeName", SqlDbType.NVarChar, 50, "TypeName");
thisParmsSql[9] = new SqlParameter("@Text1", SqlDbType.NVarChar, 50, "Text1");
thisParmsSql[10] = new SqlParameter("@Text2", SqlDbType.NVarChar, 50, "Text2");
thisParmsSql[11] = new SqlParameter("@lastupdatetime", SqlDbType.DateTime, 8, "lastupdatetime");
if (SQLCommon.SqlServerConnectionStatus)
{
DataAccess.ExecuteSQL(sql, ref thisParmsSql, dt);
}
if (!SQLCommon.SqlServerConnectionStatus)
{
DataAccess.ExecuteDataTable_OleDb_Insert_Access(sql, dt, ref thisParmsAccess);
}
}
}
}

View File

@@ -0,0 +1,51 @@
using System;
using System.Data;
using System.Data.SqlClient;
using DataLinkMesWork;
using System.Collections;
using System.Collections.Specialized;
using SystemFramework;
namespace bizFacade
{
/// <summary>
/// QualityDataSystem 的摘要说明。
/// </summary>
public partial class QualityDataSystem
{
/// <summary>
/// 全部数据列表
/// MES_基本变量_原始数据
/// </summary>
/// <returns></returns>
static public DataTable BasicDataTagValue()
{
DataTable dt = null;
string sql;
sql = "SELECT * FROM MES_基本变量_原始数据 where (变量类型代码=101 or 变量类型代码 = 102 or 变量类型代码 = 105) "
+ " and (是否启用 = 1)"
+ " and (监控属性代码 = '" + ApplicationConfig.MES_Code.ToString() + "')"
+ " order by TagID";
DataAccess.ExecuteDataTable(sql, out dt);
return dt;
}
/// <summary>
/// MES_基本数据_测量范围
/// 从数据库服务器获得
/// </summary>
/// <returns></returns>
static public DataTable BasicDataTagValueUpDown()
{
DataTable dt = null;
string sql;
sql = "SELECT * FROM MES_基本数据_测量范围 order by 发动机型号代码,TagID";
DataAccess.ExecuteDataTable(sql, out dt);
return dt;
}
}
}