简单介绍一下项目背景:
大家喜爱的葡萄酒需要经过原料选择→分选→去梗→破碎→消毒→前发酵→压榨→调整酒度→后发酵→贮藏→沉清过滤→装瓶、杀菌这几个过程,
保温发酵控制系统是其中重要一环,葡萄酒经过前期工艺后,在发酵罐常期进行发酵,温度必须保证在一定范围,温度高时需要制冷。温度高了需要
进行搅拌,不至于结冰。往复的过程。
在项目中运用到数据库、多线程、现场采集、液位显示等。
动态显示每个发酵罐或者保温罐相关信息与参数,可以设定制定控制还是手动控制。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
namespace work
{
public partial class FormDisplay : Form
{
// Starting time in milliseconds
int tickStart = 0;
string obj_gh;
string device;
public DataSet ds;
private System.Windows.Forms.DataGridTableStyle ts;
public FormDisplay(string gh)
{
obj_gh = gh;
InitializeComponent();
}
private void FillData(string gh)
{
DataSet dsmatno;
string selectmatno = " select mname from matno ";
selectmatno = selectmatno + " order by matnoid desc";
dsmatno = Narnu.GetDataSetByOleDbString(selectmatno);
cb_pm.DataSource = dsmatno.Tables[0];
cb_pm.DisplayMember = "mname";
datagrid.TableStyles.Clear();
ts = new DataGridTableStyle();
ts.RowHeadersVisible = false;
DataSet ds;
string selectgh = " select * from wd ";
selectgh =selectgh + " where gh = '" + gh.ToString()+ "'" + " order by tkdat1 desc";
ds = Narnu.GetDataSetByOleDbString(selectgh);
ts.MappingName = ds.Tables[0].TableName;
//ts.AlternatingBackColor = Color.LightSkyBlue;
ts.AllowSorting = false;
//id, palno, addre, addre_desc, trans, trans_ssj, trans_ddj, deviceno,
//xd, statu, deviceno_desc, port, port_desc, ssj, ddj, pri, error, fflag, tkdat
setcolumn("gh", "罐号", 120);
setcolumn("op", "操作", 120);
setcolumn("sdwd", "设定温度", 120);
setcolumn("sjwd1", "高位温度", 120);
setcolumn("sjwd2", "低位温度", 120);
setcolumn("tkdat1", "时间", 120);
setcolumn("deviceno", "设备号", 40);
setcolumn("trans", "电报", 150);
setcolumn("statu", "状态", 50);
setcolumn("error", "故障信息", 150);
setcolumn("tkdat", "产生时间", 120);
setcolumn("xd", "巷道", 50);
setcolumn("port", "口地址", 50);
setcolumn("if_do", "状态", 40);
setcolumn("alock", "锁定状态", 40);
setcolumn("sectn", "库区", 40);
datagrid.TableStyles.Add(ts);
this.datagrid.DataSource = ds.Tables[0];
this.dataGridView1.DataSource = ds.Tables[0];
}
private void FillDataTk(string gh,DateTime tk)
{
datagrid.TableStyles.Clear();
ts = new DataGridTableStyle();
ts.RowHeadersVisible = false;
DataSet ds;
string selectgh = " select * from wd ";
selectgh = selectgh + " where gh = '" + gh.ToString() + "'" + " and tkdat1>=Cdate('" + tk + "')" + " order by tkdat1 desc";
ds = Narnu.GetDataSetByOleDbString(selectgh);
ts.MappingName = ds.Tables[0].TableName;
//ts.AlternatingBackColor = Color.LightSkyBlue;
ts.AllowSorting = false;
//id, palno, addre, addre_desc, trans, trans_ssj, trans_ddj, deviceno,
//xd, statu, deviceno_desc, port, port_desc, ssj, ddj, pri, error, fflag, tkdat
setcolumn("sdwd", "设定温度", 120);
setcolumn("sjwd1", "高位温度", 120);
setcolumn("sjwd2", "低位温度", 120);
setcolumn("gh", "罐号", 120);
setcolumn("op", "操作", 120);
setcolumn("tkdat1", "时间", 120);
setcolumn("deviceno", "设备号", 40);
setcolumn("trans", "电报", 150);
setcolumn("statu", "状态", 50);
setcolumn("error", "故障信息", 150);
setcolumn("tkdat", "产生时间", 120);
setcolumn("xd", "巷道", 50);
setcolumn("port", "口地址", 50);
setcolumn("if_do", "状态", 40);
setcolumn("alock", "锁定状态", 40);
setcolumn("sectn", "库区", 40);
datagrid.TableStyles.Add(ts);
this.datagrid.DataSource = ds.Tables[0];
this.dataGridView1.DataSource = ds.Tables[0];
}
private void setcolumn(string name, string text, int width)
{
DataGridTextBoxColumn C = new DataGridTextBoxColumn();
// DataGridColumnStyle CStyle = new DataGridColumnStyle();
//youFirstFieldName是你的Table里的某个字段名
C.MappingName = name;
//youHeaderName是你希望将上面这个字段显示在DataGrid里时的标题
C.HeaderText = text;
C.Width = width;
C.Alignment = HorizontalAlignment.Center;
//响应鼠标单击与双击事件
// C.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
ts.GridColumnStyles.Add(C);
C.Dispose();
}
private void Form1_Load( object sender, EventArgs e )
{
// TODO: 这行代码将数据加载到表“bookShopDataSet.wd”中。您可以根据需要移动或移除它。
//this.wdTableAdapter.Fill(this.bookShopDataSet.wd);
//foreach (Form froms in this)//检查窗体是否存在
//{
// if (froms is work.FormDisplay)
// {
// froms.Focus();//获得焦点
// return;//退出过程
// }
//}
// MessageBox.Show(obj_gh);
dateTimePicker1.Value = DateTime.Now.AddDays(-1);
string gh = "";
lb_gh.Text = obj_gh.Substring(0, 4).ToUpper() ;
gh = obj_gh.Substring(0, 4).ToUpper();
device = obj_gh.Substring(5, 2);
// MessageBox.Show(device);
GraphPane myPane = zedGraphControl1.GraphPane;
myPane.Title.Text = "温度实时曲线\n";
myPane.XAxis.Title.Text = "时间, 秒";
myPane.YAxis.Title.Text = "温度";
old_wd.Text = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1];
sd_wd.Text = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1];
// Save 1200 points. At 50 ms sample rate, this is one minute
// The RollingPointPairList is an efficient storage class that always
// keeps a rolling set of point data without needing to shift any data values
//设置1200个点,假设每50毫秒更新一次,刚好检测1分钟
//一旦构造后将不能更改这个值
RollingPointPairList list = new RollingPointPairList( 1200 );
// Initially, a curve is added with no data points (list is empty)
// Color is blue, and there will be no symbols
//开始,增加的线是没有数据点的(也就是list为空)
//增加一条名称:Voltage,颜色Color.Bule,无符号,无数据的空线条
LineItem curve = myPane.AddCurve( "温度", list, Color.Blue, SymbolType.None );
// Sample at 50ms intervals
//设置timer控件的间隔为50毫秒
timer1.Interval = 50;
timer1.Enabled = true;
timer1.Start();
// Just manually control the X axis range so it scrolls continuously
// instead of discrete step-sized jumps
myPane.XAxis.Scale.Min = 0;
//X轴最小值0
myPane.XAxis.Scale.Max = 30;
//X轴最大30
myPane.XAxis.Scale.MinorStep = 1;
//X轴小步长1,也就是小间隔
myPane.XAxis.Scale.MajorStep = 5;
//X轴大步长为5,也就是显示文字的大间隔
// Scale the axes
//改变轴的刻度
zedGraphControl1.AxisChange();
// Save the beginning time for reference
//保存开始时间
tickStart = Environment.TickCount;
//
DataSet ds;
string selectgh = " select * from gh where gh = '" + gh + "'" + " and finish='" + "1" + "' order by tkdat1 desc";
ds = Narnu.GetDataSetByOleDbString(selectgh);
if (ds.Tables["gh"].Rows.Count == 0)
{
cb_pm.Text = "";
tb_batch.Text = "";
bt_st.Enabled = true;
bt_com.Enabled = false;
//cb_pm
}
else
{
cb_pm.Text = ds.Tables["gh"].Rows[0][6].ToString();
tb_batch.Text = ds.Tables["gh"].Rows[0][5].ToString();
bt_st.Enabled = false;
bt_com.Enabled = true;
}
FillData(gh.ToString());
//string gh = "";
lb_gh.Text = obj_gh.Substring(0, 4).ToUpper();
gh = obj_gh.Substring(0, 4).ToUpper();
device = obj_gh.Substring(5, 2);
DateTime tk;
//DataSet ds;
tk = Convert.ToDateTime(dateTimePicker1.Value);
// selectgh = " select * from gh where gh = '" + gh + "'" + " and tkdat1>=Cdate('" + tk + "')" + " and finish='" + "1" + "' order by tkdat1 desc";
//ds = Narnu.GetDataSetByOleDbString(selectgh);
//if (ds.Tables["gh"].Rows.Count == 0)
//{
// cb_pm.Text = "";
// tb_batch.Text = "";
// bt_st.Enabled = true;
// bt_com.Enabled = false;
// //cb_pm
//}
//else
//{
// cb_pm.Text = ds.Tables["gh"].Rows[0][6].ToString();
// tb_batch.Text = ds.Tables["gh"].Rows[0][5].ToString();
// bt_st.Enabled = false;
// bt_com.Enabled = true;
//}
FillDataTk(gh.ToString(), tk);
}
private void timer1_Tick( object sender, EventArgs e )
{
if (MainForm.pMainWin.zhileng[Convert.ToInt32(device)-1] == 1)
{
if (sg22_17_01.State != LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Blink)
{
sg22_17_01.State = LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Blink;
}
}
if (MainForm.pMainWin.zhileng[Convert.ToInt32(device)-1] == 0)
{
sg22_17_01.State = LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Off;
//LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Off; ;
}
if (MainForm.pMainWin.jiaoban[Convert.ToInt32(device)-1] == 1)
{
if (sf09_12_dj.State != LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Blink)
{
sf09_12_dj.State = LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Blink;
}
}
if (MainForm.pMainWin.jiaoban[Convert.ToInt32(device)-1] == 0)
{
sf09_12_dj.State = LBSoft.IndustrialCtrls.Leds.LBLed.LedState.Off;
}
// Make sure that the curvelist has at least one curve
//确保CurveList不为空
double var=3;
var = Convert.ToDouble(MainForm.pMainWin.sjwd1[Convert.ToInt32(device)-1]);
if ( zedGraphControl1.GraphPane.CurveList.Count <= 0 )
return;
// Get the first CurveItem in the graph
//取Graph第一个曲线,也就是第一步:在GraphPane.CurveList集合中查找CurveItem
LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;
if ( curve == null )
return;
// Get the PointPairList
//第二步:在CurveItem中访问PointPairList(或者其它的IPointList),根据自己的需要增加新数据或修改已存在的数据
IPointListEdit list = curve.Points as IPointListEdit;
// If this is null, it means the reference at curve.Points does not
// support IPointListEdit, so we won't be able to modify it
if ( list == null )
return;
// Time is measured in seconds
double time = ( Environment.TickCount - tickStart ) / 10000.0;
// 3 seconds per cycle
//list.Add( time, Math.Sin( 2.0 * Math.PI * time / 3.0 ) );
list.Add(time,var);
//var = MainForm.pMainWin.
// Keep the X scale at a rolling 30 second interval, with one
// major step between the max X value and the end of the axis
Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;
if ( time > xScale.Max - xScale.MajorStep )
{
xScale.Max = time + xScale.MajorStep;
xScale.Min = xScale.Max - 30.0;
}
// Make sure the Y axis is rescaled to accommodate actual data
//第三步:调用ZedGraphControl.AxisChange()方法更新X和Y轴的范围
zedGraphControl1.AxisChange();
// Force a redraw
//第四步:调用Form.Invalidate()方法更新图表
zedGraphControl1.Invalidate();
}
private void Form1_Resize( object sender, EventArgs e )
{
//SetSize();
}
// Set the size and location of the ZedGraphControl
private void SetSize()
{
}
private void button1_Click(object sender, EventArgs e)
{
string device_write="";
int deviceno;
deviceno = Convert.ToInt32(device);
if (deviceno == 1)
{
device_write = "64";
}
if (deviceno == 2)
{
device_write = "65";
}
if (deviceno == 3)
{
device_write = "66";
}
if (deviceno == 4)
{
device_write = "67";
}
if (deviceno == 5)
{
device_write = "44";
}
if (deviceno == 6)
{
device_write = "45";
}
if (deviceno == 7)
{
device_write = "46";
}
if (deviceno == 8)
{
device_write = "47";
}
if (deviceno == 9)
{
device_write = "52";
}
if (deviceno == 10)
{
device_write = "53";
}
if (deviceno == 11)
{
device_write = "54";
}
if (deviceno == 12)
{
device_write = "55";
}
if (deviceno == 13)
{
device_write = "60";
}
if (deviceno == 14)
{
device_write = "61";
}
if (deviceno == 15)
{
device_write = "62";
}
if (deviceno == 16)
{
device_write = "63";
}
if (deviceno == 17)
{
device_write = "68";
}
if (deviceno == 18)
{
device_write = "69";
}
if (deviceno == 19)
{
device_write = "70";
}
if (deviceno == 20)
{
device_write = "71";
}
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否关闭电磁阀" + "\r");
if (result == DialogResult.No)
{
return;
}
MainForm.pMainWin.objPlc1.Writeplc(device_write, "0");
string tkdat1 = "";
string tkdat2 = "";
string userid = "admin";
string pm = "";
string batch = "";
string gh = "";
string SetValue;
string insertgh;
string sdwd_t = "";
string sjwd1_t = "";
string sjwd2_t = "";
string yali_t = "";
string op_t = "";
op_t ="关闭电磁阀";
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
tkdat1 = DateTime.Now.ToString();
tkdat2 = DateTime.Now.ToString();
gh = obj_gh.Substring(0, 4).ToUpper();
yali_t = MainForm.pMainWin.yl[Convert.ToInt32(device) - 1]; ;
sdwd_t = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1]; ;
sjwd1_t = MainForm.pMainWin.sjwd1[Convert.ToInt32(device) - 1]; ;
sjwd2_t = MainForm.pMainWin.sjwd2[Convert.ToInt32(device) - 1]; ;
SetValue = "('" + pm + "','" + gh + "','" + batch + "','" + tkdat1 + "','" + tkdat2 + "','" + userid + "','" + "1" + "','" + yali_t + "','" + sdwd_t + "','" + sjwd1_t + "','"+ op_t + "','" + sjwd2_t + "')";
insertgh = "insert into wd (pm,gh,batch,tkdat1,tkdat2,userid,finish,yl,sdwd,sjwd1,op,sjwd2) values " + SetValue;
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MainForm.pMainWin.ls_IniFile.WriteLog("write1", ex.Message.ToString());
return;
}
}
private void button5_Click(object sender, EventArgs e)
{
string device_write = "";
int deviceno;
deviceno = Convert.ToInt32(device);
if (deviceno == 1)
{
device_write = "64";
}
if (deviceno == 2)
{
device_write = "65";
}
if (deviceno == 3)
{
device_write = "66";
}
if (deviceno == 4)
{
device_write = "67";
}
if (deviceno == 5)
{
device_write = "44";
}
if (deviceno == 6)
{
device_write = "45";
}
if (deviceno == 7)
{
device_write = "46";
}
if (deviceno == 8)
{
device_write = "47";
}
if (deviceno == 9)
{
device_write = "52";
}
if (deviceno == 10)
{
device_write = "53";
}
if (deviceno == 11)
{
device_write = "54";
}
if (deviceno == 12)
{
device_write = "55";
}
if (deviceno == 13)
{
device_write = "60";
}
if (deviceno == 14)
{
device_write = "61";
}
if (deviceno == 15)
{
device_write = "62";
}
if (deviceno == 16)
{
device_write = "63";
}
if (deviceno == 17)
{
device_write = "68";
}
if (deviceno == 18)
{
device_write = "69";
}
if (deviceno == 19)
{
device_write = "70";
}
if (deviceno == 20)
{
device_write = "71";
}
//device
//zhileng[0] = Convert.ToInt32(objPlc1.ReadPlc("64"));
//MessageBox.Show(zhileng[0].ToString());
//zhileng[1] = Convert.ToInt32(objPlc1.ReadPlc("65"));
//zhileng[2] = Convert.ToInt32(objPlc1.ReadPlc("66"));
//zhileng[3] = Convert.ToInt32(objPlc1.ReadPlc("67"));
//zhileng[4] = Convert.ToInt32(objPlc1.ReadPlc("44"));
//zhileng[5] = Convert.ToInt32(objPlc1.ReadPlc("45"));
//zhileng[6] = Convert.ToInt32(objPlc1.ReadPlc("46"));
//zhileng[7] = Convert.ToInt32(objPlc1.ReadPlc("47"));
//zhileng[8] = Convert.ToInt32(objPlc1.ReadPlc("52"));
//zhileng[9] = Convert.ToInt32(objPlc1.ReadPlc("53"));
//zhileng[10] = Convert.ToInt32(objPlc1.ReadPlc("54"));
//zhileng[11] = Convert.ToInt32(objPlc1.ReadPlc("55"));
//zhileng[12] = Convert.ToInt32(objPlc1.ReadPlc("60"));
//zhileng[13] = Convert.ToInt32(objPlc1.ReadPlc("61"));
//zhileng[14] = Convert.ToInt32(objPlc1.ReadPlc("62"));
//zhileng[15] = Convert.ToInt32(objPlc1.ReadPlc("63"));
//zhileng[16] = Convert.ToInt32(objPlc1.ReadPlc("68"));
//zhileng[17] = Convert.ToInt32(objPlc1.ReadPlc("69"));
//zhileng[18] = Convert.ToInt32(objPlc1.ReadPlc("70"));
//zhileng[19] = Convert.ToInt32(objPlc1.ReadPlc("71"));
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否开启电磁阀" + "\r");
if (result == DialogResult.No)
{
return;
}
MainForm.pMainWin.objPlc1.Writeplc(device_write, "1");
string tkdat1 = "";
string tkdat2 = "";
string userid = "admin";
string pm = "";
string batch = "";
string gh = "";
string SetValue;
string insertgh;
string sdwd_t = "";
string sjwd1_t = "";
string sjwd2_t = "";
string yali_t = "";
string op_t = "";
op_t = "开启电磁阀";
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
tkdat1 = DateTime.Now.ToString();
tkdat2 = DateTime.Now.ToString();
gh = obj_gh.Substring(0, 4).ToUpper();
yali_t = MainForm.pMainWin.yl[Convert.ToInt32(device) - 1]; ;
sdwd_t = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1]; ;
sjwd1_t = MainForm.pMainWin.sjwd1[Convert.ToInt32(device) - 1]; ;
sjwd2_t = MainForm.pMainWin.sjwd2[Convert.ToInt32(device) - 1]; ;
SetValue = "('" + pm + "','" + gh + "','" + batch + "','" + tkdat1 + "','" + tkdat2 + "','" + userid + "','" + "1" + "','" + yali_t + "','" + sdwd_t + "','" + sjwd1_t + "','" + op_t + "','" + sjwd2_t + "')";
insertgh = "insert into wd (pm,gh,batch,tkdat1,tkdat2,userid,finish,yl,sdwd,sjwd1,op,sjwd2) values " + SetValue;
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MainForm.pMainWin.ls_IniFile.WriteLog("write1", ex.Message.ToString());
return;
}
}
private void button4_Click(object sender, EventArgs e)
{
string device_write="";
int deviceno;
deviceno = Convert.ToInt32(device);
if (deviceno == 1)
{
device_write="30";
}
if (deviceno == 2)
{
device_write="31";
}
if (deviceno == 3)
{
device_write="32";
}
if (deviceno == 4)
{
device_write="33";
}
if (deviceno == 5)
{
device_write="34";
}
if (deviceno == 6)
{
device_write="35";
}
if (deviceno == 7)
{
device_write = "36";
}
if (deviceno == 8)
{
device_write="37";
}
if (deviceno ==9)
{
device_write="40";
}
if (deviceno == 10)
{
device_write="41";
}
if (deviceno == 11)
{
device_write = "42";
}
if (deviceno == 12)
{
device_write = "43";
}
if (deviceno == 13)
{
device_write = "48";
}
if (deviceno == 14)
{
device_write = "49";
}
if (deviceno == 15)
{
device_write = "50";
}
if (deviceno == 16)
{
device_write = "51";
}
if (deviceno == 17)
{
device_write = "56";
}
if (deviceno == 18)
{
device_write = "57";
}
if (deviceno == 19)
{
device_write = "58";
}
if (deviceno == 20)
{
device_write = "59";
}
//device
//jiaoban[0] = Convert.ToInt32(objPlc1.ReadPlc("30"));
//jiaoban[1] = Convert.ToInt32(objPlc1.ReadPlc("31"));
//jiaoban[2] = Convert.ToInt32(objPlc1.ReadPlc("32"));
//jiaoban[3] = Convert.ToInt32(objPlc1.ReadPlc("33"));
//jiaoban[4] = Convert.ToInt32(objPlc1.ReadPlc("34"));
//jiaoban[5] = Convert.ToInt32(objPlc1.ReadPlc("35"));
//jiaoban[6] = Convert.ToInt32(objPlc1.ReadPlc("36"));
//jiaoban[7] = Convert.ToInt32(objPlc1.ReadPlc("37"));
//jiaoban[8] = Convert.ToInt32(objPlc1.ReadPlc("40"));
//jiaoban[9] = Convert.ToInt32(objPlc1.ReadPlc("41"));
//jiaoban[10] = Convert.ToInt32(objPlc1.ReadPlc("42"));
//jiaoban[11] = Convert.ToInt32(objPlc1.ReadPlc("43"));
//jiaoban[12] = Convert.ToInt32(objPlc1.ReadPlc("48"));
//jiaoban[14] = Convert.ToInt32(objPlc1.ReadPlc("50"));
//jiaoban[15] = Convert.ToInt32(objPlc1.ReadPlc("51"));
//jiaoban[16] = Convert.ToInt32(objPlc1.ReadPlc("56"));
//jiaoban[17] = Convert.ToInt32(objPlc1.ReadPlc("57"));
//jiaoban[18] = Convert.ToInt32(objPlc1.ReadPlc("58"));
//jiaoban[19] = Convert.ToInt32(objPlc1.ReadPlc("59"));
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否关闭搅拌" + "\r");
if (result == DialogResult.No)
{
return;
}
MainForm.pMainWin.objPlc1.Writeplc(device_write, "0");
string tkdat1 = "";
string tkdat2 = "";
string userid = "admin";
string pm = "";
string batch = "";
string gh = "";
string SetValue;
string insertgh;
string sdwd_t = "";
string sjwd1_t = "";
string sjwd2_t = "";
string yali_t = "";
string op_t = "";
op_t = "关闭搅拌";
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
tkdat1 = DateTime.Now.ToString();
tkdat2 = DateTime.Now.ToString();
gh = obj_gh.Substring(0, 4).ToUpper();
yali_t = MainForm.pMainWin.yl[Convert.ToInt32(device) - 1]; ;
sdwd_t = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1]; ;
sjwd1_t = MainForm.pMainWin.sjwd1[Convert.ToInt32(device) - 1]; ;
sjwd2_t = MainForm.pMainWin.sjwd2[Convert.ToInt32(device) - 1]; ;
SetValue = "('" + pm + "','" + gh + "','" + batch + "','" + tkdat1 + "','" + tkdat2 + "','" + userid + "','" + "1" + "','" + yali_t + "','" + sdwd_t + "','" + sjwd1_t + "','" + op_t + "','" + sjwd2_t + "')";
insertgh = "insert into wd (pm,gh,batch,tkdat1,tkdat2,userid,finish,yl,sdwd,sjwd1,op,sjwd2) values " + SetValue;
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MainForm.pMainWin.ls_IniFile.WriteLog("write1", ex.Message.ToString());
return;
}
}
private void button2_Click(object sender, EventArgs e)
{
string device_write="";
int deviceno;
deviceno = Convert.ToInt32(device);
if (deviceno == 1)
{
device_write = "30";
}
if (deviceno == 2)
{
device_write = "31";
}
if (deviceno == 3)
{
device_write = "32";
}
if (deviceno == 4)
{
device_write = "33";
}
if (deviceno == 5)
{
device_write = "34";
}
if (deviceno == 6)
{
device_write = "35";
}
if (deviceno == 7)
{
device_write = "36";
}
if (deviceno == 8)
{
device_write = "37";
}
if (deviceno == 9)
{
device_write = "40";
}
if (deviceno == 10)
{
device_write = "41";
}
if (deviceno == 11)
{
device_write = "42";
}
if (deviceno == 12)
{
device_write = "43";
}
if (deviceno == 13)
{
device_write = "48";
}
if (deviceno == 14)
{
device_write = "49";
}
if (deviceno == 15)
{
device_write = "50";
}
if (deviceno == 16)
{
device_write = "51";
}
if (deviceno == 17)
{
device_write = "56";
}
if (deviceno == 18)
{
device_write = "57";
}
if (deviceno == 19)
{
device_write = "58";
}
if (deviceno == 20)
{
device_write = "59";
}
//device
//jiaoban[0] = Convert.ToInt32(objPlc1.ReadPlc("30"));
//jiaoban[1] = Convert.ToInt32(objPlc1.ReadPlc("31"));
//jiaoban[2] = Convert.ToInt32(objPlc1.ReadPlc("32"));
//jiaoban[3] = Convert.ToInt32(objPlc1.ReadPlc("33"));
//jiaoban[4] = Convert.ToInt32(objPlc1.ReadPlc("34"));
//jiaoban[5] = Convert.ToInt32(objPlc1.ReadPlc("35"));
//jiaoban[6] = Convert.ToInt32(objPlc1.ReadPlc("36"));
//jiaoban[7] = Convert.ToInt32(objPlc1.ReadPlc("37"));
//jiaoban[8] = Convert.ToInt32(objPlc1.ReadPlc("40"));
//jiaoban[9] = Convert.ToInt32(objPlc1.ReadPlc("41"));
//jiaoban[10] = Convert.ToInt32(objPlc1.ReadPlc("42"));
//jiaoban[11] = Convert.ToInt32(objPlc1.ReadPlc("43"));
//jiaoban[12] = Convert.ToInt32(objPlc1.ReadPlc("48"));
//jiaoban[14] = Convert.ToInt32(objPlc1.ReadPlc("50"));
//jiaoban[15] = Convert.ToInt32(objPlc1.ReadPlc("51"));
//jiaoban[16] = Convert.ToInt32(objPlc1.ReadPlc("56"));
//jiaoban[17] = Convert.ToInt32(objPlc1.ReadPlc("57"));
//jiaoban[18] = Convert.ToInt32(objPlc1.ReadPlc("58"));
//jiaoban[19] = Convert.ToInt32(objPlc1.ReadPlc("59"));
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否开启搅拌" + "\r");
if (result == DialogResult.No)
{
return;
}
MainForm.pMainWin.objPlc1.Writeplc(device_write, "1");
string tkdat1 = "";
string tkdat2 = "";
string userid = "admin";
string pm = "";
string batch = "";
string gh = "";
string SetValue;
string insertgh;
string sdwd_t = "";
string sjwd1_t = "";
string sjwd2_t = "";
string yali_t = "";
string op_t = "";
op_t = "开启搅拌";
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
tkdat1 = DateTime.Now.ToString();
tkdat2 = DateTime.Now.ToString();
gh = obj_gh.Substring(0, 4).ToUpper();
yali_t = MainForm.pMainWin.yl[Convert.ToInt32(device) - 1]; ;
sdwd_t = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1]; ;
sjwd1_t = MainForm.pMainWin.sjwd1[Convert.ToInt32(device) - 1]; ;
sjwd2_t = MainForm.pMainWin.sjwd2[Convert.ToInt32(device) - 1]; ;
SetValue = "('" + pm + "','" + gh + "','" + batch + "','" + tkdat1 + "','" + tkdat2 + "','" + userid + "','" + "1" + "','" + yali_t + "','" + sdwd_t + "','" + sjwd1_t + "','" + op_t + "','" + sjwd2_t + "')";
insertgh = "insert into wd (pm,gh,batch,tkdat1,tkdat2,userid,finish,yl,sdwd,sjwd1,op,sjwd2) values " + SetValue;
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MainForm.pMainWin.ls_IniFile.WriteLog("write1", ex.Message.ToString());
return;
}
}
private void button3_Click(object sender, EventArgs e)
{
string op_t = "";
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否执行操作" + "\r");
if (result == DialogResult.No)
{
return;
}
if (rb_auto.Checked)
{
MainForm.pMainWin.op[Convert.ToInt32(device) - 1] = 1;
MainForm.pMainWin.start[Convert.ToInt32(device) - 1] = 1;
op_t = "开启自动";
}
if (rb_man.Checked)
{
MainForm.pMainWin.op[Convert.ToInt32(device) - 1] = 0;
MainForm.pMainWin.start[Convert.ToInt32(device) - 1] = 0;
op_t = "开启手动";
}
string tkdat1 = "";
string tkdat2 = "";
string userid = "admin";
string pm = "";
string batch = "";
string gh = "";
string SetValue;
string insertgh;
string sdwd_t = "";
string sjwd1_t = "";
string sjwd2_t = "";
string yali_t = "";
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
tkdat1 = DateTime.Now.ToString();
tkdat2 = DateTime.Now.ToString();
gh = obj_gh.Substring(0, 4).ToUpper();
yali_t = MainForm.pMainWin.yl[Convert.ToInt32(device) - 1];
sdwd_t = MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1];
sjwd1_t = MainForm.pMainWin.sjwd1[Convert.ToInt32(device) - 1];
sjwd2_t = MainForm.pMainWin.sjwd2[Convert.ToInt32(device) - 1];
SetValue = "('" + pm + "','" + gh + "','" + batch + "','" + tkdat1 + "','" + tkdat2 + "','" + userid + "','" + "1" + "','" + yali_t + "','" + sdwd_t + "','" + sjwd1_t + "','" + op_t + "','" + sjwd2_t + "')";
insertgh = "insert into wd (pm,gh,batch,tkdat1,tkdat2,userid,finish,yl,sdwd,sjwd1,op,sjwd2) values " + SetValue;
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MainForm.pMainWin.ls_IniFile.WriteLog("write1", ex.Message.ToString());
return;
}
}
private void button6_Click(object sender, EventArgs e)
{
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否执行操作" + "\r");
if (result == DialogResult.No)
{
return;
}
MainForm.pMainWin.sdwd[Convert.ToInt32(device) - 1] = sd_wd.Text;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void button7_Click(object sender, EventArgs e)
{
string tkdat1 = DateTime.Now.ToString();
string tkdat2 = DateTime.Now.ToString();
string userid = "admin";
string pm = cb_pm.Text;
string batch = tb_batch.Text;
string gh = obj_gh.Substring(0, 4).ToUpper();
string SetValue = "('" +pm+"','"+gh+"','"+batch+"','"+tkdat1+"','"+tkdat2+"','"+userid+"','"+"1"+ "')"; ;
string insertgh = "insert into gh (pm,gh,batch,tkdat1,tkdat2,userid,finish) values " + SetValue;
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
string updategh = "update gh set tkdat2='" + tkdat2 + "'," + " finish ='0',"+ "userid='" + userid + "' where gh ='" + gh + "'";
string selectgh = " select count(gh) from gh where gh = '" + gh + "'" + " and finish='" +"1"+ "'";
string count="";
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否执行操作" + "\r");
if (result == DialogResult.No)
{
return;
}
try
{
count = Narnu.GetObjectByOleDbString(selectgh).ToString();
}
catch(Exception ex)
{
MessageBox.Show("出错!" +ex.ToString());
return;
}
// MessageBox.Show(count.ToString());
if (count == "0")
{
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MessageBox.Show("保存数据出现错误0!" + ex.ToString());
return;
}
}
else
{
try
{
Narnu.DoOleDbString(updategh);
}
catch (Exception ex)
{
MessageBox.Show("保存数据出现错误1!" + ex.ToString());
return;
}
try
{
Narnu.DoOleDbString(insertgh);
}
catch (Exception ex)
{
MessageBox.Show("保存数据出现错误2!" + ex.ToString());
return;
}
}
MessageBox.Show("操作成功!");
}
private void bt_com_Click(object sender, EventArgs e)
{
string tkdat1 = DateTime.Now.ToString();
string tkdat2 = DateTime.Now.ToString();
string userid = "admin";
string pm = cb_pm.Text;
string batch = tb_batch.Text;
string gh = obj_gh.Substring(0, 4).ToUpper();
string SetValue = "('" + pm + "','" + gh + "','" + batch + "','" + tkdat1 + "','" + tkdat2 + "','" + userid + "','" + "1" + "')"; ;
string insertgh = "insert into gh (pm,gh,batch,tkdat1,tkdat2,userid,finish) values " + SetValue;
//string updategh = "update gh set " + "pm ='" + pm + "'," + "gh='" + gh + "'," + "batch='" + batch + "'," + "tkdat1='" + tkdat1 + "'," + "tkdat2='" + tkdat2 + "'," + "userid='" + userid + "' where gh ='" +gh + "'";
string updategh = "update gh set tkdat2='" + tkdat2 + "'," + " finish ='0'," + "userid='" + userid + "' where gh ='" + gh + "'";
string selectgh = " select count(gh) from gh where gh = '" + gh + "'" + " and finish='" + "1" + "'";
DialogResult result = MainForm.pMainWin.ls_IniFile.ShowDeleteAlert("是否执行操作" + "\r");
if (result == DialogResult.No)
{
return;
}
try
{
Narnu.DoOleDbString(updategh);
}
catch (Exception ex)
{
MessageBox.Show("保存数据出现错误1!" + ex.ToString());
return;
}
MessageBox.Show("操作成功!");
}
private void button7_Click_1(object sender, EventArgs e)
{
string gh = "";
lb_gh.Text = obj_gh.Substring(0, 4).ToUpper();
gh = obj_gh.Substring(0, 4).ToUpper();
device = obj_gh.Substring(5, 2);
DateTime tk;
DataSet ds;
tk = Convert.ToDateTime(dateTimePicker1.Value);
string selectgh = " select * from gh where gh = '" + gh + "'" + " and tkdat1>=Cdate('" +tk +"')"+ " and finish='" + "1" + "' order by tkdat1 desc";
ds = Narnu.GetDataSetByOleDbString(selectgh);
if (ds.Tables["gh"].Rows.Count == 0)
{
cb_pm.Text = "";
tb_batch.Text = "";
bt_st.Enabled = true;
bt_com.Enabled = false;
//cb_pm
}
else
{
cb_pm.Text = ds.Tables["gh"].Rows[0][6].ToString();
tb_batch.Text = ds.Tables["gh"].Rows[0][5].ToString();
bt_st.Enabled = false;
bt_com.Enabled = true;
}
FillDataTk(gh.ToString(),tk);
}
private void button8_Click(object sender, EventArgs e)
{
PrintDGV.Print_DataGridView(this.dataGridView1);
}
}
}
主要控制程序部分
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Net;
10 using System.Net.Sockets;
11 using System.Data.SqlClient;
12 using System.Data.Sql;
13 using System.Data.OleDb;
14 using System.Reflection;
15 using System.Threading;
16 using System.Runtime.InteropServices;
17 using LBSoft.IndustrialCtrls;
18 using LBSoft.IndustrialCtrls.Meters;
19 using LBSoft.IndustrialCtrls.Utils;
20
21
22 namespace work
23 {
24 public partial class FormNew : Form
25 {
26 public static FormNew pMainWin = null;
27
28 public Plc objPlc = new Plc();
29 public PlcSyn objPlc1 = new PlcSyn();
30 public IniFile ls_IniFile = new IniFile(Environment.CurrentDirectory + "\\log.ini");
31 public Data objData = new Data();
32 public Mutex mutex;
33 public string ddj1read = "";
34 public Thread objThread;
35
36 public string[] sdwd = new string[12];//设定
37 public string[] sjwd1 = new string[12];//高位
38 public string[] sjwd2 = new string[12];//低位
39 public string[] yl = new string[12];//压力
40 public int[] k_dj = new int[3];
41 public int[] guzhangshuru = new int[12];
42 public int[] jiaoban = new int[19];//拌
43 public int[] zhileng = new int[12];//制冷
44 public int[] zhuangtai = new int[12];
45 public int[] chishu = new int[12];
46 public int[] op = new int[12];
47 public string[] opdesc = new string[12];
48 public Thread objReadwdThread;
49 public Thread objReadkzThread;
50 public Thread objFlashztThread;
51 public int[] jb_time = new int[12];
52 public int[] sdjb_time = new int[12];
53
54 public int[] zl_time = new int[12];
55 public int[] flag_30 = new int[12];
56 public int[] flag_60 = new int[12];
57 public int[] flag_180 = new int[12];
58 public int[] flag_10 = new int[12];
59 public int[] time = new int[12];
60 public int[] time_flag = new int[12];
61 public int[] time_zl = new int[12];
62 public int[] time_zl_flag = new int[12];
63 public int[] start = new int[12];
64 public int[] opplc = new int[12];
65 public int flag42;
66 public int flag43;
67 public int flag44;
68 public string[] pm = new string[12];//压力
69 public string[] batch = new string[12];//压力
70 public string[] tkdat = new string[12];//压力
71 public string gs_userid = "";
72 public int[] zhileng_temp = new int[12];//制冷
73
74 public int[] op_jb_flag = new int[12];
75 public int[] op_jb_time = new int[12];
76 public FormNew(string userid)
77 {
78
79 InitializeComponent();
80 pMainWin = this;
81 mutex = new Mutex(false, "SINGLE_INSTANCE_MUTEX");
82 if (!mutex.WaitOne(0, false))
83 {
84 mutex.Close();
85 mutex = null;
86 }
87 this.gs_userid = userid;
88 }
89 //判断一个子窗体是否存在
90 private bool checkChildFrmExist(string childFrmName)
91 {
92 foreach (Form childFrm in this.MdiChildren)
93 {
94 //用子窗体的Name进行判断,如果已经存在则将他激活
95 if (childFrm.Name == childFrmName)
96 {
97 if (childFrm.WindowState == FormWindowState.Minimized)
98 childFrm.WindowState = FormWindowState.Normal;
99 childFrm.Activate();
100 return true;
101 }
102 }
103 return false;
104 }
105 public void readwd()
106 {
107 int device = 0;
108 string dev_desc = "";
109 while (true)
110 {
111
112 try
113 {
114 for (int i = 0; i < 11; i++)
115 {
116 device = 57 + i * 2;
117
118 if (i == 11)
119 {
120 sjwd1[i] = (Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) / 65535 * 50 - 20 + 0.5).ToString("F2");
121 }
122 if (i == 13)
123 {
124 sjwd1[i] = (Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) / 65535 * 50 - 20 + 0.5).ToString("F2");
125 }
126 if (i == 14)
127 {
128 sjwd1[i] = (Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) / 65535 * 50 - 20 + 0.5).ToString("F2");
129 }
130 else
131 {
132 sjwd1[i] = (Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) / 65535 * 50 - 20 + 0.2).ToString("F2");
133 }
134 if (i < 9)
135 {
136 dev_desc = "0" + (i + 1).ToString();
137 // ii01_011.Text = sjwd1[0];
138 }
139 else
140 {
141 dev_desc = (i + 1).ToString();
142 }
143 if (op[i] == 0)
144 {
145 opdesc[i] = "手动";
146 }
147 if (op[i] == 1)
148 {
149 opdesc[i] = "自动";
150 }
151 if (op[i] == 2)
152 {
153 opdesc[i] = "澄清";
154 }
155 if (op[i] == 3)
156 {
157 opdesc[i] = "发酵";
158 }
159 ii01_014.Text = opdesc[0];
160 ii02_024.Text = opdesc[1];
161 ii03_034.Text = opdesc[2];
162 ii04_044.Text = opdesc[3];
163 ii05_054.Text = opdesc[4];
164 ii06_064.Text = opdesc[5];
165 ii07_074.Text = opdesc[6];
166 ii08_084.Text = opdesc[7];
167 ii09_094.Text = opdesc[8];
168 ii10_104.Text = opdesc[9];
169 ii11_114.Text = opdesc[10];
170
171
172 ii01_012.Text = sjwd1[0];
173 ii02_022.Text = sjwd1[1];
174 ii03_032.Text = sjwd1[2];
175 ii04_042.Text = sjwd1[3];
176 ii05_052.Text = sjwd1[4];
177 ii06_062.Text = sjwd1[5];
178 ii07_072.Text = sjwd1[6];
179 ii08_082.Text = sjwd1[7];
180 ii09_092.Text = sjwd1[8];
181 ii10_102.Text = sjwd1[9];
182 ii11_112.Text = sjwd1[10];
183
184 //
185 ii01_011.Text = sdwd[0];
186 ii02_021.Text = sdwd[1];
187 ii03_031.Text = sdwd[2];
188 ii04_041.Text = sdwd[3];
189 ii05_051.Text = sdwd[4];
190 ii06_061.Text = sdwd[5];
191 ii07_071.Text = sdwd[6];
192 ii08_081.Text = sdwd[7];
193 ii09_091.Text = sdwd[8];
194 ii10_101.Text = sdwd[9];
195 ii11_111.Text = sdwd[10];
196
197 //System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox);
198 //FormDisplay FormDisplay = new FormDisplay(pb.Name);
199 //FormDisplay.Show();
200 // sf01_011.Text = sdwd[0].ToString();
201 // sf01_012.Text = sjwd1[0].ToString();
202 //sf01_013.Text = sjwd2[0].ToString();
203 // sf01_014.Text = yl[0].ToString();
204 }
205
206 for (int j = 0; j < 11; j++)
207 {
208 device = 58 + j * 2;
209 yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 3.8/ 65535) * 5).ToString("F2");
210 if ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 3.9 / 65535) > 4.1)
211 {
212 yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 3.8/ 65535 - 3.9) * 5 / 4 + 3.8 * 5).ToString("F2");
213 }
214 else
215 {
216 yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 3.8 / 65535) * 5).ToString("F2");
217 }
218
219 //
220 //if ((Convert.ToDouble(objPlc1.ReadPlc("77")) * 13 / 65535) > 11)
221 //{
222 // yl[1] = (((Convert.ToDouble(objPlc1.ReadPlc("77")) * 13 / 65535) - 11) * 20 / 3 + 11 * 23.2 + 0.4).ToString("F2");
223 //}
224 //else
225 //{
226 // yl[1] = ((Convert.ToDouble(objPlc1.ReadPlc("77")) * 13 / 65535) * 23.2 + 0.4).ToString("F2");
227 //}
228 //if (j == 0)
229 //{
230 // yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 4.1 / 65535) * 5.51).ToString("F2");
231 //}
232
233 //if (j == 25)
234 //{
235 // if ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 4.5 / 65535) > 11)
236 // {
237 // yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 4.5 / 65535) * 5.61).ToString("F2");
238 // }
239 //}
240
241 //if (j == 26)
242 //{
243 // yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 4.5 / 65535) * 5.5).ToString("F2");
244 //}
245 //if (j == 35)
246 //{ // yl[j] = ((Convert.ToDouble(objPlc1.ReadPlc(device.ToString())) * 4.5 / 65535) * 5.5).ToString("F2");
247 //}
248 ii01_013.Text = yl[0];
249 ii02_023.Text = yl[1];
250 ii03_033.Text = yl[2];
251 ii04_043.Text = yl[3];
252 ii05_053.Text = yl[4];
253 ii06_063.Text = yl[5];
254 ii07_073.Text = yl[6];
255 ii08_083.Text = yl[7];
256 ii09_093.Text = yl[8];
257 ii10_103.Text = yl[9];
258 ii11_113.Text = yl[10];
259
260 }
261
262 for (int k = 0; k < 11; k++)
263 {
264 device = 19 + k;
265 zhileng[k] = Convert.ToInt32(objPlc1.ReadPlc(device.ToString()));
266 }
267
268 for (int m = 0; m < 18; m++)
269 {
270 device = 1 + m;
271 jiaoban[m] = Convert.ToInt32(objPlc1.ReadPlc(device.ToString()));
272 }
273
274 //for (int n = 0; n < 41; n++)
275 //{
276 // device = 89 + n;
277 // guzhangshuru[n] = Convert.ToInt32(objPlc1.ReadPlc(device.ToString()));
278 //}
279 //for (int n = 0; n < 3; n++)
280 //{
281 // device = 83 + n;
282 // k_dj[n] = Convert.ToInt32(objPlc1.ReadPlc(device.ToString()));
283 //}
284 Thread.Sleep(200);
285 }
286 catch (Exception e)
287 {
288 //ls_IniFile.WriteLog("ReadData12", e.Message.ToString());
289 continue;
290 }
291
292 }
293 }
294 private string DateDiff(DateTime DateTime1, DateTime DateTime2)
295 {
296 string dateDiff = null;
297 try
298 {
299 TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
300 TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
301 TimeSpan ts = ts1.Subtract(ts2).Duration();
302 dateDiff = ts.Days.ToString() + "天"
303 + ts.Hours.ToString() + "时"
304 + ts.Minutes.ToString() + "分";
305 //+ ts.Seconds.ToString() + "秒";
306 }
307 catch
308 {
309
310 }
311 return dateDiff;
312 }