Compare commits

..

11 Commits

Author SHA1 Message Date
hyelinjung
a1b1852a91 1. 마름모 검사 EP, RF 개별 금일 검사 수량으로 적용
2. RF 검사 PREQ 값 변수 타입 int16 -> double 변경해 오버플로우 해결
2026-03-30 11:33:49 +09:00
hyelinjung
e32a0b90d6 1. 모델별 config 파일 생성 및 적용
2. 지그 연결이 끊어지는 경우 다시 한번 자동으로 RETRY
3. 세모 플러스 검사 추가
4. EP 검사(3번)마다 장치 설정 따로 할 수 있도록 설정 화면 수정
5. 스코프, 스펙트럼 통신 중 발생할 수 있는 오류 최소화 하기 위해 중간에 장치 버퍼 CLEAR 추가
6. 버전 2.2.4
2026-03-25 15:50:47 +09:00
hyelinjung
1cedc93a66 1.기능검사 spectrum, scope clear 예외처리
2.버전 2.2.3
2026-03-04 17:03:09 +09:00
hyelinjung
03943cf576 1. TD를 읽어올때(settdsn) 첫글자가 아스키코드 숫자 OR 대소문 알파벳범위가 아닐 경우 존재하지 않는 경우로 지정 2026-02-13 09:39:30 +09:00
hyelinjung
fff41f2ad1 1.기존 모델(스펙트럼-> 스코프), 보급형 모델(스코프 -> 스펙트럼) 생산검사1 에서 pcb write -> 검사2 에서 확인
2. 마름모 검사 시 화면 변경 안되는 경우 수정
3. 2.2.2 버전
2026-02-12 14:46:50 +09:00
hyelinjung
50def4c2cf 1. EP 검사 계측기 오류 즉시 종료 -> 재검사 루틴에 포함
2. LDM 검사 스코프 -> 스펙트럼 흐름으로 수정
2-1. 스펙트럼 검사 전 파형검사 TEST STEP 확인 후 진행 (27,23, 21 만 가능)
2-2. LDM 모든 검사 최종 합격시 TESTSTEP은 21
3. TD 이미 입력 되었을 경우 UI (이미등록완료된TD) 적용
2026-02-06 17:56:24 +09:00
hyelinjung
4a3672e1de 1.LDM 검사 추가(수입/생산1/생산2)
2.버전 2.1.3
3.LDM measure config UI 추가
2026-02-02 17:50:56 +09:00
hyelinjung
ddb6c6220a 1.보급형인 경우 hf & ep 검사에서 ep 먼저 수행 -> 기존 ep 검사에서 pcb td 번호와 검사하는 td 번호 비교하는 로직 주석처리
2.버전 2.1.2
3. ep 검사일 때 td 생성 시(step =11) NonTD 데이터 생성 ->won 모델인 경우 제외
4.보급형 모델 rf,ep 검사 nas db 저장 시 성공해도 실패 로직으로 진행되는 부분 정상 수정
2026-01-21 11:12:24 +09:00
hyelinjung
6f68fa71c0 1.보급형 모델 검사 시 모든 계측기 사용 ->필요한 계측기 분리 changeMode()
2. 2.1.0 버전 업데이트
2026-01-13 17:25:13 +09:00
hyelinjung
bd7b98805d 1.보급형 모델 검사 모드 추가
(iqc_hfep, iqc_ep, iqc_rfepmc / prd_hfLdm, prd_ep, prd_rfmc)
2.보급형 모델 수입 & 생산 검사 후 DB 저장
3.보급형에서 기존 ui 재사용으로 ui 선택 함수 생성 chooseStatusFunc()
4.버전 2.0.9
2026-01-13 11:02:39 +09:00
hyelinjung
c07ef2bbf1 보급형 모델 won 테스트 모드 추가
-임시 하드코딩으로 모델과 모드 추가함
2025-12-31 11:25:10 +09:00
7 changed files with 5109 additions and 874 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
Imports MySql.Data.MySqlClient
Imports MySql.Data.MySqlClient
Module MySqlMoudule
Private Const LocalHostIP As String = "192.168.0.250"
@ -68,25 +68,24 @@ Module MySqlMoudule
DBClose()
Return False
End Try
End
End Function
Public Function DBQueryScalar(cmdStr As String) As String
Dim result As String
Try
Database_Use()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
result = sqlCmd.ExecuteScalar() 'SQL 명령을 실행하고, Query 리턴하는 첫번째 행의 첫번째 열을 리턴한다. 결과가 1개인 집계함수(count, sum, avg ) 사용한다. 반환값은 object
Dim objResult As Object = sqlCmd.ExecuteScalar() 'SQL 명령을 실행하고, Query 리턴하는 첫번째 행의 첫번째 열을 리턴한다. 결과가 1개인 집계함수(count, sum, avg ) 사용한다. 반환값은 object
Return result
If objResult Is Nothing OrElse IsDBNull(objResult) Then
Return "False"
End If
Return objResult.ToString()
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
Return "False"
End Try
End
End Function
Public Function DBQueryReader(cmdStr As String) As Integer

View File

@ -1,4 +1,4 @@
Imports Npgsql
Imports Npgsql
Module PostgreSQLModule
Private pgSqlCon As NpgsqlConnection = New NpgsqlConnection("Host=mes-db.postgres.database.azure.com;Username=jionmt@mes-db;Password=jmtdb6919!!pg;Database=mes-jion-data")
@ -51,25 +51,25 @@ Module PostgreSQLModule
End Function
Public Function pgDBQueryScalar(cmdStr As String) As String
Dim result As String
Try
If pgDBOpen() Then
MsgBox("DB 연결을 진행할 수 없습니다.", vbCritical)
Return 0
Return "False"
End If
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = pgSqlCon
result = sqlCmd.ExecuteScalar() 'SQL 명령을 실행하고, Query 리턴하는 첫번째 행의 첫번째 열을 리턴한다. 결과가 1개인 집계함수(count, sum, avg ) 사용한다. 반환값은 object
Dim objResult As Object = sqlCmd.ExecuteScalar() 'SQL 명령을 실행하고, Query 리턴하는 첫번째 행의 첫번째 열을 리턴한다. 결과가 1개인 집계함수(count, sum, avg ) 사용한다. 반환값은 object
Return result
If objResult Is Nothing OrElse IsDBNull(objResult) Then
Return "False"
End If
Return objResult.ToString()
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
Return "False"
End Try
End
End Function
Public Function pgDBQueryReader(cmdStr As String) As Integer

View File

@ -116,14 +116,10 @@
<Reference Include="Google.Protobuf, Version=3.6.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="Interop.bpac">
<HintPath>C:\Program Files\Brother bPAC3 SDK\Samples\VBNET\NamePlt\bin\x64\Release\Interop.bpac.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Ivi.Visa.Interop, Version=5.11.0.0, Culture=neutral, PublicKeyToken=a128c98f1d7717c1, processorArchitecture=AMD64">
<Reference Include="Ivi.Visa.Interop, Version=8.0.0.0, Culture=neutral, PublicKeyToken=a128c98f1d7717c1, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>C:\Windows\assembly\GAC_64\Ivi.Visa.Interop\5.11.0.0__a128c98f1d7717c1\Ivi.Visa.Interop.dll</HintPath>
<HintPath>..\..\..\..\..\..\Windows\assembly\GAC_64\Ivi.Visa.Interop\8.0.0.0__a128c98f1d7717c1\Ivi.Visa.Interop.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.1.1.11\lib\net46\K4os.Compression.LZ4.dll</HintPath>

View File

@ -1,4 +1,4 @@
Module ScopeMoudule
Module ScopeMoudule
Public myMgr As Ivi.Visa.Interop.ResourceManager
Public myscope As Ivi.Visa.Interop.FormattedIO488
@ -7,34 +7,47 @@
Public Function ScopeOpen(ScopeID As String, timeoutNum As Integer) As String
Try
ScopeClear()
If ScopeID = "" Then
Return "FAIL"
End If
myMgr = New Ivi.Visa.Interop.ResourceManager
myscope = New Ivi.Visa.Interop.FormattedIO488
myscope.IO = myMgr.Open(ScopeID)
myscope.IO.Clear()
myscope.IO.Timeout = timeoutNum
DrainDeviceOutput()
strQueryResult = DoQueryString("*IDN?")
Debug.Print("Identification string: " + strQueryResult)
Return strQueryResult
Catch ex As System.Runtime.InteropServices.COMException
Debug.Print("ErrorCode 값: " & ex.ErrorCode)
Debug.Print("ErroMassage 값: " & ex.Message.ToString)
Debug.Print("HResult 값: " & ex.HResult)
Return "FAIL"
Catch ex As Exception
Return "FAIL"
End Try
End Function
Public Function ScopeRunCk() As Boolean
''계측기 버퍼 비우기
Public Sub DrainDeviceOutput(Optional readTimeoutMs As Integer = 200)
Dim prevTimeout As Integer = myscope.IO.Timeout
Try
strQueryResult = DoQueryString("*IDN?")
If InStr(strQueryResult, "KEYSIGHT") > 0 Then
Return False
Else
Return True
End If
Catch ex As Exception
Return True
myscope.IO.Timeout = readTimeoutMs
Dim s As String = myscope.ReadString
Debug.Print("남아있는 데이터: " + s)
Do While Not String.IsNullOrWhiteSpace(s)
s = myscope.ReadString
Loop
Catch
checkError()
Finally
myscope.IO.Timeout = prevTimeout
End Try
End Function
End Sub
Public Function DoCommand(command As String) As String
Dim errStr As String
@ -53,15 +66,6 @@
End Function
' Public Sub DoCommand(command As String)
' On Error GoTo VisaComError
' myscope.WriteString(command)
' CheckInstrumentErrors()
' Exit Sub
'VisaComError:
' MsgBox("VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + "," + Err.Description, vbExclamation, "VISA COM Error")
' End Sub
Public Function DoQueryString(query As String) As String
Dim errStr As String
@ -76,27 +80,19 @@
Return DoQueryString
Catch ex As Exception
Try
DrainDeviceOutput()
Catch
End Try
Return "VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + "," + Err.Description
End Try
End Function
' Public Function DoQueryString(query As String) As String
' Dim errStr As String
' On Error GoTo VisaComError
' myscope.WriteString(query)
' DoQueryString = myscope.ReadString
' CheckInstrumentErrors()
' Return DoQueryString
'VisaComError:
' MsgBox("VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + "," + Err.Description, vbExclamation, "VISA COM Error")
' Return "FAIL"
' End Function
Private Function CheckInstrumentErrors() As String
Dim strerrval As String
Dim strout As String = ""
Try
myscope.WriteString(":SYSTem:ERRor?")
strerrval = myscope.ReadString
While Val(strerrval) <> 0
@ -113,25 +109,38 @@
End If
Return ""
Catch ex As Exception
Main_Form.txbWindow.AppendText("Error check Message Error:" & ex.Message & vbCrLf)
Return ex.Message
End Try
End Function
'Private Sub CheckInstrumentErrors()
' Dim strerrval As String
' Dim strout As String = ""
Private Sub checkError()
Dim strerrval As String
Try
myscope.WriteString(":SYSTem:ERRor?")
strerrval = myscope.ReadString
While Val(strerrval) <> 0
myscope.WriteString(":SYSTem:ERRor?")
strerrval = myscope.ReadString
End While
Catch ex As Exception
Main_Form.txbWindow.AppendText("VISA BUFFER CLEAR ERROR:" & ex.Message & vbCrLf)
End Try
End Sub
' myscope.WriteString(":SYSTem:ERRor?")
' strerrval = myscope.ReadString
' While Val(strerrval) <> 0
' strout = "INST Error: " + strerrval
' myscope.WriteString(":SYSTem:ERRor?")
' strerrval = myscope.ReadString
' End While
' If Not strout = "" Then
' MsgBox(strout, vbExclamation, "INST Error Messages")
' myscope.FlushWrite(False)
' myscope.FlushRead()
' End If
'End Sub
''' <summary>스코프 버퍼 초기화. 연결된 경우에만 동작.</summary>
Public Sub ScopeClear()
Try
If myscope IsNot Nothing AndAlso myscope.IO IsNot Nothing Then
myscope.IO.Clear()
End If
Catch
' 연결 해제 등으로 접근 불가 무시
End Try
End Sub
End Module

View File

@ -1,4 +1,4 @@
Module SpectrumModule
Module SpectrumModule
Private myMgr As Ivi.Visa.Interop.ResourceManager
Private mySpec As Ivi.Visa.Interop.FormattedIO488
@ -6,25 +6,47 @@
Public Function SpecOpen(SpecID As String, ToCount As Integer) As String
Try
SpecClear()
myMgr = New Ivi.Visa.Interop.ResourceManager
mySpec = New Ivi.Visa.Interop.FormattedIO488
mySpec.IO = myMgr.Open(SpecID)
'mySpec.IO.Clear()
mySpec.IO.Timeout = ToCount
SpecDrainDeviceOutput(200)
strQueryRes = SpecQueryStr("*IDN?")
Return strQueryRes
Catch ex As System.Runtime.InteropServices.COMException
Debug.Print("ErrorCode 값: " & ex.ErrorCode)
Debug.Print("ErroMassage 값: " & ex.Message)
Debug.Print("HResult 값: " & ex.HResult)
Return "FAIL"
Catch ex As Exception
Return "FAIL"
End Try
End Function
Public Sub SpecDrainDeviceOutput(Optional readTimeoutMs As Integer = 200)
Dim prevTimeout As Integer = mySpec.IO.Timeout
Try
mySpec.IO.Timeout = readTimeoutMs
Dim s As String = mySpec.ReadString
Do While Not String.IsNullOrWhiteSpace(s)
s = mySpec.ReadString
Loop
Catch
' 타임아웃/에러 그만
Finally
mySpec.IO.Timeout = prevTimeout
End Try
End Sub
Public Function RunCommand(command As String) As String
Dim errStr As String
Try
mySpec.IO.Clear()
SpecDrainDeviceOutput(200)
mySpec.WriteString(command)
errStr = CheckError()
If errStr.Replace(" ", "") <> "" Then
@ -41,6 +63,8 @@
Public Function SpecQueryStr(query As String) As String
Dim errStr As String
Try
mySpec.IO.Clear()
SpecDrainDeviceOutput(200)
mySpec.WriteString(query)
SpecQueryStr = mySpec.ReadString
errStr = CheckError()
@ -58,7 +82,7 @@
Private Function CheckError() As String
Dim strerrval As String
Dim strout As String = ""
Try
mySpec.WriteString(":SYSTem:ERRor?")
strerrval = mySpec.ReadString
While Val(strerrval) <> 0
@ -75,6 +99,22 @@
End If
Return ""
Catch ex As Exception
Main_Form.txbWindow.AppendText("Error check Message Error:" & ex.Message & vbCrLf)
Return ex.Message
End Try
End Function
''' <summary>스펙트럼 분석기 버퍼 초기화. 연결된 경우에만 동작.</summary>
Public Sub SpecClear()
Try
If mySpec IsNot Nothing AndAlso mySpec.IO IsNot Nothing Then
mySpec.IO.Clear()
End If
Catch
' 연결 해제 등으로 접근 불가 무시
End Try
End Sub
End Module