Cihaz ağacında yapılandırılan her bir haberleşme ağı cihazının teknik temeli G/Ç sürücüsüdür.
G/Ç sürücüsü haberleşme ağı yığını, IEC uygulaması ve IDE arasındaki bağlantıdır. Sürücü, cihaz yapılandırmasının verilerinden haberleşme ağı yığınını yapılandırır. Teşhisi gösterir, IEC uygulaması için bir API sağlar ve G/Ç eşlemesinden sorumludur (bkz. Bölüm "G/Ç Eşleme").
Bu bölüm, belirli veri yolu sistemlerinin ayrıntılarını tartışmadan G/Ç sürücü aygıtlarının temel işlevlerine kısa bir genel bakış sağlar. Buna ek olarak, yapılandırma için bazı öneriler de sunulmaktadır.
Otobüs döngüsü task’i
Veri yolu döngüsü task’i, G/Ç sürücüsünün bağlamında yürütüldüğü IEC task’idir. Bazı G/Ç sürücüleri birden fazla task kullanır: genellikle G/Ç verilerinin aktarımı için kullanılan bir gerçek zamanlı kritik task (yüksek öncelikli) ve tanılamaların değerlendirilmesi ve veri yolu sisteminin asiklik hizmetlerinin yürütülmesi gibi task’ler için düşük öncelikli başka bir task.
Gerçek zamanlı kritik veri yolu sistemlerinde, bu veri yolu task’i bağlamında, yürütme süresi nedeniyle veri yolu saatini kesintiye uğratacak hiçbir işlemin gerçekleştirilmemesi sağlanmalıdır.
Veri yolu task’i, G/Ç sürücü aygıtının G/Ç eşleme iletişim kutusunda yapılandırılabilir. Ana cihazın ayarlarının varsayılan olarak devralındığını unutmayın. Bu cihaz PLC ise, bus çevrimi task’inde PLC ayarı geçerlidir.




NOT

Yukarıdaki bu ayar yapılmazsa, en kısa çevrim süresine sahip task kullanılır. Bu şekilde, gerçek zamanlı olmayan bir G/Ç sürücüsü, gerçek zamanlı kritik bir sürücünün task bağlamında istenmeden çalıştırılabilir ve böylece iletişim kesintiye uğrayabilir. Bu iletişim sorunlarını teşhis etmek için task izlemenin kontrol edilmesi önerilir.
G/Ç Eşleme
Bir G/Ç sürücüsünün temel işlevi G/Ç eşlemesini güncellemektir. Bu, veri yolu sisteminin G/Ç verilerinin IEC uygulamasının değişkenleriyle eşleştirilmesi anlamına gelir (ve bunun tersi de geçerlidir).
Giriş/çıkış verileri, veri yolu sisteminin dahili bellek görüntüsünden %I ve %Q adreslerine atanmış IEC değişkenlerine her iki yönde kopyalama ve dönüştürme işlemleri ile döngüsel olarak eşlenir.
G/Ç sürücüsü için, bu G/Ç eşlemesi için sembolik isimlerin veya %I ve %Q adreslerine "doğrudan" erişimin kullanılması arasında dahili bir fark yoktur. Uygulamanın sürdürülebilirliği için her zaman açıklayıcı değişken adlarının kullanılması önerilir (örnek: "%IW117" erişimi yerine "TemperatureReactor" değişkeni).
G/Ç eşlemesinin güncellenmesi «Değişkenleri her zaman güncelle» ile ayarlanabilir ( «PLC Ayarları» içinde global olarak veya G/Ç eşleme iletişim kutusundaki her cihaz için ayrı ayrı):
-
Devre dışı:
Yalnızca uygulamada kullanılan G/Ç verileri eşlenir.
Bu, kopyalama işlemlerinden kaçınarak performansı artırabilir, ancak G/Ç eşleme iletişim kutusundaki G/Ç verileri güncellenmezse (değerler daha sonra gri olur) karışıklığa neden olabilir. Bu ayar, geliştirilmesi tamamlanmış bir uygulama için önerilir.
-
Etkin 1:
Tüm veriler güncellenir.
-
2. Etkin
ÖNEMLİ:
Bu seçeneğin kullanılabilirliği cihaz açıklamasına bağlıdır.
Dikkat: Sadece özel durumlarda üretken kullanım içindir.
Sonuç olarak, uygulama kodu bu verileri diğer task’lerde kullanırken veri yolu döngüsü task’i bu verileri okuduğu/yazdığı için tutarsız G/Ç verileri oluşabilir.
G/Ç verilerinin tutarlılığı
Programlama sistemi, IEC uygulamasının paralel olarak yürütülen birden fazla task’i (görselleştirme, alan veri yolları veya diğer POU'lar için) kullanmasına izin verir. Uygulama kodu, eşlenen IEC değişkenleri aracılığıyla bu task’lerin bağlamından G/Ç verilerine erişebilir. Aynı verilere farklı task’lerden erişildiğinde, tutarsız veya bozuk veriler oluşabilir (örneğin, kesintili yazma erişimi nedeniyle).
G/Ç sürücüsü, bir task döngüsünü yürüten her bir task’e, kullanılan tüm G/Ç verilerinin tutarlı bir eşlemesini (tabiri caizse bir anlık görüntüsünü) sağlayarak veri tutarlılığını garanti eder.
Dolayısıyla, aşağıdaki örnekteki gibi bir kod sorunlara neden olamaz: (Not "SIFIRLA BÖL")
IF(inputData <> 0) THEN // inputData is mapped to %I
x := y / inputData; // This will never result in DIV_BY_ZERO Exception
END_IF // inputData is not updated by bus cycle during execution of POU




NOT

«Değişkenleri her zaman güncelle» seçeneği «Etkin 2 - her zaman veri yolu döngüsü task’inde» olarak ayarlandığında, bu mekanizma geçersiz kılınır. Buna göre, uygulama kodunun bunu dikkate alması gerekir.
Hizmetler
Temel işlevlere ek olarak, bazı G/Ç sürücüleri aygıt tarama işlevi veya aygıt adreslerinin ayarlanması gibi IDE'den çağrılabilen hizmetler sağlar.
Genel tavsiyeler
Ayarlar:
-
«PLC Ayarları»:
G/Ç güncellemeleri durduruldu: Veri yolu döngüsü, uygulama durdurulduğunda bile, örneğin uygulama bir hata ayıklama kesme noktasındayken devam eder. Bu sayede saha cihazlarıyla iletişim korunur ve kesintiye uğramadan hemen devam ettirilebilir.
-
«PLC Ayarları»: «Değişkenleri her zaman güncelleyin» « olarak ayarlanmıştır Etkin 1 - herhangi bir task’te kullanılmazsa veri yolu döngüsü task’ini kullanın»:
Uygulamanın geliştirilmesi sırasında, tüm G/Ç verilerinin değerlerini görmek yararlıdır.
Task Konfigürasyonu:
-
Özellikle tam bir gönderme/alma saatinin korunmasına bağlı olan Profinet, EtherCAT veya CAN gibi gerçek zamanlı kritik haberleşme ağı sistemleri için yüksek önceliğe sahip ayrı bir veri yolu döngüsü task’i kullanılması önerilir. Gerçek zaman açısından daha az kritik task’ler için (örneğin görselleştirme) veri yolu döngüsü task’ine göre önemli ölçüde daha düşük bir öncelik seçilmelidir.
-
Mümkün olduğunca az ofset ile maksimum G/Ç verimi elde etmek için, haberleşme ağı sisteminin bus dtask’ine ayrı POU'lar yürütülebilir. Ancak bunlar daha sonra gerçek zamanlı gereksinimleri karşılamak zorundadır: örneğin, dosya erişimi veya engelleme soket işlevleri yürütülemez, ancak örneğin yalnızca çıktı verilerinin hesaplanması yürütülebilir.
Çoklu G/Ç sürücüleri ve task’leri (sorun giderme)
Birden fazla task’ten ve muhtemelen birden fazla G/Ç sürücü örneğinden G/Ç verilerine tutarlı erişimin senkronize edilmesi gerekiyorsa, belirli koşullar altında veri yolu ve uygulama task’i arasında istenmeyen karşılıklı etkileşim meydana gelebilir.
Örneğin, genel sistem yükü yüksek olduğunda veya gerçek zamanlı kritik haberleşme ağı sisteminin G/Ç verileri aynı task’te yavaş ve engelleyici bir lokal bus sisteminin G/Ç verileriyle birlikte kullanıldığında durum böyledir.
Özellikle gerçek zaman açısından kritik alan veriyolları (EtherCAT, Profinet, CAN) ile iletişimde beklenmedik bir parazit olması durumunda, task izleme bu nedenle öncelikle döngü süresinde çok büyük titreşim veya aykırı değerler (ortalama değere kıyasla maksimum değer) açısından incelenmelidir. Task listesi, farklı task’lerde G/Ç verilerinin kullanımı hakkında ayrıntılı bilgi sağlar.
Farklı veri yolu sistemlerinden gelen G/Ç verilerini tek ve aynı task’te kullanmaktan kaçınmak veya G/Ç task’lerinin sayısını azaltmak mümkün olabilir.