UNPKG

node-red-trexmes-service

Version:
623 lines (556 loc) 37.1 kB
# Context Getter <div class="node-header"> <span class="node-preview green-light">Context Getter</span> <div class="meta-item"><strong>Inputs:</strong> <span class="io-badge in">1</span></div> <div class="meta-item"><strong>Outputs:</strong> <span class="io-badge out">1</span></div> <div class="meta-item"><strong>Kategori:</strong> trexMes service</div> </div> Belirtilen **WorkStation**'a ait bir **StateContext**'i trexMes panelinden sorgular. Sonuç asenkron olarak [Method Returns](method-returns.md) node'u üzerinden alınır. ## Özet !!! info "Method Invoker kardeşi" Context Getter, Method Invoker ile aynı asenkron iletişim modelini kullanır. Fark şudur: Method Invoker bir **servis method'u çağırır**, Context Getter ise bir **StateContext snapshot'ı ister**. ## Property Tablosu | Alan | Tip | Varsayılan | Açıklama | |---|---|---|---| | `name` | string || Node adı. **Method Returns ile eşleşmelidir** | | `context` | combobox | `AnalysisStateContext` | Sorgulanacak StateContext | | `workstationid` | num \| msg | `0` | Sorgulanacak istasyon ID'si | | `workstationidType` | `"num"` \| `"msg"` | `"num"` | WorkStation ID değer kaynağı | ### Context Seçenekleri (25 adet) | Context | Kapsam | |---|---| | `AnalysisStateContext` | OEE, performans, vardiya analizleri | | `BarcodeStateContext` | Barkod okutma konfigürasyonu | | `CapacityStateContext` | Çevrim süresi, max kapasite, hız | | `ConsumptionStateContext` | Sarf tüketimi ve lot verileri | | `CounterStateContext` | Üretim sayaçları ve sinyal portları | | `DefectStateContext` | Iskarta miktarları ve konfigürasyonları | | `EmployeeStateContext` | Personel giriş/çıkış ve takım bilgisi | | `EnergyStateContext` | Enerji tüketim verileri (kW) | | `EquipmentStateContext` | Mevcut ekipman bilgisi ve konfigürasyonu | | `ForkliftStateContext` | Forklift görevi oluşturma ve takibi | | `LabelStateContext` | Etiket yazıcı konfigürasyonu | | `LineStateContext` | Hat üretimi, master istasyon, duruş aktarımı | | `MaintenanceStateContext` | Bakım planı, aktif bakım iş emri | | `OpcStateContext` | OPC üzerinden ekipman/stok/hız konfigürasyonu | | `OperationStateContext` | Mevcut operasyon bilgileri | | `ProcessDataStateContext` | Proses veri analiz değerleri | | `ProductionConfirmationStateContext` | Üretim bildirimi konfigürasyon ve son kayıtlar | | `ProductionPlanStateContext` | Yüklü plan bilgileri, stoklar, iş emirleri | | `ProductionToleranceStateContext` | Üretim tolerans kontrol değerleri | | `QualityControlStateContext` | Kalite kontrol tanımları ve output konfigürasyonları | | `RobotModelStateContext` | Robot model üretim kurgusu | | `ScaleStateContext` | Terazi ağırlık ve port verileri | | `SerieStateContext` | Mevcut ürün seri barkodu | | `StoppageStateContext` | Mevcut duruş bilgileri, süre, output konfigürasyonları | | `WorkStationStateContext` | İstasyon kimlik ve iş merkezi bilgileri | !!! tip "Property açıklamaları" Node editör panelinde Context seçimi değiştikçe, seçilen context'e ait tüm property'lerin açıklamaları WorkStation ID alanının altında görünür. ## Context İçerikleri Her context, Method Returns node'u üzerinden geldiğinde `msg.payload` içinde aşağıdaki alanları taşır. Bağlantılı model olan alanlar (örn. `List<Stock>`) iç içe nesne olarak gelir. ??? info "AnalysisStateContext" | Alan | Tip | Açıklama | |---|---|---| | `ShiftProduction` | double | Mevcut vardiyadaki üretim (1. birim) | | `ShiftProduction2` | double | Mevcut vardiyadaki üretim (2. birim) | | `ShiftProduction3` | double | Mevcut vardiyadaki üretim (3. birim) | | `ShiftOeePercent` | double | Vardiya OEE yüzdesi | | `ShiftPerformancePercent` | double | Vardiya performans yüzdesi | | `ShiftAvailabilityPercent` | double | Vardiya kullanılabilirlik yüzdesi | | `ShiftQualityPercent` | double | Vardiya kalite yüzdesi | | `ShiftProducibleAmount` | double | Vardiyadaki toplam üretilebilir miktar | | `PlanPerformancePercent` | double | Aktif plan için hesaplanan performans yüzdesi | | `TargetOee` | double | İstasyon için hedef OEE yüzdesi | | `ShiftEfficiencyRefreshInterval` | int | Vardiya analiz yenileme aralığı (saniye; 60 = tetikle) | | `ShiftAverageSpeed` | double | Vardiyadaki ortalama üretim hızı | | `ShiftStoppageDuration` | int | Vardiyadaki toplam duruş süresi (saniye) | | `PlannedStopDuration` | double | Vardiyadaki planlı duruş süresi (saniye) | | `UnplannedStopDuration` | double | Vardiyadaki plansız duruş süresi (saniye) | | `PerformanceRangeOutputNo1` | int | 1. performans aralığı output port no | | `PerformanceRangeOutputNo1MinPercent` | int | 1. aralık minimum performans yüzdesi | | `PerformanceRangeOutputNo1MaxPercent` | int | 1. aralık maksimum performans yüzdesi | | `PerformanceRangeOutputNo2` | int | 2. performans aralığı output port no | | `PerformanceRangeOutputNo2MinPercent` | int | 2. aralık minimum performans yüzdesi | | `PerformanceRangeOutputNo2MaxPercent` | int | 2. aralık maksimum performans yüzdesi | | `PerformanceRangeOutputNo3` | int | 3. performans aralığı output port no | | `PerformanceRangeOutputNo3MinPercent` | int | 3. aralık minimum performans yüzdesi | | `PerformanceRangeOutputNo3MaxPercent` | int | 3. aralık maksimum performans yüzdesi | | `IsCalculationPerformanceRangeByPlanEnabled` | bool | Performans hesabı vardiyaya değil plana göre mi? | | `IsPerformanceOutputControlActive` | bool | Herhangi bir performans bazlı output konfigürasyonu var? | ??? info "BarcodeStateContext" | Alan | Tip | Açıklama | |---|---|---| | `DigitalOutputToBeActivatedOnBarcodeScan` | int | Barkod okutmada aktif edilecek output port no | | `IsWebBarcodeServiceEnabled` | bool | Web barkod servisinin aktif olup olmadığı | ??? info "CapacityStateContext" | Alan | Tip | Açıklama | |---|---|---| | `CyclePeriod` | double | Mevcut çevrim süresi | | `DynamicCyclePeriod` | double | Dinamik çevrim süresi | | `AverageCycleDuration` | double | Ortalama çevrim süresi | | `AverageSpeed` | double | Ortalama üretim hızı | | `InstantSpeed` | double | Anlık üretim hızı | | `MaxSpeed` | double | Tanımlı maksimum hız | | `MaxPlanCapacity` | double | Maksimum plan kapasitesi | | `MaxStationCapacity` | double | Maksimum istasyon kapasitesi | | `SpeedTimeMultiplier` | SpeedTimeMultiplier | Hız zaman çarpanı | | `LineSpeedMultiplier` | double | Hat hız çarpanı | | `SpeedCounterPortIndex` | int | Hız sayacı port indisi | | `SpeedCounterPortNo` | int | Hız sayacı port numarası | | `IsUsingEstimatedCyclePeriodEnabled` | bool | Tahmini çevrim süresi kullanılıyor mu? | | `IsSettingCyclePeriodDueToCoefficientChangeEnabled` | bool | Katsayı değişiminde çevrim süresi güncelleniyor mu? | | `IsMaxCapacityControlEnabled` | bool | Maksimum kapasite kontrolü aktif mi? | | `MaxCapacityControlTolerance` | int | Maksimum kapasite kontrol toleransı | | `IsCapacityValidationEnabled` | bool | Kapasite doğrulama aktif mi? | | `SpeedSamples` | List\<InstantSpeedSample\> | Anlık hız örnekleri | ??? info "ConsumptionStateContext" | Alan | Tip | Açıklama | |---|---|---| | `Consumptions` | List\<Consumption\> | Sarf tüketimleri ve lot verileri | | `InsufficientLotDigitalOutputNo` | int | Yetersiz lot durumunda output port no | | `IsConsideringOtherWorkStationsLotConsumptionEnabled` | bool | Diğer istasyonların lot tüketimi dikkate alınıyor mu? | | `OtherWorkStationLotConsumptionCalculationInvertal` | int | Diğer istasyon lot tüketimi hesaplama aralığı | | `MaterialLotBalanceCheckTimeInverval` | int | Malzeme lot bakiye kontrol aralığı | | `MaterialLotBalanceCheckUpSystemTimeInverval` | int | Malzeme lot bakiye sistem güncelleme aralığı | ??? info "CounterStateContext" | Alan | Tip | Açıklama | |---|---|---| | `Counter` | double | 1. üretim sayacı | | `Counter2` | double | 2. üretim sayacı | | `Counter3` | double | 3. üretim sayacı | | `MachineCounter` | double | Makine sayacı | | `TotalPortCounter` | double | Toplam port sayacı | | `LastCycleDuration` | double | Son çevrim süresi | | `LastCounterChangeTime` | DateTime | Son sayaç değişim zamanı | | `LastCounterChangeTimeWithMilliSeconds` | DateTime | Son sayaç değişim zamanı (ms dahil) | | `CounterIncrementDuringNoShift` | double | Vardiya dışı sayaç artışı | | `NoCountSignalStatus` | bool | Sayım yok sinyal durumu | | `IndexedSectionCounters` | double[] | Bölüm bazlı sayaçlar (1. birim) | | `IndexedSectionCounters2` | double[] | Bölüm bazlı sayaçlar (2. birim) | | `IndexedSectionCounters3` | double[] | Bölüm bazlı sayaçlar (3. birim) | | `IndexedSectionDefectCounters` | double[] | Bölüm bazlı ıskarta sayaçları (1. birim) | | `MachineStockCounter` | double[] | Makine stok sayaçları (1. birim) | | `MachineStockCounter2` | double[] | Makine stok sayaçları (2. birim) | | `MachineStockCounter3` | double[] | Makine stok sayaçları (3. birim) | | `LastRecordedCounter` | double | Son kaydedilen sayaç (1. birim) | | `LastRecordedCounter2` | double | Son kaydedilen sayaç (2. birim) | | `LastRecordedCounter3` | double | Son kaydedilen sayaç (3. birim) | | `CounterSignalPort` | SignalPort | Sayaç sinyal portu | | `InputSignalPort` | SignalPort | Giriş sinyal portu | | `DefaultSignalPort` | SignalPort | Varsayılan sinyal portu | | `AdditionalCounterSignalPorts` | SignalPort[] | Ek sayaç sinyal portları | | `MeterCutOffQuantityUnitType` | int | Metre kesim miktar birim tipi | | `IsEquipmentStockIndexBasedCounterEnabled` | bool | Ekipman-stok indis bazlı sayaç aktif mi? | | `IsIncreasingCounterViaBarcodeEnabled` | bool | Barkod ile sayaç artışı aktif mi? | | `IsActivatingDigitalOutputOnCounter1IncrementEnabled` | bool | Sayaç 1 artışında output aktif mi? | | `DigitalOutputToBeActivatedOnCounterIncrement` | int | Sayaç 1 artışında aktif edilecek output | | `DurationForOutputActivationOnCounterIncrement` | int | Sayaç 1 output aktif süre | | `IsActivatingDigitalOutputOnCounter2IncrementEnabled` | bool | Sayaç 2 artışında output aktif mi? | | `DigitalOutputToBeActivatedOnCounterIncrement2` | int | Sayaç 2 artışında aktif edilecek output | | `DurationForOutputActivationOnCounterIncrement2` | int | Sayaç 2 output aktif süre | ??? info "DefectStateContext" | Alan | Tip | Açıklama | |---|---|---| | `DefectQuantity` | double | Toplam ıskarta miktarı (1. birim) | | `DefectQuantity2` | double | Toplam ıskarta miktarı (2. birim) | | `DefectQuantity3` | double | Toplam ıskarta miktarı (3. birim) | | `MaterialDefectQuantity` | double | Malzeme ıskarta miktarı (1. birim) | | `MaterialDefectQuantity2` | double | Malzeme ıskarta miktarı (2. birim) | | `MaterialDefectQuantity3` | double | Malzeme ıskarta miktarı (3. birim) | | `StockDefectQuantity` | double[] | Stok bazlı ıskarta miktarları (1. birim) | | `StockDefectQuantity2` | double[] | Stok bazlı ıskarta miktarları (2. birim) | | `StockDefectQuantity3` | double[] | Stok bazlı ıskarta miktarları (3. birim) | | `CounterDifferenceCausedAutoDefectId` | int | Sayaç farkından otomatik ıskarta tanımı | | `IsUnitConversionForCounterDifferenceCausedDefectEnabled` | bool | Birim dönüşümü aktif mi? | | `CounterDifferenceCausedDefectMinuendQuantityType` | int | Eksilen miktar birim tipi | | `CounterDifferenceCausedDefectSubtrahendQuantityType` | int | Çıkarılan miktar birim tipi | | `IsUpdatingPreviousOperationPlanQuantityDueToScrapAmountEnabled` | bool | Önceki operasyon miktarı ıskartaya göre güncelleniyor mu? | | `IsUpdatingAllPreviousOperationsPlanQuantityDueToScrapAmountEnabled` | bool | Tüm önceki operasyonlar güncelleniyor mu? | | `IsCheckingDefectEntryIfGreaterThanCounterEnabled` | bool | Iskarta sayaçtan büyük ise uyarı aktif mi? | | `DefectSignalPorts` | SignalPort[] | Iskarta sinyal portları | ??? info "EmployeeStateContext" | Alan | Tip | Açıklama | |---|---|---| | `Team` | Team | Aktif takım ve operatör bilgisi | | `IsNotifyingIfEmployeeLoggedInAnotherWorkStationEnabled` | bool | Başka istasyonda giriş varsa bildirim | | `IsPreventingEmployeeLoginIfLoggedInAnotherWorkStationEnabled` | bool | Başka istasyonda giriş varsa engelle | | `IsLoggingInAndOutEmployeeViaBarcodeEnabled` | bool | Barkod ile giriş/çıkış aktif mi? | | `IsChangingEmployeeViaBarcodeEnabled` | bool | Barkod ile personel değişimi aktif mi? | | `EmployeeLoginLogoutDigitalOutputNo` | int | Personel giriş/çıkış output port no | | `ProductionWithoutEmployeeDigitalOutputNo` | int | Operatörsüz üretim output port no | ??? info "EnergyStateContext" | Alan | Tip | Açıklama | |---|---|---| | `EnergyCounterCount` | int | Enerji sayacı adedi | | `EnergyConsumptionsDuringWorkAsKilowatt` | double[] | Üretim sırasında tüketim (kW) | | `EnergyConsumptionsDuringStoppageAsKilowatt` | double[] | Duruş sırasında tüketim (kW) | | `EnergyConsumptionDuringStandByAsKilowatt` | double[] | Bekleme sırasında tüketim (kW) | ??? info "EquipmentStateContext" | Alan | Tip | Açıklama | |---|---|---| | `EquipmentId` | int | Mevcut ekipman referansı | | `EquipmentNo` | string | Ekipman numarası | | `EquipmentName` | string | Ekipman adı | | `EquipmentCoefficient` | double | Ekipman katsayısı | | `IsEquipmentValidationEnabled` | bool | Ekipman doğrulama aktif mi? | | `IsEquipmentSelectionOnPlanLoadEnabled` | bool | Plan yüklemede ekipman seçimi aktif mi? | | `IsEquipmentSelectionOnPlanLoadRequired` | bool | Plan yüklemede ekipman seçimi zorunlu mu? | ??? info "ForkliftStateContext" | Alan | Tip | Açıklama | |---|---|---| | `IsAutoForkliftOrderCreationEnabled` | bool | Otomatik forklift görevi oluşturma aktif mi? | | `AutoForkliftOrderInterval` | int | Otomatik forklift görevi aralığı | | `IsConsecutivelyForkliftOrderCreationDisabled` | bool | Art arda forklift görevi oluşturma devre dışı mı? | | `ForkliftTakeOrderAmountFrequency` | double[] | Forklift alma görevi miktar frekansı | | `LastForkliftTakeOrderProductionAmount` | double[] | Son forklift alma görevindeki üretim miktarı | | `ForkliftFetchOrderFrequency` | int | Forklift getirme görevi frekansı | | `LastForkliftFetchOrderProductionAmount` | double[] | Son forklift getirme görevindeki üretim miktarı | ??? info "LabelStateContext" | Alan | Tip | Açıklama | |---|---|---| | `LabelComPortNo` | string | Etiket yazıcı COM port numarası | ??? info "LineStateContext" | Alan | Tip | Açıklama | |---|---|---| | `CurrentLineId` | int | Mevcut hat referansı | | `LineNumbers` | int[] | Hat numaraları | | `MasterStationIds` | string | Master istasyon ID'leri | | `LineIds` | string | Hat ID'leri | | `LineStationIds` | string | Hat istasyon ID'leri | | `LineNextStationIds` | string | Hattaki sonraki istasyon ID'leri | | `LineBackStationIds` | string | Hattaki önceki istasyon ID'leri | | `LineStationOrderNo` | int | Hat içindeki istasyon sıra numarası | | `RelatedWorkStationId` | int | İlişkili istasyon ID'si | | `IsMasterStation` | bool | Master istasyon mu? | | `IsLineProductionEnabled` | bool | Hat üretimi aktif mi? | | `IsLineAssemblyProductionEnabled` | bool | Hat montaj üretimi aktif mi? | | `IsLinePalletingWorkStation` | bool | Hat paletleme istasyonu mu? | | `IsLinePackagingWorkStation` | bool | Hat paketleme istasyonu mu? | | `IsLineSerieProductionEnabled` | bool | Hat serili üretim aktif mi? | | `IsRandomLineWorkEnabled` | bool | Rastgele hat çalışması aktif mi? | | `IsListingAlreadyWorkedMasterStationJobsDisabled` | bool | Çalışılmış master istasyon işleri listeleme kapalı mı? | | `IsCheckingMasterStationOnPlanLoadDisabled` | bool | Plan yüklemede master istasyon kontrolü kapalı mı? | | `MasterStationJobControlInterval` | int | Master istasyon iş kontrol aralığı | | `StoppageReasonStationStoppageCauseId` | int | Duruş neden istasyonu duruş nedeni ID'si | | `IsLineStopStatusChanged` | bool | Hat durma durumu değişti mi? | | `IsCheckingLineStopStartTimeEnabled` | bool | Hat durma başlangıç zamanı kontrolü aktif mi? | ??? info "MaintenanceStateContext" | Alan | Tip | Açıklama | |---|---|---| | `CurrentOrder` | MaintenanceOrder | Aktif bakım iş emri | | `EmployeeEntries` | List\<MaintenanceEmployeeEntry\> | Bakım personel girişleri | | `AnyMaintenanceOrderActiveForCurrentEquipment` | bool | Mevcut ekipman için aktif bakım var? | | `IsMaintenanceWarningEnabled` | bool | Bakım uyarısı aktif mi? | | `IsMaintenanceWebModuleEnabled` | bool | Web bakım modülü aktif mi? | | `EquipmentPeriodicalMaintenancePlanId` | int | Periyodik bakım planı ID'si | | `EquipmentTargetCycleCount` | int | Hedef çevrim sayısı | | `EquipmentLastCycleCount` | int | Son çevrim sayısı | | `EquipmentLastMaintenanceCycleCount` | int | Son bakımdaki çevrim sayısı | | `EquipmentPeriodicalMaintenanceCycleCount` | int | Periyodik bakım çevrim sayısı | | `EquipmentAdditionalMaintenanceCycleCount` | int | Ek bakım çevrim sayısı | | `IsCreatingPeriodicalMaintenanceOrderWithoutWarningEnabled` | bool | Uyarısız periyodik bakım oluşturulsun mu? | | `MaintenanceOrderCompleterEmployeeId` | int | Bakımı tamamlayan personel ID'si | ??? info "OpcStateContext" | Alan | Tip | Açıklama | |---|---|---| | `IsOpcEquipmentDefined` | bool | OPC üzerinden ekipman tanımlı mı? | | `IsOpcStockDefined` | bool | OPC üzerinden stok tanımlı mı? | | `IsOpcSpeedDefined` | bool | OPC üzerinden hız tanımlı mı? | | `IsSpeedEstablishedViaOpc` | bool | Hız OPC üzerinden mi alınıyor? | ??? info "OperationStateContext" | Alan | Tip | Açıklama | |---|---|---| | `OperationId` | int | Mevcut operasyon referansı | | `OperationNo` | string | Operasyon numarası | | `OperationName` | string | Operasyon adı | | `IsCheckingPreviousOperationProductionControlOnJobListingEnabled` | bool | İş listelemede önceki operasyon üretim kontrolü aktif mi? | | `IsCheckingPreviousOperationWorkingControlOnJobListingEnabled` | bool | İş listelemede önceki operasyon çalışma kontrolü aktif mi? | ??? info "ProcessDataStateContext" Veri paketi tanımlanmamıştır; yalnızca metot çağrıları içerir. ??? info "ProductionConfirmationStateContext" | Alan | Tip | Açıklama | |---|---|---| | `ProductionConfirmationTime` | DateTime | Üretim onay zamanı | | `ProductionConfirmationTimeWithMilliSeconds` | DateTime | Üretim onay zamanı (ms dahil) | | `LastProductionConfirmationTime` | DateTime? | Son onay zamanı | | `LastSectionSaveTime` | DateTime? | Son bölüm kayıt zamanı | | `ProductionStartTime` | DateTime | Üretim başlangıç zamanı | | `LastProductionReceiptQuantity` | double | Son üretim fişi miktarı | | `LastPlanReceiptId` | int | Son plan fişi ID'si | | `LastProductionReceiptIds` | string | Son üretim fişi ID'leri | | `IsLastProductionReceiptIntegratedSuccessfully` | bool | Son fiş entegrasyonu başarılı mı? | | `ReceiptIntegrationType` | ReceiptIntegrationType | Fiş entegrasyon tipi | | `IsProductionApproveEnabled` | bool | Üretim onayı aktif mi? | | `IsShiftChiefRequiredToCompleteProduction` | bool | Vardiya şefi onayı zorunlu mu? | | `IsProductionAmountChangedManually` | bool | Üretim miktarı manuel değiştirildi mi? | | `OppositeLotNo` | string | Karşı lot numarası | | `LotDescription` | string | Lot açıklaması | | `PlanReceiptReservedValue1` | double | Plan fişi rezerv değer 1 | | `PlanReceiptReservedValue2` | double | Plan fişi rezerv değer 2 | | `PlanReceiptReservedValue3` | double | Plan fişi rezerv değer 3 | | `IsUnapprovedProductionConfirmationEnabled` | bool | Onaysız üretim bildirimi aktif mi? | | `ProductionConfirmationDigitalOutputNo` | int | Üretim onay output port no | | `IsShowingDefectEntryBeforeConfirmationEnabled` | bool | Onay öncesi ıskarta girişi gösterilsin mi? | | `IsRequestingNonCompleteReceiptBarcodeEnabled` | bool | Yarım kasa fişi barkodu isteniyor mu? | | `IsRequestingUnderPerfomanceCauseEnabled` | bool | Düşük performans nedeni isteniyor mu? | | `UnderPerformanceLimitPercent` | int | Düşük performans sınırı yüzdesi | | `AutomaticReceiptQuantityUnitType1` | int | Otomatik fiş 1. miktar birim tipi | | `AutomaticReceiptQuantityUnitType2` | int | Otomatik fiş 2. miktar birim tipi | | `AutomaticReceiptQuantityUnitType3` | int | Otomatik fiş 3. miktar birim tipi | | `IsModifyingProductionEntriesOnProductionApproveEnabled` | bool | Onay sırasında üretim girişleri değiştirilebilir mi? | | `UserDefinedDataList` | Dictionary\<string, object\> | Kullanıcı tanımlı veri listesi | ??? info "ProductionPlanStateContext" | Alan | Tip | Açıklama | |---|---|---| | `PlanId` | int | Aktif plan referansı | | `PlanQuantity` | double | Planlanan üretim miktarı (1. birim) | | `PlanQuantity2` | double | Planlanan üretim miktarı (2. birim) | | `PlanQuantity3` | double | Planlanan üretim miktarı (3. birim) | | `LeftAmountForPlanCompletion` | double | Plana tamamlanmasına kalan miktar (1. birim) | | `LeftAmountForPlanCompletion2` | double | Plana tamamlanmasına kalan miktar (2. birim) | | `LeftAmountForPlanCompletion3` | double | Plana tamamlanmasına kalan miktar (3. birim) | | `PlanTotalProductionQuantity` | double | Toplam üretim miktarı (1. birim) | | `PlanTotalProductionQuantity2` | double | Toplam üretim miktarı (2. birim) | | `PlanTotalProductionQuantity3` | double | Toplam üretim miktarı (3. birim) | | `PlanTotalDefectQuantity` | double | Toplam ıskarta miktarı (1. birim) | | `PlanTotalDefectQuantity2` | double | Toplam ıskarta miktarı (2. birim) | | `PlanTotalDefectQuantity3` | double | Toplam ıskarta miktarı (3. birim) | | `PlanWorkStartDate` | DateTime? | Plan yüklenme zamanı | | `PlanStartDate` | DateTime? | Planın başlangıç zamanı | | `PlanDurationAsDays` | double | Plan toplam süresi (gün) | | `PlanNote` | string | Plan notu | | `PlanDescription` | string | Plan açıklaması | | `TraceNo` | string | Takip numarası | | `PlanSetupDuration` | int | Hazırlık duruş süresi (saniye) | | `PlanSetupStoppageCauseId` | int | Hazırlık duruş nedeni referansı | | `PlanRequiredEmployeeCount` | int | Gereken minimum operatör sayısı | | `PlanCycleOfPulse` | double | Sinyal bölen değeri | | `PlannedCyclePeriod` | double | Planlanan çevrim süresi | | `PreviousPlanId` | int | Bir önceki plan referansı | | `LastProducedStockId` | int | Son üretilen stok referansı | | `PlanProductCount` | int | Üretilecek ürün çeşit sayısı | | `PlanMaterialCount` | int | Sarf malzeme çeşit sayısı | | `ProductionPlanReceiptCount` | int | Üretim fiş sayısı | | `Stocks` | List\<Stock\> | Üretilecek stoklar | | `JobOrderId` | int[] | İş emri referansları (stok indisli) | | `ProductTreeId` | int[] | Ürün ağacı referansları (stok indisli) | | `PlanItemNo` | int[] | Plan detay sıra numaraları | | `PlanItemStatus` | int[] | Plan detay durumları | ??? info "ProductionToleranceStateContext" | Alan | Tip | Açıklama | |---|---|---| | `ProductionToleranceDueToNetWorkTime` | int | Net çalışma süresine göre üretim toleransı | | `MinProductionToleranceDueToSignalCounter` | int | Sinyal sayacına göre minimum tolerans | | `MaxProductionToleranceDueToSignalCounter` | int | Sinyal sayacına göre maksimum tolerans | | `IsMinProductionToleranceDueToPlanAmountEnabled` | bool | Plan miktarına göre minimum tolerans aktif mi? | | `IsMaxProductionToleranceDueToPlanAmountEnabled` | bool | Plan miktarına göre maksimum tolerans aktif mi? | | `MinProductionToleranceDueToPlanAmount` | int | Plan miktarına göre minimum tolerans | | `MaxProductionToleranceDueToPlanAmount` | int | Plan miktarına göre maksimum tolerans | | `IsMinProductionToleranceDueToStockUnitEnabled` | bool | Stok birimine göre minimum tolerans aktif mi? | | `IsMaxProductionToleranceDueToStockUnitEnabled` | bool | Stok birimine göre maksimum tolerans aktif mi? | | `MinProductionToleranceDueToStockUnit` | int | Stok birimine göre minimum tolerans | | `MaxProductionToleranceDueToStockUnit` | int | Stok birimine göre maksimum tolerans | | `StockUnitProductionToleranceUnitType` | int | Stok birimi tolerans tipi | ??? info "QualityControlStateContext" | Alan | Tip | Açıklama | |---|---|---| | `AnyInitialControlDefinitionExists` | bool | İlk kontrol tanımı var? | | `AnyFrequentialControlDefinitionExists` | bool | Frekans kontrol tanımı var? | | `AnyFinalControlDefinitionExists` | bool | Son kontrol tanımı var? | | `AnyUserDefinedControlDefinitionExists` | bool | Kullanıcı tanımlı kontrol var? | | `AnyUserDefinedTemplateExists` | bool | Kullanıcı tanımlı şablon var? | | `InitialControlTemplate` | QualityControlTemplate | İlk kontrol şablonu | | `InitialControlDefinitions` | TechnicalControlDefinition[] | İlk kontrol tanımları | | `FrequentialControlTemplate` | QualityControlTemplate | Frekans kontrol şablonu | | `FrequentialControlDefinitions` | TechnicalControlDefinition[] | Frekans kontrol tanımları | | `FinalControlTemplate` | QualityControlTemplate | Son kontrol şablonu | | `FinalControlDefinitions` | TechnicalControlDefinition[] | Son kontrol tanımları | | `UserDefinedControlTemplates` | List\<QualityControlTemplate\> | Kullanıcı tanımlı şablonlar | | `TechnicalControlEvents` | List\<TechnicalControlEvent\> | Teknik kontrol olayları | | `InitialInspectionInterval` | int | İlk kontrol aralığı | | `IsDisplayingQualityReceiptMessageOnCreationEnabled` | bool | Oluşturmada kalite fiş mesajı gösterilsin mi? | | `IsQualityWebModuleEnabled` | bool | Kalite web modülü aktif mi? | | `IsQualityWebModuleAutoLoginEnabled` | bool | Kalite web modülü otomatik giriş aktif mi? | | `DigitalOutputToBeActivatedOnQualityReceiptAccepted` | int | Onaylanan kalite fişinde output port no | | `DigitalOutputToBeActivatedOnQualityReceiptRejected` | int | Reddedilen kalite fişinde output port no | | `DigitalOutputToBeActivatedOnQualityReceiptWaiting` | int | Bekleyen kalite fişinde output port no | ??? info "RobotModelStateContext" | Alan | Tip | Açıklama | |---|---|---| | `IsRobotModelProductionEnabled` | bool | Robot model üretimi aktif mi? | | `IsRobotModelStockProductionEnabled` | bool | Robot model stok üretimi aktif mi? | | `LastRobotModelNo` | string | Son robot model numarası | | `LastRobotModelStockIds` | int[] | Son robot model stok ID'leri | | `LastRobotModelMultipliers` | double[] | Son robot model çarpanları | | `IsLastRobotModelStoppageModel` | bool | Son model duruş modeli miydi? | ??? info "ScaleStateContext" | Alan | Tip | Açıklama | |---|---|---| | `GrossWeight` | double | Brüt ağırlık | | `TareWeight` | double | Tare ağırlık | | `ScalePortData` | string | Terazi port ham verisi | | `ScaleDataPort` | SignalPort | Terazi veri portu | ??? info "SerieStateContext" | Alan | Tip | Açıklama | |---|---|---| | `CurrentProductBarcodeSerie` | ProductSerieInfo | Mevcut ürün seri barkod bilgisi | ??? info "StoppageStateContext" | Alan | Tip | Açıklama | |---|---|---| | `CurrentStoppageId` | int | Aktif duruş nedeni referansı | | `CurrentStoppage` | StoppageCause | Aktif duruş nedeni | | `IsPlannedStoppage` | bool | Planlı duruş mu? | | `StoppageStartTime` | DateTime | Duruş başlangıç zamanı | | `StoppageStartTimeWithMilliSeconds` | DateTime | Duruş başlangıç zamanı (ms dahil) | | `CurrentStoppageDuration` | int | Mevcut duruş süresi (saniye) | | `CurrentPlannedStoppageDuration` | int | Mevcut planlı duruş süresi (saniye) | | `TotalStoppageDuration` | int | Toplam duruş süresi | | `CurrentStoppageEstimatedDuration` | int | Tahmini duruş süresi | | `CurrentStoppageEndQuantity` | double | Duruşun biteceği üretim miktarı | | `StatusChangeTime` | DateTime | Durum değişim zamanı | | `CurrentStatusDurationAsSeconds` | int | Mevcut durum süresi (saniye) | | `ProductionDuringStoppage` | double | Duruş sırasındaki üretim (1. birim) | | `ProductionDuringStoppage2` | double | Duruş sırasındaki üretim (2. birim) | | `ProductionDuringStoppage3` | double | Duruş sırasındaki üretim (3. birim) | | `IsStoppageSelectedByEmployee` | bool | Duruş operatör tarafından mı seçildi? | | `IfStoppageStartedViaSignal` | bool | Duruş sinyal ile mi başladı? | | `StoppageSignalPortNo` | int | Duruş sinyal port numarası | | `StoppagePriority` | int | Duruş önceliği | | `ReasonEquipmentId` | int | Duruş neden ekipman ID'si | | `SignalStopType` | TrexStopType | Sinyal duruş tipi | | `LineStopType` | TrexStopType | Hat duruş tipi | | `StoppageBackgroundColor` | EdgeColor | Duruş arka plan rengi | | `StoppageForegroundColor` | EdgeColor | Duruş ön plan rengi | | `IfAuthorizationRequired` | bool | Yetkilendirme gerekli mi? | | `IfInteractionOrAuthorizationRequired` | bool | Etkileşim veya yetkilendirme gerekli mi? | | `NoShiftStoppageId` | int | Vardiya dışı duruş ID'si | | `IsCurrentStoppageShiftBreakStoppage` | bool | Mevcut duruş vardiya molası mı? | | `WorkStationSetupStoppageCauseId` | int | İstasyon hazırlık duruş nedeni ID'si | | `UndefinedStoppageChangeMinLimit` | int | Tanımsız duruş değişim alt limiti | | `UndefinedStoppageChangeMaxLimit` | int | Tanımsız duruş değişim üst limiti | | `ShortStoppageIgnoreLimit` | int | Kısa duruş yok sayma limiti | | `UndefinedStoppageDigitalOutputNo` | int | Tanımsız duruş output port no | | `PlannedStoppageEndDigitalOutputNo` | int | Planlı duruş bitiş output port no | | `WorkingStateDigitalOutputNo` | int | Çalışma durumu output port no | | `IsUndefinedStoppageOutputControlActive` | bool | Tanımsız duruş output kontrolü aktif mi? | | `StopStartDescription` | string | Duruş başlangıç açıklaması | | `StopEndDescription` | string | Duruş bitiş açıklaması | ??? info "WorkStationStateContext" | Alan | Tip | Açıklama | |---|---|---| | `WorkStationId` | int | İstasyon referansı | | `WorkStationNo` | string | İstasyon numarası | | `WorkStationName` | string | İstasyon adı | | `TranslatedWorkStationName` | string | Çevrilmiş istasyon adı | | `WorkStationGroup` | string | İstasyon grubu | | `Description` | string | İstasyon açıklaması | | `WorkCenterId` | int | İş merkezi referansı | | `WorkCenterNo` | string | İş merkezi numarası | | `WorkCenterName` | string | İş merkezi adı | | `StationEquipmentId` | int | İstasyon sabit ekipman referansı | | `MachineType` | MachineType | Makine tipi | | `PreviousWorkStationId` | int | Önceki istasyon referansı | | `NextWorkStationId` | int | Sonraki istasyon referansı | | `RequiredEmployeeCount` | int | Gereken operatör sayısı | | `WorkStationCycleUnitType` | CycleUnitType | Çevrim birimi tipi | | `WorkStationCycleUnitName` | string | Çevrim birimi adı | | `QuantityDisplayFormat` | string | Miktar görüntüleme formatı | | `MaxCycleOfCoefficient` | int | Maksimum çevrim katsayısı | | `MaxCycleOfPulse` | int | Maksimum çevrim puls | | `MaxStockCoefficient` | int | Maksimum stok katsayısı | | `IsHidingOnStationSelectionEnabled` | bool | İstasyon seçiminde gizleme aktif mi? | ## Çıkış Mesajı Context Getter, **Method Invoker ile aynı `msg.payload` array pattern'ini** kullanır. Sorgu nesnesi `msg.payload` dizisine eklenir: ```json // msg.payload (array) [ { "receiveddata" : { "WorkStationId": 5, "..." : "..." }, "message" : "ProductionPlanStateContext", "valuelabel" : 5, "name" : "PlanContext", "operationtype": "ContextGetterProcess" } ] ``` Önceki node'dan gelen `msg.payload` bir nesne ise (dizi değil) önce `receiveddata` olarak saklanır, ardından diziye sarılır — bu sayede zincirdeki event verisi kaybolmaz. | Alan | Açıklama | |---|---| | `receiveddata` | Önceki node'dan taşınan orijinal payload (event verisi) | | `message` | Seçili StateContext adı | | `valuelabel` | Sorgulanacak istasyon ID'si | | `name` | Node adı — Method Returns eşleşmesi bu alanla yapılır | | `operationtype` | Sabit: `"ContextGetterProcess"` | ## Çalışma Modeli ```mermaid sequenceDiagram autonumber participant Event as Business Events participant CG as Context Getter participant Resp as Responser participant Panel as trexMes Panel participant MR as Method Returns Event->>CG: msg geldi CG->>CG: msg.payload dizisine sorgu eklendi CG->>Resp: msg iletildi Resp-->>Panel: HTTP cevabı (context sorgusu) Note over Panel: Context snapshot hazırlanıyor... Panel->>MR: Context verisi gönderildi (ayrı HTTP) MR->>MR: Yeni akış başladı ``` ## Tipik Akış ```mermaid flowchart LR A[Business Events<br/>OnShiftStarted] --> B[Context Getter<br/>AnalysisStateContext<br/>wsId=5] B --> C[Responser] D[Method Returns<br/>AnalysisStateContext] --> E[function<br/>OEE hesapla] E --> F[Custom Form<br/>Vardiya ekranı] F --> G[Responser] style A fill:#ccffcc,color:#000 style B fill:#ccffcc,color:#000 style C fill:#ccffcc,color:#000 style D fill:#ccffcc,color:#000 style E fill:#ccffcc,color:#000 style F fill:#ccffcc,color:#000 style G fill:#ccffcc,color:#000 ``` ## Method Returns ile Bağlantı !!! warning "Name eşleşmesi zorunludur" Context Getter node'unun `name` alanı, ilgili **Method Returns** node'undaki `methodname` seçimi ile **birebir** eşleşmelidir. ``` Context Getter name: "ProductionPlanStateContext" Method Returns methodname: "ProductionPlanStateContext" ``` Method Returns editör panelinde açılır liste, akıştaki tüm Method Invoker ve Context Getter node adlarını otomatik listeler; elle yazmak gerekmez. ## WorkStation ID Kaynağı `workstationidType` değerine göre iki farklı kullanım: === "Sabit sayı (num)" ``` WorkStation ID: 5 (num) ``` Her çağrıda aynı istasyon sorgulanır. === "Mesajdan oku (msg)" ``` WorkStation ID: payload.workStationId (msg) ``` Önceki node'dan gelen mesaj içindeki değer kullanılır. Dinamik istasyon seçimi için tercih edilir. ## Örnek Senaryo — Üretim Planı Verisi Okuma 1. `Business Events` — `OnOrderStarted` tetiklenir; `msg.payload.workStationId = 3` 2. `Context Getter` — `ProductionPlanStateContext`, workstationid = `msg.payload.workStationId` 3. `Responser` — çağrı akışı kapandı 4. Panel plan verisini hazırlar ve gönderir 5. `Method Returns` (adı: `ProductionPlanStateContext`) tetiklenir 6. `function` node — `msg.payload.PlanQuantity`, `msg.payload.LeftAmountForPlanCompletion` okunur 7. `Custom Form` — plan durumu ekranda gösterilir ## Sık Karşılaşılan Hatalar !!! failure "Method Returns tetiklenmiyor" - Context Getter'ın `name` alanı ile Method Returns'teki `methodname` uyuşuyor mu? - Context Getter akışa eklenip **deploy** edildi mi? !!! failure "WorkStation ID 0 geliyor" `workstationidType` = `msg` seçiliyken önceki node'dan gerekli alan gelmiyor olabilir. Bir `debug` node ile `msg` içeriğini kontrol edin. !!! failure "Context verisi boş" İlgili WorkStation panelde tanımlı değil veya context o an dolu değil olabilir. Panel log'larını kontrol edin. ## İlgili - [Method Returns](method-returns.md) — Context sorgu cevabını yakala - [Method Invoker](method-invoker.md) — Servis method çağrısı için - [Responser](responser.md) — Her akışın sonu