Ana içeriğe geç

Communication Events

Communication Events
Inputs: 0
Outputs: 1
Kategori: trexMes service

trexMes paneli ile operatör veya harici cihaz arasındaki iletişim olaylarına abone olur. Barkod okuma, seri port, IO kart, OPC ve benzeri dış kaynaklı etkileşimleri yakalar.

Property Tablosu

Alan Tip Varsayılan Açıklama
name string Canvas üzerinde gösterilecek ad
event string (boş) Abone olunacak iletişim olayı
ishandled boolean false Node-RED bu olayı handle ediyor mu?

Olay Listesi

Olay Açıklama
OnAssemblyPictureSignalChanged Montaj resim gösterim sinyalinin değişimi sırasında fırlatılır.
OnBarcodeScanned Uygulama ana ekranı veya COM barkod okuyucu ile gerçekleştirilen barkod okutma işlemlerinde tetiklenir.
OnBarcodeScanning Barkod okutma işlemlerinde standart barkod kurguları çalıştırılmadan önce tetiklenir. IsHandled true ise standart işlem yapılmaz.
OnNotificationMessageProcessing Bildirim mesajı alındığında tetiklenir. IsHandled true ise sadece mesaj durumu gösterildi olarak güncellenir.
OnDigitalInputValueChanged Dijital input sinyal değeri değiştiğinde tetiklenir.
OnDigitalInputValueChanging Dijital input sinyal değeri değişmek üzere olduğunda tetiklenir.
OnDigitalOutputValueChanged Dijital output sinyal değeri değiştiğinde tetiklenir.
OnDigitalOutputValueChanging Dijital output sinyal değeri değişmek üzere olduğunda tetiklenir.
OnIOCardDataCoalesced IO kart üzerinden alınan sinyal verisinin çözümlenmesinden hemen önce tetiklenir.
OnJobOrderStockBarcodeScanned İş emri veya stok barkodu taratılıp ilgili işlem gerçekleştirildiğinde tetiklenir.
OnJobOrderStockBarcodeScanning İş emri veya stok barkodu taratıldığında tetiklenir. IsHandled true ise standart işlemler es geçilir.
OnLotBarcodeScanning Sarf lot girişi için barkod okutma işlemi gerçekleştirildiğinde tetiklenir. IsHandled true ise standart işlemler es geçilir.
OnNgpCommandProcessing trex Lite üzerinden gelen istek işlenmeden hemen önce tetiklenir. IsHandled true ise standart kurgu işletilmez.
OnPortDataChanged OPC haberleşmesi üzerinden gerçekleşen veri portu değer değişimi işlendiğinde tetiklenir.
OnPortDataChanging OPC haberleşmesi üzerinden gerçekleşen veri portu değer değişimi işlenmek üzere olduğunda tetiklenir.
OnPortManagerConnected IO kart ile port yöneticisi arasında bağlantı gerçekleştirildiğinde tetiklenir.
OnPortManagerInitialized Sinyal port yöneticisi ayağa kalktığında tetiklenir.
OnPortManagerInitializing Sinyal port yöneticisi ayağa kalktığı esnada tetiklenir.
OnPortParametersLoaded Sinyal port parametre tanımları yüklendiğinde tetiklenir.
OnProductionConfirmationSignalChanged Üretim onay sinyali ile üretim onayı gerçekleştirildiğinde tetiklenir.
OnProductionConfirmationSignalInputValuesSetting Üretim onay süreci sonrası sinyal input değerlerinin set edilmesi sırasında tetiklenir.
OnSerialPortBarcodeScanning Seri port üzerinden barkod okutma işlemi gerçekleştirildiğinde standart işlemler öncesi tetiklenir.
OnSerieBarcodeScanning Serili üretim barkod işlemleri gerçekleştirilmeden hemen önce tetiklenir.
OnSocketMessageInterpreted OPC haberleşmesi amacı ile dinlenen TCP socket üzerinden gelen mesaj çözümlendiğinde tetiklenir.
OnStoppageSignalChanged Duruş sinyal input durumu değiştiğinde tetiklenir.
OnDefectEntrySignalChanged Iskarta giriş sinyal input durumu değiştiğinde tetiklenir.

msg.payload Yapısı

Communication Events, payload'u düz (flat) birleştirilmiş bir nesne olarak gönderir. Yapı şu sırayı izler:

  1. EventArgs alanları — olaya özgü veriler, üst seviyede taşınır
  2. IsHandled — akış kontrolü bayrağı
  3. WorkStationStatusEntry — istasyonun anlık üretim durumu
{
  "WorkStationId": 5,
  "Barcode": "STOCK-12345-SN-ABC123",
  "IsHandled": false,
  "WorkStationStatusEntry": {
    "WorkStationId": 0,
    "IsPlanLoaded": false,
    "IsStopped": false,
    "ProductionQuantity": 0.0,
    "ShiftId": 0,
    "ClientVersion": "",
    "...": "..."
  }
}

Yukarıdaki örnek OnBarcodeScanned içindir. Her event kendi EventArgs alanlarını üst seviyede taşır.

IsHandled — akışı kesme

IsHandled alanı bulunan eventlarda, akış içinde bu değer true yapılırsa panel tarafındaki varsayılan işlem atlanır. Akışı kesmek veya veriyi değiştirmek için Handle Setter nodu kullanılır.

Editörde önizleme

Event seçildiğinde editör içinde tam msg.payload yapısı collapse edilebilir JSON ağacı olarak görüntülenir. IsHandled içeren eventlar editörde amber uyarı bandı gösterir: iç objeler başlangıçta kapalı gelir, tıklanarak açılabilir.

Örnek Kullanım

flowchart LR
    A[Communication Events<br/>OnBarcodeScanned] --> B{Barcode\ngeçerli mi?}
    B -- Evet --> C[İş emrine bağla]
    B -- Hayır --> D[Handle Setter<br/>IsHandled=true]
    D --> E[Custom Form\nHata mesajı]

    style A fill:#ccffcc,color:#000
    style D fill:#ccffcc,color:#000
    style E fill:#ccffcc,color:#000

İpuçları

Barkod yönlendirme

OnBarcodeScanned ile okunan barkodun içeriğine göre farklı üretim akışlarına yönlendirme yapabilirsiniz. IsHandled: true ile panelin kendi barkod işlemesini devre dışı bırakabilirsiniz.

Sinyal izleme

OnDigitalInputValueChanged ile IO kart giriş sinyallerini izleyebilir, belirli bir sinyal değişiminde üretim duruşu başlatabilir ya da alarm tetikleyebilirsiniz.

OPC veri günlüğü

OnPortDataChanged ile OPC tag değişimlerini InfluxDB veya MQTT'ye iletebilirsiniz.

Argüman Referansı

Her event için msg.payload içindeki EventArgs özel alanları listelenmektedir.
Tüm Communication Events payload'unda ayrıca IsHandled ve WorkStationStatusEntry da bulunur.

OnBarcodeScanned · OnJobOrderStockBarcodeScanned

Model: BarcodeScannedEventArgs

{
  "WorkStationId": 5,
  "Barcode": "STOCK-12345-SN-ABC123"
}

OnBarcodeScanning · OnJobOrderStockBarcodeScanning · OnSerialPortBarcodeScanning

Model: BarcodeScanningEventArgs

{
  "WorkStationId": 5,
  "Barcode": "STOCK-12345-SN-ABC123",
  "IsBarcodeValid": true,
  "IsBarcodeChanged": true
}

OnSerieBarcodeScanning

Model: SerieBarcodeScanningEventArgs

{
  "WorkStationId": 0,
  "Barcode": "",
  "IsBarcodeValid": false,
  "BarcodeValidationMessage": ""
}

OnLotBarcodeScanning

Model: LotBarcodeScanningEventArgs

{
  "WorkStationId": 0,
  "LotNo": "",
  "StockId": 0,
  "JobOrderId": 0,
  "ItemNo": 0,
  "IsLotNoChanged": false
}

OnNotificationMessageProcessing

Model: NotificationMessageProcessingEventArgs

{
  "WorkStationId": 0,
  "NotificationMessageId": 0,
  "Message": "",
  "TransactionType": 0,
  "TransactionId": 0,
  "TransactionQuantity": 0.0,
  "TransactionQuantityUnitType": 0
}

OnAssemblyPictureSignalChanged · OnPortDataChanged · OnPortDataChanging · OnProductionConfirmationSignalChanged · OnStoppageSignalChanged

Model: PortDataChangeEventArgs

{
  "WorkstationId": 0,
  "Value": null,
  "Port": {
    "PortNo": 0,
    "PlcType": 0,
    "OpcIpAddress": "",
    "OpcPlcName": "",
    "OpcChannelName": "",
    "OpcTagDefinitionId": 0,
    "OpcTagDefinitionName": "",
    "DigitalInputType": 0,
    "IsHighSpeedCounter": false,
    "IsMultiCycle": false
  }
}

OnDigitalInputValueChanged · OnDigitalInputValueChanging

Model: DIChangeEventArgs — Veri paketi tanımlanmamıştır.

OnDigitalOutputValueChanged · OnDigitalOutputValueChanging

Model: DOChangeEventArgs — Veri paketi tanımlanmamıştır.

OnIOCardDataCoalesced

Model: IOCardDataCoalescedEventArgs

{
  "Summary": {
    "PortName": "",
    "Data": ""
  }
}

OnNgpCommandProcessing

Model: NgpCommandProcessingEventArgs

{
  "WorkStationId": 0,
  "IsProcessSuccessed": false,
  "ResponseMessage": "",
  "NgpCommand": {
    "WorkStationId": 0,
    "CommandId": 0,
    "CommandType": 0,
    "Command": "",
    "IsProcessed": false,
    "InsertUserId": 0,
    "InsertDate": null
  }
}

OnPortManagerConnected

Model: PortManagerConnectedEventArgs — Veri paketi tanımlanmamıştır.

OnPortManagerInitialized

Model: PortManagerInitializedEventArgs — Veri paketi tanımlanmamıştır.

OnPortManagerInitializing

Model: PortManagerInitializingEventArgs — Veri paketi tanımlanmamıştır.

OnPortParametersLoaded

Model: PortParametersLoadedEventArgs — Veri paketi tanımlanmamıştır.

OnProductionConfirmationSignalInputValuesSetting

Model: ProductionConfirmationSignalInputValuesSettingEventArgs

{
  "WorkStationId": 0
}

OnSocketMessageInterpreted

Model: SocketMessageInterpretedEventArgs

{
  "Summary": {
    "TagId": 0,
    "Time": 0,
    "Value": ""
  }
}

OnDefectEntrySignalChanged

Model: DefectEntrySignalChangedEventArgs

{
  "WorkStationId": 0,
  "PortProcessType": 0
}

İlgili