Eski PLC Programını Yeni PLC’ye Taşırken Adresleme Hataları Nasıl Ortaya Çıkar?
📑 İçindekiler (Tıkla Aç)
- Eski PLC Programını Yeni PLC’ye Taşırken Adresleme Hataları Nasıl Ortaya Çıkar? Nedir?
- Çalışma Prensibi ve Teknik Veriler
- 1. Farklı Adresleme Yapıları ve Söz Dizimi
- 2. Bellek Düzeni ve Alan Farklılıkları
- 3. Veri Tipi Uyuşmazlıkları ve Boyut Farklılıkları
- 4. I/O Modül Konfigürasyonları ve Fiziksel Adresleme
- 5. Endianness Farklılıkları
- 6. Sistem Fonksiyonları ve Blokları (SFB/SFC)
- Sahada Dikkat Edilmesi Gerekenler
- Sık Karşılaşılan Sorunlar ve Çözümleri
- Uzman Tavsiyesi
Eski PLC programını yeni PLC’ye taşırken adresleme hataları; farklı üreticilerin adresleme yapıları, veri tiplerindeki uyuşmazlıklar, bellek düzeni farklılıkları ve I/O modül konfigürasyonlarındaki uyumsuzluklar nedeniyle ortaya çıkar. Bu hatalar, programın yanlış giriş/çıkışlara erişmesine, verileri hatalı işlemesine veya sistemin beklenmedik şekilde davranmasına yol açar.
Eski PLC Programını Yeni PLC’ye Taşırken Adresleme Hataları Nasıl Ortaya Çıkar? Nedir?
Endüstriyel otomasyon sistemlerinde, üretim süreçlerinin verimliliğini ve güvenilirliğini artırmak amacıyla eskiyen veya yetersiz kalan Programlanabilir Mantık Kontrolcüsü (PLC) sistemlerinin yeni nesil platformlara taşınması sıkça karşılaşılan bir durumdur. Bu modernizasyon projeleri, genellikle daha yüksek performans, gelişmiş iletişim yetenekleri ve daha kolay bakım imkanları sunar. Ancak, bu geçiş sürecinin en kritik ve hata potansiyeli yüksek aşamalarından biri, mevcut PLC programının yeni donanıma uyarlanmasıdır. Özellikle adresleme hataları, bu geçişlerde karşılaşılan en inatçı ve zorlayıcı sorunlardan biridir. Adresleme hatası, programın belirli bir girişe, çıkışa, dahili belleğe veya veri bloğuna erişmeye çalışırken beklenen veya doğru konum yerine başka bir konuma yönlendirilmesi durumudur. Bu durum, fiziksel I/O modüllerinin yanlış eşleşmesinden, bellek düzeni farklılıklarına, veri tipi uyuşmazlıklarından, hatta farklı PLC mimarilerinin getirdiği endianness sorunlarına kadar geniş bir yelpazede kendini gösterebilir. Sonuç olarak, taşınan programın doğru çalışmaması, beklenmeyen davranışlar sergilemesi veya sistemin tamamen durması gibi ciddi operasyonel aksaklıklara yol açabilir.
Çalışma Prensibi ve Teknik Veriler
Adresleme hatalarının temelinde, eski ve yeni PLC platformları arasındaki mimari ve yazılımsal farklılıklar yatar. Her PLC üreticisi (Siemens, Rockwell Automation, Schneider Electric, Mitsubishi, Omron vb.) ve hatta aynı üreticinin farklı ürün aileleri, bellek düzeni, I/O adresleme mekanizmaları ve veri tipi tanımlamaları konusunda kendine özgü yaklaşımlara sahiptir. Bu farklılıklar, program taşıma sürecinde dikkatle ele alınmadığında kritik hatalara neden olur.
1. Farklı Adresleme Yapıları ve Söz Dizimi
Eski PLC’ler genellikle mutlak adresleme (absolute addressing) kullanırken, yeni nesil PLC’ler sembolik adreslemeyi (symbolic addressing) veya her ikisini birden destekler. Mutlak adresleme, bir girişin veya belleğin doğrudan fiziksel veya mantıksal adresini (örn. I0.0, Q1.2, M10.5) kullanırken, sembolik adresleme daha okunabilir ve yönetilebilir isimler (örn. Motor_Calisma, Vana_Acik_Sinyali) kullanır. Eski program mutlak adreslerle yazıldığında, yeni PLC’nin bellek düzeni farklıysa bu adresler tamamen yanlış yerlere işaret edebilir. Örneğin, eski bir Siemens S5 PLC’deki A2.3 (çıkış byte 2, bit 3) adresi, yeni bir S7-1500 PLC’de Q2.3 olarak karşılık bulsa bile, diğer bellek alanlarının (örn. zamanlayıcılar, sayaçlar, veri blokları) adresleme mantığı tamamen farklı olabilir. Rockwell Allen-Bradley PLC’lerde ise N7:0/0 veya B3:0/0 gibi adresler kullanılırken, yeni ControlLogix platformlarında Tag tabanlı adresleme (örneğin, Local:1:I.Data.0 veya Motor_Start_PB) esastır. Bu temel sözdizimi ve yapısal farklılıklar, programın her bir adresinin manuel veya otomatik bir dönüştürücü aracılığıyla doğru şekilde eşleştirilmesini zorunlu kılar.
2. Bellek Düzeni ve Alan Farklılıkları
PLC’ler, program değişkenlerini ve çalışma verilerini depolamak için çeşitli bellek alanları kullanır: Girişler (Input – I), Çıkışlar (Output – Q), Dahili Bellek/Bayraklar (Memory/Flags – M), Veri Blokları (Data Blocks – DB), Zamanlayıcılar (Timers – T) ve Sayaçlar (Counters – C). Bu alanların boyutları, numaralandırma şemaları ve hatta kullanımları, PLC’den PLC’ye önemli ölçüde değişir. Örneğin, eski bir PLC’de 1000 adet M bayrağı bulunurken, yeni bir PLC’de bu alan farklı bir boyutta olabilir veya tamamen farklı bir bellek bölgesine atanmış olabilir. Özellikle veri blokları (Data Blocks), eski sistemlerde sabit boyutlu ve sınırlı sayıda olabilirken, yeni sistemlerde dinamik boyutlu ve çok daha fazla sayıda oluşturulabilir. Bu durum, eski programdaki bir DB adresinin yeni sistemde ya var olmamasına ya da yanlış bir veri yapısına işaret etmesine neden olabilir.
3. Veri Tipi Uyuşmazlıkları ve Boyut Farklılıkları
Farklı PLC platformları, aynı veri tiplerini farklı boyutlarda veya formatlarda işleyebilir. Örneğin:
- Integer (INT): Bazı eski PLC’ler 16-bit INT kullanırken, yeni nesil PLC’ler varsayılan olarak 32-bit INT (DINT) kullanabilir. Bir 16-bit değeri 32-bit alana taşırken veri kaybı yaşanmayabilir, ancak 32-bit bir değeri 16-bit alana taşımaya çalışmak veri kaybına veya hatalı hesaplamalara yol açar.
- Float (REAL): Kayan noktalı sayılar için kullanılan REAL veya FLOAT veri tipi, IEEE 754 standardına göre 32-bit veya 64-bit (LREAL) formatında olabilir. Farklı PLC’ler arasındaki hassasiyet ve format farklılıkları, matematiksel hesaplamalarda beklenmeyen sonuçlar doğurabilir.
- String (STRING): Karakter dizilerinin depolanma şekli, maksimum uzunluk ve sonlandırma karakterleri (null-terminated vs. length-prefixed) farklılık gösterebilir.
- Yapısal Veri Tipleri (STRUCT/UDT): Kullanıcı tanımlı veri tipleri (User Defined Types – UDT), farklı PLC platformlarında tamamen farklı bellek hizalamalarına (memory alignment) veya paketleme (packing) kurallarına sahip olabilir. Bu, aynı yapıya sahip iki veri tipinin farklı boyutlarda bellek kaplamasına neden olarak, dolaylı adresleme veya blok kopyalama işlemlerinde hatalara yol açar.
4. I/O Modül Konfigürasyonları ve Fiziksel Adresleme
Eski PLC sistemleri genellikle belirli bir I/O modülünü belirli bir slot numarasına veya adrese atar. Yeni PLC sistemleri, daha esnek I/O yapılandırmalarına (örn. dağıtılmış I/O, Ethernet/IP, Profinet) sahip olabilir. Eski programda doğrudan bir modülün fiziksel adresi kullanıldığında (örn. rack 0, slot 2, kanal 3), yeni sistemde bu modül farklı bir adreste veya farklı bir ağ üzerinde bulunabilir. Bu durum, programın doğru fiziksel giriş/çıkışlara erişememesine ve sensör okumalarının veya aktüatör komutlarının yanlış çalışmasına neden olur.
5. Endianness Farklılıkları
Çok baytlı verilerin (Word, DWord, Real) bellekte depolanma sırası, endianness olarak adlandırılır. Little-endian sistemler, en düşük anlamlı baytı en düşük bellek adresinde depolarken, Big-endian sistemler en yüksek anlamlı baytı en düşük adreste depolarlar. Farklı PLC üreticileri veya işlemci mimarileri (örn. Intel tabanlı vs. Motorola tabanlı) farklı endianness kullanabilir. Eğer eski PLC’den gelen çok baytlı bir veri, farklı endianness kullanan yeni bir PLC’ye aktarılırsa, baytların sırası tersine döner ve veri yanlış yorumlanır. Bu durum özellikle haberleşme protokolleri veya veri aktarımında kritik sorunlara yol açar.
6. Sistem Fonksiyonları ve Blokları (SFB/SFC)
PLC programları genellikle üreticiye özgü sistem fonksiyon blokları (SFB) veya fonksiyonları (SFC) kullanır (örn. PID kontrol blokları, haberleşme blokları, zamanlayıcılar, sayaçlar). Eski bir PLC’deki bu blokların parametre yapıları, giriş/çıkış adresleri veya çalışma mantığı, yeni bir PLC’de tamamen farklı olabilir veya hiç karşılığı olmayabilir. Bu durum, bu blokların çağrıldığı yerlerde adresleme veya parametre hatalarına neden olur.
| Parametre | Değer/Açıklama |
|---|---|
| Adresleme Tipi Farkı | Mutlak (I0.0) vs. Sembolik (Motor_Start_PB) adresleme geçişi, adres haritasının tamamen değişmesi. |
| Bellek Alanı Boyutları | M (Bayrak) alanının veya DB (Veri Bloğu) boyutlarının eski ve yeni PLC’ler arasında farklılık göstermesi. |
| Veri Tipi Tanımları | INT’in 16-bit yerine 32-bit olarak varsayılması veya REAL hassasiyet farkları. |
| I/O Modül Eşleşmesi | Fiziksel I/O modüllerinin slot ve kanal numaralarının yeni sistemde farklı adreslere atanması. |
| Endianness (Bayt Sırası) | Çok baytlı (WORD, DINT, REAL) verilerin bellekteki bayt sıralamasının farklı olması (Little-endian vs. Big-endian). |
| SFB/SFC Parametreleri | Üreticiye özgü fonksiyon bloklarının giriş/çıkış parametre adreslerinin değişmesi veya uyumsuzluğu. |
| CPU Tarama Döngüsü | Eski ve yeni PLC’lerin tarama döngüsü hızlarındaki farklılıkların zamanlamaya dayalı adreslemeyi etkilemesi. |
Sahada Dikkat Edilmesi Gerekenler
- Kapsamlı Envanter ve Detaylı Dokümantasyon:
Geçiş sürecinin en kritik adımı, mevcut eski sistemin eksiksiz ve güncel bir envanterini çıkarmaktır. Bu, sadece donanım listesi değil, aynı zamanda tüm I/O modüllerinin fiziksel ve mantıksal adresleme haritalarını, kullanılan tüm dahili bellek alanlarının (M, DB, T, C) detaylı listesini, veri tiplerini ve varsa özel olarak kullanılan sistem fonksiyon bloklarını (SFB/SFC) içermelidir. Eski programın yorumlanmış (commented) bir kopyası ve varsa orijinal tasarım dokümanları hayati öneme sahiptir. “Adresleme haritası” olarak bilinen bu detaylı liste, her bir giriş/çıkışın, belleğin veya değişkenin ne anlama geldiğini ve nasıl kullanıldığını açıkça belirtmelidir. Eksik veya hatalı dokümantasyon, programın yeni platforma taşınması sırasında yanlış adreslemelere ve dolayısıyla ciddi hatalara yol açan en büyük nedenlerden biridir.
- Aşamalı Geçiş ve Modüler Yaklaşım:
Büyük ve karmaşık PLC programlarını tek seferde tamamen yeni bir platforma taşımak yerine, sistemi mantıksal modüllere ayırarak aşamalı bir geçiş stratejisi izlemek riskleri azaltır. Her bir modül (örn. bir motor kontrolü, bir vana grubu, bir sensör bloğu) ayrı ayrı taşınır, test edilir ve doğrulanır. Bu yaklaşım, adresleme hatalarının kapsamını daraltmaya ve sorunları daha kolay izole etmeye yardımcı olur. Örneğin, bir üretim hattındaki her bir istasyonun PLC programı ayrı ayrı modernize edilebilir. Bu, her bir modülün I/O adreslemesini ve dahili değişkenlerini daha yönetilebilir bir ölçekte ele almayı sağlar.
- Kapsamlı Test ve Doğrulama Stratejileri:
Programın yeni PLC’ye taşınmasının ardından, sadece derlemenin hatasız olması yeterli değildir; programın sahada beklenen şekilde çalıştığından emin olmak için çok katmanlı bir test süreci uygulanmalıdır:
- Masaüstü Simülasyonu: PLC simülatörleri veya yazılım tabanlı sanal PLC’ler kullanılarak programın mantıksal akışı ve adresleme doğruluğu test edilir. Bu aşamada, veri akışları ve bellek erişimleri sanal ortamda izlenir.
- Fabrika Kabul Testi (FAT – Factory Acceptance Test): Gerçek I/O modülleri veya simüle edilmiş I/O’lar kullanılarak, PLC’nin laboratuvar ortamında gerçek dünya koşullarına yakın bir şekilde test edilmesi. Bu, özellikle kritik I/O adreslemelerinin doğru çalıştığını doğrulamak için önemlidir.
- Saha Kabul Testi (SAT – Site Acceptance Test): PLC’nin sahada, gerçek makine ve ekipmanlarla entegre edilerek yapılan son testler. Bu aşamada, tüm sensörler, aktüatörler, motorlar ve diğer saha cihazları ile PLC arasındaki adresleme ve iletişim doğruluğu kontrol edilir. Acil durdurma devreleri, güvenlik kilitleri ve kritik operasyonel adımlar özel dikkatle test edilmelidir.
- Gerçek Zamanlı İzleme ve Hata Ayıklama: Yeni sistem devreye alındıktan sonra, ilk çalışma döneminde PLC programı ve adreslemeler, hata ayıklama araçları ve izleme yazılımları kullanılarak yakından takip edilmelidir. Beklenmeyen adresleme hataları bu süreçte ortaya çıkabilir.
- Adresleme Dönüşüm Araçları ve Sembolik Adreslemenin Önemi:
Bazı PLC üreticileri, eski programları yeni platformlara dönüştürmek için otomatik veya yarı otomatik araçlar sunar. Bu araçlar, adresleme dönüşümünü hızlandırabilir ancak her zaman mükemmel sonuç vermezler ve manuel doğrulama gerektirirler. Mümkün olduğunca, eski programdaki mutlak adresleri yeni sistemde sembolik adreslere dönüştürmek, programın okunabilirliğini, bakımını ve gelecekteki geçişlerini kolaylaştırır. Sembolik adresler, donanım adresleri değişse bile program mantığının daha tutarlı kalmasını sağlar.
Sık Karşılaşılan Sorunlar ve Çözümleri
PLC programı taşıma projelerinde adresleme hatalarıyla ilgili sıkça karşılaşılan sorunlar ve bunlara yönelik çözüm yaklaşımları aşağıdadır:
- Sorun 1: Yanlış I/O Eşleşmeleri ve Modül Tanımlamaları.
Açıklama: Eski sistemdeki fiziksel giriş/çıkışlar (örn. bir sensörün bağlı olduğu kanal) yeni PLC’de farklı bir adrese veya farklı bir I/O modülüne atanmış olabilir. Program, eski adresleri kullanarak yanlış sensörden veri okumaya veya yanlış aktüatörü kontrol etmeye çalışır.
Çözüm: Detaylı bir I/O listesi ve adresleme haritası oluşturun. Yeni PLC’nin donanım konfigürasyonunu bu listeye göre dikkatlice yapın ve her bir fiziksel I/O noktasını yeni programdaki sembolik veya mutlak adresle doğru şekilde eşleştirin. I/O modüllerinin ve kanallarının bağlantılarını fiziksel olarak iki kez kontrol edin. FAT ve SAT testlerinde her bir I/O noktasını manuel olarak tetikleyerek veya izleyerek doğrulayın.
- Sorun 2: Veri Tipi ve Boyut Uyuşmazlıkları.
Açıklama: Özellikle sayısal değerler (INT, DINT, REAL) veya karakter dizileri (STRING) farklı PLC’lerde farklı boyutlarda veya formatlarda yorumlanabilir. Örneğin, eski PLC’de 16-bit INT olarak tanımlanan bir değişkenin, yeni PLC’de 32-bit DINT’e kopyalanırken yanlış bir kaydırma veya değer hatası oluşabilir. Endianness farklılıkları da çok baytlı verilerin yanlış okunmasına neden olabilir.
Çözüm: Tüm değişkenlerin veri tiplerini ve boyutlarını yeni PLC platformunun standartlarına göre güncelleyin. Gerekirse, veri dönüştürme fonksiyonları (örn. INT_TO_DINT, WORD_TO_REAL) kullanarak uyumsuzlukları giderin. Endianness sorunları için, bayt sırasını değiştiren özel bit manipülasyonu veya sistem fonksiyonları kullanılmalıdır. Kritik hesaplama veya haberleşme bloklarındaki veri tiplerini özellikle dikkatle inceleyin.
- Sorun 3: Bellek Alanı Çakışmaları veya Yetmezliği.
Açıklama: Eski programda kullanılan dahili bellek alanları (M bayrakları, DB’ler, T/C numaraları) yeni PLC’de farklı bir amaçla kullanılıyor olabilir veya yeni PLC’nin bellek kapasitesi eski programın ihtiyaçlarını karşılamayabilir. Özellikle eski programda doğrudan adreslenen DB’ler, yeni sistemde farklı bir yapıya veya boyuta sahip olabilir.
Çözüm: Yeni PLC’nin bellek haritasını dikkatlice inceleyin ve eski programdaki tüm bellek adreslerini yeni sisteme uygun şekilde yeniden atayın. Mümkünse, sembolik adreslemeyi kullanarak bellek çakışmalarını önleyin. Veri bloklarını (DB) yeniden yapılandırın ve boyutlarını kontrol edin. Yeni PLC’nin bellek kullanımını izleyerek aşım olup olmadığını kontrol edin.
- Sorun 4: Sistem Fonksiyon Blokları (SFB/SFC) ve Kütüphane Uyumluluğu.
Açıklama: Eski PLC’ye özgü PID kontrolörleri, haberleşme blokları, motor kontrol blokları gibi özel fonksiyonlar (SFB/SFC) yeni PLC’de ya hiç bulunmayabilir ya da farklı parametre yapılarına sahip olabilir. Bu blokların çağrıldığı yerlerde adresleme veya parametre hataları oluşur.
Çözüm: Eski SFB/SFC’lerin işlevselliğini yeni PLC’nin kendi yerleşik fonksiyonları veya kütüphaneleri ile karşılaştırın. Gerekirse, eski fonksiyonları yeni platforma uygun eşdeğer fonksiyonlarla yeniden yazın veya uyarlayın. Her bir fonksiyonun giriş ve çıkış parametrelerinin yeni sistemdeki doğru adreslemelerle eşleştiğinden emin olun. Üreticinin geçiş kılavuzlarına başvurun.
- Sorun 5: Zamanlama ve Tarama Döngüsü Farklılıkları.
Açıklama: Eski ve yeni PLC’lerin işlemci hızları ve tarama döngüsü (scan time) süreleri farklılık gösterebilir. Zamanlamaya dayalı (örneğin, belirli bir döngüde bir bitin kontrol edilmesi) eski program kodları, yeni PLC’nin daha hızlı veya daha yavaş tarama döngüsü nedeniyle yanlış çalışabilir, bu da dolaylı adresleme hatalarına yol açar.
Çözüm: Zamanlamaya duyarlı kod bloklarını belirleyin ve yeni PLC’nin tarama döngüsü hızına göre yeniden değerlendirin. Gerekirse, zamanlayıcılar (timers) veya sayaçlar (counters) gibi zamanlama elemanlarını ayarlayın. Programın kritik bölümlerinde deterministik tarama döngüsü sağlayan yöntemleri (örn. görev tabanlı programlama) kullanmayı düşünün.
Uzman Tavsiyesi
Eski bir PLC programını yeni bir platforma taşımak, sadece kodun kopyala-yapıştır yapılması anlamına gelmez; bu, derinlemesine bir mühendislik analizi, detaylı planlama ve titiz bir uygulama gerektiren karmaşık bir süreçtir. Adresleme hataları, bu geçiş projelerinin en yaygın ve en maliyetli sorunlarından biridir, çünkü genellikle programın temel işlevselliğini bozar ve üretim kayıplarına yol açar. Sahadaki tecrübelerimiz göstermektedir ki, bu tür hataların çoğu, yetersiz dokümantasyon, eski ve yeni sistemler arasındaki mimari farklılıkların göz ardı edilmesi ve yetersiz test süreçlerinden kaynaklanmaktadır. Başarılı bir geçiş için, öncelikle mevcut sistemin her bir I/O noktasından, dahili bellek alanına, veri tipinden sistem fonksiyonlarına kadar her detayının eksiksiz bir envanteri çıkarılmalı ve güncel bir adresleme haritası oluşturulmalıdır. Bu, geçişin temelini oluşturur. Ardından, yeni platformun bellek düzeni, veri tipi tanımlamaları ve I/O adresleme mekanizmaları dikkatlice incelenmeli ve iki sistem arasındaki tüm farklılıklar sistematik bir şekilde eşleştirilmelidir. Otomatik dönüştürme araçları yardımcı olsa da, manuel doğrulama ve gözden geçirme asla atlanmamalıdır. Sembolik adreslemeye geçiş, gelecekteki bakımı ve olası diğer geçişleri büyük ölçüde kolaylaştıracaktır. Son olarak, aşamalı bir geçiş stratejisi benimsenmeli ve simülasyondan saha kabul testlerine (SAT) kadar uzanan çok katmanlı, kapsamlı bir test süreci uygulanmalıdır. Her bir modülün veya işlevin ayrı ayrı test edilmesi, sorunların erken aşamada tespit edilmesini ve çözülmesini sağlar. Bu süreçte, projenin başında deneyimli otomasyon mühendislerinden oluşan bir ekibin görevlendirilmesi, riskleri minimize etme ve başarılı bir geçişi garanti altına alma açısından hayati öneme sahiptir. Unutmayın, iyi planlanmış ve titizlikle yürütülmüş bir geçiş projesi, uzun vadede sistem güvenilirliği, verimliliği ve bakım kolaylığı açısından büyük kazançlar sağlar.





















































































































































































