Commit 3142a26b 张东亮

上料口发送rfid更改

1 个父辈 c1867010
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件的差异被折叠, 点击展开。
......@@ -8,7 +8,7 @@
<add key="App_AutoRun" value="1" />
<add key="App_Title" value="料架缓存线" />
<!--Server address-->
<add key="http.server" value="http://10.85.162.124/myproject/" />
<add key="http.server" value="http://10.21.69.201/smdbox/" />
<!--storeType-->
<add key="store_count" value="1" />
<!--start one store config-->
......@@ -19,14 +19,17 @@
<add key="DIMS" value="60" />
<add key="DOMS" value="300" />
<!--AGV调度服务器地址-->
<add key="AgvServerIp" value="10.85.162.40" />
<add key="AgvServerIp" value="127.0.0.1" />
<add key="AgvServerPort" value="9501" />
<!--是否调试状态-->
<add key="IsInDebug" value="0" />
<add key ="Agv_Log_Open" value ="1"/>
<add key="Agv_Log_Open" value="1" />
<!--RFID服务端端口-->
<add key="RfidServer_Port" value="13001" />
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/vmiLine.log" />
<file type="log4net.Util.PatternString" value="logs/Line.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<param name="MaxSizeRollBackups" value="30" />
......@@ -37,17 +40,16 @@
</layout>
</appender>
<appender name="TheRFID" type="log4net.Appender.RollingFileAppender">
<file value="logs/TheRFID.log"/>
<file value="logs/TheRFID.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<param name="MaxSizeRollBackups" value="30" />
<datePattern value="yyyy-MM-dd"/>
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" />
</layout>
</appender>
<logger name="RollingLogFileAppender">
<level value="Info" />
<appender-ref ref="RollingLogFileAppender" />
......@@ -56,13 +58,13 @@
<level value="Error" />
<appender-ref ref="TheRFID" />
</logger>
<root>
<level value="Info" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<root>
<level value="Info" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.ACSingleStore</RootNamespace>
<AssemblyName>CacheLineClient</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
......
......@@ -217,9 +217,9 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHBwcAAAAAABTU1QAqqqrAP///wAAAAALWVxdHnl8fTmGiIlQio2NXouN
jl+KjY5gio2OYImLjF+ChIVSbnFyPkVISCcAAAAYAAAADwAAAA4AAAAQAAAAEQAAABIAAAASAAAAEgAA
ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAASAAAAEgAAABEAAAAQAAAADwAAAA4AAAAMAAAACwAA
AAsAAAAKAAAACQAAAAgAAAAHAAAABgAAAAYAAAAFAAAABAAAAAQAAAADAAAAAwAAAAIAAAACAAAAAgAA
jl+KjY5gio2OYImLjF+ChIVSbnFyPkVISCcAAAAYAAAADwAAAA4AAAAQAAAAEQAAABIAAAAgvAAAEgAA
ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAAgvAAAEgAAABEAAAAQAAAADwAAAA4AAAAMAAAACwAA
AAgvAAAKAAAACQAAAAgAAAAHAAAABgAAAAYAAAAFAAAABAAAAAQAAAADAAAAAwAAAAIAAAACAAAAAgAA
AAEAAAABAAAAAQEBAQEAAAAAi4qJAIKCfwAAAAADa2ppHYKBfk+KiYeTmZmX0qippvS8vbv/zcrI/87A
vP+9m5f/oGhi/4pDPP+AMSr/gTMs/8KopP/HyMX/q5OP/6yalv5+f33MCAgHigAAAFwAAAAbAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
......@@ -228,7 +228,7 @@
Fw54e3w2pqmqb8XFxqfPysrO2tHR6NjKyPPPurj3yrKw98qysPfKsrD3zbi199fHxfPXzczpysTE0bm4
ua+Nj5CATU9PUwUGBjYAAAAtAAAALgAAAC8AAAAwAAAAMAAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAA
ADAAAAAvAAAALgAAAC0AAAArAAAAKQAAACcAAAAlAAAAIwAAACEAAAAeAAAAHAAAABoAAAAYAAAAFgAA
ABQAAAATAAAAEQAAAA8AAAAOAAAADAAAAAsAAAAKAAAACAAAAAcAAAAEAAAAAQAAAARNTEsaaWlnTH59
ABQAAAATAAAAEQAAAA8AAAAOAAAADAAAAAgvAAAKAAAACAAAAAcAAAAEAAAAAQAAAARNTEsaaWlnTH59
e5OQkI7Spqak9Lq7uf/Mysf/0MPA/7+fm/+ia2b/i0Q9/4I1Lv+BNC3/gzYw/4I1Lv+CNS7/v6Of/8TE
wv96Uk7/bTs2/7Oppvtqa2m5AAAAggAAAG4AAAAyAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
......@@ -236,7 +236,7 @@
AAAAAAAAEBAQAAAAAABlZWYA////AEhJShqanJ1cxsbHqtjPz+PQubf6vpeS/6dwa/+YWVL/kU1G/4xF
Pv+KQTr/ikE6/4pBOv+MQzz/kEtD/5dWT/+kamX/uY6K/8qwrfvPxMTosK+vvGttboMXFxhVAAAARQAA
AEUAAABGAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARgAAAEYAAABGAAAARQAAAEQAAABCAAAAQAAA
AD4AAAA7AAAAOQAAADYAAAA0AAAAMQAAAC8AAAAsAAAAKgAAACcAAAAkAAAAIgAAAB8AAAAcAAAAGgAA
AD4AAAA7AAAAOQAAADYAAAA0AAAAMQAAAC8AAAAgvAAAKgAAACcAAAAkAAAAIgAAAB8AAAAcAAAAGgAA
ABYAAAARAAAAETk4NyRdXFtPdHNyj4eGhc2enpzztbWz/8jGw//MwL3/vqCc/6FtZ/+MR0D/gjUu/4Ez
Lf+FOTL/iD85/4xEPv+LQz3/hTs0/4I1Lv+9oZz/xMTC/35ZVf9VGhX/f1VR/7WvrPVUVFOlAAAAeQAA
AHMAAABIAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
......@@ -244,7 +244,7 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAoKCgA////ADU2NxScn59f0M7Ov9nK
yPW/mJX/nWBa/4xEPP+GOzP/hjoy/4c7NP+HPDX/hz01/4g9Nf+IPTX/iD01/4c8Nf+HPDT/hjs0/4U5
Mv+FOTL/iUA5/5hYUf+3jIf/0L2797u4uM9pa2uLDAwMWAAAAEsAAABMAAAATQAAAE0AAABNAAAATQAA
AE0AAABMAAAATAAAAEwAAABMAAAATAAAAEsAAABJAAAASAAAAEYAAABEAAAAQQAAAD8AAAA9AAAAOgAA
AE0AAABMAAAATAAAAEwAAABMAAAATAAAAEsAAABJAAAAgvAAAEYAAABEAAAAQQAAAD8AAAA9AAAAOgAA
ADgAAAA1AAAAMwAAADAAAAAtAAAAKQAAACQAAAAjIyMjMk1NTFlpaWeVfn170ZOTkvOqq6n/vry6/8S7
t/+4nZn/n21o/4lGQP9/NC3/fjIr/4I3Mf+HPjf/i0Q9/49JQ/+STkj/lVNN/5JOSP+IPzj/gjUu/7qc
l//Dw8H/fVlV/1YcF/9YHxr/kXBr/6+tquo8PDuPAAAAbgAAAG8AAABYAAAAIwAAAAIAAAAAAAAAAAAA
......@@ -253,10 +253,10 @@
BgAAAAAAcXFyAAAAAAWEhoZDycjIsNfHxvO3jIf/lFFK/4c8Nf+HPDT/iD42/4g/N/+JPzf/iT83/4k/
N/+JPzf/iD83/4g+N/+IPjf/iD43/4g+N/+IPjb/iD42/4g9Nv+IPTX/hjsz/4Y6Mv+PSUL/r314/8y4
tvavra3ER0lJdwAAAE8AAABMAAAATQAAAE0AAABNAAAATQAAAE0AAABNAAAATQAAAE0AAABNAAAATAAA
AEsAAABKAAAASAAAAEYAAABEAAAAQgAAAEAAAAA+AAAAOwAAADkAAAA1AAAAMAAAAC8dHRw+Pz8+YF9e
AEsAAABKAAAAgvAAAEYAAABEAAAAQgAAAEAAAAA+AAAAOwAAADkAAAA1AAAAMAAAAC8dHRw+Pz8+YF9e
XZh1dXPRi4uJ86ChoP+0s7H/u7Kv/7KZlf+abGf/hUZA/3ozLP95MCn/fjUv/4I7Nf+HQTv/i0dB/49M
Rf+RT0n/kk9J/5NQSv+VVE7/k1BK/4lAOv+BNCz/tI+L/8bHxf+FZGD/Vx0Y/1ggGv9dJSD/pIyH/6Sk
ot0pKSh9AAAAZQAAAGYAAABdAAAANQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ot0pKSh9AAAAZQAAAGYAAABdAAAANQAAAAgvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgAAAAAAP///wAyMzQVq62teNnS0uHDn5v/lVNM/4c8
Nf+IPjb/iUA4/4pAOP+JQDj/iUA4/4lAOP+JQDj/iT84/4lAOP+JPzj/iT84/4k/OP+JPzj/iT83/4k/
......@@ -278,7 +278,7 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NgASEhIAAAAAAHl6ezzU09PHz7Wy/5hXUP+IPjb/ikE5/4tC
Ov+LQjr/i0I6/4tCOv+LQjr/i0I6/4tCOv+LQjr/i0I6/4pCOv+KQTr/ikI6/4tBOv+KQTn/ikE5/4pB
Of+KQTn/ikE5/4pAOf+KQDn/iUA4/4lAOP+JPzj/iT84/4k/OP+JPzf/hzs0/5BLRP/Bnpr/vLm50jw9
PnEAAABMAAAATQAAAE0AAABNAAAATQAAAE0AAABNAAAATQAAAE0AAABLAAAASAAAAEcPDw9SLS0sb0tL
PnEAAABMAAAATQAAAE0AAABNAAAATQAAAE0AAABNAAAATQAAAE0AAABLAAAAgvAAAEcPDw9SLS0sb0tL
SqFgYF7SdHRy84iIhv+ampj/o56b/56Mif+LZ2P/d0I9/2wuKP9rKiT/bi0n/3IzLf92ODL/ez04/39C
Pf+CRkD/hEhC/4VHQf+ERD7/gkA6/4A7Nf9/ODH/fzUu/380Lf+AMyz/gTMs/4Q4Mf+MRT7/kU1H/4pC
O/+BMyz/sYiD/9PV0v+TeHT/Vx4Z/1kgG/9ZIRv/WSAb/1cdGP+HYFv/ura0+WVlZJgAAABOAAAATAAA
......@@ -358,7 +358,7 @@
Pf+KQTn/oWZg/8OysP9mPTn/XSgk/10pJf9dKCP/XCYi/1slIf9aJSD/WiQf/1okH/9bJB//WyQf/1wk
H/9dJSD/XiUg/18lIP9gJiH/YSYh/2InIf9jJyL/ZCgi/2YoI/9nKSP/aCkk/2oqJP9rKiX/biwm/3Qu
KP97MSr/fzIr/4EzLP+BMyz/gTMs/4EzLP+BMyz/gTMs/4I1Lv+JQTr/kU1G/41GQP+CNS7/m2Fa/87M
yf+vn5z/XSch/1kgG/9ZIRv/WSEb/1khG/9XHhj/dEhD/6ejoe5SUlFHAAAAEwAAABQAAAASAAAAEAAA
yf+vn5z/XSch/1kgG/9ZIRv/WSEb/1khG/9XHhj/dEhD/6ejoe5SUlFHAAAAEwAAABQAAAAgvAAAEAAA
AA4AAAAMAAAACgAAAAgAAAAGAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAPj4+AAAAAAm/wMCb0Lez/5NORv+RSkL/kEpE/6BbP/+skSf/g48V/3ts
Lv+QT0H/k0xF/5NMRf+OWET/eKxk/2mzV/9qt2D/b7ts/12dPf9usmL/dcB3/5CKUP/Yqnz/06dq/8eU
......
......@@ -87,7 +87,7 @@
//
this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1;
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
this.notifyIcon1.Text = "VMI流水线客户端";
this.notifyIcon1.Text = "料架缓存客户端";
this.notifyIcon1.Visible = true;
//
// contextMenuStrip1
......
......@@ -369,7 +369,7 @@ namespace OnlineStore.VMILineClient
private void btnNeedLeave_Click(object sender, EventArgs e)
{
AgvClient.NeedLeave(txtname.Text, txtShelfId.Text);
// AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedLeave);
// AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Agv.ClientAction.NeedLeave);
}
private void btnNeedEntry_Click(object sender, EventArgs e)
......
......@@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace OnlineStore.VMILineClient.Properties {
namespace OnlineStore.ACSingleStore.Properties {
using System;
......@@ -19,7 +19,7 @@ namespace OnlineStore.VMILineClient.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
......@@ -39,7 +39,7 @@ namespace OnlineStore.VMILineClient.Properties {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OnlineStore.VMILineClient.Properties.Resources", typeof(Resources).Assembly);
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OnlineStore.ACSingleStore.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
......
......@@ -8,11 +8,11 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace OnlineStore.VMILineClient.Properties {
namespace OnlineStore.ACSingleStore.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
......
......@@ -33,7 +33,7 @@ namespace OnlineStore.Common
public static string IsInDebug = "IsInDebug";
public static string AgvServerIp = "AgvServerIp";
public static string AgvServerPort = "AgvServerPort";
public static string Agv_Log_Open = "Agv_Log_Open";
public static string RfidServer_Port = "RfidServer_Port";
}
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DeviceLibrary</RootNamespace>
<AssemblyName>DeviceLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......@@ -36,20 +36,20 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Asa.IOModule.AIOBOX">
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
<Reference Include="Agv">
<HintPath>..\..\dll\Agv.dll</HintPath>
</Reference>
<Reference Include="Asa.RFID">
<HintPath>..\..\dll\Asa.RFID.dll</HintPath>
<Reference Include="Agv.Client">
<HintPath>..\..\dll\Agv.Client.dll</HintPath>
</Reference>
<Reference Include="Client">
<HintPath>..\..\dll\Client.dll</HintPath>
<Reference Include="Asa.IOModule.AIOBOX">
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
</Reference>
<Reference Include="CodeLibrary">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\CodeLibrary.dll</HintPath>
<Reference Include="Asa.RFID.HiStation">
<HintPath>..\..\dll\Asa.RFID.HiStation.dll</HintPath>
</Reference>
<Reference Include="halcondotnet">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\halcondotnet.dll</HintPath>
<Reference Include="Asa.RFID.IReadAll">
<HintPath>..\..\dll\Asa.RFID.IReadAll.dll</HintPath>
</Reference>
<Reference Include="HFReader9CSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
......
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID,
PRO,IO模块对应的DI数量,IO_DILength,10.85.162.17#16,,,,,,,
PRO,IO模块对应的DO数量,IO_DOLength,10.85.162.17#16,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,10.85.162.17,,,,,,,
PRO,IO模块对应的DI数量,IO_DILength,10.21.69.168#16,,,,,,,
PRO,IO模块对应的DO数量,IO_DOLength,10.21.69.168#16,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,10.21.69.168,,,,,,,
,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X01,DI-01,0,
DI,放行按钮,Pass_BTN,1,PRO_AOI_IP_1,0,放行按钮,X02,DI-02,0,
......@@ -26,6 +26,6 @@ PRO,L1线入口节点名称,L1_In_AgvName,A2,,,,,,,
PRO,L1线出口节点名称,L1_Out_AgvName,A1,,,,,,,
PRO,L2线入口节点名称,L2_In_AgvName,A4,,,,,,,
PRO,L2线出口节点名称,L2_Out_AgvName,A3,,,,,,,
PRO,L1线出口RFIDIP,L1_Out_RFIDIP,192.168.103.108,,,,,, ,
PRO,L2线出口RFIDIP,L2_Out_RFIDIP,192.168.103.107,,,,,, ,
PRO,L1空料串线出口RFIDIP,L1_Out_RFIDIP,10.21.69.1,,,,,, ,
PRO,L2上料线出口RFIDIP,L2_Out_RFIDIP,10.21.69.46,,,,,, ,
PRO,休眠秒数(秒),SleepSeconds,40,,,,,,,
using Asa.RFID;

using OnlineStore.Common;
using System;
using System.Collections.Concurrent;
......@@ -11,10 +11,10 @@ namespace OnlineStore.DeviceLibrary
{
public class RFIDManager
{
private static ReadAll readAll =new ReadAll ("TheRFID");
private static Asa.RFID.ReadAll readAll =new Asa.RFID.ReadAll ("TheRFID");
private static bool IsOpen = false;
// private static ConcurrentDictionary<string, string> LastRfidMap = new ConcurrentDictionary<string, string>();
public static void Open(string[] iparray)
public static void Open()
{
if (IsOpen)
{
......@@ -27,7 +27,7 @@ namespace OnlineStore.DeviceLibrary
{
port = 13001;
}
// readAll.Received += ReadAll_Received;
//readAll.Received += ReadAll_Received;
// readAll.Log += ReadAll_Log;
LogUtil.info("RFID Server Open,port=" + port);
readAll.Start(port);
......

using Asa;
using Agv;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
......@@ -78,8 +78,7 @@ namespace OnlineStore.DeviceLibrary
// {
//}
AgvClient.SetCancelState(false);
RFIDManager.Open(new string[] { Config.L1_Out_RFIDIP, Config.L2_Out_RFIDIP });
RFIDManager.Open();
runStatus = RunStatus.HomeMoving;
MoveInfo.NewMove(LineMoveType.ReturnHome);
ReturnHome();
......@@ -176,7 +175,6 @@ namespace OnlineStore.DeviceLibrary
WarnMsg = "";
RFIDManager.Close();
AgvClient.SetCancelState(true);
mainTimer.Enabled = false;
serverConnectTimer.Enabled = false;
StopMove();
......@@ -246,9 +244,17 @@ namespace OnlineStore.DeviceLibrary
}
else if (runStatus.Equals(RunStatus.Runing))
{
LoadLineTimerProcess();
if(IsDebug)
{
AgvClient.SetCancelState(true);
}
else
{
AgvClient.SetCancelState(false);
LoadLineTimerProcess();
EmptyLineTimerProcess();
}
EmptyLineTimerProcess();
LoadAreaTimerProcess();
......@@ -324,8 +330,8 @@ namespace OnlineStore.DeviceLibrary
else if (span1.TotalMilliseconds > StopDownMS)
{
il1_outstopCheckWarch.Stop();
ClientAction currA = AgvClient.GetAction(Config.L1_Out_AgvName);
if (currA.Equals(ClientAction.None) || currA.Equals(ClientAction.NeedLeave) || currA.Equals(ClientAction.NeedEnter))
Agv.ClientAction currA = AgvClient.GetAction(Config.L1_Out_AgvName);
if (currA.Equals(Agv.ClientAction.None) || currA.Equals(Agv.ClientAction.NeedLeave) || currA.Equals(Agv.ClientAction.NeedEnter))
{
if (IOManager.IOValue(IO_Type.L1_OutStopDown).Equals(IO_VALUE.HIGH))
{
......@@ -335,13 +341,21 @@ namespace OnlineStore.DeviceLibrary
}
//如果入口无料架即可进入
if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.LOW) && AgvClient.GetAction(Config.L1_In_AgvName).Equals(ClientAction.None))
{
AgvClient.NeedEnter(Config.L1_In_AgvName, "");
}else
}else if(IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.HIGH) && AgvClient.GetAction(Config.L1_In_AgvName).Equals(ClientAction.NeedEnter))
{
AgvClient.SetToNone(Config.L1_In_AgvName, "");
}
//如果是出口无料架,NeedLeave状态,改为None
if ((IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.LOW) || LastL1OutShelfId.Equals("000")) &&
AgvClient.GetAction(Config.L1_Out_AgvName).Equals(ClientAction.NeedLeave))
{
il1_outstopCheckWarch.Stop();
LogUtil.info(" 空料串线体出口无料架/rfid未读到,更改[" + Config.L1_Out_AgvName + "] 状态[None] ");
AgvClient.SetToNone(Config.L1_Out_AgvName, "");
}
}
private DateTime il2_lastCallAgvTime = DateTime.Now.AddMinutes(-5);
private Stopwatch il2_outstopCheckWarch = new Stopwatch();
......@@ -381,8 +395,8 @@ namespace OnlineStore.DeviceLibrary
{
il2_lastCallAgvTime = DateTime.Now;
LogUtil.info(" 上料线体出口有料架" + LastL1OutShelfId + ",呼叫agv小车[" + Config.L2_Out_AgvName + "] [NeedLeave] ");
AgvClient.NeedLeave(Config.L2_Out_AgvName, LastL1OutShelfId);
LogUtil.info(" 上料线体出口有料架" + LastL2OutShelfId + ",呼叫agv小车[" + Config.L2_Out_AgvName + "] [NeedLeave] ");
AgvClient.NeedLeave(Config.L2_Out_AgvName, LastL2OutShelfId);
}
}
}
......@@ -399,19 +413,20 @@ namespace OnlineStore.DeviceLibrary
}
}
//如果入口无料架即可进入
if (IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.LOW) && AgvClient.GetAction(Config.L2_In_AgvName).Equals(ClientAction.None))
{
AgvClient.NeedEnter(Config.L2_In_AgvName, "");
}
else
else if(IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.HIGH) && AgvClient.GetAction(Config.L2_In_AgvName).Equals(ClientAction.NeedEnter))
{
AgvClient.SetToNone(Config.L2_In_AgvName, "");
}
//如果是出口无料架,NeedLeave状态,改为None
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.LOW) && AgvClient.GetAction(Config.L2_Out_AgvName).Equals(ClientAction.NeedLeave))
if ((IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.LOW) || LastL2OutShelfId.Equals("000")) &&
AgvClient.GetAction(Config.L2_Out_AgvName).Equals(ClientAction.NeedLeave))
{
il2_outstopCheckWarch.Stop();
LogUtil.info(" 上料线体出口无料架 ,更改[" + Config.L2_Out_AgvName + "] 状态[None] ");
LogUtil.info(" 上料线体出口无料架/rfid未读到,更改[" + Config.L2_Out_AgvName + "] 状态[None] ");
AgvClient.SetToNone(Config.L2_Out_AgvName, "" );
}
}
......@@ -421,9 +436,9 @@ namespace OnlineStore.DeviceLibrary
private void LoadAreaTimerProcess()
{
//人工取料
if (IOManager.IOValue(IO_Type.L2_LoadSig).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.L2_LoadSig).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Pass_BTN).Equals(IO_VALUE.HIGH))
{
StopIOMove(IO_Type.Pass_BTN,1500);
StopIOMove(IO_Type.L2_LoadStopDown, 1500);
//if (IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.LOW))
//{
......@@ -585,27 +600,27 @@ namespace OnlineStore.DeviceLibrary
Alarm(AlarmType.SuddenStop);
}
}
else if (IOManager.IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Reset_BTN).Equals(IO_VALUE.HIGH))
{
//收到复位信号,若报警直接复位,若不报警且无操作,回到待机点
if (alarmType.Equals(AlarmType.None) && isInSuddenDown.Equals(false))
{
if (MoveInfo.MoveType.Equals(LineMoveType.None))
{
LogUtil.info("收到复位信号,当前无报警,暂不复位");
}
else
{
LogUtil.info("收到复位信号,当前无报警, 在" + MoveInfo.MoveType + "处理中,暂不复位");
}
}
else
{
//收到复位信号
LogUtil.info("收到复位信号,自动复位");
Reset();
}
}
//else if (IOManager.IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.HIGH))//&& IOManager.IOValue(IO_Type.Reset_BTN).Equals(IO_VALUE.HIGH)
//{
// //收到复位信号,若报警直接复位,若不报警且无操作,回到待机点
// if (alarmType.Equals(AlarmType.None) && isInSuddenDown.Equals(false))
// {
// if (MoveInfo.MoveType.Equals(LineMoveType.None))
// {
// LogUtil.info("收到复位信号,当前无报警,暂不复位");
// }
// else
// {
// LogUtil.info("收到复位信号,当前无报警, 在" + MoveInfo.MoveType + "处理中,暂不复位");
// }
// }
// else
// {
// //收到复位信号
// LogUtil.info("收到复位信号,自动复位");
// Reset();
// }
//}
}
}
......
using Asa;
using Agv;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
......

using Asa;
using Asa.RFID;
using Agv;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
......@@ -15,8 +14,9 @@ namespace OnlineStore.DeviceLibrary
public class AgvClient
{
private static string ServerIp = ConfigAppSettings.GetValue(Setting_Init.AgvServerIp);
private static Asa.AgvClient agvClient;
public static Dictionary<string, Asa.ClientAction> actionMap = new Dictionary<string, Asa.ClientAction>();
private static int ServerPort = ConfigAppSettings.GetIntValue(Setting_Init.AgvServerPort);
private static Agv.AgvClient agvClient;
public static Dictionary<string, Agv.ClientAction> actionMap = new Dictionary<string, Agv.ClientAction>();
public static List<string> NodeList = new List<string>();
private static bool isInit = false;
public static void Init()
......@@ -26,26 +26,22 @@ namespace OnlineStore.DeviceLibrary
if (!isInit)
{
isInit = true;
agvClient = new Asa.AgvClient(ServerIp);
agvClient.CancelState = true;
agvClient.Log += AgvClient_Log;
agvClient.Arrive += AgvClient_Arrive;
agvClient.Ready += AgvClient_Ready;
agvClient.CloseDoor += AgvClient_CloseDoor;
agvClient = new Agv.AgvClient();
agvClient.Received += AgvClient_Received;
}
actionMap = new Dictionary<string, Asa.ClientAction>();
actionMap = new Dictionary<string, Agv.ClientAction>();
//foreach (string key in NodeList)
//{
// actionMap.Add(key, Asa.ClientAction.None);
// actionMap.Add(key, Agv.ClientAction.None);
//}
agvClient.Connect();
agvClient.Connect(ServerIp,ServerPort);
foreach (string str in NodeList)
{
SetStatus(str);
LogUtil.info("agv init ,SetStatus[" + str + "]=none ");
}
SetCancelState(false);
}
catch (Exception ex)
{
......@@ -53,22 +49,26 @@ namespace OnlineStore.DeviceLibrary
}
}
public static void SetCancelState(bool isCancel)
private static void AgvClient_Received(Agv.Node node)
{
agvClient.CancelState = isCancel;
AgvClient_Ready(node.Name,node.RFID);
}
private static void AgvClient_CloseDoor(string id, string rfid)
/// <summary>
/// 设置是否屏蔽AGV状态
/// </summary>
/// <param name="cancel"></param>
public static void SetCancelState(bool cancel)
{
//RFIDData data = new RFIDData(content);
LogUtil.info("收到 AgvClient_CloseDoor [" + id + "] [" + rfid + "] ");
agvClient.CancelState = cancel;
}
public static void SetStatus(string id, string shelfId = "", ClientAction action = ClientAction.None, ClientLevel level = ClientLevel.Low)
public static void SetStatus(string id, string shelfId = "", Agv.ClientAction action = Agv.ClientAction.None, Agv.ClientLevel level = Agv.ClientLevel.Low)
{
// ClientAction currA = GetAction(id);
if (actionMap.ContainsKey(id))
{
ClientAction currA = actionMap[id]; //相同状态就设置一次
Agv.ClientAction currA = actionMap[id]; //相同状态就设置一次
if (currA.Equals(action))
{
return;
......@@ -83,7 +83,7 @@ namespace OnlineStore.DeviceLibrary
string logName = "收到 AgvClient_Ready [" + id + "] [" + rfid + "] ";
LogUtil.info(logName);
UpdateAction(id, Asa.ClientAction.Ready);
UpdateAction(id, Agv.ClientAction.Ready);
if (id.Equals(LineManager.Config.L1_In_AgvName))
{
LineManager.Line.UpdateSleep(false);
......@@ -224,40 +224,33 @@ namespace OnlineStore.DeviceLibrary
}
}
}
private static void AgvClient_Arrive(string id, string rfid)
{
UpdateAction(id, Asa.ClientAction.Arrive);
// RFIDData data = new RFIDData(content);
LogUtil.info("收到 AgvClient_Arrive [" + id + "] [" +rfid + "] ");
}
public static bool SetToNone(string id, string shelfId = "")
{
ClientAction currA = GetAction(id);
if (currA.Equals(ClientAction.None) || currA.Equals(ClientAction.NeedLeave) || currA.Equals(ClientAction.NeedEnter))
Agv.ClientAction currA = GetAction(id);
if (currA.Equals(Agv.ClientAction.None) || currA.Equals(Agv.ClientAction.NeedLeave) || currA.Equals(Agv.ClientAction.NeedEnter))
{
SetStatus(id, shelfId, ClientAction.None);
SetStatus(id, shelfId, Agv.ClientAction.None);
return true;
}
return false;
}
public static bool NeedEnter(string id, string shelfId)
{
ClientAction currA = GetAction(id);
if (currA.Equals(ClientAction.None) || currA.Equals(ClientAction.NeedLeave) || currA.Equals(ClientAction.NeedEnter))
Agv.ClientAction currA = GetAction(id);
if (currA.Equals(Agv.ClientAction.None) || currA.Equals(Agv.ClientAction.NeedLeave) || currA.Equals(Agv.ClientAction.NeedEnter))
{
SetStatus(id, shelfId, ClientAction.NeedEnter);
SetStatus(id, shelfId, Agv.ClientAction.NeedEnter);
return true;
}
return false;
}
public static bool NeedLeave(string id, string shelfId)
{
ClientAction currA = GetAction(id);
if (currA.Equals(ClientAction.None) || currA.Equals(ClientAction.NeedLeave) || currA.Equals(ClientAction.NeedEnter))
Agv.ClientAction currA = GetAction(id);
if (currA.Equals(Agv.ClientAction.None) || currA.Equals(Agv.ClientAction.NeedLeave) || currA.Equals(Agv.ClientAction.NeedEnter))
{
SetStatus(id, shelfId, ClientAction.NeedLeave);
SetStatus(id, shelfId, Agv.ClientAction.NeedLeave);
return true;
}
return false;
......@@ -270,36 +263,16 @@ namespace OnlineStore.DeviceLibrary
}
return agvClient.IsConn;
}
//public static void SendRFID(string NodeName, string rfid)
//{
// agvClient.SendRFID(NodeName, rfid);
//}
private static void AgvClient_Log(string s)
{
try
{
bool isLog = ConfigAppSettings.GetIntValue(Setting_Init.Agv_Log_Open).Equals(1);
if (isLog)
{
LogUtil.info(" AGV " + ServerIp + " Log : " + s);
}
}
catch (Exception ex)
{
LogUtil.error("AgvClient_Log 出错:" + ex.ToString());
}
}
public static Asa.ClientAction GetAction(string NodeName)
public static Agv.ClientAction GetAction(string NodeName)
{
if (actionMap.ContainsKey(NodeName))
{
return actionMap[NodeName];
}
return Asa.ClientAction.None;
return Agv.ClientAction.None;
}
public static void UpdateAction(string name, Asa.ClientAction action)
public static void UpdateAction(string name, Agv.ClientAction action)
{
if (actionMap.ContainsKey(name))
{
......@@ -316,6 +289,7 @@ namespace OnlineStore.DeviceLibrary
{
if (agvClient != null)
{
SetCancelState(true);
agvClient.Close();
}
}
......
......@@ -31,7 +31,7 @@ namespace OnlineStore.LoadCSVLibrary
/// <summary>
///
/// </summary>
public static string Reset_BTN = "Reset_BTN";
//public static string Reset_BTN = "Reset_BTN";
/// <summary>
///DI,放行按钮,Pass_BTN,1,PRO_AOI_IP_1,0,放行按钮,X02,DI-02,0,
/// </summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!