Files

1222 lines
48 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AGVSystem.Cls;
using System.Reflection;
using System.IO;
using Automation.BDaq;
using System.Diagnostics;
//using Microsoft.Win32;
namespace AGVSystem
{
public partial class mainfrm : Form
{
public static mainfrm newmainfrm;
public static ToolStrip toolStrip;
public static ToolStripStatusLabel Lab_location;
public static ToolStripStatusLabel toolStripStatusLabel;
public static ToolStripStatusLabel toolStrip_info;
private static ClsDBConn_sql db;
public static Panel Map1, Map2, Map3;
public static int[] All_Agv_Reset;//一键复位
public static int[] All_Agv_Stop;//一键停止
public static int[] All_Agv_Close;//一键关机
public static System.Data.DataSet ds_AGVGo = new System.Data.DataSet(); //AGV放行信息
public static System.Data.DataSet ds_AgvWarn = new System.Data.DataSet(); //AGV报警信息
public static System.Data.DataSet ds_WarnList = new System.Data.DataSet(); //AGV报警信息
public static System.Data.DataSet ds_WarnList_Plc = new System.Data.DataSet(); //AGV报警信息
public static System.Data.DataSet ds_Agvlist = new System.Data.DataSet();//保存所有AGV信息
public static System.Data.DataSet ds_CrossInfo = new System.Data.DataSet();//保存所有需要确认的路口信息
public static System.Data.DataSet ds_CrossInfo1 = new System.Data.DataSet();//保存所有需要确认的路口信息
public static System.Data.DataSet ds_CrossInfo2 = new System.Data.DataSet();//保存所有需要确认的路口信息
public static System.Data.DataSet ds_CrossInfo3 = new System.Data.DataSet();//保存所有需要确认的路口信息
public static System.Data.DataSet ds_ProductLine = new System.Data.DataSet();
public static System.Data.DataSet ds_linelandmark = new System.Data.DataSet();
public static System.Data.DataSet ds_AGV_INFO = new System.Data.DataSet();//AGV 信息
public static System.Data.DataSet ds_Change = new DataSet();//充电地标信息
public static System.Data.DataSet ds_Card_DO = new DataSet();
public static System.Data.DataSet ds_Card_DI_Call = new DataSet();
public static System.Data.DataSet ds_Card_DI_Fx = new DataSet();
public static System.Data.DataSet ds_Location = new DataSet();
public static byte[,] Card_DI1 = new byte[4, 8];
public static byte[,] Card_DI2 = new byte[4, 8];
public static byte[,] Card_DI3 = new byte[4, 8];
public static byte[,] Card_DO1 = new byte[4, 8];
public static byte[,] Card_DO2 = new byte[4, 8];
public static byte[,] Card_DO3 = new byte[4, 8];
public static DataSet ds_Reset_Relation = new DataSet();
public static DataSet ds_Mileage = new DataSet();
public static DeviceInformation myDevice_DI0;
public static DeviceInformation myDevice_DI1;
public static DeviceInformation myDevice_DI2;
public static DeviceInformation myDevice_DO0;
public static DeviceInformation myDevice_DO1;
public static DeviceInformation myDevice_DO2;
private static string strsql;
public mainfrm()
{
InitializeComponent();
toolStrip = toolStrip1;
newmainfrm = this;
Lab_location = toolStripStatusLabel2;
mainfrm.toolStripStatusLabel = toolStripStatusLabel7;
toolStrip_info = toolStripStatusLabel3;
try
{
for (byte i = 1; i < 40; i++)
{
string info = Cls.FileRW.ReadIniValue("Item", "Item" + i.ToString(), Application.StartupPath + @"\item.ini");
if (info != "")
{
ToolStripMenuItem toolSubItem = new ToolStripMenuItem();
toolSubItem.Name = "Item" + i.ToString();
toolSubItem.Text = info;
toolSubItem.Click += new EventHandler(ToolStripMenuItem_Click);
itemList.DropDownItems.Add(toolSubItem);
}
else
{
if (i == 1 || i == 2)
{
itemList.Visible = false;
}
}
}
}
catch
{
}
if (init2())
{
lab_project_info.Text = " 本软件仅适用于" + Cls.Param.Pro_factory + " " + Cls.Param.Pro_remark + " 项目代码:" + Cls.Param.Pro_id;
this.Text = "AGV调度管理系统 " + Cls.Param.Pro_factory;
if (File.Exists(Application.StartupPath + "\\background\\" + Cls.Param.Pro_id + ".png"))
{
this.BackgroundImage = Image.FromFile(Application.StartupPath + "\\background\\" + Cls.Param.Pro_id + ".png");
}
if (Cls.Param.map2_status)
cmb_map.Items.Add("Map Page 2.");
if (Cls.Param.map3_status)
cmb_map.Items.Add("Map Page 3.");
toolStripButton18_Click(null, null);
timer1.Enabled = true;
}
else
{
mainfrm.newmainfrm = null;
DatabaseSet db1 = new DatabaseSet();
db1.ShowDialog();
}
}
public static bool init2()
{
Cls.Param.connectStr = Cls.FileRW.ReadIniValue("conn", "conn", Application.StartupPath + @"\info.ini");
Cls.Param.Pro_id = Cls.FileRW.ReadIniValue("item_id", "item_id", Application.StartupPath + @"\info.ini");
Cls.Param.connectStr = Cls.Param.connectStr.Replace("XXXXX", Cls.Param.Pro_id);
if (Cls.Param.connectStr == "")
{
DatabaseSet db = new DatabaseSet();
db.ShowDialog();
return false;
}
for (byte i = 0; i < 4; ++i)
{
for (byte j = 0; j < 8; ++j)
{
Card_DI1[i, j] = 0;
Card_DI2[i, j] = 0;
Card_DI3[i, j] = 0;
Card_DO1[i, j] = 0;
Card_DO2[i, j] = 0;
Card_DO3[i, j] = 0;
}
}
try
{
//AGV信息
strsql = "SELECT AgvInfo.[IPAddress], AgvInfo.[Status],'false' as 联网状态 , AgvInfo.[Internal_ID], " +
" AgvInfo.[Assembly_Line],assembly_line.[line_Name],AgvInfo.[Type],AgvInfo.[ID] ,Assembly_Line.AREA, " +
" AgvInfo.[Loc_id] , AgvInfo.[warn_id] , AgvInfo.Mileage , agvinfo.port , agvinfo.WorkType FROM AgvInfo , Assembly_Line " +
" where assembly_line.[id] = AgvInfo.[Assembly_Line] " +
" order by AgvInfo.[ID]";
ClsDBConn_sql conn = new ClsDBConn_sql();
ds_Agvlist = conn.connDt(strsql).Copy();
//获取AGV总数量
Cls.Param.AGV_Qty = Convert.ToByte(mainfrm.ds_Agvlist.Tables[0].Rows.Count);
//初始化小车信息类
Func.AgvInfo = new Cls.AgvInfo[Cls.Param.AGV_Qty];
All_Agv_Close = new int[Cls.Param.AGV_Qty];
All_Agv_Reset = new int[Cls.Param.AGV_Qty];
All_Agv_Stop = new int[Cls.Param.AGV_Qty];
for (int row = 0; row < mainfrm.ds_Agvlist.Tables[0].Rows.Count; row++)
{
Func.AgvInfo[row] = new Cls.AgvInfo(); ;
Func.AgvInfo[row].Agv_ID = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["ID"].ToString());
Func.AgvInfo[row].AssemblyLine = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Assembly_Line"].ToString());
Func.AgvInfo[row].AssemblyName = mainfrm.ds_Agvlist.Tables[0].Rows[row]["line_Name"].ToString();
Func.AgvInfo[row].Enable = Convert.ToBoolean(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Status"].ToString());
Func.AgvInfo[row].Internal_ID = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Internal_ID"].ToString());
Func.AgvInfo[row].IP = mainfrm.ds_Agvlist.Tables[0].Rows[row]["IPAddress"].ToString();
Func.AgvInfo[row].Area = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["area"].ToString());
Func.AgvInfo[row].Cross_Location_Go = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["LOC_ID"].ToString());
Func.AgvInfo[row].Cross_Path_Id = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Warn_ID"].ToString());
Func.AgvInfo[row].Mileage = Convert.ToDouble(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Mileage"].ToString());
Func.AgvInfo[row].Port = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["port"].ToString());
Func.AgvInfo[row].Type = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Type"].ToString());
Func.AgvInfo[row].WorkType = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["WorkType"].ToString());
Func.AgvInfo[row].Location_Display = 0;
Func.AgvInfo[row].Warn_info = "未上线";
Func.AgvInfo[row].Task_Descrption = "无任务";
Func.AgvInfo[row].Warn_Level = 4;
Func.AgvInfo[row].Control_PLC = Convert.ToInt16(mainfrm.ds_Agvlist.Tables[0].Rows[row]["Type"].ToString());
All_Agv_Stop[row] = 0;
All_Agv_Reset[row] = 0;
All_Agv_Close[row] = 0;
}
strsql = "SELECT [Loc_ID] ,[Card_ID],[Port] ,[Bit] ,[Value] FROM [IO_Set]";
ds_Card_DO = conn.connDt(strsql).Copy();
strsql = "SELECT [Card_ID] ,[Port] ,[Bit] ,[Value] ,[Class] ,[Loc1] ,[Loc2] ,[Loc3] ,[loc4] ,[loc5] FROM [IO_Accept] where class = 0";
ds_Card_DI_Call = conn.connDt(strsql).Copy();
strsql = "SELECT [Card_ID] ,[Port] ,[Bit] ,[Value] ,[Class] ,[Loc1] FROM [IO_Accept] where class =1";
ds_Card_DI_Fx = conn.connDt(strsql).Copy();
strsql = "SELECT [Landmark] FROM [Change_LandMark]";
ds_Change = conn.connDt(strsql).Copy();
//枚举所有可提示的报警信息
strsql = "SELECT [Warn_ID] ,[Warn_Info] ,[Warn_Level] FROM [Warn_Info] order by Warn_ID";
ds_WarnList = conn.connDt(strsql).Copy();
strsql = "SELECT [Warn_ID] ,[Warn_Info] ,[Warn_Level] FROM [Warn_InfoPlc] order by Warn_ID";
ds_WarnList_Plc = conn.connDt(strsql).Copy();
//所有位置信息
strsql = "SELECT [Assembly_Line],[Loc_ID] ,[Flag_Value] ,[Loc_X] ,[Loc_Y] ,[Binding] ,[Area] " +
",[Assembly_ID] ,[Bank] ,[Speed] ,[Next_Station1] ,[Drict1] ,[LongTime1] " +
",[Next_Station2],[Drict2] ,[LongTime2] ,[Next_Station3] ,[Drict3] ,[LongTime3] " +
" FROM [LandMarkInfo]";
ds_linelandmark = conn.connDt(strsql).Copy();
//获取所有放行时需要确认的Cross信息
strsql = "SELECT [Assembly_ID] as 当前产线编号, [LandMark_ID] as 当前地标编号, [Assembly_ID2] as 参考产线编号, [LandMark_ID2] as 参考地标编号 , agv_no as AGV编号 ,reset_mode as 复位模式" +
" FROM Crossing_LandMark " +
" order by [Assembly_ID] , [LandMark_ID] ";
mainfrm.ds_CrossInfo = conn.connDt(strsql).Copy();
mainfrm.ds_CrossInfo1 = mainfrm.ds_CrossInfo;
mainfrm.ds_CrossInfo2 = mainfrm.ds_CrossInfo;
mainfrm.ds_CrossInfo3 = mainfrm.ds_CrossInfo;
//初始化AGV位置信息Temp
Func.Agv_Location_Temp = new int[Cls.Param.AGV_Qty];
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
Func.Agv_Location_Temp[i] = 0;
}
//Cls.Param.connectStr = Properties.Settings.Default.connectStr;
Init();
Delog();
DataSet ds = new DataSet();
strsql = "SELECT ProjectInfo.[Prj_ID], ProjectInfo.[Prj_Name], ProjectInfo.[Remark] FROM ProjectInfo";
ds = db.connDt(strsql);
if (ds == null)
{
DatabaseSet db1 = new DatabaseSet();
db1.ShowDialog();
return false;
}
if (ds.Tables[0].Rows.Count > 0)
{
Cls.Param.Pro_id = ds.Tables[0].Rows[0][0].ToString();
Cls.Param.Pro_factory = ds.Tables[0].Rows[0][1].ToString();
Cls.Param.Pro_remark = ds.Tables[0].Rows[0][2].ToString();
}
strsql = "SELECT '' as 时间 ,'' as 线体编号 , '' as 线体名称 , '' as 设备编号, '' as 内部编号, '' as 报警信息";
ds_AgvWarn = db.connDt(strsql).Copy();
ds_AgvWarn.Tables[0].Rows.RemoveAt(0);
strsql = "SELECT '' as 时间 ,'' as 线体编号 , '' as 线体名称 , '' as 设备编号, '' as 内部编号, '' as 位置, '' as 放行结果";
ds_AGVGo = db.connDt(strsql).Copy();
ds_AGVGo.Tables[0].Rows.RemoveAt(0);
}
catch
{
MessageBox.Show("系统数据库连接参数可能尚未配置,请配置数据库参数!", "华晓AGV管理系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (Cls.Param.Card1_Interval > 0)
{
myDevice_DI0 = new DeviceInformation();
myDevice_DI0.Description = "PCI-1730,BID#0";//板卡名称,可以从DAQ上面找到
myDevice_DI0.DeviceMode = AccessMode.ModeRead;//板卡模式
myDevice_DI0.DeviceNumber = 0;//板卡编号,可以从DAQ上面找到
myDevice_DI0.ModuleIndex = 0;
myDevice_DO0 = new DeviceInformation();
myDevice_DO0.Description = "PCI-1730,BID#0";//板卡名称,可以从DAQ上面找到
myDevice_DO0.DeviceMode = AccessMode.ModeWrite;//板卡模式
myDevice_DO0.DeviceNumber = 0;//板卡编号,可以从DAQ上面找到
myDevice_DO0.ModuleIndex = 0;
}
if (Cls.Param.Card2_Interval > 0)
{
myDevice_DI1 = new DeviceInformation();
myDevice_DI1.Description = "PCI-1730,BID#1";//板卡名称,可以从DAQ上面找到
myDevice_DI1.DeviceMode = AccessMode.ModeRead;//板卡模式
myDevice_DI1.DeviceNumber = 0;//板卡编号,可以从DAQ上面找到
myDevice_DI1.ModuleIndex = 0;
myDevice_DO1 = new DeviceInformation();
myDevice_DO1.Description = "PCI-1730,BID#1";//板卡名称,可以从DAQ上面找到
myDevice_DO1.DeviceMode = AccessMode.ModeWrite;//板卡模式
myDevice_DO1.DeviceNumber = 0;//板卡编号,可以从DAQ上面找到
myDevice_DO1.ModuleIndex = 0;
}
if (Cls.Param.Card3_Interval > 0)
{
myDevice_DI2 = new DeviceInformation();
myDevice_DI2.Description = "PCI-1730,BID#2";//板卡名称,可以从DAQ上面找到
myDevice_DI2.DeviceMode = AccessMode.ModeRead;//板卡模式
myDevice_DI2.DeviceNumber = 0;//板卡编号,可以从DAQ上面找到
myDevice_DI2.ModuleIndex = 0;
myDevice_DO2 = new DeviceInformation();
myDevice_DO2.Description = "PCI-1730,BID#2";//板卡名称,可以从DAQ上面找到
myDevice_DO2.DeviceMode = AccessMode.ModeWrite;//板卡模式
myDevice_DO2.DeviceNumber = 0;//板卡编号,可以从DAQ上面找到
myDevice_DO2.ModuleIndex = 0;
}
return true;
}
private void yunxingjiankongToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
foreach (ToolStripMenuItem tlm in menuStrip1.Items)
{
tlm.BackColor = Color.WhiteSmoke;
}
}
catch { }
((ToolStripMenuItem)sender).BackColor = Color.White;
tool_display('R');
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
Cls.Param.StartFlag = false;
tbtn_start.Text = "开始调度";
tbtn_stop2.Enabled = false;
tbtn_stop1.Enabled = false;
tbtn_start.Enabled = true;
}
private void 资料管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
foreach (ToolStripMenuItem tlm in menuStrip1.Items)
{
tlm.BackColor = Color.WhiteSmoke;
}
}
catch { }
((ToolStripMenuItem)sender).BackColor = Color.White;
tool_display('M');
}
private void 系统设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
foreach (ToolStripMenuItem tlm in menuStrip1.Items)
{
tlm.BackColor = Color.WhiteSmoke;
}
}
catch { }
((ToolStripMenuItem)sender).BackColor = Color.White;
tool_display('S');
}
private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
foreach (ToolStripMenuItem tlm in menuStrip1.Items)
{
tlm.BackColor = Color.WhiteSmoke;
}
}
catch { }
((ToolStripMenuItem)sender).BackColor = Color.White;
tool_display('H');
}
private void 报表查询RToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
foreach (ToolStripMenuItem tlm in menuStrip1.Items)
{
tlm.BackColor = Color.WhiteSmoke;
}
}
catch { }
((ToolStripMenuItem)sender).BackColor = Color.White;
tool_display('P');
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
AGVManage agvmanage = new AGVManage();
agvmanage.MdiParent = this;
agvmanage.Show();
}
private void toolStripButton7_Click(object sender, EventArgs e)
{
APInfo apinfo = new APInfo();
apinfo.MdiParent = this;
apinfo.Show();
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
APTest aptest = new APTest();
aptest.MdiParent = this;
aptest.Show();
}
private void toolStripButton8_Click(object sender, EventArgs e)
{
//SetControl setcontrol = new SetControl();
SetControl setcontrol = new SetControl(this.ClientSize.Width - 5, this.ClientSize.Height - menuStrip1.Height - toolStrip1.Height - statusStrip1.Height - 5);
setcontrol.MdiParent = this;
setcontrol.Show();
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
Linemanage linemanage = new Linemanage();
linemanage.MdiParent = this;
linemanage.Show();
}
private void toolStripButton11_Click(object sender, EventArgs e)
{
Control_Point control_point = new Control_Point(this.ClientSize.Width - 5, this.ClientSize.Height - menuStrip1.Height - toolStrip1.Height - statusStrip1.Height - 5);
control_point.MdiParent = this;
control_point.Show();
}
Form frm1;
private void toolStripButton18_Click(object sender, EventArgs e)
{
//Frm_A111 aa = new Frm_A111();
//aa.MdiParent = this;
//aa.Show();
//return;
//toolStrip1.Visible = false;
tbtn_stop2.ToolTipText = "停止调度";
if (frm1 == null)
{
Cls.Param.StartFlag = true;
//bgcmb.Enabled = true;
tbtn_start.Text = "正在调度";
cmb_map.Enabled = true;
try
{
frm1 = (Form)Assembly.Load("华晓AGV管理系统").CreateInstance("AGVSystem.Frm_" + Cls.Param.Pro_id);
if (frm1 == null)
{
MessageBox.Show("没有找到对应的窗体,frm1 = null");
return;
}
}
catch
{
MessageBox.Show("没有找到对应的窗体!");
return;
}
if (!Cls.Param.Frm_Ischild)
{
frm1.MdiParent = this;
}
frm1.StartPosition = FormStartPosition.CenterScreen;
frm1.Show();
cmb_map.SelectedIndex = 0;
tbtn_stop2.Enabled = true;
tbtn_stop1.Enabled = true;
tbtn_start.Enabled = false;
}
else
{
frm1.Activate();
Cls.Param.StartFlag = true;
tbtn_start.Text = "正在调度";
tbtn_stop2.Enabled = true;
tbtn_stop1.Enabled = true;
tbtn_start.Enabled = false;
}
}
private void toolStripButton14_Click(object sender, EventArgs e)
{
try
{
System.Diagnostics.Process.Start(Application.StartupPath + @"\华晓AGV管理系统操作手册.pdf");
}
catch
{
MessageBox.Show("没有找到制定文件!");
}
}
private void toolStripButton16_Click(object sender, EventArgs e)
{
AboutBox1 AboutBox = new AboutBox1();
AboutBox.ShowDialog();
}
private void mainfrm_Load(object sender, EventArgs e)
{
tool_display('R');
if (Cls.Param.Auto_Control)
{
toolStripButton18_Click(null, null);
}
}
private static void Init()
{
db = new ClsDBConn_sql();
DataSet ds = new DataSet();
string strsql = "SELECT [Col_Name],[Col_Value] FROM [SysParam]";
try
{
ds = db.connDt(strsql);
if (ds == null) return;
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["Col_Name"].ToString().Trim() == "Day_Count")
Cls.Param.Day_Count = Convert.ToInt16(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Card1_Interval")
Cls.Param.Card1_Interval = Convert.ToInt16(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Card2_Interval")
Cls.Param.Card2_Interval = Convert.ToInt16(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Card3_Interval")
Cls.Param.Card3_Interval = Convert.ToInt16(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Auto_Control")
Cls.Param.Auto_Control = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "map1_status")
Cls.Param.map1_status = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "map2_status")
Cls.Param.map2_status = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "map3_status")
Cls.Param.map3_status = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Load_Path_His")
Cls.Param.Load_Path_His = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "AgvLoc_Dynamic_Display")
Cls.Param.Agv_Location_Auto_Display = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "PLC_Type")
Cls.Param.PLC_Type = Convert.ToByte(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Frm_Ischild")
Cls.Param.Frm_Ischild = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Xj_Time1")
Cls.Param.Xj_Time1 = dr["Col_Value"].ToString();
else if (dr["Col_Name"].ToString().Trim() == "Xj_Time2")
Cls.Param.Xj_Time2 = dr["Col_Value"].ToString();
else if (dr["Col_Name"].ToString().Trim() == "Car_Size")
{
Cls.Param.Icon_Size = Convert.ToInt16(dr["Col_Value"].ToString());
if (Cls.Param.Icon_Size < 21) Cls.Param.Icon_Size = 21;
if (Cls.Param.Icon_Size > 150) Cls.Param.Icon_Size = 150;
}
else if (dr["Col_Name"].ToString().Trim() == "Location_ID_Dispaly")
Cls.Param.Location_ID_Dispaly = Convert.ToBoolean(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Wait_Time1")
Cls.Param.Wait_Time1 = Convert.ToInt16(dr["Col_Value"]);
else if (dr["Col_Name"].ToString().Trim() == "Wait_Time2")
Cls.Param.Wait_Time2 = Convert.ToInt16(dr["Col_Value"]);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "华晓AGV管理系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void toolStripButton12_Click(object sender, EventArgs e)
{
SysSet sysset = new SysSet();
sysset.MdiParent = this;
sysset.Show();
}
private void tool_display(char a)
{
if (a == 'R')
{
tbtn_start.Visible = true;
toolS1.Visible = true;
tbtn_stop1.Visible = true;
toolS2.Visible = true;
tbtn_stop2.Visible = true;
toolS3.Visible = true;
tbtn_warn.Visible = true;
toolS4.Visible = true;
tbtn_ap_st.Visible = true;
toolS5.Visible = true;
tbtn_agvm.Visible = false;
toolS6.Visible = false;
tbtn_xt.Visible = false;
toolS7.Visible = false;
tbtn_ap_info.Visible = false;
toolS8.Visible = false;
tbtn_pathset.Visible = false;
toolS9.Visible = false;
tbtn_dbset.Visible = false;
toolS10.Visible = false;
tbtn_yc_log.Visible = false;
toolS11.Visible = false;
tbtn_lj_log.Visible = false;
toolS12.Visible = false;
tbtn_database_set.Visible = false;
toolS13.Visible = false;
tbtn_param_set.Visible = false;
toolS14.Visible = false;
//toolS_inter.Visible = true;
toolS17.Visible = true;
toolStripButton1.Visible = false;
toolStripSeparator1.Visible = false;
toolStripButton2.Visible = false;
toolStripSeparator2.Visible = false;
toolStripButton3.Visible = true;
toolStripSeparator3.Visible = true;
toolStripButton4.Visible = false;
toolStripSeparator4.Visible = false;
toolS18.Visible = false;
tbtn_change.Visible = false;
}
else if (a == 'M')
{
tbtn_start.Visible = false;
toolS1.Visible = false;
tbtn_stop1.Visible = false;
toolS2.Visible = false;
tbtn_stop2.Visible = false;
toolS3.Visible = false;
tbtn_warn.Visible = false;
toolS4.Visible = false;
tbtn_ap_st.Visible = false;
toolS5.Visible = false;
tbtn_agvm.Visible = true;
toolS6.Visible = true;
tbtn_xt.Visible = true;
toolS7.Visible = true;
tbtn_ap_info.Visible = true;
toolS8.Visible = true;
tbtn_pathset.Visible = true;
toolS9.Visible = true;
tbtn_dbset.Visible = true;
toolS10.Visible = true;
tbtn_yc_log.Visible = false;
toolS11.Visible = false;
tbtn_lj_log.Visible = false;
toolS12.Visible = false;
tbtn_database_set.Visible = false;
toolS13.Visible = false;
tbtn_param_set.Visible = false;
toolS14.Visible = false;
toolS_inter.Visible = false;
toolS17.Visible = false;
toolStripButton1.Visible = false;
toolStripSeparator1.Visible = false;
toolStripButton2.Visible = false;
toolStripSeparator2.Visible = false;
toolStripButton3.Visible = false;
toolStripSeparator3.Visible = false;
toolStripButton4.Visible = false;
toolStripSeparator4.Visible = false;
toolS18.Visible = false;
tbtn_change.Visible = false;
}
else if (a == 'S')
{
tbtn_start.Visible = false;
toolS1.Visible = false;
tbtn_stop1.Visible = false;
toolS2.Visible = false;
tbtn_stop2.Visible = false;
toolS3.Visible = false;
tbtn_warn.Visible = false;
toolS4.Visible = false;
tbtn_ap_st.Visible = false;
toolS5.Visible = false;
tbtn_agvm.Visible = false;
toolS6.Visible = false;
tbtn_xt.Visible = false;
toolS7.Visible = false;
tbtn_ap_info.Visible = false;
toolS8.Visible = false;
tbtn_pathset.Visible = false;
toolS9.Visible = false;
tbtn_dbset.Visible = false;
toolS10.Visible = false;
tbtn_yc_log.Visible = false;
toolS11.Visible = false;
tbtn_lj_log.Visible = false;
toolS12.Visible = false;
tbtn_database_set.Visible = true;
toolS13.Visible = true;
tbtn_param_set.Visible = true;
toolS14.Visible = true;
toolS_inter.Visible = false;
toolS17.Visible = false;
toolStripButton1.Visible = false;
toolStripSeparator1.Visible = false;
toolStripButton2.Visible = false;
toolStripSeparator2.Visible = false;
toolStripButton3.Visible = false;
toolStripSeparator3.Visible = false;
toolStripButton4.Visible = true;
toolStripSeparator4.Visible = true;
toolS18.Visible = false;
tbtn_change.Visible = false;
}
else if (a == 'P')
{
tbtn_start.Visible = false;
toolS1.Visible = false;
tbtn_stop1.Visible = false;
toolS2.Visible = false;
tbtn_stop2.Visible = false;
toolS3.Visible = false;
tbtn_warn.Visible = false;
toolS4.Visible = false;
tbtn_ap_st.Visible = false;
toolS5.Visible = false;
tbtn_agvm.Visible = false;
toolS6.Visible = false;
tbtn_xt.Visible = false;
toolS7.Visible = false;
tbtn_ap_info.Visible = false;
toolS8.Visible = false;
tbtn_pathset.Visible = false;
toolS9.Visible = false;
tbtn_dbset.Visible = false;
toolS10.Visible = false;
tbtn_yc_log.Visible = true;
toolS11.Visible = true;
tbtn_lj_log.Visible = true;
toolS12.Visible = true;
tbtn_database_set.Visible = false;
toolS13.Visible = false;
tbtn_param_set.Visible = false;
toolS14.Visible = false;
toolS_inter.Visible = false;
toolS17.Visible = false;
toolStripButton1.Visible = true;
toolStripSeparator1.Visible = true;
toolStripButton2.Visible = true;
toolStripSeparator2.Visible = true;
toolStripButton3.Visible = false;
toolStripSeparator3.Visible = false;
toolStripButton4.Visible = false;
toolStripSeparator4.Visible = false;
toolS18.Visible = true;
tbtn_change.Visible = true;
}
else if (a == 'H')
{
tbtn_start.Visible = false;
toolS1.Visible = false;
tbtn_stop1.Visible = false;
toolS2.Visible = false;
tbtn_stop2.Visible = false;
toolS3.Visible = false;
tbtn_warn.Visible = false;
toolS4.Visible = false;
tbtn_ap_st.Visible = false;
toolS5.Visible = false;
tbtn_agvm.Visible = false;
toolS6.Visible = false;
tbtn_xt.Visible = false;
toolS7.Visible = false;
tbtn_ap_info.Visible = false;
toolS8.Visible = false;
tbtn_pathset.Visible = false;
toolS9.Visible = false;
tbtn_dbset.Visible = false;
toolS10.Visible = false;
tbtn_yc_log.Visible = false;
toolS11.Visible = false;
tbtn_lj_log.Visible = false;
toolS12.Visible = false;
tbtn_database_set.Visible = false;
toolS13.Visible = false;
tbtn_param_set.Visible = false;
toolS14.Visible = false;
toolS_inter.Visible = false;
toolS17.Visible = false;
toolStripButton1.Visible = false;
toolStripSeparator1.Visible = false;
toolStripButton2.Visible = false;
toolStripSeparator2.Visible = false;
toolStripButton3.Visible = false;
toolStripSeparator3.Visible = false;
toolStripButton4.Visible = false;
toolStripSeparator4.Visible = false;
toolS18.Visible = false;
tbtn_change.Visible = false;
}
}
private void cmb_map_SelectedIndexChanged(object sender, EventArgs e)
{
Cls.Param.Map_ID = (byte)cmb_map.SelectedIndex;
}
private void toolStripButton13_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void tbtn_warn_Click(object sender, EventArgs e)
{
warnlist warnlist1 = new warnlist();
warnlist1.Show();
}
private void tbtn_stop2_Click(object sender, EventArgs e)
{
if (Cls.Param.Thread_Count == -1)
{
Cls.Param.Thread_Count = Cls.Param.AGV_Qty;
Cls.Param.StartFlag = false;
tbtn_start.Enabled = true;
tbtn_stop1.Enabled = false;
tbtn_stop2.Enabled = false;
}
}
private void tbtn_database_set_Click(object sender, EventArgs e)
{
DatabaseSet databaseset = new DatabaseSet();
databaseset.MdiParent = this;
databaseset.Show();
}
byte day = 0, day_temp = 0;
private void timer1_Tick(object sender, EventArgs e)
{
toolS_timer.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss ");
if (Cls.Param.Thread_Count != -1)
tbtn_stop2.ToolTipText = "停止调度..." + Cls.Param.Thread_Count.ToString();
day = (byte)DateTime.Now.Day;
if (day - day_temp == 1)
{
day_temp = day;
Delog();
}
else
{
day_temp = day;
}
}
public static frm_card frm_card1;
private void toolS_inter_Click(object sender, EventArgs e)
{
if (frm_card1 == null)
{
frm_card1 = new frm_card();
frm_card1.MdiParent = this;
frm_card1.Show();
}
else
{
frm_card1.Activate();
}
}
private void mainfrm_MouseMove(object sender, MouseEventArgs e)
{
mainfrm.Lab_location.Text = "X " + e.X.ToString() + " ,Y " + e.Y.ToString() + " ]";
}
public static void Delog()
{
string sqlstr;
db = new ClsDBConn_sql();
sqlstr = "Delete FROM Go_Log where datediff( day,Dt , SYSDATETIME()) >" + Cls.Param.Day_Count;
db.Command(sqlstr);
sqlstr = "Delete FROM Location_log where datediff( day,Dt , SYSDATETIME()) >" + Cls.Param.Day_Count;
db.Command(sqlstr);
sqlstr = "Delete FROM net_log where datediff( day,Dt , SYSDATETIME()) >" + Cls.Param.Day_Count;
db.Command(sqlstr);
sqlstr = "Delete FROM warn_log where datediff( day,Dt , SYSDATETIME()) >" + Cls.Param.Day_Count;
db.Command(sqlstr);
sqlstr = "Delete FROM change_log where datediff( day,Start_time , SYSDATETIME()) >" + Cls.Param.Day_Count;
db.Command(sqlstr);
}
private void tbtn_yc_log_Click(object sender, EventArgs e)
{
frmwarnfind frmfind1 = new frmwarnfind();
frmfind1.MdiParent = this;
frmfind1.Show();
}
private void tbtn_lj_log_Click(object sender, EventArgs e)
{
frmfind frmfind1 = new frmfind("地标读取日志");
frmfind1.MdiParent = this;
frmfind1.Show();
}
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
frmfind frmfind1 = new frmfind("AGV放行日志");
frmfind1.MdiParent = this;
frmfind1.Show();
}
private void toolStripButton2_Click_1(object sender, EventArgs e)
{
frmnetfind frmfind1 = new frmnetfind("网络异常日志");
frmfind1.MdiParent = this;
frmfind1.Show();
}
public static Frm_Path_Status frm_Path_Status;
private void toolStripButton3_Click(object sender, EventArgs e)
{
if (frm_Path_Status == null)
{
frm_Path_Status = new Frm_Path_Status();
frm_Path_Status.MdiParent = this;
frm_Path_Status.Width = this.ClientSize.Width - 5;
frm_Path_Status.Height = this.ClientSize.Height - menuStrip1.Height - toolStrip1.Height - statusStrip1.Height - 5;
frm_Path_Status.StartPosition = FormStartPosition.CenterScreen;
frm_Path_Status.Show();
}
else
{
frm_Path_Status.Activate();
}
}
private void toolStripButton4_Click_1(object sender, EventArgs e)
{
logon logon1 = new logon();
//logon1.MdiParent = this;
logon1.StartPosition = FormStartPosition.CenterScreen;
logon1.Show();
}
private void toolStripStatusLabel2_TextChanged(object sender, EventArgs e)
{
if (!toolStripStatusLabel2.Visible)
toolStripStatusLabel2.Visible = !toolStripStatusLabel2.Visible;
}
private void tbtn_change_Click(object sender, EventArgs e)
{
frmchangefind frmfind1 = new frmchangefind("充电记录");
frmfind1.MdiParent = this;
frmfind1.Show();
}
bool Force_Closed_Flag = false;
private void mainfrm_FormClosing(object sender, FormClosingEventArgs e)
{
if (!Force_Closed_Flag)
{
if (MessageBox.Show("是否确定要退出AGV调度管理系统?", "警告!", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
{
e.Cancel = true;
return;
}
Application.ExitThread();
}
}
private void mainfrm_Resize(object sender, EventArgs e)
{
if (frm1 != null)
{
frm1.Width = mainfrm.newmainfrm.ClientSize.Width - 5;
frm1.Height = mainfrm.newmainfrm.ClientSize.Height - 29 - 74 - 22 - 5;
}
}
private void mainfrm_FormClosing(object sender, EventArgs e)
{
}
private static void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string info = ((ToolStripMenuItem)sender).Text.Split('-')[0].Trim();
if (MessageBox.Show("当前启动项目:" + Cls.Param.Pro_id + ", 是否要变更启动项目=" + info, "启动项目选择", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
//RegistryKey key = Registry.LocalMachine;
//RegistryKey software = key.CreateSubKey("Software\\AGV Manager System");
//software.SetValue("item_id", info);
Cls.FileRW.WriteIniValue("item_id", "item_id", info, Application.StartupPath + @"\info.ini");
}
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
}
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
}
private void output设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
OutputSet ioutput = new OutputSet();
ioutput.Show();
}
private void input设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
InputSet ioinput = new InputSet();
ioinput.Show();
}
private void aGV列表ToolStripMenuItem_Click(object sender, EventArgs e)
{
Agv_Status st = new Agv_Status();
st.Show();
}
private void timer2_Tick(object sender, EventArgs e)
{
memory_Check();
}
private void 一键复位ToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (All_Agv_Reset[0] == 0)
{
if (MessageBox.Show("是否复位所有AGV?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
toolStripStatusLabel3.Text = "正在复位所有AGV";
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
All_Agv_Reset[i] = 1;
}
}
}
else
{
toolStripStatusLabel3.Text = "";
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
All_Agv_Reset[i] = 0;
}
}
}
private void 一键停止ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (All_Agv_Stop[0] == 0)
{
if (MessageBox.Show("所有AGV是否紧急停止运行?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
toolStripStatusLabel3.Text = "所有AGV正在停止运行!";
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
All_Agv_Stop[i] = 1;
}
}
else
{
toolStripStatusLabel3.Text = "";
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
All_Agv_Stop[i] = 0;
}
}
}
}
private void 一键关机ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (All_Agv_Close[0] == 0)
{
if (MessageBox.Show("是否关闭所有AGV?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
toolStripStatusLabel3.Text = "所有AGV正在关机!";
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
All_Agv_Close[i] = 1;
}
}
}
else
{
toolStripStatusLabel3.Text = "";
for (int i = 0; i < Cls.Param.AGV_Qty; i++)
{
All_Agv_Close[i] = 0;
}
}
}
private void bgcmb_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void memory_Check()
{
Process[] processes;
processes = System.Diagnostics.Process.GetProcesses();
Process process;
int count = 0;
try
{
if (Func.AgvInfo.Length == 0) return;
for (int i = 0; i < processes.Length - 1; i++)
{
process = processes[i];
if (process.ProcessName.Contains("AGV管理系统"))
{
var p1 = new PerformanceCounter("Process", "Working Set - Private", process.ProcessName);
float aa = p1.NextValue();
if (p1.NextValue() >= 1000000000)
{
for (int j = 0; j < Func.AgvInfo.Length; j++)
{
if (Func.AgvInfo[j].bPlcLinked)
count++;
}
count = 3;
float a = (float)count / (float)Func.AgvInfo.Length;
if ((float)count / (float)Func.AgvInfo.Length <= 0.3)
{
Force_Closed_Flag = true;
System.Windows.Forms.Application.Exit();
}
}
}
}
}
catch
{ }
}
public void Display()
{
if (menuStrip1.Visible)
{
menuStrip1.Visible = false;
toolStrip1.Visible = false;
statusStrip1.Visible = false;
this.FormBorderStyle = FormBorderStyle.None;
}
}
public void Display2()
{
if (!menuStrip1.Visible)
{
menuStrip1.Visible = true;
toolStrip1.Visible = true;
statusStrip1.Visible = true;
this.FormBorderStyle = FormBorderStyle.Sizable;
}
}
}
}