프로젝트 구조 개선 및 README.md 추가

- UIControl 프로젝트 구조 변경 (CapCleaningControl → Sub/UIControl)
- arAjinextek 라이브러리 통합 및 구조 개선
- 새로운 arAjinextek_Union 프로젝트 추가
- 솔루션 파일에 README.md 추가
- QR 모드에서 WMS RCV 태그 인식 기능 강화
- 데이터베이스 스키마 업데이트 및 관련 클래스 수정
- 프린터 및 바코드 장치 연동 로직 개선

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ChiKyun Kim
2025-08-07 08:35:56 +09:00
parent c17296101a
commit 9a7d1d27c7
140 changed files with 4203 additions and 6791 deletions

View File

@@ -101,7 +101,7 @@ namespace Project
if (PUB.sm.seq.Get(cmdIndex) == idx++)
{
//홈 설정여부플래그 OFF
for (int i = 0; i < PUB.mot.DeviceCount; i++)
for (short i = 0; i < PUB.mot.DeviceCount; i++)
{
if (PUB.mot.IsUse(i) == false) continue;
PUB.mot.SetHomeSet(i, false);

View File

@@ -18,7 +18,7 @@ namespace Project
//Int32[] _bufferSize = new Int32[] { 0, 0, 0 };
//Boolean[] _isCrevisOpen = new bool[] { false, false, false };
//Boolean[] _isCrevisACQ = new bool[] { false, false, false };
// IntPtr[] _pImage = new IntPtr[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero };
// IntPtr[] _pImage = new IntPtr[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero };
public void _STEP_INIT_START(eSMStep step)
{
@@ -56,9 +56,9 @@ namespace Project
DIO.SetPortMotor(2, eMotDir.CW, false, "init");
}
else PUB.log.AddE(string.Format("DIO INIT ERROR : {0}", PUB.dio.ErrorMessage));
TowerLamp.Init(PUB.dio,
TowerLamp.Init(PUB.dio,
DIO.Pin[eDOName.TWR_REDF].terminalno,
DIO.Pin[eDOName.TWR_GRNF].terminalno,
DIO.Pin[eDOName.TWR_GRNF].terminalno,
DIO.Pin[eDOName.TWR_YELF].terminalno);
TowerLamp.Enable = !SETTING.Data.Disable_TowerLamp;
@@ -72,21 +72,11 @@ namespace Project
//230504
hmi1.SetDIO(PUB.dio);
hmi1.SetMOT(PUB.mot);
//남은 공간
PUB.sm.RaiseStateProgress(++progress, "공간 확인", ProgressMax, fColor); System.Threading.Thread.Sleep(5);
CheckFreeSpace(); //181225
//모델자동선택 181206
PUB.sm.RaiseStateProgress(++progress, "이전모델 확인", ProgressMax, fColor); System.Threading.Thread.Sleep(5);
//
if (PUB.uSetting.LastModelV != "") PUB.SelectModelV(PUB.uSetting.LastModelV, false);
var motionmodel = PUB.uSetting.LastModelM;
if (motionmodel.isEmpty()) motionmodel = PUB.Result.vModel.Motion;
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);
//프린터설정
PUB.sm.RaiseStateProgress(++progress, "프린터설정", ProgressMax, fColor); System.Threading.Thread.Sleep(5);
@@ -99,6 +89,18 @@ namespace Project
PUB.PrinterR.BaudRate = AR.SETTING.Data.PrintR_Baud;
PUB.flag.set(eVarBool.FG_INIT_PRINTER, true, "INIT");
//모델자동선택 181206
PUB.sm.RaiseStateProgress(++progress, "이전모델 확인", ProgressMax, fColor); System.Threading.Thread.Sleep(5);
//
if (PUB.uSetting.LastModelV != "") PUB.SelectModelV(PUB.uSetting.LastModelV, false);
var motionmodel = PUB.uSetting.LastModelM;
if (motionmodel.isEmpty()) motionmodel = PUB.Result.vModel.Motion;
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);
PUB.sm.RaiseStateProgress(ProgressMax, "초기화 완료", ProgressMax, Color.Gold); System.Threading.Thread.Sleep(5);
PUB.log.Add("init finish");
@@ -153,42 +155,43 @@ namespace Project
PUB.mot.SetAlarmClearOff();
//7개의 축을 사용한다
for (int i = 0; i < PUB.system.MotaxisCount; i++)
if (PUB.mot.IsInit == false)
{
//설정파일이 있다면 불러온다
var file = System.IO.Path.Combine(UTIL.CurrentPath, "Model", "axis" + i.ToString() + ".motaxt");
if (System.IO.File.Exists(file) == false)
{
PUB.log.AddAT($"모션({i}) 설정파일 없음!!");
PUB.mot.InitAxis(i, file);
}
else
{
if (PUB.mot.InitAxis((short)i, file) == false)
PUB.log.AddE("모션 설정 실패 축:" + i.ToString());
else
PUB.log.AddI($"모션({i}) 설정 완료");
}
PUB.log.AddE("모션보드 초기화 오류로 설정을 진행하지 않습니다");
}
//EStop Disable
PUB.mot.SetEStopEnable(0, false);
PUB.mot.SetEStopEnable(1, false);
PUB.mot.SetEStopEnable(2, false);
PUB.mot.SetEStopEnable(3, false);
PUB.mot.SetEStopEnable(4, false);
PUB.mot.SetEStopEnable(5, false);
PUB.mot.SetEStopEnable(6, false);
//softlimit 적용 - 201214
UpdateSoftLimit();
//PUB.mot.[(short)eAxis.Z_PICKER] = true;
//PUB.mot.useBrake[(short)eAxis.PL_UPDN] = true;
//PUB.mot.useBrake[(short)eAxis.PR_UPDN] = true;
if (PUB.mot.IsInit)
else
{
for (short i = 0; i < PUB.system.MotaxisCount; i++)
{
//설정파일이 있다면 불러온다
var file = System.IO.Path.Combine(UTIL.CurrentPath, "Model", "axis" + i.ToString() + ".motaxt");
if (System.IO.File.Exists(file) == false)
{
PUB.log.AddAT($"모션({i}) 설정파일 없음!!");
PUB.mot.InitAxis(i, file);
}
else
{
if (PUB.mot.InitAxis((short)i, file) == false)
PUB.log.AddE("모션 설정 실패 축:" + i.ToString());
else
PUB.log.AddI($"모션({i}) 설정 완료");
}
}
//EStop Disable
PUB.mot.SetEStopEnable(0, false);
PUB.mot.SetEStopEnable(1, false);
PUB.mot.SetEStopEnable(2, false);
PUB.mot.SetEStopEnable(3, false);
PUB.mot.SetEStopEnable(4, false);
PUB.mot.SetEStopEnable(5, false);
PUB.mot.SetEStopEnable(6, false);
//softlimit 적용 - 201214
UpdateSoftLimit();
PUB.log.Add("MOT RUN MONITOR");
PUB.mot.RunMonitor();
PUB.log.AddAT("ALL SERVO ON");