HMI reçete değeri PLC’ye yazılmıyorsa, öncelikle HMI’daki ilgili etiketin (tag) veri tipi, adresi ve uzunluğunun PLC’deki hedef etiketin veri tipi, adresi ve uzunluğuyla birebir eşleştiğinden emin olun. PLC’deki hedef verinin yazma iznini ve HMI-PLC iletişim protokol ayarlarını kontrol edin. Byte sırası (endianness) farklılıkları da sıkça karşılaşılan bir uyumsuzluk nedenidir.
HMI Reçete Değeri PLC’ye Yazılmıyorsa Veri Tipi ve adres eşleşmesi nasıl kontrol edilir? Nedir?
Endüstriyel otomasyon sistemlerinde, İnsan Makine Arayüzleri (HMI) operatörlerin üretim süreçlerini izlemesi ve kontrol etmesi için kritik bir rol oynar. Reçeteler (Recipes) ise belirli bir ürün veya süreç için önceden tanımlanmış parametre setleridir ve genellikle HMI üzerinden girilerek Programlanabilir Mantık Denetleyicilerine (PLC) yazılır. Bu reçete değerlerinin PLC’ye doğru bir şekilde aktarılması, üretimin kalitesi ve verimliliği açısından hayati öneme sahiptir. Ancak zaman zaman, HMI’dan girilen bir reçete değerinin PLC’ye yazılmadığı durumlarla karşılaşılır. Bu durumun en yaygın nedenlerinden biri, HMI ve PLC arasındaki veri tipi ve adres eşleşme sorunlarıdır. Bu rehber, bu tür sorunları tespit etmek ve çözmek için adım adım bir yaklaşım sunmaktadır.
Temel olarak, HMI ve PLC farklı yazılım ortamlarında geliştirilen ve farklı donanımlar üzerinde çalışan iki ayrı cihazdır. Bu iki cihazın birbirleriyle doğru bir şekilde iletişim kurabilmesi için, veri alışverişinde kullanılan her bir değişkenin (tag) hem veri tipinin hem de hafıza adresinin her iki tarafta da tam olarak eşleşmesi gerekir. HMI’da tanımlanan bir “Reçete Değeri” etiketi, PLC’de karşılık gelen bir değişkenin (örneğin, bir veri bloğu içindeki bir kelime veya bir giriş/çıkış adresi) belirli bir formatta depolanmasını bekler. Eğer HMI, bir değeri bir tamsayı (Integer) olarak gönderirken, PLC bu adreste bir ondalık sayı (Real/Float) bekliyorsa veya adresleme formatı (örneğin, “DB1.DBW0” yerine “MW0”) yanlışsa, yazma işlemi başarısız olacaktır. Bu rehber, bu uyumsuzlukları nasıl tespit edeceğinizi ve düzelteceğinizi detaylandıracaktır.
Çalışma Prensibi ve Teknik Veriler
HMI ve PLC arasındaki iletişim, belirli bir iletişim protokolü üzerinden gerçekleşir. Bu protokoller (örneğin, Modbus TCP/RTU, Siemens Profinet, Rockwell Ethernet/IP, OPC UA) verilerin nasıl paketleneceğini, gönderileceğini ve alınacağını tanımlar. Reçete değerlerinin yazılması süreci genellikle şu adımları içerir:
- Operatör HMI ekranına reçete değerini girer.
- HMI yazılımı, bu değeri kendi içindeki tanımlı etiketin (tag) veri tipine göre işler.
- HMI, etiketin adres bilgisine göre hedef PLC adresine yazma isteği gönderir.
- PLC, gelen yazma isteğini alır, hedef adresi kontrol eder ve gelen veriyi kendi veri tipine göre yorumlamaya çalışır.
- Eğer veri tipi, adres ve diğer parametreler (uzunluk, byte sırası vb.) eşleşiyorsa, PLC değeri yazar. Aksi takdirde yazma işlemi başarısız olur ve genellikle HMI’da bir hata mesajı görüntülenir veya yazma işlemi sessizce göz ardı edilir.
Bu süreçte kritik olan teknik veriler ve kontrol noktaları şunlardır:
-
Veri Tipi Eşleşmesi: HMI’da tanımlı olan veri tipi ile PLC’deki değişkenin veri tipi kesinlikle aynı olmalıdır.
- BOOL (Boolean): Tek bit (Doğru/Yanlış, 0/1).
- BYTE: 8 bit işaretsiz tamsayı (0-255).
- WORD: 16 bit işaretsiz tamsayı (0-65535).
- INT (Integer): 16 bit işaretli tamsayı (-32768 – 32767).
- DINT (Double Integer): 32 bit işaretli tamsayı.
- REAL / FLOAT: 32 bit kayan noktalı sayı (ondalıklı sayılar için).
- STRING: Karakter dizileri.
Örneğin, HMI’da bir değeri “INT” olarak tanımlayıp PLC’de bu değeri “REAL” bir adrese yazmaya çalışmak hataya yol açacaktır. Benzer şekilde, HMI’da “REAL” girilen bir değeri PLC’de “INT” bir adrese yazmaya çalışırsanız, PLC sadece tamsayı kısmını alabilir veya tamamen yanlış bir değer yazabilir.
-
Adres Eşleşmesi: HMI’da tanımlanan etiketin PLC adresi, PLC programındaki hedef değişkenin tam ve doğru adresini göstermelidir.
- Siemens (TIA Portal/Step 7): Veri blokları (DBx.DBWn, DBx.DBDn, DBx.DBXn.y), Merkerler (MWn, MDn, Mxn.y), Giriş/Çıkışlar (IWn, QWn).
- Rockwell (Studio 5000/RSLogix 500): N7:0, F8:0, B3:0, Program:MainProgram.MyTag.0, Controller Tags.MyDINTTag.
- Schneider Electric (Unity Pro): %MWn, %Mwn, %IWn, %QWn.
- Modbus tabanlı sistemler: Holding Register (4xxxx), Input Register (3xxxx), Coil (0xxxx), Discrete Input (1xxxx).
Adres formatının ve offset’lerinin doğru olduğundan emin olun. Özellikle veri blokları veya yapılar içindeki değişkenler için, başlangıç adresinden olan offset (kaydırma) değeri çok önemlidir.
- Uzunluk Eşleşmesi: Özellikle String (karakter dizileri) veya Array (dizi) tipi verilerde, HMI ve PLC’deki tanımlı uzunlukların aynı olması gerekir. HMI’da 10 karakterlik bir string tanımlanırken, PLC’de 20 karakterlik bir string bekleniyorsa veya tam tersi durum mevcutsa sorunlar yaşanabilir.
- Byte Sırası (Endianness): Özellikle 16-bit (WORD, INT) ve 32-bit (DINT, REAL) veri tiplerinde, HMI ve PLC’nin byte sırası farklı olabilir. Bazı sistemler Big-Endian (en anlamlı byte önce), bazıları ise Little-Endian (en az anlamlı byte önce) kullanır. Bu farklılık, sayıların yanlış yorumlanmasına neden olur (örneğin, 12345 değeri yerine 34125 gibi bir değer okunur). HMI veya PLC yazılımında genellikle “Byte Swap” veya “Word Swap” seçenekleri bulunur.
- Erişim İzinleri: PLC programında veya donanım konfigürasyonunda, ilgili veri alanına HMI’dan yazma izni verilmiş olmalıdır. Bazı PLC’ler varsayılan olarak belirli bellek alanlarını salt okunur yapabilir.
- İletişim Protokolü ve Port Ayarları: HMI ve PLC’nin aynı iletişim protokolünü (örn. Modbus TCP) ve aynı port numarasını kullandığından emin olun. IP adresleri ve alt ağ maskeleri de doğru yapılandırılmalıdır.
| Parametre | Değer/Açıklama |
|---|---|
| HMI Etiket Adı | Örn: Recete_Sicaklik, Ürün_Kodu_String |
| PLC Değişken Adı | Örn: DB10.DBD0 (Siemens), ControllerTags.SetTemp (Rockwell) |
| Veri Tipi Eşleşmesi | HMI: REAL, PLC: REAL (32-bit kayan nokta). Veya HMI: INT, PLC: INT (16-bit tamsayı). |
| Adresleme Formatı | HMI’da “DB10, DWord 0” tanımlıysa, PLC’de de DB10.DBD0 olmalı. |
| Veri Uzunluğu | String ise HMI’da 20 karakter, PLC’de CHAR[20] veya String[20] olmalı. |
| Byte Sırası (Endianness) | HMI ve PLC arasında “Little-Endian” veya “Big-Endian” uyumluluğu. Gerekirse byte/word swap ayarı. |
| Erişim İzni | PLC’deki ilgili adrese HMI tarafından yazma izni (Read/Write) olmalı. |
| İletişim Protokolü | HMI ve PLC aynı protokolü kullanmalı (örn. Modbus TCP, Profinet). |
Sahada Dikkat Edilmesi Gerekenler
- HMI ve PLC Projelerini Karşılaştırma: En güncel HMI projesini ve PLC projesini açın. HMI’daki reçete değerinin etiket tanımını (veri tipi, adres, uzunluk) bulun. Ardından PLC programında bu adrese karşılık gelen değişkenin tanımını kontrol edin. İki tanımın birebir aynı olduğundan emin olun. Özellikle büyük projelerde, HMI ve PLC programlarının farklı versiyonları veya eski yedeklerden geri yüklenmiş versiyonları arasında uyumsuzluklar görülebilir. Her zaman en güncel ve çalışan versiyonları referans alın.
- PLC’de Online İzleme (Monitoring): PLC programını online olarak izleyerek, HMI’dan bir yazma işlemi başlatıldığında hedef adresteki değerin değişip değişmediğini gözlemleyin. Eğer değer hiç değişmiyorsa veya yanlış bir değerle değişiyorsa, sorun veri tipi/adres uyumsuzluğundan kaynaklanıyor olabilir. Bazı PLC’lerde (örn. Siemens TIA Portal) Watch Table veya PLC Tag Table üzerinden değerleri zorlayarak (force) veya manuel olarak yazarak test edebilirsiniz.
- HMI Hata Mesajlarını Kontrol Etme: HMI ekranında veya HMI’ın sistem loglarında herhangi bir iletişim hatası, yazma hatası veya etiket hatası olup olmadığını kontrol edin. Bu hata mesajları sorunun kaynağı hakkında önemli ipuçları verebilir. Örneğin, “Tag communication error” veya “Write failed” gibi mesajlar, iletişim katmanında veya adreslemede bir sorun olduğunu gösterir.
- İletişim Protokolü ve Cihaz Ayarları: HMI ve PLC arasındaki temel iletişim bağlantısını doğrulayın. Ping komutu ile IP adreslerine erişilebilirliği kontrol edin. HMI’ın PLC sürücüsünün (driver) doğru seçildiğinden ve ayarlarının (IP adresi, port numarası, rack/slot numarası vb.) PLC’nin iletişim ayarlarıyla eşleştiğinden emin olun. PLC’nin iletişim modülü ayarlarını da kontrol etmek faydalı olacaktır.
- Byte/Word Sırası (Endianness) Kontrolü: Özellikle farklı marka HMI ve PLC’ler kullanılıyorsa veya farklı mimarilere sahip cihazlar arasında veri alışverişi yapılıyorsa, byte sırası uyumsuzlukları sıkça görülür. HMI yazılımında veya PLC programında “Byte Swap” veya “Word Swap” fonksiyonları olup olmadığını araştırın ve gerekirse bu ayarları deneyerek sorunu giderin. Örneğin, Siemens PLC’ler genellikle Big-Endian iken, bazı diğer sistemler Little-Endian kullanabilir.
- PLC Yazma İzinleri ve Koruması: PLC programında veya CPU ayarlarında, ilgili veri alanının veya veri bloğunun yazmaya karşı korunup korunmadığını kontrol edin. Bazı veri blokları sadece PLC tarafından yazılabilir veya belirli bir yetki seviyesi gerektirebilir. Ayrıca, PLC’nin RUN modunda olduğundan ve HMI’dan yazma işlemlerine izin verdiğinden emin olun.
Sık Karşılaşılan Sorunlar ve Çözümleri
HMI reçete değerlerinin PLC’ye yazılmaması durumunda karşılaşılan bazı yaygın sorunlar ve bunların çözüm yöntemleri şunlardır:
1. Yanlış Veri Tipi Seçimi:
- Sorun: HMI’da bir etiket “INT” (16-bit tamsayı) olarak tanımlanırken, PLC’deki karşılık gelen değişken “DINT” (32-bit tamsayı) veya “REAL” (kayan nokta) olarak tanımlanmıştır. Bu durumda HMI’dan gönderilen değer ya kesilir (truncation) ya da yanlış yorumlanır.
- Çözüm: HMI ve PLC’deki veri tiplerini birebir eşleştirin. Eğer PLC’de “DINT” gerekiyorsa, HMI’daki etiketi de “DINT” olarak ayarlayın. Eğer PLC’de “REAL” gerekiyorsa, HMI’daki etiketi de “REAL” olarak ayarlayın. Gerekirse PLC tarafında veya HMI tarafında veri tipi dönüşüm (type casting) fonksiyonları kullanın.
2. Adres Offset Hataları veya Yanlış Adresleme:
- Sorun: Özellikle veri blokları (DB) veya yapılar (STRUCT) kullanılırken, HMI’da belirtilen adres (örn. DB10.DBW0) PLC’deki doğru değişkenin adresiyle eşleşmeyebilir. Örneğin, HMI ‘DB10.DBW0’ adresine yazmaya çalışırken, PLC’deki hedef değişken aslında ‘DB10.DBW2’ adresinde bulunuyor olabilir.
- Çözüm: Hem HMI projesindeki etiket adresini hem de PLC projesindeki değişkenin tam adresini dikkatlice kontrol edin. PLC programında veri bloğu yapısını ve her bir değişkenin offset’ini (kaydırma değerini) doğrulayın. HMI’daki adresin PLC’deki değişkenin başlangıç adresine ve veri tipine uygun olduğundan emin olun.
3. Byte Sırası (Endianness) Uyumsuzluğu:
- Sorun: HMI ve PLC farklı byte sıralamaları kullanıyorsa (örn. biri Big-Endian, diğeri Little-Endian), 16-bit veya 32-bit değerler yanlış okunur veya yazılır. Örneğin, HMI’dan “12345” değeri gönderildiğinde PLC’de “54321” gibi anlamsız bir değer görünür.
- Çözüm: HMI veya PLC yazılımında “Byte Swap” veya “Word Swap” ayarlarını kullanarak byte sırasını düzeltin. Bazı HMI sürücüleri bu ayarı otomatik yapabilirken, bazılarında manuel olarak etkinleştirmeniz gerekebilir. PLC programında da bu tür dönüşüm fonksiyonları (örn. Siemens’te SWAP komutu) kullanılabilir.
4. Dizi (Array) veya Yapı (Struct) Elemanlarına Yanlış Erişim:
- Sorun: HMI’dan bir dizinin belirli bir elemanına veya bir yapının bir üyesine yazmaya çalışırken, adresleme yanlış yapılabilir. Örneğin, HMI genel dizi adını kullanırken, PLC belirli bir dizin (index) bekliyor olabilir.
- Çözüm: HMI’da dizi elemanlarını (örn. “MyArray[0]”, “MyArray[1]”) veya yapı üyelerini (örn. “MyStruct.TempSetPoint”) doğru şekilde adresleyin. PLC tarafında da bu elemanlara erişimin doğru olduğundan emin olun. Reçeteler genellikle bir dizi veya yapı olarak organize edildiğinden, bu durum özellikle önemlidir.
5. PLC’de Yazma İzni Olmaması:
- Sorun: PLC programında ilgili veri bloğu veya değişken salt okunur olarak ayarlanmış olabilir, veya HMI’ın o alana yazma yetkisi olmayabilir.
- Çözüm: PLC programındaki ilgili veri bloğunun veya değişkenin özelliklerini kontrol edin ve yazma izninin (Read/Write access) olduğundan emin olun. Gerekirse PLC güvenlik ayarlarını veya kullanıcı yetkilendirmelerini gözden geçirin.
6. HMI Cache veya Güncelleme Sorunları:
- Sorun: HMI, değeri PLC’ye doğru yazsa bile, kendi ekranında eski bir değeri göstermeye devam edebilir veya güncellemeyi geciktirebilir.
- Çözüm: HMI’ı yeniden başlatın. HMI yazılımında etiketlerin güncelleme hızlarını (scan rate) kontrol edin ve gerekirse hızlandırın. Bazı HMI’larda dahili cache temizleme seçenekleri bulunabilir.
7. İletişim Kesintileri veya Hataları:
- Sorun: Temel iletişim hattında (Ethernet kablosu, Modbus bağlantısı vb.) fiziksel bir sorun veya ağ konfigürasyonunda bir hata olabilir.
- Çözüm: Ağ kablolarını, konnektörleri ve switch’leri kontrol edin. HMI ve PLC’nin IP adresleri, alt ağ maskeleri ve ağ geçidi ayarlarının doğru olduğundan emin olun. HMI ve PLC arasında ping testi yapın. İletişim protokolü ayarlarını (örneğin Modbus adresleri, TCP portları) her iki tarafta da doğrulayın.
Uzman Tavsiyesi
HMI reçete değerinin PLC’ye yazılmaması sorunu, endüstriyel otomasyon sistemlerinde sıkça karşılaşılan, ancak genellikle sistematik bir yaklaşımla çözülebilecek bir durumdur. Bu tür sorunların temelinde yatan ana nedenler çoğunlukla HMI ve PLC arasındaki veri tipi, adresleme ve iletişim protokolü uyumsuzluklarıdır. Bir uzman olarak, bu sorunları gidermenin en etkili yolunun, detaylı bir kontrol listesiyle ve sabırla her bir parametreyi adım adım doğrulamaktan geçtiğini söyleyebilirim. Öncelikle, HMI projesindeki etiket tanımlarını (veri tipi, adres, uzunluk) ve PLC projesindeki karşılık gelen değişken tanımlarını (veri tipi, adres, offset) titizlikle karşılaştırın. Bu iki tarafın tam bir uyum içinde olması, başarılı bir yazma işlemi için vazgeçilmezdir. Özellikle karmaşık veri yapıları (diziler, yapılar) ve farklı üreticilerin cihazları arasında veri alışverişi yapıldığında byte sırası (endianness) farklılıklarına özel dikkat gösterilmelidir. Gerekirse HMI veya PLC yazılımında byte/word swap fonksiyonlarını devreye sokun. İletişim katmanındaki temel bağlantıların (IP adresi, protokol, port) doğru olduğundan ve PLC’de ilgili veri alanına yazma izni verildiğinden emin olun. Her zaman en güncel HMI ve PLC programlarını kullandığınızdan ve bu programların sahada çalışan sistemle senkronize olduğundan emin olun. Son olarak, HMI’ın hata loglarını ve PLC’nin online izleme ekranlarını aktif olarak kullanarak sorunun kökenine dair kritik ipuçlarını yakalayın. İyi bir dokümantasyon, gelecekte benzer sorunlarla karşılaşıldığında size büyük zaman kazandıracaktır. Unutmayın, otomasyon dünyasında “çalışmıyorsa, bir yerde bir uyumsuzluk vardır” ilkesi her zaman geçerlidir.

