Her PLC en az üç ana task/program içerir:
-
HA programı
-
Uygulama programı
-
Modbus program
Bir PLC'deki programlar, kütüphanelerin dahili yapıları ve HA-Sync dizisi ve Modbus CI52x bellek(ler) CiModDataxx için ayrılmış dahili bellek alanları aracılığıyla iletişim kurar.
|
Yerleşim öğesi |
Anlamı |
|---|---|
|
Noktalı anahat kutusu |
İsteğe bağlı fonksiyon bloğu veya programları gösterir. |
|
Düz anahat kutusu |
Zorunlu fonksiyon bloklarını veya programları gösterir. Toplu veri yöneticisinden bir dışa aktarma oluşturulduğunda tüm zorunlu bloklar çağrılır. |
|
İtalik yazı tipi |
Kullanıcının projesinde çağırması gereken ve Bulk veri yöneticisi tarafından oluşturulmayan program veya işlevleri belirtir. |
|
Açık sarı arka plan bloğu / mavi ok |
Kütüphanede dahili olarak ele alınan işlemleri gösterir. |
|
Yeşil katı kutu |
Kullanıcının yapılandırması gereken üç farklı task’i gösterir. |
Modbus program
CIModCI52x (V3) / CI_MOD_CI52x (V2) fonksiyon bloğu CI52x modüllerinden giriş değerlerini okur ve bunları CiModDataxx yapısında saklar. CPU birincil ise çıkışları CI52x modüllerine de yazar. Fonksiyon bloğu ayrıca CI Modülünü, örneğin ilk başlatma sırasında veya bir CI modülü değiştirildiğinde Toplu veri yöneticisi aracında yapılandırıldığı şekilde parametrelendirir.
Normalde HA-Modbus TCP kütüphanesi iletişim izleme ile ilgilenir. Bununla birlikte, iletişim tamamen kesilirse, CI52x iletişim arayüzleri ve G/Ç modülleri, boşta veya istenen bir davranış elde etmek için kendi başlarına tepki vermek zorundadır: CI52x iletişim arayüzleri ve G/Ç modülleri için aşağıdaki parametrelerin dikkate alınması gerekir:
-
- CI52x: Bus denetimi için "Zaman aşımı" parametresi: 2)
İletişim arayüzü tarafındaki hataları da tespit etmeye ve iletişim kesilirse güvenli bir davranış sağlamak için harekete geçmeye izin verir. 10 ms'lik adımlarla ayarlanabilir. 0 olarak ayarlanırsa veri yolu denetimi etkin değildir. Önerilen değer: 50 = 500 ms = Toplu veri yöneticisinde varsayılan; daha büyük TCP yeniden iletim süresine dikkat etmek için saha iletişimi için AC500 CPU portları kullanılıyorsa bu değer örneğin 65 değerine yükseltilmelidir.
-
«Davranış Çıkışlar» at «Bus denetimi için zaman aşımı» 1), 2). Bu arıza güvenliği parametresi bilinçli olarak ayarlanmalıdır: her modül (ve iletişim arayüzü) için ayrı ayarlar mümkündür: "kapalı"; "son" veya "yedek": 5 s, 10 s, ∞ s 1).
Açıklamalar:
1) Parametreler «Davranış İletişimdeki çıkışlar. Hata» yalnızca Arıza Güvenliği modu [AÇIK] ise analiz edilir.
2) Her ikisi de CI52x parametreleridir, örneğin programdaki Toplu veri yöneticisi aracı aracılığıyla ayarlanır.
Uygulama programı
-
Uygulama task’inin başlangıcında InputRefresh programı çağrılmalıdır. CiModDataxx yapısı aracılığıyla Modbus adresindeki verileri BDM'de sinyal olarak tanımlanan kullanıcı değişkenlerine kopyalar. Daha fazla bilgi için %ALLUSERSPROFILE%\Documents\Automation Builder Examples\PS5601-HA-MTCP\BulkDataManager\Documentation yolunda bulunan BDM belgelerine bakın.
-
Sadece ana uygulama programları bu task’te olmalı ve kullanıcı tanımlı fonksiyonlar için bu değişkenleri kullanmalıdır. Örneğin burada kullanıcı programları ve mantığı çağrılmalı ve senkronize edilmesi gereken diğer kullanıcı verileri için HA kütüphaneleri yardımcı bloklarını ( geçmiş verilerini otomatik olarak senkronize eden ) ve HA_MOD_DATA_SYNC bloklarını kullanmalıdır.
-
Yardımcı program bloklarının ve HA_MOD_DATA_SYNC bloklarının verileri birincil CPU'nun HA Sync dizisine kopyalanır (HA programı tarafından ikincil CPU'ya gönderilir).
-
OutputRefresh programı son adım olarak çağrılır. CiModDataxx yapısı aracılığıyla kullanıcı değişkenlerinden gelen verileri Modbus adresine kopyalar.
Yardımcı fonksiyon bloğu örneği (entegre senkronizasyon verileri ile)
HA_MOD_TON (V2)/ HaModTon (V3) gecikme zamanlayıcısını düşünün.
Her iki PLC de programda aynı fonksiyon bloğunun çağrılmasını gerektirir. Normal çalışma koşulları altında, geçen süre ET ve zamanlayıcının çıkışı Q, birincil CPU'dan ikincil CPU'ya dahili olarak senkronize edilir. ET ve Q verileri mevcuttur ve uygulama gereksinimlerine göre programdaki lokal veya global değişkenlere eklenebilir. PLC A bir arıza nedeniyle kapanırsa, birincil durum PLC B'ye geçer.
Bir geçiş durumunda, PLC B birincil olduğu anda, bu PLC'deki zamanlayıcı çalışmaya devam edecektir. PLC A arızası zamanına kadar PLC B'deki zamanlayıcı senkronize edilmiştir. Bu, bir CPU'nun çalışmadığı veya kapalı olduğu ve bu tür integral veya geçmiş sistem değerlerini (zamanlayıcılar, sayaçlar, operatör ayarları, ...) "yakalaması" gereken durumlarda çok önemlidir. Bu durumda asıl süreç geçişten etkilenmez.
HA programı
HA_MOD_CONTROL'ün iki işlevi vardır:
-
Durum verilerini (lifecom1 ve lifecom2) değiştirin ve 'Arızalar ve kullanım durumları'⮫ «Arızalar ve kullanım durumları» bölümünde açıklanan kullanım durumlarına göre duruma bağlı olarak ikincil PLC'den birincil PLC'ye (veya tam tersi) geçin.
-
İkincil PLC'nin her zaman sıcak beklemede olmasını ve hemen devralabilmesini sağlamak için birincil PLC'den ikincil PLC'ye senkronizasyon "HA SYNC" dizisi gönderin. CPU'lar arasında veri senkronizasyonu için UDP protokolü kullanılır.
UDP üzerinden veri senkronizasyonu
Bu bölüm, UDP aracılığıyla birincil ve ikincil PLC arasında veri senkronizasyonunun nasıl gerçekleştiğini açıklar.
Hazırlanan tüm senkronizasyon verileri ikincil PLC ile senkronize edilir. Tipik olarak sadece integral değerlerin (zamanlayıcılar, sayaçlar, PID, ...) veya alınmış olabilecek ayarların senkronize edilmesi gerekir. Örneğin, ikincil bir CPU yeniden başlatıldığında hızlı başlatma durumları için, her iki PLC de paralel olarak ve aynı giriş değerlerine dayalı olarak yakın bir şekilde çalıştığından ve hesapladığından, senkronizasyon ikincil CPU'nun varsayılan değer yerine mevcut değerle başlamasını sağlayacaktır. Veri senkronizasyon fonksiyon bloğunun nasıl yapılandırılacağı veya kullanılacağı hakkında ayrıntılar için örnek projelere bakın.
Aşağıdaki adımlar gerçekleştirilir:
-
HA SYNC dizisi UDP aracılığıyla ikincil CPU'ya aktarılır. Bu, birincil ve ikincil CPU arasında lifecom1 durumunun değişimini içerir.
-
HA programında HA_MOD_CONTROL fonksiyon bloğu sahadan ve/veya diğer PLC'den tüm teşhis, senkronizasyon ve lifecom2 verilerini toplar. Bir geçişin gerekli olup olmadığına basit bir karar matrisine göre karar verilir.
-
Lifecom2 her döngüde Modbus TCP üzerinden CPU'lar arasında değiş tokuş edilir.
-
Program başına bir task, yukarıdaki şekle bakın.
-
CI52x merkezi olmayan G/Ç istasyonlarına bağlı girişlerin durumu her PLC çevriminde eş zamanlı olarak her iki PLC'ye aktarılır. Bunlar CI52x fonksiyon bloğu tarafından alınır.
-
Programın sonunda, üretilen çıkış değerleri, birincil PLC'nin ilgili tamponlarından CI52x fonksiyon bloğu ve Modbus TCP aracılığıyla CI52x-MODTCP modül(ler)ine aktarılarak gönderilir. İkincil PLC göndermeye hazırdır ancak "sessiz" kalır (çıkış değerlerini göndermez).
PLC, birincil CPU'dan ikincil CPU'ya bir ETH çerçeve verisi göndermek ve ikincil CPU'dan onay almak için bir HA döngüsüne ihtiyaç duyar. Benzer şekilde V3 PLC'nin iki HA döngüsüne ihtiyacı vardır.
Bir ETH çerçevesi yaklaşık 1412 veri baytını kopyalar. HA Sync Array'i senkronize etmek için gereken ETH çerçevelerinin sayısı tamamen veri senkronizasyon baytlarının sayısına bağlıdır. Global değişken iNoOfEthFrames kullanıcıya uygulama task’inin döngü süresini hesaplamak için kullanılması gereken bu bilgiyi verir.
⮫ «HA sistemi için task yapılandırma önerileri»
Maks. 60 kB Senkronizasyon verisi senkronize edilebilir.
Birincil ve ikincil PLC arasındaki senkronizasyon, sistemde yapılandırılan toplam senkronizasyon veri baytlarına bağlı olarak HA task süresinin birkaç döngüsü boyunca gerçekleşir. Lifecom1 de birincil ve ikincil PLC arasında değiştirilir. Birincil PLC, lifecom1'i senkronizasyon verileriyle birlikte ikincil PLC'ye gönderir. Geriye doğru ikincil PLC her döngüde birincil PLC'ye lifecom1 gönderir.
Aşağıdaki şekillerde V2 PLC için bir örnek gösterilmektedir. Projede senkronizasyon verisi 4 iNoOfEthFrames değerine eşit olduğunda, PLC'ler arasında veri senkronizasyonu için 4 HA döngüsü gerekir.
Projedeki senkronizasyon verileri 6 iNoOfEthFrames değerine eşit olduğunda, PLC'ler arasındaki verileri senkronize etmek için 6 HA döngüsü gerekir.



