sc 1 year ago
parent
commit
24cc2920de
  1. 1
      DyeingComputer.csproj
  2. 2
      Properties/Resources.Designer.cs
  3. 218
      Properties/Resources.zh-CN.resx
  4. 139
      UserClass/PID.cs
  5. 1
      View/TechnologicalProcessView.xaml.cs
  6. 28
      ViewModel/MainWindowViewModel.cs

1
DyeingComputer.csproj

@ -119,6 +119,7 @@
<Compile Include="UserClass\LogGing.cs" /> <Compile Include="UserClass\LogGing.cs" />
<Compile Include="UserClass\MD5check.cs" /> <Compile Include="UserClass\MD5check.cs" />
<Compile Include="UserClass\NumericTextColumn .cs" /> <Compile Include="UserClass\NumericTextColumn .cs" />
<Compile Include="UserClass\PID.cs" />
<Compile Include="UserClass\PressKey.cs" /> <Compile Include="UserClass\PressKey.cs" />
<Compile Include="UserClass\SqliteHelper.cs" /> <Compile Include="UserClass\SqliteHelper.cs" />
<Compile Include="UserClass\StrToInt.cs" /> <Compile Include="UserClass\StrToInt.cs" />

2
Properties/Resources.Designer.cs

@ -556,7 +556,7 @@ namespace DyeingComputer.Properties {
} }
/// <summary> /// <summary>
/// 查找类似 的本地化字符串。 /// 查找类似 Port 的本地化字符串。
/// </summary> /// </summary>
public static string Port { public static string Port {
get { get {

218
Properties/Resources.zh-CN.resx

@ -117,50 +117,26 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="WorkOrder" xml:space="preserve"> <data name="CurveDiagram" xml:space="preserve">
<value>工作清单</value> <value>工艺曲线</value>
</data>
<data name="TechnologicalProcess" xml:space="preserve">
<value>工艺流程</value>
</data>
<data name="SysSet" xml:space="preserve">
<value>系统</value>
</data>
<data name="Previous" xml:space="preserve">
<value>返回</value>
</data>
<data name="Next" xml:space="preserve">
<value>更多</value>
</data>
<data name="InOut" xml:space="preserve">
<value>输入输出</value>
</data> </data>
<data name="HistoryRecords" xml:space="preserve"> <data name="Delete" xml:space="preserve">
<value>历史</value> <value>删除</value>
</data> </data>
<data name="EquipmentSimulation" xml:space="preserve"> <data name="EndTime" xml:space="preserve">
<value>设备模拟</value> <value>结束时间</value>
</data> </data>
<data name="EngineerSet" xml:space="preserve"> <data name="EngineerSet" xml:space="preserve">
<value>工程师</value> <value>工程师</value>
</data> </data>
<data name="CurveDiagram" xml:space="preserve"> <data name="EquipmentSimulation" xml:space="preserve">
<value>工艺曲线</value> <value>设备模拟</value>
</data>
<data name="ParameterSet" xml:space="preserve">
<value>参数</value>
</data>
<data name="Programgroup" xml:space="preserve">
<value>程序组</value>
</data>
<data name="SysDatLoss" xml:space="preserve">
<value>系统数据丢失</value>
</data> </data>
<data name="WorkOrderNumder" xml:space="preserve"> <data name="HistoryRecords" xml:space="preserve">
<value>工单号</value> <value>历史</value>
</data> </data>
<data name="Temperature" xml:space="preserve"> <data name="InOut" xml:space="preserve">
<value>温度</value> <value>输入输出</value>
</data> </data>
<data name="lock" xml:space="preserve"> <data name="lock" xml:space="preserve">
<value>锁定/解锁</value> <value>锁定/解锁</value>
@ -168,26 +144,53 @@
<data name="New" xml:space="preserve"> <data name="New" xml:space="preserve">
<value>新建</value> <value>新建</value>
</data> </data>
<data name="Delete" xml:space="preserve"> <data name="Next" xml:space="preserve">
<value>删除</value> <value>更多</value>
</data> </data>
<data name="Redye" xml:space="preserve"> <data name="ParameterSet" xml:space="preserve">
<value>重染</value> <value>参数</value>
</data> </data>
<data name="EndTime" xml:space="preserve"> <data name="Previous" xml:space="preserve">
<value>结束时间</value> <value>返回</value>
</data> </data>
<data name="ProcessName" xml:space="preserve"> <data name="ProcessName" xml:space="preserve">
<value>工艺名</value> <value>工艺名</value>
</data> </data>
<data name="Programgroup" xml:space="preserve">
<value>程序组</value>
</data>
<data name="Redye" xml:space="preserve">
<value>重染</value>
</data>
<data name="Remark" xml:space="preserve"> <data name="Remark" xml:space="preserve">
<value>备注</value> <value>备注</value>
</data> </data>
<data name="StartTime" xml:space="preserve"> <data name="StartTime" xml:space="preserve">
<value>开始时间</value> <value>开始时间</value>
</data> </data>
<data name="SysDatLoss" xml:space="preserve">
<value>系统数据丢失</value>
</data>
<data name="SysSet" xml:space="preserve">
<value>系统</value>
</data>
<data name="TechnologicalProcess" xml:space="preserve">
<value>工艺流程</value>
</data>
<data name="Temperature" xml:space="preserve">
<value>温度</value>
</data>
<data name="Time" xml:space="preserve"> <data name="Time" xml:space="preserve">
<value>时间</value> <value>时间[min]</value>
</data>
<data name="WorkOrder" xml:space="preserve">
<value>工作清单</value>
</data>
<data name="WorkOrderNumder" xml:space="preserve">
<value>工单号</value>
</data>
<data name="Ready" xml:space="preserve">
<value>准备</value>
</data> </data>
<data name="Abnormal" xml:space="preserve"> <data name="Abnormal" xml:space="preserve">
<value>异常</value> <value>异常</value>
@ -201,23 +204,20 @@
<data name="Finish" xml:space="preserve"> <data name="Finish" xml:space="preserve">
<value>完成</value> <value>完成</value>
</data> </data>
<data name="LineUp" xml:space="preserve">
<value>排队</value>
</data>
<data name="Measure" xml:space="preserve"> <data name="Measure" xml:space="preserve">
<value>计量</value> <value>计量</value>
</data> </data>
<data name="Ready" xml:space="preserve"> <data name="LineUp" xml:space="preserve">
<value>准备</value> <value>排队</value>
</data> </data>
<data name="State" xml:space="preserve"> <data name="Notimplementation" xml:space="preserve">
<value>状态</value> <value>未执行</value>
</data> </data>
<data name="Confirm" xml:space="preserve"> <data name="Confirm" xml:space="preserve">
<value>确认</value> <value>确认</value>
</data> </data>
<data name="Step" xml:space="preserve"> <data name="State" xml:space="preserve">
<value>步骤</value> <value>状态</value>
</data> </data>
<data name="edit" xml:space="preserve"> <data name="edit" xml:space="preserve">
<value>编辑</value> <value>编辑</value>
@ -225,47 +225,56 @@
<data name="Rename" xml:space="preserve"> <data name="Rename" xml:space="preserve">
<value>重命名</value> <value>重命名</value>
</data> </data>
<data name="ID" xml:space="preserve"> <data name="Step" xml:space="preserve">
<value>ID</value> <value>步骤</value>
</data>
<data name="Directives" xml:space="preserve">
<value>指令</value>
</data> </data>
<data name="Code" xml:space="preserve"> <data name="Code" xml:space="preserve">
<value>代码</value> <value>代码</value>
</data> </data>
<data name="Recover" xml:space="preserve"> <data name="Directives" xml:space="preserve">
<value>恢复</value> <value>指令</value>
</data>
<data name="ID" xml:space="preserve">
<value>ID</value>
</data> </data>
<data name="Insert" xml:space="preserve"> <data name="Insert" xml:space="preserve">
<value>插入</value> <value>插入</value>
</data> </data>
<data name="Recover" xml:space="preserve">
<value>恢复</value>
</data>
<data name="Save" xml:space="preserve"> <data name="Save" xml:space="preserve">
<value>保存</value> <value>保存</value>
</data> </data>
<data name="Quit" xml:space="preserve"> <data name="Quit" xml:space="preserve">
<value>退出</value> <value>退出</value>
</data> </data>
<data name="TemperatureControl" xml:space="preserve">
<value>温度控制</value>
</data>
<data name="AddWater" xml:space="preserve"> <data name="AddWater" xml:space="preserve">
<value>入水</value> <value>入水</value>
</data> </data>
<data name="Cooling" xml:space="preserve">
<value>冷却</value>
</data>
<data name="Drainage" xml:space="preserve">
<value>排水</value>
</data>
<data name="Flowmeter" xml:space="preserve"> <data name="Flowmeter" xml:space="preserve">
<value>流量</value> <value>流量</value>
</data> </data>
<data name="WaterLevel" xml:space="preserve"> <data name="TemperatureControl" xml:space="preserve">
<value>水位</value> <value>温度控制</value>
</data> </data>
<data name="Washing" xml:space="preserve"> <data name="Washing" xml:space="preserve">
<value>水洗</value> <value>水洗</value>
</data> </data>
<data name="Cooling" xml:space="preserve"> <data name="WaterLevel" xml:space="preserve">
<value>冷却</value> <value>水位</value>
</data> </data>
<data name="Drainage" xml:space="preserve"> <data name="ClothIntake" xml:space="preserve">
<value>排水</value> <value>准备入布</value>
</data>
<data name="OutTheCloth" xml:space="preserve">
<value>准备出布</value>
</data> </data>
<data name="PumpDrainage" xml:space="preserve"> <data name="PumpDrainage" xml:space="preserve">
<value>主泵排水</value> <value>主泵排水</value>
@ -273,18 +282,12 @@
<data name="RunningTime" xml:space="preserve"> <data name="RunningTime" xml:space="preserve">
<value>运转</value> <value>运转</value>
</data> </data>
<data name="ClothIntake" xml:space="preserve"> <data name="AddTheMedicine" xml:space="preserve">
<value>准备入布</value> <value>加药</value>
</data>
<data name="OutTheCloth" xml:space="preserve">
<value>准备出布</value>
</data> </data>
<data name="CallDistribution" xml:space="preserve"> <data name="CallDistribution" xml:space="preserve">
<value>呼叫输送</value> <value>呼叫输送</value>
</data> </data>
<data name="AddTheMedicine" xml:space="preserve">
<value>加药</value>
</data>
<data name="CallPreparation" xml:space="preserve"> <data name="CallPreparation" xml:space="preserve">
<value>呼叫准备</value> <value>呼叫准备</value>
</data> </data>
@ -327,81 +330,78 @@
<data name="Sampling" xml:space="preserve"> <data name="Sampling" xml:space="preserve">
<value>取样</value> <value>取样</value>
</data> </data>
<data name="Invalidfeatures" xml:space="preserve">
<value>功能无效</value>
</data>
<data name="Function" xml:space="preserve"> <data name="Function" xml:space="preserve">
<value>功能</value> <value>功能</value>
</data> </data>
<data name="Invalidfeatures" xml:space="preserve">
<value>功能无效</value>
</data>
<data name="NO" xml:space="preserve"> <data name="NO" xml:space="preserve">
<value>否</value> <value>否</value>
</data> </data>
<data name="YES" xml:space="preserve"> <data name="YES" xml:space="preserve">
<value>是</value> <value>是</value>
</data> </data>
<data name="Rate" xml:space="preserve"> <data name="Advance" xml:space="preserve">
<value>速率</value> <value>提前</value>
</data> </data>
<data name="Target" xml:space="preserve"> <data name="Beginning" xml:space="preserve">
<value>目标</value> <value>开头</value>
</data>
<data name="Container" xml:space="preserve">
<value>容器</value>
</data>
<data name="Curve" xml:space="preserve">
<value>曲线</value>
</data> </data>
<data name="Headwaters" xml:space="preserve"> <data name="Headwaters" xml:space="preserve">
<value>水源</value> <value>水源</value>
</data> </data>
<data name="Medicine" xml:space="preserve">
<value>药</value>
</data>
<data name="Mixing" xml:space="preserve">
<value>搅拌</value>
</data>
<data name="Number" xml:space="preserve"> <data name="Number" xml:space="preserve">
<value>次数</value> <value>次数</value>
</data> </data>
<data name="Pressure" xml:space="preserve"> <data name="Pressure" xml:space="preserve">
<value>压力</value> <value>压力</value>
</data> </data>
<data name="Container" xml:space="preserve"> <data name="Rate" xml:space="preserve">
<value>容器</value> <value>速率(°C/min)</value>
</data> </data>
<data name="Tank" xml:space="preserve"> <data name="Tank" xml:space="preserve">
<value>缸</value> <value>缸</value>
</data> </data>
<data name="Medicine" xml:space="preserve"> <data name="Target" xml:space="preserve">
<value>药</value> <value>目标</value>
</data>
<data name="Advance" xml:space="preserve">
<value>提前</value>
</data>
<data name="Beginning" xml:space="preserve">
<value>开头</value>
</data> </data>
<data name="Type" xml:space="preserve"> <data name="Type" xml:space="preserve">
<value>类型</value> <value>类型</value>
</data> </data>
<data name="Mixing" xml:space="preserve">
<value>搅拌</value>
</data>
<data name="Curve" xml:space="preserve">
<value>曲线</value>
</data>
<data name="Blower" xml:space="preserve"> <data name="Blower" xml:space="preserve">
<value>风机</value> <value>风机</value>
</data> </data>
<data name="Wiggle" xml:space="preserve">
<value>摆布</value>
</data>
<data name="Nozzle" xml:space="preserve"> <data name="Nozzle" xml:space="preserve">
<value>喷嘴</value> <value>喷嘴</value>
</data> </data>
<data name="Pump" xml:space="preserve">
<value>泵</value>
</data>
<data name="Overflow" xml:space="preserve"> <data name="Overflow" xml:space="preserve">
<value>溢流</value> <value>溢流</value>
</data> </data>
<data name="process_not" xml:space="preserve"> <data name="Pump" xml:space="preserve">
<value>工艺不存在</value> <value></value>
</data> </data>
<data name="Notimplementation" xml:space="preserve"> <data name="Wiggle" xml:space="preserve">
<value>未执行</value> <value>摆布</value>
</data> </data>
<data name="Implementation" xml:space="preserve"> <data name="Implementation" xml:space="preserve">
<value>执行</value> <value>执行</value>
</data> </data>
<data name="process_not" xml:space="preserve">
<value>工艺不存在</value>
</data>
<data name="Connectionlost" xml:space="preserve"> <data name="Connectionlost" xml:space="preserve">
<value>连接丢失</value> <value>连接丢失</value>
</data> </data>

139
UserClass/PID.cs

@ -0,0 +1,139 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DyeingComputer.UserClass
{
public class PID
{
private static double Ts; // Sample period in seconds
private static double K; // Rollup parameter
private static double b0, b1, b2; // Rollup parameters
private static double a0, a1, a2; // Rollup parameters
private static double y0 = 0; // Current output
private static double y1 = 0; // Output one iteration old
private static double y2 = 0; // Output two iterations old
private static double e0 = 0; // Current error
private static double e1 = 0; // Error one iteration old
private static double e2 = 0; // Error two iterations old
/// <summary>
/// PID构造器
/// </summary>
/// <param name="Kp">比例增益</param>
/// <param name="Ki">积分增益</param>
/// <param name="Kd">微分增益</param>
/// <param name="N">微分滤波系数</param>
/// <param name="OutputUpperLimit">控制器输出上限</param>
/// <param name="OutputLowerLimit">控制器输出下限</param>
public PID(double Kp, double Ki, double Kd, double N, double OutputUpperLimit, double OutputLowerLimit)
{
this.Kp = Kp;
this.Ki = Ki;
this.Kd = Kd;
this.N = N;
this.OutputUpperLimit = OutputUpperLimit;
this.OutputLowerLimit = OutputLowerLimit;
}
/// <summary>
/// PID迭代器,在每个采样周期调用此函数以获取当前控制器输出。
/// 设定点和过程值应使用相同的单位。
/// </summary>
/// <param name="setPoint">设定目标值</param>
/// <param name="processValue">当前实际值</param>
/// <param name="ts">自上次迭代以来的时间跨度,对第一次调用使用默认采样周期</param>
/// <returns>Current Controller Output</returns>
public double PID_iterate(double setPoint, double processValue, TimeSpan ts)
{
// Ensure the timespan is not too small or zero.
Ts = (ts.TotalSeconds >= TsMin) ? ts.TotalSeconds : TsMin;
// Calculate rollup parameters
K = 2 / Ts;
b0 = Math.Pow(K, 2) * Kp + K * Ki + Ki * N + K * Kp * N + Math.Pow(K, 2) * Kd * N;
b1 = 2 * Ki * N - 2 * Math.Pow(K, 2) * Kp - 2 * Math.Pow(K, 2) * Kd * N;
b2 = Math.Pow(K, 2) * Kp - K * Ki + Ki * N - K * Kp * N + Math.Pow(K, 2) * Kd * N;
a0 = Math.Pow(K, 2) + N * K;
a1 = -2 * Math.Pow(K, 2);
a2 = Math.Pow(K, 2) - K * N;
// Age errors and output history
e2 = e1; // Age errors one iteration
e1 = e0; // Age errors one iteration
e0 = setPoint - processValue; // Compute new error
y2 = y1; // Age outputs one iteration
y1 = y0; // Age outputs one iteration
y0 = -a1 / a0 * y1 - a2 / a0 * y2 + b0 / a0 * e0 + b1 / a0 * e1 + b2 / a0 * e2; // Calculate current output
// Clamp output if needed
if (y0 > OutputUpperLimit)
{
y0 = OutputUpperLimit;
}
else if (y0 < OutputLowerLimit)
{
y0 = OutputLowerLimit;
}
return y0;
}
/// <summary>
/// 重置控制器历史记录,有效重置控制器。
/// </summary>
public static void ResetController()
{
e2 = 0;
e1 = 0;
e0 = 0;
y2 = 0;
y1 = 0;
y0 = 0;
}
/// <summary>
/// 比例增益,如果此参数发生剧烈变化,请考虑重置控制器。
/// </summary>
public double Kp { get; set; }
/// <summary>
/// 积分增益,如果此参数发生剧烈变化,请考虑重置控制器。
/// </summary>
public double Ki { get; set; }
/// <summary>
/// 微分增益,如果此参数发生剧烈变化,请考虑重置控制器。
/// </summary>
public double Kd { get; set; }
/// <summary>
///微分滤波系数。
/// N越小,过滤效果越好
/// N越大,过滤效果越差
/// 如果此参数发生剧烈变化,请考虑重置控制器。
/// </summary>
public double N { get; set; }
/// <summary>
/// 避免除以零的最小允许采样周期!
/// Ts值可能会在第一次迭代时被错误地设置为过低的值或零。
/// TsMin默认设置为1毫秒。
/// </summary>
public double TsMin { get; set; } = 0.001;
/// <summary>
/// 控制器的输出上限。
/// 是一个比输出下限大的数值。
/// </summary>
public double OutputUpperLimit { get; set; }
/// <summary>
/// 控制器的输出下限。
/// 是一个比输出上限小的数值。
/// </summary>
public double OutputLowerLimit { get; set; }
}
}

1
View/TechnologicalProcessView.xaml.cs

@ -53,6 +53,7 @@ namespace DyeingComputer.View
private void UserControl_Loaded(object sender, RoutedEventArgs e) private void UserControl_Loaded(object sender, RoutedEventArgs e)
{ {
if(workName !=null) TechnologicalProcess_sql(); if(workName !=null) TechnologicalProcess_sql();
//Grid.SelectedIndex = 0;
} }
} }
} }

28
ViewModel/MainWindowViewModel.cs

@ -32,13 +32,11 @@ namespace DyeingComputer.ViewModel
public class ViewModelBase : INotifyPropertyChanged public class ViewModelBase : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName) protected virtual void OnPropertyChanged(string propertyName)
{ {
if (this.PropertyChanged != null) if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
} }
public void RaisePropertyChanged(string propertyName) public void RaisePropertyChanged(string propertyName)
{ {
if (propertyName != null) if (propertyName != null)
@ -46,16 +44,31 @@ namespace DyeingComputer.ViewModel
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
} }
} }
} }
public class MainWindowViewModel : ViewModelBase public class MainWindowViewModel : ViewModelBase
{ {
private UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "DyeingComputer.ini"); private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
private PID PID = null;
private IniFile.IniFiles Configini = new IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "DyeingComputer.ini");
public MainWindowViewModel() public MainWindowViewModel()
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
double ST01 = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST01'", null)); //读取
double ST02 = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST02'", null));
double ST03 = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST03'", null));
double ST04 = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST04'", null));
double ST05 = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST05'", null));
double ST06 = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST06'", null));
SQLiteHelpers.Close();
WorkNumder = "----------"; WorkNumder = "----------";
PID pid=new PID(ST01,ST02,ST03,ST04,ST05,ST06);
CountDown(); //启动循环任务 CountDown(); //启动循环任务
SQL_data(); //读数据库 SQL_data(); //读数据库
UPort(); //启动串口 UPort(); //启动串口
@ -68,21 +81,18 @@ namespace DyeingComputer.ViewModel
get { return work_Temp; } get { return work_Temp; }
set { work_Temp = value; OnPropertyChanged("Work_Temp"); } set { work_Temp = value; OnPropertyChanged("Work_Temp"); }
} }
public string work_Numder; //显示工单号 public string work_Numder; //显示工单号
public string Work_Numder //通知UI控件参数改变 public string Work_Numder //通知UI控件参数改变
{ {
get { return work_Numder; } get { return work_Numder; }
set { work_Numder = value; OnPropertyChanged("Work_Numder"); } set { work_Numder = value; OnPropertyChanged("Work_Numder"); }
} }
public string status_Str; //显示状态 public string status_Str; //显示状态
public string Status_Str //通知UI控件参数改变 public string Status_Str //通知UI控件参数改变
{ {
get { return status_Str; } get { return status_Str; }
set { status_Str = value; OnPropertyChanged("Status_Str"); } set { status_Str = value; OnPropertyChanged("Status_Str"); }
} }
public string sys_Time; //显示系统时间 public string sys_Time; //显示系统时间
public string Sys_Time //通知UI控件参数改变 public string Sys_Time //通知UI控件参数改变
{ {
@ -113,7 +123,7 @@ namespace DyeingComputer.ViewModel
}; };
disTimer.Tick += new EventHandler(DisTimer_100MS);//每一秒执行的方法 disTimer.Tick += new EventHandler(DisTimer_100MS);//每一秒执行的方法
disTimer.Start();//计时开始 disTimer.Start();//计时开始
} }//时间周期初始化
public static object Name_err; public static object Name_err;
public static object WorkNumder; public static object WorkNumder;
@ -203,8 +213,6 @@ namespace DyeingComputer.ViewModel
}); });
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
public DataTable dt_d = new DataTable("DIO"); public DataTable dt_d = new DataTable("DIO");
public DataTable dt_a = new DataTable("AIO"); public DataTable dt_a = new DataTable("AIO");
public DataTable dt_m = new DataTable("M"); public DataTable dt_m = new DataTable("M");

Loading…
Cancel
Save