Commit dd073a92 authored by leon.huang's avatar leon.huang

1.版本号更新为1.7.7.ε

2.增加注释
3.多个控件设定"是否滚动条"显示false
4.修改保存本地在mdibase里的引用,改为new三个(前中后)
5.修改ckvocupdata去除开启系统判断,实现全程基线绘制,增加时间超过600min重绘
6.更改第三方HW(实际是HL3000)传输频率与ZB相同(后面可能再修改成另外一种直接传输的逻辑)
7.注释开机等待10S再搜索HMI,这个是更早逻辑,后面有了认为设定"选项""最大搜索时长"后就无须这个逻辑
parent 081e9483
......@@ -42,7 +42,7 @@ namespace GcDevicePc
this.fid1ver.Text = this.FID1version;
this.fid2ver.Text = this.FID2version;
this.tcdver.Text = this.TCD1version;
this.PCver.Text = this.Hmiversion + "/1.7.7.γ";
this.PCver.Text = this.Hmiversion + "/1.7.7.ε";
}
}
}
......@@ -363,7 +363,7 @@ namespace GcDevicePc.Common
globaldata.m_signalbuffer.Channel1_Port.cdata = fidv[i];
globaldata.m_dpbuffer.ShowList.showDet.fDetValue = fidv[i] * 1000.0f;
//截止20211102检查,发现此方法不会被加载,所以暂时不用深究为什么只有Channel1_Port
globaldata.m_signalbuffer.Draw_Port.Add(globaldata.m_signalbuffer.Channel1_Port);
}
}
......
......@@ -40,6 +40,7 @@
this.datalist.HideSelection = false;
this.datalist.Name = "datalist";
this.datalist.OwnerDraw = true;
this.datalist.Scrollable = false;
this.datalist.UseCompatibleStateImageBehavior = false;
this.datalist.View = System.Windows.Forms.View.Details;
//
......
......@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;datalist.Name" xml:space="preserve">
<value>datalist</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>WeifenLuo.WinFormsUI.Docking.DockContent, WeifenLuo.WinFormsUI.Docking, Version=2.9.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481</value>
</data>
......@@ -124,6 +127,37 @@
<value>GcDevicePc.ListViewNF, GcDevicePc, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="datalist.Size" type="System.Drawing.Size, System.Drawing">
<value>286, 330</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>284, 325</value>
</data>
<data name="&gt;&gt;datalist.Parent" xml:space="preserve">
<value>$this</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="datalist.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 12</value>
</data>
<data name="datalist.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DataState</value>
</data>
<data name="datalist.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="&gt;&gt;datalist.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>GC 显示系统</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA
......@@ -290,40 +324,6 @@
AAA=
</value>
</data>
<data name="datalist.Size" type="System.Drawing.Size, System.Drawing">
<value>286, 330</value>
</data>
<data name="&gt;&gt;datalist.Parent" xml:space="preserve">
<value>$this</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="datalist.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>284, 325</value>
</data>
<data name="datalist.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DataState</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 12</value>
</data>
<data name="datalist.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="&gt;&gt;datalist.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>GC 显示系统</value>
</data>
<data name="&gt;&gt;datalist.Name" xml:space="preserve">
<value>datalist</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>宋体, 9pt</value>
</data>
......
......@@ -40,6 +40,7 @@
this.dockPanel1.Name = "dockPanel1";
this.dockPanel1.Size = new System.Drawing.Size(667, 589);
this.dockPanel1.TabIndex = 2;
this.dockPanel1.Resize += new System.EventHandler(this.dockPanel1_Resize);
//
// Formdebug
//
......
......@@ -28,6 +28,7 @@ namespace GcDevicePc
private bool bEnglishLanguage = (Thread.CurrentThread.CurrentUICulture == CultureInfo.GetCultureInfo("en")) ? true:false;
public Formdebug()
{
InitializeComponent();
}
......@@ -149,5 +150,10 @@ namespace GcDevicePc
{
}
private void dockPanel1_Resize(object sender, EventArgs e)
{
}
}
}
......@@ -9,7 +9,7 @@
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ShowAllFiles</ProjectView>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>
......
......@@ -81,6 +81,8 @@ namespace GcDevicePc
// ChannelDataSave2 mydatasave2 = new ChannelDataSave2();
// ChannelDataSave3 mydatasave3 = new ChannelDataSave3();
ChannelDataSaveSum mydatasaveSum = new ChannelDataSaveSum();
ChannelDataSaveSum mydatasaveSum2 = new ChannelDataSaveSum();
ChannelDataSaveSum mydatasaveSum3 = new ChannelDataSaveSum();
/// <summary>
/// 处理数据接口
......@@ -847,7 +849,7 @@ namespace GcDevicePc
/// 1.0.2.3 添加了周期完成后,重新绘图功能
private void timer1_Tick(object sender, EventArgs e)
{
this.Text = String.Format("{0}-1.7.7.γ{1}", globaldata.AppName,Formstr);
this.Text = String.Format("{0}-1.7.7.ε{1}", globaldata.AppName,Formstr);
HmiStatus.Text = bEnglishLanguage == false ? String.Format("状态:{0}", statestr) : String.Format("State:{0}", statestr);
......@@ -1219,10 +1221,9 @@ namespace GcDevicePc
// mydatasave.ChannelDataStart();
// mydatasave2.ChannelDataStart();
// mydatasave3.ChannelDataStart();
mydatasaveSum.ChannelDataStart("Channel1","_前.hw","_A.hw", globaldata.m_signalbuffer.Save_Port);
mydatasaveSum.ChannelDataStart("Channel2","_中.hw","_B.hw", globaldata.m_signalbuffer.Save_Port2);
mydatasaveSum.ChannelDataStart("Channel3","_后.hw","_C.hw", globaldata.m_signalbuffer.Save_Port3);
mydatasaveSum2.ChannelDataStart("Channel2","_中.hw","_B.hw", globaldata.m_signalbuffer.Save_Port2);
mydatasaveSum3.ChannelDataStart("Channel3","_后.hw","_C.hw", globaldata.m_signalbuffer.Save_Port3);
}
if (!String.IsNullOrEmpty(globaldata.connection_ip))
{
......@@ -1575,7 +1576,9 @@ namespace GcDevicePc
}
}
/// <summary>
/// 改变软件上的开始按键为亮/暗
/// </summary>
void Menu_status()
{
if (globaldata.m_hmibuffer.gcinfo.hmistatus != 0)//已开启系统
......@@ -1596,7 +1599,7 @@ namespace GcDevicePc
globaldata.stopflag = true;
(this.title.Controls.Find("pictureMenu1", true)[0] as PictureMenu).PMOptbtnstatus = 4;//开始亮
}
else if(globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 4)
else if(globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5)
{
globaldata.startflag = true;
globaldata.stopflag = false;
......
......@@ -8,7 +8,6 @@ using System.Diagnostics;
using GcDevicePc.IniParam;
using System.IO;
using System.Windows.Forms;
namespace GcDevicePc.ProThread
{
class CKvocUpdata
......@@ -18,7 +17,6 @@ namespace GcDevicePc.ProThread
int isstart = 0;
bool bNowStopFlag = globaldata.stopflag;
bool bBeforeStopFlag = globaldata.stopflag;
//批量更新
//用于更新记录数据
private void Monitor_DataList()
......@@ -27,7 +25,6 @@ namespace GcDevicePc.ProThread
{
double time = 0;
double value = 0;
//float dtime = 0.0f;
//float dvalue = 0.0f;
List<double[]> listPoint = new List<double[]>(); //临时数据区
......@@ -35,72 +32,67 @@ namespace GcDevicePc.ProThread
List<double[]> listRawTem = new List<double[]>(); //原始数据缓存
bool drbool = false;
UInt64 NowTimeOld = 0; //上一周期开始
while (!datamre.WaitOne(500))
{
drbool = false;
listPoint.Clear();
listRaw.Clear();
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 ||
globaldata.m_hmibuffer.gcinfo.methodstatus == 5) ||
globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue
) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 ||
// globaldata.m_hmibuffer.gcinfo.methodstatus == 5) ||
// globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue
// ) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if(true)
{
#if(debug)
#region
// {
//改为全状态下绘制基线(之前是保存在临时,点击开启系统后一股脑丢出)
#if (debug)
Stopwatch st = new Stopwatch(); //计时
st.Reset(); //清零
#endif
//lock处断点,多次点击继续Draw_Port.Count=11,0,30,0,30,0,30,0,0,0,30,10```
lock (globaldata.m_signalbuffer.Draw_Port)
{
bNowStopFlag = globaldata.stopflag;
bNowStopFlag = globaldata.stopflag;//停止按键标志位,默认false
if (globaldata.m_signalbuffer.Draw_Port.Count > 1)
{
if (globaldata.startclear1)
#region
if (globaldata.startclear1)//清除开始按键之前的数据,默认false,从未进入
{
CurveDisPlay.curdisp.cleardata();
globaldata.starttimer =
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
time = 0;
globaldata.startclear1 = false;
}
else
{
if (globaldata.startimerIsSet1)
if (globaldata.startimerIsSet1||time>600)
{
CurveDisPlay.curdisp.cleardata();
globaldata.starttimer =
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
globaldata.starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
time = 0;
globaldata.startimerIsSet1 = false;
}
}//是否清空绘图的标志,外部触发(物理按钮和无源输入)不会更新这个状态为true;或者累计时长大于600min
ushort timeend = globaldata.m_dpbuffer.ShowList.showtime.alltime;
timeend -= 5;
if (globaldata.starttimer == 0)
globaldata.starttimer =
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
#if(debug)
timeend -= 5;//没有实际意义
if (globaldata.starttimer == 0)//成立时执行最近语句,反之不执行
globaldata.starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
#if (debug)
st.Start(); //计时开始
#endif
for (int i = 0; i < globaldata.m_signalbuffer.Draw_Port.Count; i++)
{
if (globaldata.MethodRun_Statue == 4 || globaldata.MethodRun_Statue == 5)
// if (true)
{
{
if ((globaldata.m_hmibuffer.gcinfo.NowStartTime <=
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0])
.ctimer) && isstart == 0 &&
(NowTimeOld != globaldata.m_hmibuffer.gcinfo.NowStartTime))
{
if (CKVocAnalyzer.GlobalCKV.debugwork == 5)
{
CKVocAnalyzer.GlobalCKV.debugwork = 4;
......@@ -110,36 +102,25 @@ namespace GcDevicePc.ProThread
globaldata.starttimer = globaldata.m_hmibuffer.gcinfo.NowStartTime;
NowTimeOld = globaldata.m_hmibuffer.gcinfo.NowStartTime;
CurveDisPlay.curdisp.cleardata();
}
}//从未进入
else
{
isstart = 2;
CurveDisPlay.curdisp.SetAxisX(
(double)globaldata.m_dpbuffer.ShowList.showtime
.alltime / 60.0);
time = 0;
drbool = false;
globaldata.starttimer = globaldata.m_hmibuffer.gcinfo.NowStartTime;
NowTimeOld = globaldata.m_hmibuffer.gcinfo.NowStartTime;
CurveDisPlay.curdisp.cleardata();
Trace.WriteLine(
globaldata.m_hmibuffer.gcinfo.NowStartTime.ToString(), "sys");
}
CKVocAnalyzer.GlobalCKV.dataFtime.FTime =
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
listPoint.Clear(); //清除记录
listRaw.Clear();
}
}
......@@ -161,9 +142,7 @@ namespace GcDevicePc.ProThread
{
listRawTem.Clear(); //缓存3000点,大于3000,重新开始
}
//TCP数据回传
lock (globaldata.m_signalbuffer.TCP_Port)
{
if (globaldata.m_signalbuffer.TCP_Port.Count > 0)
......@@ -183,20 +162,14 @@ namespace GcDevicePc.ProThread
.TCP_Port[tcpi]).detdata1 * 1000.0f, 6)
});
}
if (tcpraw.Count > 0)
{
CurveDisPlay.curdisp.WriteTcp(tcpraw);
}
}
globaldata.m_signalbuffer.TCP_Port.Clear();
}
}
if (isstart == 2 && listRawTem.Count > 0) //回填数据
{
int rami = listRawTem.FindIndex(s => s[0] >= globaldata.starttimer);
......@@ -206,7 +179,7 @@ namespace GcDevicePc.ProThread
{
time += (((UInt64)listRawTem[rami][0] - globaldata.starttimer) /
1000.0f / 60.0f);
if(time > 0xFFFF)
if (time > 0xFFFF)
{
Console.WriteLine("data err");
}
......@@ -214,26 +187,18 @@ namespace GcDevicePc.ProThread
value = listRawTem[rami][1];
listPoint.Add(new double[]
{Math.Round(time, 4), Math.Round(value, 6)});
listRaw.Add(
new double[] { listRawTem[rami][0], Math.Round(value, 6) });
listRaw.Add(new double[] { listRawTem[rami][0], Math.Round(value, 6) });
}
}
listRawTem.Clear();
}
if (globaldata.starttimer <=
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer &&
(((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer -
globaldata.starttimer) > 0)
if (globaldata.starttimer <= ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer && (((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer - globaldata.starttimer) > 0)
{
time += ((((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.ctimer - globaldata.starttimer) / 1000.0f / 60.0f);
if(time > 0xFFFF)
time += ((((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer - globaldata.starttimer) / 1000.0f / 60.0f);
if (time > 0xFFFF)
{
Console.WriteLine("data err");
// Console.WriteLine("data err");
File.AppendAllText(@"./timeErr.txt", time + "\t");//异常time
}
//time += 0.00083;
globaldata.starttimer =
......@@ -241,7 +206,6 @@ namespace GcDevicePc.ProThread
.ctimer;
value = (((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.cdata * 1000.0f);
if (time < 600)
{
listPoint.Add(new double[] { Math.Round(time, 4), Math.Round(value, 6) });
......@@ -251,9 +215,6 @@ namespace GcDevicePc.ProThread
.ctimer,
Math.Round(value, 6)
});
}
//时间判断终点
......@@ -268,17 +229,15 @@ namespace GcDevicePc.ProThread
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.ctimer) && isstart == 2)
{
drbool = true;
isstart = 0;
break;
}
}
//停止按钮按下判断
if(bBeforeStopFlag != bNowStopFlag)
//已停止(运行)状态
if (bBeforeStopFlag != bNowStopFlag)
{
if(drbool == false && bBeforeStopFlag == false && bNowStopFlag == true)
if (drbool == false && bBeforeStopFlag == false && bNowStopFlag == true)
{
drbool = true;
isstart = 0;
......@@ -291,22 +250,21 @@ namespace GcDevicePc.ProThread
globaldata.starttimer =
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.ctimer;
}
//读取数据完毕
// Console.WriteLine(globaldata.m_signalbuffer.Draw_Port.Count);
globaldata.m_signalbuffer.Draw_Port.Clear();
}
#endregion
}
}
#if(debug)
#if (debug)
st.Stop(); //计时终止
Trace.WriteLine("后处理更新时间:" + st.Elapsed.ToString(), "sys");
#endif
#region 已注释
//if (CProfileDevice.m_DevParam.syspara.u16DetFront == 1)
//{
// for (int i = 0; i < listRaw.Count / CProfileDevice.m_DevParam.syspara.u16DetNum; i++)
......@@ -318,10 +276,9 @@ namespace GcDevicePc.ProThread
// lp.Add(listPoint[i]);
// }
//}
#endregion
CurveDisPlay.curdisp.addDataRaw(listRaw); //记录原始数据
CurveDisPlay.curdisp.addPoint(listPoint, drbool); //更新绘画区域
CurveDisPlay.curdisp.addPoint(listPoint, drbool); //更新绘画区域,停止系统后依旧处于累计状态
//lp.Clear();
//lr.Clear();
if (drbool)
......@@ -331,18 +288,14 @@ namespace GcDevicePc.ProThread
}
// Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port.Count));
}
if (globaldata.cancelflag1)
// }
#endregion
if (globaldata.cancelflag1)//取消按键标志
{
globaldata.cancelflag1 = false;
}
// Thread.Sleep(500);
}
// Trace.WriteLine("绘图线程退出!","sys");
}
catch (Exception ex)
......@@ -351,13 +304,10 @@ namespace GcDevicePc.ProThread
}
finally
{
}
}
//List<double[]> lr = new List<double[]>();
//List<double[]> lp = new List<double[]>();
public void CKvocUpdataStart()
{
if (datamre != null)
......@@ -369,11 +319,9 @@ namespace GcDevicePc.ProThread
t_DataSave.IsBackground = true;
t_DataSave.Start();
}
public void CKvocUpdataStop()
{
datamre.Set();
}
}
}
......@@ -40,9 +40,9 @@ namespace GcDevicePc.ProThread
drbool = false;
listPoint.Clear();
listRaw.Clear();
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if(true)
{
// if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// //改为全状态下绘制基线(之前是保存在临时,点击开启系统后一股脑丢出)
// {
#if(debug)
Stopwatch st = new Stopwatch(); //计时
st.Reset(); //清零
......@@ -68,7 +68,7 @@ namespace GcDevicePc.ProThread
else
{
if (globaldata.startimerIsSet2)
if (globaldata.startimerIsSet2||time>600)
{
CurveDisPlay2.curdisp2.cleardata();
starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port2[0]).ctimer;
......@@ -267,7 +267,7 @@ namespace GcDevicePc.ProThread
// Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port2.Count));
}
//}
if (globaldata.cancelflag2)
{
......
......@@ -41,9 +41,9 @@ namespace GcDevicePc.ProThread
drbool = false;
listPoint.Clear();
listRaw.Clear();
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if(true)
{
// if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// //改为全状态下绘制基线(之前是保存在临时,点击开启系统后一股脑丢出)
// {
#if(debug)
Stopwatch st = new Stopwatch(); //计时
st.Reset(); //清零
......@@ -67,7 +67,7 @@ namespace GcDevicePc.ProThread
else
{
if (globaldata.startimerIsSet3)
if (globaldata.startimerIsSet3||time>600)
{
CurveDisPlay3.curdisp3.cleardata();
starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port3[0]).ctimer;
......@@ -261,7 +261,7 @@ namespace GcDevicePc.ProThread
// Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port3.Count));
}
// }
if (globaldata.cancelflag3)
{
......
......@@ -47,7 +47,7 @@ namespace GcDevicePc.ProThread
/// <param name="Save_PortSumList">检测器传原始数据的端口(Save_Port前检测,Save_Port2中检测,Save_Port3后检测)</param>
private void Monitor_Data(string ChannelSumList, string cur_filenameSumList,string EN_cur_filenameSumList,ArrayList Save_PortSumList)
{
#region 已注释代码段
string savefilename="";
double value = 0;
float dvalue = 0.0f;
......@@ -58,7 +58,6 @@ namespace GcDevicePc.ProThread
List<float> savePoint = new List<float>();
List<UInt64> timePoint = new List<UInt64>();//临时数据区
#endregion
try
{
while (!datamre.WaitOne(500))
......@@ -80,13 +79,17 @@ namespace GcDevicePc.ProThread
#endregion
//保证在lock{}执行代码期间,被锁数组不会被干掉
lock (Save_PortSumList)
{
// Console.WriteLine(cur_filenameSumList+"开始lock");
if (Save_PortSumList.Count > 1)
{
#region HMI运行中时,采集端口发送过来的检测器数据,并保存为临时数据,最后将saveflagList变为真
if (globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5)
{
//Console.WriteLine(cur_filenameSumList+"运行中");
//存在软件启动时,HMI就处于运行中,预创建文件夹放在这里,通过saveflagList来判断
if (saveflag== false)
......@@ -130,6 +133,7 @@ namespace GcDevicePc.ProThread
#region HMI处于就绪、运行中以外的时候(其实就是每次方法运行结束),且saveflagList为真时,将临时数据写入并创建谱图文件,最后将saveflagList变为假
else if (globaldata.m_hmibuffer.gcinfo.methodstatus < 3 || globaldata.m_hmibuffer.gcinfo.methodstatus > 5)
{
// Console.WriteLine(cur_filenameSumList+"运行结束");
starttimer = ((SignalBuffer.Channel_XY)Save_PortSumList[0]).ctimer;
Save_PortSumList.Clear();
//if (globaldata.m_hmibuffer.gcinfo.methodstatus > 5 && saveflag)
......@@ -155,10 +159,13 @@ namespace GcDevicePc.ProThread
savePoint = listPoint.GetRange(index1, index2 - index1);
TWFile twfile = new TWFile(savefilename);
twfile.TW_Open();
for (int j = 0; j < savePoint.Count; j++)
{
twfile.bw.Write((int)(savePoint[j] * 1000));
}
twfile.TW_Close(savePoint.Count);
}
......@@ -179,9 +186,10 @@ namespace GcDevicePc.ProThread
#region HMI已就绪时,清空临时数据,如果没有点击开始,清空HMI传过来的检测器数据,同时预创建谱图文件全路径保存为savefilenameList字符
#region HMI已就绪时,清空临时数据,如果没有点击开始,清空HMI传过来的检测器数据
else
{
// Console.WriteLine(cur_filenameSumList+"已就绪");
listPoint.Clear();
timePoint.Clear();
//Console.WriteLine("等待开始按钮!");
......@@ -195,8 +203,11 @@ namespace GcDevicePc.ProThread
}
}
#endregion
}
#region 取消功能
if (globaldata.cancelflag1)
......
......@@ -29,6 +29,7 @@ namespace GcDevicePc.ProThread
try
{
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//socket = socket()需要在for循环里面,因为TCP的套接字描述符不能重用,需要在每个TCP的connect创建连接之前重新创建一个新的套接字描述符。后期验证
// int id = Thread.CurrentThread.ManagedThreadId;
// Console.WriteLine("当前线程{0:X}", id);
......
......@@ -11,6 +11,7 @@ namespace GcDevicePc.ProThread
public class GcDataTh
{
#region 变量
public struct stTemp
{
public ushort usCurTemp_Word1;
......@@ -153,7 +154,7 @@ namespace GcDevicePc.ProThread
break;
k = n;
}
#region 无意义
if (useflag == 0)
{
if ((Int32)(arr[0] - fDetMax_Time) < -100000)
......@@ -175,6 +176,7 @@ namespace GcDevicePc.ProThread
//bDetMax_Time = arr[0];
}
}
#endregion
}
#region 三通道数据获取
......@@ -201,12 +203,14 @@ namespace GcDevicePc.ProThread
UInt32[] timev = new UInt32[30];
float[] fidv = new float[30];
if (this.setflag)
if (this.setflag)//联机后执行
{
ret = m_modbus.ReadHoldingReg(address, num, this.strIP, this.netPost, ref dest);
#region 通过能否读到继电器来决定是否继续
if (ret == 0)
{
//Console.WriteLine(dest);
//获取信号值放入fidv集合(30个)
for (int start = 0, i = 0; start < num;)
{
tmp = dest[start + 1];
......@@ -220,13 +224,14 @@ namespace GcDevicePc.ProThread
start += 4;
i++;
}
//依据dest排序
BubbleSort(ref timev, ref fidv, num / 4, 0);
{
for (int i = 0; i < num / 4; i++)
{
tmp = timev[i];
//(16)0xFFFFFF00=(10)4294967040
if (fDetMax_Time > 0xFFFFFF00 && tmp < 0xFFFFF000)
{
bOverTimes1 = true;
......@@ -234,6 +239,7 @@ namespace GcDevicePc.ProThread
fDetMax_Time = 0;
//Console.WriteLine("Date Over\r\n");
}
//(16)0x00FFFFFF=(10)16777215
if ((tmp > fDetMax_Time && Math.Abs(tmp - fDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim1 == true)
{
// Console.WriteLine($"MaxTime is {string.Format("{0:X}", fDetMax_Time)}: Temp is :{string.Format("{0:X}", tmp)}");
......@@ -253,6 +259,9 @@ namespace GcDevicePc.ProThread
#region 实时绘图原始数据
lock (globaldata.m_signalbuffer.Draw_Port)
{
Thread.Sleep(1);
//缓存信号值,最大5120,最大后重置
if (globaldata.m_signalbuffer.Draw_Port.Count < globaldata.MAX_ARRAY_LEN)
{
globaldata.m_signalbuffer.Draw_Port.Add(globaldata.m_signalbuffer.Channel1_Port);
......@@ -261,12 +270,13 @@ namespace GcDevicePc.ProThread
{
globaldata.m_signalbuffer.Draw_Port.Clear();
}
}
#endregion
#region 本地hw谱图原始数据(具体传输在ChannelDataSaveSum子类中)
lock (globaldata.m_signalbuffer.Save_Port)
{
{ Thread.Sleep(1);
if (globaldata.m_signalbuffer.Save_Port.Count < globaldata.MAX_ARRAY_LEN)
{
globaldata.m_signalbuffer.Save_Port.Add(globaldata.m_signalbuffer.Channel1_Port);
......@@ -275,6 +285,7 @@ namespace GcDevicePc.ProThread
{
globaldata.m_signalbuffer.Save_Port.Clear();
}
}
#endregion
......@@ -326,10 +337,7 @@ namespace GcDevicePc.ProThread
}
}
}
else
{
Log.Info("前检测信号卡死\t"+"ret!=0"+"\taddress:"+address+"\tnum:" +num+"\tthis.strIP:"+ this.strIP+"\tthis.netPost:" +this.netPost+"\tdest:" +dest +"\t"+DateTime.Now.ToString());
}
#endregion
}
}
......@@ -374,10 +382,10 @@ namespace GcDevicePc.ProThread
for (int i = 0; i < num / 4; i++)
{
tmp = timev[i];
if(iDetMax_Time > 0xFFFFF000 && tmp < 0x00FFFFFF)
if (iDetMax_Time > 0xFFFFF000 && tmp < 0x00FFFFFF)
{
bOverTimes2 = true;
OverTimes2 ++;
OverTimes2++;
iDetMax_Time = 0;
}
if ((tmp > iDetMax_Time && Math.Abs(tmp - iDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim2 == true)
......@@ -393,7 +401,7 @@ namespace GcDevicePc.ProThread
{
globaldata.m_signalbuffer.Draw_Port2.Add(globaldata.m_signalbuffer.Channel2_Port);
}
if(globaldata.m_signalbuffer.Save_Port2.Count < globaldata.MAX_ARRAY_LEN)
if (globaldata.m_signalbuffer.Save_Port2.Count < globaldata.MAX_ARRAY_LEN)
{
globaldata.m_signalbuffer.Save_Port2.Add(globaldata.m_signalbuffer.Channel2_Port);
}
......@@ -440,7 +448,7 @@ namespace GcDevicePc.ProThread
}
else
{
Log.Info("中检测信号卡死\t"+"ret!=0"+"\taddress:"+address+"\tnum:" +num+"\tthis.strIP:"+ this.strIP+"\tthis.netPost:" +this.netPost+"\tdest:" +dest +"\t"+DateTime.Now.ToString());
Log.Info("中检测信号卡死\t" + "ret!=0" + "\taddress:" + address + "\tnum:" + num + "\tthis.strIP:" + this.strIP + "\tthis.netPost:" + this.netPost + "\tdest:" + dest + "\t" + DateTime.Now.ToString());
}
}
......@@ -485,10 +493,10 @@ namespace GcDevicePc.ProThread
for (int i = 0; i < num / 4; i++)
{
tmp = timev[i];
if(bDetMax_Time > 0xFFFFFF00 && tmp < 0x000FFFFF)
if (bDetMax_Time > 0xFFFFFF00 && tmp < 0x000FFFFF)
{
bOverTimes3 = true;
OverTimes3 ++;
OverTimes3++;
bDetMax_Time = 0;
}
if ((tmp > bDetMax_Time && Math.Abs(tmp - bDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim3 == true)
......@@ -505,7 +513,7 @@ namespace GcDevicePc.ProThread
{
globaldata.m_signalbuffer.Draw_Port3.Add(globaldata.m_signalbuffer.Channel3_Port);
}
if(globaldata.m_signalbuffer.Save_Port3.Count < globaldata.MAX_ARRAY_LEN)
if (globaldata.m_signalbuffer.Save_Port3.Count < globaldata.MAX_ARRAY_LEN)
{
globaldata.m_signalbuffer.Save_Port3.Add(globaldata.m_signalbuffer.Channel3_Port);
}
......@@ -527,7 +535,7 @@ namespace GcDevicePc.ProThread
}
}
}
else if(globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.sendtoZb)
else if (globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.sendtoZb)
{
lock (globaldata.channelA_C)
{
......@@ -550,7 +558,7 @@ namespace GcDevicePc.ProThread
}
else
{
Log.Info("后检测信号卡死\t"+"ret!=0"+"\taddress:"+address+"\tnum:" +num+"\tthis.strIP:"+ this.strIP+"\tthis.netPost:" +this.netPost+"\tdest:" +dest +"\t"+DateTime.Now.ToString());
Log.Info("后检测信号卡死\t" + "ret!=0" + "\taddress:" + address + "\tnum:" + num + "\tthis.strIP:" + this.strIP + "\tthis.netPost:" + this.netPost + "\tdest:" + dest + "\t" + DateTime.Now.ToString());
}
}
}
......@@ -911,7 +919,7 @@ namespace GcDevicePc.ProThread
ushort[] firestatus = new ushort[4] { 0, 0, 0, 0 };
ushort[] dacstatus = new ushort[6] { 0, 0, 0, 0, 0, 0 };
ushort[] hmiabnormal = new ushort[4];
ushort[] hmipower = new ushort[6] { 0,0,0,0,0,0};
ushort[] hmipower = new ushort[6] { 0, 0, 0, 0, 0, 0 };
//ushort[] epcdata = new ushort[36];
ushort[] epc1 = new ushort[6];
......@@ -1236,9 +1244,9 @@ namespace GcDevicePc.ProThread
if (globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5)
{
UInt64 StartTime = Get_Method_StartTime();
if((HMIStartBeforeTime > 0xFFF00000 && StartTime < 0x00FFFFF) || (HMIStartOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true)))
if ((HMIStartBeforeTime > 0xFFF00000 && StartTime < 0x00FFFFF) || (HMIStartOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true)))
{
HMIStartOverTimes ++;
HMIStartOverTimes++;
}
globaldata.m_hmibuffer.gcinfo.NowStartTime = StartTime + (ulong)(0x100000000 * HMIStartOverTimes);
HMIStartBeforeTime = StartTime;
......@@ -1250,7 +1258,7 @@ namespace GcDevicePc.ProThread
UInt64 EndTime = Get_Method_EndTime();
if ((HMIEndBeforeTime > 0xFFF00000 && EndTime < 0x000FFFFF) || (HMIEndOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true)))
{
HMIEndOverTimes ++;
HMIEndOverTimes++;
}
globaldata.m_hmibuffer.gcinfo.NowEndTime = EndTime + (ulong)(0x100000000 * HMIEndOverTimes);
HMIEndBeforeTime = EndTime;
......@@ -1357,14 +1365,17 @@ namespace GcDevicePc.ProThread
{
try
{
while (!channelmre.WaitOne(500))
{
try
{
lock (globaldata.m_signalbuffer.Draw_Port)
{
//20211104注释lock,注释后前检测实时绘图耗时由50~300降为0
//lock (globaldata.m_signalbuffer.Draw_Port)
// {
update_channeldata();
}
// }
}
catch (Exception e)
{
......
......@@ -84,7 +84,7 @@ using System.Collections.Generic;
if (adapter.OperationalStatus == OperationalStatus.Up) //&& (adapter.Name == Meshport || string.IsNullOrEmpty(Meshport)))
{
bool pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet || adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211); //判断是否是以太网连接
bool pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet || adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211); //判断是否是以太网连接或者WIFI
if (pd1)
{
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
......@@ -95,13 +95,13 @@ using System.Collections.Generic;
{
this._localip.Add(ipadd.Address.ToString());//获取ip
this._localmask.Add(ipadd.IPv4Mask.ToString());//获取子网掩码
this._adapter.Add(adapter.Name.ToString());
this._adapter.Add(adapter.Name.ToString());//网口名称
}
}
}
}
}
if (_adapter.Contains(Meshport) == true)
if (_adapter.Contains(Meshport) == true)//网口是否已存在_adapter集合
{
int sIndex = _adapter.IndexOf(Meshport);
string strLocalip = _localip[sIndex];
......
......@@ -405,6 +405,7 @@ namespace GcDevicePc.ProThread
while (!datamre.WaitOne(500))
{
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1))
//&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1)可以避免没有勾选AB通道下执行不必要代码
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && globaldata.m_hmibuffer.gcinfo.hmistatus == 4 && run_stop != true)
{
int saveB = 0;
......@@ -895,10 +896,6 @@ namespace GcDevicePc.ProThread
StartTimeB = DateTime.Now;
}
}
if (recordA==0||recordB==0)
{
Console.ReadKey();
}
}
catch
......
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
......@@ -296,6 +297,8 @@ namespace GcDevicePc.ProThread
public static GCMethodConfig methodconfig { get; set; }
private void SendToHW_Draw()
{
Stopwatch sw = new Stopwatch();//获取两次循环的间隔时间,单位毫秒
Stopwatch sw2 = new Stopwatch();//hz测试
DateTime StartTimeA;
DateTime StartTimeB;
DateTime EndTimeA;
......@@ -313,7 +316,7 @@ namespace GcDevicePc.ProThread
bool runflag = false;
while (!datamre.WaitOne(500))
{
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true)
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1))
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && globaldata.m_hmibuffer.gcinfo.hmistatus == 4 && run_stop != true)
{
int saveB = 0;
......@@ -353,12 +356,143 @@ namespace GcDevicePc.ProThread
int StepA = 0;
int StepB = 0;
{
StartTimeA = DateTime.Now;
StartTimeB = DateTime.Now;
int mydataA = 0;
int mydataB = 0;
while (true)
int hz = 0;
bool bhz = true;
sw.Restart();
while (hz <= 20)
{
upab(ref StartTimeA, ref StartTimeB, out EndTimeA, out EndTimeB, out tsA, out tsB, out secA, out secB, offetA, offetB, SendNumA, SendNumB, ref saveB, ref recordB, ref recordA, ref saveA, ref onea, ref oneb, ref ackoneA, ref ackoneB, ref StepA, ref StepB, ref mydataA, ref mydataB);
if (StepB >= SendNumB && StepA >= SendNumA)
{
run_stop = true;
sw.Stop();
sw2.Stop();
break;
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
{
//LogHelper.I("methodstatus", "stop");
run_stop = true;
sw.Stop();
sw2.Stop();
break;
}
//写入AB
if (StepA < SendNumA || StepB < SendNumB)
{
if (hz == 20 || sw2.ElapsedMilliseconds >= 1000)
{
//发送20次,但是没有到1S,进入等待,凑足1S。测试发现基本是没到1S
if (hz == 20)
{
while (sw2.ElapsedMilliseconds <= 1000)
{
}
}
//到了1S但是次数不足够20,补齐20
else
{
// Console.WriteLine("到了1S但是次数不足够20,补齐20");
for (int i = 0; i < 20 - hz; i++)
{
upab(ref StartTimeA, ref StartTimeB, out EndTimeA, out EndTimeB, out tsA, out tsB, out secA, out secB, offetA, offetB, SendNumA, SendNumB, ref saveB, ref recordB, ref recordA, ref saveA, ref onea, ref oneb, ref ackoneA, ref ackoneB, ref StepA, ref StepB, ref mydataA, ref mydataB);
SendDataToHW_AB(mydataA, mydataB);
}
}
hz = 0;
sw.Restart();
sw2.Restart();
continue;
}
if (sw.ElapsedMilliseconds == 0 || sw.ElapsedMilliseconds > 50)
{
sw.Restart();
SendDataToHW_AB(mydataA, mydataB);
if (bhz == true)
{
sw2.Restart();
bhz = false;
}
hz++;
Thread.Sleep(1);
continue;
}
else
{
Thread.Sleep(50 - (int)sw.ElapsedMilliseconds);
sw.Restart();
SendDataToHW_AB(mydataA, mydataB);
if (bhz == true)
{
sw2.Restart();
bhz = false;
}
hz++;
continue;
}
}
}
#region 已注释
//写入A
/*
if (StepA < SendNumA && StepB >= SendNumB)
{
// LogHelper.I("SendDataToHW_A", secA.ToString());
SendDataToHW_A(mydataA);
Thread.Sleep(50);
}
//写入B
if (StepB < SendNumB && StepA >= SendNumA)
{
// LogHelper.I("SendDataToHW_B", secB.ToString());
SendDataToHW_B(mydataB);
Thread.Sleep(50);
}
*/
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
//{
// break;
//}
#endregion
}
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5) || run_stop)
{
if (runflag)
{
StopSendDataToHW();
CleanAllToHWData();
runflag = false;
run_stop = false;
}
}
}
}
private static void upab(ref DateTime StartTimeA, ref DateTime StartTimeB, out DateTime EndTimeA, out DateTime EndTimeB, out TimeSpan tsA, out TimeSpan tsB, out int secA, out int secB, int offetA, int offetB, ushort SendNumA, ushort SendNumB, ref int saveB, ref int recordB, ref int recordA, ref int saveA, ref int onea, ref int oneb, ref bool ackoneA, ref bool ackoneB, ref int StepA, ref int StepB, ref int mydataA, ref int mydataB)
{
EndTimeA = DateTime.Now;
tsA = StartTimeA.Subtract(EndTimeA).Duration();
......@@ -368,6 +502,8 @@ namespace GcDevicePc.ProThread
secB = (int)tsB.TotalSeconds;
try
{
if (methodconfig.signal.u16ChannelA == 1)
{
if (StepA < SendNumA)
{
......@@ -519,8 +655,11 @@ namespace GcDevicePc.ProThread
StartTimeA = DateTime.Now;
}
}
}
if ( methodconfig.signal.u16ChannelB == 1)
{
if (StepB < SendNumB)
{
if (secB <= methodconfig.signal.u16DetTimeLengthB[StepB])
......@@ -664,73 +803,11 @@ namespace GcDevicePc.ProThread
}
}
}
catch(Exception ex)
{
File.AppendAllText(Application.StartupPath + "\\HW.txt",ex.Message + "\r\n");//查看HW基线持平原因
}
//写入AB
if (StepA < SendNumA && StepB < SendNumB)
{
//Console.WriteLine("SendDataToHW A B", secA.ToString() + " "+ secB.ToString());
SendDataToHW_AB(mydataA, mydataB);
// File.AppendAllText(Application.StartupPath + "\\HW.txt",$"{DateTime.Now}:SendDataToHW A:{mydataA} B:{mydataB} ChannelA_A Count:{globaldata.channelA_A.Count} ChannelB_A Count:{globaldata.channelB_A.Count}\r\n");//查看HW基线持平原因
Thread.Sleep(50);
}
//写入A
if (StepA < SendNumA && StepB >= SendNumB)
{
// LogHelper.I("SendDataToHW_A", secA.ToString());
SendDataToHW_A(mydataA);
Thread.Sleep(50);
}
//写入B
if (StepB < SendNumB && StepA >= SendNumA)
{
// LogHelper.I("SendDataToHW_B", secB.ToString());
SendDataToHW_B(mydataB);
Thread.Sleep(50);
}
if (StepB >= SendNumB && StepA >= SendNumA)
{
run_stop = true;
break;
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
{
//LogHelper.I("methodstatus", "stop");
run_stop = true;
break;
}
}
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
//{
// break;
//}
}
}
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5) || run_stop)
catch (Exception ex)
{
if (runflag)
{
StopSendDataToHW();
CleanAllToHWData();
runflag = false;
run_stop = false;
}
}
File.AppendAllText(Application.StartupPath + "\\HW.txt", ex.Message + "\r\n");//查看HW基线持平原因
}
}
......
......@@ -236,7 +236,7 @@ namespace GcDevicePc
}));
break;
}
}
}//如果没有从集合找到可连接IP,进入下一步
if (bCanFindBindHMI == true)
{
break;
......@@ -332,7 +332,7 @@ namespace GcDevicePc
{
try
{
globaldata.connection_ip = ((globaldata.DeviceInfo)globaldata.DeviceList[HMIMACComboBox1.SelectedIndex]).IpAddr;
globaldata.connection_ip = ((globaldata.DeviceInfo)globaldata.DeviceList[HMIMACComboBox1.SelectedIndex]).IpAddr;//ip和mac绑定
bBindOK = true;
this.label3.Text = "";
HMIMACComboBox1.Visible = false;
......@@ -353,12 +353,12 @@ namespace GcDevicePc
private void vSearch_HMI_Poll()
{
Thread.Sleep(10000); //延时10S等待HMI开机
// Thread.Sleep(10000); //延时10S等待HMI开机,改为用户指定(选项)
HMISearch mysearch = new HMISearch(globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.hmimac);
mysearch.bSearch_Bind_HMI();
bStartSearchOK = true;
mysearch.ThStart();
mysearch.ThStart();
// mysearch.ThStart();
if (globaldata.DeviceList.Count < 1)
{
......
......@@ -24,7 +24,7 @@ AppName=
Name=admin
Password=0
[SendData]
Thirdparty=1
Thirdparty=0
Foreign=1
[SaveData]
ZBSaveData=1
......
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment