Compare commits

...

10 Commits

Author SHA1 Message Date
atvstdla
1273ca8236 .. 2025-09-30 17:35:11 +09:00
atvstdla
5a2eeed3c4 .. 2025-09-29 17:38:12 +09:00
ChiKyun Kim
1ebbb83866 offline 모드에서 ip/mac 조회하도록 함. ip가 없으면 reel generate 가 동작하지 않음 2025-09-28 14:43:00 +09:00
atvstdla
16da4a5ffa .. 2025-09-26 18:15:59 +09:00
atvstdla
54c64a06bd Standardize SQL query syntax from 'with (no lock)' to 'with (nolock)'
Changed SQL query string formatting for consistency across the codebase.
Updated 2 occurrences in fLoaderInfo.cs (lines 691 and 2085).

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 10:12:11 +09:00
atvstdla
5e0f1ba056 add printer profile 2025-09-25 08:24:12 +09:00
atvstdla
a34dbecfb9 .. 2025-09-25 08:23:36 +09:00
ChiKyun Kim
ee122a6daf setting project : korean -> english 2025-09-24 10:54:52 +09:00
atvstdla
8111db4910 .. 2025-09-24 10:27:22 +09:00
ChiKyun Kim
4553fe7f3b to english 2025-09-24 09:00:30 +09:00
94 changed files with 9889 additions and 7318 deletions

57
CL4NX_Profile.xml Normal file
View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8" ?>
<Model value="CL4NX Series" >
<PrintMethod value="Thermal Transfer" />
<PrintResolution value="0" />
<PrintSpeed value="6(inch/sec) 150(mm/sec)" />
<PrintMode value="Tear off" />
<CutterMode value="Motion 1 (Thermal head position)" />
<DispenseMode value="Motion 1 (Thermal head position)" />
<LinerlessMode value="Motion 2 (Dispenser position)" />
<PrintDarkness value="A" />
<DarknessLevel value="Level 5" />
<SensorType value="GAP" />
<ZeroSlash value="Enabled" />
<KanjiCode value="GB18030" />
<InitialFeed value="Enabled" />
<ProportionPitch value="Proportional pitch" />
<LabelHeight value="315" />
<LabelWidth value="520" />
<VerticalStart value="0" />
<HorizontalStart value="5" />
<LabelPitchOffset value="0" />
<TearOffset value="0" />
<CutterOffset value="0" />
<DispenserOffset value="0" />
<Language value="Korean" />
<HeadCheckMode value="Specify number of pages" />
<HeadCheck value="Disable" />
<HeadCheckPage value="1" />
<PowerSaving value="0" />
<OptionTime value="0" />
<AllQty value="Disable" />
<TimeZone value="Asia/Seoul (+09:00)" />
<BuzzerSound value="Volume medium" />
<AppMode value="AUTO" />
<AppModeAuto value="SZPL" />
<Reprint value="Enable" />
<PEND_TYPE value="GAP" />
<EJECT_CUT value="0" />
<MEDIA_CHECK value="Disable" />
<AUTO_MEASURE value="Enable" />
<AUTO_ONLINE value="Enable" />
<ONLINE_FEED value="Disable" />
<IGNORE_CRLF value="Do not remove CR/LF" />
<BYTECOMMAND value="Disable" />
<RB_NEND value="Enable" />
<PRIORITY value="Prioritize command" />
<PRINT_AREA value="Normal" />
<HEX_DUMP_MODE value="Disable" />
<CALENDAR_CHECK value="Disable" />
<AC_POWERON value="Disable" />
<BV_MODE value="Disable" />
<BV_START_POSITION value="72" />
<BV_VOID_PRINT value="Disable" />
<BV_RETRY_COUNT value="0" />
<BV_HOST_NOTIFICATION value="Disable" />
<UNIT value="dot" />
</Model>

View File

@@ -24,6 +24,8 @@ namespace Project
public List<Class.RegexPattern> BCDPattern;
public List<Class.RegexPattern> BCDIgnorePattern;
public object BCDPatternLock = new object();
public DateTime ResetButtonDownTime = DateTime.Now;
public Boolean ClearAllSID = false;
public Class.CHistorySIDRef SIDReference; //SIDLIST받은 내역
@@ -194,6 +196,7 @@ namespace Project
public DateTime retryTime;
public DateTime[] WaitForVar = new DateTime[255];
public int ABCount = 0;
public bool AutoReelOut = false;
public CResult()
{
@@ -202,7 +205,7 @@ namespace Project
SIDReference = new Class.CHistorySIDRef();
SIDHistory = new DataSet1.SIDHistoryDataTable();
BCDPattern = new List<Class.RegexPattern>();
BCDPattern = new List<Class.RegexPattern>();
OUTHistory = new List<UIControl.CItem>();
this.Clear("Result ctor");
@@ -274,6 +277,7 @@ namespace Project
PrintPostionList = new Dictionary<string, string>();
else
PrintPostionList.Clear();
PUB.log.Add("Print Positoin Clear");
ItemDataL.Clear(Reason);
ItemDataC.Clear(Reason);

View File

@@ -1,393 +1,393 @@
using Project;
using Project.Device;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
using AR;
//using Project;
//using Project.Device;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Management;
//using System.Net;
//using System.Net.NetworkInformation;
//using System.Text;
//using System.Threading.Tasks;
//using AR;
/// <summary>
/// ============================================================================
/// 장비기술 상태 모니터링 관련 클래스
/// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다.
/// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다.
/// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다.
/// ============================================================================
/// 작성자 : chi
/// 작성일 : 202-06-15
/// GIT : (none)
/// </summary>
public static partial class EEMStatus
{
static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true);
static string ip = string.Empty;
static string mac = string.Empty;
static DateTime StatusChecktime = DateTime.Now;
static DateTime MonitorChecktime = DateTime.Now.AddYears(-1);
static DateTime FileCheckTime = DateTime.Now;
static string monitorfile = string.Empty;
/// <summary>
/// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다.
/// </summary>
public static int UpdateStatusInterval { get; set; } = 180;
public static int UpdateFileInterval { get; set; } = 3;
static bool queryok = false;
static bool UpdateRun = false;
///// <summary>
///// ============================================================================
///// 장비기술 상태 모니터링 관련 클래스
///// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다.
///// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다.
///// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다.
///// ============================================================================
///// 작성자 : chi
///// 작성일 : 202-06-15
///// GIT : (none)
///// </summary>
//public static partial class EEMStatus
//{
// static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true);
// static string ip = string.Empty;
// static string mac = string.Empty;
// static DateTime StatusChecktime = DateTime.Now;
// static DateTime MonitorChecktime = DateTime.Now.AddYears(-1);
// static DateTime FileCheckTime = DateTime.Now;
// static string monitorfile = string.Empty;
// /// <summary>
// /// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다.
// /// </summary>
// public static int UpdateStatusInterval { get; set; } = 180;
// public static int UpdateFileInterval { get; set; } = 3;
// static bool queryok = false;
// static bool UpdateRun = false;
public static string IP
{
get
{
if (queryok == false) GetNetworkInfo();
return ip;
}
set { ip = value; }
}
public static string MAC
{
get
{
if (queryok == false) GetNetworkInfo();
return mac;
}
set
{
mac = value;
}
}
// public static string IP
// {
// get
// {
// if (queryok == false) GetNetworkInfo();
// return ip;
// }
// set { ip = value; }
// }
// public static string MAC
// {
// get
// {
// if (queryok == false) GetNetworkInfo();
// return mac;
// }
// set
// {
// mac = value;
// }
// }
/// <summary>
/// 현재 시스템의 IP/MAC정보를 취득합니다.
/// </summary>
static void GetNetworkInfo()
{
// /// <summary>
// /// 현재 시스템의 IP/MAC정보를 취득합니다.
// /// </summary>
// static void GetNetworkInfo()
// {
ip = "";
mac = "";
// string prgmName = Application.ProductName;
// ip = "";
// mac = "";
// // string prgmName = Application.ProductName;
var nif = NetworkInterface.GetAllNetworkInterfaces();
var host = Dns.GetHostEntry(Dns.GetHostName());
string fullname = System.Net.Dns.GetHostEntry("").HostName;
foreach (IPAddress r in host.AddressList)
{
string str = r.ToString();
// var nif = NetworkInterface.GetAllNetworkInterfaces();
// var host = Dns.GetHostEntry(Dns.GetHostName());
// string fullname = System.Net.Dns.GetHostEntry("").HostName;
// foreach (IPAddress r in host.AddressList)
// {
// string str = r.ToString();
if (str != "" && str.Substring(0, 3) == "10.")
{
ip = str;
break;
}
}
// if (str != "" && str.Substring(0, 3) == "10.")
// {
// ip = str;
// break;
// }
// }
string rtn = string.Empty;
ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");
ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq);
foreach (ManagementObject mo in query1.Get())
{
string[] address = (string[])mo["IPAddress"];
if (address[0] == ip && mo["MACAddress"] != null)
{
mac = mo["MACAddress"].ToString();
break;
}
}
queryok = true;
}
// string rtn = string.Empty;
// ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");
// ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq);
// foreach (ManagementObject mo in query1.Get())
// {
// string[] address = (string[])mo["IPAddress"];
// if (address[0] == ip && mo["MACAddress"] != null)
// {
// mac = mo["MACAddress"].ToString();
// break;
// }
// }
// queryok = true;
// }
public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "")
{
var tsrun = DateTime.Now - StatusChecktime;
if (tsrun.TotalSeconds >= UpdateStatusInterval)
{
AddStatusSQL(status, "UPDATE", extrun: _extrun);
StatusChecktime = DateTime.Now;
}
// public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "")
// {
// var tsrun = DateTime.Now - StatusChecktime;
// if (tsrun.TotalSeconds >= UpdateStatusInterval)
// {
// AddStatusSQL(status, "UPDATE", extrun: _extrun);
// StatusChecktime = DateTime.Now;
// }
//내부실행모드일때에만 파일을 처리한다
if (_extrun == false)
{
var tsfile = DateTime.Now - FileCheckTime;
if (tsfile.TotalSeconds >= UpdateFileInterval)
{
if (UpdateRun == false)
{
UpdateRun = true;
Task.Run(() =>
{
UpdateFileToDB();
UpdateRun = false;
});
}
FileCheckTime = DateTime.Now;
}
}
}
// //내부실행모드일때에만 파일을 처리한다
// if (_extrun == false)
// {
// var tsfile = DateTime.Now - FileCheckTime;
// if (tsfile.TotalSeconds >= UpdateFileInterval)
// {
// if (UpdateRun == false)
// {
// UpdateRun = true;
// Task.Run(() =>
// {
// UpdateFileToDB();
// UpdateRun = false;
// });
// }
// FileCheckTime = DateTime.Now;
// }
// }
// }
/// <summary>
/// 상태모니터링 프로그램의 실행파일 명
/// </summary>
static string StatusMonitorFile
{
get
{
if (string.IsNullOrEmpty(monitorfile))
monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe");
return monitorfile;
}
}
// /// <summary>
// /// 상태모니터링 프로그램의 실행파일 명
// /// </summary>
// static string StatusMonitorFile
// {
// get
// {
// if (string.IsNullOrEmpty(monitorfile))
// monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe");
// return monitorfile;
// }
// }
static System.Diagnostics.Process CheckMonitor()
{
if (System.IO.File.Exists(StatusMonitorFile) == false) return null;
// static System.Diagnostics.Process CheckMonitor()
// {
// if (System.IO.File.Exists(StatusMonitorFile) == false) return null;
var prcs = System.Diagnostics.Process.GetProcesses();
return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault();
}
// var prcs = System.Diagnostics.Process.GetProcesses();
// return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault();
// }
public static bool RunStatusMonitor()
{
//파일이 없으면 실행 불가
if (System.IO.File.Exists(StatusMonitorFile) == false) return false;
// public static bool RunStatusMonitor()
// {
// //파일이 없으면 실행 불가
// if (System.IO.File.Exists(StatusMonitorFile) == false) return false;
//실행프로세스 검사
var prc = CheckMonitor();
if (prc == null)
{
try
{
prc = new System.Diagnostics.Process();
prc.StartInfo = new System.Diagnostics.ProcessStartInfo
{
Arguments = string.Empty,
FileName = StatusMonitorFile,
};
prc.Start();
}
catch
{
return false;
}
}
// //실행프로세스 검사
// var prc = CheckMonitor();
// if (prc == null)
// {
// try
// {
// prc = new System.Diagnostics.Process();
// prc.StartInfo = new System.Diagnostics.ProcessStartInfo
// {
// Arguments = string.Empty,
// FileName = StatusMonitorFile,
// };
// prc.Start();
// }
// catch
// {
// return false;
// }
// }
return true;
}
// return true;
// }
/// <summary>
/// 작업수량을 입력합니다
/// </summary>
/// <param name="cnt"></param>
/// <returns></returns>
public static string AddStatusCount(int cnt, string remark = "")
{
if (remark.isEmpty()) remark = $"Count Set : {cnt}";
return AddStatusSQL(PUB.sm.Step, remark, count: cnt);
}
/// <summary>
/// 상태메세지를 status 폴더에 기록합니다.
/// </summary>
/// <param name="status">상태머신의 상태값</param>
/// <param name="remark">비고</param>
/// <param name="wdate">기록일시</param>
/// <returns>오류발생시 오류메세지가 반환 됩니다</returns>
public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null)
{
if (queryok == false || MAC.isEmpty()) GetNetworkInfo();
if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty;
// /// <summary>
// /// 작업수량을 입력합니다
// /// </summary>
// /// <param name="cnt"></param>
// /// <returns></returns>
// public static string AddStatusCount(int cnt, string remark = "")
// {
// if (remark.isEmpty()) remark = $"Count Set : {cnt}";
// return AddStatusSQL(PUB.sm.Step, remark, count: cnt);
// }
// /// <summary>
// /// 상태메세지를 status 폴더에 기록합니다.
// /// </summary>
// /// <param name="status">상태머신의 상태값</param>
// /// <param name="remark">비고</param>
// /// <param name="wdate">기록일시</param>
// /// <returns>오류발생시 오류메세지가 반환 됩니다</returns>
// public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null)
// {
// if (queryok == false || MAC.isEmpty()) GetNetworkInfo();
// if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty;
if (extrun)
{
//상태모니터링 프로그램을 실행합니다.
var tsMon = DateTime.Now - MonitorChecktime;
if (tsMon.TotalMinutes > 5) RunStatusMonitor();
}
// if (extrun)
// {
// //상태모니터링 프로그램을 실행합니다.
// var tsMon = DateTime.Now - MonitorChecktime;
// if (tsMon.TotalMinutes > 5) RunStatusMonitor();
// }
try
{
var state = 0;
string cntstr = "null";
if (count != null) cntstr = count.ToString();
var alarmid = string.Empty;
var alarmmsg = string.Empty;
if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}";
// try
// {
// var state = 0;
// string cntstr = "null";
// if (count != null) cntstr = count.ToString();
// var alarmid = string.Empty;
// var alarmmsg = string.Empty;
// if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}";
if (status == eSMStep.RUN) state = 1;
else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY)
{
state = 2;
alarmid = PUB.Result.ResultErrorCode.ToString();
alarmmsg = PUB.Result.ResultMessage;
}
else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다,
{
if (PUB.Result.ResultErrorCode == Project.eECode.USER_STEP ||
PUB.Result.ResultErrorCode == Project.eECode.USER_STOP ||
PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE"))
{
//사용자에의해 멈추는 것은 오류코드를 넣지 않는다.
}
else
{
alarmid = PUB.Result.ResultErrorCode.ToString();
alarmmsg = PUB.Result.ResultMessage;
}
}
else if (status == eSMStep.INIT) state = 3; //시작
else if (status == eSMStep.CLOSING) state = 4; //종료
// if (status == eSMStep.RUN) state = 1;
// else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY)
// {
// state = 2;
// alarmid = PUB.Result.ResultErrorCode.ToString();
// alarmmsg = PUB.Result.ResultMessage;
// }
// else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다,
// {
// if (PUB.Result.ResultErrorCode == Project.eECode.USER_STEP ||
// PUB.Result.ResultErrorCode == Project.eECode.USER_STOP ||
// PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE"))
// {
// //사용자에의해 멈추는 것은 오류코드를 넣지 않는다.
// }
// else
// {
// alarmid = PUB.Result.ResultErrorCode.ToString();
// alarmmsg = PUB.Result.ResultMessage;
// }
// }
// else if (status == eSMStep.INIT) state = 3; //시작
// else if (status == eSMStep.CLOSING) state = 4; //종료
//length check
if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10);
if (remark.Length > 99) remark = remark.Substring(0, 99);
if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50);
// //length check
// if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10);
// if (remark.Length > 99) remark = remark.Substring(0, 99);
// if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50);
var mcid = AR.SETTING.Data.MCID;// Project.PUB.setting.MCID;//.Data.MCID;
//var mcid = Project.PUB.setting.MCID;//.Data.MCID;
var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status");
var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql");
var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " +
" values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')";
// var mcid = AR.SETTING.Data.MCID;// Project.PUB.setting.MCID;//.Data.MCID;
// //var mcid = Project.PUB.setting.MCID;//.Data.MCID;
// var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status");
// var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql");
// var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " +
// " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')";
var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss");
var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber);
System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default);
// var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss");
// var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
// sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber);
// System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default);
////만들어진지 3분이 지난 파일은 삭제한다.
//var di = new System.IO.DirectoryInfo(path);
//var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault();
//if (fi != null) fi.Delete();
if (state == 4) UpdateFileToDB();
return string.Empty;
}
catch (Exception ex)
{
return ex.Message;
}
}
// ////만들어진지 3분이 지난 파일은 삭제한다.
// //var di = new System.IO.DirectoryInfo(path);
// //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault();
// //if (fi != null) fi.Delete();
// if (state == 4) UpdateFileToDB();
// return string.Empty;
// }
// catch (Exception ex)
// {
// return ex.Message;
// }
// }
static void UpdateFileToDB()
{
if (mre.WaitOne(1000) == false) return;
mre.Reset();
var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";
var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status");
var di = new System.IO.DirectoryInfo(path);
if (di.Exists == false) return;
var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly)
.Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3))
.OrderByDescending(t => t.LastWriteTime).FirstOrDefault();
// static void UpdateFileToDB()
// {
// if (mre.WaitOne(1000) == false) return;
// mre.Reset();
// var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";
// var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status");
// var di = new System.IO.DirectoryInfo(path);
// if (di.Exists == false) return;
// var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly)
// .Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3))
// .OrderByDescending(t => t.LastWriteTime).FirstOrDefault();
if (file == null)
{
mre.Set();
return;
}
// if (file == null)
// {
// mre.Set();
// return;
// }
//파일을 찾아야한다
// PUB.log.Add($">> {file.FullName}");
// //파일을 찾아야한다
// // PUB.log.Add($">> {file.FullName}");
try
{
var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default);
if (string.IsNullOrEmpty(sql))
{
//비어잇다면
var errpath = System.IO.Path.Combine(di.FullName, "Error");
var errfile = System.IO.Path.Combine(errpath, file.Name);
if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath);
System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile);
// ecnt += 1;
}
else
{
// var csstr = PUB.setting.ConnectionString;
// if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";
var cn = new System.Data.SqlClient.SqlConnection(cs);
var cmd = new System.Data.SqlClient.SqlCommand(sql, cn);
cn.Open();
var cnt = cmd.ExecuteNonQuery();
//if (cnt == 0) PUB.log.Add($"Result Empty : {sql}");
cn.Close();
cnt += 1;
// try
// {
// var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default);
// if (string.IsNullOrEmpty(sql))
// {
// //비어잇다면
// var errpath = System.IO.Path.Combine(di.FullName, "Error");
// var errfile = System.IO.Path.Combine(errpath, file.Name);
// if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath);
// System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile);
// // ecnt += 1;
// }
// else
// {
// // var csstr = PUB.setting.ConnectionString;
// // if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";
// var cn = new System.Data.SqlClient.SqlConnection(cs);
// var cmd = new System.Data.SqlClient.SqlCommand(sql, cn);
// cn.Open();
// var cnt = cmd.ExecuteNonQuery();
// //if (cnt == 0) PUB.log.Add($"Result Empty : {sql}");
// cn.Close();
// cnt += 1;
var errpath = System.IO.Path.Combine(di.FullName, "Complete");
var errfile = System.IO.Path.Combine(errpath, file.Name);
if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath);
//file.MoveTo(errfile);
System.IO.File.Move(file.FullName, errfile);
}
// var errpath = System.IO.Path.Combine(di.FullName, "Complete");
// var errfile = System.IO.Path.Combine(errpath, file.Name);
// if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath);
// //file.MoveTo(errfile);
// System.IO.File.Move(file.FullName, errfile);
// }
}
catch (Exception ex)
{
if(ex.Message.Contains("deadlocked") == false)
{
var errpath = System.IO.Path.Combine(di.FullName, "Error");
var errfile = System.IO.Path.Combine(errpath, file.Name);
if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath);
try
{
//file.MoveTo(errfile);
System.IO.File.Move(file.FullName, errfile);
// }
// catch (Exception ex)
// {
// if(ex.Message.Contains("deadlocked") == false)
// {
// var errpath = System.IO.Path.Combine(di.FullName, "Error");
// var errfile = System.IO.Path.Combine(errpath, file.Name);
// if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath);
// try
// {
// //file.MoveTo(errfile);
// System.IO.File.Move(file.FullName, errfile);
//오류내용도 저장한다..
var errfilename = errfile + "_error.txt";
System.IO.File.WriteAllText(errfilename, ex.Message, System.Text.Encoding.Default);
}
catch (Exception ex2)
{
// //오류내용도 저장한다..
// var errfilename = errfile + "_error.txt";
// System.IO.File.WriteAllText(errfilename, ex.Message, System.Text.Encoding.Default);
// }
// catch (Exception ex2)
// {
}
}
else
{
Console.WriteLine("Dead lock error ignored");
}
// }
// }
// else
// {
// Console.WriteLine("(UpdateFileToDB) Dead lock error ignored");
// }
//ecnt += 1;
}
// //ecnt += 1;
// }
//try
//{
// //생성된지 10일이 넘은 자료는 삭제한다.
// //시간소비를 피해서 1개의 파일만 작업한다
// //var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories);
// //총3번의 데이터를 처리한다
// //var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName);
// //int i = 0;
// //var dellist = files.TakeWhile(t => i++ < 3);
// //foreach (var delfile in dellist)
// //System.IO.File.Delete(delfile);
//}
//catch
//{
// //try
// //{
// // //생성된지 10일이 넘은 자료는 삭제한다.
// // //시간소비를 피해서 1개의 파일만 작업한다
// // //var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories);
// // //총3번의 데이터를 처리한다
// // //var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName);
// // //int i = 0;
// // //var dellist = files.TakeWhile(t => i++ < 3);
// // //foreach (var delfile in dellist)
// // //System.IO.File.Delete(delfile);
// //}
// //catch
// //{
//}
mre.Set();
}
}
// //}
// mre.Set();
// }
//}
/*
=================================================
변경내역
=================================================
230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함
230615 chi UpdateFiletoDB의 ManualResetEvent적용
Version 항목 추가
230612 chi 프로그램 시작/종료 alarmid항목 추가
완료된 파일 10일간 보존하도록 함
230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함)
230617 chi 파일쓰기함수를 Task 로 처리
3분지난데이터 삭제기능 제거
230516 chi initial commit
*/
///*
//=================================================
//변경내역
//=================================================
//230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함
//230615 chi UpdateFiletoDB의 ManualResetEvent적용
// Version 항목 추가
//230612 chi 프로그램 시작/종료 alarmid항목 추가
// 완료된 파일 10일간 보존하도록 함
//230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함)
//230617 chi 파일쓰기함수를 Task 로 처리
// 3분지난데이터 삭제기능 제거
//230516 chi initial commit
//*/

View File

@@ -10,56 +10,86 @@ namespace Project
public enum ePXLoc : byte
{
READYL = 0,
READYR,
PICKON,
PICKOFFL,
PICKOFFR,
[Description("Reel Waiting(Left) Position")]
READYL = 0,
[Description("Reel Waiting(Right) Position")]
READYR,
[Description("Reel PickOn Position")]
PICKON,
[Description("Reel PickOff(Left) Position")]
PICKOFFL,
[Description("Reel PickOff(Right) Position")]
PICKOFFR,
}
public enum ePZLoc : byte
{
[Description("Ready Position")]
READY = 0,
PICKON,
PICKOFFL,
PICKOFFR,
[Description("Reel PickOn Position")]
PICKON,
[Description("Reel PickOff(Left) Position")]
PICKOFFL,
[Description("Reel PickOff(Right) Position")]
PICKOFFR,
}
public enum ePTLoc : byte
{
READY = 0,
[Description("Ready Position")]
READY = 0,
}
public enum eLMLoc : byte
{
READY = 0,
PRINTH07,
PRINTL07,
PRINTM07,
PRINTH13,
PRINTL13,
PRINTM13,
[Description("Ready Position")]
READY = 0,
[Description("7\" High Attach Position")]
PRINTH07,
[Description("7\" Low Attach Position")]
PRINTL07,
[Description("7\" Middle Attach Position")]
PRINTM07,
[Description("13\" High Attach Position")]
PRINTH13,
[Description("13\" Low Attach Position")]
PRINTL13,
[Description("13\" Middle Attach Position")]
PRINTM13,
}
public enum eLZLoc : byte
{
READY = 0,
PICKON,
PICKOFF,
[Description("Ready Position")]
READY = 0,
[Description("Reel PickOn Position")]
PICKON,
[Description("Reel PickOff Position")]
PICKOFF,
}
public enum eRMLoc : byte
{
READY = 0,
PRINTH07,
PRINTL07,
PRINTM07,
PRINTH13,
PRINTL13,
PRINTM13,
}
[Description("Ready Position")]
READY = 0,
[Description("7\" High Attach Position")]
PRINTH07,
[Description("7\" Low Attach Position")]
PRINTL07,
[Description("7\" Middle Attach Position")]
PRINTM07,
[Description("13\" High Attach Position")]
PRINTH13,
[Description("13\" Low Attach Position")]
PRINTL13,
[Description("13\" Middle Attach Position")]
PRINTM13,
}
public enum eRZLoc : byte
{
READY = 0,
PICKON,
PICKOFF,
[Description("Ready Position")]
READY = 0,
[Description("Reel PickOn Position")]
PICKON,
[Description("Reel PickOff Position")]
PICKOFF,
}
}

View File

@@ -113,5 +113,6 @@ namespace Project.Class
PUB.AddDebugLog($"After item copy target rid : {obj.VisionData.RID}, guid={obj.guid}");
}
}
}

View File

@@ -48,7 +48,7 @@ namespace Project.Class
/// 정규식 분석이 완료되었다면 True를 반환합니다
/// </summary>
public Boolean RegExConfirm { get; set; }
public Boolean RefExApply { get; set; }
public int RefExApply { get; set; }
public KeyenceBarcodeData()
{

View File

@@ -29,6 +29,7 @@ namespace Project
public Boolean BCD_DM { get; set; }
public UInt16 vOption { get; set; }
public UInt16 vWMSInfo { get; set; }
public UInt16 vSIDInfo { get; set; }
public UInt16 vJobInfo { get; set; }
public UInt16 vSIDConv1 { get; set; }
@@ -42,17 +43,20 @@ namespace Project
public bool CheckSIDExsit { get; set; }
public bool bOwnZPL { get; set; }
public int BSave { get; set; }
public bool IgnorePartNo { get; set; }
public bool IgnoreBatch { get; set; }
public int AutoOutConveyor { get; set; }
public ModelInfoV()
{
vOption = vSIDInfo = vJobInfo = vSIDConv1 = 0;
vOption = vWMSInfo = vSIDInfo = vJobInfo = vSIDConv1 = 0;
bOwnZPL = false;
}
public void ReadValue(DataSet1.OPModelRow dr)
{
this.AutoOutConveyor= dr.AutoOutConveyor;
this.bOwnZPL = dr.bOwnZPL;
this.Title = dr.Title;
this.Code = dr.Code;
@@ -63,6 +67,7 @@ namespace Project
this.BCD_DM = dr.BCD_DM;
this.vOption = dr.vOption;
this.vJobInfo = dr.vJobInfo;
this.vWMSInfo = dr.vWMSInfo;
this.vSIDInfo = dr.vSIDInfo;
this.vSIDConv1 = dr.vSIDConv;
this.Def_MFG = dr.Def_MFG;
@@ -72,45 +77,9 @@ namespace Project
this.DisablePrinter = dr.DisablePrinter;
this.CheckSIDExsit = dr.CheckSIDExsit;
this.BSave = dr.BSave;
//this.ByPassSID = dr.ByPassSID;
this.IgnoreBatch = dr.IgnoreBatch;
this.IgnorePartNo = dr.IgnorePartNo;
}
public bool WriteValue()
{
var model = PUB.mdm.GetDataV(this.Title);
return WriteValue(ref model);
}
public bool WriteValue(ref DataSet1.OPModelRow dr)
{
try
{
dr.Title = this.Title;
dr.Code = this.Code;
dr.Motion = this.Motion;
dr.BCD_1D = this.BCD_1D;
dr.BCD_QR = this.BCD_QR;
dr.BCD_DM = this.BCD_DM;
dr.vOption = this.vOption;
dr.vSIDInfo = this.vSIDInfo;
dr.vJobInfo = this.vJobInfo;
dr.vSIDConv = this.vSIDConv1;
dr.Def_MFG = this.Def_MFG;
dr.Def_VName = this.Def_Vname;
dr.IgnoreOtherBarcode = this.IgnoreOtherBarcode;
dr.DisableCamera = this.DisableCamera;
dr.DisablePrinter = this.DisablePrinter;
dr.CheckSIDExsit = this.CheckSIDExsit;
dr.bOwnZPL = this.bOwnZPL;
dr.BSave = this.BSave;
dr.EndEdit();
PUB.mdm.SaveModelV();
return true;
}
catch (Exception ex)
{
PUB.log.AddE("write model error" + ex.Message);
return false;
}
}
}
[TypeConverterAttribute(typeof(ExpandableObjectConverter))]

View File

@@ -15,7 +15,7 @@ namespace Project.Class
public class VisionData : INotifyPropertyChanged
{
public int RetryLoader { get; set; }
public List<string> bcdMessage { get; set; }
public Dictionary<int,string> bcdMessage { get; set; }
public Boolean LightOn { get; set; }
public DateTime STime; //비젼시작시간
public DateTime ETime; //비젼종료시간
@@ -25,6 +25,22 @@ namespace Project.Class
public string FileNameU; //언로딩존 촬영
public Boolean Complete;
public override string ToString()
{
var sb = new StringBuilder();
sb.AppendLine($"SID:{SID}:{(SID_Trust ? "O" : "X")}");
sb.AppendLine($"RID:{RID}:{(RID_Trust ? "O" : "X")}");
sb.AppendLine($"LOT:{VLOT}:{(VLOT_Trust ? "O" : "X")}");
sb.AppendLine($"QTY:{QTY}:{(QTY_Trust ? "O" : "X")}");
sb.AppendLine($"BAT:{BATCH}");
sb.AppendLine($"MFG:{MFGDATE}:{(MFGDATE_Trust ? "O" : "X")}");
sb.AppendLine($"CPN:{PARTNO}:{(PARTNO_Trust ? "O" : "X")}");
sb.AppendLine($"RID2:{RID2}");
sb.AppendLine($"RIDNew:{RIDNew}");
sb.AppendLine($"SID0:{SID0}");
return sb.ToString();
}
//public Boolean AngleQR { get; set; }
//public Boolean AngleSTD { get; set; }
//public double Angle { get; set; }
@@ -81,6 +97,15 @@ namespace Project.Class
return true;
}
//실제사용한 데이터 우선한다.
bcddata = bcdCanList.OrderByDescending(t=>t.Value.RefExApply).FirstOrDefault();
if (bcddata.Value != null && bcddata.Value.RefExApply > 0)
{
bcd = bcddata.Value;
msg = $"Used Data({bcddata.Value.RefExApply})";
return true;
}
//QR코드를 우선으로 사용 - return 릴은 적용하지 안게한다.
//RQ코드가 적용되지 않게한다 210824
bcddata = bcdCanList.Where(t => t.Value.barcodeSymbol == "1" && t.Value.isNewLen15 == false && t.Value.Data.EndsWith(";;;") == false && t.Value.Data.StartsWith("RQ") == false).FirstOrDefault();
@@ -469,7 +494,7 @@ namespace Project.Class
/// <summary>
/// keyence 로 부터 신규 바코드가 업데이트되었다
/// </summary>
public Boolean BarcodeDirty = false;
public Boolean BarcodeTouched = false;
public event PropertyChangedEventHandler PropertyChanged;
@@ -593,7 +618,7 @@ namespace Project.Class
ApplyOffset = false;
var baktime = new DateTime(1982, 11, 23);
if (timeBackup) baktime = this.STime;
bcdMessage = new List<string>();
bcdMessage = new Dictionary<int, string>();
PositionAngle = 0;
HASHEADER = false;
@@ -682,7 +707,7 @@ namespace Project.Class
VLOT_Trust = false;
VNAME_Trust = false;
BarcodeDirty = false;
BarcodeTouched = false;
MCN = string.Empty;
Target = string.Empty;
@@ -692,9 +717,9 @@ namespace Project.Class
public void CopyTo(ref VisionData obj)
{
//바코드메세지 복사
obj.bcdMessage = new List<string>();
obj.bcdMessage = new Dictionary<int, string>();
foreach (var item in this.bcdMessage)
obj.bcdMessage.Add(item);
obj.bcdMessage.Add(item.Key, item.Value);
obj.ApplyOffset = this.ApplyOffset;
obj.ConfirmAuto = this.ConfirmAuto;
@@ -749,7 +774,7 @@ namespace Project.Class
//obj.PrintForce = this.PrintForce;
obj.ReelSize = this.ReelSize;
obj.PrintPositionCheck = this.PrintPositionCheck;
obj.BarcodeDirty = this.BarcodeDirty;
obj.BarcodeTouched = this.BarcodeTouched;
//라벨위치값 복사
for (int i = 0; i < obj.LabelPositionData.Length; i++)
@@ -823,9 +848,9 @@ namespace Project.Class
public void UpdateTo(ref VisionData obj)
{
//바코드메세지 복사
obj.bcdMessage = new List<string>();
obj.bcdMessage = new Dictionary<int, string>();
foreach (var item in this.bcdMessage)
obj.bcdMessage.Add(item);
obj.bcdMessage.Add(item.Key, item.Value);
obj.ApplyOffset = this.ApplyOffset;
obj.ConfirmAuto = this.ConfirmAuto;
@@ -880,7 +905,7 @@ namespace Project.Class
//obj.PrintForce = this.PrintForce;
obj.ReelSize = this.ReelSize;
obj.PrintPositionCheck = this.PrintPositionCheck;
obj.BarcodeDirty = this.BarcodeDirty;
obj.BarcodeTouched = this.BarcodeTouched;
//라벨위치값 복사
for (int i = 0; i < obj.LabelPositionData.Length; i++)

View File

@@ -41,11 +41,11 @@ namespace Project
public sPositionData Clone()
{
return new sPositionData
{
Position = this.Position,
Acc = this.Acc,
Dcc = this.Dcc,
return new sPositionData
{
Position = this.Position,
Acc = this.Acc,
Dcc = this.Dcc,
//isError = this.isError,
Message = this.Message,
Speed = this.Speed,

File diff suppressed because it is too large Load Diff

View File

@@ -4,33 +4,33 @@
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-129" ViewPortY="30" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="138" ViewPortY="125" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:K4EE_Component_Reel_Result" ZOrder="22" X="256" Y="216" Height="533" Width="313" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="292" />
<Shape ID="DesignTable:K4EE_Component_Reel_RegExRule" ZOrder="11" X="989" Y="120" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="252" />
<Shape ID="DesignTable:K4EE_Component_Reel_RegExRule" ZOrder="1" X="989" Y="120" Height="343" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:K4EE_Component_Reel_SID_Convert" ZOrder="17" X="523" Y="187" Height="191" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:K4EE_Component_Reel_SID_Information" ZOrder="20" X="510" Y="176" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="197" SplitterPosition="254" />
<Shape ID="DesignTable:K4EE_Component_Reel_PreSet" ZOrder="16" X="622" Y="154" Height="305" Width="287" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:K4EE_Component_Reel_CustInfo" ZOrder="1" X="658" Y="45" Height="115" Width="299" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:K4EE_Component_Reel_PreSet" ZOrder="2" X="622" Y="154" Height="305" Width="287" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:K4EE_Component_Reel_CustInfo" ZOrder="5" X="658" Y="45" Height="115" Width="299" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:ResultSummary" ZOrder="18" X="-124" Y="28" Height="153" Width="293" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:K4EE_Component_Reel_Print_Information" ZOrder="15" X="560" Y="83" Height="210" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:K4EE_Component_Reel_Print_Information" ZOrder="16" X="560" Y="83" Height="210" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:CustCodeList" ZOrder="19" X="932" Y="62" Height="96" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:SidinfoCustGroup" ZOrder="14" X="747" Y="496" Height="96" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:Users" ZOrder="4" X="791" Y="379" Height="87" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:MCModel" ZOrder="6" X="919" Y="476" Height="410" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="406" />
<Shape ID="DesignTable:SidinfoCustGroup" ZOrder="15" X="747" Y="496" Height="96" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:Users" ZOrder="8" X="791" Y="379" Height="87" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:MCModel" ZOrder="10" X="919" Y="476" Height="410" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="406" />
<Shape ID="DesignTable:language" ZOrder="24" X="912" Y="519" Height="239" Width="134" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:OPModel" ZOrder="12" X="1026" Y="230" Height="486" Width="152" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="482" />
<Shape ID="DesignTable:BCDData" ZOrder="7" X="877" Y="455" Height="163" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:OPModel" ZOrder="3" X="1026" Y="230" Height="486" Width="152" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="482" />
<Shape ID="DesignTable:BCDData" ZOrder="11" X="877" Y="455" Height="163" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:UserSID" ZOrder="25" X="872" Y="524" Height="68" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:MailFormat" ZOrder="21" X="806" Y="428" Height="49" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="45" />
<Shape ID="DesignTable:MailRecipient" ZOrder="2" X="860" Y="495" Height="68" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:SIDHistory" ZOrder="9" X="841" Y="350" Height="182" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:InputDescription" ZOrder="8" X="744" Y="350" Height="143" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="139" />
<Shape ID="DesignTable:OutputDescription" ZOrder="3" X="864" Y="466" Height="182" Width="174" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:UserTable" ZOrder="10" X="734" Y="246" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="82" />
<Shape ID="DesignTable:ErrorDescription" ZOrder="5" X="831" Y="439" Height="105" Width="161" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="101" />
<Shape ID="DesignTable:MailRecipient" ZOrder="6" X="860" Y="495" Height="68" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:SIDHistory" ZOrder="13" X="841" Y="350" Height="182" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:InputDescription" ZOrder="12" X="744" Y="350" Height="143" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="139" />
<Shape ID="DesignTable:OutputDescription" ZOrder="7" X="864" Y="466" Height="182" Width="174" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:UserTable" ZOrder="14" X="734" Y="246" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="82" />
<Shape ID="DesignTable:ErrorDescription" ZOrder="9" X="831" Y="439" Height="105" Width="161" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="101" />
<Shape ID="DesignTable:ModelList" ZOrder="23" X="901" Y="509" Height="48" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="44" />
<Shape ID="DesignSources:QueriesTableAdapter" ZOrder="13" X="745" Y="74" Height="315" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="311" />
<Shape ID="DesignSources:QueriesTableAdapter" ZOrder="4" X="745" Y="74" Height="315" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="311" />
</Shapes>
<Connectors />
</DiagramLayout>

File diff suppressed because it is too large Load Diff

View File

@@ -326,7 +326,7 @@ namespace Project.Device
public bool BSave(int no)
{
var cmd = "BSAVE,{no}";
var cmd = $"BSAVE,{no}";
try
{
ws.Send(cmd + "\r");
@@ -338,7 +338,7 @@ namespace Project.Device
}
public bool BLoad(int no)
{
var cmd = "BLOAD,{no}";
var cmd = $"BLOAD,{no}";
try
{
ws.Send(cmd + "\r");

View File

@@ -62,7 +62,7 @@ namespace Project.Device
_isopen = true;
return _isopen;
}
catch { _isopen = false; return false; }
catch(Exception ex) { _isopen = false; return false; }
}
private string ControlCharReplace(string data)
@@ -219,7 +219,7 @@ namespace Project.Device
// PUB.log.Add($"SATO Recv : " + e.StrValue);
//}
public Boolean TestPrint(Boolean drawbox, string manu = "", string mfgdate = "")
public (Boolean result, string errmessage) TestPrint(Boolean drawbox, string manu = "", string mfgdate = "")
{
var dtstr = DateTime.Now.ToShortDateString();
var printcode = "103077807;Z577603504;105-35282-1105;15000;RC00004A219001W;20210612";
@@ -243,7 +243,7 @@ namespace Project.Device
}
public Boolean Print(Class.Reel reel, Boolean display1drid, Boolean drawOUtBox)
public (Boolean result, string errmessage) Print(Class.Reel reel, Boolean display1drid, Boolean drawOUtBox)
{
string prtData;
prtData = makeZPL_210908(reel, drawOUtBox, out qrData);
@@ -251,25 +251,28 @@ namespace Project.Device
return Print(prtData);
}
public bool Print(string _zpl)
public (Boolean result, string errmessage) Print(string _zpl)
{
this.LastPrintZPL = _zpl;
//if (this.IsOpen == false) return false;
try
{
byte[] cmddata = Utils.StringToByteArray(ControlCharReplace(_zpl));
SATOPrinter.Send(cmddata);
return true;
return (true,"");
}
catch (Exception ex)
{
return false;
return (false,ex.Message);
}
}
public string makeZPL_210908(Class.Reel reel, Boolean drawbox, out string qrData)
{
string m_strSend = string.Empty;
if(reel.PartNo.isEmpty())
qrData = string.Format("{0};{1};{2};{3};{4};{5}", reel.SID, reel.venderLot, reel.venderName, reel.qty, reel.id, reel.mfg);
else
qrData = string.Format("{0};{1};{2};{3};{4};{5};{6}", reel.SID, reel.venderLot, reel.venderName, reel.qty, reel.id, reel.mfg, reel.PartNo);
var reeid = reel.id;
@@ -277,14 +280,24 @@ namespace Project.Device
reeid = "..." + reeid.Substring(reeid.Length - 20);
m_strSend = this.baseZPL;
m_strSend = m_strSend.Replace("{qrData}", qrData);
m_strSend = m_strSend.Replace("{qrdata}", qrData);
m_strSend = m_strSend.Replace("{sid}", reel.SID);
m_strSend = m_strSend.Replace("{lot}", reel.venderLot);
m_strSend = m_strSend.Replace("{partnum}", reel.PartNo);
m_strSend = m_strSend.Replace("{rid}", reeid);
m_strSend = m_strSend.Replace("{qty}", reel.qty.ToString());
m_strSend = m_strSend.Replace("{mfg}", reel.mfg);
m_strSend = m_strSend.Replace("{supply}", reel.venderName);
var supply1 = reel.venderName;
string supply2 = "";
if (supply1.Length > 30)
{
supply2 = supply1.Substring(30);
supply1 = supply1.Substring(0, 30);
}
m_strSend = m_strSend.Replace("{supply}", supply1);
m_strSend = m_strSend.Replace("{supply2}", supply2);
//줄바꿈제거
m_strSend = m_strSend.Replace("\r", "").Replace("\n", "");

View File

@@ -231,7 +231,7 @@ namespace Project
}
catch (Exception ex)
{
PUB.log.AddE($"Printer(L) {ex.Message}");
}
}
else
@@ -260,7 +260,9 @@ namespace Project
PUB.PrinterR.Open();
PrintRConTime = DateTime.Now;
}
catch (Exception ex) { }
catch (Exception ex) {
PUB.log.AddE($"Printer(R) {ex.Message}");
}
}
else
{

File diff suppressed because it is too large Load Diff

View File

@@ -57,7 +57,7 @@ namespace Project
string.Empty
});
}
dvMot.Columns[10].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
//링크레이블과 버튼 연결
AttachEvents();
}
@@ -402,7 +402,7 @@ namespace Project
//if (groupBox3.Enabled == false) groupBox3.Enabled = true;
//각축별 기본 상태를 표시해준다.
dvMot.SuspendLayout();
//dvMot.SuspendLayout();
for (int r = 0; r < dvMot.RowCount; r++) // 오류수정 2111221
{
var row = this.dvMot.Rows[r];
@@ -411,13 +411,20 @@ namespace Project
row.Cells[2].Value = $"{PUB.mot.GetCmdPos(axis)}";
row.Cells[3].Value = $"{PUB.mot.GetActPos(axis)}";
row.Cells[4].Style.BackColor = PUB.mot.IsOrg(axis) ? Color.SkyBlue : Color.Gray;
row.Cells[5].Style.BackColor = PUB.mot.IsLimitN(axis) ? Color.Red : Color.Gray;
row.Cells[6].Style.BackColor = PUB.mot.IsLimitP(axis) ? Color.Red : Color.Gray;
row.Cells[7].Style.BackColor = PUB.mot.IsInp(axis) ? Color.SkyBlue : Color.Gray;
row.Cells[8].Style.BackColor = PUB.mot.IsServAlarm(axis) ? Color.Red : Color.Gray;
row.Cells[9].Style.BackColor = PUB.mot.IsHomeSet(axis) ? Color.Green : Color.Gray;
}
dvMot.ResumeLayout();
row.Cells[4].Value = PUB.mot.IsOrg(axis) ? "O" : "";
row.Cells[5].Style.BackColor = PUB.mot.IsLimitN(axis) ? Color.Red : Color.Gray;
row.Cells[5].Value = PUB.mot.IsLimitN(axis) ? "O" : "";
row.Cells[6].Style.BackColor = PUB.mot.IsLimitP(axis) ? Color.Red : Color.Gray;
row.Cells[6].Value = PUB.mot.IsLimitP(axis) ? "O" : "";
row.Cells[7].Style.BackColor = PUB.mot.IsInp(axis) ? Color.SkyBlue : Color.Gray;
row.Cells[7].Value = PUB.mot.IsInp(axis) ? "O" : "";
row.Cells[8].Style.BackColor = PUB.mot.IsServAlarm(axis) ? Color.Red : Color.Gray;
row.Cells[8].Value = PUB.mot.IsServAlarm(axis) ? "O" : "";
row.Cells[9].Style.BackColor = PUB.mot.IsHomeSet(axis) ? Color.Green : Color.Gray;
row.Cells[9].Value = PUB.mot.IsHomeSet(axis) ? "O" : "";
row.Cells[10].Value = PUB.mot.IsServOn(axis) ? "Servo On" : "Servo Off";
}
//dvMot.ResumeLayout();
}
// this.tblFG.Invalidate();
}
@@ -732,7 +739,7 @@ namespace Project
cntE += 1;
pDr.PosTitle = arrTitle;
}
//pDr.Description = targetem.DescriptionAttr();
pDr.Description = targetem.DescriptionAttr();
//pDr.Category = targetem.CategoryAttr();
pDr.Check = true;
pDr.EndEdit();
@@ -856,7 +863,7 @@ namespace Project
if (UTIL.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return;
if (!MOT.Move(axis, value, speed, acc, relative, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked))
if (!MOT.Move(axis, value, speed, acc, relative, true,true))
PUB.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + PUB.mot.ErrorMessage);

View File

@@ -303,11 +303,11 @@
<data name="btCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD1SURBVFhH7dAxCsJAEAXQ3E4EbbXRCyiewVaIvZ3oAWy9
ggYUi5BOsLS1TZM1A2Mju9kkf9Yizoff7cw8NupsequTQTtYJxdeJx868HgVrUvz4+W2GMbnhFfKRgJ4
yHIzKpH9OLnyWrlIAI/3IhxSClgLSY/RznepFeIqzXyAXiQ9RkLz083NLPaZFWPrN7ASKQFMn7mZlMhZ
zZ+0AZ1ICSAdbYKkGV+ZJwekNv1JV4MBqRLIoEAqigwOpCJIcaCvNkRVaYZ5ONAXBaJRIBoFolEgGgWi
USAaBaJRIBoFoqH9bcq83wD5VLso8C+AocunupYoegNn74NeMo6A3wAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD1SURBVFhH7dAxCsJAEAXQ3E4EbbXRCyiewVaIvZWgB7D1
ChpQLEI6wdLWNk3WDIyN7GaT/FmLOB9+tzPz2Kiz6a1OBu1gnVx4nXzowONVtC7Nj5fbYhifE14pGwng
IcvNqET24+TKa+UiATzei3BIKWAtJD1GO9+lVoirNPMBepH0GAnNTzc3s9hnVoyt38BKpAQwfeZmUiJn
NX/SBnQiJYB0tAmSZnxlnhyQ2vQnXQ0GpEoggwKpKDI4kIogxYG+2hBVpRnm4UBfFIhGgWgUiEaBaBSI
RoFoFIhGgWgUiIb2tynzfgPkU+2iwL8Ahi6f6lqi6A3RmINXQmh9mwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

File diff suppressed because it is too large Load Diff

View File

@@ -27,6 +27,8 @@ namespace Project
this.dv.CellContentClick += dv_CellContentClick;
//if (COMM.SETTING.Data.FullScreen) this.WindowState = FormWindowState.Maximized;
//this.WindowState = FormWindowState.Normal;
dvc_bsave.HeaderText = $"BLoad\n(1~8)";
this.panel3.Visible = PUB.UserAdmin;
}
private void FModelV_FormClosing(object sender, FormClosingEventArgs e)
@@ -119,6 +121,13 @@ namespace Project
if (chk.Tag == null) continue;
chk.Click += Chk_Option_Check;
}
foreach (var c in grpApplyWMSinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
var chk = c as CheckBox;
if (chk.Tag == null) continue;
chk.Click += Chk_WMSinfo_Check;
}
foreach (var c in grpApplySidinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
@@ -153,6 +162,17 @@ namespace Project
bs_CurrentChanged_1(null, null);
}
private void Chk_WMSinfo_Check(object sender, EventArgs e)
{
var drv = bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DataSet1.OPModelRow;
var chk = sender as CheckBox;
dr.vWMSInfo = UTIL.SetBitState(dr.vWMSInfo, int.Parse(chk.Tag.ToString()), chk.Checked);
dr.EndEdit();
bs_CurrentChanged_1(null, null);
}
private void Chk_Sidinfo_Check(object sender, EventArgs e)
{
var drv = bs.Current as DataRowView;
@@ -359,31 +379,57 @@ namespace Project
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
//button - save
this.Validate();
this.bs.EndEdit();
if (hasChanged() == true)
{
UTIL.MsgE("Need save");
return;
}
if (PUB.PasswordCheck() == false)
{
UTIL.MsgE("Password incorrect");
return;
}
var dr = drv.Row as DataSet1.OPModelRow;
var dlg = UTIL.MsgQ(string.Format("Do you want to copy the following model information?\n\nModel Name : {0}", dr.Title));
var oldname = dr.Title;
var newname = UTIL.InputBox("input new name", dr.Title);
if (newname.Item1 == false) return;
if(dr.Title.Equals(newname.Item2))
{
UTIL.MsgE("Same Data");
return;
}
var dlg = UTIL.MsgQ(string.Format("Do you want to copy the following model information?\n\nNew Model Name : {0}", newname.Item2));
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
var newdr = this.ds1.OPModel.NewOPModelRow();
UTIL.CopyData(dr, newdr);
newdr.Title += "-copy-";
newdr.Title = newname.Item2;
newdr.idx = this.ds1.OPModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1;
newdr.EndEdit();
this.ds1.OPModel.AddOPModelRow(newdr);
if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1;
PUB.mdm.dataSet.OPModel.Clear();
PUB.mdm.dataSet.OPModel.Merge(this.ds1.OPModel);
PUB.mdm.dataSet.AcceptChanges();
PUB.mdm.SaveModelV();
////detailcopy
//var childs = ds1.OPModel.Where(t => t.pidx == dr.idx).ToArray();
//foreach (var dr2 in childs)
//{
// var newdr2 = this.ds1.OPModel.NewOPModelRow();
// Util.CopyData(dr2, newdr2);
// newdr2.pidx = newdr.idx;
// newdr2.EndEdit();
// newdr2.idx = this.ds1.OPModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1;
// this.ds1.OPModel.AddOPModelRow(newdr2);
//}
//if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1;
//copy regex
var cnt = DB.CopyRegEx(oldname,newname.Item2);
PUB.log.AddAT($"model copy(regex : {cnt})");
}
@@ -426,6 +472,14 @@ namespace Project
var val = UTIL.GetBitState(dr.vOption, int.Parse(chk.Tag.ToString()));
if (chk.Checked != val) chk.Checked = val;
}
foreach (var c in grpApplyWMSinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
var chk = c as CheckBox;
if (chk.Tag == null) continue;
var val = UTIL.GetBitState(dr.vWMSInfo, int.Parse(chk.Tag.ToString()));
if (chk.Checked != val) chk.Checked = val;
}
foreach (var c in grpApplySidinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
@@ -514,6 +568,10 @@ namespace Project
{
grpapplyjob.Enabled = chk.Checked;
}
if (chk.Name.Equals(chkApplyWMSInfo.Name))
{
grpApplyWMSinfo.Enabled = chk.Checked;
}
if (chk.Name.Equals(chkApplySidInfo.Name))
{
grpApplySidinfo.Enabled = chk.Checked;
@@ -522,6 +580,7 @@ namespace Project
{
GrpSidConvData.Enabled = chk.Checked;
}
}
private void btConvOk_Click(object sender, EventArgs e)
@@ -571,6 +630,51 @@ namespace Project
f.ShowDialog();
}
}
private void btReName_Click(object sender, EventArgs e)
{
//button - save
this.Validate();
this.bs.EndEdit();
if (hasChanged() == true)
{
UTIL.MsgE("Need save");
return;
}
if (PUB.PasswordCheck() == false)
{
UTIL.MsgE("Password incorrect");
return;
}
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DataSet1.OPModelRow;
var beforename = dr.Title;
var dlg = UTIL.InputBox("Change Model ?Name", dr.Title);
if (dlg.Item1 == false) return;
if(beforename.Equals(dlg.Item2))
{
UTIL.MsgE("Same data");
return;
}
if (UTIL.MsgQ($"Change model name\nBefore:{beforename},After:{dlg.Item2}") != DialogResult.Yes)
return;
dr.Title = dlg.Item2;
dr.EndEdit();
//update regexname
DB.ChangeRegExName(beforename, dlg.Item2);
PUB.mdm.dataSet.OPModel.Clear();
PUB.mdm.dataSet.OPModel.Merge(this.ds1.OPModel);
PUB.mdm.dataSet.AcceptChanges();
PUB.mdm.SaveModelV();
}
}
}

View File

@@ -123,7 +123,7 @@
<metadata name="Code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="BSave.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="dvc_bsave.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -142,6 +142,21 @@
<value>356, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btReName.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAwFJREFUWEft

View File

@@ -222,9 +222,9 @@ namespace Project.Dialog
var butindex = int.Parse(but.Tag.ToString());
Boolean current = false;
if (butindex == 0) current = DIO.GetIOOutput(eDOName.CART_MAG0);
else if (butindex == 1) current = DIO.GetIOOutput(eDOName.CART_MAG1);
else current = DIO.GetIOOutput(eDOName.CART_MAG2);
if (butindex == 0) current = DIO.GetIOOutput(eDOName.PORTL_MAGNET);
else if (butindex == 1) current = DIO.GetIOOutput(eDOName.PORTC_MAGNET);
else current = DIO.GetIOOutput(eDOName.PORTR_MAGNET);
DIO.SetPortMagnet(butindex, !current);
}
@@ -326,16 +326,22 @@ namespace Project.Dialog
private void button3_Click_1(object sender, EventArgs e)
{
PUB.PrinterL.TestPrint(AR.SETTING.Data.DrawOutbox, "ATK4EE1", "");
var rlt = PUB.PrinterL.TestPrint(AR.SETTING.Data.DrawOutbox, "ATK4EE1", "");
var zpl = PUB.PrinterL.LastPrintZPL;
PUB.log.Add("Temp Print L: " + PUB.PrinterL.LastPrintZPL);
if (rlt.result == false)
PUB.log.AddE($"Temp Print L: {rlt.errmessage}" + PUB.PrinterL.LastPrintZPL);
else
PUB.log.Add("Temp Print L: " + PUB.PrinterL.LastPrintZPL);
}
private void button4_Click_1(object sender, EventArgs e)
{
PUB.PrinterR.TestPrint(AR.SETTING.Data.DrawOutbox, "ATK4EE1", "");
var rlt = PUB.PrinterR.TestPrint(AR.SETTING.Data.DrawOutbox, "ATK4EE1", "");
var zpl = PUB.PrinterR.LastPrintZPL;
PUB.log.Add("Temp Print R: " + PUB.PrinterR.LastPrintZPL);
if (rlt.result == false)
PUB.log.AddE($"Temp Print R: {rlt.errmessage}" + PUB.PrinterR.LastPrintZPL);
else
PUB.log.Add("Temp Print R: " + PUB.PrinterR.LastPrintZPL);
}
private void button15_Click(object sender, EventArgs e)
@@ -373,32 +379,30 @@ namespace Project.Dialog
{
//왼쪽 -5mm
var pos = MOT.GetLMPos(eLMLoc.READY);
var vel = AR.SETTING.Data.MoveYForPaperVaccumeVel;
var acc = AR.SETTING.Data.MoveYForPaperVaccumeAcc;
MOT.Move(eAxis.PL_MOVE, pos.Position + AR.SETTING.Data.MoveYForPaperVaccumeValue, vel, acc, false, false, false);
MOT.Move(eAxis.PL_MOVE, -5, 100, 500, true, false, false);//, vel, acc, false, false, false);
}
private void button14_Click(object sender, EventArgs e)
{
//왼쪽 +5mm
//왼쪽 Ready Position
var pos = MOT.GetLMPos(eLMLoc.READY);
MOT.Move(eAxis.PL_MOVE, pos.Position, 50, 200, false, false, false);
PUB.log.Add("user:PL_MOVE:to ready");
}
private void button15_Click_1(object sender, EventArgs e)
{
//오른쪽 -5mm
var pos = MOT.GetRMPos(eRMLoc.READY);
var vel = AR.SETTING.Data.MoveYForPaperVaccumeVel;
var acc = AR.SETTING.Data.MoveYForPaperVaccumeAcc;
MOT.Move(eAxis.PR_MOVE, pos.Position + AR.SETTING.Data.MoveYForPaperVaccumeValue, vel, acc, false, false, false);
MOT.Move(eAxis.PR_MOVE, -5, 100, 500, false, false, false);// pos.Position + AR.SETTING.Data.MoveYForPaperVaccumeValue, vel, acc, false, false, false);
}
private void button16_Click_2(object sender, EventArgs e)
{
//오른쪽 +5mm
//오른쪽 Ready Position
var pos = MOT.GetRMPos(eRMLoc.READY);
MOT.Move(eAxis.PR_MOVE, pos.Position, 50, 200, false, false, false);
PUB.log.Add("user:pr_move:to ready");
}
private void button17_Click(object sender, EventArgs e)
@@ -419,10 +423,10 @@ namespace Project.Dialog
if (cur == false)
{
//내려도되는지 검사해야한다.
if(PUB.mot.IsHomeSet((int)eAxis.PL_MOVE))
if (PUB.mot.IsHomeSet((int)eAxis.PL_MOVE))
{
var pos = MOT.GetLMPos(eLMLoc.READY);
if(MOT.getPositionMatch(pos))
if (MOT.getPositionMatch(pos))
{
PUB.log.AddE($"Cannot lower cylinder (L) because it is at standby position");
}

View File

@@ -123,8 +123,8 @@
this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image")));
this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem";
this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(49, 22);
this.bindingNavigatorAddNewItem.Text = "Add";
this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(65, 22);
this.bindingNavigatorAddNewItem.Text = "Add(&A)";
//
// bs
//
@@ -141,7 +141,7 @@
// bindingNavigatorCountItem
//
this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22);
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(26, 22);
this.bindingNavigatorCountItem.Text = "/{0}";
this.bindingNavigatorCountItem.ToolTipText = "Total item count";
//
@@ -150,8 +150,8 @@
this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image")));
this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem";
this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(61, 22);
this.bindingNavigatorDeleteItem.Text = "Delete";
this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(76, 22);
this.bindingNavigatorDeleteItem.Text = "Delete(&D)";
//
// bindingNavigatorMoveFirstItem
//
@@ -217,8 +217,8 @@
//
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_RegExRuleBindingNavigatorSaveItem.Image")));
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Name = "component_Reel_RegExRuleBindingNavigatorSaveItem";
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Size = new System.Drawing.Size(52, 22);
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Text = "Save";
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Size = new System.Drawing.Size(65, 22);
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Text = "Save(&S)";
this.component_Reel_RegExRuleBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_RegExRuleBindingNavigatorSaveItem_Click);
//
// toolStripButton1
@@ -227,8 +227,8 @@
this.toolStripButton1.Image = global::Project.Properties.Resources.arrow_refresh_small;
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(66, 22);
this.toolStripButton1.Text = "Refresh";
this.toolStripButton1.Size = new System.Drawing.Size(81, 22);
this.toolStripButton1.Text = "Refresh(&R)";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// btCopy
@@ -236,8 +236,8 @@
this.btCopy.Image = global::Project.Properties.Resources.copy;
this.btCopy.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btCopy.Name = "btCopy";
this.btCopy.Size = new System.Drawing.Size(55, 22);
this.btCopy.Text = "Copy";
this.btCopy.Size = new System.Drawing.Size(71, 22);
this.btCopy.Text = "Copy(&C)";
this.btCopy.Click += new System.EventHandler(this.btCopy_Click);
//
// toolStripButton2
@@ -245,8 +245,8 @@
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(83, 22);
this.toolStripButton2.Text = "Export List";
this.toolStripButton2.Size = new System.Drawing.Size(98, 22);
this.toolStripButton2.Text = "Export List(&O)";
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
//
// dv1

View File

@@ -26,6 +26,7 @@ namespace Project.Dialog
if (PUB.Result.isSetvModel)
e1.Row["CustCode"] = PUB.Result.vModel.Title;
};
dataGridViewTextBoxColumn1.Visible = false;
//모델목록을 업데이트한다.
cmbModelList.Items.Clear();
@@ -85,17 +86,21 @@ namespace Project.Dialog
{
this.Validate();
this.bs.EndEdit();
var cnt = this.tam.UpdateAll(this.dataSet1);
if (cnt == 0)
var cnt1 = this.ta.Update(this.dataSet1.K4EE_Component_Reel_RegExRule);
//var cnt = this.tam.UpdateAll(this.dataSet1);
if (cnt1 == 0)
{
UTIL.MsgE("No content has been saved");
}
else UTIL.MsgI($"{cnt} records have been saved");
else UTIL.MsgI($"{cnt1} records have been saved");
lock (PUB.Result.BCDPatternLock)
{
var modelName = PUB.Result.vModel.Title;
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
}
var modelName = PUB.Result.vModel.Title;
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
dv1.AutoResizeColumns();
}
@@ -103,7 +108,7 @@ namespace Project.Dialog
{
try
{
if (cust == "ALL")
{
dvcModelName.Visible = true;
@@ -125,12 +130,13 @@ namespace Project.Dialog
else
drow.DefaultCellStyle.BackColor = Color.WhiteSmoke;
}
dv1.AutoResizeColumns();
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
dv1.AutoResizeColumns();
}
@@ -264,10 +270,12 @@ namespace Project.Dialog
Width = 160,
Dock = DockStyle.Right,
};
butok.Click += (s1, e1) => {
butok.Click += (s1, e1) =>
{
f.DialogResult = DialogResult.OK;
};
butng.Click += (s1, e1) => {
butng.Click += (s1, e1) =>
{
f.DialogResult = DialogResult.Cancel;
};
@@ -286,7 +294,7 @@ namespace Project.Dialog
f.Controls.Add(pan);
f.Controls.Add(cmb);
f.Controls.Add(lb);
if (f.ShowDialog() == DialogResult.OK)
{
return cmb.Text;

View File

@@ -201,20 +201,20 @@
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL4SURBVDhPhZLrS1NhHMf3qv6EsF70UohSSiupF5WpTQ3s
ZipleZlTLLWhK4PMmJNMW2iiQkUkRS8qonRObV6ac7nRjEwzM++38DJ1l3Me3Tnz23PORisI+sGH58Vz
vh/O73uORJjIG4aU4xVmfdxd87K01MzSk4hohNNC4ip6SMwd08BBpbFqR/yLTWLoz4ku7TYuOMjST5ud
t7nWYHP6WXIIEHybc6CoYQoXNEOMNEe32Rf1TmyZaWFxxcn3TLhhmeRgmeJgnuBgGl+H4ccaWgZdWOMA
7RCLojeTSL8/wP4liVJ1snZmHb3TPD5Nc/Tk8FGUrKNrZA3vBhkq8KB3jodl1g21bgrh1zuei+FEzZGx
s6XxG/La00ivOYOa1nqUvNYgvDgIRyhS9QFEqvahUlspruIkHOZXGERe6+JEQUJF+KuO/iY0DT9CjblA
lFysjkHBs2Tk1idBVncCaXVp0PbNo2nAicYvdqzSnqJU3UQUSKukm4+r83jz9/d42q9CuSFHlKTUxtLw
SWQ9yIRxxCWu0j7MQk97WHG5EVXywSsQJrqsiygep8I6YkKd5Sput+UjUXMUKdXxsE4wsNJihYKNo95O
bFQQqfpDcOhmsXt/4XYkV0nRO9oD9ftsqHQKJN2LQL3hLT7PcLDSYnvG3fhAWXC4EX7LJ9ijDJCHKLch
98k5nK+NxrnKY6JEoUuG8nUmfZMICPe9Uzw+Cp+Y4qBFhilNXkGIcstMiHIrfSgAIQUBOFUegUsPU2Ec
1EOtL0T2y1TIahNgpQIL/TfMVEDcHoTmGfwrHFZ2k7lVgr4ZXqTr+yyuPM5CBg3K65KQ/+Ty7zsBZp1H
cF6LX7BXYSDTNr/gf7joCsGZWr8gTNHJDM0sb/zr4X9hd7GeXRe1Tl+cFpnVNjZtZxxDs6uesUUWYwss
RnwsOt0iQvNOwsNmZzwsIauBF5q/+uISSWhW66VgWUvbbrneFixvJL/J8BKU0eBF1kACZc0rO9Oa24NS
dekSiUTyC9B/oc2h827VAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL2SURBVDhPhZLrS1NhHMf3Kv+EsF70UohScmFRL0pTmxrY
zVTUvM0pmprowiBTppF5CU1UqBCl6EWFqOnUpuac0w1nZNpS8zov4GVOdzlHd8789pyz4QyEfvDhefGc
74fz+54j4CboiTLhRrlGEV6h2Qou1lDkpHkquVNLh5cP06Ev1BOXparq0xEfj/GhwxPybFC1bqY3VzZM
rNG6C6PFzaaZg8bvVTMK2gyIrZi0iTLlHq6oc8JK1etrxh12eMEO7SIDrYGBZoGBen4Pyj+76NJbscsA
7ZMUCloWkfxqgvpHElzUS+3Y9jC6xOL7EkNOBiO8ZA8DM7v4qrcRgQOjqyy0K3aUyA0IeNz3gQ9HVfrP
3SuO2JfU3UFy7V3UdjehuLkSAYXe8CeISi4hSOaHqvYqfhULzWDNZEOQdIDhBZHlAZ/7xjvQMf0WtZo8
XhJfE4q893HIaoqGuP4mkuqT0D62ho4JC7783ME26SlYNkjzAlG1yCNUls1qpvrxblyGMmUmL0moCyPh
W0h7nQrVjJVfpXeagoL0YLLaEVw85BRwE1I6QOc0JEI3o0a99hGe9+QiqvIaEmoioFuwQUeK5QpWzTo7
MRJBkOyQ4MrTQvuF/FOIqxZhdHYYJf3pkMlzEP0yEE3KVvxYZqAjxQ7P2zFEWDfbEVDkEvhKPSVC6Ulk
NcYgti4EMVXXeUmOPA7S5lTyJoHg7kcNLEa4T0wwkyL9ctVOgVB6fFkoPUEe8oQwzxO3ywKR8SYRKr0C
JYp8pH9KhLguEjoi0JJ/Q0MEtN0B32yle4WruYP06jaNsWWWZ2BqBQ8b0pBCgpL6aOQ2Pji447DtsfDJ
lrsFQmJbMroF/8NKVvBJbXMLLuZ8s+kNm/tHPXwUJrPVcTa+3eKKkyLTeuYWd2xm/dKWY26Dwtw6hRkX
GxY7D9e8hWaxYbI4KIra9rrf+csVFwjOp3Vn+Ii7es5JFEYfSSt9QIoT75QWJ+IW2kvcaTqT1NnrnShP
FggEgr9Ef6FyBTeROAAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="IsIgnore.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -112,6 +112,7 @@
this.tmAutoConfirm = new System.Windows.Forms.Timer(this.components);
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.copyToClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox1.SuspendLayout();
this.cmbarc.SuspendLayout();
this.panel7.SuspendLayout();
@@ -233,14 +234,15 @@
// cmbarc
//
this.cmbarc.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem});
this.ToolStripMenuItem,
this.copyToClipboardToolStripMenuItem});
this.cmbarc.Name = "cmbarc";
this.cmbarc.Size = new System.Drawing.Size(207, 26);
this.cmbarc.Size = new System.Drawing.Size(248, 70);
//
// 회전기준바코드로설정ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "회전기준바코드로설정ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.ToolStripMenuItem.Size = new System.Drawing.Size(247, 22);
this.ToolStripMenuItem.Text = "Set as rotation reference barcode";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
@@ -371,8 +373,7 @@
this.label1.Padding = new System.Windows.Forms.Padding(5);
this.label1.Size = new System.Drawing.Size(363, 74);
this.label1.TabIndex = 0;
this.label1.Text = "Display all data read from the current barcode reader. \r\n1. First select the data field you want to input from the left side\r\n2. Input data " +
"from the list below\r\n3. Press the \"Input\" button at the bottom";
this.label1.Text = resources.GetString("label1.Text");
//
// tbRID
//
@@ -1155,9 +1156,16 @@
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(121, 17);
this.toolStripStatusLabel1.Size = new System.Drawing.Size(118, 17);
this.toolStripStatusLabel1.Text = "toolStripStatusLabel1";
//
// copyToClipboardToolStripMenuItem
//
this.copyToClipboardToolStripMenuItem.Name = "copyToClipboardToolStripMenuItem";
this.copyToClipboardToolStripMenuItem.Size = new System.Drawing.Size(247, 22);
this.copyToClipboardToolStripMenuItem.Text = "Copy To Clipboard";
this.copyToClipboardToolStripMenuItem.Click += new System.EventHandler(this.copyToClipboardToolStripMenuItem_Click);
//
// fLoaderInfo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 30F);
@@ -1284,5 +1292,6 @@
private System.Windows.Forms.TextBox tbBatch;
private System.Windows.Forms.LinkLabel linkLabel10;
private System.Windows.Forms.TextBox tbQtyMax;
private System.Windows.Forms.ToolStripMenuItem copyToClipboardToolStripMenuItem;
}
}

View File

@@ -17,7 +17,7 @@ namespace Project.Dialog
{
string PrintPos = "";
public fLoaderInfo(List<string> errlist)
public fLoaderInfo(Dictionary<int, string> errlist)
{
InitializeComponent();
PUB.flag.set(eVarBool.FG_WAIT_LOADERINFO, true, "_LOAD");
@@ -31,9 +31,14 @@ namespace Project.Dialog
{
foreach (var item in errlist)
AddErrorMessage(item);
AddErrorMessage($"[{item.Key}] {item.Value}");
}
if (PUB.Result.vModel.IgnoreBatch) tbBatch.Enabled = false;
if (PUB.Result.vModel.IgnorePartNo) tbpartno.Enabled = false;
linkLabel7.Enabled = tbpartno.Enabled;
button4.Enabled = tbpartno.Enabled;
btPartChk.Enabled = tbpartno.Enabled;
lnkBatch.Enabled = tbBatch.Enabled;
}
void AddErrorMessage(string msg)
@@ -315,7 +320,7 @@ namespace Project.Dialog
//lv.SubItems.Add(item.CenterPX.Y.ToString());
if (item.RegExConfirm)
{
if (item.RefExApply)
if (item.RefExApply > 0)
lv.ForeColor = Color.Blue;
else
lv.ForeColor = Color.Black;
@@ -610,7 +615,7 @@ namespace Project.Dialog
{
var sid = this.tbSID.Text.Trim();
var dr = taSID.GetBySID(PUB.MCCode, sid).FirstOrDefault();// db.Component_Reel_SID_Information.Where(t => t.SID == sid).FirstOrDefault();
var dr = taSID.GetBySID(PUB.MCCode, sid).FirstOrDefault();
var drP = taPRN.GetBySID(PUB.MCCode, sid).FirstOrDefault();
if (dr == null) return;
@@ -683,7 +688,7 @@ namespace Project.Dialog
//최근 6시간안에서 동일한 데이터를 찾아서 제안 해준다
var sd = DateTime.Now.AddHours(-1);
var sql = "select * from K4EE_Component_Reel_Result with (no lock)" +
var sql = "select * from K4EE_Component_Reel_Result with (nolock)" +
" where jtype = @jtype and sid = @sid and isnull(QR,'') <> '' and stime >= @sd" +
" order by wdate desc";
var ps = new SqlParameter[] {
@@ -696,11 +701,7 @@ namespace Project.Dialog
var preDatas = DBHelper.Get(sql, ps);
if (preDatas.Rows.Count > 0) preData = preDatas.Rows[0] as DataSet1.K4EE_Component_Reel_ResultRow;
//var preData = db2.Component_Reel_Result.AsNoTracking().Where(t =>
//t.JTYPE == PUB.Result.JobType2 &&
//t.SID == sid &&
//string.IsNullOrEmpty(t.QR) == false &&
//t.STIME >= sd).OrderByDescending(t => t.wdate).FirstOrDefault();
//기존자료가 없다면 취소
if (preData == null) return false;
@@ -992,9 +993,9 @@ namespace Project.Dialog
//WMS generates from DB
var newid = PUB.MakeNewREELID(sid);
if (newid.success==false)
if (newid.success == false)
{
UTIL.MsgE($"No ReelID Data\n{newid.message}" , true);
UTIL.MsgE($"No ReelID Data\n{newid.message}", true);
return;
}
@@ -1416,7 +1417,7 @@ namespace Project.Dialog
tbRID.Focus();
return;
}
if (this.tbpartno.Text.isEmpty())
if (PUB.Result.vModel.IgnorePartNo == false && this.tbpartno.Text.isEmpty())
{
UTIL.MsgE("PART No is not entered");
tbpartno.Focus();
@@ -1620,7 +1621,7 @@ namespace Project.Dialog
{
//변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다
var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) +
" from Component_Reel_SID_Information WITH(NOLOCK)";
" from K4EE_Component_Reel_SID_Information WITH(NOLOCK)";
var WSQL = $" where MC='{PUB.MCCode}'";
for (int i = 0; i < wheres.Count; i++)
@@ -1682,7 +1683,7 @@ namespace Project.Dialog
{
//check double data 220706
var CSQL = "select count(*) from Component_Reel_SID_Information WITH(NOLOCK) ";
var CSQL = "select count(*) from K4EE_Component_Reel_SID_Information WITH(NOLOCK) ";
CSQL += WSQL;
CMD.CommandText = CSQL;
var cnt = int.Parse(CMD.ExecuteScalar().ToString());
@@ -1700,7 +1701,7 @@ namespace Project.Dialog
}
else
{
var USQL = $"update Component_Reel_SID_Information set [MC]='{PUB.MCCode}'," +
var USQL = $"update K4EE_Component_Reel_SID_Information set [MC]='{PUB.MCCode}'," +
string.Join(",", UpdateTarget.Select(t => "[" + t.Key + "]='" + t.Value + "'"));
USQL += WSQL;
@@ -1730,7 +1731,7 @@ namespace Project.Dialog
var dlg = UTIL.MsgQ(dlgMsg);
if (dlg == DialogResult.Yes)
{
var ISQL = $"insert into Component_Reel_SID_Information ([MC],wdate," +
var ISQL = $"insert into K4EE_Component_Reel_SID_Information ([MC],wdate," +
string.Join(",", InsertTarget.Select(t => "[" + t.Key + "]")) + ") values(" +
$"'{PUB.MCCode}',getdate()," +
string.Join(",", InsertTarget.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + ")";
@@ -1761,7 +1762,7 @@ namespace Project.Dialog
void ServerWriteCNV(Dictionary<string, string> columns, Dictionary<string, string> wheres)
{
//변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다
var tableName = "Component_Reel_SID_Convert";
var tableName = "K4EE_Component_Reel_SID_Convert";
var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) +
$" from {tableName} WITH(NOLOCK) ";
@@ -1911,7 +1912,7 @@ namespace Project.Dialog
{
//변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다
var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) +
" from Component_Reel_SID_Convert WITH(NOLOCK) ";
" from K4EE_Component_Reel_SID_Convert WITH(NOLOCK) ";
var WSQL = $" where (MC is null or MC='{PUB.MCCode}')";
for (int i = 0; i < wheres.Count; i++)
@@ -1975,7 +1976,7 @@ namespace Project.Dialog
{
//check double data 220706
var CSQL = "select count(*) from Component_Reel_SID_Convert WITH(NOLOCK) ";
var CSQL = "select count(*) from K4EE_Component_Reel_SID_Convert WITH(NOLOCK) ";
CSQL += WSQL;
CMD.CommandText = CSQL;
var cnt = int.Parse(CMD.ExecuteScalar().ToString());
@@ -1993,7 +1994,7 @@ namespace Project.Dialog
}
else
{
var USQL = $"update Component_Reel_SID_Convert set " +
var USQL = $"update K4EE_Component_Reel_SID_Convert set " +
string.Join(",", UpdateTarget.Select(t => "[" + t.Key + "]='" + t.Value + "'"));
USQL += WSQL;
@@ -2024,7 +2025,7 @@ namespace Project.Dialog
var dlg = UTIL.MsgQ(dlgMsg);
if (dlg == DialogResult.Yes)
{
var ISQL = $"insert into Component_Reel_SID_Convert ([MC],wdate," +
var ISQL = $"insert into K4EE_Component_Reel_SID_Convert ([MC],wdate," +
string.Join(",", InsertTarget.Select(t => "[" + t.Key + "]")) + ") values(" +
$"null,getdate()," +
string.Join(",", InsertTarget.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + ")";
@@ -2075,9 +2076,9 @@ namespace Project.Dialog
private void button1_Click_1(object sender, EventArgs e)
{
//데이터베이스 결과에서 자료를 추가한다.
var result = new DataSet1.K4EE_Component_Reel_ResultDataTable();// new List<Component_Reel_Result>();
var result = new DataSet1.K4EE_Component_Reel_ResultDataTable();
var tabName = "K4EE_Component_Reel_Result with (no lock)";
var tabName = "K4EE_Component_Reel_Result with (nolock)";
//1.sid sid를 먼저 검색한다. 이것이 확률이 제일 높음
if (this.tbSID.Text.isEmpty() == false)
@@ -2100,10 +2101,6 @@ namespace Project.Dialog
var sql = $"select top 5 * from {tabName} where QR like @search order by wdate desc";
var list = DBHelper.Get(sql, new SqlParameter("search", $"%;{tbVLOT.Text}%"));
if (list.Rows.Count > 0) result.Merge(list);
//var list = db.Component_Reel_Result.AsNoTracking().
// OrderByDescending(t => t.wdate).
// Where(t => t.QR.Contains(";" + tbVLOT.Text + ";")).Take(5).ToList();
///if (list != null && list.Count > 0) result.AddRange(list);
}
//4.벤더이름
@@ -2112,11 +2109,6 @@ namespace Project.Dialog
var sql = $"select top 5 * from {tabName} where QR like @search order by wdate desc";
var list = DBHelper.Get(sql, new SqlParameter("search", $"%;{tbVName.Text}%"));
if (list.Rows.Count > 0) result.Merge(list);
//var list = db.Component_Reel_Result.AsNoTracking().
// OrderByDescending(t => t.wdate).
// Where(t => t.QR.Contains(";" + tbVName.Text + ";")).Take(5).ToList();
//if (list != null && list.Count > 0) result.AddRange(list);
}
//customer code
@@ -2355,5 +2347,26 @@ namespace Project.Dialog
{
UTIL.TouchKeyShow(tbQtyMax, "INPUT MAX QTY(SAP)");
}
private void copyToClipboardToolStripMenuItem_Click(object sender, EventArgs e)
{
if (lvbcdList.FocusedItem == null)
{
UTIL.MsgE("No item has focus");
return;
}
try
{
var value = lvbcdList.FocusedItem.SubItems[1].Text.Trim();
Clipboard.SetText(value);
UTIL.MsgI($"Clipboard Copied\n{value}");
}
catch (Exception ex)
{
UTIL.MsgE(ex.Message+"\nClipboard");
}
}
}
}

View File

@@ -120,6 +120,12 @@
<metadata name="cmbarc.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>155, 17</value>
</metadata>
<data name="label1.Text" xml:space="preserve">
<value>Display all data read from the current barcode reader.
1. First select the data field you want to input from the left side
2. Input data from the list below
3. Press the "Input" button at the bottom</value>
</data>
<data name="ivF.MotorPosition" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0

View File

@@ -99,9 +99,10 @@
// chkDelinfo
//
this.chkDelinfo.AutoSize = true;
this.chkDelinfo.Location = new System.Drawing.Point(384, 28);
this.chkDelinfo.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.chkDelinfo.Location = new System.Drawing.Point(345, 31);
this.chkDelinfo.Name = "chkDelinfo";
this.chkDelinfo.Size = new System.Drawing.Size(126, 29);
this.chkDelinfo.Size = new System.Drawing.Size(169, 23);
this.chkDelinfo.TabIndex = 4;
this.chkDelinfo.Text = "Delete after printing";
this.chkDelinfo.UseVisualStyleBackColor = true;
@@ -109,14 +110,14 @@
// nudCnt
//
this.nudCnt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.nudCnt.Location = new System.Drawing.Point(263, 26);
this.nudCnt.Location = new System.Drawing.Point(236, 27);
this.nudCnt.Maximum = new decimal(new int[] {
99999,
0,
0,
0});
this.nudCnt.Name = "nudCnt";
this.nudCnt.Size = new System.Drawing.Size(100, 33);
this.nudCnt.Size = new System.Drawing.Size(100, 30);
this.nudCnt.TabIndex = 3;
this.nudCnt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nudCnt.Value = new decimal(new int[] {
@@ -129,9 +130,9 @@
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(183, 30);
this.label1.Location = new System.Drawing.Point(157, 31);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(64, 25);
this.label1.Size = new System.Drawing.Size(59, 23);
this.label1.TabIndex = 2;
this.label1.Text = "Count";
//
@@ -139,9 +140,9 @@
//
this.radRight.AutoSize = true;
this.radRight.Checked = true;
this.radRight.Location = new System.Drawing.Point(78, 28);
this.radRight.Location = new System.Drawing.Point(78, 29);
this.radRight.Name = "radRight";
this.radRight.Size = new System.Drawing.Size(76, 29);
this.radRight.Size = new System.Drawing.Size(72, 27);
this.radRight.TabIndex = 1;
this.radRight.TabStop = true;
this.radRight.Text = "Right";
@@ -150,9 +151,9 @@
// radLeft
//
this.radLeft.AutoSize = true;
this.radLeft.Location = new System.Drawing.Point(10, 28);
this.radLeft.Location = new System.Drawing.Point(10, 29);
this.radLeft.Name = "radLeft";
this.radLeft.Size = new System.Drawing.Size(62, 29);
this.radLeft.Size = new System.Drawing.Size(59, 27);
this.radLeft.TabIndex = 0;
this.radLeft.Text = "Left";
this.radLeft.UseVisualStyleBackColor = true;
@@ -203,7 +204,7 @@
this.tbPN.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbPN.Location = new System.Drawing.Point(137, 5);
this.tbPN.Name = "tbPN";
this.tbPN.Size = new System.Drawing.Size(235, 33);
this.tbPN.Size = new System.Drawing.Size(235, 30);
this.tbPN.TabIndex = 1;
this.tbPN.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -257,7 +258,7 @@
this.tbSPY.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbSPY.Location = new System.Drawing.Point(137, 5);
this.tbSPY.Name = "tbSPY";
this.tbSPY.Size = new System.Drawing.Size(235, 33);
this.tbSPY.Size = new System.Drawing.Size(235, 30);
this.tbSPY.TabIndex = 1;
this.tbSPY.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -310,7 +311,7 @@
this.tbRID.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbRID.Location = new System.Drawing.Point(137, 5);
this.tbRID.Name = "tbRID";
this.tbRID.Size = new System.Drawing.Size(310, 33);
this.tbRID.Size = new System.Drawing.Size(310, 30);
this.tbRID.TabIndex = 1;
this.tbRID.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -352,7 +353,7 @@
this.tbDate.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbDate.Location = new System.Drawing.Point(137, 5);
this.tbDate.Name = "tbDate";
this.tbDate.Size = new System.Drawing.Size(310, 33);
this.tbDate.Size = new System.Drawing.Size(310, 30);
this.tbDate.TabIndex = 1;
this.tbDate.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -394,7 +395,7 @@
this.tbQty.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbQty.Location = new System.Drawing.Point(137, 5);
this.tbQty.Name = "tbQty";
this.tbQty.Size = new System.Drawing.Size(310, 33);
this.tbQty.Size = new System.Drawing.Size(310, 30);
this.tbQty.TabIndex = 1;
this.tbQty.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -436,7 +437,7 @@
this.tbVLot.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbVLot.Location = new System.Drawing.Point(137, 5);
this.tbVLot.Name = "tbVLot";
this.tbVLot.Size = new System.Drawing.Size(310, 33);
this.tbVLot.Size = new System.Drawing.Size(310, 30);
this.tbVLot.TabIndex = 1;
this.tbVLot.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -478,7 +479,7 @@
this.tbSID.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbSID.Location = new System.Drawing.Point(137, 5);
this.tbSID.Name = "tbSID";
this.tbSID.Size = new System.Drawing.Size(310, 33);
this.tbSID.Size = new System.Drawing.Size(310, 30);
this.tbSID.TabIndex = 1;
this.tbSID.Click += new System.EventHandler(this.tbSID_Click);
//
@@ -518,9 +519,9 @@
// tbBarcodeInput
//
this.tbBarcodeInput.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbBarcodeInput.Location = new System.Drawing.Point(10, 36);
this.tbBarcodeInput.Location = new System.Drawing.Point(10, 33);
this.tbBarcodeInput.Name = "tbBarcodeInput";
this.tbBarcodeInput.Size = new System.Drawing.Size(502, 33);
this.tbBarcodeInput.Size = new System.Drawing.Size(502, 30);
this.tbBarcodeInput.TabIndex = 0;
this.tbBarcodeInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbBarcodeInput_KeyDown);
//
@@ -532,7 +533,7 @@
this.Controls.Add(this.panel1);
this.Controls.Add(this.btPrint);
this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;

View File

@@ -100,9 +100,11 @@ namespace Project.Dialog
var cnt = (int)nudCnt.Value;
for (int i = 0; i < cnt; i++)
{
if (Printer.Print(zpl) == false)
var prn = Printer.Print(zpl);
if (prn.result == false)
{
//인쇄실패시 처리하지 않음
PUB.log.AddE(prn.errmessage);
UTIL.MsgE("Cannot proceed further due to printing failure");
break;
}

View File

@@ -347,41 +347,99 @@ namespace Project.Dialog
return;
}
Task.Run(new Action(() =>
{
//Z축을 Ready 위치로 이동한다.
DateTime dt;
if (vidx == 0)
{
var zPos = MOT.GetLZPos(eLZLoc.READY);
MOT.Move(zPos);
while (MOT.getPositionMatch(zPos) == false)
System.Threading.Thread.Sleep(10);
{
//printer picker cylinder check
while(DIO.GetIOInput(eDIName.L_CYLUP)==false)
{
var dorlt = DIO.checkDigitalO(eDOName.L_CYLDN, new TimeSpan(1), false);
if (dorlt == eNormalResult.False)
{
System.Threading.Thread.Sleep(100);
}
else if( dorlt == eNormalResult.Error)
{
PUB.log.AddE("l_cylup check error");
return;
}
}
var mPos = MOT.GetLMPos(eLMLoc.PRINTL07);
MOT.Move(mPos);
while (MOT.getPositionMatch(mPos) == false)
var zPos = MOT.GetLZPos(eLZLoc.READY).Clone();
zPos.Speed = 100;
MOT.Move(zPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(zPos) == false)
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
var mPos = MOT.GetLMPos(eLMLoc.PRINTL07).Clone();
mPos.Speed = 100;
MOT.Move(mPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(mPos) == false)
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
var zPos2 = MOT.GetLZPos(eLZLoc.PICKOFF);
var tPos = (zPos2.Position / 2f);
MOT.Move(eAxis.PL_UPDN, tPos, zPos.Speed, zPos.Acc);
MOT.Move(eAxis.PL_UPDN, tPos, 100, zPos.Acc);
ManPosL = true;
}
else
{
var zPos = MOT.GetRZPos(eRZLoc.READY);
MOT.Move(zPos);
while (MOT.getPositionMatch(zPos) == false)
System.Threading.Thread.Sleep(10);
while (DIO.GetIOInput(eDIName.R_CYLUP) == false)
{
var dorlt = DIO.checkDigitalO(eDOName.R_CYLDN, new TimeSpan(1), false);
if (dorlt == eNormalResult.False)
{
System.Threading.Thread.Sleep(100);
}
else if (dorlt == eNormalResult.Error)
{
PUB.log.AddE("r_cylup check error");
return;
}
}
var mPos = MOT.GetRMPos(eRMLoc.PRINTL07);
MOT.Move(mPos);
while (MOT.getPositionMatch(mPos) == false)
var zPos = MOT.GetRZPos(eRZLoc.READY).Clone();
zPos.Speed = 100;
MOT.Move(zPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(zPos) == false)
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
var mPos = MOT.GetRMPos(eRMLoc.PRINTL07).Clone();
mPos.Speed = 100;
MOT.Move(mPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(mPos) == false)
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
var zPos2 = MOT.GetRZPos(eRZLoc.PICKOFF);
var tPos = (zPos2.Position / 2f);
MOT.Move(eAxis.PR_UPDN, tPos, zPos.Speed, zPos.Acc);
MOT.Move(eAxis.PR_UPDN, tPos, 100, zPos.Acc);
ManPosR = true;
}
@@ -407,30 +465,83 @@ namespace Project.Dialog
Task.Run(new Action(() =>
{
//Z축을 Ready 위치로 이동한다.
DateTime dt;
if (vidx == 0)
{
var zPos = MOT.GetLZPos(eLZLoc.READY);
MOT.Move(zPos);
while (MOT.getPositionMatch(zPos) == false)
System.Threading.Thread.Sleep(100);
while (DIO.GetIOInput(eDIName.L_CYLUP) == false)
{
var dorlt = DIO.checkDigitalO(eDOName.L_CYLDN, new TimeSpan(1), false);
if (dorlt == eNormalResult.False)
{
System.Threading.Thread.Sleep(100);
}
else if (dorlt == eNormalResult.Error)
{
PUB.log.AddE("l_cylup check error");
return;
}
}
var mPos = MOT.GetLMPos(eLMLoc.READY);
var zPos = MOT.GetLZPos(eLZLoc.READY).Clone();
zPos.Speed = 100;
MOT.Move(zPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(zPos) == false)
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
var mPos = MOT.GetLMPos(eLMLoc.READY).Clone();
mPos.Speed = 100;
MOT.Move(mPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(mPos) == false)
System.Threading.Thread.Sleep(100);
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
ManPosL = false;
}
else
{
var zPos = MOT.GetRZPos(eRZLoc.READY);
MOT.Move(zPos);
while (MOT.getPositionMatch(zPos) == false)
System.Threading.Thread.Sleep(100);
while (DIO.GetIOInput(eDIName.R_CYLUP) == false)
{
var dorlt = DIO.checkDigitalO(eDOName.R_CYLDN, new TimeSpan(1), false);
if (dorlt == eNormalResult.False)
{
System.Threading.Thread.Sleep(100);
}
else if (dorlt == eNormalResult.Error)
{
PUB.log.AddE("R_cylup check error");
return;
}
}
var mPos = MOT.GetRMPos(eRMLoc.READY);
MOT.Move(mPos);
var zPos = MOT.GetRZPos(eRZLoc.READY).Clone();
zPos.Speed = 100;
MOT.Move(zPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(zPos) == false)
System.Threading.Thread.Sleep(100);
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
var mPos = MOT.GetRMPos(eRMLoc.READY).Clone();
mPos.Speed = 100;
MOT.Move(mPos);
dt = DateTime.Now;
while (MOT.getPositionMatch(zPos) == false)
{
var ts = DateTime.Now - dt;
if (ts.TotalSeconds > 30) break;
System.Threading.Thread.Sleep(10);
}
ManPosR = false;
}

View File

@@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AR;
namespace Project.Dialog
{

View File

@@ -97,6 +97,19 @@
this.btCancle = new arCtl.arLabel();
this.dataSet11 = new Project.DataSet1();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.chkApplyWMSInfo = new System.Windows.Forms.CheckBox();
this.grpApplyWMSinfo = new System.Windows.Forms.GroupBox();
this.checkBox36 = new System.Windows.Forms.CheckBox();
this.chkWMSApplyBatch = new System.Windows.Forms.CheckBox();
this.label22 = new System.Windows.Forms.Label();
this.label23 = new System.Windows.Forms.Label();
this.checkBox41 = new System.Windows.Forms.CheckBox();
this.checkBox42 = new System.Windows.Forms.CheckBox();
this.checkBox43 = new System.Windows.Forms.CheckBox();
this.checkBox44 = new System.Windows.Forms.CheckBox();
this.checkBox45 = new System.Windows.Forms.CheckBox();
this.checkBox46 = new System.Windows.Forms.CheckBox();
this.checkBox47 = new System.Windows.Forms.CheckBox();
this.panel2.SuspendLayout();
this.panel5.SuspendLayout();
this.tabControl1.SuspendLayout();
@@ -108,6 +121,7 @@
this.tabPage3.SuspendLayout();
this.tableLayoutPanel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataSet11)).BeginInit();
this.grpApplyWMSinfo.SuspendLayout();
this.SuspendLayout();
//
// panel2
@@ -123,7 +137,7 @@
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
this.panel2.Padding = new System.Windows.Forms.Padding(9, 5, 9, 7);
this.panel2.Size = new System.Drawing.Size(751, 701);
this.panel2.Size = new System.Drawing.Size(751, 761);
this.panel2.TabIndex = 136;
//
// panel5
@@ -133,7 +147,7 @@
this.panel5.Controls.Add(this.panel1);
this.panel5.Controls.Add(this.button1);
this.panel5.Dock = System.Windows.Forms.DockStyle.Top;
this.panel5.Location = new System.Drawing.Point(9, 224);
this.panel5.Location = new System.Drawing.Point(9, 200);
this.panel5.Name = "panel5";
this.panel5.Padding = new System.Windows.Forms.Padding(5);
this.panel5.Size = new System.Drawing.Size(733, 73);
@@ -173,7 +187,7 @@
// progressBar1
//
this.progressBar1.Dock = System.Windows.Forms.DockStyle.Top;
this.progressBar1.Location = new System.Drawing.Point(9, 214);
this.progressBar1.Location = new System.Drawing.Point(9, 190);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(733, 10);
this.progressBar1.TabIndex = 27;
@@ -183,7 +197,7 @@
this.label1.BackColor = System.Drawing.Color.SkyBlue;
this.label1.Dock = System.Windows.Forms.DockStyle.Top;
this.label1.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label1.Location = new System.Drawing.Point(9, 164);
this.label1.Location = new System.Drawing.Point(9, 140);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(733, 50);
this.label1.TabIndex = 17;
@@ -207,7 +221,7 @@
this.lbMsgCamoff.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.lbMsgCamoff.GradientRepeatBG = false;
this.lbMsgCamoff.isButton = false;
this.lbMsgCamoff.Location = new System.Drawing.Point(9, 115);
this.lbMsgCamoff.Location = new System.Drawing.Point(9, 91);
this.lbMsgCamoff.MouseDownColor = System.Drawing.Color.Yellow;
this.lbMsgCamoff.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.lbMsgCamoff.msg = null;
@@ -246,7 +260,7 @@
this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow;
this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top;
this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 35F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbTitle.ForeColor = System.Drawing.Color.DarkCyan;
this.lbTitle.GradientEnable = true;
this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
@@ -273,7 +287,7 @@
this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbTitle.SignColor = System.Drawing.Color.Yellow;
this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbTitle.Size = new System.Drawing.Size(733, 110);
this.lbTitle.Size = new System.Drawing.Size(733, 86);
this.lbTitle.TabIndex = 60;
this.lbTitle.Text = "Please select work method";
this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@@ -288,14 +302,15 @@
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tabControl1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.tabControl1.Location = new System.Drawing.Point(9, 297);
this.tabControl1.Location = new System.Drawing.Point(9, 278);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(733, 296);
this.tabControl1.Size = new System.Drawing.Size(733, 375);
this.tabControl1.TabIndex = 26;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.chkApplyWMSInfo);
this.tabPage1.Controls.Add(this.chkApplySidInfo);
this.tabPage1.Controls.Add(this.chkApplyJobInfo);
this.tabPage1.Controls.Add(this.chkApplySIDConv);
@@ -307,7 +322,7 @@
this.tabPage1.Location = new System.Drawing.Point(4, 26);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(10);
this.tabPage1.Size = new System.Drawing.Size(725, 266);
this.tabPage1.Size = new System.Drawing.Size(725, 345);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "Options";
this.tabPage1.UseVisualStyleBackColor = true;
@@ -317,9 +332,9 @@
this.chkApplySidInfo.AutoSize = true;
this.chkApplySidInfo.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkApplySidInfo.ForeColor = System.Drawing.Color.Gray;
this.chkApplySidInfo.Location = new System.Drawing.Point(13, 199);
this.chkApplySidInfo.Location = new System.Drawing.Point(13, 229);
this.chkApplySidInfo.Name = "chkApplySidInfo";
this.chkApplySidInfo.Size = new System.Drawing.Size(423, 25);
this.chkApplySidInfo.Size = new System.Drawing.Size(435, 25);
this.chkApplySidInfo.TabIndex = 33;
this.chkApplySidInfo.Tag = "6";
this.chkApplySidInfo.Text = "Automatically record data using SID information table.";
@@ -331,9 +346,9 @@
this.chkApplyJobInfo.AutoSize = true;
this.chkApplyJobInfo.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkApplyJobInfo.ForeColor = System.Drawing.Color.Gray;
this.chkApplyJobInfo.Location = new System.Drawing.Point(13, 167);
this.chkApplyJobInfo.Location = new System.Drawing.Point(13, 192);
this.chkApplyJobInfo.Name = "chkApplyJobInfo";
this.chkApplyJobInfo.Size = new System.Drawing.Size(427, 25);
this.chkApplyJobInfo.Size = new System.Drawing.Size(409, 25);
this.chkApplyJobInfo.TabIndex = 32;
this.chkApplyJobInfo.Tag = "5";
this.chkApplyJobInfo.Text = "Automatically record data using daily work history.";
@@ -345,9 +360,9 @@
this.chkApplySIDConv.AutoSize = true;
this.chkApplySIDConv.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkApplySIDConv.ForeColor = System.Drawing.Color.Gray;
this.chkApplySIDConv.Location = new System.Drawing.Point(13, 231);
this.chkApplySIDConv.Location = new System.Drawing.Point(13, 266);
this.chkApplySIDConv.Name = "chkApplySIDConv";
this.chkApplySIDConv.Size = new System.Drawing.Size(425, 25);
this.chkApplySIDConv.Size = new System.Drawing.Size(426, 25);
this.chkApplySIDConv.TabIndex = 31;
this.chkApplySIDConv.Tag = "7";
this.chkApplySIDConv.Text = "Automatically record data using SID conversion table";
@@ -361,10 +376,10 @@
this.chkUserConfirm.ForeColor = System.Drawing.Color.Gray;
this.chkUserConfirm.Location = new System.Drawing.Point(13, 8);
this.chkUserConfirm.Name = "chkUserConfirm";
this.chkUserConfirm.Size = new System.Drawing.Size(435, 25);
this.chkUserConfirm.Size = new System.Drawing.Size(316, 25);
this.chkUserConfirm.TabIndex = 13;
this.chkUserConfirm.Tag = "0";
this.chkUserConfirm.Text = "User confirms final print values (no automatic progress)";
this.chkUserConfirm.Text = "User confirms (no automatic progress)";
this.chkUserConfirm.UseVisualStyleBackColor = true;
this.chkUserConfirm.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged);
//
@@ -373,9 +388,9 @@
this.chkSIDConv.AutoSize = true;
this.chkSIDConv.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkSIDConv.ForeColor = System.Drawing.Color.Gray;
this.chkSIDConv.Location = new System.Drawing.Point(13, 135);
this.chkSIDConv.Location = new System.Drawing.Point(13, 155);
this.chkSIDConv.Name = "chkSIDConv";
this.chkSIDConv.Size = new System.Drawing.Size(413, 25);
this.chkSIDConv.Size = new System.Drawing.Size(376, 25);
this.chkSIDConv.TabIndex = 28;
this.chkSIDConv.Tag = "4";
this.chkSIDConv.Text = "Convert SID values using SID conversion table.";
@@ -387,12 +402,12 @@
this.chkQtyServer.AutoSize = true;
this.chkQtyServer.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkQtyServer.ForeColor = System.Drawing.Color.Gray;
this.chkQtyServer.Location = new System.Drawing.Point(13, 40);
this.chkQtyServer.Location = new System.Drawing.Point(13, 45);
this.chkQtyServer.Name = "chkQtyServer";
this.chkQtyServer.Size = new System.Drawing.Size(448, 25);
this.chkQtyServer.Size = new System.Drawing.Size(307, 25);
this.chkQtyServer.TabIndex = 13;
this.chkQtyServer.Tag = "1";
this.chkQtyServer.Text = "Query and use server quantities based on Reel ID.";
this.chkQtyServer.Text = "Use server quantity based on Reel ID";
this.chkQtyServer.UseVisualStyleBackColor = true;
this.chkQtyServer.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged);
//
@@ -401,9 +416,9 @@
this.chkQtyMRQ.AutoSize = true;
this.chkQtyMRQ.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkQtyMRQ.ForeColor = System.Drawing.Color.Gray;
this.chkQtyMRQ.Location = new System.Drawing.Point(13, 103);
this.chkQtyMRQ.Location = new System.Drawing.Point(13, 118);
this.chkQtyMRQ.Name = "chkQtyMRQ";
this.chkQtyMRQ.Size = new System.Drawing.Size(405, 25);
this.chkQtyMRQ.Size = new System.Drawing.Size(424, 25);
this.chkQtyMRQ.TabIndex = 27;
this.chkQtyMRQ.Tag = "3";
this.chkQtyMRQ.Text = "Enter quantity manually (auto-proceed if RQ is read).";
@@ -415,9 +430,9 @@
this.chkNew.AutoSize = true;
this.chkNew.Font = new System.Drawing.Font("맑은 고딕", 11F);
this.chkNew.ForeColor = System.Drawing.Color.Gray;
this.chkNew.Location = new System.Drawing.Point(13, 72);
this.chkNew.Location = new System.Drawing.Point(13, 82);
this.chkNew.Name = "chkNew";
this.chkNew.Size = new System.Drawing.Size(247, 24);
this.chkNew.Size = new System.Drawing.Size(162, 24);
this.chkNew.TabIndex = 24;
this.chkNew.Tag = "2";
this.chkNew.Text = "Create new Reel ID.";
@@ -429,10 +444,11 @@
this.tabPage2.Controls.Add(this.GrpSidConvData);
this.tabPage2.Controls.Add(this.grpapplyjob);
this.tabPage2.Controls.Add(this.grpApplySidinfo);
this.tabPage2.Controls.Add(this.grpApplyWMSinfo);
this.tabPage2.Location = new System.Drawing.Point(4, 26);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(10);
this.tabPage2.Size = new System.Drawing.Size(725, 266);
this.tabPage2.Size = new System.Drawing.Size(725, 345);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "Option Data";
this.tabPage2.UseVisualStyleBackColor = true;
@@ -455,7 +471,7 @@
this.GrpSidConvData.Dock = System.Windows.Forms.DockStyle.Top;
this.GrpSidConvData.Enabled = false;
this.GrpSidConvData.Font = new System.Drawing.Font("맑은 고딕", 10F);
this.GrpSidConvData.Location = new System.Drawing.Point(10, 174);
this.GrpSidConvData.Location = new System.Drawing.Point(10, 256);
this.GrpSidConvData.Name = "GrpSidConvData";
this.GrpSidConvData.Size = new System.Drawing.Size(705, 82);
this.GrpSidConvData.TabIndex = 34;
@@ -469,10 +485,10 @@
this.chkCVSave.ForeColor = System.Drawing.Color.Tomato;
this.chkCVSave.Location = new System.Drawing.Point(431, 47);
this.chkCVSave.Name = "chkCVSave";
this.chkCVSave.Size = new System.Drawing.Size(230, 23);
this.chkCVSave.Size = new System.Drawing.Size(216, 23);
this.chkCVSave.TabIndex = 51;
this.chkCVSave.Tag = "11";
this.chkCVSave.Text = "Record change information to server";
this.chkCVSave.Text = "Record change information";
this.chkCVSave.UseVisualStyleBackColor = true;
//
// chkCVApplyBatch
@@ -597,9 +613,9 @@
this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label6.Location = new System.Drawing.Point(6, 54);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(55, 15);
this.label6.Size = new System.Drawing.Size(41, 15);
this.label6.TabIndex = 29;
this.label6.Text = "Query Target";
this.label6.Text = "Query";
//
// label7
//
@@ -608,9 +624,9 @@
this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label7.Location = new System.Drawing.Point(7, 28);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(55, 15);
this.label7.Size = new System.Drawing.Size(40, 15);
this.label7.TabIndex = 29;
this.label7.Text = "Apply Target";
this.label7.Text = "Apply";
//
// grpapplyjob
//
@@ -628,7 +644,7 @@
this.grpapplyjob.Dock = System.Windows.Forms.DockStyle.Top;
this.grpapplyjob.Enabled = false;
this.grpapplyjob.Font = new System.Drawing.Font("맑은 고딕", 10F);
this.grpapplyjob.Location = new System.Drawing.Point(10, 92);
this.grpapplyjob.Location = new System.Drawing.Point(10, 174);
this.grpapplyjob.Name = "grpapplyjob";
this.grpapplyjob.Size = new System.Drawing.Size(705, 82);
this.grpapplyjob.TabIndex = 33;
@@ -665,9 +681,9 @@
this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label3.Location = new System.Drawing.Point(6, 54);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(55, 15);
this.label3.Size = new System.Drawing.Size(41, 15);
this.label3.TabIndex = 29;
this.label3.Text = "Query Target";
this.label3.Text = "Query";
//
// label2
//
@@ -676,9 +692,9 @@
this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label2.Location = new System.Drawing.Point(7, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(55, 15);
this.label2.Size = new System.Drawing.Size(40, 15);
this.label2.TabIndex = 29;
this.label2.Text = "Apply Target";
this.label2.Text = "Apply";
//
// chkDayApplyVender
//
@@ -778,7 +794,7 @@
this.grpApplySidinfo.Dock = System.Windows.Forms.DockStyle.Top;
this.grpApplySidinfo.Enabled = false;
this.grpApplySidinfo.Font = new System.Drawing.Font("맑은 고딕", 10F);
this.grpApplySidinfo.Location = new System.Drawing.Point(10, 10);
this.grpApplySidinfo.Location = new System.Drawing.Point(10, 92);
this.grpApplySidinfo.Name = "grpApplySidinfo";
this.grpApplySidinfo.Size = new System.Drawing.Size(705, 82);
this.grpApplySidinfo.TabIndex = 33;
@@ -816,10 +832,10 @@
this.chkInfoSave.ForeColor = System.Drawing.Color.Tomato;
this.chkInfoSave.Location = new System.Drawing.Point(431, 50);
this.chkInfoSave.Name = "chkInfoSave";
this.chkInfoSave.Size = new System.Drawing.Size(230, 23);
this.chkInfoSave.Size = new System.Drawing.Size(216, 23);
this.chkInfoSave.TabIndex = 32;
this.chkInfoSave.Tag = "8";
this.chkInfoSave.Text = "Record change information to server";
this.chkInfoSave.Text = "Record change information";
this.chkInfoSave.UseVisualStyleBackColor = true;
//
// chkInfoApplyPrint
@@ -840,9 +856,9 @@
this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label4.Location = new System.Drawing.Point(6, 54);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(55, 15);
this.label4.Size = new System.Drawing.Size(41, 15);
this.label4.TabIndex = 29;
this.label4.Text = "Query Target";
this.label4.Text = "Query";
//
// label5
//
@@ -851,9 +867,9 @@
this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label5.Location = new System.Drawing.Point(7, 28);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(55, 15);
this.label5.Size = new System.Drawing.Size(40, 15);
this.label5.TabIndex = 29;
this.label5.Text = "Apply Target";
this.label5.Text = "Apply";
//
// chkInfoApplyVender
//
@@ -963,7 +979,7 @@
this.tableLayoutPanel3.Controls.Add(this.btOK, 1, 0);
this.tableLayoutPanel3.Controls.Add(this.btCancle, 0, 0);
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tableLayoutPanel3.Location = new System.Drawing.Point(9, 593);
this.tableLayoutPanel3.Location = new System.Drawing.Point(9, 653);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.RowCount = 1;
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
@@ -1066,11 +1082,174 @@
this.dataSet11.DataSetName = "DataSet1";
this.dataSet11.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// chkApplyWMSInfo
//
this.chkApplyWMSInfo.AutoSize = true;
this.chkApplyWMSInfo.Font = new System.Drawing.Font("맑은 고딕", 12F);
this.chkApplyWMSInfo.ForeColor = System.Drawing.Color.Gray;
this.chkApplyWMSInfo.Location = new System.Drawing.Point(13, 303);
this.chkApplyWMSInfo.Name = "chkApplyWMSInfo";
this.chkApplyWMSInfo.Size = new System.Drawing.Size(446, 25);
this.chkApplyWMSInfo.TabIndex = 35;
this.chkApplyWMSInfo.Tag = "8";
this.chkApplyWMSInfo.Text = "Automatically record data using WMS information table";
this.chkApplyWMSInfo.UseVisualStyleBackColor = true;
this.chkApplyWMSInfo.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged);
//
// grpApplyWMSinfo
//
this.grpApplyWMSinfo.Controls.Add(this.checkBox36);
this.grpApplyWMSinfo.Controls.Add(this.chkWMSApplyBatch);
this.grpApplyWMSinfo.Controls.Add(this.label22);
this.grpApplyWMSinfo.Controls.Add(this.label23);
this.grpApplyWMSinfo.Controls.Add(this.checkBox41);
this.grpApplyWMSinfo.Controls.Add(this.checkBox42);
this.grpApplyWMSinfo.Controls.Add(this.checkBox43);
this.grpApplyWMSinfo.Controls.Add(this.checkBox44);
this.grpApplyWMSinfo.Controls.Add(this.checkBox45);
this.grpApplyWMSinfo.Controls.Add(this.checkBox46);
this.grpApplyWMSinfo.Controls.Add(this.checkBox47);
this.grpApplyWMSinfo.Dock = System.Windows.Forms.DockStyle.Top;
this.grpApplyWMSinfo.Enabled = false;
this.grpApplyWMSinfo.Font = new System.Drawing.Font("맑은 고딕", 10F);
this.grpApplyWMSinfo.Location = new System.Drawing.Point(10, 10);
this.grpApplyWMSinfo.Name = "grpApplyWMSinfo";
this.grpApplyWMSinfo.Size = new System.Drawing.Size(705, 82);
this.grpApplyWMSinfo.TabIndex = 36;
this.grpApplyWMSinfo.TabStop = false;
this.grpApplyWMSinfo.Text = "WMS Information Application";
//
// checkBox36
//
this.checkBox36.AutoSize = true;
this.checkBox36.ForeColor = System.Drawing.Color.Blue;
this.checkBox36.Location = new System.Drawing.Point(311, 51);
this.checkBox36.Name = "checkBox36";
this.checkBox36.Size = new System.Drawing.Size(62, 23);
this.checkBox36.TabIndex = 37;
this.checkBox36.Tag = "11";
this.checkBox36.Text = "VLOT";
this.checkBox36.UseVisualStyleBackColor = true;
//
// chkWMSApplyBatch
//
this.chkWMSApplyBatch.AutoSize = true;
this.chkWMSApplyBatch.ForeColor = System.Drawing.Color.Green;
this.chkWMSApplyBatch.Location = new System.Drawing.Point(431, 24);
this.chkWMSApplyBatch.Name = "chkWMSApplyBatch";
this.chkWMSApplyBatch.Size = new System.Drawing.Size(63, 23);
this.chkWMSApplyBatch.TabIndex = 35;
this.chkWMSApplyBatch.Tag = "9";
this.chkWMSApplyBatch.Text = "Batch";
this.chkWMSApplyBatch.UseVisualStyleBackColor = true;
//
// label22
//
this.label22.AutoSize = true;
this.label22.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.label22.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label22.Location = new System.Drawing.Point(6, 54);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(41, 15);
this.label22.TabIndex = 29;
this.label22.Text = "Query";
//
// label23
//
this.label23.AutoSize = true;
this.label23.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.label23.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
this.label23.Location = new System.Drawing.Point(7, 28);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(40, 15);
this.label23.TabIndex = 29;
this.label23.Text = "Apply";
//
// checkBox41
//
this.checkBox41.AutoSize = true;
this.checkBox41.Location = new System.Drawing.Point(311, 24);
this.checkBox41.Name = "checkBox41";
this.checkBox41.Size = new System.Drawing.Size(114, 23);
this.checkBox41.TabIndex = 28;
this.checkBox41.Tag = "3";
this.checkBox41.Text = "Vender Name";
this.checkBox41.UseVisualStyleBackColor = true;
//
// checkBox42
//
this.checkBox42.AutoSize = true;
this.checkBox42.ForeColor = System.Drawing.Color.Blue;
this.checkBox42.Location = new System.Drawing.Point(255, 50);
this.checkBox42.Name = "checkBox42";
this.checkBox42.Size = new System.Drawing.Size(50, 23);
this.checkBox42.TabIndex = 27;
this.checkBox42.Tag = "7";
this.checkBox42.Text = "SID";
this.checkBox42.UseVisualStyleBackColor = true;
//
// checkBox43
//
this.checkBox43.AutoSize = true;
this.checkBox43.ForeColor = System.Drawing.Color.Blue;
this.checkBox43.Location = new System.Drawing.Point(156, 50);
this.checkBox43.Name = "checkBox43";
this.checkBox43.Size = new System.Drawing.Size(93, 23);
this.checkBox43.TabIndex = 25;
this.checkBox43.Tag = "6";
this.checkBox43.Text = "Cust Code";
this.checkBox43.UseVisualStyleBackColor = true;
//
// checkBox44
//
this.checkBox44.AutoSize = true;
this.checkBox44.ForeColor = System.Drawing.Color.Blue;
this.checkBox44.Location = new System.Drawing.Point(73, 50);
this.checkBox44.Name = "checkBox44";
this.checkBox44.Size = new System.Drawing.Size(77, 23);
this.checkBox44.TabIndex = 25;
this.checkBox44.Tag = "5";
this.checkBox44.Text = "Part No";
this.checkBox44.UseVisualStyleBackColor = true;
//
// checkBox45
//
this.checkBox45.AutoSize = true;
this.checkBox45.Location = new System.Drawing.Point(255, 24);
this.checkBox45.Name = "checkBox45";
this.checkBox45.Size = new System.Drawing.Size(50, 23);
this.checkBox45.TabIndex = 26;
this.checkBox45.Tag = "2";
this.checkBox45.Text = "SID";
this.checkBox45.UseVisualStyleBackColor = true;
//
// checkBox46
//
this.checkBox46.AutoSize = true;
this.checkBox46.Location = new System.Drawing.Point(156, 24);
this.checkBox46.Name = "checkBox46";
this.checkBox46.Size = new System.Drawing.Size(93, 23);
this.checkBox46.TabIndex = 25;
this.checkBox46.Tag = "1";
this.checkBox46.Text = "Cust Code";
this.checkBox46.UseVisualStyleBackColor = true;
//
// checkBox47
//
this.checkBox47.AutoSize = true;
this.checkBox47.Location = new System.Drawing.Point(73, 24);
this.checkBox47.Name = "checkBox47";
this.checkBox47.Size = new System.Drawing.Size(77, 23);
this.checkBox47.TabIndex = 25;
this.checkBox47.Tag = "0";
this.checkBox47.Text = "Part No";
this.checkBox47.UseVisualStyleBackColor = true;
//
// fSelectJob
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(751, 701);
this.ClientSize = new System.Drawing.Size(751, 761);
this.Controls.Add(this.panel2);
this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
@@ -1098,6 +1277,8 @@
this.tabPage3.PerformLayout();
this.tableLayoutPanel3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataSet11)).EndInit();
this.grpApplyWMSinfo.ResumeLayout(false);
this.grpApplyWMSinfo.PerformLayout();
this.ResumeLayout(false);
}
@@ -1170,5 +1351,18 @@
private System.Windows.Forms.CheckBox chkCVApplySID;
private System.Windows.Forms.CheckBox chkCVApplyCust;
private System.Windows.Forms.CheckBox chkCVApplyPartno;
private System.Windows.Forms.CheckBox chkApplyWMSInfo;
private System.Windows.Forms.GroupBox grpApplyWMSinfo;
private System.Windows.Forms.CheckBox checkBox36;
private System.Windows.Forms.CheckBox chkWMSApplyBatch;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.CheckBox checkBox41;
private System.Windows.Forms.CheckBox checkBox42;
private System.Windows.Forms.CheckBox checkBox43;
private System.Windows.Forms.CheckBox checkBox44;
private System.Windows.Forms.CheckBox checkBox45;
private System.Windows.Forms.CheckBox checkBox46;
private System.Windows.Forms.CheckBox checkBox47;
}
}

View File

@@ -174,6 +174,21 @@ namespace Project.Dialog
return;
}
}
if (grpApplyWMSinfo.Enabled)
{
//검색조건확인
var v = CheckDataIn(grpApplyWMSinfo);
if (v.Item1 < 1)
{
UTIL.MsgE("Target item is not specified among WMS information items");
return;
}
if (v.Item2 < 1)
{
UTIL.MsgE("Search item is not specified among WMS information items");
return;
}
}
if (grpApplySidinfo.Enabled)
{
//검색조건확인
@@ -244,6 +259,7 @@ namespace Project.Dialog
VAR.BOOL[eVarBool.Opt_ApplySIDConv] = chkApplySIDConv.Checked;
VAR.BOOL[eVarBool.Opt_ApplyJobInfo] = chkApplyJobInfo.Checked;
VAR.BOOL[eVarBool.Opt_ApplyWMSInfo] = chkApplyWMSInfo.Checked;
VAR.BOOL[eVarBool.Opt_ApplySIDInfo] = chkApplySidInfo.Checked;
VAR.BOOL[eVarBool.Opt_CheckSIDExist] = PUB.Result.vModel.CheckSIDExsit;
@@ -255,15 +271,31 @@ namespace Project.Dialog
if (SETTING.Data.SystemBypass) VAR.BOOL[eVarBool.Opt_DisablePrinter] = true;
else VAR.BOOL[eVarBool.Opt_DisablePrinter] = PUB.Result.vModel.DisablePrinter || (SETTING.Data.Disable_PrinterL && SETTING.Data.Disable_PrinterR);
//WMS Information
VAR.BOOL[eVarBool.Opt_WMS_Apply_PartNo] = checkBox47.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Apply_CustCode] = checkBox46.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Apply_SID] = checkBox45.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Apply_VenderName] = checkBox41.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Apply_batch] = chkWMSApplyBatch.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Apply_qty] = false;// chkInfoApplyQty.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Where_PartNo] = checkBox44.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Where_CustCode] = checkBox43.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Where_SID] = checkBox42.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Where_VLOT] = checkBox36.Checked;
VAR.BOOL[eVarBool.Opt_WMS_Where_MC] = false;// chkInfoWhereMC.Checked;
VAR.BOOL[eVarBool.Opt_WMS_WriteServer] = false;// chkInfoSave.Checked;
//SID Information
VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo] = chkInfoApplyPart.Checked;
VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode] = chkInfoApplyCust.Checked;
VAR.BOOL[eVarBool.Opt_SID_Apply_SID] = chkInfoApplySID.Checked;
VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName] = chkInfoApplyVender.Checked;
VAR.BOOL[eVarBool.Opt_SID_Apply_PrintPos] = chkInfoApplyPrint.Checked;
///22092[
VAR.BOOL[eVarBool.Opt_SID_Apply_batch] = chkInfoApplyBatch.Checked;
VAR.BOOL[eVarBool.Opt_SID_Apply_qty] = false;// chkInfoApplyQty.Checked;
VAR.BOOL[eVarBool.Opt_SID_Where_PartNo] = chkInfoWherePart.Checked;
VAR.BOOL[eVarBool.Opt_SID_Where_CustCode] = chkInfoWhereCust.Checked;
VAR.BOOL[eVarBool.Opt_SID_Where_SID] = chkInfoWhereSID.Checked;
@@ -375,6 +407,13 @@ namespace Project.Dialog
if (chk.Tag == null) continue;
chk.Checked = UTIL.GetBitState(dr.vOption, int.Parse(chk.Tag.ToString()));
}
foreach (var c in grpApplyWMSinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
var chk = c as CheckBox;
if (chk.Tag == null) continue;
chk.Checked = UTIL.GetBitState(dr.vWMSInfo, int.Parse(chk.Tag.ToString()));
}
foreach (var c in grpApplySidinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
@@ -418,6 +457,10 @@ namespace Project.Dialog
{
grpapplyjob.Enabled = chk.Checked;
}
if(chk.Name.Equals(chkApplyWMSInfo.Name))
{
grpApplyWMSinfo.Enabled = chk.Checked;
}
if (chk.Name.Equals(chkApplySidInfo.Name))
{
grpApplySidinfo.Enabled = chk.Checked;
@@ -474,6 +517,13 @@ namespace Project.Dialog
if (chk.Tag == null) continue;
dr.vOption = UTIL.SetBitState((ushort)dr.vOption, int.Parse(chk.Tag.ToString()), chk.Checked);
}
foreach (var c in grpApplyWMSinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
var chk = c as CheckBox;
if (chk.Tag == null) continue;
dr.vWMSInfo = UTIL.SetBitState((ushort)dr.vWMSInfo, int.Parse(chk.Tag.ToString()), chk.Checked);
}
foreach (var c in grpApplySidinfo.Controls)
{
if (c.GetType() != typeof(CheckBox)) continue;
@@ -535,8 +585,8 @@ namespace Project.Dialog
void UpdateHeight()
{
if (this.tabControl1.Visible) this.Height = 740;
else this.Height = 445;
if (this.tabControl1.Visible) this.Height = 755;
else this.Height = 420;
}
private void btOK_Click(object sender, EventArgs e)

View File

@@ -450,7 +450,7 @@ namespace Project.Dialog
{
//check double data 220706
var CSQL = "select count(*) from Component_Reel_SID_Information WITH(NOLOCK) ";
var CSQL = "select count(*) from K4EE_Component_Reel_SID_Information WITH(NOLOCK) ";
CSQL += WSQL;
CMD.CommandText = CSQL;
var cnt = int.Parse(CMD.ExecuteScalar().ToString());
@@ -468,7 +468,7 @@ namespace Project.Dialog
}
else
{
var USQL = $"update Component_Reel_SID_Information set [MC]='{PUB.MCCode}'," +
var USQL = $"update K4EE_Component_Reel_SID_Information set [MC]='{PUB.MCCode}'," +
string.Join(",", UpdateTarget.Select(t => "[" + t.Key + "]='" + t.Value + "'"));
USQL += WSQL;
@@ -498,7 +498,7 @@ namespace Project.Dialog
var dlg = UTIL.MsgQ(dlgMsg);
if (dlg == DialogResult.Yes)
{
var ISQL = $"insert into Component_Reel_SID_Information ([MC],wdate," +
var ISQL = $"insert into K4EE_Component_Reel_SID_Information ([MC],wdate," +
string.Join(",", InsertTarget.Select(t => "[" + t.Key + "]")) + ") values(" +
$"'{PUB.MCCode}',getdate()," +
string.Join(",", InsertTarget.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + ")";
@@ -669,7 +669,7 @@ namespace Project.Dialog
void ServerWriteCNV(Dictionary<string, string> columns, Dictionary<string, string> wheres)
{
//변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다
var tableName = "Component_Reel_SID_Convert";
var tableName = "K4EE_Component_Reel_SID_Convert";
var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) +
$" from {tableName} WITH(NOLOCK) ";

View File

@@ -68,7 +68,11 @@ namespace Project.Dialog
{
//right
if (PUB.PrinterR.IsOpen)
PUB.PrinterR.Print(this.richTextBox1.Text);
{
var prn = PUB.PrinterR.Print(this.richTextBox1.Text);
if (prn.result == false) PUB.log.AddE(prn.errmessage);
}
else PUB.log.AddAT("Printer R not connected");
}
@@ -76,7 +80,10 @@ namespace Project.Dialog
{
//left
if (PUB.PrinterL.IsOpen)
PUB.PrinterL.Print(this.richTextBox1.Text);
{
var prn = PUB.PrinterL.Print(this.richTextBox1.Text);
if (prn.result == false) PUB.log.AddE(prn.errmessage);
}
else
PUB.log.AddAT("Printer L not connected");
}

View File

@@ -1,351 +0,0 @@
namespace Project.Dialog
{
partial class fswPLC
{
/// <summary>
/// 필수 디자이너 변수입니다.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 사용 중인 모든 리소스를 정리합니다.
/// </summary>
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel();
this.ioPanel1 = new arDev.AjinEXTEK.UI.IOPanel();
this.logTextBox1 = new arCtl.LogTextBox();
this.gridView1 = new arCtl.GridView.GridView();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.button6 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.button8 = new System.Windows.Forms.Button();
this.button9 = new System.Windows.Forms.Button();
this.button10 = new System.Windows.Forms.Button();
this.button11 = new System.Windows.Forms.Button();
this.button12 = new System.Windows.Forms.Button();
this.statusStrip1.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 250;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel2,
this.toolStripStatusLabel3});
this.statusStrip1.Location = new System.Drawing.Point(0, 570);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(627, 22);
this.statusStrip1.TabIndex = 2;
this.statusStrip1.Text = "statusStrip1";
//
// toolStripStatusLabel2
//
this.toolStripStatusLabel2.Name = "toolStripStatusLabel2";
this.toolStripStatusLabel2.Size = new System.Drawing.Size(121, 17);
this.toolStripStatusLabel2.Text = "toolStripStatusLabel2";
//
// toolStripStatusLabel3
//
this.toolStripStatusLabel3.Name = "toolStripStatusLabel3";
this.toolStripStatusLabel3.Size = new System.Drawing.Size(121, 17);
this.toolStripStatusLabel3.Text = "toolStripStatusLabel3";
//
// ioPanel1
//
this.ioPanel1.BorderColor = System.Drawing.Color.Empty;
this.ioPanel1.BorderSize = 0;
this.ioPanel1.ColorList = null;
this.ioPanel1.Dock = System.Windows.Forms.DockStyle.Top;
this.ioPanel1.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold);
this.ioPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200)))));
this.ioPanel1.ForeColorPin = System.Drawing.Color.WhiteSmoke;
this.ioPanel1.Location = new System.Drawing.Point(0, 0);
this.ioPanel1.MatrixSize = new System.Drawing.Point(3, 6);
this.ioPanel1.MenuBorderSize = 1;
this.ioPanel1.MenuGap = 5;
this.ioPanel1.MinimumSize = new System.Drawing.Size(100, 50);
this.ioPanel1.Name = "ioPanel1";
this.ioPanel1.ShadowColor = System.Drawing.Color.Transparent;
this.ioPanel1.showDebugInfo = false;
this.ioPanel1.ShowPinName = true;
this.ioPanel1.Size = new System.Drawing.Size(627, 116);
this.ioPanel1.TabIndex = 0;
this.ioPanel1.TextAttachToImage = true;
//
// logTextBox1
//
this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24)))));
this.logTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0];
this.logTextBox1.DateFormat = "mm:ss.fff";
this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray;
this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.logTextBox1.EnableDisplayTimer = true;
this.logTextBox1.EnableGubunColor = true;
this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F);
this.logTextBox1.ListFormat = "[{0}] {1}";
this.logTextBox1.Location = new System.Drawing.Point(0, 116);
this.logTextBox1.MaxListCount = ((ushort)(200));
this.logTextBox1.MaxTextLength = ((uint)(4000u));
this.logTextBox1.MessageInterval = 50;
this.logTextBox1.Name = "logTextBox1";
this.logTextBox1.Size = new System.Drawing.Size(627, 208);
this.logTextBox1.TabIndex = 0;
this.logTextBox1.Text = "";
//
// gridView1
//
this.gridView1.arVeriticalDraw = false;
this.gridView1.BorderColor = System.Drawing.Color.Black;
this.gridView1.BorderSize = 0;
this.gridView1.ColorList = null;
this.gridView1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gridView1.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold);
this.gridView1.ForeColorPin = System.Drawing.Color.WhiteSmoke;
this.gridView1.Location = new System.Drawing.Point(0, 470);
this.gridView1.MatrixSize = new System.Drawing.Point(3, 4);
this.gridView1.MenuBorderSize = 1;
this.gridView1.MenuGap = 5;
this.gridView1.MinimumSize = new System.Drawing.Size(100, 50);
this.gridView1.Name = "gridView1";
this.gridView1.Names = null;
this.gridView1.ShadowColor = System.Drawing.Color.Transparent;
this.gridView1.showDebugInfo = false;
this.gridView1.ShowIndexString = true;
this.gridView1.ShowNameString = true;
this.gridView1.ShowValueString = true;
this.gridView1.Size = new System.Drawing.Size(627, 100);
this.gridView1.TabIndex = 3;
this.gridView1.Tags = null;
this.gridView1.Text = "gridView1";
this.gridView1.TextAttachToImage = true;
this.gridView1.Titles = null;
this.gridView1.Values = null;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
this.tableLayoutPanel1.Controls.Add(this.button1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.button2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.button3, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.button4, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.button5, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.button6, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.button7, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.button8, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.button9, 2, 2);
this.tableLayoutPanel1.Controls.Add(this.button10, 2, 3);
this.tableLayoutPanel1.Controls.Add(this.button11, 1, 3);
this.tableLayoutPanel1.Controls.Add(this.button12, 0, 3);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 324);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 4;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(627, 146);
this.tableLayoutPanel1.TabIndex = 4;
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Fill;
this.button1.Location = new System.Drawing.Point(3, 3);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(202, 30);
this.button1.TabIndex = 0;
this.button1.Text = "UP";
this.button1.UseVisualStyleBackColor = true;
//
// button2
//
this.button2.Dock = System.Windows.Forms.DockStyle.Fill;
this.button2.Location = new System.Drawing.Point(211, 3);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(203, 30);
this.button2.TabIndex = 0;
this.button2.Text = "UP";
this.button2.UseVisualStyleBackColor = true;
//
// button3
//
this.button3.Dock = System.Windows.Forms.DockStyle.Fill;
this.button3.Location = new System.Drawing.Point(420, 3);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(204, 30);
this.button3.TabIndex = 0;
this.button3.Text = "UP";
this.button3.UseVisualStyleBackColor = true;
//
// button4
//
this.button4.Dock = System.Windows.Forms.DockStyle.Fill;
this.button4.Location = new System.Drawing.Point(420, 39);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(204, 30);
this.button4.TabIndex = 0;
this.button4.Text = "STOP";
this.button4.UseVisualStyleBackColor = true;
//
// button5
//
this.button5.Dock = System.Windows.Forms.DockStyle.Fill;
this.button5.Location = new System.Drawing.Point(211, 39);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(203, 30);
this.button5.TabIndex = 0;
this.button5.Text = "STOP";
this.button5.UseVisualStyleBackColor = true;
//
// button6
//
this.button6.Dock = System.Windows.Forms.DockStyle.Fill;
this.button6.Location = new System.Drawing.Point(3, 39);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(202, 30);
this.button6.TabIndex = 0;
this.button6.Text = "STOP";
this.button6.UseVisualStyleBackColor = true;
//
// button7
//
this.button7.Dock = System.Windows.Forms.DockStyle.Fill;
this.button7.Location = new System.Drawing.Point(3, 75);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(202, 30);
this.button7.TabIndex = 0;
this.button7.Text = "DOWN";
this.button7.UseVisualStyleBackColor = true;
//
// button8
//
this.button8.Dock = System.Windows.Forms.DockStyle.Fill;
this.button8.Location = new System.Drawing.Point(211, 75);
this.button8.Name = "button8";
this.button8.Size = new System.Drawing.Size(203, 30);
this.button8.TabIndex = 0;
this.button8.Text = "DOWN";
this.button8.UseVisualStyleBackColor = true;
//
// button9
//
this.button9.Dock = System.Windows.Forms.DockStyle.Fill;
this.button9.Location = new System.Drawing.Point(420, 75);
this.button9.Name = "button9";
this.button9.Size = new System.Drawing.Size(204, 30);
this.button9.TabIndex = 0;
this.button9.Text = "DOWN";
this.button9.UseVisualStyleBackColor = true;
//
// button10
//
this.button10.Dock = System.Windows.Forms.DockStyle.Fill;
this.button10.Location = new System.Drawing.Point(420, 111);
this.button10.Name = "button10";
this.button10.Size = new System.Drawing.Size(204, 32);
this.button10.TabIndex = 0;
this.button10.Text = "REFRESH";
this.button10.UseVisualStyleBackColor = true;
//
// button11
//
this.button11.Dock = System.Windows.Forms.DockStyle.Fill;
this.button11.Location = new System.Drawing.Point(211, 111);
this.button11.Name = "button11";
this.button11.Size = new System.Drawing.Size(203, 32);
this.button11.TabIndex = 0;
this.button11.Text = "REFRESH";
this.button11.UseVisualStyleBackColor = true;
//
// button12
//
this.button12.Dock = System.Windows.Forms.DockStyle.Fill;
this.button12.Location = new System.Drawing.Point(3, 111);
this.button12.Name = "button12";
this.button12.Size = new System.Drawing.Size(202, 32);
this.button12.TabIndex = 0;
this.button12.Text = "REFRESH";
this.button12.UseVisualStyleBackColor = true;
//
// fswPLC
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(627, 592);
this.Controls.Add(this.logTextBox1);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.gridView1);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.ioPanel1);
this.Name = "fswPLC";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.tableLayoutPanel1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private arCtl.LogTextBox logTextBox1;
private System.Windows.Forms.Timer timer1;
private arDev.AjinEXTEK.UI.IOPanel ioPanel1;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;
private arCtl.GridView.GridView gridView1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Button button7;
private System.Windows.Forms.Button button8;
private System.Windows.Forms.Button button9;
private System.Windows.Forms.Button button10;
private System.Windows.Forms.Button button11;
private System.Windows.Forms.Button button12;
}
}

View File

@@ -1,349 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Windows.Forms;
using AR;
namespace Project.Dialog
{
public partial class fswPLC : Form
{
// byte[] buffer = new byte[16];
public fswPLC()
{
InitializeComponent();
this.Text = $"{Application.ProductName} ver {Application.ProductVersion}";
PUB.log.RaiseMsg += (p1, p2, p3) => { this.logTextBox1.AddMsg(p1, p2, p3); };
this.FormClosing += (s1, e2) =>
{
timer1.Stop();
};
this.logTextBox1.ColorList = new arCtl.sLogMessageColor[] {
new arCtl.sLogMessageColor("NORM",Color.Yellow),
new arCtl.sLogMessageColor("ERR",Color.Red),
new arCtl.sLogMessageColor("WARN",Color.Tomato),
new arCtl.sLogMessageColor("INFO",Color.LightSkyBlue)
};
List<string> piname = new List<String>();
List<string> titles = new List<String>();
List<bool> values = new List<bool>();
titles.AddRange(new string[] {
"Upper Limit","Reel Detect","Lower Limit",
"Motor Direction(1=DN,0=UP)","Motor Run","Emergency",
});
piname.AddRange(new string[] {
"X"+((int)eDIName.PORTL_LIM_UP).ToString("X2"),
"X"+((int)eDIName.PORTL_DET_UP).ToString("X2"),
"X"+((int)eDIName.PORTL_LIM_DN).ToString("X2"),
"Y"+((int)eDOName.PORTL_MOT_DIR).ToString("X2"),
"Y"+((int)eDOName.PORTL_MOT_RUN).ToString("X2"),"--"
});
titles.AddRange(new string[] {
"Upper Limit","Reel Detect","Lower Limit",
"Motor Direction(1=DN,0=UP)","Motor Run","--",
});
piname.AddRange(new string[] {
"X"+((int)eDIName.PORTC_LIM_UP).ToString("X2"),
"X"+((int)eDIName.PORTC_DET_UP).ToString("X2"),
"X"+((int)eDIName.PORTC_LIM_DN).ToString("X2"),
"Y"+((int)eDOName.PORTC_MOT_DIR).ToString("X2"),
"Y"+((int)eDOName.PORTC_MOT_RUN).ToString("X2"),"--"
});
titles.AddRange(new string[] {
"Upper Limit","Reel Detect","Lower Limit",
"Motor Direction(1=DN,0=UP)","Motor Run","--"
});
piname.AddRange(new string[] {
"X"+((int)eDIName.PORTR_LIM_UP).ToString("X2"),
"X"+((int)eDIName.PORTR_DET_UP).ToString("X2"),
"X"+((int)eDIName.PORTR_LIM_DN).ToString("X2"),
"Y"+((int)eDOName.PORTR_MOT_DIR).ToString("X2"),
"Y"+((int)eDOName.PORTR_MOT_RUN).ToString("X2"),"--"
});
for (int i = 0; i < titles.Count; i++)
values.Add(false);
ioPanel1.ColorList = new arDev.AjinEXTEK.UI.ColorListItem[] {
new arDev.AjinEXTEK.UI.ColorListItem{ BackColor1 = Color.DimGray, BackColor2 = Color.FromArgb(30,30,30), Remark="False" },
new arDev.AjinEXTEK.UI.ColorListItem{ BackColor1 = Color.Lime, BackColor2 = Color.Green, Remark="True" },
};
this.ioPanel1.setTitle(titles.ToArray());
this.ioPanel1.setNames(piname.ToArray());
this.ioPanel1.setValue(values.ToArray());
this.ioPanel1.Invalidate();
//내부버퍼확인
titles.Clear();
piname.Clear();
var valueb = new List<ushort>();
for (int i = 0; i < 16; i++)
{
var addr = (eswPLCAddr)i;
piname.Add(i.ToString("X2"));
titles.Add(addr.ToString());
valueb.Add(0);
}
gridView1.ColorList = new arCtl.GridView.ColorListItem[] {
new arCtl.GridView.ColorListItem{ BackColor1 = Color.DimGray, BackColor2 = Color.FromArgb(30,30,30), Remark="False" },
new arCtl.GridView.ColorListItem{ BackColor1 = Color.Lime, BackColor2 = Color.Green, Remark="True" },
};
this.gridView1.setTitle(titles.ToArray());
this.gridView1.setNames(piname.ToArray());
this.gridView1.setValue(valueb.ToArray());
this.gridView1.ShowValueString = true;
this.gridView1.ShowNameString = true;
this.gridView1.ShowIndexString = false;
this.gridView1.Invalidate();
}
private void Form1_Load(object sender, EventArgs e)
{
PUB.log.AddI("Program started");
PUB.plc.ValueChanged += Plc_ValueChanged;
ioPanel1.ItemClick += IoPanel1_ItemClick;
timer1.Start();
}
private void Plc_ValueChanged(object sender, AR.MemoryMap.Core.monitorvalueargs e)
{
}
private void Dio_IOValueChanged(object sender, arDev.DIO.IOValueEventArgs e)
{
if (e.Direction == arDev.DIO.eIOPINDIR.INPUT)
{
var pin = (eDIName)e.ArrIDX;
//센서가 활성화될때는 이값을 설정해준다
//나머지조건은 autocontrol 에서 처리된다.
if (e.NewValue)
{
if (pin == eDIName.PORTL_LIM_DN) WriteBuffer(eswPLCAddr.LPort, 1);
else if (pin == eDIName.PORTL_DET_UP) WriteBuffer(eswPLCAddr.LPort, 2);
else if (pin == eDIName.PORTL_LIM_UP) WriteBuffer(eswPLCAddr.LPort, 3);
else if (pin == eDIName.PORTC_LIM_DN) WriteBuffer(eswPLCAddr.CPort, 1);
else if (pin == eDIName.PORTC_DET_UP) WriteBuffer(eswPLCAddr.CPort, 2);
else if (pin == eDIName.PORTC_LIM_UP) WriteBuffer(eswPLCAddr.CPort, 3);
else if (pin == eDIName.PORTR_LIM_DN) WriteBuffer(eswPLCAddr.RPort, 1);
else if (pin == eDIName.PORTR_DET_UP) WriteBuffer(eswPLCAddr.RPort, 2);
else if (pin == eDIName.PORTR_LIM_UP) WriteBuffer(eswPLCAddr.RPort, 3);
}
}
else
{
var pin = (eDOName)e.ArrIDX;
if (pin == eDOName.PORTL_MOT_RUN)
{
if (e.NewValue == false) WriteBuffer(eswPLCAddr.LMotor, 3);
else
{
//방향을 확인해야한다
var value = GetDOValue(eDOName.PORTL_MOT_DIR) ? 2 : 1;
WriteBuffer(eswPLCAddr.LMotor, (byte)value);
}
}
else if (pin == eDOName.PORTC_MOT_RUN)
{
if (e.NewValue == false) WriteBuffer(eswPLCAddr.CMotor, 3);
else
{
//방향을 확인해야한다
var value = GetDOValue(eDOName.PORTC_MOT_DIR) ? 2 : 1;
WriteBuffer(eswPLCAddr.CMotor, (byte)value);
}
}
else if (pin == eDOName.PORTR_MOT_RUN)
{
if (e.NewValue == false) WriteBuffer(eswPLCAddr.RMotor, 3);
else
{
//방향을 확인해야한다
var value = GetDOValue(eDOName.PORTR_MOT_DIR) ? 2 : 1;
WriteBuffer(eswPLCAddr.RMotor, (byte)value);
}
}
}
}
private void IoPanel1_ItemClick(object sender, arDev.AjinEXTEK.UI.IOPanel.ItemClickEventArgs e)
{
var name = this.ioPanel1.Names[e.idx];
if (name.StartsWith("Y"))
{
var pinno = Convert.ToInt32(name.Substring(1), 16);
var pin = (eDOName)pinno;
var cur = GetDOValue(pin);
DIO.SetOutput(pin, !cur);
PUB.log.Add($"value change [X{pinno:X2}] {pin} to {!cur}");
}
}
bool GetDOValue(eDOName pin)
{
return PUB.dio.GetDOValue((int)pin);
}
bool GetDIValue(eDIName pin)
{
if (pin == eDIName.PORTL_LIM_DN || pin == eDIName.PORTC_LIM_DN || pin == eDIName.PORTR_LIM_DN)
{
return !PUB.dio.GetDIValue((int)pin);
}
else if (pin == eDIName.PORTL_LIM_UP || pin == eDIName.PORTC_LIM_UP || pin == eDIName.PORTR_LIM_UP)
{
return !PUB.dio.GetDIValue((int)pin);
}
else if (pin == eDIName.PORTL_DET_UP || pin == eDIName.PORTC_DET_UP || pin == eDIName.PORTR_DET_UP)
{
return !PUB.dio.GetDIValue((int)pin);
}
else if (pin == eDIName.BUT_EMGF)
{
return !PUB.dio.GetDIValue((int)pin);
}
else return PUB.dio.GetDIValue((int)pin);
}
public enum eMotList
{
Left = 0,
Center,
Right,
}
public enum eMotControl
{
Stop,
Down,
Up,
}
void MotorControl(eMotList mot, eMotControl cmd)
{
if (cmd == eMotControl.Stop)
{
eDOName pin = eDOName.PORTL_MOT_RUN;
if (mot == eMotList.Center) pin = eDOName.PORTC_MOT_RUN;
else if (mot == eMotList.Right) pin = eDOName.PORTR_MOT_RUN;
//출력이켜져있다면 끈다
if (GetDOValue(pin)) SetOutput(pin, false);
}
else if (cmd == eMotControl.Down || cmd == eMotControl.Up)
{
var dir = cmd == eMotControl.Down ? false : true;
eDOName pinDir = eDOName.PORTL_MOT_DIR;
if (mot == eMotList.Center) pinDir = eDOName.PORTC_MOT_DIR;
else if (mot == eMotList.Right) pinDir = eDOName.PORTR_MOT_DIR;
eDOName pinRun = eDOName.PORTL_MOT_RUN;
if (mot == eMotList.Center) pinRun = eDOName.PORTC_MOT_RUN;
else if (mot == eMotList.Right) pinRun = eDOName.PORTR_MOT_RUN;
if (GetDOValue(pinDir) != dir) SetOutput(pinDir, dir);
if (GetDOValue(pinRun) == false) SetOutput(pinRun, true);
}
}
bool SetOutput(eDOName pin, bool value)
{
return PUB.dio.SetOutput((int)pin, value);
}
/// <summary>
/// 내부임시버퍼의 값을 확인합니다
/// </summary>
/// <param name="addr"></param>
/// <returns></returns>
byte ReadBuffer(eswPLCAddr addr)
{
return PUB.swPLCBuffer[(int)addr];
}
void WriteBuffer(eswPLCAddr addr, byte value)
{
PUB.swPLCBuffer[(int)addr] = value;
}
private void timer1_Tick(object sender, EventArgs e)
{
//io상태 ㅍ시
var idx = 0;
if (PUB.dio != null && PUB.dio.IsInit)
{
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTL_LIM_UP));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTL_DET_UP));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTL_LIM_DN));
ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTL_MOT_DIR));
ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTL_MOT_RUN));
ioPanel1.setValue(idx++, GetDIValue(eDIName.BUT_EMGF));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTC_LIM_UP));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTC_DET_UP));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTC_LIM_DN));
ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTC_MOT_DIR));
ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTC_MOT_RUN));
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTR_LIM_UP));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTR_DET_UP));
ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTR_LIM_DN));
ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTR_MOT_DIR));
ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTR_MOT_RUN));
ioPanel1.setValue(idx++, false);
}
else
{
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
ioPanel1.setValue(idx++, false);
}
ioPanel1.Invalidate();
//내부버퍼표시
for (int i = 0; i < 16; i++)
{
gridView1.setValue(i, ReadBuffer((eswPLCAddr)i));
}
gridView1.Invalidate();
toolStripStatusLabel2.Text = PUB.plc.Init ? "Connected" : "Disconnected";
toolStripStatusLabel2.ForeColor = PUB.plc.Init ? Color.Black : Color.Red;
toolStripStatusLabel3.Text = $"Loop({PUB.sm.Loop_ms:N0}ms)";
}
}
}

View File

@@ -1,126 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>104, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project
{
public static class DB
{
public static int ChangeRegExName(string oldname, string newname)
{
var sql = DBHelper.UpdateWhere("K4EE_Component_Reel_RegExRule",
new Dictionary<string, object>(){
{ "CustCode",newname }
}, new Dictionary<string, object>()
{
{ "CustCode",oldname }
});
return sql;
}
public static int CopyRegEx(string oldname, string newname)
{
var sql = "insert into K4EE_Component_Reel_RegExRule(custcode,seq,description,symbol,pattern,groups,isenable,istrust,isamkstd,isignore)" +
$" select '{newname}',seq,description,symbol,pattern,groups,isenable,istrust,isamkstd,isignore " +
$" from K4EE_Component_Reel_RegExRule" +
$" where custcode = '{oldname}'";
return DBHelper.ExecuteNonQuery(sql);
}
}
}

View File

@@ -414,7 +414,7 @@ namespace Project.Manager
//숫자는 기본 0으로 처리한다
data.Append("0");
}
else data.Append("0");
else data.Append("");
}
data.AppendLine();
}

View File

@@ -1,6 +1,7 @@
using AR;
using Emgu.CV.BgSegm;
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
@@ -102,7 +103,7 @@ namespace Project
public static Boolean UserAdmin { get { return true; } }
public static bool OPT_CAMERA(eWorkPort target)
public static bool OPT_CAMERA()
{
var retval = VAR.BOOL[eVarBool.Opt_DisableCamera];
if (retval == false)
@@ -210,17 +211,11 @@ namespace Project
public static bool UpdateWMS(Class.VisionData Data)
{
return false;
PUB.log.AddE("updatewms wms 데이터베이스 기록 연결해야 함(아세테크)");
return true;
}
public static bool SelectModelV(string modelName, bool bUploadConfig = true)
{
//
//if (this.InvokeRequired)
//{
// this.Invoke(new SelectModelHandler(SelectModelV), new object[] { modelName, bUploadConfig });
// return;
//}
//Initialize
PUB.Result.vModel.Title = string.Empty;
PUB.PrinterL.ZPLFileName = UTIL.MakePath("Data", "zpl.txt"); //Set as default file
@@ -240,10 +235,14 @@ namespace Project
SETTING.User.Save();
}
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
lock (PUB.Result.BCDPatternLock)
{
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.log.Add($"Model pattern loading:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
}
PUB.log.Add($"Model pattern loading:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
if (modelVision.Code.isEmpty())
{
//PUB.Result.CustCode = string.Empty;
@@ -302,9 +301,9 @@ namespace Project
public static bool MemLoadBarcodeConfig(Device.KeyenceBarcode keyence)
{
var BarcodeMemoryNo = PUB.Result.vModel.BSave;
if (BarcodeMemoryNo < 0)
if (BarcodeMemoryNo < 1)
{
PUB.log.AddAT($"The currently selected model does not have a barcode memory number specified.");
PUB.log.AddAT($"The currently selected model does not have a barcode memory number (BSAVE) specified.");
return false;
}
@@ -322,9 +321,11 @@ namespace Project
{
//접속되어잇ㅇ츠면 끈다
var isTriggeronL = keyence.IsTriggerOn;
var tagstr = keyence?.Tag ?? string.Empty;
if (keyence.IsConnect)
{
keyence.Trigger(false);
PUB.log.Add($"[{tagstr}] Send BLoad({BarcodeMemoryNo})");
keyence.BLoad(BarcodeMemoryNo);
}
@@ -825,6 +826,8 @@ namespace Project
}
}
break;
case "LOT":
case "VLOT":
if (vdata.VLOT.isEmpty())
{
@@ -867,6 +870,7 @@ namespace Project
}
}
break;
case "PARTNO":
case "PART":
if (vdata.PARTNO.isEmpty())
{
@@ -958,6 +962,9 @@ namespace Project
}
}
break;
default:
PUB.log.AddAT($"Unknown RegEx Target Name : {TargetPos}");
break;
}
return retval;
}
@@ -1096,7 +1103,7 @@ namespace Project
public static void initCore()
{
system_mot = new System_MotParameter(UTIL.MakePath("Data","System_mot.xml"));
system_mot = new System_MotParameter(UTIL.MakePath("Data", "System_mot.xml"));
system_mot.Load();
//setting
@@ -1121,7 +1128,7 @@ namespace Project
//zpl파일 만든다.
var fn = Path.Combine(UTIL.CurrentPath, "Data", "zpl.txt");
// i// File.WriteAllText(fn, Properties.Settings.Default.ZPL7, Encoding.Default);
// i// File.WriteAllText(fn, Properties.Settings.Default.ZPL7, Encoding.Default);
}
static void popup_WindowOpen(object sender, EventArgs e)
@@ -1238,6 +1245,54 @@ namespace Project
public static string IP { get; set; }
public static string MAC { get; set; }
public static string HOSTNAME { get; set; }
public static void GetIPMac()
{
string ip = "";
string mac = "";
try
{
var nif = NetworkInterface.GetAllNetworkInterfaces();
var host = Dns.GetHostEntry(Dns.GetHostName());
HOSTNAME = System.Net.Dns.GetHostEntry("").HostName;
foreach (IPAddress r in host.AddressList)
{
string str = r.ToString();
if (str != "" && str.Substring(0, 3) == "10.")
{
ip = str;
break;
}
}
string rtn = string.Empty;
ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");
ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq);
foreach (ManagementObject mo in query1.Get())
{
string[] address = (string[])mo["IPAddress"];
if (address[0] == ip && mo["MACAddress"] != null)
{
mac = mo["MACAddress"].ToString();
break;
}
}
}
catch (Exception ex)
{
ip = "";
mac = "";
}
IP = ip;
MAC = mac;
}
/// <summary>
/// 프로그램 사용기록 추가
@@ -1250,46 +1305,17 @@ namespace Project
if (prgmName.Length > 50) prgmName = prgmName.Substring(0, 50); //길이제한
var task = Task.Factory.StartNew(() =>
{
GetIPMac();
try
{
string ip = "";
string mac = "";
// string prgmName = Application.ProductName;
var nif = NetworkInterface.GetAllNetworkInterfaces();
var host = Dns.GetHostEntry(Dns.GetHostName());
string fullname = System.Net.Dns.GetHostEntry("").HostName;
foreach (IPAddress r in host.AddressList)
{
string str = r.ToString();
if (str != "" && str.Substring(0, 3) == "10.")
{
ip = str;
break;
}
}
string rtn = string.Empty;
ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");
ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq);
foreach (ManagementObject mo in query1.Get())
{
string[] address = (string[])mo["IPAddress"];
if (address[0] == ip && mo["MACAddress"] != null)
{
mac = mo["MACAddress"].ToString();
break;
}
}
if (ip == "" || mac == "")
if (IP == "" || MAC == "")
{
return;
}
SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!");
SqlConnection conn = new SqlConnection("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D");
conn.Open();
string ProcName = "AddPrgmUser3";
SqlCommand cmd = new SqlCommand(ProcName, conn)
@@ -1298,10 +1324,10 @@ namespace Project
};
SqlParameter param = cmd.Parameters.Add("@mac", SqlDbType.NVarChar, 50);
param.Value = mac;
param.Value = MAC;
param = cmd.Parameters.Add("@ip", SqlDbType.NVarChar, 50);
param.Value = ip;
param.Value = IP;
param = cmd.Parameters.Add("@pgrm", SqlDbType.NVarChar, 50);
param.Value = prgmName;
@@ -1319,13 +1345,12 @@ namespace Project
param.Value = System.Environment.UserName;
param = cmd.Parameters.Add("@hostname", SqlDbType.NVarChar, 100);
param.Value = fullname;
param.Value = HOSTNAME;
cmd.ExecuteNonQuery();
conn.Close();
IP = ip;
MAC = mac;
}
catch (Exception ex)
{
@@ -1643,11 +1668,12 @@ namespace Project
string NewID = string.Empty;
string Message = string.Empty;
var ip = PUB.IP ?? "127.0.0.1";
var retval = ta.X_SP_GET_UNIT_ID_LABEL(SETTING.Data.WMS_PROGRAM_ID,
SETTING.Data.WMS_CENTER_CD, sid,
SETTING.Data.WMS_REG_USERID,
PUB.IP,
ip,
ref NewID,
ref Message);
@@ -1731,24 +1757,99 @@ namespace Project
public static string GetErrorMessage(eECode err, params object[] args)
{
string ermsg = string.Empty;// $"[E{(int)err}] ";
var dr = PUB.mdm.dataSet.ErrorDescription.Where(t => t.Idx == (short)err).FirstOrDefault();
if (dr != null)
string ermsg = string.Empty;
string description = string.Empty;
// Get error description using switch statement with hardcoded messages
switch (err)
{
//자료는 있으나 사용자가 입력하지 않은 상태
if (dr.Description.isEmpty()) ermsg += "NO ERROR DESCRIPTION\nERR:" + err.ToString() + "\n{0}";
else ermsg += dr.Description.Replace("\\n", "\n");
case eECode.EMERGENCY:
description = "Emergency stop activated\nPlease check the emergency button and reset";
break;
case eECode.NOMODELV:
description = "Vision model not found\nPlease load or create a vision model";
break;
case eECode.NOMODELM:
description = "Motion model not found\nPlease load or create a motion model";
break;
case eECode.HOME_TIMEOUT:
description = "Home position timeout\nMotor failed to reach home position within timeout period";
break;
case eECode.NOFUNCTION:
description = "Function not available\nThe requested function is not implemented";
break;
case eECode.DOOFF:
description = "Digital output OFF failed\n{0}";
break;
case eECode.DOON:
description = "Digital output ON failed\n{0}";
break;
case eECode.DIOFF:
description = "Waiting for digital input OFF\n{0}";
break;
case eECode.DION:
description = "Waiting for digital input ON\n{0}";
break;
case eECode.MESSAGE_INFO:
description = "Information: {0}";
break;
case eECode.MESSAGE_ERROR:
description = "Error: {0}";
break;
case eECode.AZJINIT:
description = "Motion controller initialization failed\nPlease check the motion card connection";
break;
case eECode.MOT_SVOFF:
description = "Motor servo is OFF\nPlease turn on the servo motor";
break;
case eECode.MOT_CMD:
description = "Motion command error\n{0}";
break;
case eECode.USER_STOP:
description = "User stop requested\nOperation stopped by user";
break;
case eECode.USER_STEP:
description = "Step mode active\nPress continue to proceed";
break;
case eECode.POSITION_ERROR:
description = "Position error\nAxis is not at the expected position\n{0}";
break;
case eECode.MOTIONMODEL_MISSMATCH:
description = "Motion model mismatch\nThe loaded motion model does not match the system configuration";
break;
case eECode.VISCONF:
description = "Vision configuration error\nPlease check vision system settings";
break;
case eECode.PRINTER:
description = "Printer error\nPlease check the printer connection and status\n{0}";
break;
case eECode.QRDATAMISSMATCHL:
description = "Left QR data mismatch\nThe QR code data does not match expected format\n{0}";
break;
case eECode.QRDATAMISSMATCHR:
description = "Right QR data mismatch\nThe QR code data does not match expected format\n{0}";
break;
case eECode.MOTX_SAFETY:
description = "Motion X-axis safety error\nSafety condition violated for X-axis movement";
break;
default:
description = $"Unknown error code: {err}\n{{0}}";
break;
}
else ermsg = "NO ERROR DATA\nERR:" + err.ToString() + "\n{0}"; //자료자체를 찾을 수 없다
// Format the message with any provided arguments
try
{
var newermsg = string.Format(ermsg, args);
ermsg = newermsg;
ermsg = string.Format(description, args);
}
catch (Exception ex)
catch
{
// If formatting fails, just use the description as is
ermsg = description;
}
return ermsg;
}

View File

@@ -19,6 +19,16 @@ namespace Project
//로그가 너무 많이 쌓이니 해제한다
//Pub.log.AddE("Reader RES : " + resp);
}
else if (e.RawData.StartsWith("OK,BLOAD"))
{
var str = e.RawData.Replace("\r", "").Replace("\n", "");
PUB.log.AddI($"[{dev.Tag}] {str}");
}
else if (e.RawData.StartsWith("OK,BSAVE"))
{
var str = e.RawData.Replace("\r", "").Replace("\n", "");
PUB.log.AddI($"[{dev.Tag}] {str}");
}
else if (e.RawData.StartsWith("OK"))
{
//OK회신
@@ -29,7 +39,12 @@ namespace Project
if (PUB.sm.Step != eSMStep.HOME_FULL && PUB.sm.Step != eSMStep.HOME_QUICK)
{
// PUB.logKeyence.Add($"{resp.Replace("\n", "").Replace("\r", "")}");
ParseBarcode(e.RawData, dev.Tag.ToString());
var rawdata = e.RawData; //↔▲▼
rawdata = rawdata.Replace('\x1D', '↔').Replace('\x1E', '▲').Replace('\x04', '▼');
var lines = rawdata.Split(new char[] { '\r' },StringSplitOptions.RemoveEmptyEntries);
foreach(var line in lines)
ParseBarcode(line, dev.Tag.ToString());
}
else
{
@@ -110,8 +125,8 @@ namespace Project
private string KeyenceBarcodeDataF = string.Empty;
private string KeyenceBarcodeDataR = string.Empty;
/// <summary>
/// 키엔스로부터 받은 데이터를 분석한다.
/// </summary>
@@ -120,6 +135,8 @@ namespace Project
void ParseBarcode(string response, string Source)
{
//220901 - 특문있었ㅇ츰
var r1 = (char)0x1D;
var r2 = (char)0x1E;
@@ -144,7 +161,37 @@ namespace Project
var RegX = new System.Text.RegularExpressions.Regex(Pattern);
foreach (var resp in frames)
{
if (RegX.IsMatch(resp.Trim()) == false)
var bcddata = resp.Trim().Split(',');
if (resp.Equals("0:ERROR"))
{
PUB.log.AddE($"[{Source}] {resp}");
continue;
}
else if (bcddata.Length > 2 && bcddata[1] == "BLOAD")
{
if (bcddata[0] == "ER")
{
PUB.log.AddE($"[{Source}]Bacode Memory Read Error({resp})");
}
else
{
PUB.log.AddI($"[{Source}]Bacode Memory Read Complete({resp})");
}
continue;
}
else if (bcddata.Length > 2 && bcddata[1] == "BSAVE")
{
if (bcddata[0] == "ER")
{
PUB.log.AddE($"[{Source}]Bacode Memory Read Error({resp})");
}
else
{
PUB.log.AddI($"[{Source}]Bacode Memory Read Complete({resp})");
}
continue;
}
else if (RegX.IsMatch(resp.Trim()) == false)
{
//에러처리 221018
if (resp.StartsWith("0:ERROR")) continue;
@@ -163,7 +210,7 @@ namespace Project
var MatchList = RegX.Matches(resp.Trim());
var buf = MatchList[0].Groups;
var angle = 0;
var sym = buf[1].Value; //symbol
var vData = buf[2].Value.Trim(); //data
@@ -229,7 +276,7 @@ namespace Project
{
theta = angbcd.Angle;
}
var theta_rad = -theta * Math.PI / 180.0;
var PX = (int)(Math.Cos(theta_rad) * (vertextCP.X - ReelCP.X) - Math.Sin(theta_rad) * (vertextCP.Y - ReelCP.Y)) + ReelCP.X;
var PY = (int)(Math.Sin(theta_rad) * (vertextCP.X - ReelCP.X) + Math.Cos(theta_rad) * (vertextCP.Y - ReelCP.Y)) + ReelCP.Y;
@@ -281,7 +328,7 @@ namespace Project
else PUB.log.AddE($"[X]BCD RESERV[NEW:{sym}] " + Source + " " + vData);
itemC.VisionData.UpdateBarcodePositionData();
itemC.VisionData.BarcodeDirty = true;
itemC.VisionData.BarcodeTouched = true;
}
else
{
@@ -305,7 +352,7 @@ namespace Project
PUB.log.Add($"[UPD]BCD RESERV:{sym}] " + Source + " " + vData);
itemC.VisionData.barcodelist[valuekey] = newitem;
itemC.VisionData.UpdateBarcodePositionData();
itemC.VisionData.BarcodeDirty = true;
itemC.VisionData.BarcodeTouched = true;
}
}
}

View File

@@ -58,6 +58,17 @@ namespace Project
groupBox2.Text = "Barcode";
}
if((VAR.BOOL?.Get(eVarBool.Use_Conveyor) ?? false) == true)
{
btAutoReelOut.BackColor = PUB.Result.AutoReelOut ? Color.Lime : SystemColors.Control;
btAutoReelOut.Visible = true;
}
else
{
btAutoReelOut.Visible = false;
}
groupBox1.Text = $"Equipment Operation({PUB.sm.Loop_ms:N0}ms)";
//릴사이즈가 맞지 않으면 깜박인다.
if (DIO.getCartSize(1) != eCartSize.None)
@@ -113,9 +124,9 @@ namespace Project
//락정보
var l0 = DIO.GetIOOutput(eDOName.CART_MAG0);
var l1 = DIO.GetIOOutput(eDOName.CART_MAG1);
var l2 = DIO.GetIOOutput(eDOName.CART_MAG2);
var l0 = DIO.GetIOOutput(eDOName.PORTL_MAGNET);
var l1 = DIO.GetIOOutput(eDOName.PORTC_MAGNET);
var l2 = DIO.GetIOOutput(eDOName.PORTR_MAGNET);
lbLock0.Text = l0 ? "Cart Exchange" : "No Cart";
lbLock1.Text = l1 ? "Cart Exchange" : "No Cart";
@@ -132,7 +143,7 @@ namespace Project
{
//데이터수신시간에 따른 색상
var tswecv = DateTime.Now - VAR.TIME[eVarTime.lastRecvWSL];
if(tswecv.TotalSeconds > 5)
if (tswecv.TotalSeconds > 5)
{
sbVisTitle0.ForeColor = Color.HotPink;
}
@@ -143,7 +154,7 @@ namespace Project
else
sbVisTitle0.ForeColor = Color.Magenta;
}
}
//
@@ -165,7 +176,7 @@ namespace Project
else
sbVisTitle2.ForeColor = Color.Magenta;
}
}
//arLabel18.Text = camliveBusy ? "카메라 (라이브뷰)" : "카메라";
@@ -237,14 +248,14 @@ namespace Project
HWState.setTitle(1, hwcol, (PUB.wsL.Connected ? "ON" : "OFF"));
HWState.setValue(1, hwcol++, (ushort)(PUB.wsL.Connected ? 1 : 3));
}
if (PUB.wsR != null)
{
HWState.setTitle(1, hwcol, (PUB.wsR.Connected ? "ON" : "OFF"));
HWState.setValue(1, hwcol++, (ushort)(PUB.wsR.Connected ? 1 : 3));
}
HWState.setTitle(1, hwcol, (PUB.BarcodeFix.IsOpen() ? AR.SETTING.Data.Barcode_Port : "OFF"));
HWState.setValue(1, hwcol++, (ushort)(PUB.BarcodeFix.IsOpen() ? 1 : 3));
@@ -321,7 +332,7 @@ namespace Project
arLabel1.ForeColor = Color.Red;
}
//시스템바이패스
@@ -354,7 +365,11 @@ namespace Project
}
else
{
lbModelName.Text = $"[{VAR.STR[eVarString.JOB_CUSTOMER_CODE]}] {modelName}";
var custname = VAR.STR[eVarString.JOB_CUSTOMER_CODE];
if (custname.isEmpty() == false)
lbModelName.Text = $"[{custname}] {modelName}";
else
lbModelName.Text = $"{modelName}";
lbModelName.ForeColor = Color.Black;
lbModelName.BackColor = Color.White;
lbModelName.BackColor2 = Color.WhiteSmoke;

View File

@@ -42,7 +42,7 @@ namespace Project
btLightRoom.BackColor = DIO.GetIOOutput(eDOName.ROOMLIGHT) ? Color.Gold : SystemColors.Control;
//상태를 DB에 저장한다.
EEMStatus.UpdateStatusSQL(PUB.sm.Step);
//EEMStatus.UpdateStatusSQL(PUB.sm.Step);
//컨베이어 가동시간계싼
if(DIO.GetIOOutput(eDOName.LEFT_CONV) && VAR.TIME[eVarTime.CONVL_START].Year != 1982)

View File

@@ -153,9 +153,9 @@ namespace Project
hmi1.arFGPrinter0END = PUB.flag.get(eVarBool.FG_OK_PRINTL);
hmi1.arFGPrinter1END = PUB.flag.get(eVarBool.FG_OK_PRINTR);
hmi1.arMagnet0 = DIO.GetIOOutput(eDOName.CART_MAG0);
hmi1.arMagnet1 = DIO.GetIOOutput(eDOName.CART_MAG1);
hmi1.arMagnet2 = DIO.GetIOOutput(eDOName.CART_MAG2);
hmi1.arMagnet0 = DIO.GetIOOutput(eDOName.PORTL_MAGNET);
hmi1.arMagnet1 = DIO.GetIOOutput(eDOName.PORTC_MAGNET);
hmi1.arMagnet2 = DIO.GetIOOutput(eDOName.PORTR_MAGNET);
hmi1.arPickerSafeZone = DIO.GetIOInput(eDIName.PICKER_SAFE);

View File

@@ -46,6 +46,8 @@ namespace Project
else if (PUB.mot.HasServoOff == true) msg = "Servo OFF occurred";
else if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) msg = "AIR output failed (Press the front blue AIR button)";
else if (DIO.GetIOInput(eDIName.AIR_DETECT) == false) msg = "AIR not detected";
else if (DIO.isSaftyDoorF() == false) msg = "Front Door Safty Error";
else if (DIO.isSaftyDoorR() == false) msg = "Rear Door Safty Error";
else if (PUB.mot.HasHomeSetOff == true)
{
if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false)

View File

@@ -112,6 +112,9 @@ namespace Project
PUB.log.AddI("H/W inspection ignore function disabled due to work start");
}
//Auto Reel Out 250926
PUB.Result.AutoReelOut = PUB.Result.vModel.AutoOutConveyor > 0;
//공용변수초기화
PUB.log.Add("Common variable (count) values initialized");
VAR.I32.Clear((int)eVarInt32.LPickOfCount);
@@ -122,20 +125,28 @@ namespace Project
VAR.I32.Clear((int)eVarInt32.PickOnCount);
VAR.I32.Clear((int)eVarInt32.PickOnRetry); //221102
PUB.flag.set(eVarBool.FG_RUN_LEFT, false, "POSREST");
PUB.flag.set(eVarBool.FG_RUN_RIGHT, false, "POSREST");
VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] = false;
VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] = false;
VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] = false;
AutoConvOutTimeL = new DateTime(1982, 11, 23);
AutoConvOutTimeR = new DateTime(1982, 11, 23);
PUB.Result.ItemDataL.Clear("START_CHKSW");
PUB.Result.ItemDataC.Clear("START_CHKSW");
PUB.Result.ItemDataR.Clear("START_CHKSW");
var modelName = PUB.Result.vModel.Title;
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
lock (PUB.Result.BCDPatternLock)
{
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
}
//변환SID SID확인여부데이터 삭제
PUB.Result.DTSidConvertEmptyList.Clear();

View File

@@ -26,7 +26,7 @@ namespace Project
//option check
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
//####################################################
@@ -979,7 +979,7 @@ namespace Project
if (errmsg.Length > 190) errmsg = errmsg.Substring(0, 190); //230810 maxlength error
SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), (rlt ? "OK" : errmsg), "root_sequence");
//RefreshList(); //목록업데이트
EEMStatus.AddStatusCount(1, $"{item.VisionData.SID}|{item.VisionData.RID}"); //eem 추가 230620
//EEMStatus.AddStatusCount(1, $"{item.VisionData.SID}|{item.VisionData.RID}"); //eem 추가 230620
PUB.sm.seq.Update(cmdIndex);
return false;
}

View File

@@ -17,6 +17,7 @@ namespace Project
Complete,
TimeOut,
MultiSID,
Nothing,
}
public EResultKeyence KEYENCE_READ(eWorkPort target, eSMStep cmdIndex)
{
@@ -32,7 +33,7 @@ namespace Project
var CVMode = VAR.BOOL[eVarBool.Use_Conveyor];
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
//데이터가 완료되었는지 확인
@@ -161,435 +162,10 @@ namespace Project
return EResultKeyence.TimeOut;
}
//수량임의 입력의 경우
if (VAR.BOOL[eVarBool.Opt_UserQtyRQ])
{
if (itemC.VisionData.QTYRQ) vQtyOK = true; ////RQ의 값이 들어있으면 성공
else vQtyOK = false; //수량임의모드인데 RQ값이 들어있지않으면 자동진행하지 않는다
}
else
{
//자동에서는 수량값이 들어있으면 바로 넘어가게한다.
vQtyOK = itemC.VisionData.QTY.isEmpty() == false;
}
//커스터머 이름 확인
if (OPT_BYPASS == false && (itemC.VisionData.CUSTNAME.isEmpty() && itemC.VisionData.CUSTCODE.isEmpty() == false))
{
var qta = new DataSet1TableAdapters.QueriesTableAdapter();
var custname = qta.GetCustName(itemC.VisionData.CUSTCODE);
if (custname.isEmpty() == false)
{
PUB.log.Add($"New CustName => {custname}");
itemC.VisionData.CUSTNAME = custname;
}
}
//기본 벤더이름
if (OPT_BYPASS == false && PUB.Result.vModel.Def_Vname.isEmpty() == false)
{
if (itemC.VisionData.VNAME.Equals(PUB.Result.vModel.Def_Vname) == false)
{
itemC.VisionData.VNAME = PUB.Result.vModel.Def_Vname;
itemC.VisionData.VNAME_Trust = true;
PUB.log.Add($"Defaul V.Name Set to {PUB.Result.vModel.Def_Vname}");
}
}
//기본 MFG
if (OPT_BYPASS == false && PUB.Result.vModel.Def_MFG.isEmpty() == false)
{
if (itemC.VisionData.MFGDATE.Equals(PUB.Result.vModel.Def_MFG) == false)
{
itemC.VisionData.MFGDATE = PUB.Result.vModel.Def_MFG;
itemC.VisionData.MFGDATE_Trust = true;
PUB.log.Add($"Defaul MFGDATE Set to {PUB.Result.vModel.Def_MFG}");
}
}
//옵션설정에 따른 외부데이터 가져오기 작업
bool NewBarcodeUpdated = false;
//[WMS] SID정보테이블에서 정보 추출(프린트정보는 없음)
//[WMS] 에서 중복검색되면 팝업을 해야하므로 이것을 먼저 처리한다.
if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && vdata.BarcodeDirty == true)
{
Boolean Apply = true;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CUST_CODE");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PART_NO");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VENDOR_NM");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("BATCH_NO"); //220921
//where coluns
List<string> wheres = new List<string>();
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CUST_CODE='{vdata.CUSTCODE}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PART_NO='{vdata.PARTNO}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_SID])
{
if (VAR.BOOL[eVarBool.Opt_SIDConvert]) //if sid convert logic
{
if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
else
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_VLOT]) //221013
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) wheres.Add($"VENDER_LOT = '{vdata.VLOT}'");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
var mcname = VAR.BOOL[eVarBool.Use_Conveyor] ? PUB.MCCode : SETTING.Data.McName;
var TableName = "VW_GET_MAX_QTY_VENDOR_LOT";
var whereState = " where " + string.Join(" and ", wheres);
var selectFields = string.Join(",", fields);
var SQL = $"select top 1 {selectFields} from {TableName} WITH(NOLOCK) {whereState}";
var SQLC = $"select count(*) from {TableName} WITH(NOLOCK) {whereState}";
//정보가 여러개 존재하면 선택화면으로 처리해야한다
var cntvalue = (DBHelper.ExecuteScalar(SQLC)?.ToString() ?? "0").toInt();
if (cntvalue > 1)
{
VAR.STR[eVarString.MULTISID_QUERY] = $"select {selectFields} from {TableName} WITH(NOLOCK) {whereState}";
VAR.STR[eVarString.MULTISID_FIELDS] = selectFields;
return EResultKeyence.MultiSID;
}
if (PUB.Result.ItemDataC.VisionData.LastQueryStringWMS.Equals(SQL) == false) //같은 쿼리는 처리하지 않는다
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, SQLC))
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringWMS = SQL;
}
}
}
//SID정보테이블에서 정보 추출
if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && vdata.BarcodeDirty == true)
{
Boolean Apply = true;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CustCode");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PartNo");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("PrintPosition");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VenderName");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("batch"); //220921
if (VAR.BOOL[eVarBool.Opt_SID_Apply_qty] && (vdata.SID_Trust == false || vdata.QTYMAX.isEmpty())) fields.Add("qtymax"); //220921
fields.Add("attach"); //231026
//where coluns
List<string> wheres = new List<string>();
//wheres.Add($"MC='{COMM.SETTING.Data.McName}");
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CustCode='{vdata.CUSTCODE}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PartNo='{vdata.PARTNO}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_SID])
{
if (VAR.BOOL[eVarBool.Opt_SIDConvert]) //if sid convert logic
{
if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false)
wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
else
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_VLOT]) //221013
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false)
wheres.Add($"(VenderLot like '{vdata.VLOT}' or VenderLot like '%,{vdata.VLOT}' or VenderLot like '{vdata.VLOT},%' or VenderLot like '%,{vdata.VLOT},%')");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_MC]) //231006
{
if (AR.SETTING.Data.McName.isEmpty() == false)
wheres.Add($"attach='{AR.SETTING.Data.McName}'");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
var mcname = SETTING.Data.McName;
if (VAR.BOOL[eVarBool.Use_Conveyor]) mcname = PUB.MCCode;
var SQL = "select top 1 " + string.Join(",", fields) +
" from K4EE_Component_Reel_SID_Information WITH(NOLOCK)" +
" where mc='" + mcname + "' and " + string.Join(" and ", wheres) +
" order by wdate desc";
var SQLC = "select count(*)" +
" from K4EE_Component_Reel_SID_Information WITH(NOLOCK)" +
" where mc='" + mcname + "' and " + string.Join(" and ", wheres);
if (PUB.Result.ItemDataC.VisionData.LastQueryStringSID.Equals(SQL) == false)
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, SQLC) == true)
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringSID = SQL;
}
}
}
//시드변환정보에서 정보 추출
if (VAR.BOOL[eVarBool.Opt_ApplySIDConv] && vdata.BarcodeDirty == true)
{
Boolean Apply = true;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CustCode");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PartNo");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("PrintPosition");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VenderName");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_Batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("batch"); //220921
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_QtyMax] && (vdata.SID_Trust == false || vdata.QTYMAX.isEmpty())) fields.Add("qtymax"); //220921
//where coluns
List<string> wheres = new List<string>();
//wheres.Add($"MC='{COMM.SETTING.Data.McName}");
if (Apply && VAR.BOOL[eVarBool.Opt_Conv_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CustCode='{vdata.CUSTCODE}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_Conv_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PartNo='{vdata.PARTNO}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_Conv_Where_SID])
{
if (VAR.BOOL[eVarBool.Opt_SIDConvert]) //if sid convert logic
{
if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false)
wheres.Add($"SIDTo='{vdata.SID}'");
else Apply = false;
}
else
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SIDTo='{vdata.SID}'");
else Apply = false;
}
}
if (VAR.BOOL[eVarBool.Opt_Conv_Where_VLOT]) //221013
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false)
wheres.Add($"(VenderLot like '{vdata.VLOT}' or VenderLot like '%,{vdata.VLOT}' or VenderLot like '{vdata.VLOT},%' or VenderLot like '%,{vdata.VLOT},%')");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
var mcname = SETTING.Data.McName;
if (VAR.BOOL[eVarBool.Use_Conveyor]) mcname = PUB.MCCode;
var SQL = "select top 1 " + string.Join(",", fields) +
" from K4EE_Component_Reel_SID_Convert WITH(NOLOCK)" +
" where " + string.Join(" and ", wheres) +
" order by wdate desc";
var SQLC = "select count(*)" +
" from K4EE_Component_Reel_SID_Convert WITH(NOLOCK)" +
" where " + string.Join(" and ", wheres);
if (PUB.Result.ItemDataC.VisionData.LastQueryStringCNV.Equals(SQL) == false)
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, SQLC) == true)
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringCNV = SQL;
}
}
}
//기존 작업에서 데이터를 찾아서 쓴다
if (VAR.BOOL[eVarBool.Opt_ApplyJobInfo] && vdata.BarcodeDirty == true)
{
Boolean Apply = true;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_Job_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CUSTCODE");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PARTNO");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("POS");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VNAME");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
//where coluns
List<string> wheres = new List<string>();
if (VAR.BOOL[eVarBool.Opt_Job_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CUSTCODE='{vdata.CUSTCODE}'");
else Apply = false;
}
if (VAR.BOOL[eVarBool.Opt_Job_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PARTNO='{vdata.PARTNO}'");
else Apply = false;
}
if (VAR.BOOL[eVarBool.Opt_Job_Where_SID])
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
if (VAR.BOOL[eVarBool.Opt_Job_Where_VLOT])
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) wheres.Add($"VenderLot='{vdata.VLOT}'");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
PUB.log.Add($"DATABAES : RESULT QUERY");
var SQL = "select top 1 " + string.Join(",", fields) +
" from K4EE_Component_Reel_Result WITH(NOLOCK) " +
$" where mc = '{AR.SETTING.Data.McName}'" +
$" and prnattach = 1 and stime >= '{DateTime.Now.AddHours(-3).ToString("yyyy-MM-dd HH:mm:ss")}'" +
$" and " + string.Join(" and ", wheres) +
$" order by wdate desc";
if (PUB.Result.ItemDataC.VisionData.LastQueryStringJOB.Equals(SQL) == false)
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, ""))
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringJOB = SQL;
}
}
}
//해당 바코드작업이 완료되었는지 확인한다. 신규 바코드값이 업데이트되면 한번더 동작하도록 한다
if (itemC.VisionData.BarcodeDirty == true && NewBarcodeUpdated == false)
{
itemC.VisionData.BarcodeDirty = false;
}
//릴Id 신규부여
if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_NewReelID])
{
if (itemC.VisionData.RIDNew == false && itemC.VisionData.CUSTCODE.isEmpty() == false && itemC.VisionData.SID.isEmpty() == false)
{
var newid = PUB.MakeNewREELID(itemC.VisionData.SID);// Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg);
if (newid.success == true)
{
//backup origin reel id
itemC.VisionData.RID0 = itemC.VisionData.RID;
//set new reel id
itemC.VisionData.SetRID(newid.newid, "SPS:CHKDATACOMPLETE");// = newid;
itemC.VisionData.RIDNew = true; //applied new reel id
//서버의수량업데이트기능이 켜져있다면 해당 값을 제거해준다. (다시 조회되도록 함)
if (VAR.BOOL[eVarBool.Opt_ServerQty])
{
//이미 수량업데이트된 경우이므로 복원시켜준다
if (itemC.VisionData.QTY0.isEmpty() == false)
{
PUB.log.AddAT($"Restoring quantity due to reel ID change ({itemC.VisionData.QTY}->{itemC.VisionData.QTY0})");
itemC.VisionData.QTY = itemC.VisionData.QTY0;
itemC.VisionData.QTY0 = string.Empty;
}
}
}
else
{
var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR);
if (logtime.TotalSeconds >= 3000)
{
PUB.log.AddAT($"Reel_ID generation failed : {newid.message}");
VAR.TIME.Update(eVarTime.LOG_NEWIDERROR);
}
}
}
}
//데이터확정 및 완료처리
if (itemC.VisionData.Confirm)
{
//이미 완료된 데이터
if (itemC.VisionData.ConfirmAuto)
PUB.log.AddI($"Proceeding due to data confirmation completion (automatic)");
else if (itemC.VisionData.ConfirmUser)
PUB.log.AddI($"Proceeding due to data confirmation completion (manual)");
else
PUB.log.AddI($"Proceeding due to data confirmation completion (BYPASS)");
}
else if (itemC.VisionData.QRInputRaw.isEmpty() == false && itemC.VisionData.BATCH.isEmpty() == false)
{
//ATK STD QR데이터가 입력되었으니 더이상 읽지 않아도 진행하도록 하자
//데이터가 부족하다면 바로 채우기 작업을 해야한다
CheckDataComplte(itemC, "STD", true);
return EResultKeyence.Wait;
}
else if (vQtyOK &&
(OPT_BYPASS || itemC.VisionData.VNAME.isEmpty() == false) &&
itemC.VisionData.VLOT.isEmpty() == false &&
itemC.VisionData.SID.Length == 9 &&
(OPT_BYPASS || itemC.VisionData.MFGDATE.isEmpty() == false) &&
itemC.VisionData.PARTNO.isEmpty() == false &&
itemC.VisionData.BATCH.isEmpty() == false &&
itemC.VisionData.RID.isEmpty() == false)
{
//모든값이 입력되어 있다면 조건 체크후 진행할 수 있도록 한다
//2206211400
CheckDataComplte(itemC, "SINGLE", true);
return EResultKeyence.Wait;
}
else
{
//아직데이터가 완료되지 않았다면
//대기시간이 지나면 사용자 확인창을 띄운다
return EResultKeyence.Wait;
}
var prcResult = BCDProcess_ALL(itemC, "SEQ", true);
if (prcResult != EResultKeyence.Nothing)
return prcResult;
PUB.sm.seq.Update(cmdIndex);
return EResultKeyence.Wait;
@@ -628,15 +204,16 @@ namespace Project
return;
}
//DB정보에서 데이터를 쓸것이 있다면 기록한다
//이전작업내역에서 데이터를 쓸것이 있다면 기록한다
//Customer Code
if (OPT_BYPASS == false && item.VisionData.CUSTCODE.isEmpty() && CustomerCode.isEmpty() == false)
//처음작업이면 반드시 확인을 한다
if (OPT_BYPASS == false && PUB.Result.JobFirst)
{
item.VisionData.CUSTCODE = CustomerCode;
PUB.log.Add($"[FIX] CUSTOMER CODE => {CustomerCode}");
//사용자확인이 필요없는 상태라면 활성화해준다
//프린트를 하지 않는다면 처리하지 않는다.
if (VAR.BOOL[eVarBool.Opt_DisablePrinter] == false)
{
if (mainjob && item.VisionData.bcdMessage.ContainsKey(6) == false) item.VisionData.bcdMessage.Add(6, "First reel confirmation required");
NeedConfirm = true;
}
}
//서버의수량업데이트기능
@@ -662,7 +239,8 @@ namespace Project
{
if (mainjob) PUB.log.AddE($"Quantity update failed rID:{item.VisionData.RID}, Message={msg}");
NeedConfirm = true;
if (mainjob) item.VisionData.bcdMessage.Add("Quantity update failed");
if (mainjob && item.VisionData.bcdMessage.ContainsKey(1) == false)
item.VisionData.bcdMessage.Add(1, "Quantity update failed");
}
}
}
@@ -683,23 +261,31 @@ namespace Project
}
else
{
if (mainjob) item.VisionData.bcdMessage.Add("RQ value error (auto mode not possible)");
if (mainjob && item.VisionData.bcdMessage.ContainsKey(2) == false) item.VisionData.bcdMessage.Add(2, "RQ value error (auto mode not possible)");
NeedConfirm = true;
}
}
else
{
if (mainjob) item.VisionData.bcdMessage.Add("Manual quantity input required");
if (mainjob && item.VisionData.bcdMessage.ContainsKey(3) == false) item.VisionData.bcdMessage.Add(3, "Manual quantity input required");
NeedConfirm = true;
}
}
//프린트위치확인
BCDProcess_BCDPrint(item);
if (item.VisionData.PrintPositionData.isEmpty() == true || item.VisionData.PrintPositionCheck == false)
{
if (mainjob && item.VisionData.bcdMessage.ContainsKey(4) == false) item.VisionData.bcdMessage.Add(4, "Attachment position not found");
NeedConfirm = true;
}
//SID 존재여부 확인
if (OPT_BYPASS == false && item.VisionData.SID_Trust && VAR.BOOL[eVarBool.Opt_CheckSIDExist])
{
//ECS목록에 데이터가 업다면 오류로 처리한다
var SID = item.VisionData.SID;
var MCName = VAR.BOOL[eVarBool.Use_Conveyor] ? "IB" : SETTING.Data.McName;
var ta = new DataSet1TableAdapters.QueriesTableAdapter();
var exist = ta.CheckSIDExist(SID) > 0;
PUB.log.Add($"SID Exist Check SID:{item.VisionData.SID},Result={exist}");
@@ -712,116 +298,43 @@ namespace Project
//sid변환기능확인
var SIDOK = false;
if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_SIDConvert] && VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] == false)
if (OPT_BYPASS == false &&
VAR.BOOL[eVarBool.Opt_SIDConvert] &&
PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO) == false &&
VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] == false)
{
//변환된 정보가 없다면 변환을 진행한다
if (item.VisionData.SID0.isEmpty() && item.VisionData.SID_Trust && item.VisionData.SID.isEmpty() == false)
{
//이 sid가 존재여부확인 후 없는 sid라면 더이상 처리하지 않는다 230510
if (PUB.Result.DTSidConvertEmptyList.Contains(item.VisionData.SID))
{
//존재하지 않는 SID로 이미 확인되었다
}
else if (PUB.Result.DTSidConvertMultiList.Contains(item.VisionData.SID))
{
//다중sid로 인해 처리하지 않는다
}
else
{
var newsid = PUB.SIDCovert(item.VisionData.SID, "SPS_BarcodeProcess", out bool converr);
if (converr)
{
if (PUB.sm.Step == eSMStep.RUN)
PUB.log.AddE(newsid);
}
else
{
item.VisionData.SID0 = item.VisionData.SID; //기존자료를 0으로 백업한다
item.VisionData.SID = newsid; //신규 SID를 기록
}
}
}
//시드값이 유효한지 확인한다.
SIDOK = item.VisionData.SID_Trust && item.VisionData.SID0.isEmpty() == false && item.VisionData.SID.isEmpty() == false;
}
else SIDOK = (item.VisionData.SID_Trust && item.VisionData.SID.isEmpty() == false); //시드변환을 사용하지 않으므로 시드값여부에따라 다르다
//사용자확인이 필요한 옵션이라면 사용한다
if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_UserConfim])
//수량확인
if (OPT_BYPASS == false)
{
if (NeedConfirm == false)
if(double.TryParse(item.VisionData.QTY,out double qtyvalue)==false)
{
if (mainjob) item.VisionData.bcdMessage.Add("User confirmation required");
if (mainjob && item.VisionData.bcdMessage.ContainsKey(8) == false) item.VisionData.bcdMessage.Add(8, "Qty invalid");
NeedConfirm = true;
}
}
//처음작업이면 반드시 확인을 한다
if (OPT_BYPASS == false && PUB.Result.JobFirst)
//사용자확인이 필요한 옵션이라면 사용한다
if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_UserConfim])
{
//사용자확인이 필요없는 상태라면 활성화해준다
if (NeedConfirm == false)
{
//프린트를 하지 않는다면 처리하지 않는다.
if (VAR.BOOL[eVarBool.Opt_DisablePrinter] == false)
{
if (mainjob) item.VisionData.bcdMessage.Add("First reel confirmation required");
NeedConfirm = true;
}
}
if (mainjob && item.VisionData.bcdMessage.ContainsKey(5) == false) item.VisionData.bcdMessage.Add(5, "User confirmation required");
NeedConfirm = true;
}
//변환작업인데 원본 값이 없다.
//혹은 변환값과 원본이 같다
if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_SIDConvert] && (item.VisionData.SID0.isEmpty() == true || item.VisionData.SID0 == item.VisionData.SID))
{
if (NeedConfirm == false)
{
if (mainjob) item.VisionData.bcdMessage.Add("SID conversion value confirmation required");
NeedConfirm = true;
}
}
//프린트위치확인
if (item.VisionData.PrintPositionData.isEmpty() == true || item.VisionData.PrintPositionCheck == false)
{
if (OPT_BYPASS)
{
//바이패스해야하는 경우라면 프린트위치를 임의로 한다
if (item.VisionData.PrintPositionData.isEmpty())
{
item.VisionData.PrintPositionData = "1";
item.VisionData.PrintPositionCheck = true;
PUB.log.AddI($"Print position arbitrarily set due to bypass SID ({item.VisionData.SID})");
}
}
else
{
//기록된 현재작업의 인쇄위치 정보에서 찾는다 231005
if (PUB.Result.PrintPostionList.ContainsKey(item.VisionData.SID))
{
var preprnpos = PUB.Result.PrintPostionList[item.VisionData.SID];
item.VisionData.PrintPositionData = preprnpos;
item.VisionData.PrintPositionCheck = true;
PUB.log.AddI($"Print position found in current job info SID:{item.VisionData.SID}, Value={preprnpos}");
}
else if (NeedConfirm == false)
{
//현작업내에서의 정보를 찾아서 적용한다 231005
if (mainjob) item.VisionData.bcdMessage.Add("Attachment position not found");
NeedConfirm = true;
}
}
}
//바이패스모드에서 벤더네임이지정(101시드에 벤더네임이 없다)
if (OPT_BYPASS)
{
if (item.VisionData.VNAME_Trust == false)
{
item.VisionData.VNAME = "BYPASS";
item.VisionData.VNAME_Trust = true;
}
if (mainjob && item.VisionData.bcdMessage.ContainsKey(7) == false) item.VisionData.bcdMessage.Add(7, "SID conversion value confirmation required");
NeedConfirm = true;
}
//데이터의 신뢰성을 확인하고 모두 입력되었다면 자동 확정을 진행한다
@@ -852,13 +365,10 @@ namespace Project
}
else if (item.VisionData.QRInputRaw.isEmpty() == false)
{
if (NeedConfirm == false)
if (mainjob)
{
if (mainjob)
{
NeedConfirm = true;
PUB.log.AddAT($"Data incomplete but QR has been read, showing confirmation window immediately");
}
NeedConfirm = true;
PUB.log.AddAT($"Data incomplete but QR has been read, showing confirmation window immediately");
}
}

View File

@@ -24,7 +24,7 @@ namespace Project
//option check
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
//####################################################

View File

@@ -23,7 +23,7 @@ namespace Project
//option check
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
var iLockX = PUB.iLock[(int)eAxis.PX_PICK];

View File

@@ -24,7 +24,7 @@ namespace Project
//option check
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
@@ -112,7 +112,7 @@ namespace Project
{
var prn = Printer.Print(zpl);
//PUB.PrintSend(true, zpl); //PUB.PrintL.Write(zpl);
if (prn == false)
if (prn.result == false)
{
PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTL, eNextStep.ERROR);
return false;
@@ -127,10 +127,9 @@ namespace Project
{
var prn = Printer.Print(zpl);
//PUB.PrintSend(false, zpl); //PUB.PrintR.Write(zpl);
if (prn == false)
if (prn.result == false)
{
PUB.log.AddE(prn.errmessage);
PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTR, eNextStep.ERROR);
return false;
}

View File

@@ -25,7 +25,7 @@ namespace Project
//option check
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
//####################################################
//### 인터락 확인

View File

@@ -23,7 +23,7 @@ namespace Project
//option check
var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_CameraOff = PUB.OPT_CAMERA();
//var OPT_BYPASS = PUB.OPT_BYPASS(target);

View File

@@ -120,7 +120,7 @@ namespace Project
PUB.log.AddI($"Step transition({o} >> {n})");
//230313
EEMStatus.AddStatusSQL(n);
//EEMStatus.AddStatusSQL(n);
}
}

View File

@@ -110,6 +110,7 @@ namespace Project
//process barcode
BarcodeProcess();
AutoOutConveyor();
}
string lastridv1 = string.Empty;
@@ -119,7 +120,7 @@ namespace Project
void PortMagnet()
{
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET0) && DIO.GetIOOutput(eDOName.CART_MAG0) == false)
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET0) && DIO.GetIOOutput(eDOName.PORTL_MAGNET) == false)
{
var ts = DateTime.Now - VAR.TIME[(int)eVarTime.MAGNET0];
if (ts.TotalMilliseconds > AR.SETTING.Data.WaitTime_Magnet0)
@@ -128,12 +129,12 @@ namespace Project
PUB.flag.set(eVarBool.FG_WAT_MAGNET0, false, "SPS-MAGON");
}
}
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET0) == true && DIO.GetIOOutput(eDOName.CART_MAG0) == true)
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET0) == true && DIO.GetIOOutput(eDOName.PORTL_MAGNET) == true)
{
PUB.flag.set(eVarBool.FG_WAT_MAGNET0, false, "SPS-MAGOFF");
}
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET1) && DIO.GetIOOutput(eDOName.CART_MAG1) == false)
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET1) && DIO.GetIOOutput(eDOName.PORTC_MAGNET) == false)
{
var ts = DateTime.Now - VAR.TIME[(int)eVarTime.MAGNET1];
if (ts.TotalMilliseconds > AR.SETTING.Data.WaitTime_Magnet1)
@@ -142,13 +143,13 @@ namespace Project
PUB.flag.set(eVarBool.FG_WAT_MAGNET1, false, "SPS-MAGON");
}
}
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET1) == true && DIO.GetIOOutput(eDOName.CART_MAG1) == true)
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET1) == true && DIO.GetIOOutput(eDOName.PORTC_MAGNET) == true)
{
PUB.flag.set(eVarBool.FG_WAT_MAGNET1, false, "SPS-MAGOFF");
}
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET2) && DIO.GetIOOutput(eDOName.CART_MAG2) == false)
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET2) && DIO.GetIOOutput(eDOName.PORTR_MAGNET) == false)
{
var ts = DateTime.Now - VAR.TIME[(int)eVarTime.MAGNET2];
if (ts.TotalMilliseconds > AR.SETTING.Data.WaitTime_Magnet2)
@@ -157,7 +158,7 @@ namespace Project
PUB.flag.set(eVarBool.FG_WAT_MAGNET2, false, "SPS-MAGON");
}
}
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET2) == true && DIO.GetIOOutput(eDOName.CART_MAG2) == true)
if (PUB.flag.get(eVarBool.FG_WAT_MAGNET2) == true && DIO.GetIOOutput(eDOName.PORTR_MAGNET) == true)
{
PUB.flag.set(eVarBool.FG_WAT_MAGNET2, false, "SPS-MAGOFF");
}

View File

@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text.RegularExpressions;
using AR;
namespace Project
{
public partial class FMain
{
//컨베이어 배출신호를 자동 해제한다.(지정시간-초)
DateTime AutoConvOutTimeL = new DateTime(1982, 11, 23);
DateTime AutoConvOutTimeR = new DateTime(1982, 11, 23);
void AutoOutConveyor()
{
//동작중에만 사용한다
if (PUB.sm.Step != eSMStep.RUN) return;
//컨베이어 사용시에만.
if (VAR.BOOL[eVarBool.Use_Conveyor] == false) return;
//모델정보 필수
if (PUB.Result.vModel == null || PUB.Result.isSetvModel == false) return;
//자동 해제 시간확인 (0=비활성)
var AutoReleaseSecond = PUB.Result.vModel.AutoOutConveyor;
if (AutoReleaseSecond < 1) return;
//현재 모델의 사용여부 확인 (UI상단에서 버튼으로 클릭가능하다)
if (PUB.Result.AutoReelOut == false) return;
//외부신호 대기중일때만 사용
if (PUB.iLockCVL.get((int)eILockCV.EXTBUSY) && DIO.GetIOInput(eDIName.L_CONV4))
{
if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] == false)
{
if (AutoConvOutTimeL.Year == 1982) AutoConvOutTimeL = DateTime.Now;
var ts = DateTime.Now - AutoConvOutTimeL;
if (ts.TotalSeconds > AutoReleaseSecond)
{
PUB.log.AddI($"Auto Conveyor(L) Output - On");
VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] = true;
AutoConvOutTimeL = DateTime.Now;
}
}
}
else if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] == true)
{
var ts = DateTime.Now - AutoConvOutTimeL;
if (ts.TotalSeconds > SETTING.Data.Timeout_AutoOutConvSignal)
{
PUB.log.Add($"Auto Conveyor(L) Output - Off");
VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] = false;
AutoConvOutTimeL = new DateTime(1982, 11, 23);
}
}
//외부신호 대기중일때만 사용
if (PUB.iLockCVR.get((int)eILockCV.EXTBUSY) && DIO.GetIOInput(eDIName.R_CONV4))
{
if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] == false)
{
if (AutoConvOutTimeR.Year == 1982) AutoConvOutTimeR = DateTime.Now;
var ts = DateTime.Now - AutoConvOutTimeR;
if (ts.TotalSeconds > AutoReleaseSecond)
{
PUB.log.AddI($"Auto Conveyor(R) Output - On");
VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] = true;
AutoConvOutTimeR = DateTime.Now;
}
}
}
else if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] == true)
{
var ts = DateTime.Now - AutoConvOutTimeR;
if (ts.TotalSeconds > SETTING.Data.Timeout_AutoOutConvSignal)
{
PUB.log.Add($"Auto Conveyor(R) Output - Off");
VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] = false;
AutoConvOutTimeR = new DateTime(1982, 11, 23);
}
}
}
}
}

View File

@@ -19,6 +19,7 @@ namespace Project
//var patterns = PUB.Result.BCDPattern;
IgnoreBarcode = false;
findregex = false;
if (barcodeSymbol == "6") barcodeSymbol = "11"; //250930
//get : same symbol data
List<Class.RegexPattern> pats;
@@ -38,11 +39,7 @@ namespace Project
else patsEx = patternsEx.Where(t => t.IsEnable == true).OrderBy(t => t.Seq).ToList();
}
if (pats.Any() == false)
{
PUB.log.AddAT($"No registered pattern(SYM={barcodeSymbol})");
return new Tuple<int, List<string>>(0, new List<string>());
}
//모델정보의 허용 심볼인지 확인한다 221017
var vm = PUB.Result.vModel;
@@ -50,24 +47,31 @@ namespace Project
{
if (vm.BCD_DM == false && barcodeSymbol == "2")
{
PUB.log.AddAT($"Inactive in model(DM):{bcd}");
PUB.log.AddAT($"Inactive in model Symbol Setting(DM):{bcd}");
IgnoreBarcode = true;
return new Tuple<int, List<string>>(0, new List<string>());
}
else if (vm.BCD_1D == false && (barcodeSymbol == "6" || barcodeSymbol == "11"))
{
PUB.log.AddAT($"Inactive in model(1D):{bcd}");
PUB.log.AddAT($"Inactive in model Symbol Setting(1D):{bcd}");
IgnoreBarcode = true;
return new Tuple<int, List<string>>(0, new List<string>());
}
else if (vm.BCD_QR == false && (barcodeSymbol == "1"))
{
PUB.log.AddAT($"Inactive in model(QR):{bcd}");
PUB.log.AddAT($"Inactive in model Symbol Setting(QR):{bcd}");
IgnoreBarcode = true;
return new Tuple<int, List<string>>(0, new List<string>());
}
}
//check barcode pattern
if (pats.Any() == false)
{
PUB.log.AddAT($"No registered pattern(SYM={barcodeSymbol}) Model:{vm.Title}");
return new Tuple<int, List<string>>(0, new List<string>());
}
//이 바코드가 무시바코드에 있는지 먼저 검사한다 220718
foreach (var pt in patsEx)
{
@@ -78,7 +82,7 @@ namespace Project
var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10));
if (regx.IsMatch(bcd))
{
PUB.log.Add($"Ignore barcode:{bcd},PAT:{pt.Pattern},SYM:{pt.Symbol}");
PUB.log.AddAT($"Ignore barcode:{bcd},PAT:{pt.Pattern},SYM:{pt.Symbol}");
IgnoreBarcode = true;
break;
}
@@ -89,6 +93,66 @@ namespace Project
}
//동작중에 들어오는 바코드의 자동처리코드 추가 250926
if (PUB.sm.Step == eSMStep.RUN || PUB.sm.Step == eSMStep.PAUSE || PUB.sm.Step == eSMStep.WAITSTART)
{
var OPT_PrinterOff = VAR.BOOL[eVarBool.Opt_DisablePrinter];
var OPT_CameraOff = PUB.OPT_CAMERA();
var OPT_BYPASS = PUB.OPT_BYPASS();
if (OPT_BYPASS == false)
{
//기본 벤더이름
if (PUB.Result.vModel.Def_Vname.isEmpty() == false)
{
if (vdata.VNAME.Equals(PUB.Result.vModel.Def_Vname) == false)
{
vdata.VNAME = PUB.Result.vModel.Def_Vname;
vdata.VNAME_Trust = true;
PUB.log.Add($"Defaul V.Name Set to {PUB.Result.vModel.Def_Vname}");
}
}
//기본 MFG
if (PUB.Result.vModel.Def_MFG.isEmpty() == false)
{
if (vdata.MFGDATE.Equals(PUB.Result.vModel.Def_MFG) == false)
{
vdata.MFGDATE = PUB.Result.vModel.Def_MFG;
vdata.MFGDATE_Trust = true;
PUB.log.Add($"Defaul MFGDATE Set to {PUB.Result.vModel.Def_MFG}");
}
}
//파트넘버무시
if (PUB.Result.vModel.IgnorePartNo)
{
vdata.PARTNO_Trust = true;
}
//배치무시
if (PUB.Result.vModel.IgnoreBatch)
{
}
//프린트를 하지 않는 경우에는 프린트 위치를 자동으로 처리한다.
if (OPT_PrinterOff == true)
{
vdata.PrintPositionData = "0";
vdata.PrintPositionCheck = true;
}
}
else
{
if (vdata.VNAME_Trust == false)
{
vdata.VNAME = "BYPASS";
vdata.VNAME_Trust = true;
}
}
}
var ValueApplyCount = 0;
ValueApplyCount = 0;
@@ -99,44 +163,52 @@ namespace Project
//skip disable item
if (pt.IsEnable == false) continue;
var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10));
if (regx.IsMatch(bcd))
var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 5));
try
{
findregex = true;
//find data
var matchs = regx.Matches(bcd);
foreach (System.Text.RegularExpressions.Match mat in matchs)
if (regx.IsMatch(bcd))
{
if (vdata == null) ValueApplyCount += 1;
else
findregex = true;
//find data
var matchs = regx.Matches(bcd);
foreach (System.Text.RegularExpressions.Match mat in matchs)
{
foreach (var matchdata in pt.Groups)
if (vdata == null) ValueApplyCount += 1;
else
{
if (matchdata.GroupNo <= mat.Groups.Count)
foreach (var matchdata in pt.Groups)
{
var data = mat.Groups[matchdata.GroupNo];
if (PUB.SetBCDValue(vdata, matchdata.TargetPos, data.Value, pt.IsTrust))
ValueApplyCount += 1;
if (matchdata.GroupNo <= mat.Groups.Count)
{
var data = mat.Groups[matchdata.GroupNo];
if (PUB.SetBCDValue(vdata, matchdata.TargetPos, data.Value, pt.IsTrust))
ValueApplyCount += 1;
}
}
}
}
}
if (vdata != null && pt.IsAmkStd)// && bcdObj.barcodeSymbol == "1")
if (vdata != null && pt.IsAmkStd)// && bcdObj.barcodeSymbol == "1")
{
vdata.QRInputRaw = bcd;
}
if (vdata != null)
PUB.log.AddI($"[{pt.Description}]=>{bcd}");
list.Add(pt.Customer + "|" + pt.Description);
}
else
{
vdata.QRInputRaw = bcd;
//PUB.log.AddAT($"(X)Match ({pt.Pattern}) Data={bcd}");
}
if (vdata != null)
PUB.log.AddI($"[{pt.Description}]=>{bcd}");
list.Add(pt.Customer + "|" + pt.Description);
}
else
catch (Exception ex)
{
//PUB.log.AddAT($"(X)Match ({pt.Pattern}) Data={bcd}");
PUB.log.AddE($"BarcodeRegEx Error : {ex.Message}");
}
}
return new Tuple<int, List<string>>(ValueApplyCount, list);
}
@@ -146,9 +218,6 @@ namespace Project
/// </summary>
void BarcodeProcess()
{
//coffee
//get regexpress patterns
var patterns = PUB.Result.BCDPattern;
var itemC = PUB.Result.ItemDataC;
var vdata = itemC.VisionData;
@@ -156,7 +225,6 @@ namespace Project
if (vdata.Confirm) return;
var vm = PUB.Result.vModel;
//바코드목록에서 정규식값으로 각 필드값을 기록한다.
lock (vdata.barcodelist)
{
foreach (var item in vdata.barcodelist)
@@ -168,17 +236,31 @@ namespace Project
//already checked
if (bcdObj.RegExConfirm) continue;
var ValueApplyCount = BarcodeRegExProcess(PUB.Result.BCDPattern, PUB.Result.BCDIgnorePattern, vdata, bcdObj.barcodeSymbol, bcd, out bool IgnoreBcd, out bool findregex);
bcdObj.Ignore = IgnoreBcd;
lock (PUB.Result.BCDPatternLock)
{
var ValueApplyCount = BarcodeRegExProcess(PUB.Result.BCDPattern, PUB.Result.BCDIgnorePattern, vdata, bcdObj.barcodeSymbol, bcd, out bool IgnoreBcd, out bool findregex);
bcdObj.Ignore = IgnoreBcd;
//기타바코드 무시기능 적용 221018
if (vm != null && vm.IgnoreOtherBarcode == true && findregex == false)
bcdObj.Ignore = true;
bcdObj.RefExApply = (ValueApplyCount?.Item1 ?? 0);
bcdObj.RegExConfirm = true;
}
//기타바코드 무시기능 적용 221018
if (bcdObj.Ignore == false && vm != null && vm.IgnoreOtherBarcode == true && findregex == false)
bcdObj.Ignore = true;
bcdObj.RefExApply = (ValueApplyCount?.Item1 ?? 0) > 0;
bcdObj.RegExConfirm = true;
}
}
//all process sequence
if (BCDProcess_ALL(itemC, "SPS", PUB.sm.Step == eSMStep.RUN) != EResultKeyence.Nothing)
{
//nothing : multisid condition
}
}
}
}

View File

@@ -6,79 +6,81 @@ using System.Text.RegularExpressions;
namespace Project
{
public partial class FMain
{
bool RecvQRProcess(List<string> qrdatas, eWorkPort vIdx)
{
//데이터가없으면 처리하지 않는다.
if (qrdatas == null || qrdatas.Count < 1) return false;
public partial class FMain
{
bool RecvQRProcess(List<string> qrdatas, eWorkPort vIdx)
{
//데이터가없으면 처리하지 않는다.
if (qrdatas == null || qrdatas.Count < 1) return false;
bool FindData = false;
var idata = vIdx == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR;
bool FindData = false;
var idata = vIdx == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR;
//표준바코드라면 그 값을 표시해준다
var patterns = PUB.Result.BCDPattern;
//표준바코드라면 그 값을 표시해준다
lock (PUB.Result.BCDPatternLock)
{
var patterns = PUB.Result.BCDPattern;
foreach (var datas in qrdatas)
{
//원본자료를 체크한다
if (datas.Equals(idata.VisionData.PrintQRData))
{
//인쇄한 자료와 동일한 자료이다
FindData = true;
}
foreach (var datas in qrdatas)
{
//원본자료를 체크한다
if (datas.Equals(idata.VisionData.PrintQRData))
{
//인쇄한 자료와 동일한 자료이다
FindData = true;
}
//표준 바코드 형태만 취한다
var pats = patterns.Where(t => t.IsAmkStd && t.IsEnable).OrderBy(t => t.Seq).ToList();
if (pats.Any())
{
//패턴을 확인하여 값을 표시해준다
//var ValueApplyCount = 0;
foreach (var pt in pats)
{
var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10));
if (regx.IsMatch(datas)) //패턴이 일치하다면 이것만 사용한다
{
//find data
var matchs = regx.Matches(datas);
foreach (System.Text.RegularExpressions.Match mat in matchs)
{
foreach (var matchdata in pt.Groups)
{
if (matchdata.GroupNo <= mat.Groups.Count)
{
var data = mat.Groups[matchdata.GroupNo];
switch (matchdata.TargetPos.ToUpper())
{
case "SID":
idata.VisionData.SID2 = data.Value;
break;
case "RID":
idata.VisionData.RID2 = data.Value;
break;
case "VLOT":
idata.VisionData.VLOT2 = data.Value;
break;
case "VNAME":
idata.VisionData.VNAME2 = data.Value;
break;
case "MFG":
idata.VisionData.MFGDATE2 = data.Value;
break;
case "QTY":
idata.VisionData.QTY2 = data.Value;
break;
case "PART":
idata.VisionData.PARTNO2 = data.Value;
break;
}
}
}
}
break;
}
}
}
//표준 바코드 형태만 취한다
var pats = patterns.Where(t => t.IsAmkStd && t.IsEnable).OrderBy(t => t.Seq).ToList();
if (pats.Any())
{
//패턴을 확인하여 값을 표시해준다
//var ValueApplyCount = 0;
foreach (var pt in pats)
{
var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10));
if (regx.IsMatch(datas)) //패턴이 일치하다면 이것만 사용한다
{
//find data
var matchs = regx.Matches(datas);
foreach (System.Text.RegularExpressions.Match mat in matchs)
{
foreach (var matchdata in pt.Groups)
{
if (matchdata.GroupNo <= mat.Groups.Count)
{
var data = mat.Groups[matchdata.GroupNo];
switch (matchdata.TargetPos.ToUpper())
{
case "SID":
idata.VisionData.SID2 = data.Value;
break;
case "RID":
idata.VisionData.RID2 = data.Value;
break;
case "VLOT":
idata.VisionData.VLOT2 = data.Value;
break;
case "VNAME":
idata.VisionData.VNAME2 = data.Value;
break;
case "MFG":
idata.VisionData.MFGDATE2 = data.Value;
break;
case "QTY":
idata.VisionData.QTY2 = data.Value;
break;
case "PART":
idata.VisionData.PARTNO2 = data.Value;
break;
}
}
}
}
break;
}
}
}
@@ -87,63 +89,66 @@ namespace Project
//var bcdData = new StdLabelPrint.CAmkorSTDBarcode(datas);
//PUB.Result.ItemData[vIdx].VisionData.QTY2 = bcdData.QTY.ToString();
//PUB.Result.ItemData[vIdx].VisionData.RID2 = bcdData.RID;
//PUB.Result.ItemData[vIdx].VisionData.SID2 = bcdData.SID;
//PUB.Result.ItemData[vIdx].VisionData.VLOT2 = bcdData.VLOT;
//PUB.Result.ItemData[vIdx].VisionData.VNAME2 = bcdData.VENDERNAME;
//PUB.Result.ItemData[vIdx].VisionData.MFGDATE2 = bcdData.MFGDate;//.ToString("yyyyMMdd");
//PUB.Result.ItemData[vIdx].VisionData.PARTNO2 = bcdData.PARTNO;
//PUB.Result.ItemData[vIdx].VisionData.Ready = true;
////Pub.Result.ItemData[vIdx].VisionData.ETime = DateTime.Now;
////Pub.Result.ItemData[vIdx].VisionData.Angle = 5;
//PUB.Result.ItemData[vIdx].VisionData.Complete = true;
//PUB.log.Add("BARCODE", $"{vIdx}바코드 읽기 성공 ID:{bcdData.RID},QTY:{bcdData.QTY}");
//var bcdData = new StdLabelPrint.CAmkorSTDBarcode(datas);
//PUB.Result.ItemData[vIdx].VisionData.QTY2 = bcdData.QTY.ToString();
//PUB.Result.ItemData[vIdx].VisionData.RID2 = bcdData.RID;
//PUB.Result.ItemData[vIdx].VisionData.SID2 = bcdData.SID;
//PUB.Result.ItemData[vIdx].VisionData.VLOT2 = bcdData.VLOT;
//PUB.Result.ItemData[vIdx].VisionData.VNAME2 = bcdData.VENDERNAME;
//PUB.Result.ItemData[vIdx].VisionData.MFGDATE2 = bcdData.MFGDate;//.ToString("yyyyMMdd");
//PUB.Result.ItemData[vIdx].VisionData.PARTNO2 = bcdData.PARTNO;
//PUB.Result.ItemData[vIdx].VisionData.Ready = true;
////Pub.Result.ItemData[vIdx].VisionData.ETime = DateTime.Now;
////Pub.Result.ItemData[vIdx].VisionData.Angle = 5;
//PUB.Result.ItemData[vIdx].VisionData.Complete = true;
//PUB.log.Add("BARCODE", $"{vIdx}바코드 읽기 성공 ID:{bcdData.RID},QTY:{bcdData.QTY}");
////데이터를 읽었으며, 검증기능이 켜져있다면 검증을한다
//if (FindData) break;
}
////데이터를 읽었으며, 검증기능이 켜져있다면 검증을한다
//if (FindData) break;
}
//자료는 있었지만 바코드검증이 실패된 경우이다
//타임아웃까지 기다리지 않고 바로 오류처리를 한다.
if (FindData == true)
{
//데이터를 찾았다면 완료처리를 해준다
idata.VisionData.Complete = true;
//PUB.Result.ItemData[vIdx].VisionData.Complete = true;
return true;
}
return false;
//else
//{
// var item = Pub.Result.ItemData[vIdx];
// var tsGrab = DateTime.Now - Pub.GetVarTime(VAR_LIVEVIEW);
// var timeoutVision = vIdx == 1 ? COMM.SETTING.Data.Timeout_VisionProcessL : COMM.SETTING.Data.Timeout_VisionProcessU;
// if (tsGrab.TotalMilliseconds >= timeoutVision)
// {
// //다음 바코드가 있다면 추가 진행을 위해서 남겨준다
// _SM_SAVEIMAGE(vIdx, DateTime.Now, "Images(QRValid)");
}
// WS_Send((idx == 0 ? 0 : 1), Pub.wsL, Pub.Result.ItemData[idx].guid, "OFF");
//자료는 있었지만 바코드검증이 실패된 경우이다
//타임아웃까지 기다리지 않고 바로 오류처리를 한다.
if (FindData == true)
{
//데이터를 찾았다면 완료처리를 해준다
idata.VisionData.Complete = true;
//PUB.Result.ItemData[vIdx].VisionData.Complete = true;
return true;
}
return false;
//else
//{
// var item = Pub.Result.ItemData[vIdx];
// var tsGrab = DateTime.Now - Pub.GetVarTime(VAR_LIVEVIEW);
// var timeoutVision = vIdx == 1 ? COMM.SETTING.Data.Timeout_VisionProcessL : COMM.SETTING.Data.Timeout_VisionProcessU;
// if (tsGrab.TotalMilliseconds >= timeoutVision)
// {
// //다음 바코드가 있다면 추가 진행을 위해서 남겨준다
// _SM_SAVEIMAGE(vIdx, DateTime.Now, "Images(QRValid)");
// var barcodepos = vIdx == 0 ? "LEFT" : "RIGHT";
// Pub.log.AddE("(" + barcodepos + ")바코드를 검증했지만 일치하지 않습니다");
// Pub.Result.SetResultMessage(eResult.OPERATION, eECode.BARCODEVALIDERR, eNextStep.pause,
// vIdx, Pub.Result.ItemData[vIdx].VisionData.RID, Pub.Result.ItemData[vIdx].VisionData.RID2,
// Pub.Result.ItemData[vIdx].VisionData.QTY, Pub.Result.ItemData[vIdx].VisionData.QTY2,
// Pub.Result.ItemData[vIdx].VisionData.SID, Pub.Result.ItemData[vIdx].VisionData.SID2,
// Pub.Result.ItemData[vIdx].VisionData.MFGDATE, Pub.Result.ItemData[vIdx].VisionData.MFGDATE2,
// barcodepos);
// return;
// }
//}
}
// WS_Send((idx == 0 ? 0 : 1), Pub.wsL, Pub.Result.ItemData[idx].guid, "OFF");
}
// var barcodepos = vIdx == 0 ? "LEFT" : "RIGHT";
// Pub.log.AddE("(" + barcodepos + ")바코드를 검증했지만 일치하지 않습니다");
// Pub.Result.SetResultMessage(eResult.OPERATION, eECode.BARCODEVALIDERR, eNextStep.pause,
// vIdx, Pub.Result.ItemData[vIdx].VisionData.RID, Pub.Result.ItemData[vIdx].VisionData.RID2,
// Pub.Result.ItemData[vIdx].VisionData.QTY, Pub.Result.ItemData[vIdx].VisionData.QTY2,
// Pub.Result.ItemData[vIdx].VisionData.SID, Pub.Result.ItemData[vIdx].VisionData.SID2,
// Pub.Result.ItemData[vIdx].VisionData.MFGDATE, Pub.Result.ItemData[vIdx].VisionData.MFGDATE2,
// barcodepos);
// return;
// }
//}
}
}
}

View File

@@ -95,7 +95,7 @@ namespace Project
//
if (SETTING.User.LastModelV != "") PUB.SelectModelV(SETTING.User.LastModelV, false);
var motionmodel = SETTING.User.LastModelM;
if (motionmodel.isEmpty()) motionmodel = PUB.Result.vModel.Motion;
if (motionmodel.isEmpty()) motionmodel = PUB.Result.vModel.Motion ?? string.Empty;
if (motionmodel.ToUpper().StartsWith("CONV")) PUB.flag.set(eVarBool.Use_Conveyor, true, "load");
else PUB.flag.set(eVarBool.Use_Conveyor, false, "load");
PUB.SelectModelM(motionmodel, false);

View File

@@ -223,10 +223,10 @@ namespace Project
//신규로 추가된 컨베이어 센서이다
(CVMode == false || DIO.GetIOInput(eDIName.L_CONV1) == false) &&
(CVMode == false || DIO.GetIOInput(eDIName.L_CONV3) == false) &&
// (CVMode == false || DIO.GetIOInput(eDIName.L_CONV3) == false) &&
(CVMode == false || DIO.GetIOInput(eDIName.L_CONV4) == false) &&
(CVMode == false || DIO.GetIOInput(eDIName.R_CONV1) == false) &&
(CVMode == false || DIO.GetIOInput(eDIName.R_CONV3) == false) &&
// (CVMode == false || DIO.GetIOInput(eDIName.R_CONV3) == false) &&
(CVMode == false || DIO.GetIOInput(eDIName.R_CONV4) == false) &&
//작업진행중 확인

View File

@@ -427,7 +427,7 @@ namespace Project
if (pin == eDIName.PORTL_LIM_DN)
{
//좌측포트의 하단부리밋센서가 검출될경우 마그넷이 on 되어있다면 off한다.
if (DIO.GetIOInput(eDIName.PORTL_LIM_DN) == true && DIO.GetIOOutput(eDOName.CART_MAG0) == true)
if (DIO.GetIOInput(eDIName.PORTL_LIM_DN) == true && DIO.GetIOOutput(eDOName.PORTL_MAGNET) == true)
{
DIO.SetPortMagnet(0, false);
PUB.log.Add("Left port magnet OFF");
@@ -436,7 +436,7 @@ namespace Project
else if (pin == eDIName.PORTC_LIM_DN)
{
//좌측포트의 하단부리밋센서가 검출될경우 마그넷이 on 되어있다면 off한다.
if (DIO.GetIOInput(eDIName.PORTC_LIM_DN) == true && DIO.GetIOOutput(eDOName.CART_MAG1) == true)
if (DIO.GetIOInput(eDIName.PORTC_LIM_DN) == true && DIO.GetIOOutput(eDOName.PORTC_MAGNET) == true)
{
DIO.SetPortMagnet(1, false);
PUB.log.Add("Center port magnet OFF");
@@ -450,38 +450,12 @@ namespace Project
else if (pin == eDIName.PORTR_LIM_DN)
{
//좌측포트의 하단부리밋센서가 검출될경우 마그넷이 on 되어있다면 off한다.
if (DIO.GetIOInput(eDIName.PORTR_LIM_DN) == true && DIO.GetIOOutput(eDOName.CART_MAG2) == true)
if (DIO.GetIOInput(eDIName.PORTR_LIM_DN) == true && DIO.GetIOOutput(eDOName.PORTR_MAGNET) == true)
{
DIO.SetPortMagnet(2, false);
PUB.log.Add("Right port magnet OFF");
}
}
else if (pin == eDIName.L_CONV3)
{
VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now;
if (value)
{
if(VAR.I32[eVarInt32.LEFT_ITEM_COUNT] > 0)
{
VAR.I32[eVarInt32.LEFT_ITEM_COUNT] -= 1;//= false; //해제
PUB.log.AddAT($"Left buffer quantity decrease");
}
}
}
else if (pin == eDIName.R_CONV3)
{
VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now;
if (value)
{
if (VAR.I32[eVarInt32.RIGT_ITEM_COUNT] > 0)
{
VAR.I32[eVarInt32.RIGT_ITEM_COUNT] -= 1;//= false; //해제
PUB.log.AddAT($"Right buffer quantity decrease");
}
}
}
else if (pin == eDIName.R_CONV4 || pin == eDIName.L_CONV1 || pin == eDIName.L_CONV4 || pin == eDIName.R_CONV1)
{
VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now;

View File

@@ -42,8 +42,8 @@ namespace Project
PUB.iLock[(int)eAxis.PZ_PICK].set((int)eILock.XMOVE, PUB.mot.IsMotion((int)eAxis.PX_PICK), "COMMINTERLOCK");
//외부컨베어 신호 인터락설정 (출구쪽센서가 인식되지 않았다면 멈추지 않는다)
var cvLBusy = (DIO.GetIOInput(eDIName.L_CONV4) && DIO.GetIOInput(eDIName.L_EXT_READY) == false);
var cvRBusy = (DIO.GetIOInput(eDIName.R_CONV4) && DIO.GetIOInput(eDIName.R_EXT_READY) == false);
var cvLBusy = DIO.GetIOInput(eDIName.L_CONV4) && DIO.GetIOInput(eDIName.L_EXT_READY) == false && VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] == false;
var cvRBusy = DIO.GetIOInput(eDIName.R_CONV4) && DIO.GetIOInput(eDIName.R_EXT_READY) == false && VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] == false;
PUB.iLockCVL.set((int)eILockCV.EXTBUSY, cvLBusy, "COMMINTERLOCK");
PUB.iLockCVR.set((int)eILockCV.EXTBUSY, cvRBusy, "COMMINTERLOCK");

View File

@@ -189,7 +189,6 @@
<Compile Include="Class\CHistorySIDRef.cs" />
<Compile Include="Class\Command.cs" />
<Compile Include="Class\EEMStatus.cs" />
<Compile Include="Class\Enum_Mot.cs" />
<Compile Include="Class\Enum_MotPosition.cs" />
<Compile Include="Class\FTP\EventArgs.cs" />
<Compile Include="Class\FTP\FTPClient.cs" />
@@ -270,12 +269,6 @@
<Compile Include="Dialog\fNewSID.Designer.cs">
<DependentUpon>fNewSID.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fswPLC.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fswPLC.Designer.cs">
<DependentUpon>fswPLC.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fPickerMove.cs">
<SubType>Form</SubType>
</Compile>
@@ -409,6 +402,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>dsWMS.xsd</DependentUpon>
</Compile>
<Compile Include="Manager\DatabaseManager.cs" />
<Compile Include="Manager\DBHelper.cs" />
<Compile Include="RunCode\StateMachine\_SM_RUN.cs">
<SubType>Form</SubType>
@@ -467,6 +461,9 @@
<Compile Include="RunCode\RunSequence\2_RUN_ROOT_SEQUENCE.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="RunCode\StateMachine\_SPS_AutoOutConveyor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="RunCode\StateMachine\_SPS_RecvQRProcess.cs">
<SubType>Form</SubType>
</Compile>
@@ -634,6 +631,9 @@
<Compile Include="UIControl\CtlTowerLamp.Designer.cs">
<DependentUpon>CtlTowerLamp.cs</DependentUpon>
</Compile>
<Compile Include="Util\BarcodeDataProcessing.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Util\Util_Vision.cs" />
<Compile Include="Validation\Mot_Move.cs">
<SubType>Form</SubType>
@@ -671,7 +671,6 @@
<Compile Include="RunCode\Display\DisplayTextHandler.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Util\Util.cs" />
<Compile Include="Util\Util_DO.cs" />
<Compile Include="Util\Util_Mot.cs" />
<Compile Include="RunCode\Device\_Keyence.cs">
@@ -704,9 +703,6 @@
<EmbeddedResource Include="Dialog\fNewSID.resx">
<DependentUpon>fNewSID.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fswPLC.resx">
<DependentUpon>fswPLC.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fPickerMove.resx">
<DependentUpon>fPickerMove.cs</DependentUpon>
</EmbeddedResource>

View File

@@ -0,0 +1,644 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using AR;
using Project.Class;
namespace Project
{
public partial class FMain
{
EResultKeyence BCDProcess_ALL(Class.JobData itemC, string Src, bool CompleteCheck)
{
var mainJob = Src.Equals("SPS") == false;
//assign customer code - fixed data
if (itemC.VisionData.CUSTCODE.isEmpty() && VAR.STR[eVarString.JOB_CUSTOMER_CODE].isEmpty() == false)
{
itemC.VisionData.CUSTCODE = VAR.STR[eVarString.JOB_CUSTOMER_CODE];
PUB.log.Add($"Cutomer Code Fixed Value : {itemC.VisionData.CUSTCODE}");
}
//커스터머 이름 확인
if (mainJob && PUB.OPT_BYPASS() == false)
BCDProcess_GetCustomerName(itemC);
//Ignore Value
BCDProcess_IgnoreValue(itemC);
//기본 벤더이름
BCDProcess_DefVenderName(itemC);
//기본 MFG
BCDProcess_DefMFGDate(itemC);
//바코드가 변경된 경우이다, 자동채우기 기능이 있다면 사용한다
bool NewBarcodeUpdated = false;
//[WMS] SID정보테이블에서 정보 추출(프린트정보는 없음)
//[WMS] 에서 중복검색되면 팝업을 해야하므로 이것을 먼저 처리한다.
if (VAR.BOOL[eVarBool.Opt_ApplyWMSInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true))
{
var rlt_FindWMD = BCDProcess_FindWMSInfo(itemC);
if (rlt_FindWMD.NewBarcodeUpdated) NewBarcodeUpdated = true;
if (rlt_FindWMD.retval == EResultKeyence.MultiSID) return rlt_FindWMD.retval;
}
//SID정보테이블에서 정보 추출
if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true))
{
if (BCDProcess_FindSIDInfo(itemC) == true) NewBarcodeUpdated = true;
}
//시드변환정보에서 정보 추출
if (VAR.BOOL[eVarBool.Opt_ApplySIDConv] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true))
{
if (BCDProcess_FindSIDConv(itemC) == true) NewBarcodeUpdated = true;
}
//기존 작업에서 데이터를 찾아서 쓴다
if (VAR.BOOL[eVarBool.Opt_ApplyJobInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true))
{
if (BCDProcess_FindJobData(itemC) == true) NewBarcodeUpdated = true;
}
//릴ID 신규발행
if (PUB.OPT_BYPASS() == false && VAR.BOOL[eVarBool.Opt_NewReelID])
BCDProcess_MakeReelID(itemC);
//SiD CONVERT
if (PUB.OPT_BYPASS() == false &&
VAR.BOOL[eVarBool.Opt_SIDConvert] &&
PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO) == false &&
VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] == false)
{
//원본시드(sid0)가 비어있는데 sid과 확정되었다면 변환작업을 진행한다
BCDProcess_SIDConvert(itemC);
}
//Print Position
BCDProcess_BCDPrint(itemC);
//해당 바코드작업이 완료되었는지 확인한다. 신규 바코드값이 업데이트되면 한번더 동작하도록 한다
if (itemC.VisionData.BarcodeTouched == true && NewBarcodeUpdated == false)
{
itemC.VisionData.BarcodeTouched = false;
}
bool BatchValueOK = false;
if (PUB.Result.vModel.IgnoreBatch) BatchValueOK = true;
else BatchValueOK = itemC.VisionData.BATCH.isEmpty() == false;
bool partnoValueOK = false;
if (PUB.Result.vModel.IgnorePartNo) partnoValueOK = true;
else partnoValueOK = itemC.VisionData.PARTNO.isEmpty() == false;
//수량임의 입력의 경우
bool vQtyOK = false;
if (VAR.BOOL[eVarBool.Opt_UserQtyRQ])
{
if (itemC.VisionData.QTYRQ) vQtyOK = true; ////RQ의 값이 들어있으면 성공
else vQtyOK = false; //수량임의모드인데 RQ값이 들어있지않으면 자동진행하지 않는다
}
else
{
//자동에서는 수량값이 들어있으면 바로 넘어가게한다.
vQtyOK = itemC.VisionData.QTY.isEmpty() == false;
}
//데이터확정 및 완료처리
if (CompleteCheck)
{
if (itemC.VisionData.Confirm)
{
//이미 완료된 데이터
if (mainJob)
{
if (itemC.VisionData.ConfirmAuto)
PUB.log.AddI($"Proceeding due to data confirmation completion (automatic)");
else if (itemC.VisionData.ConfirmUser)
PUB.log.AddI($"Proceeding due to data confirmation completion (manual)");
else
PUB.log.AddI($"Proceeding due to data confirmation completion (BYPASS)");
}
}
else if (vQtyOK &&
(itemC.VisionData.VNAME.isEmpty() == false) &&
itemC.VisionData.VLOT.isEmpty() == false &&
itemC.VisionData.SID.Length == 9 &&
itemC.VisionData.MFGDATE.isEmpty() == false &&
partnoValueOK &&
BatchValueOK &&
itemC.VisionData.RID.isEmpty() == false)
{
//모든값이 입력되어 있다면 조건 체크후 진행할 수 있도록 한다
//2206211400
CheckDataComplte(itemC, Src, mainJob);
return EResultKeyence.Wait;
}
else
{
//아직데이터가 완료되지 않았다면
//대기시간이 지나면 사용자 확인창을 띄운다
return EResultKeyence.Wait;
}
}
return EResultKeyence.Nothing;
}
//커스터머 이름 확인
void BCDProcess_GetCustomerName(Class.JobData itemC)
{
if (itemC.VisionData.CUSTNAME.isEmpty() && itemC.VisionData.CUSTCODE.isEmpty() == false)
{
var qta = new DataSet1TableAdapters.QueriesTableAdapter();
var custname = qta.GetCustName(itemC.VisionData.CUSTCODE);
if ((custname ?? string.Empty).isEmpty() == false)
{
PUB.log.Add($"New CustName => {custname}");
itemC.VisionData.CUSTNAME = custname;
}
}
}
bool BCDProcess_BCDPrint(Class.JobData itemC)
{
var OPT_BYPASS = PUB.OPT_BYPASS();
bool NeedConfirm = false;
if (itemC.VisionData.PrintPositionData.isEmpty() == true || itemC.VisionData.PrintPositionCheck == false)
{
if (OPT_BYPASS)
{
//바이패스해야하는 경우라면 프린트위치를 임의로 한다
itemC.VisionData.PrintPositionData = "1";
itemC.VisionData.PrintPositionCheck = true;
PUB.log.AddI($"Print position arbitrarily set due to bypass SID ({itemC.VisionData.SID})");
}
else if (itemC.VisionData.SID.isEmpty())
{
//no sid need confirm
//PUB.log.AddAT($"Print Position Errr (No SID)");
NeedConfirm = true;
}
else
{
//기록된 현재작업의 인쇄위치 정보에서 찾는다 231005
if (PUB.Result.PrintPostionList.ContainsKey(itemC.VisionData.SID))
{
var preprnpos = PUB.Result.PrintPostionList[itemC.VisionData.SID];
itemC.VisionData.PrintPositionData = preprnpos;
itemC.VisionData.PrintPositionCheck = true;
PUB.log.AddI($"Print position found in current job info SID:{itemC.VisionData.SID}, Value={preprnpos}");
}
else if (NeedConfirm == false)
{
NeedConfirm = true;
}
}
}
return NeedConfirm;
}
void BCDProcess_IgnoreValue(Class.JobData itemC)
{
if (PUB.Result.vModel.IgnorePartNo == true && itemC.VisionData.PARTNO_Trust == false)
{
PUB.log.Add("PartNo Trust by Ignore PartNo Setting(opmodel)");
itemC.VisionData.PARTNO_Trust = true;
}
//ignore batch value
if (PUB.Result.vModel.IgnoreBatch == true)
{
}
}
//기본 벤더이름
void BCDProcess_DefVenderName(Class.JobData itemC)
{
//기본 벤더이름
var defname = PUB.Result.vModel.Def_Vname ?? string.Empty;
if (PUB.Result.isSetvModel && defname.isEmpty() == false)
{
if (itemC.VisionData.VNAME.Equals(defname) == false)
{
itemC.VisionData.VNAME = defname.Trim();
itemC.VisionData.VNAME_Trust = true;
PUB.log.Add($"Defaul V.Name Set to {defname}");
}
}
else if (PUB.OPT_BYPASS() == true)
{
if (itemC.VisionData.VNAME_Trust == false)
{
itemC.VisionData.VNAME = "BYPASS";
itemC.VisionData.VNAME_Trust = true;
}
}
}
//기본 MFG
void BCDProcess_DefMFGDate(Class.JobData itemC)
{
var defname = PUB.Result.vModel.Def_MFG ?? string.Empty;
if (PUB.Result.isSetvModel && defname.isEmpty() == false && itemC.VisionData.MFGDATE.Equals(defname) == false)
{
itemC.VisionData.MFGDATE = defname.Trim();
itemC.VisionData.MFGDATE_Trust = true;
PUB.log.Add($"Defaul MFGDATE Set to {defname}");
}
}
//[WMS] SID정보테이블에서 정보 추출(프린트정보는 없음)
//[WMS] 에서 중복검색되면 팝업을 해야하므로 이것을 먼저 처리한다.
(bool NewBarcodeUpdated, EResultKeyence retval) BCDProcess_FindWMSInfo(Class.JobData itemC)
{
Boolean Apply = true;
var vdata = itemC.VisionData;
bool NewBarcodeUpdated = false;
EResultKeyence rlt = EResultKeyence.Wait;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_WMS_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CUST_CODE");
if (VAR.BOOL[eVarBool.Opt_WMS_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PART_NO");
if (VAR.BOOL[eVarBool.Opt_WMS_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VENDOR_NM");
if (VAR.BOOL[eVarBool.Opt_WMS_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
if (VAR.BOOL[eVarBool.Opt_WMS_Apply_batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("BATCH_NO"); //220921
//where coluns
List<string> wheres = new List<string>();
if (Apply && VAR.BOOL[eVarBool.Opt_WMS_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CUST_CODE='{vdata.CUSTCODE.PadLeft(10, '0')}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_WMS_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PART_NO='{vdata.PARTNO}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_WMS_Where_SID])
{
if (VAR.BOOL[eVarBool.Opt_SIDConvert]) //if sid convert logic
{
if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
else
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
}
if (Apply && VAR.BOOL[eVarBool.Opt_WMS_Where_VLOT]) //221013
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) wheres.Add($"VENDOR_LOT = '{vdata.VLOT}'");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
var TableName = "VW_GET_MAX_QTY_VENDOR_LOT";
var whereState = " where " + string.Join(" and ", wheres);
var selectFields = string.Join(",", fields);
var SQL = $"select top 1 {selectFields} from {TableName} WITH(NOLOCK) {whereState}";
var SQLC = $"select count(*) from {TableName} WITH(NOLOCK) {whereState}";
//정보가 여러개 존재하면 선택화면으로 처리해야한다
var cntvalue = (DBHelper.ExecuteScalar(SQLC)?.ToString() ?? "0").toInt();
if (cntvalue > 1)
{
VAR.STR[eVarString.MULTISID_QUERY] = $"select {selectFields} from {TableName} WITH(NOLOCK) {whereState}";
VAR.STR[eVarString.MULTISID_FIELDS] = selectFields;
rlt = EResultKeyence.MultiSID;
}
if (PUB.Result.ItemDataC.VisionData.LastQueryStringWMS.Equals(SQL) == false) //같은 쿼리는 처리하지 않는다
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, SQLC))
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringWMS = SQL;
}
}
return (NewBarcodeUpdated, rlt);
}
//SID정보테이블에서 정보 추출
bool BCDProcess_FindSIDInfo(Class.JobData itemC)
{
Boolean Apply = true;
bool NewBarcodeUpdated = false;
var vdata = itemC.VisionData;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CustCode");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PartNo");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("PrintPosition");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VenderName");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
if (VAR.BOOL[eVarBool.Opt_SID_Apply_batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("batch"); //220921
if (VAR.BOOL[eVarBool.Opt_SID_Apply_qty] && (vdata.SID_Trust == false || vdata.QTYMAX.isEmpty())) fields.Add("qtymax"); //220921
fields.Add("attach"); //231026
//where coluns
List<string> wheres = new List<string>();
//wheres.Add($"MC='{COMM.SETTING.Data.McName}");
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CustCode='{vdata.CUSTCODE.PadLeft(10, '0')}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PartNo='{vdata.PARTNO}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_SID])
{
if (VAR.BOOL[eVarBool.Opt_SIDConvert]) //if sid convert logic
{
if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false)
wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
else
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_VLOT]) //221013
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false)
wheres.Add($"(VenderLot like '{vdata.VLOT}' or VenderLot like '%,{vdata.VLOT}' or VenderLot like '{vdata.VLOT},%' or VenderLot like '%,{vdata.VLOT},%')");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_SID_Where_MC]) //231006
{
if (AR.SETTING.Data.McName.isEmpty() == false)
wheres.Add($"attach='{AR.SETTING.Data.McName}'");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
var mcname = SETTING.Data.McName;
if (VAR.BOOL[eVarBool.Use_Conveyor]) mcname = PUB.MCCode;
var SQL = "select top 1 " + string.Join(",", fields) +
" from K4EE_Component_Reel_SID_Information WITH(NOLOCK)" +
" where mc='" + mcname + "' and " + string.Join(" and ", wheres) +
" order by wdate desc";
var SQLC = "select count(*)" +
" from K4EE_Component_Reel_SID_Information WITH(NOLOCK)" +
" where mc='" + mcname + "' and " + string.Join(" and ", wheres);
if (PUB.Result.ItemDataC.VisionData.LastQueryStringSID.Equals(SQL) == false)
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, SQLC) == true)
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringSID = SQL;
}
}
return NewBarcodeUpdated;
}
//시드변환정보에서 정보 추출
bool BCDProcess_FindSIDConv(Class.JobData itemC)
{
Boolean Apply = true;
bool NewBarcodeUpdated = false;
var vdata = itemC.VisionData;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CustCode");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PartNo");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("PrintPosition");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VenderName");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_Batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("batch"); //220921
if (VAR.BOOL[eVarBool.Opt_Conv_Apply_QtyMax] && (vdata.SID_Trust == false || vdata.QTYMAX.isEmpty())) fields.Add("qtymax"); //220921
//where coluns
List<string> wheres = new List<string>();
//wheres.Add($"MC='{COMM.SETTING.Data.McName}");
if (Apply && VAR.BOOL[eVarBool.Opt_Conv_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CustCode='{vdata.CUSTCODE.PadLeft(10, '0')}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_Conv_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PartNo='{vdata.PARTNO}'");
else Apply = false;
}
if (Apply && VAR.BOOL[eVarBool.Opt_Conv_Where_SID])
{
if (VAR.BOOL[eVarBool.Opt_SIDConvert]) //if sid convert logic
{
if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false)
wheres.Add($"SIDTo='{vdata.SID}'");
else Apply = false;
}
else
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SIDTo='{vdata.SID}'");
else Apply = false;
}
}
if (VAR.BOOL[eVarBool.Opt_Conv_Where_VLOT]) //221013
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false)
wheres.Add($"(VenderLot like '{vdata.VLOT}' or VenderLot like '%,{vdata.VLOT}' or VenderLot like '{vdata.VLOT},%' or VenderLot like '%,{vdata.VLOT},%')");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
var mcname = SETTING.Data.McName;
if (VAR.BOOL[eVarBool.Use_Conveyor]) mcname = PUB.MCCode;
var SQL = "select top 1 " + string.Join(",", fields) +
" from K4EE_Component_Reel_SID_Convert WITH(NOLOCK)" +
" where " + string.Join(" and ", wheres) +
" order by wdate desc";
var SQLC = "select count(*)" +
" from K4EE_Component_Reel_SID_Convert WITH(NOLOCK)" +
" where " + string.Join(" and ", wheres);
if (PUB.Result.ItemDataC.VisionData.LastQueryStringCNV.Equals(SQL) == false)
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, SQLC) == true)
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringCNV = SQL;
}
}
return NewBarcodeUpdated;
}
//기존 작업에서 데이터를 찾아서 쓴다
bool BCDProcess_FindJobData(Class.JobData itemC)
{
bool NewBarcodeUpdated = false;
Boolean Apply = true;
var vdata = itemC.VisionData;
//select columns
List<string> fields = new List<string>();
if (VAR.BOOL[eVarBool.Opt_Job_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CUSTCODE");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PARTNO");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("POS");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VNAME");
if (VAR.BOOL[eVarBool.Opt_Job_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID");
//where coluns
List<string> wheres = new List<string>();
if (VAR.BOOL[eVarBool.Opt_Job_Where_CustCode])
{
if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CUSTCODE='{vdata.CUSTCODE.PadLeft(10, '0')}'");
else Apply = false;
}
if (VAR.BOOL[eVarBool.Opt_Job_Where_PartNo])
{
if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PARTNO='{vdata.PARTNO}'");
else Apply = false;
}
if (VAR.BOOL[eVarBool.Opt_Job_Where_SID])
{
if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'");
else Apply = false;
}
if (VAR.BOOL[eVarBool.Opt_Job_Where_VLOT])
{
if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) wheres.Add($"VenderLot='{vdata.VLOT}'");
else Apply = false;
}
//if query data . no error
if (Apply && fields.Count > 0 && wheres.Count > 0)
{
PUB.log.Add($"DATABAES : RESULT QUERY");
var SQL = "select top 1 " + string.Join(",", fields) +
" from K4EE_Component_Reel_Result WITH(NOLOCK) " +
$" where mc = '{AR.SETTING.Data.McName}'" +
$" and prnattach = 1 and stime >= '{DateTime.Now.AddHours(-3).ToString("yyyy-MM-dd HH:mm:ss")}'" +
$" and " + string.Join(" and ", wheres) +
$" order by wdate desc";
if (PUB.Result.ItemDataC.VisionData.LastQueryStringJOB.Equals(SQL) == false)
{
if (PUB.GetSIDInfo_And_SetData(fields, ref vdata, SQL, ""))
NewBarcodeUpdated = true;
PUB.Result.ItemDataC.VisionData.LastQueryStringJOB = SQL;
}
}
return NewBarcodeUpdated;
}
void BCDProcess_SIDConvert(Class.JobData itemC)
{
var vdata = itemC.VisionData;
//원본시드(sid0)가 비어있는데 sid과 확정되었다면 변환작업을 진행한다
if (vdata.SID0.isEmpty() && vdata.SID.isEmpty() == false && vdata.SID_Trust)
{
//이 sid가 존재여부확인 후 없는 sid라면 더이상 처리하지 않는다 230510
if (PUB.Result.DTSidConvertEmptyList.Contains(vdata.SID))
{
//존재하지 않는 SID로 이미 확인되었다
}
else if (PUB.Result.DTSidConvertMultiList.Contains(vdata.SID))
{
//다중sid로 인해 처리하지 않는다
}
else
{
var newsid = PUB.SIDCovert(vdata.SID, "SPS_BarcodeProcess", out bool converr);
if (converr)
{
if (PUB.sm.Step == eSMStep.RUN)
PUB.log.AddE(newsid);
}
else
{
vdata.SID0 = vdata.SID;
vdata.SID = newsid;
}
}
}
}
//Generate Reel ID
void BCDProcess_MakeReelID(Class.JobData itemC)
{
if (itemC.VisionData.RIDNew == false && itemC.VisionData.SID.isEmpty() == false)
{
var newid = PUB.MakeNewREELID(itemC.VisionData.SID);// Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg);
if (newid.success == true)
{
//backup origin reel id
itemC.VisionData.RID0 = itemC.VisionData.RID;
//set new reel id
PUB.log.Add("new reelid bacodeprecess");
itemC.VisionData.SetRID(newid.newid, "SPS:CHKDATACOMPLETE");// = newid;
itemC.VisionData.RIDNew = true; //applied new reel id
//서버의수량업데이트기능이 켜져있다면 해당 값을 제거해준다. (다시 조회되도록 함)
if (VAR.BOOL[eVarBool.Opt_ServerQty])
{
//이미 수량업데이트된 경우이므로 복원시켜준다
if (itemC.VisionData.QTY0.isEmpty() == false)
{
PUB.log.AddAT($"릴아이디 변경으로 인해 수량을 복원합니다({itemC.VisionData.QTY}->{itemC.VisionData.QTY0})");
itemC.VisionData.QTY = itemC.VisionData.QTY0;
itemC.VisionData.QTY0 = string.Empty;
}
}
}
else
{
var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR);
if (logtime.TotalSeconds >= 3000)
{
PUB.log.AddAT($"Reel_ID 생성실패 : {newid.message}");
VAR.TIME.Update(eVarTime.LOG_NEWIDERROR);
}
}
}
}
}
}

View File

@@ -1,191 +0,0 @@
//using System;
//using System.Collections.Generic;
//using System.Data;
//using System.Diagnostics;
//using System.Drawing;
//using System.IO;
//using System.Linq;
//using System.Management;
//using System.Net;
//using System.Net.NetworkInformation;
//using System.Runtime.Serialization.Formatters.Binary;
//using System.Text;
//using System.Windows.Forms;
//namespace Project
//{
// public static partial class UTIL
// {
// //public static Boolean SendMail(string title, string body, string from, string[] tolist, string file = "")
// //{
// // //메일을 전송하고 나간다
// // Chilkat.MailMan mailman = new Chilkat.MailMan();
// // bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS");
// // if (success != true)
// // {
// // UTIL.MsgE("메일 전송이 실패되었습니다\n잠시 후 다시 시도하세요", true);
// // return false;
// // }
// // else
// // {
// // mailman.SmtpHost = "10.101.10.6";
// // mailman.SmtpPort = 25;
// // Chilkat.Email email = new Chilkat.Email();
// // email.Subject = title;
// // //email.Body = this.textBox1.Text;
// // email.SetHtmlBody(body.Replace("\r", "").Replace("\n", "<br/>"));
// // email.From = from;
// // foreach (var to in tolist)
// // email.AddTo(to.Substring(0, to.IndexOf('@')), to);
// // if (System.IO.File.Exists(file))
// // email.AddFileAttachment(file);
// // success = mailman.SendEmail(email);
// // if (success != true)
// // {
// // UTIL.MsgE("발송 실패", true);
// // return false;
// // }
// // success = mailman.CloseSmtpConnection();
// // if (success != true)
// // {
// // UTIL.MsgE("Connection to SMTP server not closed cleanly.", true);
// // return false;
// // }
// // }
// // return true;
// //}
// //public static string JobListToFile(Class.CHistoryJOB data, string jobdate, string jobseq, out int cnt)
// //{
// // cnt = 0;
// // if (string.IsNullOrEmpty(jobdate)) return string.Empty;
// // //이미저장된 목록을 가져오고 중복된것은 피한다
// // var preSavedFile = System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, "JobData", jobdate.Substring(0, 6), jobdate + "-" + jobseq + ".txt");
// // List<string> preList = new List<string>();
// // if (System.IO.File.Exists(preSavedFile)) preList.AddRange(System.IO.File.ReadAllLines(preSavedFile, System.Text.Encoding.UTF8));
// // //Temp
// // var fiName = System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, "UploadTemp", jobdate + "_" + jobseq + ".tab");
// // var fi = new System.IO.FileInfo(fiName);
// // if (fi.Directory.Exists == false) fi.Directory.Create();
// // var sb = new System.Text.StringBuilder();
// // sb.AppendLine("#Time\tSID\tRID\tRAW");
// // var oklist = data.Items.Where(t => t.VisionData.RID.isEmpty() == false).ToArray();
// // foreach (var item in oklist)
// // {
// // //기존에 전송한 목록에 없어야 한다
// // if (item.error == Class.JobData.ErrorCode.None && item.VisionData.RID.isEmpty() == false)
// // {
// // sb.AppendLine(string.Format("{0}\t{1}\t{2}\t{3}",
// // item.JobStart.ToString("yyyy-MM-dd HH:mm:sss"), item.VisionData.SID, item.VisionData.RID, item.VisionData.QROutRaw));
// // cnt += 1;
// // }
// // }
// // try
// // {
// // System.IO.File.WriteAllText(fi.FullName, sb.ToString(), System.Text.Encoding.UTF8);
// // return fi.FullName;
// // }
// // catch (Exception ex)
// // {
// // PUB.log.AddE("JobListToFile:" + ex.Message);
// // return string.Empty;
// // }
// //}
// //public static bool SendMail(string seqdate, string seqno)
// //{
// // Chilkat.MailMan mailman = new Chilkat.MailMan();
// // bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS");
// // if (success != true)
// // {
// // Debug.WriteLine(mailman.LastErrorText);
// // return false;
// // }
// // mailman.SmtpHost = "10.101.10.6";
// // mailman.SmtpPort = 25;
// // // Create a new email object
// // Chilkat.Email email = new Chilkat.Email();
// // var mailform = PUB.mailForm.FirstOrDefault();
// // if (mailform == null)
// // return false;
// // var subject = mailform.subject.Trim();
// // subject = subject.Replace("{seqdate}", seqdate);
// // subject = subject.Replace("{seqno}", seqno);
// // var buffer = System.IO.File.ReadAllText(UTIL.CurrentPath + "\\Mailform.html");
// // //시드별집계데이터생성
// // System.Text.StringBuilder sbFileSID = new StringBuilder();
// // System.Text.StringBuilder sbFileREEL = new StringBuilder();
// // sbFileSID.AppendLine(string.Format("NO,SID,작업수량,예정수량,UNIT"));
// // sbFileREEL.AppendLine(string.Format("NO,SID,REEL,QTY,TIME"));
// // // int cntrid = 1;
// // System.IO.File.WriteAllText(UTIL.CurrentPath + "\\result_sidsummary.csv", sbFileSID.ToString(), System.Text.Encoding.Default);
// // System.IO.File.WriteAllText(UTIL.CurrentPath + "\\result_reelist.csv", sbFileREEL.ToString(), System.Text.Encoding.Default);
// // //메일본문의 내용 치환
// // var contents = buffer.Trim();
// // contents = contents.Replace("{seqdate}", seqdate);
// // contents = contents.Replace("{seqno}", seqno);
// // email.Subject = subject;
// // email.SetHtmlBody(contents);
// // email.From = "ReelSorter";
// // email.AddFileAttachment(UTIL.CurrentPath + "\\result_sidsummary.csv");
// // email.AddFileAttachment(UTIL.CurrentPath + "\\result_reelist.csv");
// // System.Text.StringBuilder maillist = new StringBuilder();
// // foreach (DataSet1.MailRecipientRow r in PUB.mailList.Rows)
// // {
// // success = email.AddTo(r.Name, r.Address);
// // maillist.Append(string.Format("{0}({1})", r.Name, r.Address));
// // }
// // success = mailman.SendEmail(email);
// // if (success != true)
// // {
// // Debug.WriteLine(mailman.LastErrorText);
// // return false;
// // }
// // success = mailman.CloseSmtpConnection();
// // if (success != true)
// // {
// // Debug.WriteLine("Connection to SMTP server not closed cleanly.");
// // PUB.log.AddE("메일 발송 실패(" + maillist.ToString() + ")");
// // }
// // PUB.log.AddI("메일 발송 완료(" + maillist.ToString() + ")");
// // return true;
// //}
// }
//}

View File

@@ -385,9 +385,9 @@ namespace Project
{
if (SETTING.System.ReverseSIG_PortDetect2Up) curValue = !curValue;
}
else if (pin == eDIName.L_CONV1 || pin == eDIName.L_CONV4 || pin == eDIName.L_CONV3)
else if (pin == eDIName.L_CONV1 || pin == eDIName.L_CONV4)
curValue = !curValue;
else if (pin == eDIName.R_CONV1 || pin == eDIName.R_CONV4 || pin == eDIName.R_CONV3)
else if (pin == eDIName.R_CONV1 || pin == eDIName.R_CONV4)
curValue = !curValue;
return curValue;
}
@@ -541,9 +541,9 @@ namespace Project
if (index == 2 && AR.SETTING.Data.Enable_Magnet2 == false) return true;
}
if (index == 0) return DIO.SetOutput(eDOName.CART_MAG0, on);
else if (index == 1) return DIO.SetOutput(eDOName.CART_MAG1, on);
else return DIO.SetOutput(eDOName.CART_MAG2, on);
if (index == 0) return DIO.SetOutput(eDOName.PORTL_MAGNET, on);
else if (index == 1) return DIO.SetOutput(eDOName.PORTC_MAGNET, on);
else return DIO.SetOutput(eDOName.PORTR_MAGNET, on);
}
/// <summary>
/// CW = Up, CCW = Dn

View File

@@ -31,6 +31,17 @@
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FMain));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem();
@@ -180,17 +191,6 @@
arCtl.ListView2.Cell cell95 = new arCtl.ListView2.Cell();
arCtl.ListView2.Cell cell96 = new arCtl.ListView2.Cell();
arCtl.ListView2.ItemStyle itemStyle2 = new arCtl.ListView2.ItemStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
this.tmDisplay = new System.Windows.Forms.Timer(this.components);
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.arLabel76 = new arCtl.arLabel();
@@ -211,6 +211,30 @@
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
this.panBottom = new System.Windows.Forms.Panel();
this.arDatagridView1 = new arCtl.arDatagridView();
this.target = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.JTYPE = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.sTIMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.PTIME = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.rIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.VNAME = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dvc_loc = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.qtymax = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.MFGDATE = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.VLOT = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.PNO = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.MCN = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.PRNATTACH = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.PRNVALID = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.LOC = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.SID0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.RID0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.QTY0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ETIME = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.JGUID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.GUID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.bs = new System.Windows.Forms.BindingSource(this.components);
@@ -318,10 +342,10 @@
this.btLogViewer = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButton6 = new System.Windows.Forms.ToolStripSplitButton();
this.sWPLCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripButton10 = new System.Windows.Forms.ToolStripDropDownButton();
this.btManage = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.btAutoReelOut = new System.Windows.Forms.ToolStripButton();
this.btLightRoom = new System.Windows.Forms.ToolStripButton();
this.btManualPrint = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
@@ -348,6 +372,16 @@
this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripSeparator();
this.resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.webManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem23 = new System.Windows.Forms.ToolStripSeparator();
this.loadMemoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem27 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem29 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem31 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem32 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem33 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem34 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem35 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem36 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
this.btHistory = new System.Windows.Forms.ToolStripButton();
this.panel24 = new System.Windows.Forms.Panel();
@@ -390,30 +424,6 @@
this.panel1 = new System.Windows.Forms.Panel();
this.hmi1 = new UIControl.HMI();
this.listView21 = new arCtl.ListView2();
this.target = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.JTYPE = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.sTIMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.PTIME = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.rIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.VNAME = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dvc_loc = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.qtymax = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.MFGDATE = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.VLOT = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.PNO = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.MCN = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.PRNATTACH = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.PRNVALID = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.LOC = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.SID0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.RID0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.QTY0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ETIME = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.JGUID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.GUID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.panBottom.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).BeginInit();
this.contextMenuStrip1.SuspendLayout();
@@ -469,7 +479,7 @@
this.arLabel76.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel76.GradientRepeatBG = false;
this.arLabel76.isButton = true;
this.arLabel76.Location = new System.Drawing.Point(246, 1);
this.arLabel76.Location = new System.Drawing.Point(312, 1);
this.arLabel76.Margin = new System.Windows.Forms.Padding(0);
this.arLabel76.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel76.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
@@ -565,7 +575,7 @@
this.arLabel75.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel75.GradientRepeatBG = false;
this.arLabel75.isButton = true;
this.arLabel75.Location = new System.Drawing.Point(244, 1);
this.arLabel75.Location = new System.Drawing.Point(311, 1);
this.arLabel75.Margin = new System.Windows.Forms.Padding(0);
this.arLabel75.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel75.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
@@ -661,7 +671,7 @@
this.arLabel11.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel11.GradientRepeatBG = false;
this.arLabel11.isButton = true;
this.arLabel11.Location = new System.Drawing.Point(244, 1);
this.arLabel11.Location = new System.Drawing.Point(311, 1);
this.arLabel11.Margin = new System.Windows.Forms.Padding(0);
this.arLabel11.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel11.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
@@ -777,7 +787,7 @@
this.lbMsg.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbMsg.SignColor = System.Drawing.Color.Yellow;
this.lbMsg.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbMsg.Size = new System.Drawing.Size(1037, 42);
this.lbMsg.Size = new System.Drawing.Size(1237, 42);
this.lbMsg.TabIndex = 1;
this.lbMsg.Text = "--";
this.lbMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -1021,7 +1031,7 @@
this.panBottom.Dock = System.Windows.Forms.DockStyle.Fill;
this.panBottom.Location = new System.Drawing.Point(1, 549);
this.panBottom.Name = "panBottom";
this.panBottom.Size = new System.Drawing.Size(1037, 389);
this.panBottom.Size = new System.Drawing.Size(1237, 389);
this.panBottom.TabIndex = 3;
//
// arDatagridView1
@@ -1079,11 +1089,230 @@
this.arDatagridView1.Name = "arDatagridView1";
this.arDatagridView1.ReadOnly = true;
this.arDatagridView1.RowTemplate.Height = 23;
this.arDatagridView1.Size = new System.Drawing.Size(1037, 366);
this.arDatagridView1.Size = new System.Drawing.Size(1237, 366);
this.arDatagridView1.TabIndex = 6;
this.arDatagridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.arDatagridView1_CellContentClick);
this.arDatagridView1.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.arDatagridView1_DataError);
//
// target
//
this.target.DataPropertyName = "target";
this.target.HeaderText = "R";
this.target.Name = "target";
this.target.ReadOnly = true;
this.target.Width = 45;
//
// JTYPE
//
this.JTYPE.DataPropertyName = "JTYPE";
this.JTYPE.HeaderText = "MODEL";
this.JTYPE.Name = "JTYPE";
this.JTYPE.ReadOnly = true;
this.JTYPE.Width = 81;
//
// sTIMEDataGridViewTextBoxColumn
//
this.sTIMEDataGridViewTextBoxColumn.DataPropertyName = "STIME";
dataGridViewCellStyle1.Format = "HH:mm:ss";
this.sTIMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1;
this.sTIMEDataGridViewTextBoxColumn.HeaderText = "START";
this.sTIMEDataGridViewTextBoxColumn.Name = "sTIMEDataGridViewTextBoxColumn";
this.sTIMEDataGridViewTextBoxColumn.ReadOnly = true;
this.sTIMEDataGridViewTextBoxColumn.Width = 74;
//
// PTIME
//
this.PTIME.DataPropertyName = "BATCH";
dataGridViewCellStyle2.Format = "HH:mm:ss";
this.PTIME.DefaultCellStyle = dataGridViewCellStyle2;
this.PTIME.HeaderText = "BATCH";
this.PTIME.Name = "PTIME";
this.PTIME.ReadOnly = true;
this.PTIME.Width = 77;
//
// sIDDataGridViewTextBoxColumn
//
this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID";
dataGridViewCellStyle3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.sIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle3;
this.sIDDataGridViewTextBoxColumn.HeaderText = "SID";
this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn";
this.sIDDataGridViewTextBoxColumn.ReadOnly = true;
this.sIDDataGridViewTextBoxColumn.Width = 57;
//
// rIDDataGridViewTextBoxColumn
//
this.rIDDataGridViewTextBoxColumn.DataPropertyName = "RID";
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.rIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle4;
this.rIDDataGridViewTextBoxColumn.HeaderText = "RID";
this.rIDDataGridViewTextBoxColumn.Name = "rIDDataGridViewTextBoxColumn";
this.rIDDataGridViewTextBoxColumn.ReadOnly = true;
this.rIDDataGridViewTextBoxColumn.Width = 58;
//
// VNAME
//
this.VNAME.DataPropertyName = "VNAME";
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.VNAME.DefaultCellStyle = dataGridViewCellStyle5;
this.VNAME.HeaderText = "VENDER";
this.VNAME.Name = "VNAME";
this.VNAME.ReadOnly = true;
this.VNAME.Width = 87;
//
// dvc_loc
//
this.dvc_loc.DataPropertyName = "LOC";
this.dvc_loc.HeaderText = "LOC";
this.dvc_loc.Name = "dvc_loc";
this.dvc_loc.ReadOnly = true;
this.dvc_loc.Visible = false;
this.dvc_loc.Width = 55;
//
// qTYDataGridViewTextBoxColumn
//
this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY";
this.qTYDataGridViewTextBoxColumn.HeaderText = "QTY";
this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn";
this.qTYDataGridViewTextBoxColumn.ReadOnly = true;
this.qTYDataGridViewTextBoxColumn.Width = 61;
//
// qtymax
//
this.qtymax.DataPropertyName = "qtymax";
this.qtymax.HeaderText = "(MAX)";
this.qtymax.Name = "qtymax";
this.qtymax.ReadOnly = true;
this.qtymax.Width = 76;
//
// MFGDATE
//
this.MFGDATE.DataPropertyName = "MFGDATE";
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.MFGDATE.DefaultCellStyle = dataGridViewCellStyle6;
this.MFGDATE.HeaderText = "MFG";
this.MFGDATE.Name = "MFGDATE";
this.MFGDATE.ReadOnly = true;
this.MFGDATE.Width = 65;
//
// VLOT
//
this.VLOT.DataPropertyName = "VLOT";
this.VLOT.HeaderText = "V.LOT";
this.VLOT.Name = "VLOT";
this.VLOT.ReadOnly = true;
this.VLOT.Width = 71;
//
// PNO
//
this.PNO.DataPropertyName = "PARTNO";
this.PNO.HeaderText = "PARTNO";
this.PNO.Name = "PNO";
this.PNO.ReadOnly = true;
this.PNO.Width = 88;
//
// MCN
//
this.MCN.DataPropertyName = "MCN";
this.MCN.HeaderText = "CPN";
this.MCN.Name = "MCN";
this.MCN.ReadOnly = true;
this.MCN.Width = 63;
//
// Column1
//
this.Column1.DataPropertyName = "REMARK";
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
this.Column1.DefaultCellStyle = dataGridViewCellStyle7;
this.Column1.HeaderText = "Remark";
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
this.Column1.Width = 84;
//
// PRNATTACH
//
this.PRNATTACH.DataPropertyName = "PRNATTACH";
this.PRNATTACH.HeaderText = "Attach";
this.PRNATTACH.Name = "PRNATTACH";
this.PRNATTACH.ReadOnly = true;
this.PRNATTACH.Width = 58;
//
// PRNVALID
//
this.PRNVALID.DataPropertyName = "PRNVALID";
this.PRNVALID.HeaderText = "Validation";
this.PRNVALID.Name = "PRNVALID";
this.PRNVALID.ReadOnly = true;
this.PRNVALID.Width = 80;
//
// LOC
//
this.LOC.DataPropertyName = "LOC";
this.LOC.HeaderText = "L/R";
this.LOC.Name = "LOC";
this.LOC.ReadOnly = true;
this.LOC.Width = 57;
//
// SID0
//
this.SID0.DataPropertyName = "SID0";
dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242)))));
this.SID0.DefaultCellStyle = dataGridViewCellStyle8;
this.SID0.HeaderText = "SID(ORG)";
this.SID0.Name = "SID0";
this.SID0.ReadOnly = true;
this.SID0.Width = 94;
//
// RID0
//
this.RID0.DataPropertyName = "RID0";
dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242)))));
this.RID0.DefaultCellStyle = dataGridViewCellStyle9;
this.RID0.HeaderText = "RID(ORG)";
this.RID0.Name = "RID0";
this.RID0.ReadOnly = true;
this.RID0.Width = 95;
//
// QTY0
//
this.QTY0.DataPropertyName = "QTY0";
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242)))));
this.QTY0.DefaultCellStyle = dataGridViewCellStyle10;
this.QTY0.FillWeight = 55F;
this.QTY0.HeaderText = "QTY(ORG)";
this.QTY0.Name = "QTY0";
this.QTY0.ReadOnly = true;
this.QTY0.Width = 98;
//
// ETIME
//
this.ETIME.DataPropertyName = "ETIME";
dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle11.Format = "mm:ss.fff";
this.ETIME.DefaultCellStyle = dataGridViewCellStyle11;
this.ETIME.HeaderText = "END";
this.ETIME.Name = "ETIME";
this.ETIME.ReadOnly = true;
this.ETIME.Width = 63;
//
// JGUID
//
this.JGUID.DataPropertyName = "JGUID";
this.JGUID.HeaderText = "JGUID";
this.JGUID.Name = "JGUID";
this.JGUID.ReadOnly = true;
this.JGUID.Width = 73;
//
// GUID
//
this.GUID.DataPropertyName = "GUID";
this.GUID.HeaderText = "GUID";
this.GUID.Name = "GUID";
this.GUID.ReadOnly = true;
this.GUID.Width = 68;
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -1114,7 +1343,7 @@
this.progressBarRefresh.Dock = System.Windows.Forms.DockStyle.Top;
this.progressBarRefresh.Location = new System.Drawing.Point(0, 0);
this.progressBarRefresh.Name = "progressBarRefresh";
this.progressBarRefresh.Size = new System.Drawing.Size(1037, 23);
this.progressBarRefresh.Size = new System.Drawing.Size(1237, 23);
this.progressBarRefresh.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressBarRefresh.TabIndex = 1;
this.progressBarRefresh.Visible = false;
@@ -1207,11 +1436,11 @@
this.panel37.Controls.Add(this.arLabel76);
this.panel37.Controls.Add(this.arLabel74);
this.panel37.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel37.Location = new System.Drawing.Point(690, 0);
this.panel37.Location = new System.Drawing.Point(824, 0);
this.panel37.Margin = new System.Windows.Forms.Padding(0);
this.panel37.Name = "panel37";
this.panel37.Padding = new System.Windows.Forms.Padding(1);
this.panel37.Size = new System.Drawing.Size(347, 56);
this.panel37.Size = new System.Drawing.Size(413, 56);
this.panel37.TabIndex = 155;
//
// lbLock2
@@ -1252,7 +1481,7 @@
this.lbLock2.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbLock2.SignColor = System.Drawing.Color.Yellow;
this.lbLock2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbLock2.Size = new System.Drawing.Size(145, 54);
this.lbLock2.Size = new System.Drawing.Size(211, 54);
this.lbLock2.TabIndex = 15;
this.lbLock2.Tag = "2";
this.lbLock2.Text = "Port Lock";
@@ -1268,11 +1497,11 @@
this.panel10.Controls.Add(this.arLabel75);
this.panel10.Controls.Add(this.arLabel73);
this.panel10.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel10.Location = new System.Drawing.Point(345, 0);
this.panel10.Location = new System.Drawing.Point(412, 0);
this.panel10.Margin = new System.Windows.Forms.Padding(0);
this.panel10.Name = "panel10";
this.panel10.Padding = new System.Windows.Forms.Padding(1);
this.panel10.Size = new System.Drawing.Size(345, 56);
this.panel10.Size = new System.Drawing.Size(412, 56);
this.panel10.TabIndex = 154;
//
// lbLock1
@@ -1313,7 +1542,7 @@
this.lbLock1.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbLock1.SignColor = System.Drawing.Color.Yellow;
this.lbLock1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbLock1.Size = new System.Drawing.Size(143, 54);
this.lbLock1.Size = new System.Drawing.Size(210, 54);
this.lbLock1.TabIndex = 15;
this.lbLock1.Tag = "1";
this.lbLock1.Text = "Port Lock";
@@ -1333,7 +1562,7 @@
this.panel15.Margin = new System.Windows.Forms.Padding(0);
this.panel15.Name = "panel15";
this.panel15.Padding = new System.Windows.Forms.Padding(1);
this.panel15.Size = new System.Drawing.Size(345, 56);
this.panel15.Size = new System.Drawing.Size(412, 56);
this.panel15.TabIndex = 155;
//
// lbLock0
@@ -1374,7 +1603,7 @@
this.lbLock0.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbLock0.SignColor = System.Drawing.Color.Yellow;
this.lbLock0.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbLock0.Size = new System.Drawing.Size(143, 54);
this.lbLock0.Size = new System.Drawing.Size(210, 54);
this.lbLock0.TabIndex = 15;
this.lbLock0.Tag = "0";
this.lbLock0.Text = "Port Lock";
@@ -1531,7 +1760,7 @@
//
this.dIOMonitorToolStripMenuItem.Name = "dIOMonitorToolStripMenuItem";
this.dIOMonitorToolStripMenuItem.Size = new System.Drawing.Size(255, 22);
this.dIOMonitorToolStripMenuItem.Text = "new barcode";
this.dIOMonitorToolStripMenuItem.Text = "Test Barcode Process";
this.dIOMonitorToolStripMenuItem.Click += new System.EventHandler(this.dIOMonitorToolStripMenuItem_Click);
//
// refreshControklToolStripMenuItem
@@ -1810,7 +2039,7 @@
this.panStatusBar.Location = new System.Drawing.Point(1, 938);
this.panStatusBar.Margin = new System.Windows.Forms.Padding(0);
this.panStatusBar.Name = "panStatusBar";
this.panStatusBar.Size = new System.Drawing.Size(1382, 46);
this.panStatusBar.Size = new System.Drawing.Size(1582, 46);
this.panStatusBar.TabIndex = 136;
//
// panel3
@@ -1821,7 +2050,7 @@
this.panel3.Location = new System.Drawing.Point(0, 0);
this.panel3.Margin = new System.Windows.Forms.Padding(0);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(1378, 42);
this.panel3.Size = new System.Drawing.Size(1578, 42);
this.panel3.TabIndex = 4;
//
// IOState
@@ -1889,7 +2118,7 @@
this.IOState.ShadowColor = System.Drawing.Color.Transparent;
this.IOState.showDebugInfo = false;
this.IOState.ShowIndexString = false;
this.IOState.Size = new System.Drawing.Size(1060, 42);
this.IOState.Size = new System.Drawing.Size(1260, 42);
this.IOState.TabIndex = 6;
this.IOState.Tags = null;
this.IOState.Text = "gridView2";
@@ -2025,6 +2254,7 @@
this.toolStripSeparator6,
this.toolStripButton6,
this.toolStripButton10,
this.btAutoReelOut,
this.btLightRoom,
this.btManualPrint,
this.toolStripSeparator9,
@@ -2037,7 +2267,7 @@
this.panTopMenu.Location = new System.Drawing.Point(1, 1);
this.panTopMenu.Name = "panTopMenu";
this.panTopMenu.Padding = new System.Windows.Forms.Padding(0);
this.panTopMenu.Size = new System.Drawing.Size(1382, 47);
this.panTopMenu.Size = new System.Drawing.Size(1582, 47);
this.panTopMenu.TabIndex = 137;
this.panTopMenu.Text = "toolStrip1";
//
@@ -2271,8 +2501,6 @@
//
// toolStripButton6
//
this.toolStripButton6.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.sWPLCToolStripMenuItem});
this.toolStripButton6.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton6.Image")));
this.toolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton6.Name = "toolStripButton6";
@@ -2282,13 +2510,6 @@
this.toolStripButton6.ButtonClick += new System.EventHandler(this.toolStripButton6_ButtonClick);
this.toolStripButton6.Click += new System.EventHandler(this.button6_Click);
//
// sWPLCToolStripMenuItem
//
this.sWPLCToolStripMenuItem.Name = "sWPLCToolStripMenuItem";
this.sWPLCToolStripMenuItem.Size = new System.Drawing.Size(120, 22);
this.sWPLCToolStripMenuItem.Text = "S/W PLC";
this.sWPLCToolStripMenuItem.Click += new System.EventHandler(this.sWPLCToolStripMenuItem_Click);
//
// toolStripButton10
//
this.toolStripButton10.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -2317,6 +2538,15 @@
this.ToolStripMenuItem.Text = "Quick Run";
this.ToolStripMenuItem.Click += new System.EventHandler(this.quickExecutionToolStripMenuItem_Click);
//
// btAutoReelOut
//
this.btAutoReelOut.Image = ((System.Drawing.Image)(resources.GetObject("btAutoReelOut.Image")));
this.btAutoReelOut.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btAutoReelOut.Name = "btAutoReelOut";
this.btAutoReelOut.Size = new System.Drawing.Size(97, 44);
this.btAutoReelOut.Text = "AutoOut";
this.btAutoReelOut.Click += new System.EventHandler(this.btAutoReelOut_Click);
//
// btLightRoom
//
this.btLightRoom.Image = ((System.Drawing.Image)(resources.GetObject("btLightRoom.Image")));
@@ -2329,13 +2559,11 @@
//
// btManualPrint
//
this.btManualPrint.ForeColor = System.Drawing.Color.Red;
this.btManualPrint.Image = ((System.Drawing.Image)(resources.GetObject("btManualPrint.Image")));
this.btManualPrint.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btManualPrint.Name = "btManualPrint";
this.btManualPrint.Size = new System.Drawing.Size(119, 44);
this.btManualPrint.Text = "Manual Print";
this.btManualPrint.Visible = false;
this.btManualPrint.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// toolStripSeparator9
@@ -2464,7 +2692,9 @@
this.disConnectToolStripMenuItem,
this.toolStripMenuItem20,
this.resetToolStripMenuItem,
this.webManagerToolStripMenuItem});
this.webManagerToolStripMenuItem,
this.toolStripMenuItem23,
this.loadMemoryToolStripMenuItem});
this.ToolStripMenuItem.Image = global::Project.Properties.Resources.Barcode;
this.ToolStripMenuItem.Name = "바코드키엔스ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(196, 46);
@@ -2541,6 +2771,82 @@
this.webManagerToolStripMenuItem.Text = "Web Manager";
this.webManagerToolStripMenuItem.Click += new System.EventHandler(this.webManagerToolStripMenuItem_Click);
//
// toolStripMenuItem23
//
this.toolStripMenuItem23.Name = "toolStripMenuItem23";
this.toolStripMenuItem23.Size = new System.Drawing.Size(169, 6);
//
// loadMemoryToolStripMenuItem
//
this.loadMemoryToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem27,
this.toolStripMenuItem29,
this.toolStripMenuItem31,
this.toolStripMenuItem32,
this.toolStripMenuItem33,
this.toolStripMenuItem34,
this.toolStripMenuItem35,
this.toolStripMenuItem36});
this.loadMemoryToolStripMenuItem.Name = "loadMemoryToolStripMenuItem";
this.loadMemoryToolStripMenuItem.Size = new System.Drawing.Size(172, 46);
this.loadMemoryToolStripMenuItem.Text = "Load Memory";
//
// toolStripMenuItem27
//
this.toolStripMenuItem27.Name = "toolStripMenuItem27";
this.toolStripMenuItem27.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem27.Text = "1";
this.toolStripMenuItem27.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem29
//
this.toolStripMenuItem29.Name = "toolStripMenuItem29";
this.toolStripMenuItem29.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem29.Text = "2";
this.toolStripMenuItem29.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem31
//
this.toolStripMenuItem31.Name = "toolStripMenuItem31";
this.toolStripMenuItem31.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem31.Text = "3";
this.toolStripMenuItem31.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem32
//
this.toolStripMenuItem32.Name = "toolStripMenuItem32";
this.toolStripMenuItem32.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem32.Text = "4";
this.toolStripMenuItem32.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem33
//
this.toolStripMenuItem33.Name = "toolStripMenuItem33";
this.toolStripMenuItem33.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem33.Text = "5";
this.toolStripMenuItem33.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem34
//
this.toolStripMenuItem34.Name = "toolStripMenuItem34";
this.toolStripMenuItem34.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem34.Text = "6";
this.toolStripMenuItem34.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem35
//
this.toolStripMenuItem35.Name = "toolStripMenuItem35";
this.toolStripMenuItem35.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem35.Text = "7";
this.toolStripMenuItem35.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripMenuItem36
//
this.toolStripMenuItem36.Name = "toolStripMenuItem36";
this.toolStripMenuItem36.Size = new System.Drawing.Size(80, 22);
this.toolStripMenuItem36.Text = "8";
this.toolStripMenuItem36.Click += new System.EventHandler(this.toolStripMenuItem27_Click);
//
// toolStripSeparator7
//
this.toolStripSeparator7.Name = "toolStripSeparator7";
@@ -2571,7 +2877,7 @@
this.panel24.Controls.Add(this.groupBox3);
this.panel24.Dock = System.Windows.Forms.DockStyle.Right;
this.panel24.ForeColor = System.Drawing.Color.White;
this.panel24.Location = new System.Drawing.Point(1038, 48);
this.panel24.Location = new System.Drawing.Point(1238, 48);
this.panel24.Name = "panel24";
this.panel24.Padding = new System.Windows.Forms.Padding(10, 3, 10, 10);
this.panel24.Size = new System.Drawing.Size(345, 890);
@@ -2999,6 +3305,7 @@
this.tbVisionL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.tbVisionL.TextShadow = true;
this.tbVisionL.TextVisible = true;
this.tbVisionL.Click += new System.EventHandler(this.tbBarcodeR_Click);
//
// label5
//
@@ -3058,6 +3365,7 @@
this.tbBarcodeR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.tbBarcodeR.TextShadow = true;
this.tbBarcodeR.TextVisible = true;
this.tbBarcodeR.Click += new System.EventHandler(this.tbBarcodeR_Click);
//
// label6
//
@@ -3117,6 +3425,7 @@
this.tbVisionR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.tbVisionR.TextShadow = true;
this.tbVisionR.TextVisible = true;
this.tbVisionR.Click += new System.EventHandler(this.tbBarcodeR_Click);
//
// label2
//
@@ -3189,6 +3498,7 @@
this.tbBarcodeF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.tbBarcodeF.TextShadow = true;
this.tbBarcodeF.TextVisible = true;
this.tbBarcodeF.Click += new System.EventHandler(this.tbBarcodeR_Click);
//
// panel28
//
@@ -3342,7 +3652,7 @@
this.panel9.Dock = System.Windows.Forms.DockStyle.Top;
this.panel9.Location = new System.Drawing.Point(1, 48);
this.panel9.Name = "panel9";
this.panel9.Size = new System.Drawing.Size(1037, 42);
this.panel9.Size = new System.Drawing.Size(1237, 42);
this.panel9.TabIndex = 144;
//
// tableLayoutPanel1
@@ -3360,7 +3670,7 @@
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1037, 56);
this.tableLayoutPanel1.Size = new System.Drawing.Size(1237, 56);
this.tableLayoutPanel1.TabIndex = 159;
//
// panel1
@@ -3370,7 +3680,7 @@
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(1, 90);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1037, 403);
this.panel1.Size = new System.Drawing.Size(1237, 403);
this.panel1.TabIndex = 160;
//
// hmi1
@@ -3600,7 +3910,7 @@
this.hmi1.R_PICK_BW = false;
this.hmi1.R_PICK_FW = false;
this.hmi1.Scean = UIControl.HMI.eScean.Nomal;
this.hmi1.Size = new System.Drawing.Size(586, 403);
this.hmi1.Size = new System.Drawing.Size(786, 403);
this.hmi1.TabIndex = 0;
this.hmi1.ZoneItemClick += new System.EventHandler<UIControl.HMI.ZoneItemClickEventargs>(this.hmi1_ZoneItemClick);
//
@@ -3720,7 +4030,7 @@
this.listView21.Dock = System.Windows.Forms.DockStyle.Right;
this.listView21.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold);
this.listView21.ForeColor = System.Drawing.Color.White;
this.listView21.Location = new System.Drawing.Point(586, 0);
this.listView21.Location = new System.Drawing.Point(786, 0);
this.listView21.MinimumSize = new System.Drawing.Size(30, 30);
this.listView21.Name = "listView21";
this.listView21.RowHeight = 25;
@@ -4854,229 +5164,10 @@
this.listView21.TabIndex = 7;
this.listView21.Text = "listView21";
//
// target
//
this.target.DataPropertyName = "target";
this.target.HeaderText = "R";
this.target.Name = "target";
this.target.ReadOnly = true;
this.target.Width = 45;
//
// JTYPE
//
this.JTYPE.DataPropertyName = "JTYPE";
this.JTYPE.HeaderText = "MODEL";
this.JTYPE.Name = "JTYPE";
this.JTYPE.ReadOnly = true;
this.JTYPE.Width = 81;
//
// sTIMEDataGridViewTextBoxColumn
//
this.sTIMEDataGridViewTextBoxColumn.DataPropertyName = "STIME";
dataGridViewCellStyle1.Format = "HH:mm:ss";
this.sTIMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1;
this.sTIMEDataGridViewTextBoxColumn.HeaderText = "START";
this.sTIMEDataGridViewTextBoxColumn.Name = "sTIMEDataGridViewTextBoxColumn";
this.sTIMEDataGridViewTextBoxColumn.ReadOnly = true;
this.sTIMEDataGridViewTextBoxColumn.Width = 74;
//
// PTIME
//
this.PTIME.DataPropertyName = "BATCH";
dataGridViewCellStyle2.Format = "HH:mm:ss";
this.PTIME.DefaultCellStyle = dataGridViewCellStyle2;
this.PTIME.HeaderText = "BATCH";
this.PTIME.Name = "PTIME";
this.PTIME.ReadOnly = true;
this.PTIME.Width = 77;
//
// sIDDataGridViewTextBoxColumn
//
this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID";
dataGridViewCellStyle3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.sIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle3;
this.sIDDataGridViewTextBoxColumn.HeaderText = "SID";
this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn";
this.sIDDataGridViewTextBoxColumn.ReadOnly = true;
this.sIDDataGridViewTextBoxColumn.Width = 57;
//
// rIDDataGridViewTextBoxColumn
//
this.rIDDataGridViewTextBoxColumn.DataPropertyName = "RID";
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.rIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle4;
this.rIDDataGridViewTextBoxColumn.HeaderText = "RID";
this.rIDDataGridViewTextBoxColumn.Name = "rIDDataGridViewTextBoxColumn";
this.rIDDataGridViewTextBoxColumn.ReadOnly = true;
this.rIDDataGridViewTextBoxColumn.Width = 58;
//
// VNAME
//
this.VNAME.DataPropertyName = "VNAME";
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.VNAME.DefaultCellStyle = dataGridViewCellStyle5;
this.VNAME.HeaderText = "VENDER";
this.VNAME.Name = "VNAME";
this.VNAME.ReadOnly = true;
this.VNAME.Width = 87;
//
// dvc_loc
//
this.dvc_loc.DataPropertyName = "LOC";
this.dvc_loc.HeaderText = "LOC";
this.dvc_loc.Name = "dvc_loc";
this.dvc_loc.ReadOnly = true;
this.dvc_loc.Visible = false;
this.dvc_loc.Width = 61;
//
// qTYDataGridViewTextBoxColumn
//
this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY";
this.qTYDataGridViewTextBoxColumn.HeaderText = "QTY";
this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn";
this.qTYDataGridViewTextBoxColumn.ReadOnly = true;
this.qTYDataGridViewTextBoxColumn.Width = 61;
//
// qtymax
//
this.qtymax.DataPropertyName = "qtymax";
this.qtymax.HeaderText = "(MAX)";
this.qtymax.Name = "qtymax";
this.qtymax.ReadOnly = true;
this.qtymax.Width = 76;
//
// MFGDATE
//
this.MFGDATE.DataPropertyName = "MFGDATE";
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.MFGDATE.DefaultCellStyle = dataGridViewCellStyle6;
this.MFGDATE.HeaderText = "MFG";
this.MFGDATE.Name = "MFGDATE";
this.MFGDATE.ReadOnly = true;
this.MFGDATE.Width = 65;
//
// VLOT
//
this.VLOT.DataPropertyName = "VLOT";
this.VLOT.HeaderText = "V.LOT";
this.VLOT.Name = "VLOT";
this.VLOT.ReadOnly = true;
this.VLOT.Width = 71;
//
// PNO
//
this.PNO.DataPropertyName = "PARTNO";
this.PNO.HeaderText = "PARTNO";
this.PNO.Name = "PNO";
this.PNO.ReadOnly = true;
this.PNO.Width = 88;
//
// MCN
//
this.MCN.DataPropertyName = "MCN";
this.MCN.HeaderText = "CPN";
this.MCN.Name = "MCN";
this.MCN.ReadOnly = true;
this.MCN.Width = 63;
//
// Column1
//
this.Column1.DataPropertyName = "REMARK";
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
this.Column1.DefaultCellStyle = dataGridViewCellStyle7;
this.Column1.HeaderText = "Remark";
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
this.Column1.Width = 84;
//
// PRNATTACH
//
this.PRNATTACH.DataPropertyName = "PRNATTACH";
this.PRNATTACH.HeaderText = "Attach";
this.PRNATTACH.Name = "PRNATTACH";
this.PRNATTACH.ReadOnly = true;
this.PRNATTACH.Width = 58;
//
// PRNVALID
//
this.PRNVALID.DataPropertyName = "PRNVALID";
this.PRNVALID.HeaderText = "Validation";
this.PRNVALID.Name = "PRNVALID";
this.PRNVALID.ReadOnly = true;
this.PRNVALID.Width = 80;
//
// LOC
//
this.LOC.DataPropertyName = "LOC";
this.LOC.HeaderText = "L/R";
this.LOC.Name = "LOC";
this.LOC.ReadOnly = true;
this.LOC.Width = 57;
//
// SID0
//
this.SID0.DataPropertyName = "SID0";
dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242)))));
this.SID0.DefaultCellStyle = dataGridViewCellStyle8;
this.SID0.HeaderText = "SID(ORG)";
this.SID0.Name = "SID0";
this.SID0.ReadOnly = true;
this.SID0.Width = 94;
//
// RID0
//
this.RID0.DataPropertyName = "RID0";
dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242)))));
this.RID0.DefaultCellStyle = dataGridViewCellStyle9;
this.RID0.HeaderText = "RID(ORG)";
this.RID0.Name = "RID0";
this.RID0.ReadOnly = true;
this.RID0.Width = 95;
//
// QTY0
//
this.QTY0.DataPropertyName = "QTY0";
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242)))));
this.QTY0.DefaultCellStyle = dataGridViewCellStyle10;
this.QTY0.FillWeight = 55F;
this.QTY0.HeaderText = "QTY(ORG)";
this.QTY0.Name = "QTY0";
this.QTY0.ReadOnly = true;
this.QTY0.Width = 98;
//
// ETIME
//
this.ETIME.DataPropertyName = "ETIME";
dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle11.Format = "mm:ss.fff";
this.ETIME.DefaultCellStyle = dataGridViewCellStyle11;
this.ETIME.HeaderText = "END";
this.ETIME.Name = "ETIME";
this.ETIME.ReadOnly = true;
this.ETIME.Width = 63;
//
// JGUID
//
this.JGUID.DataPropertyName = "JGUID";
this.JGUID.HeaderText = "JGUID";
this.JGUID.Name = "JGUID";
this.JGUID.ReadOnly = true;
this.JGUID.Width = 73;
//
// GUID
//
this.GUID.DataPropertyName = "GUID";
this.GUID.HeaderText = "GUID";
this.GUID.Name = "GUID";
this.GUID.ReadOnly = true;
this.GUID.Width = 68;
//
// FMain
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1384, 985);
this.ClientSize = new System.Drawing.Size(1584, 985);
this.Controls.Add(this.panBottom);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.panel1);
@@ -5320,7 +5411,6 @@
private System.Windows.Forms.ToolStripMenuItem postDataToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem manualPrintToolStripMenuItem;
private System.Windows.Forms.ToolStripSplitButton toolStripButton6;
private System.Windows.Forms.ToolStripMenuItem sWPLCToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem apiCheckToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem barcodeTestToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6;
@@ -5355,6 +5445,17 @@
private System.Windows.Forms.DataGridViewTextBoxColumn ETIME;
private System.Windows.Forms.DataGridViewTextBoxColumn JGUID;
private System.Windows.Forms.DataGridViewTextBoxColumn GUID;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem23;
private System.Windows.Forms.ToolStripMenuItem loadMemoryToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem27;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem29;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem31;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem32;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem33;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem34;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem35;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem36;
private System.Windows.Forms.ToolStripButton btAutoReelOut;
}
}

View File

@@ -286,32 +286,41 @@ namespace Project
PUB.log.Add($"ListFormmatData");
arDatagridView1.SuspendLayout();
foreach (DataGridViewRow item in this.arDatagridView1.Rows)
try
{
var drv = item.DataBoundItem as System.Data.DataRowView;
var dr = drv.Row as DataSet1.K4EE_Component_Reel_ResultRow;
foreach (DataGridViewRow item in this.arDatagridView1.Rows)
{
var drv = item.DataBoundItem as System.Data.DataRowView;
var dr = drv.Row as DataSet1.K4EE_Component_Reel_ResultRow;
if (dr.REMARK.StartsWith("(BYPASS"))
{
item.DefaultCellStyle.BackColor = Color.LightSkyBlue;
}
else
{
if (dr.LOC == "L")
item.DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 220);
if (dr.REMARK.StartsWith("(BYPASS"))
{
item.DefaultCellStyle.BackColor = Color.LightSkyBlue;
}
else
item.DefaultCellStyle.BackColor = Color.FromArgb(250, 250, 250);
}
{
if (dr.LOC == "L")
item.DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 220);
else
item.DefaultCellStyle.BackColor = Color.FromArgb(250, 250, 250);
}
if (dr.REMARK.StartsWith("(BYPASS"))
item.DefaultCellStyle.ForeColor = Color.Black;
else if (dr.PRNATTACH == false)
item.DefaultCellStyle.ForeColor = Color.FromArgb(0xfe, 0x2a, 0x00);
else if (dr.PRNVALID == false)
item.DefaultCellStyle.ForeColor = Color.FromArgb(0x1f, 0x3b, 0x34);
else
item.DefaultCellStyle.ForeColor = Color.Black;
if (dr.REMARK.StartsWith("(BYPASS"))
item.DefaultCellStyle.ForeColor = Color.Black;
else if (dr.PRNATTACH == false)
item.DefaultCellStyle.ForeColor = Color.FromArgb(0xfe, 0x2a, 0x00);
else if (dr.PRNVALID == false)
item.DefaultCellStyle.ForeColor = Color.FromArgb(0x1f, 0x3b, 0x34);
else
item.DefaultCellStyle.ForeColor = Color.Black;
}
}
catch (Exception ex)
{
}
arDatagridView1.ResumeLayout();
}
async private void __Load(object sender, EventArgs e)
@@ -329,10 +338,6 @@ namespace Project
PUB.logKeyence.RaiseMsg += Log_RaiseMsg;
PUB.logWS.RaiseMsg += LogWS_RaiseMsg;
//Turn off position layout.
//this.pPosL.Visible = false;
//this.pPosC.Visible = false;
//this.pPosR.Visible = false;
this.Show();
Application.DoEvents();
@@ -428,7 +433,7 @@ namespace Project
PUB.plc.Start();
VAR.I32[eVarInt32.Front_Laser_Cleaning] += 1;
//Keyence connection
if (SETTING.Data.Keyence_IPF.isEmpty() == false)
{
@@ -455,6 +460,7 @@ namespace Project
PUB.log.Add("Program Start");
if (SETTING.Data.OnlineMode)
PUB.CheckNRegister3(Application.ProductName, "chi", Application.ProductVersion);
else PUB.GetIPMac();
if (SETTING.Data.EnableDebugMode)
{
@@ -464,11 +470,12 @@ namespace Project
}
//swPLC program execution
var swplcfile = UTIL.MakePath("swplc", "swplc.exe");
var swplcfile = UTIL.MakePath("swplc", "SoftwarePLC.exe");
if (System.IO.File.Exists(swplcfile))
{
UTIL.RunProcess(swplcfile);
}
else PUB.log.AddE($"No SoftwarePLC Execute File({swplcfile})");
await RefreshList();
UpdateControl();
@@ -494,10 +501,17 @@ namespace Project
var data = e.StrValue.Replace("\r", "").Replace("\n", "");
bool findregex = false;
PUB.log.Add($"Fixed barcode received\n{data}");
var cnt = BarcodeRegExProcess(
PUB.Result.BCDPattern,
PUB.Result.BCDIgnorePattern,
PUB.Result.ItemDataC.VisionData, string.Empty, data, out bool IgnoreBarcode, out findregex);
Tuple<int, List<string>> cnt = null;
bool IgnoreBarcode = false;
lock (PUB.Result.BCDPatternLock)
{
cnt = BarcodeRegExProcess(
PUB.Result.BCDPattern,
PUB.Result.BCDIgnorePattern,
PUB.Result.ItemDataC.VisionData, string.Empty, data, out IgnoreBarcode, out findregex);
}
if (IgnoreBarcode) PUB.log.AddE("This is an ignore barcode");
else if (cnt.Item1 == 0) PUB.log.AddAT("(Manual) No applicable barcode value");
@@ -1087,9 +1101,49 @@ namespace Project
private void dIOMonitorToolStripMenuItem_Click(object sender, EventArgs e)
{
var sid = UTIL.InputBox("input sid");
if (sid.Item1 == false || sid.Item2.isEmpty()) return;
var c = PUB.MakeNewREELID(sid.Item2);// Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD("2000", "4", "A", out string error);
using (var f = new fManualPrint0())
{
f.Text = "Barcode Process Test";
if (f.ShowDialog() == DialogResult.OK)
{
var reelinfo = f.reelinfo;
var vdata = new Class.JobData(9);
PUB.Result.ItemDataC.CopyTo(ref vdata);
vdata.Clear("TEST");
vdata.VisionData.BarcodeTouched = true;
if (reelinfo.SID.isEmpty() == false)
{
vdata.VisionData.SID = reelinfo.SID;
vdata.VisionData.SID_Trust = true;
}
if (reelinfo.venderLot.isEmpty() == false)
{
vdata.VisionData.VLOT = reelinfo.venderLot;
vdata.VisionData.VLOT_Trust = true;
}
if (reelinfo.id.isEmpty() == false)
{
vdata.VisionData.SetRID(reelinfo.id, "TEST");
vdata.VisionData.RID_Trust = true;
}
if (reelinfo.mfg.isEmpty() == false)
{
vdata.VisionData.MFGDATE = reelinfo.mfg;
vdata.VisionData.MFGDATE_Trust = true;
}
if (reelinfo.qty > 0)
{
vdata.VisionData.QTY = reelinfo.qty.ToString();
vdata.VisionData.QTY_Trust = true;
}
//vdata.VisionData.VLOT = reelinfo.venderLot;
BCDProcess_ALL(vdata, "TEST", true);
var msg = vdata.VisionData.ToString();
PUB.log.Add(msg);
UTIL.MsgE(msg);
}
}
}
private void refreshControklToolStripMenuItem_Click(object sender, EventArgs e)
@@ -1441,16 +1495,16 @@ namespace Project
return;
}
bool curMag = DIO.GetIOOutput(eDOName.CART_MAG0);
bool curMag = DIO.GetIOOutput(eDOName.PORTL_MAGNET);
bool curLim = DIO.GetIOInput(eDIName.PORTL_LIM_DN);
if (index == 1)
{
curMag = DIO.GetIOOutput(eDOName.CART_MAG1);
curMag = DIO.GetIOOutput(eDOName.PORTC_MAGNET);
curLim = DIO.GetIOInput(eDIName.PORTC_LIM_DN);
}
else if (index == 2)
{
curMag = DIO.GetIOOutput(eDOName.CART_MAG2);
curMag = DIO.GetIOOutput(eDOName.PORTR_MAGNET);
curLim = DIO.GetIOInput(eDIName.PORTR_LIM_DN);
}
@@ -1731,9 +1785,12 @@ namespace Project
private void bcdRegProcessClearToolStripMenuItem_Click(object sender, EventArgs e)
{
lock (PUB.Result.BCDPatternLock)
{
PUB.Result.BCDPattern.Clear();
PUB.Result.BCDIgnorePattern.Clear();
}
PUB.Result.BCDPattern.Clear();
PUB.Result.BCDIgnorePattern.Clear();
if (PUB.Result.ItemDataC.VisionData == null) return;
@@ -1752,6 +1809,18 @@ namespace Project
{
using (var f = new Dialog.RegExRule())
f.ShowDialog();
if (PUB.sm.Step != eSMStep.IDLE)
{
lock (PUB.Result.BCDPatternLock)
{
var modelName = PUB.Result.vModel.Title;
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
}
}
}
@@ -1778,7 +1847,11 @@ namespace Project
{
var ok = PUB.SelectModelV(f.Value);
var motionmode = VAR.BOOL[eVarBool.Use_Conveyor] ? "Conveyor" : "Default";
PUB.SelectModelM(motionmode);
var changeMot = PUB.SelectModelM(motionmode);
if (changeMot == false)
{
PUB.log.AddE($"No Motion model (Conveyor)");
}
UpdateControl();
}
}
@@ -1978,13 +2051,6 @@ namespace Project
f.ShowDialog();
}
private void sWPLCToolStripMenuItem_Click(object sender, EventArgs e)
{
var f = new Dialog.fswPLC();
f.Show();
}
private void apiCheckToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -2022,8 +2088,6 @@ namespace Project
private void OpenProgramToolStripMenuItem_Click(object sender, EventArgs e)
{
var fn = AR.SETTING.Data.Sidinfofilename;
if (fn.isEmpty()) fn = UTIL.MakePath("sidinfo", "update.exe");
var fi = new System.IO.FileInfo(fn);
if (fi.Exists == false)
{
@@ -2168,5 +2232,36 @@ namespace Project
}
}
private void toolStripMenuItem27_Click(object sender, EventArgs e)
{
var bt = sender as ToolStripMenuItem;
var txt = bt.Text;
if (int.TryParse(txt, out int memno) == false)
{
UTIL.MsgE($"Keyence MemoryNo Error : {txt}");
return;
}
PUB.log.Add($"Keyence Send BLOAD({memno})");
if (PUB.keyenceF != null) PUB.keyenceF.BLoad(memno);
if (PUB.keyenceR != null) PUB.keyenceR.BLoad(memno);
}
private void btAutoReelOut_Click(object sender, EventArgs e)
{
PUB.Result.AutoReelOut = !PUB.Result.AutoReelOut;
}
private void tbBarcodeR_Click(object sender, EventArgs e)
{
var lb = sender as arCtl.arLabel;
if (lb == null) return;
var txt = lb.Text.Trim();
if(txt.isEmpty()==false)
{
Clipboard.SetText(txt);
PUB.log.AddI($"Clipboard copy : {txt}");
}
}
}
}

View File

@@ -427,6 +427,21 @@ If pressed while motion is moving, motion will also stop.
h1xzduEFXhy81ZRuDPA7ugkK3oHbfIm6fIFtvAIXbBRWcnfQz19N9N7I95zrGxjDwDZ1+7I6LhZT05da
NDXXhWR/bzZfVgFt6m44NdcNDfowC4O5jCM8m82Pq4FNCFXLNZjLkB2dCzdvp1zhP4rz2TwnOzppIRb2
ZnMjXgObEn35EnogO96gQK0kbrfHdjQmchlcuRnNhfx/RCJ/AHn/AbVQ1jdKAAAAAElFTkSuQmCC
</value>
</data>
<data name="btAutoReelOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="btLightRoom.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -458,16 +473,16 @@ If pressed while motion is moving, motion will also stop.
<data name="btManualPrint.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIVSURBVGhD7ZPNShtRGIanN1DvIZDu0ngH2l1/KMSd7ioI
FaHSQiiDLUQSxJ9S1IW1Y8HMmMKY0RKN2Buo3oCibnThD+nWbrPIMQffMJOZ70AhM8kHzgPPbr7zPiLR
YmJiHhBDfxuvMrX6TaYmRBS+rtWvM7XGC8yFz/0APR6e9SvMhQ89GL6YCx9qLAoxFz7UWBRiLiSyJ4fa
xzMhpcaisLWnZU//oKIDWo/14g+QdoznMWosCr2bqOgAz2PUWBR6N1HRAZ7HqLEo9G6i4v+Z1PMvx/X8
9Ts9Lzh531R4jkw1HONbTuj5S2SqoQ45iUw11BEnkamGOuIkMtVQR5xEphrqiJPIVOM/GH7zVqSepkUy
meyqcnNkdLytRYpMNf6DXsS3TKX721qkyFTjP6Ae7qb+HmSq8R9Qj3ZTfw8y1YxN6sJrIpHoqf4eZAax
7P0nZrl62FRYzh5L0XYgW5HtIuP9B4w9QLbLmvPrH/EhU6u3yHYpOjvH9McMtatHyHYxN/c2yI85Wt61
kO3S/A18ID/m6XtkuxTtyqBZ3m3+0vlrlasDyHYplX4/XjKsxrpdEZyVjYbj9CG7HcPavPjxc1uwtrR1
jtwgK+v29reiLZi7hdwgi0bx05JhNv9NjP1uTiE3yPzyyrO55VXB2dnF1UHkBhFCPPo882Unl8s1pme/
Ck7KpqnCQkU2IjcmJiYm5sGjaXd6XrcwjAKGHQAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIUSURBVGhD7ZPBShtRFIanL1DfIZDu1L5B7U4tQty1uxYK
FUGxIDKokBIptinFSrGaCmamEcaMlmhEX0B9gUrbTbtoU9Jtu80ip7n4h5nMnAuFzCQHnA++3Zz7f1nE
SEhIuEZM/m7ey9QbvzJ1ojicqDdqmXpzDHPRczXAj0dn4yfmoocfjF7MRQ83FoeYix5uLA4xFxHzny+M
ha+k5MbisL1nzH85Q0UXtB/rxw9Qdo3vMW4sDv2bqOgC32PcWBz6N1HRBb7HuLE49G+i4v+ZNXPjU2au
NmPmSJJXTSujyNQjMb7ttJn7gUw93KEkkamHO5IkMvVwR5JEph7uSJLI1MMdSRKZeoIH9x8+ocGhYUqn
0z1VbT54NNXRokSmnuBBP+LbDg7f7mhRIlNP8IB7uJcGe5CpJ3jAPdpLgz3I1PN41iS/qVSqrwZ7kBnG
dk5uWeXqRUuy3WORou1ctSLbQ8UHDwR7jmyP9+7Hv8yHQq3+QbZH0T285D8WqFP9hGwPa+/4A/uxRMtH
NrI9Wv+Bp+zHMp1DtkfRqYxY5aPWP12+drl6B9kepdLpzfzb7eaOUyHJqsaC6w4gu5OCvfd9e/eARFva
/4bcMBs7zsG7okPC3UdumLVCcelNwSLRblmLyA3zcn3j7ov1TZLs6trmCHLDENGN5eevDrPZbPPZ6muS
pGpaXMlXVCNyExISEhKuPYbxDwvXtwz5x5voAAAAAElFTkSuQmCC
</value>
</data>
<data name="btJobCancle.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -556,7 +571,7 @@ If pressed while motion is moving, motion will also stop.
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0
dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh
d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABkQgCAgkMAAMxC
d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQgAAd0MAAAlD
AADIQgs=
</value>
</data>
@@ -564,7 +579,7 @@ If pressed while motion is moving, motion will also stop.
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0
dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh
d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAByQwCAgkMAAMxC
d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACiQwAAd0MAAAlD
AADIQgs=
</value>
</data>
@@ -572,7 +587,7 @@ If pressed while motion is moving, motion will also stop.
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0
dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh
d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAIDVQwCAgkMAAMxC
d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAEAPRAAAd0MAAAlD
AADIQgs=
</value>
</data>

View File

@@ -1,5 +1,8 @@
# ATV Reel Label Attach, Modify & Transfer System
Data Source=10.201.11.21,50150;Initial Catalog=WMS;Persist Security Info=True;User ID=wmsadm;Password=78#4AmWnh1!!;Encrypt=False;TrustServerCertificate=True
Data Source=V1SPCSQL,51122;Initial Catalog=WMS;Persist Security Info=True;User ID=wmsadm;Password="2!x2$yY8R;}$";Encrypt=False;TrustServerCertificate=True
## 개요
ATV(Automatic Test Vehicle) 릴 라벨 부착, 수정 및 전송을 위한 산업 자동화 시스템입니다. 이 시스템은 Windows Forms를 사용하여 C# (.NET Framework 4.8)로 구축되었으며, 모션 컨트롤러, 바코드 리더, 프린터, PLC 등 다양한 하드웨어 구성 요소와 통합됩니다.

View File

@@ -45,6 +45,7 @@
<ItemGroup>
<Compile Include="Enum.cs" />
<Compile Include="Enum_IO.cs" />
<Compile Include="Enum_Mot.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RS232.cs" />
</ItemGroup>

View File

@@ -82,10 +82,27 @@ namespace AR
Option_AutoConf,
Opt_SIDConvert,
Opt_ApplySIDConv,
Opt_ApplyWMSInfo,
Opt_ApplySIDInfo,
Opt_ApplyJobInfo,
Opt_CheckSIDExist,
Opt_WMS_Apply_PartNo,
Opt_WMS_Apply_CustCode,
Opt_WMS_Apply_SID,
Opt_WMS_Apply_VenderName,
Opt_WMS_Apply_batch,
Opt_WMS_Apply_qty,
Opt_WMS_Where_PartNo,
Opt_WMS_Where_CustCode,
Opt_WMS_Where_SID,
Opt_WMS_Where_VLOT,
Opt_WMS_Where_MC,
Opt_WMS_WriteServer,
Opt_SID_Apply_PartNo,
Opt_SID_Apply_CustCode,
Opt_SID_Apply_SID,
@@ -293,6 +310,9 @@ namespace AR
FG_MINSPACE,
FG_DEBUG,
FG_AUTOOUTCONVL,
FG_AUTOOUTCONVR,
VS_DETECT_REEL_L,
VS_DETECT_REEL_R,
VS_DETECT_CONV_L,
@@ -397,7 +417,6 @@ namespace AR
CONVR_RUNTIME,
}
public enum eECode : byte
{
@@ -405,13 +424,8 @@ namespace AR
EMERGENCY = 1,
NOMODELV = 2,//작업모델
NOMODELM = 3,//모션모델
//DOORSAFTY = 6,
//AREASAFTY = 7,
//VIS_LICENSE = 8,
HOME_TIMEOUT = 9,
//AIRNOOUT = 10,
NOFUNCTION = 11,
//AIRNOTDETECT = 12,
DOOFF = 27,//출력 off
DOON = 28,//출력 on
@@ -421,16 +435,9 @@ namespace AR
MESSAGE_INFO = 32,
MESSAGE_ERROR = 33,
//VISION_NOTREADY = 34,
//VISION_NOCONN = 35,
//VISION_TRIGERROR = 36,
//VISION_COMMERROR = 37,
//VISION_NORECV = 38,
AZJINIT = 39, //DIO 혹은 모션카드 초기화 X
//MOT_HSET = 41,
MOT_SVOFF = 42,
//MOT_HSEARCH = 43,
MOT_CMD = 71,
USER_STOP = 72,

View File

@@ -34,11 +34,11 @@ namespace AR
R_PICK_BW = 0x20, R_PICK_FW, R_PICK_VAC,
L_PICK_BW = 0x24, L_PICK_FW, L_PICK_VAC,
L_CONV1 = 0x30, L_CONV3 = 0x32, L_CONV4 = 0x33,
R_CONV1 = 0x34, R_CONV3 = 0x36, R_CONV4 = 0x37,
L_CONV1 = 0x30, L_CONV4 = 0x33,
R_CONV1 = 0x34, R_CONV4 = 0x37,
R_CYLUP = 0x38, R_CYLDN,
L_CYLUP = 0x3A, L_CYLDN,
L_CYLDN = 0x3A, L_CYLUP,
L_EXT_READY = 0x3E,
R_EXT_READY = 0x3F,
@@ -65,9 +65,9 @@ namespace AR
TWR_GRNF = 0x0D, TWR_YELF, TWR_REDF,
PORTL_MOT_RUN = 0x1A, PORTL_MOT_DIR, CART_MAG0,
PORTC_MOT_RUN = 0x10, PORTC_MOT_DIR, CART_MAG1,
PORTR_MOT_RUN = 0x14, PORTR_MOT_DIR, CART_MAG2,
PORTL_MOT_RUN = 0x1A, PORTL_MOT_DIR, PORTL_MAGNET,
PORTC_MOT_RUN = 0x10, PORTC_MOT_DIR, PORTC_MAGNET,
PORTR_MOT_RUN = 0x14, PORTR_MOT_DIR, PORTR_MAGNET,
PRINTL_VACO = 0x1E, PRINTL_VACI,
PRINTR_VACO = 0x18, PRINTR_VACI,
@@ -75,11 +75,8 @@ namespace AR
PICK_VAC1 = 0x23, PICK_VAC2, PICK_VAC3, PICK_VAC4,
SVR_PWR_0 = 0x28, SVR_PWR_1, SVR_PWR_2, SVR_PWR_3, SVR_PWR_4, SVR_PWR_5, SVR_PWR_6,
R_CYLDN = 0x38, L_CYLDN = 0x39,
PRINTL_FWD = 0x38, R_CYLDN = 0x39,
LEFT_CONV = 0x3A, RIGHT_CONV = 0x3B,
PRINTL_FWD = 0x3D,
PRINTR_FWD = 0x3C,
//SVR_EMG_0 = 0x30, SVR_EMG_1, SVR_EMG_2, SVR_EMG_3, SVR_EMG_4, SVR_EMG_5, SVR_EMG_6,
PRINTR_FWD = 0x3C, L_CYLDN = 0x3D,
}
}

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project
namespace AR
{
/// <summary>
@@ -30,6 +30,6 @@ namespace Project
PrinterL_UpDn,
PrinterR_Move,
PrinterR_UpDn,
Spare_00,
Theta,
}
}

View File

@@ -16,28 +16,26 @@ namespace AR
{
this.filename = UTIL.MakePath("Data", "Setting.xml");
}
public string WebAPI_R1 { get; set; }
public string WebAPI_R2 { get; set; }
public string WebAPI_R3 { get; set; }
#region "log"
[Category("System Log - Main")]
public Boolean Log_CameraConn { get; set; }
[Category("System Log - Main"), DisplayName("Digital Input"),
Description("입/출력 장치의 상태 변화를 기록 합니다.")]
Description("Records status changes of input/output devices.")]
public Boolean Log_DI { get; set; }
[Category("System Log - Main"), DisplayName("Digital Output"),
Description("입/출력 장치의 상태 변화를 기록 합니다.")]
Description("Records status changes of input/output devices.")]
public Boolean Log_DO { get; set; }
[Category("System Log - Main"), DisplayName("Network Alive Check(Ping)"),
Description("디버그 메세지 사용")]
Description("Use debug messages")]
public Boolean Log_Debug { get; set; }
[Category("System Log - Main"), DisplayName("S/M Step Change"),
Description("상태머신의 변화 상태를 기록 합니다.")]
Description("Records state machine transition status.")]
public Boolean Log_StepChange { get; set; }
[Category("System Log - Main"), DisplayName("Motion State Change"),
Description("모션 상태 변화를 기록 합니다.")]
Description("Records motion state changes.")]
public Boolean Log_motState { get; set; }
[Category("System Log - Main")]
public Boolean Log_flag { get; set; }
@@ -57,32 +55,23 @@ namespace AR
[Category("Communication"), DisplayName("키엔스바코드IP(LEFT)"), Description("키엔스 바코드 프로그램의 접속 IP Address")]
[Category("Communication"), DisplayName("Keynece IP(Front)"), Description("Keyence Barcode IP Address")]
public string Keyence_IPF { get; set; }
[Category("Communication"), DisplayName("키엔스바코드IP(RIGHT)"), Description("키엔스 바코드 프로그램의 접속 IP Address")]
[Category("Communication"), DisplayName("Keyence IP(Rear)"), Description("Keyence Barcode IP Address")]
public string Keyence_IPR { get; set; }
[Category("Communication"), DisplayName("키엔스통신포트"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Communication"), DisplayName("Keyence Port"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Keyence_Port { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Communication"), DisplayName("Left Printer (Port)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string PrintL_Port { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Communication"), DisplayName("Left Printer (Baud)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int PrintL_Baud { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Communication"), DisplayName("Right Printer (Port)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string PrintR_Port { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Communication"), DisplayName("Right Printer (Baud)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int PrintR_Baud { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public bool PrintL_RS232 { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public bool PrintR_RS232 { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string PrintL_AddSend { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string PrintR_AddSend { get; set; }
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
@@ -98,27 +87,29 @@ namespace AR
[Category("Timeout Setting"), DisplayName(), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_AutoConfirm { get; set; }
[Category("Timeout Setting"), DisplayName("작업 완료 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Job completion wait time (sec)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_JOBEnd { get; set; }
[Category("Timeout Setting"), DisplayName("최대비젼분석시간(로더)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Max vision analysis time (Loader)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_VisionProcessL { get; set; }
[Category("Timeout Setting"), DisplayName("최대비젼분석시간(언로더)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Max vision analysis time (Unloader)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_VisionProcessU { get; set; }
[Category("Timeout Setting"), DisplayName("장비 초기화 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Equipment initialization wait time (sec)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_HomeSearch { get; set; }
[Category("Timeout Setting"), DisplayName("개별 동작의 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Individual operation wait time (sec)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public double Timeout_StepMaxTime { get; set; }
[Category("Timeout Setting"), DisplayName("모션의 최대 동작시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Max motion operation time (sec)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_MotionCommand { get; set; }
[Category("Timeout Setting"), DisplayName("DIO의 최대 동작시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Timeout Setting"), DisplayName("Max DIO operation time (sec)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_DIOCommand { get; set; }
[Category("Timeout Setting"), DisplayName("Auto Conveyor output time (sec)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Timeout_AutoOutConvSignal { get; set; }
#endregion
@@ -135,7 +126,7 @@ namespace AR
#region "Advanced Parameter"
[Category("Advanced Parameter"), DisplayName("Remote Contoller Port"), Description("디버그 포트 정보(시리얼통신), 입력 예) COM1:9600"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Advanced Parameter"), DisplayName("Remote Controller Port"), Description("Debug port info (serial communication), Input example) COM1:9600"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Serial_Remocon { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
@@ -198,38 +189,26 @@ namespace AR
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public bool Disable_vacum { get; set; }
[Category("Advanced Parameter"), DisplayName("*.속도제한")]
[Category("Advanced Parameter"), DisplayName("*.Speed Limit")]
public Boolean Enable_SpeedLimit { get; set; }
[Category("Advanced Parameter"), DisplayName("*.최대속도"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Advanced Parameter"), DisplayName("*.Max Speed"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int LimitSpeed { get; set; }
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_SidQtyCheck { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis0 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis1 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis2 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis3 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis4 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis5 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Disable_Axis6 { get; set; }
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean EnableDebugMode { get; set; }
//[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
//public int AutoConveyorReelOut { get; set; }
#endregion
#region "function"
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Force_JobEndBuzzer { get; set; }
[Browsable(false)]
public Boolean Disable_Buzzer { get; set; }
@@ -252,36 +231,36 @@ namespace AR
return di.FullName;
}
[Category("Function"), DisplayName("라벨QR코드검증"), Description("부착된 라벨의 QR코드를 인쇄데이터와 검증 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Function"), DisplayName("Label QR Code Verification"), Description("Verifies QR code of attached label with print data"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Enable_Unloader_QRValidation { get; set; }
[Category("Function"), DisplayName("촬영이미지저장"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Function"), DisplayName("Save Captured Images"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Save_Image { get; set; }
[Category("Function"), DisplayName("피커자동이동(전면도어)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Function"), DisplayName("Picker Auto Move (Front Door)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean PickerAutoMoveForDoor { get; set; }
[Category("Function"), DisplayName("Data Save Path"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Path_Data { get; set; }
[Category("Function"), Browsable(false), DisplayName("실내등 자동 제어"),
Description("도어 상태에 따라서 내부 조명을 자동 ON/OFF 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Function"), Browsable(false), DisplayName("Room Light Auto Control"),
Description("Automatically turns room light ON/OFF according to door status"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean Enable_AutoLight { get; set; }
//[Category("Function"), DisplayName("AIR OFF Timer(ms)"),
//Description("공압 OFF시 유지 시간(ms), 지정 시간 동안 스위치를 ON 시켜야 공압이 OFF 됩니다.")]
//public int AirOFFTimer { get; set; }
[Category("Function"), DisplayName("부저 동작시간(ms)"),
Description("부저 발생시 지정된 시간(ms) 동안 부저가 울립니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Function"), DisplayName("Buzzer Duration (ms)"),
Description("Buzzer sounds for specified duration (ms) when triggered"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int buzz_run_ms { get; set; }
#endregion
#region "Vision"
[Category("Vision"), DisplayName("13' 이미지 중앙 위치"), Description("키엔스 이미지의 회전축 좌표")]
[Category("Vision"), DisplayName("13' Image Center Position"), Description("Keyence image rotation axis coordinates")]
public System.Drawing.Point CenterPosition13 { get; set; }
[Category("Vision"), DisplayName("7' 이미지 중앙 위치"), Description("키엔트 이미지의 회전축 좌표")]
[Category("Vision"), DisplayName("7' Image Center Position"), Description("Keyence image rotation axis coordinates")]
public System.Drawing.Point CenterPosition7 { get; set; }
[Category("Vision"), DisplayName("Disable Left Camera"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
@@ -308,66 +287,66 @@ namespace AR
#region "Count Reset Setting"
[Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Enable"),
Description("오전 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("AM reset enabled\nSet to True to reset work count"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean datetime_Check_1 { get; set; }
[Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Enable"),
Description("오후 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("PM reset enabled\nSet to True to reset work count"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean datetime_Check_2 { get; set; }
[Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Time(HH:mm)"),
Description("오전 초기화 시간(시:분)\n예) 09:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("AM reset time(HH:mm)\nExample) 09:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string datetime_Reset_1 { get; set; }
[Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Time(HH:mm)"),
Description("오후 초기화 시간(시:분)\n예) 19:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("PM reset time(HH:mm)\nExample) 19:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string datetime_Reset_2 { get; set; }
#endregion
#region "Sensitive"
[Category("Sensitive"), DisplayName("언/로더포트 감지(fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Sensitive"), DisplayName("Un/Loader Port Detect (fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort PortDetectFall { get; set; }
[Category("Sensitive"), DisplayName("언/로더포트 감지(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Sensitive"), DisplayName("Un/Loader Port Detect (rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort PortDetectRise { get; set; }
[Category("Sensitive"), DisplayName("도어 감지센서(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Sensitive"), DisplayName("Door Detection Sensor (rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort SaftyDetectRise { get; set; }
[Category("Sensitive"), DisplayName("도어 감지센서(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Sensitive"), DisplayName("Door Detection Sensor (fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort SaftyDetectFall { get; set; }
[Category("Sensitive"), DisplayName("AIR 버튼(rise/fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Sensitive"), DisplayName("AIR Button (rise/fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort AirChange { get; set; }
#endregion
#region "Operation Delay"
[Category("Operation Delay(ms)"), DisplayName("라벨 붙인 후 대기 시간"), Description("라벨 부착 후 PURGE 대기 시간"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(ms)"), DisplayName("Wait time after label attach"), Description("PURGE wait time after label attachment"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int PrintVacOffPurgeMS { get; set; }
[Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(좌)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Cart detect wait time (Left)"), Description("Cart will be HELD after specified time - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort WaitTime_Magnet0 { get; set; }
[Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(중앙)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Cart detect wait time (Center)"), Description("Cart will be HELD after specified time - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort WaitTime_Magnet1 { get; set; }
[Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(우)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다 - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Cart detect wait time (Right)"), Description("Cart will be HELD after specified time - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort WaitTime_Magnet2 { get; set; }
[Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(좌s)"), Description("프린터 라벨 출력 후 대기 시간(좌)- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Print wait time (Left)"), Description("Wait time after printer label output (Left) - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int PrintLWaitMS { get; set; }
[Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(우)"), Description("프린터 라벨 출력 후 대기 시간(우)- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Print wait time (Right)"), Description("Wait time after printer label output (Right) - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int PrintRWaitMS { get; set; }
[Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Unloader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Port Down Time (Unloader)"), Description("Port descends for specified time during alignment"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float PortAlignDownTimeU { get; set; }
[Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Loader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Port Down Time (Loader)"), Description("Port descends for specified time during alignment"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float PortAlignDownTimeL { get; set; }
[Category("Operation Delay(sec)"), DisplayName("Loder포트 하강 시간(Finish)"), Description("작업 완료 후 지정된 시간(ms) 만큼 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Operation Delay(sec)"), DisplayName("Loader Port Down Time (Finish)"), Description("Descends for specified time (ms) after job completion"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public ushort Port1FisnishDownTime { get; set; }
#endregion
#region "GENERAL
[Category("General Setting"), DisplayName("내부조명자동OFF시간(분)")]
[Category("General Setting"), DisplayName("Room Light Auto OFF Time (min)")]
public int AutoOffRoomLightMin { get; set; }
[Category("General Setting"), DisplayName("장비 자산 번호"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("General Setting"), DisplayName("Equipment Asset Number"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Asset { get; set; }
[Category("General Setting"), DisplayName("장비식별이름"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("General Setting"), DisplayName("Equipment Name"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string McName { get; set; }
[Category("General Setting"), DisplayName("무시바코드"), Description("입려된 값으로 시작하는 바코드를 무시합니다. 여러개 입력하려면 콤마(,) 로 구분 하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("General Setting"), DisplayName("Ignore Barcode"), Description("Ignores barcodes starting with entered value. Separate multiple entries with comma (,)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string IgnoreBarcode { get; set; }
[Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
@@ -390,19 +369,15 @@ namespace AR
//public Boolean STDLabelFormat7 { get; set; }
#region "Printer"
[Category("Printer"), DisplayName("바코드 외곽 박스 그리기"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("Printer"), DisplayName("Draw Barcode Outer Box"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean DrawOutbox { get; set; }
#endregion
[Category("Joystick"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Jostick_vid { get; set; }
[Category("Joystick"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int Jostick_pid { get; set; }
[DisplayName("바코드위치별회전(뒤)")]
[DisplayName("Barcode Position Rotation (Rear)")]
public float RearBarcodeRotate { get; set; }
[DisplayName("바코드위치별회전(앞)")]
[DisplayName("Barcode Position Rotation (Front)")]
public float FrontBarcodeRotate { get; set; }
[Browsable(false)]
@@ -413,14 +388,14 @@ namespace AR
[Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Sidinfofilename { get; set; }
[Category("General Setting"), DisplayName("버그리포트수신자"), Description("버그리포트 수신자 목록, 다중 목록의 각 대상은 세미콜론으로 구분 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
[Category("General Setting"), DisplayName("Bug Report Recipients"), Description("Bug report recipient list. Separate multiple recipients with semicolon"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string BugreportToList { get; set; }
[Category("General Setting"), Browsable(false),
Description("데이터 자동 소거 기간(일) 비활성=0"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("Data auto-delete period (days) disabled=0"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int AutoDeleteDay { get; set; }
[Category("General Setting"), Browsable(false),
Description("데이터 자동 소거 조건(남은용량 %)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("Data auto-delete condition (remaining capacity %)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int AutoDeleteThreshold { get; set; }
[Category("General Setting"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
@@ -430,7 +405,7 @@ namespace AR
public string Language { get; set; }
[Category("General Setting"), DisplayName("Full Screen Window State"),
Description("화면을 전체화면으로 사용 합니다."), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
Description("Use full screen mode."), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public Boolean FullScreen { get; set; }
@@ -453,15 +428,15 @@ namespace AR
#region "Report"
[Category("Report"),
Description("상태기록시 장비 식별코드(4자리)"),
Description("Equipment identification code for status recording (4 digits)"),
DisplayName("M/C ID")]
public string MCID { get; set; }
[Category("Report"),
Description("작업 기록을 장비기술(EE) Database 에 기록 합니다. 원격으로 장비 현황을 모니터링 할 수 있습니다"),
Description("Saves work records to Equipment Engineering (EE) Database. Allows remote monitoring of equipment status"),
DisplayName("SAVE EE-DB")]
public Boolean Save_EEDatabase { get; set; }
[Category("Report"), Description("상태값을 전송하는 간격(초)")]
[Category("Report"), Description("Status transmission interval (sec)")]
public int StatusInterval { get; set; }
#endregion
@@ -475,23 +450,17 @@ namespace AR
public override void AfterLoad()
{
if (Timeout_AutoOutConvSignal < 1) Timeout_AutoOutConvSignal = 5;
if (WMS_CENTER_CD.isEmpty()) WMS_CENTER_CD = "V1";
if (WMS_PROGRAM_ID.isEmpty()) WMS_PROGRAM_ID = "LABEL ATTACH";
if (WMS_REG_USERID.isEmpty()) WMS_REG_USERID = "ATVLA1";
if (WebAPI_R1.isEmpty()) WebAPI_R1 = "http://10.131.32.31:9001";
if (WebAPI_R2.isEmpty()) WebAPI_R2 = "http://10.131.32.24:9001";
if (WebAPI_R3.isEmpty()) WebAPI_R3 = "http://10.131.32.22:9001";
if (swplc_size < 1) swplc_size = 100;
if (swplc_name.isEmpty()) swplc_name = "swplc";
if (StatusInterval < 10) StatusInterval = 300; //5분간격
var currentpath = AppDomain.CurrentDomain.BaseDirectory;
if (AutoOffRoomLightMin == 0) AutoOffRoomLightMin = 5;
if (RetryPickOnAngle == 0) RetryPickOnAngle = 79;
if (Barcode_Baud == 0) Barcode_Baud = 9600;
@@ -530,9 +499,6 @@ namespace AR
PortAlignDownTimeU = 1.0f;
}
if (Jostick_vid == 0) Jostick_vid = 121;
if (Jostick_pid == 0) Jostick_pid = 17;
if (PrintLWaitMS == 0) PrintLWaitMS = 1500;
if (PrintRWaitMS == 0) PrintRWaitMS = 1500;

View File

@@ -6,7 +6,7 @@ using System.ComponentModel;
namespace AR
{
public class CounterSetting : Setting
public class CountSetting : Setting
{
public int seq { get; set; }
public string DateStr { get; set; }
@@ -62,7 +62,7 @@ namespace AR
public int CountV2 { get; set; }
public CounterSetting()
public CountSetting()
{
this.filename = AR.UTIL.MakePath("Data", "counter.xml");
}

View File

@@ -6,7 +6,7 @@ namespace AR
public static class SETTING
{
public static SystemSetting System;
public static CounterSetting Counter;
public static CountSetting Counter;
public static CommonSetting Data;
public static UserSetting User;
public static Boolean isInit { get; private set; } = false;
@@ -18,7 +18,7 @@ namespace AR
User.Load();
if (System == null) System = new SystemSetting();
System.Load();
if (Counter == null) Counter = new CounterSetting();
if (Counter == null) Counter = new CountSetting();
Counter.Load();
isInit = true;
}

View File

@@ -49,12 +49,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Common.cs" />
<Compile Include="CounterSetting.cs" />
<Compile Include="Model\Common.cs" />
<Compile Include="Model\Count.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SETTING.cs" />
<Compile Include="System_Setting.cs" />
<Compile Include="UserSetting.cs" />
<Compile Include="Model\System.cs" />
<Compile Include="Model\User.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -73,6 +73,17 @@ namespace UIControl
public bool CVRightReady = false;
#endregion
RectangleF rect_vision = RectangleF.Empty;
public string arVision_RID { get; set; }
public string arVision_SID { get; set; }
RectangleF rect_zlaxis = RectangleF.Empty;// new RectangleF((float)motZLPosX, (float)motZPosY, motZwPx, (float)motZhPx);
public Boolean arVisionProcessL { get; set; }
public Boolean arVisionProcessC { get; set; }
public Boolean arVisionProcessR { get; set; }
#region "Property"
public int arCountV0 { get; set; }
@@ -919,13 +930,13 @@ namespace UIControl
g.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), crect);
if (arPickerSafeZone)
g.DrawString("홈 검색이 가능합니다", new Font("맑은 고딕", 20, FontStyle.Bold), Brushes.Lime, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
g.DrawString("Home search is possible", new Font("Tahoma", 20, FontStyle.Bold), Brushes.Lime, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
else
{
if (MessageOn)
g.DrawString("피커를 움직여 안전위치로 이동하세요", new Font("맑은 고딕", 12, FontStyle.Bold), Brushes.Red, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
g.DrawString("Move the picker to a safe position", new Font("Tahoma", 12, FontStyle.Bold), Brushes.Red, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
else
g.DrawString("피커를 움직여 안전위치로 이동하세요", new Font("맑은 고딕", 12, FontStyle.Bold), Brushes.White, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
g.DrawString("Move the picker to a safe position", new Font("Tahoma", 12, FontStyle.Bold), Brushes.White, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
}
g.DrawRect(crect, Color.White, 5);
@@ -1025,24 +1036,12 @@ namespace UIControl
void Scean_Normal(Graphics g)
{
//Draw_Icon(g);
//전체 영역 테두리
g.DrawRectangle(new Pen(Color.White, 2), rect_main.Left, rect_main.Top, rect_main.Width, rect_main.Height);
//컨베어 그리기
//Draw_Conveyor(g, rect_conveyor);
//셔틀표시
//Draw_BallScrewRail(g, rect_frontShuttle, 50, 5, false, true, this.arMOT_Origin[(int)eAxis.X_F], arMOT_LimDn[(int)eAxis.X_F], arMOT_LimUp[(int)eAxis.X_F]);
//포트표시(셔틀위에 표시됨)
Draw_Port(g); //front
Draw_Vision(g);
//프린터영역그리기 201228
var printareahei = 50;
@@ -1051,37 +1050,24 @@ namespace UIControl
var rectpl = new RectangleF(arVar_Port[0].Rect.Right + printbordersize, arVar_Port[0].Rect.Top - 85, printareaw, printareahei);
var fColorPrn = arFGPrinter0END ? Color.Lime : (arFGPrinter0RDY ? Color.Gold : Color.Gray);
g.DrawRect(rectpl, fColorPrn, printbordersize);
var prnstrbase = "";// "인쇄수량:" + arCountPrint0.ToString("000") + "\n";
var prnstr = prnstrbase + (arFGPrinter0END ? "인쇄완료" : (arFGPrinter0RDY ? "인쇄중" : "인쇄대기"));
var prnstrbase = "";// "Print Qty:" + arCountPrint0.ToString("000") + "\n";
var prnstr = prnstrbase + (arFGPrinter0END ? "Print Complete" : (arFGPrinter0RDY ? "Printing" : "Print Ready"));
prnstr += "\n" + arCountPrint0.ToString("0000");
g.DrawString(prnstr, new Font("맑은 고딕", 10, FontStyle.Bold), new SolidBrush(fColorPrn), rectpl,
g.DrawString(prnstr, new Font("Tahoma", 10, FontStyle.Bold), new SolidBrush(fColorPrn), rectpl,
new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
//g.DrawString(string.Format("AIR:{0}\nVI:{1}\nVO:{2}", PrintLAIRO, PrintLVACI, PrintLVACO), new Font("Consolas", 11, FontStyle.Bold),
// Brushes.Tomato, rectpl.Left, rectpl.Top);
rectpl = new RectangleF(arVar_Port[2].Rect.Left - 90 - printbordersize, arVar_Port[2].Rect.Top - 85, printareaw, printareahei);
fColorPrn = arFGPrinter1END ? Color.Lime : (arFGPrinter1RDY ? Color.Gold : Color.Gray);
g.DrawRect(rectpl, fColorPrn, printbordersize);
prnstrbase = "";// "인쇄수량:" + arCountPrint1.ToString("000") + "\n";
prnstr = prnstrbase + (arFGPrinter1END ? "인쇄완료" : (arFGPrinter1RDY ? "인쇄중" : "인쇄대기"));
prnstrbase = "";// "Print Qty:" + arCountPrint1.ToString("000") + "\n";
prnstr = prnstrbase + (arFGPrinter1END ? "Print Complete" : (arFGPrinter1RDY ? "Printing" : "Print Ready"));
prnstr += "\n" + arCountPrint1.ToString("0000");
g.DrawString(prnstr, new Font("맑은 고딕", 10, FontStyle.Bold), new SolidBrush(fColorPrn), rectpl,
g.DrawString(prnstr, new Font("Tahoma", 10, FontStyle.Bold), new SolidBrush(fColorPrn), rectpl,
new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
//g.DrawString(string.Format("AIR:{0}\nVI:{1}\nVO:{2}", PrintRAIRO, PrintRVACI, PrintRVACO), new Font("Consolas", 11, FontStyle.Bold),
// Brushes.Tomato, rectpl.Left, rectpl.Top);
//Y축 레일표시
//Draw_BallScrewRail(g, rect_picker, 50, 5, true, LockYP, this.arMOT_Origin[(int)eAxis.Y_P], arMOT_LimDn[(int)eAxis.Y_P], arMOT_LimUp[(int)eAxis.Y_P]);
//모터 Y/Z축
Draw_PickerY(g, rect_picker);
//왼쪽 프린터
Draw_PickerPrinter(g, rect_printl, 2, 3, false, arMotILockPLM, arMotILockPLZ, arPLItemON, PrintLPICK, L_PICK_FW, L_PICK_BW);
@@ -1089,14 +1075,11 @@ namespace UIControl
Draw_PickerPrinter(g, rect_printr, 4, 5, true, arMotILockPRM, arMotILockPRZ, arPRItemON, PrintRPICK, R_PICK_FW, R_PICK_BW);
//정보 표시 (나중에 제거해야함) 별도 인포박스형태를 취해야 함
Draw_Info(g, rect_conveyor);
Draw_Error(g);
//메뉴는 최상위에 표시한다
Draw_Menu(g);
//arDebugMode = true;
if (arDebugMode)
{
@@ -1111,16 +1094,6 @@ namespace UIControl
var sb2 = new System.Text.StringBuilder();
if (arVar_Port != null && arVar_Port.Length > 0)
{
//sb2.AppendLine(string.Format("입(PICKER)/출(SS:DET1)/겹침(SS:DET1) : {0}/{1}/{2}",
// ar_cnt_in, ar_cnt_out, ar_cnt_outdup));
//sb2.AppendLine(string.Format("바코드 입/출:CMD/DUP/READ/ERR/중복수신/할당실패 {0}/{1}:{2}/{3}/{4}/{5}/{6}/{7}",
// ar_cnt_barcodein, ar_cnt_barcodeot, ar_cnt_barcodecmd, ar_cnt_barcodedup, ar_cnt_barcoderead, ar_cnt_barcodereaderr, ar_cnt_barcodereaddup, ar_cnt_barcodeAssignErr));
//sb2.AppendLine(string.Format("언로더 입/출:CMD/DUP {0}/{1}:{2}/{3}",
// ar_cnt_plcin, ar_cnt_plcot, ar_cnt_plccmd, ar_cnt_plcdup));
sb.AppendLine(string.Format("DIO:{4},BCD:{5},PLC:{6}\n" +
"YP_RDY {7},{8},{9},{10}\n" +
"YP_CMD {7},{8},{9},{10}\n",
@@ -1134,62 +1107,9 @@ namespace UIControl
arFG_CMD_YP_FPICKON, arFG_CMD_YP_RPICKON));
}
var pad = 10;
using (Font f = new Font("맑은 고딕", 9))
{
var smgsize = g.MeasureString(sb.ToString(), f);
var dbgrect = new RectangleF(rect_main.Left + pad, rect_main.Top + pad, smgsize.Width + pad * 2f, smgsize.Height + pad * 2f);
//g.FillRectangle(new SolidBrush(Color.FromArgb(252, 0, 0, 0)), dbgrect);
//g.DrawString(sb.ToString(), f, Brushes.SkyBlue, dbgrect, new StringFormat { Alignment = StringAlignment.Near, LineAlignment = StringAlignment.Center });
}
}
}
void Draw_Info(Graphics g, RectangleF rect)
{
//디자인 모드에서는 표시하지 않는다 200714
//if (DesignMode == true) return;
//if (this.arFlag_UnloaderBusy) ShowPopupMessage(g, "언로더 작업 대기 중\nBUSY", Properties.Resources.info);
//if (this.arIsRunning)
//{
// if (this.arFlag_UnloaderErr == true) ShowPopupMessage(g, "언로더 오류 발생", "STOP된 언로더를 확인하세요", Properties.Resources.error, false);
// else if (this.arFlag_WaitPLC && arUnloaderSeq > 0)
// {
// if (arUnloaderSeq == 1) ShowPopupMessage(g, "언로더 작업 대기 중", "상태확인(#1)", Properties.Resources.info, false);
// else if (arUnloaderSeq == 2) ShowPopupMessage(g, "언로더 작업 대기 중", "BUSY(#2)", Properties.Resources.info, false);
// else if (arUnloaderSeq == 3) ShowPopupMessage(g, "언로더 작업 대기 중", "ITEM CHECK(#3)", Properties.Resources.info, false);
// else if (arUnloaderSeq == 4) ShowPopupMessage(g, "언로더 작업 대기 중", "NO SETTING(#4)", Properties.Resources.info, false);
// else if (arUnloaderSeq == 5) ShowPopupMessage(g, "언로더 작업 대기 중", "SIZE SETTING(#5)", Properties.Resources.info, false);
// else if (arUnloaderSeq == 6) ShowPopupMessage(g, "언로더 작업 대기 중", "No.ZERO CHECK(#6)", Properties.Resources.info, false);
// }
//}
}
//void Draw_PickerRail(Graphics g, RectangleF rect)
//{
// RectangleF rectRailL = new RectangleF(rect.Left, rect.Top, rect.Width / 2.0f + 1, rect.Height);
// RectangleF rectRailR = new RectangleF(rect.Left + rect.Width / 2.0f, rect.Top, rect.Width / 2.0f, rect.Height);
// var brR = new LinearGradientBrush(rect, Color.FromArgb(60, 60, 60), Color.FromArgb(80, 80, 80), LinearGradientMode.Horizontal);
// var brL = new LinearGradientBrush(rect, Color.FromArgb(80, 80, 80), Color.FromArgb(60, 60, 60), LinearGradientMode.Horizontal);
// g.FillRectangle(brL, rectRailL);
// //g.FillRectangle(brR, rectRailR);
// brL.Dispose();
// brR.Dispose();
// g.DrawRectangle(Pens.DimGray, rect.Left, rect.Top, rect.Width, rect.Height);
//}
RectangleF rect_zlaxis = RectangleF.Empty;// new RectangleF((float)motZLPosX, (float)motZPosY, motZwPx, (float)motZhPx);
//RectangleF rect_zraxis = RectangleF.Empty;//new RectangleF((float)motZRPosX, (float)motZPosY, motZwPx, (float)motZhPx);
void Draw_Screw(Graphics g, Rectangle rect)
{
//모터표시(X축)
@@ -1207,22 +1127,7 @@ namespace UIControl
g.DrawLine(p, pt1, pt2);
}
p.Dispose();
//e.Graphics.DrawRectangle(Pens.Gray, motr_rect.Left, motr_rect.Top, motr_rect.Width, motr_rect.Height);
//e.Graphics.DrawRectangle(Pens.Gray, motf_rect.Left, motf_rect.Top, motf_rect.Width, motf_rect.Height);
//RectangleF rectRailT = new RectangleF(rect.Left, rect.Top, rect.Width, rect.Height / 2.0f + 1);
//RectangleF rectRailB = new RectangleF(rect.Left, rect.Top + rect.Height / 2.0f, rect.Width, rect.Height / 2.0f);
//var brR = new LinearGradientBrush(rect, Color.FromArgb(100, 60, 60, 60), Color.FromArgb(100, 80, 80, 80), LinearGradientMode.Vertical);
//var brL = new LinearGradientBrush(rect, Color.FromArgb(100, 80, 80, 80), Color.FromArgb(100, 60, 60, 60), LinearGradientMode.Vertical);
////g.FillRectangle(brL, rectRailT);
////g.FillRectangle(brR, rectRailB);
//brL.Dispose();
//brR.Dispose();
g.DrawRectangle(new Pen(Color.FromArgb(50, Color.Gray)), rect.Left, rect.Top, rect.Width, rect.Height);
}
void Draw_BallScrewRail(Graphics g, RectangleF rect, int divCount, int alpha, Boolean downDirection, Boolean MLock, Boolean Org, Boolean LimDn, Boolean LimUp)
@@ -1291,11 +1196,11 @@ namespace UIControl
//디자인 모드에서는 표시하지 않는다 200714
if (DesignMode == true) return;
if (arConn_DIO && this.arDI_Emergency == true) ShowPopupMessage(g, "EMERGENCY BUTTON", "비상정지 확인\nEMERGENCY or POWER LOSS", Properties.Resources.error, true);
else if (this.arDI_SaftyOk == false) ShowPopupMessage(g, "SAFTY SENSOR", "안전 센서 확인", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_Alm[0] == true) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER 모터 알람 발생", Properties.Resources.error, true);
else if (arConn_MOT && this.arMOT_Alm[1] == true) ShowPopupMessage(g, "SERVO ALARM", "Z-FRONT 모터 알람 발생", Properties.Resources.error, true);
else if (arConn_MOT && this.arMOT_Alm[2] == true) ShowPopupMessage(g, "SERVO ALARM", "Z-REAR 모터 알람 발생", Properties.Resources.error, true);
if (arConn_DIO && this.arDI_Emergency == true) ShowPopupMessage(g, "EMERGENCY BUTTON", "Check emergency stop\nEMERGENCY or POWER LOSS", Properties.Resources.error, true);
else if (this.arDI_SaftyOk == false) ShowPopupMessage(g, "SAFTY SENSOR", "Check safety sensor", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_Alm[0] == true) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER motor alarm occurred", Properties.Resources.error, true);
else if (arConn_MOT && this.arMOT_Alm[1] == true) ShowPopupMessage(g, "SERVO ALARM", "Z-FRONT motor alarm occurred", Properties.Resources.error, true);
else if (arConn_MOT && this.arMOT_Alm[2] == true) ShowPopupMessage(g, "SERVO ALARM", "Z-REAR motor alarm occurred", Properties.Resources.error, true);
else if (arConn_MOT && this.arMOT_SVOn[0] == false) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER\nSERVO-OFF", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_SVOn[1] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-PICKER\nSERVO-OFF", Properties.Resources.alert, true);
@@ -1303,7 +1208,7 @@ namespace UIControl
else if (arConn_MOT && this.arMOT_SVOn[3] == false) ShowPopupMessage(g, "SERVO ALARM", "L-PRINT-Z\nSERVO-OFF", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_SVOn[4] == false) ShowPopupMessage(g, "SERVO ALARM", "R-PRINT-Y\nSERVO-OFF", Properties.Resources.alert, true);
else if (arConn_DIO && this.arAIRDetect == false) ShowPopupMessage(g, "AIR DETECT", "*전면의 AIR버튼(청색)을 눌러 AIR를 공급하세요\n* AIR 라인을 확인하세요", Properties.Resources.error, true);
else if (arConn_DIO && this.arAIRDetect == false) ShowPopupMessage(g, "AIR DETECT", "*Press the blue AIR button on the front to supply AIR\n* Check the AIR line", Properties.Resources.error, true);
else if (arConn_MOT && (this.arMOT_HSet[0] == false || this.arMOT_HSet[1] == false || this.arMOT_HSet[2] == false))
{
@@ -1313,33 +1218,22 @@ namespace UIControl
if (arVar_Port[1].SaftyErr == true) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "," : string.Empty) + "DOOR:CENTER";
if (arVar_Port[2].SaftyErr == true) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "," : string.Empty) + "DOOR:RIGHT";
if (arPickerSafeZone == false) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "\n" : string.Empty) + "피커안전위치 : OFF";
else SaftyMessage += "피커안전위치 : ON"; ;
if (arPickerSafeZone == false) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "\n" : string.Empty) + "Picker safety position: OFF";
else SaftyMessage += "Picker safety position: ON"; ;
ShowPopupMessage(g, "SYSTEM NOT READY", "초기화가 필요 합니다\n" + SaftyMessage, Properties.Resources.error, true);
ShowPopupMessage(g, "SYSTEM NOT READY", "Initialization required\n" + SaftyMessage, Properties.Resources.error, true);
}
else if (arConn_MOT && this.arMOT_HSet[0] == false) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER 홈 검색 필요", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_HSet[1] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-FRONT 홈 검색 필요", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_HSet[2] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-REAR 홈 검색 필요", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_HSet[0] == false) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER home search required", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_HSet[1] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-FRONT home search required", Properties.Resources.alert, true);
else if (arConn_MOT && this.arMOT_HSet[2] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-REAR home search required", Properties.Resources.alert, true);
else if (arVar_Port[0].OverLoad) ShowPopupMessage(g, "## OVERLOAD ##", "FRONT-LEFT", Properties.Resources.alert, true);
else if (arVar_Port[1].OverLoad) ShowPopupMessage(g, "## OVERLOAD ##", "FRONT-RIGHT", Properties.Resources.alert, true);
//else if (arFlag_UnloaderBusy) ShowPopupMessage(g, "## UNLOADER ##\nBUSY", Properties.Resources.alert);
//else if (arFlag_UnloaderErr) ShowPopupMessage(g, "## UNLOADER ##\nERROR", Properties.Resources.alert);
}
void Draw_Menu(Graphics g)
{
//var buttonOk = new CMenuButton("OK", "1");
//var buttonNo = new CMenuButton("CANCLE", "0");
//var newmenu = new CMenu("body str", "title", eMsgIcon.Error, buttonOk, buttonNo)
//{
// BorderColor = Color.Gray
//};
//this.menus.Push(newmenu);
if (arMenus == null || arMenus.Length < 1) { this.HasPopupMenu = false; return; }
else HasPopupMenu = true;
@@ -1434,18 +1328,7 @@ namespace UIControl
g.DrawString(item.Text, item.Font, new SolidBrush(item.ForeColor), rectC);
}
//외각 테두리
//g.DrawRectangle(new Pen(Color.FromArgb(20,20,20), 10) { Alignment = PenAlignment.Center }, rect.Left + 1, rect.Top + 1, rect.Width, rect.Height);
g.DrawRectangle(new Pen(Color.FromArgb(180, 180, 180), 10) { Alignment = PenAlignment.Center }, rect.Left, rect.Top, rect.Width, rect.Height);
//g.DrawRectangle(Pens.Black, rect.Left, rect.Top, rect.Width, rect.Height);
//g.DrawRectangle(Pens.Red, rectT); //제목표시줄
//g.DrawRectangle(Pens.Blue, rectI); //아이콘
//g.DrawRectangle(Pens.Green, rectB); //버튼영역
//g.DrawRectangle(Pens.Black, rectC); //본문영역
}
void ShowMaskLayer(Graphics g, Color maskColor)
@@ -1454,18 +1337,11 @@ namespace UIControl
}
public Font MessageBody { get; set; } = new Font("맑은 고딕", 20, FontStyle.Bold);
public Font MessageTitle { get; set; } = new Font("맑은 고딕", 10, FontStyle.Bold);
public Font MessageBody { get; set; } = new Font("Tahoma", 20, FontStyle.Bold);
public Font MessageTitle { get; set; } = new Font("Tahoma", 10, FontStyle.Bold);
void ShowPopupMessage(Graphics g, string title, string msg, Image icon, Boolean isError)
{
//팝업표시할때마다 배경 마스킹을 한다
//var maskColor = Color.FromArgb(100, Color.White);
//ShowMaskLayer(g, maskColor);
//var msgf = new Font("맑은 고딕", 20, FontStyle.Bold);
//var msgt = new Font("맑은 고딕", 10, FontStyle.Bold);
if (isError == false)
{
//팝업표시할때마다 배경 마스킹을 한다
@@ -1546,9 +1422,6 @@ namespace UIControl
if (errstep < 255) errstep += 1;
else errstep = 0;
}
//msgf.Dispose();
//msgt.Dispose();
}
void Draw_Port(Graphics g)
@@ -1557,7 +1430,7 @@ namespace UIControl
var convmode = VAR.BOOL?[eVarBool.Use_Conveyor] ?? false;
using (Font fCnt = new Font("consolas", fSizeCnt, FontStyle.Bold))
{
using (Font fMSg = new Font("맑은 고딕", 15, FontStyle.Bold))
using (Font fMSg = new Font("Tahoma", 15, FontStyle.Bold))
{
if (convmode)
this.arVar_Port[0].DisplayConv(g, fCnt, fMSg, arMagnet0, arFGVision0RDY, arFGVision0END, arPortLItemOn, arMotILockVS0, arCountV0, CVLeftBusy, CVLeftReady);
@@ -1574,65 +1447,8 @@ namespace UIControl
}
}
void Draw_Vision(Graphics g)
{
//var NewX0 = arVar_Port[0].Rect.Right;
//var NewXDist = arVar_Port[1].Rect.Left - arVar_Port[0].Rect.Right;
//var NewYDist = arVar_Port[0].Rect.Height;
//var NewY = arVar_Port[0].Rect.Top;
//var portw_Px = arVar_Port[0].Rect.Width;
////둘사이의 공간으로 처리한다
//var VisionRectSizePx = (int)Math.Min(NewXDist - 10, NewYDist - 10);
//rect_vision = new RectangleF(
// (float)(NewX0 + (NewXDist - VisionRectSizePx) / 2.0f),
// (float)(NewY + (NewYDist - VisionRectSizePx) / 2.0f),
// (float)VisionRectSizePx,
// (float)VisionRectSizePx);
//g.DrawEllipse(Pens.Gray, rect_vision);
////가운에 영역(10% 작은)에. 감지된 릴 모양을 그려준다
//var padval = rect_vision.Width * 0.05f;
//var rellrect = new RectangleF(
// rect_vision.Left + padval,
// rect_vision.Top + padval,
// rect_vision.Width - padval * 2,
// rect_vision.Height - padval * 2);
//if (arVisionProcessC)
//{
// using (LinearGradientBrush br = new LinearGradientBrush(rellrect, Color.Lime, Color.Green, LinearGradientMode.BackwardDiagonal))
// g.FillEllipse(br, rellrect);
// g.DrawEllipse(Pens.Lime, rellrect);
//}
//else
//{
// using (LinearGradientBrush br = new LinearGradientBrush(rellrect, Color.Yellow, Color.Gold, LinearGradientMode.BackwardDiagonal))
// g.FillEllipse(br, rellrect);
// g.DrawEllipse(Pens.Lime, rellrect);
//}
////감지상태를 글자료 표시해준다.
////비젼데이터가 있다면 그것을 사용해준다
//var msg = string.IsNullOrEmpty(arVision_RID) ? "REEL ON" : arVision_RID;
//using (var sb = new SolidBrush(Color.FromArgb(120, Color.Black)))
// g.DrawString(msg, this.Font, sb, rellrect,
// new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
}
RectangleF rect_vision = RectangleF.Empty;
public string arVision_RID { get; set; }
public string arVision_SID { get; set; }
public Boolean arVisionProcessL { get; set; }
public Boolean arVisionProcessC { get; set; }
public Boolean arVisionProcessR { get; set; }
private void Tm_Tick(object sender, EventArgs e)
{
@@ -1647,9 +1463,6 @@ namespace UIControl
else this.arVar_Port[i].arrowIndex = 1;
}
this.Invalidate();
// var ts = DateTime.Now - updatetime;
//if (ts.TotalMilliseconds >= tm.Interval) this.Invalidate();
}
}

Submodule Handler/swPLC updated: ed88f577cb...e583341e53

1375
SID Information/DSWms.Designer.cs generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

101
SID Information/DSWms.xsd Normal file
View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DSWms" targetNamespace="http://tempuri.org/DSWms.xsd" xmlns:mstns="http://tempuri.org/DSWms.xsd" xmlns="http://tempuri.org/DSWms.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections>
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="cs" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="cs (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.SIDConvInfoEditorII.Properties.Settings.GlobalReference.Default.cs" Provider="System.Data.SqlClient" />
</Connections>
<Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="VW_GET_MAX_QTY_VENDOR_LOTTableAdapter" GeneratorDataComponentClassName="VW_GET_MAX_QTY_VENDOR_LOTTableAdapter" Name="VW_GET_MAX_QTY_VENDOR_LOT" UserDataComponentName="VW_GET_MAX_QTY_VENDOR_LOTTableAdapter">
<MainSource>
<DbSource ConnectionRef="cs (Settings)" DbObjectName="WMS.dbo.VW_GET_MAX_QTY_VENDOR_LOT" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT *
FROM VW_GET_MAX_QTY_VENDOR_LOT</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="SID" DataSetColumn="SID" />
<Mapping SourceColumn="PART_NO" DataSetColumn="PART_NO" />
<Mapping SourceColumn="MFG_DATE" DataSetColumn="MFG_DATE" />
<Mapping SourceColumn="VENDOR_NM" DataSetColumn="VENDOR_NM" />
<Mapping SourceColumn="BATCH_NO" DataSetColumn="BATCH_NO" />
<Mapping SourceColumn="QTY" DataSetColumn="QTY" />
<Mapping SourceColumn="CUST_CODE" DataSetColumn="CUST_CODE" />
<Mapping SourceColumn="VENDOR_LOT" DataSetColumn="VENDOR_LOT" />
</Mappings>
<Sources />
</TableAdapter>
</Tables>
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DSWms" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DSWms" msprop:Generator_UserDSName="DSWms">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="VW_GET_MAX_QTY_VENDOR_LOT" msprop:Generator_TableClassName="VW_GET_MAX_QTY_VENDOR_LOTDataTable" msprop:Generator_TableVarName="tableVW_GET_MAX_QTY_VENDOR_LOT" msprop:Generator_TablePropName="VW_GET_MAX_QTY_VENDOR_LOT" msprop:Generator_RowDeletingName="VW_GET_MAX_QTY_VENDOR_LOTRowDeleting" msprop:Generator_RowChangingName="VW_GET_MAX_QTY_VENDOR_LOTRowChanging" msprop:Generator_RowEvHandlerName="VW_GET_MAX_QTY_VENDOR_LOTRowChangeEventHandler" msprop:Generator_RowDeletedName="VW_GET_MAX_QTY_VENDOR_LOTRowDeleted" msprop:Generator_UserTableName="VW_GET_MAX_QTY_VENDOR_LOT" msprop:Generator_RowChangedName="VW_GET_MAX_QTY_VENDOR_LOTRowChanged" msprop:Generator_RowEvArgName="VW_GET_MAX_QTY_VENDOR_LOTRowChangeEvent" msprop:Generator_RowClassName="VW_GET_MAX_QTY_VENDOR_LOTRow">
<xs:complexType>
<xs:sequence>
<xs:element name="SID" msprop:Generator_ColumnVarNameInTable="columnSID" msprop:Generator_ColumnPropNameInRow="SID" msprop:Generator_ColumnPropNameInTable="SIDColumn" msprop:Generator_UserColumnName="SID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PART_NO" msprop:Generator_ColumnVarNameInTable="columnPART_NO" msprop:Generator_ColumnPropNameInRow="PART_NO" msprop:Generator_ColumnPropNameInTable="PART_NOColumn" msprop:Generator_UserColumnName="PART_NO" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MFG_DATE" msprop:Generator_ColumnVarNameInTable="columnMFG_DATE" msprop:Generator_ColumnPropNameInRow="MFG_DATE" msprop:Generator_ColumnPropNameInTable="MFG_DATEColumn" msprop:Generator_UserColumnName="MFG_DATE" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="8" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="VENDOR_NM" msprop:Generator_ColumnVarNameInTable="columnVENDOR_NM" msprop:Generator_ColumnPropNameInRow="VENDOR_NM" msprop:Generator_ColumnPropNameInTable="VENDOR_NMColumn" msprop:Generator_UserColumnName="VENDOR_NM">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BATCH_NO" msprop:Generator_ColumnVarNameInTable="columnBATCH_NO" msprop:Generator_ColumnPropNameInRow="BATCH_NO" msprop:Generator_ColumnPropNameInTable="BATCH_NOColumn" msprop:Generator_UserColumnName="BATCH_NO" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="QTY" msprop:Generator_ColumnVarNameInTable="columnQTY" msprop:Generator_ColumnPropNameInRow="QTY" msprop:Generator_ColumnPropNameInTable="QTYColumn" msprop:Generator_UserColumnName="QTY" type="xs:decimal" minOccurs="0" />
<xs:element name="CUST_CODE" msprop:Generator_ColumnVarNameInTable="columnCUST_CODE" msprop:Generator_ColumnPropNameInRow="CUST_CODE" msprop:Generator_ColumnPropNameInTable="CUST_CODEColumn" msprop:Generator_UserColumnName="CUST_CODE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="VENDOR_LOT" msprop:Generator_ColumnVarNameInTable="columnVENDOR_LOT" msprop:Generator_ColumnPropNameInRow="VENDOR_LOT" msprop:Generator_ColumnPropNameInTable="VENDOR_LOTColumn" msprop:Generator_UserColumnName="VENDOR_LOT">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

12
SID Information/DSWms.xss Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="0" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:VW_GET_MAX_QTY_VENDOR_LOT" ZOrder="1" X="729" Y="229" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\..\amkor\STDLabelAttach%28ATV%29\SidInfo\</OutputPath>
<OutputPath>..\..\ReelSIDInfo\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
@@ -73,6 +73,11 @@
<DesignTime>True</DesignTime>
<DependentUpon>DataSet1.xsd</DependentUpon>
</Compile>
<Compile Include="DSWms.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DSWms.xsd</DependentUpon>
</Compile>
<Compile Include="fMain.cs">
<SubType>Form</SubType>
</Compile>
@@ -117,6 +122,17 @@
<None Include="DataSet1.xss">
<DependentUpon>DataSet1.xsd</DependentUpon>
</None>
<None Include="DSWms.xsc">
<DependentUpon>DSWms.xsd</DependentUpon>
</None>
<None Include="DSWms.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DSWms.Designer.cs</LastGenOutput>
</None>
<None Include="DSWms.xss">
<DependentUpon>DSWms.xsd</DependentUpon>
</None>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>

View File

@@ -29,16 +29,31 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMain));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage4 = new System.Windows.Forms.TabPage();
this.dvWMS = new System.Windows.Forms.DataGridView();
this.sIDDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.pARTNODataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.mFGDATEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.vENDORNMDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.bATCHNODataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.cUSTCODEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.vENDORLOTDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.bsWMS = new System.Windows.Forms.BindingSource(this.components);
this.dSWms = new SIDConvInfoEditorII.DSWms();
this.panel3 = new System.Windows.Forms.Panel();
this.tbFindWMS = new System.Windows.Forms.TextBox();
this.btFindWMS = new System.Windows.Forms.Button();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.dvI = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -142,7 +157,13 @@
this.tam = new SIDConvInfoEditorII.DataSet1TableAdapters.TableAdapterManager();
this.taP = new SIDConvInfoEditorII.DataSet1TableAdapters.K4EE_Component_Reel_Print_InformationTableAdapter();
this.taI = new SIDConvInfoEditorII.DataSet1TableAdapters.K4EE_Component_Reel_SID_InformationTableAdapter();
this.taWMS = new SIDConvInfoEditorII.DSWmsTableAdapters.VW_GET_MAX_QTY_VENDOR_LOTTableAdapter();
this.tabControl1.SuspendLayout();
this.tabPage4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dvWMS)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bsWMS)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dSWms)).BeginInit();
this.panel3.SuspendLayout();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dvI)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bsI)).BeginInit();
@@ -165,6 +186,7 @@
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage3);
@@ -175,6 +197,131 @@
this.tabControl1.Size = new System.Drawing.Size(1061, 623);
this.tabControl1.TabIndex = 0;
//
// tabPage4
//
this.tabPage4.Controls.Add(this.dvWMS);
this.tabPage4.Controls.Add(this.panel3);
this.tabPage4.Location = new System.Drawing.Point(4, 22);
this.tabPage4.Name = "tabPage4";
this.tabPage4.Size = new System.Drawing.Size(1053, 597);
this.tabPage4.TabIndex = 3;
this.tabPage4.Text = "WMS";
this.tabPage4.UseVisualStyleBackColor = true;
//
// dvWMS
//
this.dvWMS.AllowUserToAddRows = false;
this.dvWMS.AllowUserToDeleteRows = false;
this.dvWMS.AutoGenerateColumns = false;
this.dvWMS.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dvWMS.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.sIDDataGridViewTextBoxColumn1,
this.pARTNODataGridViewTextBoxColumn,
this.mFGDATEDataGridViewTextBoxColumn,
this.vENDORNMDataGridViewTextBoxColumn,
this.bATCHNODataGridViewTextBoxColumn,
this.qTYDataGridViewTextBoxColumn,
this.cUSTCODEDataGridViewTextBoxColumn,
this.vENDORLOTDataGridViewTextBoxColumn});
this.dvWMS.DataSource = this.bsWMS;
this.dvWMS.Dock = System.Windows.Forms.DockStyle.Fill;
this.dvWMS.Location = new System.Drawing.Point(0, 0);
this.dvWMS.Name = "dvWMS";
this.dvWMS.ReadOnly = true;
this.dvWMS.RowTemplate.Height = 23;
this.dvWMS.Size = new System.Drawing.Size(1053, 557);
this.dvWMS.TabIndex = 7;
//
// sIDDataGridViewTextBoxColumn1
//
this.sIDDataGridViewTextBoxColumn1.DataPropertyName = "SID";
this.sIDDataGridViewTextBoxColumn1.HeaderText = "SID";
this.sIDDataGridViewTextBoxColumn1.Name = "sIDDataGridViewTextBoxColumn1";
//
// pARTNODataGridViewTextBoxColumn
//
this.pARTNODataGridViewTextBoxColumn.DataPropertyName = "PART_NO";
this.pARTNODataGridViewTextBoxColumn.HeaderText = "PART_NO";
this.pARTNODataGridViewTextBoxColumn.Name = "pARTNODataGridViewTextBoxColumn";
//
// mFGDATEDataGridViewTextBoxColumn
//
this.mFGDATEDataGridViewTextBoxColumn.DataPropertyName = "MFG_DATE";
this.mFGDATEDataGridViewTextBoxColumn.HeaderText = "MFG_DATE";
this.mFGDATEDataGridViewTextBoxColumn.Name = "mFGDATEDataGridViewTextBoxColumn";
//
// vENDORNMDataGridViewTextBoxColumn
//
this.vENDORNMDataGridViewTextBoxColumn.DataPropertyName = "VENDOR_NM";
this.vENDORNMDataGridViewTextBoxColumn.HeaderText = "VENDOR_NM";
this.vENDORNMDataGridViewTextBoxColumn.Name = "vENDORNMDataGridViewTextBoxColumn";
//
// bATCHNODataGridViewTextBoxColumn
//
this.bATCHNODataGridViewTextBoxColumn.DataPropertyName = "BATCH_NO";
this.bATCHNODataGridViewTextBoxColumn.HeaderText = "BATCH_NO";
this.bATCHNODataGridViewTextBoxColumn.Name = "bATCHNODataGridViewTextBoxColumn";
//
// qTYDataGridViewTextBoxColumn
//
this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY";
this.qTYDataGridViewTextBoxColumn.HeaderText = "QTY";
this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn";
//
// cUSTCODEDataGridViewTextBoxColumn
//
this.cUSTCODEDataGridViewTextBoxColumn.DataPropertyName = "CUST_CODE";
this.cUSTCODEDataGridViewTextBoxColumn.HeaderText = "CUST_CODE";
this.cUSTCODEDataGridViewTextBoxColumn.Name = "cUSTCODEDataGridViewTextBoxColumn";
//
// vENDORLOTDataGridViewTextBoxColumn
//
this.vENDORLOTDataGridViewTextBoxColumn.DataPropertyName = "VENDOR_LOT";
this.vENDORLOTDataGridViewTextBoxColumn.HeaderText = "VENDOR_LOT";
this.vENDORLOTDataGridViewTextBoxColumn.Name = "vENDORLOTDataGridViewTextBoxColumn";
//
// bsWMS
//
this.bsWMS.DataMember = "VW_GET_MAX_QTY_VENDOR_LOT";
this.bsWMS.DataSource = this.dSWms;
//
// dSWms
//
this.dSWms.DataSetName = "DSWms";
this.dSWms.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// panel3
//
this.panel3.Controls.Add(this.tbFindWMS);
this.panel3.Controls.Add(this.btFindWMS);
this.panel3.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel3.Location = new System.Drawing.Point(0, 557);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(1053, 40);
this.panel3.TabIndex = 6;
//
// tbFindWMS
//
this.tbFindWMS.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbFindWMS.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.tbFindWMS.Location = new System.Drawing.Point(0, 0);
this.tbFindWMS.Name = "tbFindWMS";
this.tbFindWMS.Size = new System.Drawing.Size(953, 39);
this.tbFindWMS.TabIndex = 4;
this.tbFindWMS.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// btFindWMS
//
this.btFindWMS.Dock = System.Windows.Forms.DockStyle.Right;
this.btFindWMS.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btFindWMS.Location = new System.Drawing.Point(953, 0);
this.btFindWMS.Name = "btFindWMS";
this.btFindWMS.Size = new System.Drawing.Size(100, 40);
this.btFindWMS.TabIndex = 5;
this.btFindWMS.Text = "...";
this.btFindWMS.UseVisualStyleBackColor = true;
this.btFindWMS.Click += new System.EventHandler(this.btFineWMS_Click);
//
// tabPage2
//
this.tabPage2.AutoScroll = true;
@@ -217,9 +364,9 @@
// dataGridViewTextBoxColumn6
//
this.dataGridViewTextBoxColumn6.DataPropertyName = "idx";
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.dataGridViewTextBoxColumn6.DefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.dataGridViewTextBoxColumn6.DefaultCellStyle = dataGridViewCellStyle17;
this.dataGridViewTextBoxColumn6.HeaderText = "idx";
this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6";
this.dataGridViewTextBoxColumn6.ReadOnly = true;
@@ -227,50 +374,50 @@
// dataGridViewTextBoxColumn8
//
this.dataGridViewTextBoxColumn8.DataPropertyName = "CustCode";
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle18;
this.dataGridViewTextBoxColumn8.HeaderText = "CustCode";
this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8";
//
// dataGridViewTextBoxColumn7
//
this.dataGridViewTextBoxColumn7.DataPropertyName = "SID";
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.dataGridViewTextBoxColumn7.DefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle19.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.dataGridViewTextBoxColumn7.DefaultCellStyle = dataGridViewCellStyle19;
this.dataGridViewTextBoxColumn7.HeaderText = "SID";
this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7";
//
// dataGridViewTextBoxColumn9
//
this.dataGridViewTextBoxColumn9.DataPropertyName = "PartNo";
dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.dataGridViewTextBoxColumn9.DefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle20.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.dataGridViewTextBoxColumn9.DefaultCellStyle = dataGridViewCellStyle20;
this.dataGridViewTextBoxColumn9.HeaderText = "PartNo";
this.dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9";
//
// PrintPosition
//
this.PrintPosition.DataPropertyName = "batch";
dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.PrintPosition.DefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle21.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.PrintPosition.DefaultCellStyle = dataGridViewCellStyle21;
this.PrintPosition.HeaderText = "Batch";
this.PrintPosition.Name = "PrintPosition";
//
// qtymax
//
this.qtymax.DataPropertyName = "qtymax";
dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.qtymax.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle22.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.qtymax.DefaultCellStyle = dataGridViewCellStyle22;
this.qtymax.HeaderText = "Qty";
this.qtymax.Name = "qtymax";
//
// VenderLot
//
this.VenderLot.DataPropertyName = "VenderLot";
dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.VenderLot.DefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle23.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.VenderLot.DefaultCellStyle = dataGridViewCellStyle23;
this.VenderLot.HeaderText = "VenderLot";
this.VenderLot.Name = "VenderLot";
//
@@ -397,7 +544,7 @@
// toolStripLabel1
//
this.toolStripLabel1.Name = "toolStripLabel1";
this.toolStripLabel1.Size = new System.Drawing.Size(27, 22);
this.toolStripLabel1.Size = new System.Drawing.Size(26, 22);
this.toolStripLabel1.Text = "/{0}";
this.toolStripLabel1.ToolTipText = "전체 항목 수";
//
@@ -406,7 +553,7 @@
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.RightToLeftAutoMirrorImage = true;
this.toolStripButton2.Size = new System.Drawing.Size(68, 22);
this.toolStripButton2.Size = new System.Drawing.Size(67, 22);
this.toolStripButton2.Text = "삭제(&D)";
//
// toolStripButton3
@@ -474,7 +621,7 @@
//
this.toolStripButton7.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton7.Image")));
this.toolStripButton7.Name = "toolStripButton7";
this.toolStripButton7.Size = new System.Drawing.Size(66, 22);
this.toolStripButton7.Size = new System.Drawing.Size(65, 22);
this.toolStripButton7.Text = "저장(&S)";
this.toolStripButton7.Click += new System.EventHandler(this.toolStripButton7_Click);
//
@@ -560,8 +707,8 @@
// dataGridViewTextBoxColumn1
//
this.dataGridViewTextBoxColumn1.DataPropertyName = "idx";
dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle8;
dataGridViewCellStyle24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle24;
this.dataGridViewTextBoxColumn1.HeaderText = "idx";
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
this.dataGridViewTextBoxColumn1.ReadOnly = true;
@@ -714,7 +861,7 @@
// bindingNavigatorCountItem
//
this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22);
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(26, 22);
this.bindingNavigatorCountItem.Text = "/{0}";
this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수";
//
@@ -944,7 +1091,7 @@
// toolStripLabel2
//
this.toolStripLabel2.Name = "toolStripLabel2";
this.toolStripLabel2.Size = new System.Drawing.Size(27, 22);
this.toolStripLabel2.Size = new System.Drawing.Size(26, 22);
this.toolStripLabel2.Text = "/{0}";
this.toolStripLabel2.ToolTipText = "전체 항목 수";
//
@@ -1099,6 +1246,10 @@
//
this.taI.ClearBeforeFill = true;
//
// taWMS
//
this.taWMS.ClearBeforeFill = true;
//
// fMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
@@ -1112,6 +1263,12 @@
this.Text = "fSIDInformation";
this.Load += new System.EventHandler(this.fSIDInformation_Load);
this.tabControl1.ResumeLayout(false);
this.tabPage4.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dvWMS)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bsWMS)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dSWms)).EndInit();
this.panel3.ResumeLayout(false);
this.panel3.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dvI)).EndInit();
@@ -1247,5 +1404,21 @@
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12;
private System.Windows.Forms.DataGridViewTextBoxColumn batch;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14;
private System.Windows.Forms.TabPage tabPage4;
private System.Windows.Forms.DataGridView dvWMS;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.TextBox tbFindWMS;
private System.Windows.Forms.Button btFindWMS;
private System.Windows.Forms.BindingSource bsWMS;
private DSWms dSWms;
private DSWmsTableAdapters.VW_GET_MAX_QTY_VENDOR_LOTTableAdapter taWMS;
private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn pARTNODataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn mFGDATEDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn vENDORNMDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn bATCHNODataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn qTYDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn cUSTCODEDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn vENDORLOTDataGridViewTextBoxColumn;
}
}

View File

@@ -22,6 +22,10 @@ namespace SIDConvInfoEditorII
this.dvC.DataError += DvC_DataError;
this.dvI.DataError += DvC_DataError;
this.dvP.DataError += DvC_DataError;
this.tbFindWMS.KeyDown += (s1, e1) => {
if (e1.KeyCode == Keys.Enter)
btFindWMS.PerformClick();
};
}
private void DvC_DataError(object sender, DataGridViewDataErrorEventArgs e)
@@ -63,10 +67,14 @@ namespace SIDConvInfoEditorII
}
}
}
}
private void fSIDInformation_Load(object sender, EventArgs e)
{
// TODO: 이 코드는 데이터를 'dSWms.VW_GET_MAX_QTY_VENDOR_LOT' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다.
this.Show();
Application.DoEvents();
SelectCombo();
if (cmbRCode.SelectedIndex >= 0)
@@ -74,8 +82,9 @@ namespace SIDConvInfoEditorII
Refresh_SidInfo();
Refresh_SidConv();
Refresh_SidPrintInfo();
this.Refresh_WMS();
}
else
else
{
this.Show();
Application.DoEvents();
@@ -104,6 +113,20 @@ namespace SIDConvInfoEditorII
this.taC.Fill(this.dataSet1.K4EE_Component_Reel_SID_Convert);//, PUB.setting.McName);
dvC.AutoResizeColumns();
this.bnC.Enabled = true;
}
void Refresh_WMS()
{
try
{
this.taWMS.Fill(this.dSWms.VW_GET_MAX_QTY_VENDOR_LOT);
}
catch (Exception ex)
{
AR.UTIL.MsgE(ex.Message);
}
dvWMS.AutoResizeColumns();
}
void Refresh_SidInfo()
{
@@ -492,7 +515,7 @@ namespace SIDConvInfoEditorII
bsC.Filter = filter;
tb.BackColor = Color.Lime;
}
catch
catch
{
tb.BackColor = Color.Tomato;
}
@@ -527,5 +550,33 @@ namespace SIDConvInfoEditorII
FindText(textBox1);
}
}
private void btFineWMS_Click(object sender, EventArgs e)
{
var search = tbFindWMS.Text.Trim();
try
{
if(search.isEmpty())
{
bsWMS.Filter = "";
tbFindWMS.BackColor = SystemColors.Control;
}
else
{
tbFindWMS.BackColor = Color.HotPink;
var cols = new string[] { "SID", "PART_NO", "VENDOR_NM", "BATCH_NO", "CUST_CODE", "VENDOR_LOT" };
var filter = string.Join($" like '%{search}%' or ", cols) + $" like '%{search}%'";
bsWMS.Filter = filter;
tbFindWMS.BackColor = Color.Lime;
}
}
catch (Exception ex)
{
bsWMS.Filter = "";
tbFindWMS.BackColor = Color.HotPink;
}
tbFindWMS.Focus();
tbFindWMS.SelectAll();
}
}
}

View File

@@ -117,6 +117,24 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bsWMS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>839, 17</value>
</metadata>
<metadata name="dSWms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>932, 17</value>
</metadata>
<metadata name="bnI.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>227, 17</value>
</metadata>
<metadata name="bnC.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>548, 17</value>
</metadata>
<metadata name="bnP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>766, 17</value>
</metadata>
<metadata name="dSWms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>932, 17</value>
</metadata>
<metadata name="PrintPosition.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -135,6 +153,27 @@
<metadata name="bsI.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>624, 17</value>
</metadata>
<metadata name="PrintPosition.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="qtymax.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="VenderLot.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="attach.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="VenderName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="bsI.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>624, 17</value>
</metadata>
<metadata name="dataSet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>298, 17</value>
</metadata>
<metadata name="dataSet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>298, 17</value>
</metadata>
@@ -276,6 +315,36 @@
<metadata name="bsC.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>399, 17</value>
</metadata>
<metadata name="PartNo.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CustCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CustName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="MFG.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="batch.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="bsC.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>399, 17</value>
</metadata>
<metadata name="bnC.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>548, 17</value>
</metadata>
@@ -398,6 +467,9 @@
<metadata name="bsP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>693, 17</value>
</metadata>
<metadata name="bsP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>693, 17</value>
</metadata>
<metadata name="bnP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>766, 17</value>
</metadata>
@@ -499,6 +571,9 @@
<metadata name="taI.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>160, 17</value>
</metadata>
<metadata name="taWMS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1025, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA

BIN
keyence_front.ptc Normal file

Binary file not shown.

BIN
keyence_rear.ptc Normal file

Binary file not shown.