Eski makineleri IoT ile donatmak (retrofit), gerçek üretim verisi elde etmenin genellikle en hızlı yoludur; çünkü parçalarınızın çoğunu üreten makineler çoğu zaman onlarca yıllıktır ve yakın zamanda değiştirilmeyecektir. Bu rehberde hangi müdahalesiz sinyallerden yararlanacağınızı, sensörler ile kontrolcü arayüzleri arasında nasıl seçim yapacağınızı ve hiçbir PLC mantığını değiştirmeden makine durumunu MQTT üzerinden yayınlayan, çalışan bir akım pensi izleyicisini nasıl kuracağınızı öğreneceksiniz.
Neden Değiştirmek Yerine Donatmalı?
Yirmi yıllık bir torna, pres veya plastik enjeksiyon makinesi toleransı hâlâ mükemmel şekilde tutabilir. Eksik olan bir ağ portudur ya da BT tarafında kimsenin tanımadığı bir protokol konuşan bir portu vardır. Veri almak için onu değiştirmek nadiren haklı gösterilebilir. Donatmak ise maliyetin küçük bir kısmına mal olur ve bir bakım penceresinde yapılabilir.
İyi bir dönüşümün yol gösterici ilkesi önce müdahalesiz olmaktır. PLC mantığındaki her değişiklik doğrulama, bir yedek plan ve çoğu zaman artık var olmayabilecek orijinal entegratörü gerektirir. Dışarıdan kenetlediğiniz her sensör ise bunların hiçbirini gerektirmez. Kontrol sistemine dokunmadan okuyabileceğiniz sinyallerle başlayın ve kontrolcü entegrasyonuna ancak değer kanıtlandığında geçin.
Eski Bir Makinede Neler Ölçülmeli?
İlk dönüşümdeki değerin çoğu, "makine parça üretiyor mu, üretmiyorsa neden?" sorusunu yanıtlayan bir avuç sinyalden gelir.
| Sinyal | Nasıl yakalanır | Size ne söyler | Müdahale düzeyi |
|---|---|---|---|
| İş mili veya motor akımı | Bir faza takılan ayrılabilir çekirdekli akım trafosu (akım pensi) | Kapalı, boşta, çalışıyor, aşırı yük | Yok, mevcut bir kablonun etrafına kenetlenir |
| Işıklı kolon durumu | Kolon lambasında ışık sensörleri veya kuru kontaklar | Operatörün gördüğü haliyle çalışıyor, bekliyor, alarm | Çok düşük |
| Parça sayısı | Bir itici üzerinde yaklaşım sensörü veya çevrim tamamlandı sinyalinde bir kontak | Verim ve çevrim süresi | Düşük |
| Titreşim | Kablolu veya kablosuz, mıknatıslı montajlı ivmeölçer | Rulman aşınması, dengesizlik, takım durumu | Yok |
| Sıcaklık | Kenetlemeli veya yapışkanlı prob | Aşırı ısınan motorlar, hidrolik yağ, soğutma sıvısı | Yok |
| Kontrolcü verisi | Bir gateway üzerinden Modbus, Ethernet/IP, S7 veya seri okuma | Program, alarmlar, set değerleri, sayaçlar | Orta, PLC'ye salt okunur erişim |
Akım pensi özel bir ilgiyi hak ediyor. Makine başına tek bir sensörle durumu, kullanım oranını ve hatta kaba enerji tüketimini çıkarabilirsiniz. Bir PLC'ye, makinede bir ağ portuna veya makine üreticisinin iş birliğine ihtiyaç duymaz.
Sensörler ile Kontrolcü Arayüzleri Arasında Seçim
İki geniş dönüşüm yolu vardır ve bunlar birbiriyle iyi uyum sağlar.
Ek sensörler makinenin kontrolcüsünden bağımsızdır. Röle mantıklı makinelerde, eskimiş PLC'lerde veya kilitli kontrolcülerde çalışırlar. Size iş milinin gerçekten dönüp dönmediği gibi fiziksel gerçekliği verirler, ancak program numarası veya alarm metni gibi bağlam vermezler.
Kontrolcü arayüzleri makinenin zaten sahip olduğu veriyi okur. Pek çok eski PLC bir seri port üzerinden Modbus RTU sunar ve son yirmi yılın birçok PLC'si Modbus TCP, Ethernet/IP veya S7 iletişimini destekler. Bir gateway register'ları veya tag'leri salt okunur modda okur ve yayınlar. Modbus TCP'den MQTT'ye ve PLC'den buluta bağlantı rehberlerimiz bu yolu adım adım anlatıyor.
Pratik bir sıralama şöyledir: önce pensi takın, kullanım oranı verisiyle değeri kanıtlayın, ardından alarm kodlarının ve sayaçların ek çabayı haklı çıkardığı makinelere kontrolcü okumaları ekleyin.
Dönüşüm Mimarisi
Ne ölçerseniz ölçün mimari aynı kalır:
- Makinedeki sensörler analog, dijital veya saha veri yolu sinyalleri üretir.
- Bir edge cihazı bunları okur. Bu, tek bir makine için ESP32 gibi bir mikrodenetleyici ya da tüm bir hat için bir IIoT edge gateway olabilir.
- Edge cihazı,
site/area/line/machine/measurementgibi bir topic hiyerarşisi kullanarak bir broker'a MQTT yayınlar. - Tüketiciler abone olur: paneller, OEE hesaplamaları, historian'lar, bakım sistemleri.
Bunu ölçeklenebilir tutan broker'dır. Ellinci makineyi eklemek ilkini eklemekle aynıdır ve yeni bir tüketicinin verinin nasıl toplandığını bilmesine asla gerek yoktur. MQTT sizin için yeniyse MQTT broker'ın ne olduğunu anlatan yazıyla başlayın.
Uygulamalı: ESP32 ile Akım Pensi Tabanlı Makine İzleyici
Bu örnek bir ESP32 ve 30 A'da 1 V RMS çıkış veren SCT-013-030 gibi gerilim çıkışlı, ayrılabilir çekirdekli bir akım trafosu kullanır. Pens, GPIO34'e bir orta nokta öngerilim devresi üzerinden bağlanır (3,3 V'tan GND'ye iki eşit direnç ve toprağa bir kondansatör; pens orta nokta ile ADC pini arasında); böylece AC sinyal yaklaşık 1,65 V etrafında salınır.
Önce güvenlik: pens, makinenin panosu içindeki tek bir yalıtımlı iletkenin etrafına takılır. Bu iş, makine enerjisiz bırakılmışken yetkin bir elektrikçi tarafından yapılmalıdır. Tüm fazları taşıyan çok damarlı bir kablonun etrafına asla pens takmayın; manyetik alanlar birbirini götürür ve sıfıra yakın bir değer okursunuz.
#include <WiFi.h>
#include <PubSubClient.h>
const char* WIFI_SSID = "plant-iot";
const char* WIFI_PASS = "your-wifi-password";
const char* MQTT_HOST = "broker.connectmq.com";
const int MQTT_PORT = 1883;
// Genel broker'da benzersiz bir önek kullanın; oradaki her şeyi herkes okuyabilir
const char* BASE = "connectmq/demo/k7q2x9/factory1/turning/lathe07";
const int CT_PIN = 34;
const float AMPS_PER_VOLT = 30.0; // SCT-013-030: 1 V RMS = 30 A
const float IDLE_AMPS = 1.0; // bunun altında makine kapalıdır
const float RUN_AMPS = 4.0; // bunun üstünde iş mili kesim yapıyordur
WiFiClient net;
PubSubClient mqtt(net);
String lastState = "";
unsigned long lastReport = 0;
float readAmpsRms() {
const int N = 2000;
static float samples[N];
float sum = 0;
for (int i = 0; i < N; i++) {
samples[i] = analogReadMilliVolts(CT_PIN) / 1000.0;
sum += samples[i];
delayMicroseconds(100); // ~200 ms pencere, 50 Hz'de 10 şebeke periyodu
}
float mean = sum / N;
float sq = 0;
for (int i = 0; i < N; i++) {
float v = samples[i] - mean;
sq += v * v;
}
return sqrt(sq / N) * AMPS_PER_VOLT;
}
void connectMqtt() {
String clientId = "lathe07-" + String((uint32_t)ESP.getEfuseMac(), HEX);
String stateTopic = String(BASE) + "/state";
while (!mqtt.connected()) {
// Güç veya Wi-Fi kaybolursa Last Will izleyiciyi çevrim dışı olarak işaretler
if (mqtt.connect(clientId.c_str(), stateTopic.c_str(), 1, true, "UNKNOWN")) {
lastState = "";
} else {
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
analogSetPinAttenuation(CT_PIN, ADC_11db);
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) delay(500);
mqtt.setServer(MQTT_HOST, MQTT_PORT);
connectMqtt();
}
void loop() {
if (!mqtt.connected()) connectMqtt();
mqtt.loop();
float amps = readAmpsRms();
String state = amps < IDLE_AMPS ? "OFF" : (amps < RUN_AMPS ? "IDLE" : "RUNNING");
// Durumu değişimde yayınla, paneller anında görsün diye retained
if (state != lastState) {
mqtt.publish((String(BASE) + "/state").c_str(), state.c_str(), true);
lastState = state;
}
// Trend için akımı her 10 saniyede bir yayınla
if (millis() - lastReport > 10000) {
char buf[64];
snprintf(buf, sizeof(buf), "{\"amps\":%.2f}", amps);
mqtt.publish((String(BASE) + "/current").c_str(), buf);
lastReport = millis();
}
}
k7q2x9 ifadesini kendi rastgele dizenizle değiştirin, kartı programlayın ve bir dizüstü bilgisayardan abone olun:
mosquitto_sub -h broker.connectmq.com -p 1883 -i lathe-watch-$RANDOM \
-t 'connectmq/demo/k7q2x9/#' -v
Eşikleri, makine kapalıyken, iş mili durmuş halde boşta çalışırken ve kesim yaparken akımı izleyerek kalibre edin. Her makinenin pompalardan, fanlardan ve hidrolikten kaynaklanan kendine özgü bir boşta çekişi vardır; bu yüzden IDLE_AMPS ve RUN_AMPS makine bazında ayarlanmalıdır. Üretim için 8883 portunda WiFiClientSecure'a geçin ve ConnectMQ portalınızdaki kullanıcı adını, parolayı ve client ID'yi kullanın.
Yaygın Dönüşüm Tuzakları
- Yanlış eşikler. Hidrolik pompası sürekli çalışan bir makine, çalışma eşiği çok düşükse tüm vardiya boyunca "çalışıyor" görünür. Gözlenen davranışa göre kalibre edin.
- Elektriksel gürültü. VFD'ler ve kontaktörler gürültü enjekte eder. Sensör kablolarını kısa tutun, ekranlı kablo kullanın ve örnekte olduğu gibi ölçümlerin birkaç şebeke periyodu üzerinden ortalamasını alın.
- Çelik panolarda Wi-Fi. Kapalı bir panonun içindeki kart bağlantısını kaybedebilir. Harici bir anten kullanın veya elektroniği panonun dışına monte edin.
- Çevrim dışı durumu olmaması. Last Will olmadan, gücü kesilen bir izleyici son durumu sonsuza kadar gösterir. Örnek bunu önlemek için retained will mesajı olarak
UNKNOWNyayınlar. - Yapılandırılmamış topic'ler. Hiyerarşiyi ikinci makineden önce belirleyin. Elli cihazı sonradan yeniden adlandırmak zahmetlidir.
Tek Makineden Tüm Atölyeye Ölçeklemek
Birkaç makine raporlamaya başladığında sorular kablolamadan operasyona kayar: kaç bağlantı, kim hangi veriyi okuyabilir, duruşlarda nasıl alarm verilir. Yönetilen bir MQTT broker sunucu işini ortadan kaldırır, böylece sensörlere odaklanabilirsiniz. ConnectMQ ile dönüştürülmüş her makineyi canlı topic gezgininde izleyebilir, cihaz görünümünde ISA-95 seviyesine göre gruplayabilir ve örneğin iş mili akımı bir aşırı yük sınırını aştığında tetiklenen eşik alarm kuralları belirleyebilirsiniz. Ücretsiz Serverless plan 25 bağlantıya kadar destekler; bu da bir pilot hücre için yeterlidir. Dönüşümden tesis çapında veriye kadar tüm yolculuk için MQTT ile Endüstriyel IoT rehberimizi ve IIoT kavram kanıtı (PoC) planını okuyun.
ConnectMQ ile Başlayın
app.connectmq.com adresinde kredi kartı gerekmeden ücretsiz bir Serverless broker oluşturun. Genel broker'ı TLS'li kendi ConnectMQ uç noktanızla değiştirin; dönüştürülmüş makineleriniz, herhangi bir panelin veya analitik aracının abone olabileceği canlı ve yapılandırılmış veriye dönüşsün.
Sık Sorulan Sorular
PLC'yi değiştirmeden eski makineleri IoT ile donatabilir miyim?
Evet. Akım pensleri, ışıklı kolon sensörleri, titreşim sensörleri ve parça sayım sensörleri kontrol mantığının dışına kurulur. Hiçbir PLC değişikliği olmadan size makine durumunu ve kullanım oranını verirler.
Makine durumunu izlemenin en ucuz yolu nedir?
Ana motor veya iş mili beslemesine takılan ve küçük bir mikrodenetleyici tarafından okunan tek bir ayrılabilir çekirdekli akım pensi genellikle en düşük maliyetli seçenektir. Akım seviyesi kapalı, boşta ve çalışıyor durumlarını ayırt eder.
Çalışan bir makineye akım pensi takmak güvenli mi?
Bir elektrik panosu içine pens montajı, kilitleme-etiketleme (lockout) prosedürlerini izleyen yetkin bir elektrikçi tarafından yapılmalıdır. Pensin kendisi devreyi kesmez, ancak pano canlı parçalar içerir.
Ne zaman veriyi doğrudan PLC'den okumalıyım?
Alarm kodları, program numaraları veya kesin parça sayaçları gibi bağlama ihtiyacınız olduğunda. Salt okunur erişime sahip bir gateway kullanın ve ek sensörler verinin değerini kanıtladıktan sonra başlayın.



