Commit bf803b1b 张东亮

检查AGV离开信号亮了以后3秒再关闭

1 个父辈 29fc87a5
......@@ -33,10 +33,10 @@ namespace LogisticsIntelligence
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label1 = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.tableLayoutPanel1.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
......@@ -51,27 +51,22 @@ namespace LogisticsIntelligence
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 44.22222F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 55.77778F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 39.32806F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 60.67194F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1216, 620);
this.tableLayoutPanel1.Size = new System.Drawing.Size(1216, 470);
this.tableLayoutPanel1.TabIndex = 1;
//
// tabControl1
//
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tabControl1.Location = new System.Drawing.Point(3, 277);
this.tabControl1.Location = new System.Drawing.Point(3, 187);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1210, 340);
this.tabControl1.Size = new System.Drawing.Size(1210, 280);
this.tabControl1.TabIndex = 0;
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.label1);
......@@ -79,7 +74,7 @@ namespace LogisticsIntelligence
this.groupBox1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(3, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(1210, 268);
this.groupBox1.Size = new System.Drawing.Size(1210, 178);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "电梯状态";
......@@ -90,15 +85,20 @@ namespace LogisticsIntelligence
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(3, 19);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(1204, 246);
this.label1.Size = new System.Drawing.Size(1204, 156);
this.label1.TabIndex = 2;
this.label1.Text = "label1";
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// FrmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1216, 620);
this.ClientSize = new System.Drawing.Size(1216, 470);
this.Controls.Add(this.tableLayoutPanel1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
......
......@@ -67,8 +67,9 @@ namespace LogisticsIntelligence
form.TopLevel = false;
linePan.Controls.Add(form);
form.Dock = DockStyle.Fill;
linePan.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
form.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
form.AutoScroll = true;
// linePan.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
// form.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
form.Show();
// tabPageList.Add(lineTabPage);
tabControl1.Controls.Add(lineTabPage);
......
......@@ -18,5 +18,22 @@ DO,D2-AGV呼叫3F,LIFT_D2_ThirdCall,3,PRO_AOI_IP_1,0,D2-AGV呼叫3F,Y24,Y24,0
DO,D2-AGV呼叫4F,LIFT_D2_FourthCall,4,PRO_AOI_IP_1,0,D2-AGV呼叫4F,Y25,Y25,0
DO,D2-送料信号1F,LIFT_D2_RunToFirst,5,PRO_AOI_IP_1,0,D2-送料信号1F,Y26,Y26,0
DO,D2-送料信号3F,LIFT_D2_RunToThird,6,PRO_AOI_IP_1,0,D2-送料信号3F,Y27,Y27,0
DO,D2-送料信号4F,LIFT_D2_RunToFourth,7,PRO_AOI_IP_1,0,D2-送料信号4F,Y27,Y27,0
DO,D2-送料信号4F,LIFT_D2_RunToFourth,7,PRO_AOI_IP_1,0,D2-送料信号4F,Y28,Y28,0
,,,,,,,,,
DI,C1-任务应答,LIFT_C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
DI,C1-到达1F,LIFT_C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
DI,C1-到达3F,LIFT_C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
DI,C1-到达4F,LIFT_C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
DI,C1-门已开,LIFT_C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
DI,C1-故障中,LIFT_C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
DI,C1-运行中,LIFT_C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
,,,,,,,,,
DO,C1-AGV请求,LIFT_C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
DO,C1-AGV离开,LIFT_C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
DO,C1-AGV呼叫1F,LIFT_C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
DO,C1-AGV呼叫3F,LIFT_C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
DO,C1-AGV呼叫4F,LIFT_C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
DO,C1-送料信号1F,LIFT_C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
DO,C1-送料信号3F,LIFT_C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
DO,C1-送料信号4F,LIFT_C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
,,,,,,,,,
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<agvs>
<agv id="49" ip="10.85.199.81">
<name>10号车</name>
<!--负责区域:D,C,Air_C-->
<ResponsAreas>
<Area>D</Area>
</ResponsAreas>
<!--是否调用-->
<IsUse>False</IsUse>
<UseFleet>true</UseFleet>
<Authorization>Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==</Authorization>
<IO_GUIDs>
<IO_GUID index="0">6ad07e3a-e0e9-11eb-a184-0001299981d4</IO_GUID>
<IO_GUID index="1">3b5c0497-e2f2-11eb-95df-000129922ca6</IO_GUID>
<IO_GUID index="2">4e49e4c8-e2f2-11eb-95df-000129922ca6</IO_GUID>
</IO_GUIDs>
</agv>
</agvs>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<root>
<!--最小充电电量,小于该电量将不会执行任务-->
<min>20</min>
<!--空闲车辆需要充电的电量-->
<mid>50</mid>
<!--充电完成电量-->
<max>90</max>
<piles>
<pile id ="0">
<!--名称-->
<name>AutoCharge1</name>
<!--别名-->
<alicename>充电位1</alicename>
<!--固定充电桩-->
<fixed>true</fixed>
<!--固定充电桩为true,取第一个;false则判断所有agv.填写AGV编号-->
<agvs>
<agv>49</agv>
</agvs>
</pile>
</piles>
</root>
<?xml version="1.0" encoding="utf-8" ?>
<tasks>
<task id ="0">
<name>Init</name>
<alicename>初始化</alicename>
<guid>2bcd29b8-e2f2-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>None</type>
</task>
<task id ="1">
<name>Standby</name>
<alicename>待机位</alicename>
<guid>501522b3-e2f2-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>None</type>
</task>
<task id ="2">
<name>AutoCharge</name>
<alicename>充电位</alicename>
<guid>40c17cb4-e2f2-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>None</type>
</task>
<task id ="3">
<name>Enter</name>
<alicename>进料</alicename>
<guid>31a3a69e-e310-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>InOut</type>
</task>
<task id ="4">
<name>Leave</name>
<alicename>出料</alicename>
<guid>ba68ea32-e310-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>InOut</type>
</task>
<task id ="5">
<name>CheckShelf</name>
<alicename>负载检查</alicename>
<guid>7f6edf46-e316-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>None</type>
</task>
<task id ="6">
<name>D1</name>
<alicename>移动到D1线</alicename>
<guid>03925a62-e2fa-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="7">
<name>D2</name>
<alicename>移动到D2线</alicename>
<guid>17419a7e-e2fa-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="8">
<name>D3</name>
<alicename>移动到D3线</alicename>
<guid>39052eb5-e2fa-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="9">
<name>D4</name>
<alicename>移动到D4线</alicename>
<guid>4cbec837-e2fa-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="10">
<name>D5</name>
<alicename>移动到D5线</alicename>
<guid>63241a92-e2fa-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="11">
<name>D6</name>
<alicename>移动到D6线</alicename>
<guid>d264a9c2-e2fb-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="12">
<name>D7</name>
<alicename>移动到D7线</alicename>
<guid>e2d00611-e2fb-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="13">
<name>D8</name>
<alicename>移动到D8线</alicename>
<guid>f636e5a8-e2fb-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="14">
<name>D9</name>
<alicename>移动到D9线</alicename>
<guid>164a436d-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="15">
<name>D10</name>
<alicename>移动到D10线</alicename>
<guid>663d8278-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="16">
<name>D11</name>
<alicename>移动到D11线</alicename>
<guid>7e0996dd-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="17">
<name>D12</name>
<alicename>移动到D12线</alicename>
<guid>93bc0500-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="18">
<name>D13</name>
<alicename>移动到D13线</alicename>
<guid>b2e5d20e-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="19">
<name>D14</name>
<alicename>移动到D14线</alicename>
<guid>dd1da0b8-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="20">
<name>D15</name>
<alicename>移动到D15线</alicename>
<guid>f1109e49-e2fc-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="21">
<name>D16</name>
<alicename>移动到D16线</alicename>
<guid>6e984dd1-e30a-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="22">
<name>T01</name>
<alicename>移动到T1线</alicename>
<guid>532c7cda-e2f4-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="23">
<name>T02</name>
<alicename>移动到T2线</alicename>
<guid>27dc2449-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="24">
<name>T03</name>
<alicename>移动到T3线</alicename>
<guid>576a579b-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="25">
<name>T04</name>
<alicename>移动到T4线</alicename>
<guid>7c474d94-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="26">
<name>T05</name>
<alicename>移动到T5线</alicename>
<guid>9779e5bb-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="27">
<name>T06</name>
<alicename>移动到T6线</alicename>
<guid>a6a092a2-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="28">
<name>T07</name>
<alicename>移动到T7线</alicename>
<guid>ba68467a-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="29">
<name>T08</name>
<alicename>移动到T8线</alicename>
<guid>d4e59d24-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="30">
<name>T09</name>
<alicename>移动到T9线</alicename>
<guid>ed9b0352-e2f9-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>Move</type>
</task>
<task id ="31">
<name>Adjust</name>
<alicename>调宽</alicename>
<guid>45f417f6-e316-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>None</type>
</task>
<task id ="32">
<name>治具智能仓储</name>
<alicename>治具智能仓储</alicename>
<guid>111486eb-e3b4-11eb-8a99-94c691a7387d</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>None</type>
</task>
</tasks>
\ No newline at end of file
......@@ -91,20 +91,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Config\agvinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\chargeinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\nodeinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\taskinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="Config\LineConfig.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
......@@ -72,7 +72,7 @@ namespace DeviceLibrary.Models
/// <returns></returns>
public bool IsIdle(out string msg)
{
msg = "";
msg = "ok";
if (Monitor.TryEnter(locObj, 500))
{
......@@ -192,8 +192,6 @@ namespace DeviceLibrary.Models
}
else
{
OpenAGVRequest(true);
Thread.Sleep(2000);
if (IOManager.IOValue($"{liftId}{SettingString._Response}").Equals(IO_VALUE.HIGH))
{
if (IOManager.IOValue($"{liftId}{SettingString._DoorOpen}").Equals(IO_VALUE.HIGH))
......@@ -202,15 +200,16 @@ namespace DeviceLibrary.Models
LogUtil.info($"{lift} 上一次异常退出,发送AGV离开清除异常状态!");
return false;
}
SetState(LiftState.Busy);
Status.Set(lift);
msg = "ok";
return true;
}
msg = "电梯未任务应答";
LogUtil.error($"{lift} 失败:{msg}");
SetState(LiftState.Busy);
Status.Set(lift);
OpenAGVRequest(true);
Thread.Sleep(2000);
msg = "ok";
return true;
}
}
msg = "电梯被占用";
return false;
}
......@@ -226,7 +225,7 @@ namespace DeviceLibrary.Models
if (IsDesClient(doorInfo))
{
//关闭送料信号
CloseSendFloor();
CloseSendFloor(doorInfo);
//AGV离开信号,使得门关
CloseDoor();
Status.Clear();
......@@ -239,12 +238,12 @@ namespace DeviceLibrary.Models
if (IsSrcClient(doorInfo))
{
//关闭呼叫信号
CloseCallFloor();
CloseCallFloor(doorInfo);
//AGV离开信号,使得门关
CloseDoor();
if (!Status.destinationFloor.Equals(-1))
{
RunToFloor(Status.destinationFloor);
RunToFloor(Status.destinationFloor, doorInfo);
LogUtil.info($"AGV离开,{doorInfo.sourceFloor}[{doorInfo.sourceFloor}]将产品送入电梯[{liftId}]");
}
}
......@@ -256,9 +255,10 @@ namespace DeviceLibrary.Models
/// 运行到指定楼层(送料信号)
/// </summary>
/// <param name="floor"></param>
private void RunToFloor(int floor)
private void RunToFloor(int floor, DoorInfo door)
{
Task.Factory.StartNew(() => {
Task.Factory.StartNew(() =>
{
switch (floor)
{
//case -1:
......@@ -291,7 +291,7 @@ namespace DeviceLibrary.Models
Thread.Sleep(1000);
}
LogUtil.info($"送料信号:运行到{floor}层");
CloseSendFloor();
CloseSendFloor(door);
});
}
......@@ -390,12 +390,12 @@ namespace DeviceLibrary.Models
clientInfo.SetInfo(clientStatus.sourceClient, clientStatus.hasIdleAgv);
}
}
private void CloseSendFloor()
private void CloseSendFloor(DoorInfo doorInfo)
{
IOManager.CIOMove($"{liftId}{SettingString._RunToFirst}", IO_VALUE.LOW);
IOManager.CIOMove($"{liftId}{SettingString._RunToThird}", IO_VALUE.LOW);
IOManager.CIOMove($"{liftId}{SettingString._RunToFourth}", IO_VALUE.LOW);
LogUtil.info("关闭所有送料信号");
LogUtil.info($"{doorInfo}:关闭所有送料信号");
}
/// <summary>
/// 等待运行信号亮或者关信号
......@@ -409,6 +409,10 @@ namespace DeviceLibrary.Models
{
return IOManager.IOValue($"{liftId}{SettingString._DoorOpen}").Equals(IO_VALUE.HIGH);
}
private bool CheckAgvLeave()
{
return IOManager.IOValue($"{liftId}{SettingString._AGVLeave}").Equals(IO_VALUE.HIGH);
}
private bool CheckIsInRun()
{
return IOManager.IOValue($"{liftId}{SettingString._InRun}").Equals(IO_VALUE.HIGH);
......@@ -422,39 +426,44 @@ namespace DeviceLibrary.Models
if (open)
{
IOManager.CIOMove($"{liftId}{SettingString._AGVLeave}", IO_VALUE.HIGH);
LogUtil.info("打开AGV离开信号");
LogUtil.info($"{liftId}打开AGV离开信号");
}
else
{
IOManager.CIOMove($"{liftId}{SettingString._AGVLeave}", IO_VALUE.LOW);
LogUtil.info("关闭AGV离开信号");
LogUtil.info($"{liftId}关闭AGV离开信号");
}
}
private void OpenAGVLeave(int second)
{
Task.Factory.StartNew(() => {
Task.Factory.StartNew(() =>
{
OpenAGVLeave(true);
Task.Delay(second*1000);
Task.Delay(second * 1000);
OpenAGVLeave(false);
});
}
private void CloseDoor()
{
Task.Factory.StartNew(()=>
Task task = Task.Factory.StartNew(() =>
{
OpenAGVLeave(true);
Thread.Sleep(3000);
DateTime dateTime = DateTime.Now;
//门关信号
while (CheckDoorOpen() && (DateTime.Now - dateTime).TotalMinutes<1)
while ((CheckDoorOpen() || !CheckAgvLeave()) && (DateTime.Now - dateTime).TotalMinutes < 1)
{
if ((DateTime.Now - dateTime).TotalSeconds > 5)
if ((DateTime.Now - dateTime).TotalSeconds > 3)
{
IOManager.CIOMove($"{liftId}{SettingString._AGVLeave}", IO_VALUE.HIGH);
dateTime = DateTime.Now;
}
Thread.Sleep(300);
Thread.Sleep(3000);
}
Thread.Sleep(3000);
OpenAGVLeave(false);
});
task.Wait(20000);
}
private void OpenAGVRequest(bool open)
{
......@@ -469,12 +478,18 @@ namespace DeviceLibrary.Models
LogUtil.info("关闭AGV请求信号");
}
}
private void CloseCallFloor(DoorInfo doorInfo)
{
IOManager.CIOMove($"{liftId}{SettingString._FirstCall}", IO_VALUE.LOW);
IOManager.CIOMove($"{liftId}{SettingString._ThirdCall}", IO_VALUE.LOW);
IOManager.CIOMove($"{liftId}{SettingString._FourthCall}", IO_VALUE.LOW);
LogUtil.info($"{doorInfo}:关闭所有呼叫信号");
}
private void CloseCallFloor()
{
IOManager.CIOMove($"{liftId}{SettingString._FirstCall}", IO_VALUE.LOW);
IOManager.CIOMove($"{liftId}{SettingString._ThirdCall}", IO_VALUE.LOW);
IOManager.CIOMove($"{liftId}{SettingString._FourthCall}", IO_VALUE.LOW);
LogUtil.info("关闭所有呼叫信号");
}
}
/// <summary>
......
......@@ -29,8 +29,8 @@ namespace DeviceLibrary.Service
}
else
{
Log.Info($"AGVLeave接口被调用:{doorInfo}");
Context.LiftContext.AGVLeave(doorInfo,out string msg);
Log.Info($"AGVLeave接口被调用:{doorInfo},rtn_msg={msg}");
result.msg = msg;
}
return result;
......@@ -50,8 +50,8 @@ namespace DeviceLibrary.Service
}
else
{
Log.Info($"AGVCall接口被调用:{doorInfo}");
Context.LiftContext.AGVCall(doorInfo, out string msg);
Log.Info($"AGVCall接口被调用:{doorInfo},rtn_msg={msg}");
result.msg = msg;
}
return result;
......@@ -71,8 +71,8 @@ namespace DeviceLibrary.Service
}
else
{
Log.Info($"请求接口被调用:{sendInInfo}");
bool idle= Context.LiftContext.RequestSendIn(sendInInfo,out string msg);
Log.Info($"请求接口被调用:{sendInInfo},[{msg}]");
result.msg = msg;
}
return result;
......
......@@ -106,7 +106,83 @@ namespace LoadCSVLibrary
[ConfigProAttribute("LIFT_D2_RunToFourth", false)]
public string LIFT_D2_RunToFourth { get; set; }
/// <summary>
/// DI,C1-任务应答,LIFT_C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
/// </summary>
[ConfigProAttribute("LIFT_C1_Response", false)]
public string LIFT_C1_Response { get; set; }
/// <summary>
/// DI,C1-到达1F,LIFT_C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
/// </summary>
[ConfigProAttribute("LIFT_C1_AtFirst", false)]
public string LIFT_C1_AtFirst { get; set; }
/// <summary>
/// DI,C1-到达3F,C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
/// </summary>
[ConfigProAttribute("LIFT_C1_AtThird", false)]
public string LIFT_C1_AtThird { get; set; }
/// <summary>
/// DI,C1-到达4F,C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
/// </summary>
[ConfigProAttribute("LIFT_C1_AtFourth", false)]
public string LIFT_C1_AtFourth { get; set; }
/// <summary>
/// DI,C1-门已开,C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
/// </summary>
[ConfigProAttribute("LIFT_C1_DoorOpen", false)]
public string LIFT_C1_DoorOpen { get; set; }
/// <summary>
/// DI,C1-故障中,C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
/// </summary>
[ConfigProAttribute("LIFT_C1_Fault", false)]
public string LIFT_C1_Fault { get; set; }
/// <summary>
/// DI,C1-运行中,C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
/// </summary>
[ConfigProAttribute("LIFT_C1_InRun", false)]
public string LIFT_C1_InRun { get; set; }
/// <summary>
/// DO,C1-AGV请求,C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
/// </summary>
[ConfigProAttribute("LIFT_C1_AGVRequest", false)]
public string LIFT_C1_AGVRequest { get; set; }
/// <summary>
/// DO,C1-AGV离开,C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
/// </summary>
[ConfigProAttribute("LIFT_C1_AGVLeave", false)]
public string LIFT_C1_AGVLeave { get; set; }
/// <summary>
/// DO,C1-AGV呼叫1F,C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
/// </summary>
[ConfigProAttribute("LIFT_C1_FirstCall", false)]
public string LIFT_C1_FirstCall { get; set; }
/// <summary>
/// DO,C1-AGV呼叫3F,C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
/// </summary>
[ConfigProAttribute("LIFT_C1_ThirdCall", false)]
public string LIFT_C1_ThirdCall { get; set; }
/// <summary>
/// DO,C1-AGV呼叫4F,C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
/// </summary>
[ConfigProAttribute("LIFT_C1_FourthCall", false)]
public string LIFT_C1_FourthCall { get; set; }
/// <summary>
/// DO,C1-送料信号1F,C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
/// </summary>
[ConfigProAttribute("LIFT_C1_RunToFirst", false)]
public string LIFT_C1_RunToFirst { get; set; }
/// <summary>
/// DO,C1-送料信号3F,C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
/// </summary>
[ConfigProAttribute("LIFT_C1_RunToThird", false)]
public string LIFT_C1_RunToThird { get; set; }
/// <summary>
/// DO,C1-送料信号4F,C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
/// </summary>
[ConfigProAttribute("LIFT_C1_RunToFourth", false)]
public string LIFT_C1_RunToFourth { get; set; }
protected override void initMustHavePro()
{
MustHaveDIList = new List<string>();
......
......@@ -90,6 +90,72 @@ namespace LoadCSVLibrary
/// </summary>
public static string LIFT_D2_RunToFourth = "LIFT_D2_RunToFourth";
#endregion
#region C1电梯
/// <summary>
/// DI,C1-任务应答,C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
/// </summary>
public static string LIFT_C1_Response = "LIFT_C1_Response";
/// <summary>
/// DI,C1-到达1F,C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
/// </summary>
public static string LIFT_C1_AtFirst = "LIFT_C1_AtFirst";
/// <summary>
/// DI,C1-到达3F,C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
/// </summary>
public static string LIFT_C1_AtThird = "LIFT_C1_AtThird";
/// <summary>
/// DI,C1-到达4F,C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
/// </summary>
public static string LIFT_C1_AtFourth = "LIFT_C1_AtFourth";
/// <summary>
/// DI,C1-门已开,C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
/// </summary>
public static string LIFT_C1_DoorOpen = "LIFT_C1_DoorOpen";
/// <summary>
/// DI,C1-故障中,C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
/// </summary>
public static string LIFT_C1_InFault = "LIFT_C1_InFault";
/// <summary>
/// DI,C1-运行中,C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
/// </summary>
public static string LIFT_C1_InRun = "LIFT_C1_InRun";
/// <summary>
/// DO,C1-AGV请求,C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
/// </summary>
public static string LIFT_C1_AGVRequest = "LIFT_C1_AGVRequest";
/// <summary>
/// DO,C1-AGV离开,C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
/// </summary>
public static string LIFT_C1_AGVLeave = "LIFT_C1_AGVLeave";
/// <summary>
///DO,C1-AGV呼叫1F,C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
/// </summary>
public static string LIFT_C1_FirstCall = "LIFT_C1_FirstCall";
/// <summary>
/// DO,C1-AGV呼叫3F,C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
/// </summary>
public static string LIFT_C1_ThirdCall = "LIFT_C1_ThirdCall";
/// <summary>
/// DO,C1-AGV呼叫4F,C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
/// </summary>
public static string LIFT_C1_FourthCall = "LIFT_C1_FourthCall";
/// <summary>
/// DO,C1-送料信号1F,C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
/// </summary>
public static string LIFT_C1_RunToFirst = "LIFT_C1_RunToFirst";
/// <summary>
/// DO,C1-送料信号3F,C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
/// </summary>
public static string LIFT_C1_RunToThird = "LIFT_C1_RunToThird";
/// <summary>
///DO,C1-送料信号4F,C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
/// </summary>
public static string LIFT_C1_RunToFourth = "LIFT_C1_RunToFourth";
#endregion
}
public enum IO_VALUE
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!