İçeriğe geç

Çözüm Alanlarımız

Yazılım ve Uygulama Geliştirme

Özel yazılım geliştirme, mobil ve web uygulamaları, sistem entegrasyonu.

Endüstriyel bir yazılım, ofiste çalışan bir uygulamadan farklı koşullarda yaşar: ağ kopar, vardiya değişir, operatör ekrana eldivenle dokunur ve hiçbir kayıt geriye dönük silinemez. Üretim takip uygulamaları, operatör terminalleri, saha mobil uygulamaları ve ERP/MES entegrasyonlarını bu kısıtları başlangıç noktası alarak yazıyoruz.

Nerede işe yarıyor

Bir tesiste kontrol katmanı çalışıyor olabilir, buna rağmen üretim rakamı hâlâ vardiya sonunda Excel’e elle yazılıyordur. Yazılım işi çoğunlukla burada başlıyor: sahada zaten var olan veriyi kullanılabilir hâle getirmek, ya da hiç kaydedilmeyen bir şeyi kaydetmeye başlamak.

En sık istenen uygulamalar şunlar:

  • Üretim takip ve raporlama. İş emri, parti, vardiya ve duruş nedeni bazında kayıt; duruş analizi ve OEE bileşenlerinin (kullanılabilirlik, performans, kalite) tek yerden okunması.
  • Operatör terminali. Hat başındaki dokunmatik panelde iş emri seçme, tarif (recipe) onaylama, duruş nedeni girme, kalite ölçümü kaydetme.
  • Mobil saha uygulaması. Bakım turu, periyodik kontrol listesi, arıza bildirimi ve sayım — telefonla, çoğu zaman kapsama alanının dışında.
  • Test ve ölçüm yazılımı. Ölçüm cihazlarından veri toplayıp sonucu bir kabul kriterine göre değerlendiren, sonunda seri numarasına bağlı bir kayıt bırakan masaüstü uygulamalar.
  • Veri toplama noktaları. Barkod ve RFID okuyucularla ürünün nereden geçtiğini yazmak; el terminaliyle depo ve sevkiyat hareketi.

Endüstriyel yazılımın farkı

Aynı işi yapan bir kurumsal uygulamayla aradaki fark özelliklerde değil, varsayımlarda:

  • “İnternet var” varsayımı geçmez. Kablosuz kapsama üretim alanında noktasaldır; makine arkası, depo koridoru ve soğuk oda çoğu tesiste kör noktadır. Uygulama çevrimdışı çalışmalı, veriyi yerelde tutmalı ve bağlantı gelince eşitlemeli.
  • Arayüz eldivenle kullanılır. Dokunma alanları büyük, adım sayısı az, klavye girişi mümkün olduğunca yok. Sık yapılan işlem tek dokunuşa inmeli.
  • Vardiya devri bir olaydır. Yazılım “kim çalışıyor” bilgisini vardiyaya bağlamalı; devirde açık kalan oturum ve yarım bırakılmış kayıt bir sonraki vardiyanın verisini kirletir.
  • Saat senkronizasyonu veri kadar önemli. Terminal, PLC ve sunucu farklı saatlerdeyse duruş süreleri anlamsız çıkar. Tüm bileşenler ortak bir zaman kaynağından (NTP) beslenir.
  • Yanıt süresi üretimi bekletmez. Operatörün beklediği bir ekran, hattın beklemesidir. Kayıt işlemi yerelde anında tamamlanır, sunucuya gönderim arka planda yürür.

Nasıl çalışıyoruz

İşe veri modelinden başlıyoruz: hangi olay kaydedilecek, hangi anahtarla (iş emri, seri numarası, parti) bağlanacak. Bu netleşmeden ekran çizmek, üç ay sonra raporun sorulan soruyu cevaplayamamasıyla sonuçlanıyor.

Sonra arayüzü sahada deniyoruz. Ofiste güzel görünen bir ekran, hat başında ışık altında okunamıyor ya da operatörün duruşuyla uyuşmuyor olabilir. Bir terminali kabul etmeden önce o ekranı gerçek kullanıcısıyla, gerçek gürültüde çalıştırıyoruz.

Entegrasyonu sözleşmeyle yapıyoruz: OpenAPI veya proto dosyası, örnek istek/yanıtlar ve hata durumları yazılı. Karşı tarafın sistemi değiştiğinde neyin kırıldığı böyle görülüyor.

Kurulum yerinde (on-premise) veya bulutta olabilir; kararı verinin tesis dışına çıkıp çıkamayacağı ve internet kesildiğinde ne olacağı veriyor. Yerinde kurulumda Docker ile paketliyoruz, böylece güncelleme ve geri dönme tek komuta iniyor.

Dikkat ettiğimiz noktalar

Kayıt silinemez. Denetim izi (audit trail) sonradan eklenen bir özellik değil, veri modelinin parçası.

Yetki gerçekten uygulanır. Menüyü gizlemek yetki değildir; kontrol her zaman sunucu tarafında yapılır.

Yedekleme, geri dönme denenerek doğrulanır. Alınmış ama hiç geri yüklenmemiş bir yedek, yedek sayılmaz.

Uygulama kendi hatasını görünür kılar. Sessizce boş dönen bir eşitleme, en pahalı hata türüdür; başarısız aktarımlar bir kuyrukta beklemeli ve yönetici ekranında sayılmalı.

Terminal kendi başına ayağa kalkar. Elektrik kesildikten sonra cihaz açıldığında uygulama kullanıcı müdahalesi olmadan çalışır duruma gelmeli; tarayıcı penceresi kapalı kalmış, oturum düşmüş bir panel vardiyanın ilk yarım saatini yiyor.

Ekran sayısı azdır, alan sayısı azdır. Operatörden istenen her ek alan, doldurulmayan ya da rastgele doldurulan bir alan olma riski taşır. Zorunlu alanı ancak o veri gerçekten bir kararı besliyorsa ekliyoruz; geri kalanı otomatik toplanır (zaman damgası, kullanıcı, makine, okunan barkod).

Diğer alanlarla ilişkisi

Yazılım katmanı, altındaki kaynağın kalitesi kadar iyidir. Etiket (tag) sözlüğü düzgün kurulmamış bir hattan gelen veri, ne kadar güzel bir arayüze konursa konsun yanlış sayar — bu yüzden uygulamaları genelde endüstriyel otomasyon ve veri toplama ve analiz işleriyle birlikte planlıyoruz. Terminallerin ve saha cihazlarının ağ tarafı ise haberleşme sistemleri kapsamında ele alınıyor.

Sık sorulan sorular

Ağ koptuğunda üretim duruyor mu?

Doğru kurulduğunda durmuyor. Terminal ve mobil uygulamaları yerel bir kuyrukla yazıyoruz: kayıt önce cihazın kendi deposuna düşüyor, bağlantı geri geldiğinde sunucuya eşitleniyor. Bunun bedeli çakışma yönetimidir — aynı iş emrine iki cihazdan giriş yapıldığında hangisinin kazandığı yazılı bir kurala bağlanmalı. Bu kuralı proje başında belirliyoruz, yoksa çevrimdışı çalışma sessizce veri kaybına dönüşüyor.

Mevcut ERP'mize bağlanabilir misiniz?

Bir arayüzü varsa evet; yoksa arada bir entegrasyon katmanı kuruyoruz. Kritik nokta entegrasyonun yönü ve sıklığı: stok ve iş emri genelde ERP'den okunur, üretim gerçekleşmesi ise ERP'ye yazılır. Doğrudan veritabanına yazmayı önermiyoruz — ERP'nin kendi doğrulama mantığını atlar ve ilk sürüm yükseltmesinde kırılır. Aktarımı tekrar denenebilir (idempotent) kurgulamak da şart, çünkü kesilen bir aktarım tekrar çalıştığında aynı miktar iki kez yazılmamalı.

Operatör yanlış bir kayıt girdi, silebilir miyiz?

Kaydı silmiyoruz, düzeltme kaydı ekliyoruz. Üretim verisi hem kalite hem izlenebilirlik için kanıt niteliği taşır; geriye dönük silinebilen bir kayıt bu niteliği kaybeder. Uygulamada yanlış kayıt "iptal" veya "düzeltildi" durumuna geçer, kim ne zaman neyi değiştirdi bilgisi denetim izinde kalır. Ekranda operatör yalnız güncel değeri görür, geçmiş yöneticide açılır.

Terminalde herkes aynı hesapla mı çalışıyor?

Hayır, ve bunu baştan kapatıyoruz. Tek ortak hesapla çalışan bir terminalde denetim izi anlamsızlaşır: bir hatanın kimden geldiği bilinemez. Bunun yerine kısa PIN veya kart okutmayla saniyeler süren bir oturum açma kuruyoruz; vardiya devrinde açık oturum kapanır, uzun süre işlem olmazsa oturum kendiliğinden düşer.

Akıllı çözümler, güvenli yarınlar

Üretiminizi geleceğe taşıyalım

Hattınızdaki darboğazı anlatın; ölçülebilir bir iyileştirme planıyla dönelim. İlk görüşme ve ihtiyaç analizi için bize yazın.