Files
bj_power/bj_power_mes/constants/constants.go
T

464 lines
12 KiB
Go

package constants
import "sort"
// === 工件分类 ===
type WorkpieceCategory string
const (
WorkpieceCategory_AVM107 WorkpieceCategory = "A6VM107"
WorkpieceCategory_AVM160 WorkpieceCategory = "A6VM160"
WorkpieceCategory_AVM200 WorkpieceCategory = "A6VM200"
)
func (WorkpieceCategory) Values() []string {
return []string{
string(WorkpieceCategory_AVM107),
string(WorkpieceCategory_AVM160),
string(WorkpieceCategory_AVM200),
}
}
// MomDockMap MOM 接驳台 → 工件分类的硬编码映射
// - 接驳台 1-4 专用于 A6VM107
// - 接驳台 5-8 专用于 A6VM160
// - 接驳台 9-10 专用于 A6VM200
//
// 同 category 同时占用的接驳台数即额度(107=4 / 160=4 / 200=2)。
var MomDockMap = map[int]WorkpieceCategory{
1: WorkpieceCategory_AVM107,
2: WorkpieceCategory_AVM107,
3: WorkpieceCategory_AVM107,
4: WorkpieceCategory_AVM107,
5: WorkpieceCategory_AVM160,
6: WorkpieceCategory_AVM160,
7: WorkpieceCategory_AVM160,
8: WorkpieceCategory_AVM160,
9: WorkpieceCategory_AVM200,
10: WorkpieceCategory_AVM200,
}
// MomDocksByCategory 反查表:category → 该 category 专属接驳台号列表(按号码升序)
var MomDocksByCategory = func() map[WorkpieceCategory][]int {
out := map[WorkpieceCategory][]int{}
for dockNo, cat := range MomDockMap {
out[cat] = append(out[cat], dockNo)
}
for _, v := range out {
sort.Ints(v) // map 遍历无序 → 排序保证调度稳定
}
return out
}()
// === 设备类型编码 ===
type EquipmentTypeCode string
const (
EquipmentTypeCode_CNC EquipmentTypeCode = "CNC"
EquipmentTypeCode_WashingMachine EquipmentTypeCode = "WASHER_HP"
EquipmentTypeCode_Deburr EquipmentTypeCode = "DEBURR"
EquipmentTypeCode_CleaningLine EquipmentTypeCode = "CLEANING_LINE"
EquipmentTypeCode_Inspection EquipmentTypeCode = "INSPECTION"
EquipmentTypeCode_Sampling EquipmentTypeCode = "SAMPLING"
EquipmentTypeCode_Marking EquipmentTypeCode = "MARKING"
EquipmentTypeCode_TempStore EquipmentTypeCode = "TEMP_STORE"
EquipmentTypeCode_Robot EquipmentTypeCode = "ROBOT"
)
func (EquipmentTypeCode) Values() []string {
return []string{
string(EquipmentTypeCode_CNC),
string(EquipmentTypeCode_WashingMachine),
string(EquipmentTypeCode_Deburr),
string(EquipmentTypeCode_CleaningLine),
string(EquipmentTypeCode_Inspection),
string(EquipmentTypeCode_Sampling),
string(EquipmentTypeCode_Marking),
string(EquipmentTypeCode_TempStore),
string(EquipmentTypeCode_Robot),
}
}
// === 批处理模式 ===
type BatchMode string
const (
BatchMode_None BatchMode = "NONE"
BatchMode_FullBatch BatchMode = "FULL_BATCH"
)
func (BatchMode) Values() []string {
return []string{
string(BatchMode_None),
string(BatchMode_FullBatch),
}
}
// === 槽位状态 ===
type SlotStatus string
const (
SlotStatus_Empty SlotStatus = "EMPTY"
SlotStatus_Occupied SlotStatus = "OCCUPIED"
SlotStatus_Done SlotStatus = "DONE"
)
func (SlotStatus) Values() []string {
return []string{
string(SlotStatus_Empty),
string(SlotStatus_Occupied),
string(SlotStatus_Done),
}
}
// === 工序类型 ===
type StepType string
const (
StepType_Operation StepType = "OPERATION"
StepType_BufferStage StepType = "BUFFER_STAGE"
StepType_Decision StepType = "DECISION"
StepType_FinalScan StepType = "FINAL_SCAN"
StepType_Judge StepType = "JUDGE"
StepType_LaserMark StepType = "LASER_MARK"
StepType_UnloadDock StepType = "UNLOAD_DOCK"
)
func (StepType) Values() []string {
return []string{
string(StepType_Operation),
string(StepType_BufferStage),
string(StepType_Decision),
string(StepType_FinalScan),
string(StepType_Judge),
string(StepType_LaserMark),
string(StepType_UnloadDock),
}
}
// === 工件(Job)状态 ===
type JobStatus string
const (
JobStatus_Created JobStatus = "CREATED"
JobStatus_Processing JobStatus = "PROCESSING"
JobStatus_WaitingUnload JobStatus = "WAITING_UNLOAD"
JobStatus_OnBuffer JobStatus = "ON_BUFFER"
JobStatus_WaitingDecision JobStatus = "WAITING_DECISION"
JobStatus_Completed JobStatus = "COMPLETED"
JobStatus_Scrapped JobStatus = "SCRAPPED"
JobStatus_Suspended JobStatus = "SUSPENDED"
JobStatus_WaitingWaste JobStatus = "WAITING_WASTE"
JobStatus_Cancelled JobStatus = "CANCELLED"
)
func (JobStatus) Values() []string {
return []string{
string(JobStatus_Created),
string(JobStatus_Processing),
string(JobStatus_WaitingUnload),
string(JobStatus_OnBuffer),
string(JobStatus_WaitingDecision),
string(JobStatus_Completed),
string(JobStatus_Scrapped),
string(JobStatus_Suspended),
string(JobStatus_WaitingWaste),
string(JobStatus_Cancelled),
}
}
// === 质检结果(内窥镜/抽检共用) ===
type QCResult string
const (
QCResult_Pass QCResult = "PASS"
QCResult_Fail QCResult = "FAIL"
)
func (QCResult) Values() []string {
return []string{
string(QCResult_Pass),
string(QCResult_Fail),
}
}
// === 工单状态 ===
type WorkOrderStatus string
const (
WorkOrderStatus_Created WorkOrderStatus = "CREATED"
WorkOrderStatus_InProgress WorkOrderStatus = "IN_PROGRESS"
WorkOrderStatus_Pausing WorkOrderStatus = "PAUSING"
WorkOrderStatus_Cancelling WorkOrderStatus = "CANCELLING"
WorkOrderStatus_Paused WorkOrderStatus = "PAUSED"
WorkOrderStatus_Completed WorkOrderStatus = "COMPLETED"
WorkOrderStatus_Cancelled WorkOrderStatus = "CANCELLED"
WorkOrderStatus_Error WorkOrderStatus = "ERROR"
)
func (WorkOrderStatus) Values() []string {
return []string{
string(WorkOrderStatus_Created),
string(WorkOrderStatus_Pausing),
string(WorkOrderStatus_InProgress),
string(WorkOrderStatus_Cancelling),
string(WorkOrderStatus_Paused),
string(WorkOrderStatus_Completed),
string(WorkOrderStatus_Cancelled),
string(WorkOrderStatus_Error),
}
}
// === 设备状态 ===
type EquipmentStatus string
const (
EquipmentStatus_Idle EquipmentStatus = "IDLE"
EquipmentStatus_Loading EquipmentStatus = "LOADING"
EquipmentStatus_Processing EquipmentStatus = "PROCESSING"
EquipmentStatus_Unloading EquipmentStatus = "UNLOADING"
EquipmentStatus_Fault EquipmentStatus = "FAULT"
EquipmentStatus_Offline EquipmentStatus = "OFFLINE"
)
func (EquipmentStatus) Values() []string {
return []string{
string(EquipmentStatus_Idle),
string(EquipmentStatus_Loading),
string(EquipmentStatus_Processing),
string(EquipmentStatus_Unloading),
string(EquipmentStatus_Fault),
string(EquipmentStatus_Offline),
}
}
// === 位置类型 ===
type PositionType string
const (
PositionType_OnEquipment PositionType = "ON_EQUIPMENT"
PositionType_OnBuffer PositionType = "ON_BUFFER"
PositionType_OnDock PositionType = "ON_DOCK"
)
func (PositionType) Values() []string {
return []string{
string(PositionType_OnEquipment),
string(PositionType_OnBuffer),
string(PositionType_OnDock),
}
}
// === 手持工具类型 ===
type ToolType string
const (
ToolType_Scanner ToolType = "SCANNER"
ToolType_Laser ToolType = "LASER"
)
func (ToolType) Values() []string {
return []string{
string(ToolType_Scanner),
string(ToolType_Laser),
}
}
// === 任务状态 ===
type TaskStatus string
const (
TaskStatus_Created TaskStatus = "CREATED"
TaskStatus_Dispatched TaskStatus = "DISPATCHED"
TaskStatus_Running TaskStatus = "RUNNING"
TaskStatus_Success TaskStatus = "SUCCESS"
TaskStatus_Failed TaskStatus = "FAILED"
TaskStatus_Timeout TaskStatus = "TIMEOUT"
)
func (TaskStatus) Values() []string {
return []string{
string(TaskStatus_Created),
string(TaskStatus_Dispatched),
string(TaskStatus_Running),
string(TaskStatus_Success),
string(TaskStatus_Failed),
string(TaskStatus_Timeout),
}
}
// === 工站状态 ===
type StationStatus string
const (
StationStatus_Idle StationStatus = "IDLE"
StationStatus_Busy StationStatus = "BUSY"
StationStatus_Waiting StationStatus = "WAITING"
StationStatus_Fault StationStatus = "FAULT"
StationStatus_Offline StationStatus = "OFFLINE"
// 兼容旧命名
StationStatus_Processing = StationStatus_Busy
StationStatus_Done = StationStatus_Waiting
StationStatus_Error = StationStatus_Fault
)
func (StationStatus) Values() []string {
return []string{
string(StationStatus_Idle),
string(StationStatus_Busy),
string(StationStatus_Waiting),
string(StationStatus_Fault),
string(StationStatus_Offline),
}
}
// === 报警等级 ===
type AlarmLevel string
const (
AlarmLevel_INFO AlarmLevel = "INFO"
AlarmLevel_WARN AlarmLevel = "WARN"
AlarmLevel_ERROR AlarmLevel = "ERROR"
AlarmLevel_CRITICAL AlarmLevel = "CRITICAL"
)
func (AlarmLevel) Values() []string {
return []string{
string(AlarmLevel_INFO),
string(AlarmLevel_WARN),
string(AlarmLevel_ERROR),
string(AlarmLevel_CRITICAL),
}
}
// === 报警状态 ===
type AlarmStatus string
const (
AlarmStatus_ACTIVE AlarmStatus = "ACTIVE"
AlarmStatus_ACKED AlarmStatus = "ACKED"
AlarmStatus_CLEARED AlarmStatus = "CLEARED"
)
func (AlarmStatus) Values() []string {
return []string{
string(AlarmStatus_ACTIVE),
string(AlarmStatus_ACKED),
string(AlarmStatus_CLEARED),
}
}
// === 人工交互类型 ===
type ManualActionType string
const (
ManualActionType_ScanFailed ManualActionType = "SCAN_FAILED"
ManualActionType_RecoveryRequired ManualActionType = "RECOVERY_REQUIRED"
ManualActionType_InspectionDecision ManualActionType = "INSPECTION_DECISION"
ManualActionType_FaultConfirm ManualActionType = "FAULT_CONFIRM"
)
func (ManualActionType) Values() []string {
return []string{
string(ManualActionType_ScanFailed),
string(ManualActionType_RecoveryRequired),
string(ManualActionType_InspectionDecision),
string(ManualActionType_FaultConfirm),
}
}
// === 人工交互状态 ===
type ManualActionStatus string
const (
ManualActionStatus_PENDING ManualActionStatus = "PENDING"
ManualActionStatus_RESOLVED ManualActionStatus = "RESOLVED"
ManualActionStatus_EXPIRED ManualActionStatus = "EXPIRED"
)
func (ManualActionStatus) Values() []string {
return []string{
string(ManualActionStatus_PENDING),
string(ManualActionStatus_RESOLVED),
string(ManualActionStatus_EXPIRED),
}
}
// === 恢复决策 ===
type RecoveryDecision string
const (
RecoveryDecision_RESUME RecoveryDecision = "RESUME"
RecoveryDecision_WAIT_UNLOAD RecoveryDecision = "WAIT_UNLOAD"
RecoveryDecision_SUSPEND RecoveryDecision = "SUSPEND"
RecoveryDecision_SCRAP RecoveryDecision = "SCRAP"
)
func (RecoveryDecision) Values() []string {
return []string{
string(RecoveryDecision_RESUME),
string(RecoveryDecision_WAIT_UNLOAD),
string(RecoveryDecision_SUSPEND),
string(RecoveryDecision_SCRAP),
}
}
// === 托盘状态 ===
type PalletStatus string
const (
PalletStatus_PendingDelivery PalletStatus = "PENDING_DELIVERY"
PalletStatus_PendingProcess PalletStatus = "PENDING_PROCESS"
PalletStatus_Processing PalletStatus = "PROCESSING"
PalletStatus_Completed PalletStatus = "COMPLETED"
PalletStatus_Reported PalletStatus = "REPORTED"
PalletStatus_Departed PalletStatus = "DEPARTED"
)
func (PalletStatus) Values() []string {
return []string{
string(PalletStatus_PendingDelivery),
string(PalletStatus_PendingProcess),
string(PalletStatus_Processing),
string(PalletStatus_Completed),
string(PalletStatus_Reported),
string(PalletStatus_Departed),
}
}
// === 工单来源 ===
type WorkOrderSource string
const (
WorkOrderSource_SYSTEM WorkOrderSource = "SYSTEM"
WorkOrderSource_MOM WorkOrderSource = "MOM"
)
func (WorkOrderSource) Values() []string {
return []string{
string(WorkOrderSource_SYSTEM),
string(WorkOrderSource_MOM),
}
}