PLCopen XML nedir?

PLCopen XML, PLC projelerindeki program bilgilerini yazılım araçları arasında paylaşmak için kullanılan XML tabanlı bir veri aktarım biçimidir. Amaç, desteklenen proje öğelerini ortak bir yapıda dışa aktarmak ve başka bir ortamda içe almaktır. XML dosyası, kontrolöre doğrudan yüklenen çalıştırılabilir programla aynı şey değildir.
Programlama dili midir? Hayır. Structured Text veya Ladder Diagram kontrol mantığının nasıl yazıldığını belirler; PLCopen XML ise bu mantığa ait bilgilerin dosyada nasıl temsil edileceğini düzenler. Programlama dili ile değişim biçimi farklı görevler üstlenir. Bir dosyanın XML olması, onun PLCopen XML biçiminde olduğu anlamına da gelmez.
IEC standartlarıyla ilişkisi: PLCopen'in XML aktarım çalışmaları, IEC 61131-10 standardının temelini oluşturur. Bu standart, IEC 61131-3 projelerinin XML üzerinden değişimini ele alır; FBD bağlantıları ve SFC yapıları gibi grafiksel program bilgileri de kapsamındadır. Standartta tanımlanan kapsam ile bir yazılımın gerçekten aktarabildiği öğeleri ayrı değerlendirin.
Dosyada hangi bilgiler bulunabilir? Programlar, fonksiyonlar ve fonksiyon blokları gibi POU'lar (program organizasyon birimleri), değişken bildirimleri, veri tipleri ve desteklenen yapılandırma bilgileri temsil edilebilir. Grafiksel yapılarda bağlantı ve yerleşim bilgileri de bulunabilir. Gerçek içerik, kullanılan şemaya ve dışa aktarım sırasında seçilen öğelere bağlıdır.
XML şeması ne işe yarar? XSD dosyası, XML belgesindeki öğelerin, özelliklerin ve ilişkilerin kabul edilen yapısını tanımlar. Doğru şemayla doğrulama, biçim hatalarını yakalamaya yardımcı olur. Şemaya uygunluk, kontrol mantığının doğru olduğunu kanıtlamaz. Dosyanın yapısı, yazılım uyumluluğu ve uygulamanın davranışı farklı kontroller gerektirir.
Dışa ve içe aktarım nasıl yapılır? PLC programlama ortamında desteklenen öğeler seçilerek uygun XML biçiminde dışa aktarılır. Hedef programlama yazılımında karşılık gelen içe aktarım komutu kullanılır; alınabilecek öğeler ve uyarılar incelenir. Dosya uzantısını değiştirmek, dosyanın biçimini dönüştürmez.
Aynı adlı nesneler: İçe alınan bir blok veya değişken, mevcut projedeki adla çakışabilir. Yazılım, mevcut nesneyi değiştirme, yeni nesneyi yeniden adlandırma veya atlama seçenekleri sunabilir. Bu seçim, projenin hangi kodu kullanacağını etkiler. İçe aktarım öncesinde mevcut projeyi yedekleyin ve değiştirilecek nesneleri inceleyin.
CODESYS örneği: CODESYS içinde yerel XML aktarımı için .export, PLCopen XML aktarımı için .xml biçimi kullanılır. Bunların kapsadığı nesneler aynı değildir; PLCopen XML yolunda tam uyumluluk garanti edilmez. Aynı geliştirme ortamları arasındaki aktarımda, üreticinin önerdiği yerel biçimin kapsamını da değerlendirin.
Eski PLCopen XML ve IEC 61131-10: Eski PLCopen XML şemaları ile IEC 61131-10 şeması doğrudan birbirinin yerine kullanılamaz. Biçim adı kadar şema sürümü ve ad alanı (namespace) da önemlidir. Kaynak ve hedef araçların aynı biçimi desteklediğini kontrol edin; eski dosyayı yalnızca adını değiştirerek yeni biçime çevirmeye çalışmayın.
Üreticiye özgü öğeler: Editör özellikleri ve ek nesneler her araçta aynı şekilde desteklenmeyebilir. Örneğin CODESYS'in IEC 61131-10 aktarımı, CFC nesnelerini ve kütüphane yöneticisini kapsamaz. Bu örnek bütün yazılımlar için ortak bir destek listesi değildir. Kullanılan aktarım komutunun kapsamını ve hedef aracın üretici uzantılarını nasıl ele aldığını inceleyin.
Kütüphane bağımlılıkları: Aktarılan kod bir PID kontrol bloğunu veya kenar algılama bloğunu çağırabilir. Hedefte aynı isimde bir blok bulunması, girişlerin, çıkışların ve davranışın aynı olduğunu göstermez. Gerekli kütüphaneler ve sürümleri ayrıca kontrol edilmelidir. Özellikle başlangıç, reset ve iç durum davranışlarını karşılaştırın.
Donanım eşlemesi: Programın taşınması, PLC CPU ve giriş/çıkış modüllerinin aynı olduğu anlamına gelmez. Kanal adresleri, sinyal tipleri ve uzak I/O yapılandırması hedef sisteme göre değişebilir. Yazılım değişkeni ile fiziksel kanalın eşlemesini doğrulayın. İçe alınan bir çıkış adını, sahadaki doğru bağlantının kanıtı kabul etmeyin.
Görevler ve çalışma zamanı: Aktarım sonrasında görev zamanlaması, program çağrıları, öncelikler ve başlangıç değerleri incelenir. Kaynak projedeki döngü süresinin hedefte aynen gerçekleşeceği varsayılmaz. Aynı kod, farklı çağrı düzeninde farklı sonuç üretebilir. Kalıcı değerlerin ve durum taşıyan blokların yeniden başlatmada nasıl davranacağını da kontrol edin.
Kısa aktarım örneği: Bir blok, sensörden gelen sıcaklığı üst sınırla karşılaştırıp alarm üretiyor olsun. Blok hedefe alınsa bile sıcaklık birimi, ölçümün geçerliliği, sınır değeri ve alarmın nereye yazıldığı ayrıca eşleştirilir. Blok mantığını paylaşmak, ölçüm kanalını ve bütün makine projesini taşımakla aynı işlem değildir.
Haberleşme ve ekran projeleri: PLCopen XML, endüstriyel haberleşme sırasında canlı veri taşıyan Modbus gibi bir protokol değildir. PLC kodunun aktarılması, HMI ekranlarının veya SCADA projesinin de otomatik aktarılacağı anlamına gelmez. Bağlantı ayarlarını, adresleri ve ayrı proje dosyalarını kendi araçlarında değerlendirin.
İçe aktarım sonrasında: Önce eksik öğeler ve uyarılar incelenir, ardından hedef için derleme ve hata ayıklama yapılır. Normal çalışma, sınır değerler, geçersiz giriş ve yeniden başlatma senaryoları karşılaştırılır. “Dosya başarıyla alındı” mesajı, uygulamanın doğrulandığı anlamına gelmez. İçe aktarım ile işlevsel test sonuçlarını ayrı kaydedin.
Dokümantasyon ve yedekleme: Makine tarafından okunabilen yapı, uygun araçlarla program inceleme, dokümantasyon ve değişiklik takibini kolaylaştırabilir. Ancak seçilmiş nesneleri içeren bir XML dosyası, eksiksiz proje yedeğinin yerini tutmaz. Yerel proje dosyasını ve bağımlılık bilgilerini de saklayın. Dosyayla birlikte kaynak yazılımı, sürümü ve kullanılan aktarım biçimini belirtin.