Commit 1748e87e 张东亮

合并分支 '添加横移机构' 到 'master'

添加横移机构

查看合并请求 !1
2 个父辈 62fa69bf 0c638219
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
project.fragment.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
#*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
\ No newline at end of file \ No newline at end of file
此文件类型无法预览
此文件类型无法预览
...@@ -36,5 +36,7 @@ namespace OnlineStore.Common ...@@ -36,5 +36,7 @@ namespace OnlineStore.Common
public static string Agv_Log_Open = "Agv_Log_Open"; public static string Agv_Log_Open = "Agv_Log_Open";
public static string RfidServer_Port = "RfidServer_Port"; public static string RfidServer_Port = "RfidServer_Port";
public static string InLine_Name = "InLine_Name";
public static string OutLine_Name = "OutLine_Name";
} }
} }
...@@ -39,18 +39,15 @@ ...@@ -39,18 +39,15 @@
<Reference Include="Asa.IOModule.AIOBOX"> <Reference Include="Asa.IOModule.AIOBOX">
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath> <HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
</Reference> </Reference>
<Reference Include="Asa.RFID"> <Reference Include="Asa.RFID.HiStation">
<HintPath>..\..\dll\Asa.RFID.dll</HintPath> <HintPath>..\..\dll\Asa.RFID.HiStation.dll</HintPath>
</Reference>
<Reference Include="Asa.RFID.IReadAll">
<HintPath>..\..\dll\Asa.RFID.IReadAll.dll</HintPath>
</Reference> </Reference>
<Reference Include="AsaPL.AgvClient"> <Reference Include="AsaPL.AgvClient">
<HintPath>..\..\dll\AsaPL.AgvClient.dll</HintPath> <HintPath>..\..\dll\AsaPL.AgvClient.dll</HintPath>
</Reference> </Reference>
<Reference Include="CodeLibrary">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\CodeLibrary.dll</HintPath>
</Reference>
<Reference Include="halcondotnet">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="HFReader9CSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="HFReader9CSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\RFID\HFReader9CSharp.dll</HintPath> <HintPath>..\..\dll\RFID\HFReader9CSharp.dll</HintPath>
......
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID, 类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID,
PRO,IO模块对应的DI数量,IO_DILength,192.168.103.28#16,,,,,,, PRO,IO模块对应的DI数量,IO_DILength,10.85.197.121#16,,,,,,,
PRO,模块对应的DO数量,IO_DOLength,192.168.103.28#16,,,,,,, PRO,模块对应的DO数量,IO_DOLength,10.85.197.121#16,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,192.168.103.28,,,,,,, PRO,IO模块IP,PRO_AOI_IP_1,10.85.197.121,,,,,,,
,,,,,,,,,, ,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X741,DI-01,0, DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X21,DI-01,0,
DI,Feeder1线入口检测,L1_InCheck,1,PRO_AOI_IP_1,0,Feeder1线入口检测,X742,DI-02,0, DI,进料线体入口检测,L1_InCheck,1,PRO_AOI_IP_1,0,进料线体入口检测,X22,DI-02,0,
DI,Feeder1线阻挡检测,L1_StopCheck,2,PRO_AOI_IP_1,0,Feeder1线阻挡检测,X743,DI-03,0, DI,进料线体阻挡检测,L1_StopCheck,2,PRO_AOI_IP_1,0,进料线体阻挡检测,X23,DI-03,0,
DI,Feeder1线出口检测,L1_OutCheck,3,PRO_AOI_IP_1,0,Feeder1线出口检测,X744,DI-04,0, DI,进料线体出口检测,L1_OutCheck,3,PRO_AOI_IP_1,0,进料线体出口检测,X24,DI-04,0,
DI,Feeder2线入口检测,L2_InCheck,4,PRO_AOI_IP_1,0,Feeder2线入口检测,X745,DI-05,0, DI,出料线体入口检测,L2_InCheck,4,PRO_AOI_IP_1,0,出料线体入口检测,X25,DI-05,0,
DI,Feeder2线阻挡检测,L2_StopCheck,5,PRO_AOI_IP_1,0,Feeder2线阻挡检测,X746,DI-06,0, DI,出料线体阻挡检测,L2_StopCheck,5,PRO_AOI_IP_1,0,出料线体阻挡检测,X26,DI-06,0,
DI,Feeder2线出口检测,L2_OutCheck,6,PRO_AOI_IP_1,0,Feeder2线出口检测,X747,DI-07,0, DI,出料线体出口检测,L2_OutCheck,6,PRO_AOI_IP_1,0,出料线体出口检测,X27,DI-07,0,
DI,Feeder1线人工取料信号,L1_ManualRecSig,7,PRO_AOI_IP_1,0,Feeder1线人工取料信号,X748,DI-08,0, DI,进料线体人工取料信号,L1_ManualRecSig,7,PRO_AOI_IP_1,0,进料线体人工取料信号,X28,DI-08,0,
,,,9,PRO_AOI_IP_1,0,,X750,DO-02,0, DI,进料线体横移上升端,L1_Updown_Up_Sig,8,PRO_AOI_IP_1,0,进料线体横移上升端,X29,DI-09,0,
,,,10,PRO_AOI_IP_1,0,,X751,DO-03,0, DI,进料线体横移下降端,L1_Updown_Down_Sig,9,PRO_AOI_IP_1,0,进料线体横移下降端,X30,DI-10,0,
,,,11,PRO_AOI_IP_1,0,,X752,DO-04,0, DI,出料线体横移上升端,L2_Updown_Up_Sig,10,PRO_AOI_IP_1,0,出料线体横移上升端,X31,DI-11,0,
,,,12,PRO_AOI_IP_1,0,,X753,DO-05,0, DI,出料线体横移下降端,L2_Updown_Down_Sig,11,PRO_AOI_IP_1,0,出料线体横移下降端,X32,DI-12,0,
,,,13,PRO_AOI_IP_1,0,,X754,DO-06,0, DI,复位,Reset_BTN,12,PRO_AOI_IP_1,0,复位,X33,DI-13,0,
,,,14,PRO_AOI_IP_1,0,,X755,DO-07,0, ,,,13,PRO_AOI_IP_1,0,,X774,DI-14,0,
,,,15,PRO_AOI_IP_1,0,,X756,DO-08,0, ,,,14,PRO_AOI_IP_1,0,,X775,DI-15,0,
DO,Feeder1线驱动电机运转,L1_Run,0,PRO_AOI_IP_1,0,Feeder1线驱动电机运转,Y741,DI-01,0, ,,,15,PRO_AOI_IP_1,0,,X776,DI-16,0,
DO,Feeder2线驱动电机运转,L2_Run,1,PRO_AOI_IP_1,0,Feeder2线驱动电机运转,Y742,DI-02,0, DO,进料线体驱动电机运转,L1_Run,0,PRO_AOI_IP_1,0,进料线体驱动电机运转,Y21,DO-01,0,
DO,Feeder1线阻挡1下降,L1_StopDown,2,PRO_AOI_IP_1,0,Feeder1线阻挡1下降,Y743,DI-03,0, DO,出料线体驱动电机运转,L2_Run,1,PRO_AOI_IP_1,0,出料线体驱动电机运转,Y22,DO-02,0,
DO,Feeder1线出口阻挡下降,L1_OutStopDown,3,PRO_AOI_IP_1,0,Feeder1线出口阻挡下降,Y744,DI-04,0, DO,进料线体阻挡下降,L1_StopDown,2,PRO_AOI_IP_1,0,进料线体阻挡下降,Y23,DO-03,0,
DO,Feeder2线出口阻挡下降,L2_OutStopDown,4,PRO_AOI_IP_1,0,Feeder2线出口阻挡下降,Y745,DI-05,0, DO,进料线体出口缓冲器,L1_OutStopDown,3,PRO_AOI_IP_1,0,进料线体出口缓冲器,Y24,DO-04,0,
DO,Feeder2线阻挡1下降,L2_StopDown,5,PRO_AOI_IP_1,0,Feeder2线阻挡1下降,Y746,DI-06,0, DO,出料线体阻挡下降,L2_StopDown,4,PRO_AOI_IP_1,0,出料线体阻挡下降,Y25,DO-05,0,
,,,6,PRO_AOI_IP_1,0,,Y747,DI-07,0, DO,出料线体出口阻挡下降,L2_OutStopDown,5,PRO_AOI_IP_1,0,出料线体出口阻挡下降,Y26,DO-06,0,
,,,7,PRO_AOI_IP_1,0,,Y748,DI-08,0, DO,横移机构电机运转,Tranverse_Run,6,PRO_AOI_IP_1,0,横移机构电机运转,Y27,DO-09,0,
,,,8,PRO_AOI_IP_1,0,,Y749,DO-01,0, DO,横移机构上升SOL,Tranverse_Up_SOL,7,PRO_AOI_IP_1,0,横移机构上升SOL,Y28,DO-07,0,
,,,9,PRO_AOI_IP_1,0,,Y750,DO-02,0, DO,横移机构下降SOL,Tranverse_Down_SOL,8,PRO_AOI_IP_1,0,横移机构下降SOL,Y29,DO-08,0,
,,,10,PRO_AOI_IP_1,0,,Y751,DO-03,0, DO,线体运行状态灯,Run_Status_Light,9,PRO_AOI_IP_1,0,线体运行状态灯,Y30,DO-10,0,
,,,11,PRO_AOI_IP_1,0,,Y752,DO-04,0, ,,,10,PRO_AOI_IP_1,0,,Y31,DO-11,0,
,,,12,PRO_AOI_IP_1,0,,Y753,DO-05,0, ,,,11,PRO_AOI_IP_1,0,,Y32,DO-12,0,
,,,13,PRO_AOI_IP_1,0,,Y754,DO-06,0, ,,,12,PRO_AOI_IP_1,0,,Y33,DO-13,0,
,,,14,PRO_AOI_IP_1,0,,Y755,DO-07,0, ,,,13,PRO_AOI_IP_1,0,,Y34,DO-14,0,
,,,15,PRO_AOI_IP_1,0,,Y756,DO-08,0, ,,,14,PRO_AOI_IP_1,0,,Y35,DO-15,0,
,,,15,PRO_AOI_IP_1,0,,Y36,DO-16,0,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,, PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,
PRO,Feeder1线AGV节点名称,L1_AgvName,D21,,,,,,, PRO,进料线体线AGV节点名称,L1_AgvName,C21,,,,,,,
PRO,Feeder2线AGV节点名称,L2_AgvName,D22,,,,,,, PRO,出料线体线AGV节点名称,L2_AgvName,C22,,,,,,,
PRO,Feeder线出口RFIDIP,L2Out_RFIDIP,192.168.103.108,,,,,, , PRO,Feeder线出口RFIDIP,L2Out_RFIDIP,10.85.197.2,,,,,, ,
PRO,休眠秒数(秒),SleepSeconds,60,,,,,,, PRO,休眠秒数(秒),SleepSeconds,30,,,,,,,
using Asa.RFID;
using OnlineStore.Common;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public class RFIDManager
{
private static ReadAll readAll =new ReadAll ("TheRFID");
private static bool IsOpen = false;
// private static ConcurrentDictionary<string, string> LastRfidMap = new ConcurrentDictionary<string, string>();
public static void Open(string[] iparray)
{
if (IsOpen)
{
return;
}
try
{
int port = ConfigAppSettings.GetIntValue(Setting_Init.RfidServer_Port);
if (port <= 0)
{
port = 13001;
}
// readAll.Received += ReadAll_Received;
// readAll.Log += ReadAll_Log;
LogUtil.info("RFID Server Open,port=" + port);
readAll.Start(port);
IsOpen = true;
}
catch (Exception ex)
{
LogUtil.error("Open 出错:" + ex.ToString());
}
}
private static string lastStr = "";
private static void ReadAll_Log(string ip, string log)
{
string str = "RFID : [" + ip + "] " + log;
if (lastStr.Equals(str))
{
return;
}
LogUtil.info(str);
lastStr = str;
}
public static RFIDData ReadRFID(string ip, bool isClear = false)
{
try
{
if (String.IsNullOrEmpty(ip).Equals(false))
{
string outValue = readAll.Read(ip);
if (isClear)
{
readAll.Clear(ip);
}
RFIDData data = new RFIDData(outValue);
return data;
}
}
catch (Exception ex)
{
LogUtil.error("ReadRFID[" + ip + "] [" + isClear + "] 出错:" + ex.ToString());
}
return new RFIDData();
}
public static void Close()
{
try
{
readAll.Stop();
}
catch (Exception ex)
{
LogUtil.error("关闭RFID出错:" + ex.ToString());
}
}
}
public class RFIDData
{
public string StrData = "";
public RFIDData(string data = "00")
{
if (String.IsNullOrEmpty(data))
{
data = "00";
}
this.StrData = data;
}
public string NumStr()
{
return StrData;
}
internal static bool IsRealRfid(string shelfRfid)
{
//判断料架号是否是真实的料架号
if (shelfRfid.StartsWith("C") || shelfRfid.StartsWith("D"))
{
int num = -1;
try
{
num = Convert.ToInt32(shelfRfid.Substring(1, shelfRfid.Length - 1));
}
catch (Exception ex)
{
}
if (num > 0)
{
return true;
}
}
return false;
}
}
}
...@@ -5,16 +5,23 @@ using System.Collections.Concurrent; ...@@ -5,16 +5,23 @@ using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary namespace OnlineStore.DeviceLibrary
{ {
public class RFIDManager public class RFIDManager
{ {
private static ReadAll readAll =new ReadAll ("TheRFID"); private static Asa.RFID.ReadAll read;
private static bool IsOpen = false; private static bool IsOpen = false;
// private static ConcurrentDictionary<string, string> LastRfidMap = new ConcurrentDictionary<string, string>(); public static bool IsAuto = false;
public static void Open(string[] iparray) /// <summary>
/// 是否连接
/// </summary>
public static bool IsConnected { get; set; } = false;
private static Dictionary<string, string> LastRfidMap = new Dictionary<string, string>();
public static void Open(string[] ip)
{ {
if (IsOpen) if (IsOpen)
{ {
...@@ -22,15 +29,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -22,15 +29,9 @@ namespace OnlineStore.DeviceLibrary
} }
try try
{ {
int port = ConfigAppSettings.GetIntValue(Setting_Init.RfidServer_Port); read = new ReadAll("TheRFID");
if (port <= 0) read.Received += Read_Received;
{ read.Start(13001);
port = 13001;
}
// readAll.Received += ReadAll_Received;
// readAll.Log += ReadAll_Log;
LogUtil.info("RFID Server Open,port=" + port);
readAll.Start(port);
IsOpen = true; IsOpen = true;
} }
catch (Exception ex) catch (Exception ex)
...@@ -39,7 +40,27 @@ namespace OnlineStore.DeviceLibrary ...@@ -39,7 +40,27 @@ namespace OnlineStore.DeviceLibrary
} }
} }
private static string lastStr = ""; private static string lastStr = "";
private static void Read_Received(string ip, string id)
{
try
{
if(LastRfidMap.ContainsKey(ip))
{
LastRfidMap[ip] = id;
}
else
{
LastRfidMap.Add(ip,id);
}
}
catch (ObjectDisposedException ex)
{
//程序刚退出,又回传数据
}
}
private static void ReadAll_Log(string ip, string log) private static void ReadAll_Log(string ip, string log)
{ {
string str = "RFID : [" + ip + "] " + log; string str = "RFID : [" + ip + "] " + log;
...@@ -51,20 +72,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -51,20 +72,21 @@ namespace OnlineStore.DeviceLibrary
lastStr = str; lastStr = str;
} }
public static RFIDData ReadRFID(string ip, bool isClear = false) public static RFIDData ReadRFID(string ip,bool isClear= true)
{ {
try try
{ {
if (String.IsNullOrEmpty(ip).Equals(false)) if (String.IsNullOrEmpty(ip).Equals(false) && read!=null)
{ {
string outValue = readAll.Read(ip);
if (isClear) if (isClear)
{ {
readAll.Clear(ip); read.Clear(ip);
} }
Thread.Sleep(100);
string outValue = read.Read(ip);
RFIDData data = new RFIDData(outValue); RFIDData data = new RFIDData(outValue);
return data; return data;
} }
} }
...@@ -80,7 +102,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -80,7 +102,7 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
readAll.Stop(); read.Stop();
} }
catch (Exception ex) catch (Exception ex)
{ {
......
...@@ -131,7 +131,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -131,7 +131,7 @@ namespace OnlineStore.DeviceLibrary
//return "进料线出口" + Config.L2_AgvName + ":" + AgvClient.GetAction(Config.L2_AgvName) + ",料架: " + LastInShelfId + "\r\n" + //return "进料线出口" + Config.L2_AgvName + ":" + AgvClient.GetAction(Config.L2_AgvName) + ",料架: " + LastInShelfId + "\r\n" +
// "出料线进口" + Config.L1_AgvName + ":" + AgvClient.GetAction(Config.L1_AgvName) + ",料架: " + LastOutShelfId + "\r\n"; // "出料线进口" + Config.L1_AgvName + ":" + AgvClient.GetAction(Config.L1_AgvName) + ",料架: " + LastOutShelfId + "\r\n";
return "Feeder1线入料口" + Config.L1_AgvName + ":" +agvClient.Feeder_In_Msg+ "\r\n" + //"料架: " + LastInShelfId + AgvClient.GetAction(Config.L1_AgvName) return "Feeder1线入料口" + Config.L1_AgvName + ":" +agvClient.Feeder_In_Msg+ "\r\n" + //"料架: " + LastInShelfId + AgvClient.GetAction(Config.L1_AgvName)
"Feeder2线出料口" + Config.L2_AgvName + ":"+ agvClient.Feeder_Out_Msg + "\r\n";//+ "料架: " + LastOutShelfId + AgvClient.GetAction(Config.L2_AgvName) + "Feeder2线出料口" + Config.L2_AgvName + ":" + "料架: " + LastOutShelfId +" "+ agvClient.Feeder_Out_Msg + "\r\n";//+ "料架: " + LastOutShelfId + AgvClient.GetAction(Config.L2_AgvName) +
} }
#endregion #endregion
...@@ -170,7 +170,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -170,7 +170,7 @@ namespace OnlineStore.DeviceLibrary
needCheckList.Add(IO_Type.L2_StopDown); needCheckList.Add(IO_Type.L2_StopDown);
} }
bool agvBusy = false; bool agvBusy = false;
if (agvClient.D21_InProcess || agvClient.D22_InProcess) if (agvClient.InLine_InProcess || agvClient.OutLine_InProcess)
agvBusy = true; agvBusy = true;
if (agvBusy && IsSleep) if (agvBusy && IsSleep)
{ {
......
...@@ -18,42 +18,49 @@ namespace OnlineStore.DeviceLibrary ...@@ -18,42 +18,49 @@ namespace OnlineStore.DeviceLibrary
private AsaPL.AgvClient agvClient; private AsaPL.AgvClient agvClient;
private static bool isInit = false; private static bool isInit = false;
public static Dictionary<string, AsaPL.ClientAction> actionMap = new Dictionary<string, AsaPL.ClientAction>(); public static Dictionary<string, AsaPL.ClientAction> actionMap = new Dictionary<string, AsaPL.ClientAction>();
public bool D21_InProcess = false; public bool InLine_InProcess = false;
public bool D22_InProcess = false; public bool OutLine_InProcess = false;
public string D22_RFID { get; set; } = ""; private static string InLine_Name = ConfigAppSettings.GetValue(Setting_Init.InLine_Name);
#region D21 Action private static string OutLine_Name = ConfigAppSettings.GetValue(Setting_Init.OutLine_Name);
public string OutLine_RFID { get; set; } = "";
#region InLine Action
/// <summary> /// <summary>
/// 无状态 /// 无状态
/// </summary> /// </summary>
public void D21_None() public void InLine_None()
{ {
SetStatus("D21", "", ClientAction.None); SetStatus(InLine_Name, "", ClientAction.None);
} }
/// <summary> /// <summary>
/// 可以进入状态 /// 可以进入状态
/// </summary> /// </summary>
public void D21_NeedEnter() public void InLine_NeedEnter()
{ {
SetStatus("D21", "", ClientAction.NeedEnter); SetStatus(InLine_Name, "", ClientAction.NeedEnter);
} }
#endregion #endregion
#region D22 Action #region OutLine Action
/// <summary> /// <summary>
/// 无状态 /// 无状态
/// </summary> /// </summary>
public void D22_None() public void OutLine_None(string rfid="")
{ {
SetStatus("D22", "", ClientAction.None); SetStatus(OutLine_Name, rfid, ClientAction.None);
} }
/// <summary> /// <summary>
/// 可以出去状态 /// 可以出去状态
/// </summary> /// </summary>
public void D22_NeedLeave() public void OutLine_NeedLeave(string rfid)
{ {
SetStatus("D22", D22_RFID, ClientAction.NeedLeave); if (!OutLine_RFID.Equals(rfid))
{
OutLine_RFID = rfid;
SetStatus(OutLine_Name, rfid, ClientAction.NeedLeave);
}
} }
#endregion #endregion
...@@ -72,8 +79,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -72,8 +79,8 @@ namespace OnlineStore.DeviceLibrary
agvClient.AGVFinishLeave += AgvClient_FinishLeave; agvClient.AGVFinishLeave += AgvClient_FinishLeave;
} }
actionMap = new Dictionary<string, AsaPL.ClientAction>(); actionMap = new Dictionary<string, AsaPL.ClientAction>();
agvClient.SetStatus("D21", "", ClientAction.None); agvClient.SetStatus(InLine_Name, "", ClientAction.None);
agvClient.SetStatus("D22", "", ClientAction.None); agvClient.SetStatus(OutLine_Name, "", ClientAction.None);
agvClient.Connect(); agvClient.Connect();
LogUtil.info("初始化AGV服务"); LogUtil.info("初始化AGV服务");
} }
...@@ -100,9 +107,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -100,9 +107,9 @@ namespace OnlineStore.DeviceLibrary
/// <param name="name">节点名称</param> /// <param name="name">节点名称</param>
private void AgvClient_ReadyEnter(string name) private void AgvClient_ReadyEnter(string name)
{ {
if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.LOW) && !D21_InProcess && name.Equals("D21")) if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.LOW) && !InLine_InProcess && name.Equals(InLine_Name))
{ {
MayEnter("D21"); MayEnter(InLine_Name);
Task.Factory.StartNew(delegate Task.Factory.StartNew(delegate
{ {
Feeder_In_Msg = "Feeder In: 等待 L1_InCheck=HIGH"; Feeder_In_Msg = "Feeder In: 等待 L1_InCheck=HIGH";
...@@ -123,10 +130,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -123,10 +130,10 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(5000); Thread.Sleep(5000);
Feeder_In_Msg = "Feeder In: 调用 FinishEnter "; Feeder_In_Msg = "Feeder In: 调用 FinishEnter ";
LogUtil.info(Feeder_In_Msg); LogUtil.info(Feeder_In_Msg);
FinishEnter("D21"); FinishEnter(InLine_Name);
Feeder_In_Msg = "Feeder In: 处理结束 更新状态为None "; Feeder_In_Msg = "Feeder In: 处理结束 更新状态为None ";
LogUtil.info(Feeder_In_Msg); LogUtil.info(Feeder_In_Msg);
D21_None(); InLine_None();
}); });
} }
...@@ -136,7 +143,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -136,7 +143,7 @@ namespace OnlineStore.DeviceLibrary
if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.HIGH)) if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.HIGH))
Feeder_In_Msg = "Feeder In: L1_InCheck 检测到有料架,AGV的料架无法进入"; Feeder_In_Msg = "Feeder In: L1_InCheck 检测到有料架,AGV的料架无法进入";
LogUtil.info(Feeder_In_Msg); LogUtil.info(Feeder_In_Msg);
D21_None(); InLine_None();
} }
LogUtil.info("收到 AgvClient_ReadyEnter [" + name + "]"); LogUtil.info("收到 AgvClient_ReadyEnter [" + name + "]");
} }
...@@ -154,10 +161,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -154,10 +161,9 @@ namespace OnlineStore.DeviceLibrary
// D22_InProcess = true; // D22_InProcess = true;
// D22_ReadyLeave = true; // D22_ReadyLeave = true;
//} //}
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.HIGH) && !D22_InProcess && name.Equals("D22")) if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.HIGH) && !OutLine_InProcess && name.Equals(OutLine_Name))
{ {
MayLeave(OutLine_Name, OutLine_RFID);
MayLeave("D22");
//LineManager.feederLine.UpdateSleep(false); //LineManager.feederLine.UpdateSleep(false);
LineManager.feederLine.StopIOMove(IO_Type.L2_OutStopDown, 1500); LineManager.feederLine.StopIOMove(IO_Type.L2_OutStopDown, 1500);
//agvClient.MayLeave(id); //agvClient.MayLeave(id);
...@@ -171,12 +177,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -171,12 +177,12 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(10000); Thread.Sleep(10000);
Feeder_Out_Msg = "Feeder Out: 调用 FinishLeave "; Feeder_Out_Msg = "Feeder Out: 调用 FinishLeave ";
LogUtil.info(Feeder_Out_Msg); LogUtil.info(Feeder_Out_Msg);
FinishLeave("D22"); FinishLeave(OutLine_Name, OutLine_RFID);
Thread.Sleep(5000); Thread.Sleep(5000);
Feeder_Out_Msg = "Feeder Out: 处理结束 更新状态为None "; Feeder_Out_Msg = "Feeder Out: 处理结束 更新状态为None ";
LogUtil.info(Feeder_Out_Msg); LogUtil.info(Feeder_Out_Msg);
D22_None(); OutLine_None();
}); });
} }
else else
...@@ -184,7 +190,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -184,7 +190,7 @@ namespace OnlineStore.DeviceLibrary
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.LOW)) if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.LOW))
Feeder_Out_Msg = "Feeder Out: L2_OutCheck 未检测到料架,无法将料架进入AGV"; Feeder_Out_Msg = "Feeder Out: L2_OutCheck 未检测到料架,无法将料架进入AGV";
LogUtil.info(Feeder_Out_Msg); LogUtil.info(Feeder_Out_Msg);
D22_None(); OutLine_None();
} }
LogUtil.info("收到 AgvClient_ReadyLeave [" + name + "] "); LogUtil.info("收到 AgvClient_ReadyLeave [" + name + "] ");
...@@ -197,13 +203,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -197,13 +203,13 @@ namespace OnlineStore.DeviceLibrary
/// <param name="name"></param> /// <param name="name"></param>
private void AgvClient_FinishLeave(string name) private void AgvClient_FinishLeave(string name)
{ {
if (name.Equals("D21")) if (name.Equals(InLine_Name))
{ {
D21_InProcess = false; InLine_InProcess = false;
} }
else if (name.Equals("D22")) else if (name.Equals(OutLine_Name))
{ {
D22_InProcess = false; OutLine_InProcess = false;
} }
LogUtil.info("收到 AgvClient_FinishLeave [" + name + "] "); LogUtil.info("收到 AgvClient_FinishLeave [" + name + "] ");
} }
...@@ -227,19 +233,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -227,19 +233,21 @@ namespace OnlineStore.DeviceLibrary
public void MayEnter(string name) public void MayEnter(string name)
{ {
SetStatus(name, "", ClientAction.MayEnter); SetStatus(name, "", ClientAction.MayEnter);
if (name.Equals("D21")) if (name.Equals(InLine_Name))
{ {
D21_InProcess = true; InLine_InProcess = true;
} }
LogUtil.info("MayEnter [" + name + "] ");
} }
public void MayLeave(string name) public void MayLeave(string name, string rfid)
{ {
SetStatus(name, "", ClientAction.MayLeave); SetStatus(name, rfid, ClientAction.MayLeave);
if (name.Equals("D22")) if (name.Equals(OutLine_Name))
{ {
D22_InProcess = true; OutLine_InProcess = true;
} }
LogUtil.info("MayLeave [" + name + "] ");
} }
/// <summary> /// <summary>
...@@ -253,13 +261,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -253,13 +261,13 @@ namespace OnlineStore.DeviceLibrary
SetStatus(name, "", ClientAction.FinishEnter); SetStatus(name, "", ClientAction.FinishEnter);
Thread.Sleep(15000); Thread.Sleep(15000);
if (name.Equals("D21")) if (name.Equals(InLine_Name))
{ {
D21_InProcess = false; InLine_InProcess = false;
} }
else if (name.Equals("D22")) else if (name.Equals(OutLine_Name))
{ {
D22_InProcess = false; OutLine_InProcess = false;
} }
}); });
...@@ -268,19 +276,19 @@ namespace OnlineStore.DeviceLibrary ...@@ -268,19 +276,19 @@ namespace OnlineStore.DeviceLibrary
/// 料架离开产线完成 /// 料架离开产线完成
/// </summary> /// </summary>
/// <param name="name"></param> /// <param name="name"></param>
public void FinishLeave(string name) public void FinishLeave(string name, string rfid = "")
{ {
Task.Factory.StartNew(delegate Task.Factory.StartNew(delegate
{ {
SetStatus(name, "", ClientAction.FinishLeave); SetStatus(name, rfid, ClientAction.FinishLeave);
Thread.Sleep(15000); Thread.Sleep(15000);
if (name.Equals("D21")) if (name.Equals(InLine_Name))
{ {
D21_InProcess = false; InLine_InProcess = false;
} }
else if (name.Equals("D22")) else if (name.Equals(OutLine_Name))
{ {
D22_InProcess = false; OutLine_InProcess = false;
} }
}); });
...@@ -304,12 +312,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -304,12 +312,12 @@ namespace OnlineStore.DeviceLibrary
} }
// actionMap[name] = action; // actionMap[name] = action;
// agvClient.SetStatus(name, shelfId, action, level); // agvClient.SetStatus(name, shelfId, action, level);
//LogUtil.info("设置 " + name + " [" + shelfId + "] " + action.ToString()); LogUtil.info("设置 " + name + " [" + shelfId + "] " + action.ToString());
return true; return true;
} }
agvClient.SetStatus(name, shelfId, action, level); agvClient.SetStatus(name, shelfId, action, level);
//actionMap.Add(name, action); //actionMap.Add(name, action);
//LogUtil.info("设置 " + name + " ["+ shelfId + "] "+ action.ToString()); LogUtil.info("设置 " + name + " ["+ shelfId + "] "+ action.ToString());
return true; return true;
} }
......
...@@ -4,16 +4,14 @@ ...@@ -4,16 +4,14 @@
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections> </configSections>
<appSettings> <appSettings>
<!--Feeder流水线名称-->
<add key="InLine_Name" value="C21" />
<add key="OutLine_Name" value="C22" />
<!--是否开机自动启动Feeder流水线--> <!--是否开机自动启动Feeder流水线-->
<add key="App_AutoRun" value="1" /> <add key="App_AutoRun" value="1" />
<add key="App_Title" value="Feeder线" /> <add key="App_Title" value="Feeder线" />
<!--Server address--> <!--Server address-->
<add key="http.server" value="http://10.85.160.25/myproject/" /> <add key="http.server" value="http://10.85.160.25/myproject/" />
<!--storeType-->
<add key="store_count" value="1" />
<!--start one store config-->
<add key="Line_Config" value="\LineConfig\FeederLineConfig.csv" />
<add key="Config_Pwd" value="123456" />
<!--IO配置--> <!--IO配置-->
<add key="UseAIOBOX" value="1" /> <add key="UseAIOBOX" value="1" />
<add key="DIMS" value="60" /> <add key="DIMS" value="60" />
...@@ -24,24 +22,33 @@ ...@@ -24,24 +22,33 @@
<add key="IsInDebug" value="1" /> <add key="IsInDebug" value="1" />
<add key="Agv_Log_Open" value="1" /> <add key="Agv_Log_Open" value="1" />
<add key="ClientSettingsProvider.ServiceUri" value="" /> <add key="ClientSettingsProvider.ServiceUri" value="" />
<add key="Line_Config" value="\LineConfig\FeederLineConfig.csv" />
</appSettings> </appSettings>
<log4net> <log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/vmiLine.log" /> <file type="log4net.Util.PatternString" value="logs/FeederLine.log" />
<param name="Encoding" value="UTF-8" /> <param name="Encoding" value="UTF-8" />
<appendToFile value="true" /> <appendToFile value="true" />
<rollingStyle value="Date" /> <param name="MaxSizeRollBackups" value="30"/>
<datePattern value="yyyy-MM-dd" /> <!-- 切割最多文件数 -->
<param name="MaximumFileSize" value="100MB"/>
<!-- 每个文件的大小 -->
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" /> <conversionPattern value="[%date][%t]%-5p %m%n" />
</layout> </layout>
</appender> </appender>
<appender name="TheRFID" type="log4net.Appender.RollingFileAppender"> <appender name="TheRFID" type="log4net.Appender.RollingFileAppender">
<file value="logs/TheRFID-vmi.log" /> <file value="logs/TheRFID-FeederLine.log" />
<param name="Encoding" value="UTF-8" /> <param name="Encoding" value="UTF-8" />
<appendToFile value="true" /> <appendToFile value="true" />
<rollingStyle value="Date" /> <param name="MaxSizeRollBackups" value="30"/>
<datePattern value="yyyy-MM-dd" /> <!-- 切割最多文件数 -->
<param name="MaximumFileSize" value="50MB"/>
<!-- 每个文件的大小 -->
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" /> <conversionPattern value="[%date][%t]%-5p %m%n" />
</layout> </layout>
......
...@@ -11,7 +11,7 @@ using System.Threading; ...@@ -11,7 +11,7 @@ using System.Threading;
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using UserFromControl; using UserFromControl;
using OnlineStore.DeviceLibrary; using OnlineStore.DeviceLibrary;
using OnlineStore.Common; using OnlineStore.Common;
...@@ -119,11 +119,11 @@ namespace OnlineStore.FeederLineClient ...@@ -119,11 +119,11 @@ namespace OnlineStore.FeederLineClient
if (!this.Visible) if (!this.Visible)
{ {
return; return;
} }
ReadIOList(); ReadIOList();
lblThisSta.Text = LineManager.GetRunStr(feederLine.runStatus)+" "+(feederLine.IsSleep ? "休眠中" :""); lblThisSta.Text = LineManager.GetRunStr(feederLine.runStatus) + " " + (feederLine.IsSleep ? "休眠中" : "");
lblWarnMsg.Text = feederLine.WarnMsg; lblWarnMsg.Text = feederLine.WarnMsg;
lblInfo.Text = feederLine.GetRunInfo(); lblInfo.Text = feederLine.GetRunInfo();
} }
private void FrmTest_FormClosing(object sender, FormClosingEventArgs e) private void FrmTest_FormClosing(object sender, FormClosingEventArgs e)
...@@ -145,8 +145,9 @@ namespace OnlineStore.FeederLineClient ...@@ -145,8 +145,9 @@ namespace OnlineStore.FeederLineClient
else if (feederLine.StartRun()) else if (feederLine.StartRun())
{ {
btnVmiStart.Text = "复位"; btnVmiStart.Text = "复位";
}else }
{ else
{
btnVmiStart.Text = "启动"; btnVmiStart.Text = "启动";
} }
} }
...@@ -341,7 +342,7 @@ namespace OnlineStore.FeederLineClient ...@@ -341,7 +342,7 @@ namespace OnlineStore.FeederLineClient
private void btnInLOutStopDown_Click(object sender, EventArgs e) private void btnInLOutStopDown_Click(object sender, EventArgs e)
{ {
BtnMove(btnInLOutStopDown, "Feeder1线体出口阻挡下降", "Feeder1线体出口阻挡上升", IO_Type.L1_OutStopDown); BtnMove(btnInLOutStopDown, "Feeder1出口缓冲打开", "Feeder1出口缓冲关闭", IO_Type.L1_OutStopDown);
} }
private void btnOLInStopDown_Click(object sender, EventArgs e) private void btnOLInStopDown_Click(object sender, EventArgs e)
...@@ -363,17 +364,17 @@ namespace OnlineStore.FeederLineClient ...@@ -363,17 +364,17 @@ namespace OnlineStore.FeederLineClient
{ {
feederLine.StopMove(); feederLine.StopMove();
} }
// string agvName = "C2"; // string agvName = "C2";
private void btnNeedLeave_Click(object sender, EventArgs e) private void btnNeedLeave_Click(object sender, EventArgs e)
{ {
//AgvClient.NeedLeave(txtname.Text, txtShelfId.Text); //AgvClient.NeedLeave(txtname.Text, txtShelfId.Text);
// AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedLeave); // AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedLeave);
} }
private void btnNeedEntry_Click(object sender, EventArgs e) private void btnNeedEntry_Click(object sender, EventArgs e)
{ {
//AgvClient.NeedEnter(txtname.Text, txtShelfId.Text); //AgvClient.NeedEnter(txtname.Text, txtShelfId.Text);
// AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedEnter); // AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedEnter);
} }
/// <summary> /// <summary>
...@@ -393,7 +394,7 @@ namespace OnlineStore.FeederLineClient ...@@ -393,7 +394,7 @@ namespace OnlineStore.FeederLineClient
private void btnDis_Click(object sender, EventArgs e) private void btnDis_Click(object sender, EventArgs e)
{ {
// agvClient.Dispose(); // agvClient.Dispose();
} }
private void btnStopTDown_Click(object sender, EventArgs e) private void btnStopTDown_Click(object sender, EventArgs e)
...@@ -412,7 +413,7 @@ namespace OnlineStore.FeederLineClient ...@@ -412,7 +413,7 @@ namespace OnlineStore.FeederLineClient
} }
private void chbMoveStop_CheckedChanged(object sender, EventArgs e) private void chbMoveStop_CheckedChanged(object sender, EventArgs e)
{ {
feederLine.MoveStop = chbMoveStop.Checked; feederLine.MoveStop = chbMoveStop.Checked;
LogUtil.info(feederLine.Name + "用户切换是否暂停: " + feederLine.MoveStop); LogUtil.info(feederLine.Name + "用户切换是否暂停: " + feederLine.MoveStop);
} }
...@@ -426,5 +427,30 @@ namespace OnlineStore.FeederLineClient ...@@ -426,5 +427,30 @@ namespace OnlineStore.FeederLineClient
{ {
} }
private void btnTranverse_Click(object sender, EventArgs e)
{
if (btnTranverse.Text.Equals("横移机构上升"))
{
IOManager.CIOMove(IO_Type.Tranverse_Down_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Tranverse_Up_SOL, IO_VALUE.HIGH);
Thread.Sleep(500);
btnTranverse.Text = "横移机构下降";
}
else
{
IOManager.CIOMove(IO_Type.Tranverse_Up_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Tranverse_Down_SOL, IO_VALUE.HIGH);
Thread.Sleep(500);
btnTranverse.Text = "横移机构上升";
}
}
private void btnTranverseRun_Click(object sender, EventArgs e)
{
BtnMove(btnTranverseRun, "横移电机运转", "横移电机停止", IO_Type.Tranverse_Run);
}
} }
} }
...@@ -25,62 +25,92 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -25,62 +25,92 @@ namespace OnlineStore.LoadCSVLibrary
} }
/// <summary> /// <summary>
/// DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X741,DI-01,0, /// DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X761,DI-01,0,
/// </summary> /// </summary>
public static string SuddenStop_BTN = "SuddenStop_BTN"; public static string SuddenStop_BTN = "SuddenStop_BTN";
/// <summary> /// <summary>
/// DI,Feeder1线入口检测,L1_InCheck,1,PRO_AOI_IP_1,0,Feeder1线入口检测,X742,DI-02,0, /// DI,Feeder1线入口检测,L1_InCheck,1,PRO_AOI_IP_1,0,Feeder1线入口检测,X762,DI-02,0,
/// </summary> /// </summary>
public static string L1_InCheck = "L1_InCheck"; public static string L1_InCheck = "L1_InCheck";
/// <summary> /// <summary>
/// DI,Feeder1线阻挡检测,L1_StopCheck,2,PRO_AOI_IP_1,0,Feeder1线阻挡检测,X743,DI-03,0, /// DI,Feeder1线阻挡检测,L1_StopCheck,2,PRO_AOI_IP_1,0,Feeder1线阻挡检测,X763,DI-03,0,
/// </summary> /// </summary>
public static string L1_StopCheck = "L1_StopCheck"; public static string L1_StopCheck = "L1_StopCheck";
/// <summary> /// <summary>
/// DI,Feeder1线出口检测,L1_OutCheck,3,PRO_AOI_IP_1,0,Feeder1线出口检测,X744,DI-04,0, ///DI,Feeder1线出口检测,L1_OutCheck,3,PRO_AOI_IP_1,0,Feeder1线出口检测,X764,DI-04,0,
/// </summary> /// </summary>
public static string L1_OutCheck = "L1_OutCheck"; public static string L1_OutCheck = "L1_OutCheck";
/// <summary> /// <summary>
/// DI,Feeder2线入口检测,L2_InCheck,4,PRO_AOI_IP_1,0,Feeder2线入口检测,X745,DI-05,0, /// Feeder2线入口检测,L2_InCheck,4,PRO_AOI_IP_1,0,Feeder2线入口检测,X765,DI-05,0,
/// </summary> /// </summary>
public static string L2_InCheck = "L2_InCheck"; public static string L2_InCheck = "L2_InCheck";
/// <summary> /// <summary>
/// DI,Feeder2线阻挡检测,L2_StopCheck,5,PRO_AOI_IP_1,0,Feeder2线阻挡检测,X746,DI-06,0, /// DI,Feeder2线阻挡检测,L2_StopCheck,5,PRO_AOI_IP_1,0,Feeder2线阻挡检测,X766,DI-06,0,
/// </summary> /// </summary>
public static string L2_StopCheck = "L2_StopCheck"; public static string L2_StopCheck = "L2_StopCheck";
/// <summary> /// <summary>
/// DI,Feeder2线出口检测,L2_OutCheck,6,PRO_AOI_IP_1,0,Feeder2线出口检测,X747,DI-07,0, /// DI,Feeder2线出口检测,L2_OutCheck,6,PRO_AOI_IP_1,0,Feeder2线出口检测,X767,DI-07,0,
/// </summary> /// </summary>
public static string L2_OutCheck = "L2_OutCheck"; public static string L2_OutCheck = "L2_OutCheck";
/// <summary> /// <summary>
/// DI,Feeder1线人工取料信号,L1_ManualRecSig,7,PRO_AOI_IP_1,0,Feeder1线人工取料信号,X748,DI-08,0, /// DI,Feeder1线人工取料信号,L1_ManualRecSig,7,PRO_AOI_IP_1,0,Feeder1线人工取料信号,X768,DI-08,0,
/// </summary> /// </summary>
public static string L1_ManualRecSig = "L1_ManualRecSig"; public static string L1_ManualRecSig = "L1_ManualRecSig";
/// <summary> /// <summary>
/// DO,Feeder1线驱动电机运转,L1_Run,0,PRO_AOI_IP_1,0,Feeder1线驱动电机运转,Y741,DI-01,0, /// DI,Feeder1线顶升上升端,L1_Updown_Up_Sig,8,PRO_AOI_IP_1,0,Feeder1线顶升上升端,X769,DI-09,0,
/// </summary>
public static string L1_Updown_Up_Sig = "L1_Updown_Up_Sig";
/// <summary>
/// DI,Feeder1线顶升下降端,L1_Updown_Down_Sig,9,PRO_AOI_IP_1,0,Feeder1线顶升下降端,X770,DI-10,0,
/// </summary>
public static string L1_Updown_Down_Sig = "L1_Updown_Down_Sig";
/// <summary>
/// DI,Feeder2线顶升上升端,L2_Updown_Up_Sig,10,PRO_AOI_IP_1,0,Feeder2线顶升上升端,X771,DI-11,0,
/// </summary>
public static string L2_Updown_Up_Sig = "L2_Updown_Up_Sig";
/// <summary>
/// DI,Feeder2线顶升下降端,L2_Updown_Down_Sig,11,PRO_AOI_IP_1,0,Feeder2线顶升下降端,X772,DI-12,0,
/// </summary>
public static string L2_Updown_Down_Sig = "L2_Updown_Down_Sig";
/// <summary>
/// DO,Feeder1线驱动电机运转,L1_Run,0,PRO_AOI_IP_1,0,Feeder1线驱动电机运转,Y761,DO-01,0,
/// </summary> /// </summary>
public static string L1_Run = "L1_Run"; public static string L1_Run = "L1_Run";
/// <summary> /// <summary>
/// DO,Feeder2线驱动电机运转,L2_Run,1,PRO_AOI_IP_1,0,Feeder2线驱动电机运转,Y742,DI-02,0, /// DO,Feeder2线驱动电机运转,L2_Run,1,PRO_AOI_IP_1,0,Feeder2线驱动电机运转,Y762,DI-02,0,
/// </summary> /// </summary>
public static string L2_Run = "L2_Run"; public static string L2_Run = "L2_Run";
/// <summary> /// <summary>
/// DO,Feeder1线阻挡1下降,L1_StopDown,2,PRO_AOI_IP_1,0,Feeder1线阻挡1下降,Y743,DI-03,0, /// DO,Feeder1线阻挡1下降,L1_StopDown,2,PRO_AOI_IP_1,0,Feeder1线阻挡1下降,Y763,DI-03,0,
/// </summary> /// </summary>
public static string L1_StopDown = "L1_StopDown"; public static string L1_StopDown = "L1_StopDown";
/// <summary> /// <summary>
/// DO,Feeder1线出口阻挡下降,L1_OutStopDown,3,PRO_AOI_IP_1,0,Feeder1线出口阻挡下降,Y744,DI-04,0, /// DO,Feeder1线出口阻挡下降,L1_OutStopDown,3,PRO_AOI_IP_1,0,Feeder1线出口阻挡下降,Y764,DI-04,0,
/// </summary> /// </summary>
public static string L1_OutStopDown = "L1_OutStopDown"; public static string L1_OutStopDown = "L1_OutStopDown";
/// <summary> /// <summary>
/// DO,Feeder2线阻挡1下降,L2_StopDown,4,PRO_AOI_IP_1,0,Feeder2线阻挡1下降,Y745,DI-05,0, /// DO,Feeder2线出口阻挡下降,L2_OutStopDown,4,PRO_AOI_IP_1,0,Feeder2线出口阻挡下降,Y765,DO-05,0,
/// </summary>
public static string L2_OutStopDown = "L2_OutStopDown";
/// <summary>
/// DO,Feeder2线阻挡1下降,L2_StopDown,5,PRO_AOI_IP_1,0,Feeder2线阻挡1下降,Y766,DO-06,0,
/// </summary> /// </summary>
public static string L2_StopDown = "L2_StopDown"; public static string L2_StopDown = "L2_StopDown";
/// <summary> /// <summary>
/// DO,Feeder2线出口阻挡下降,L2_OutStopDown,5,PRO_AOI_IP_1,0,Feeder2线出口阻挡下降,Y746,DI-06,0, /// DO,Feeder线横移机构上升SOL,Tranverse_Up_SOL,6,PRO_AOI_IP_1,0,Feeder线横移机构上升SOL,Y767,DO-07,0,
/// </summary> /// </summary>
public static string L2_OutStopDown = "L2_OutStopDown"; public static string Tranverse_Up_SOL = "Tranverse_Up_SOL";
/// <summary>
/// DO,Feeder线横移机构下降SOL,Tranverse_Down_SOL,7,PRO_AOI_IP_1,0,Feeder线横移机构下降SOL,Y768,DO-08,0,
/// </summary>
public static string Tranverse_Down_SOL = "Tranverse_Down_SOL";
/// <summary>
/// DO,Feeder线横移电机运转,Tranverse_Run,8,PRO_AOI_IP_1,0,Feeder线横移电机运转,Y769,DO-09,0,
/// </summary>
public static string Tranverse_Run = "Tranverse_Run";
} }
public enum IO_VALUE public enum IO_VALUE
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!