CodeSys Etiket/Device Problemi

BurakE1

Üye
Katılım
26 Ocak 2021
Mesajlar
16
Puanları
1
Yaş
24
Merhabai herkese iyi forumlar. Fatek plcde ladder ile yazdığımız bir makinenin programını CodeSys üzerinde ST diline çevirmeye başladım. Ancak CodeSys'i ilk defa kullanacağım ve Fatekte çok fazla sayıda X,M,Y,D,R değerleri bulunuyor. Kafamız karışmasın diye bunları etiketler ile isimlendirmiştik.

Şimdi CodeSys üzerinde kodu St diline çevirmeye başladım, ancak yazarken hep etiket isimleri ile yazıp sonradan bit ve registerlar ile eşleştiririm diye düşünürken, çok fazla bit ve register olmasından dolayı bu işin çok uzama/PLCde fazla yer kaplama ihtimalini de düşündüm.

Bu aşamada ne yapmalıyım ? etiketler ile isimlendirerek programı yazsam, sonra bu etiketleri (bir yerde gördüğüm kadarıyla MOV veya onun gibi bir komut ile tek tek tüm etiketleri bitlere yazıyorlardı) tek tek eşleştirmem daha sağlıklı olur mu? yoksa bit ve registerları orijinal haliyle kodlara geçirip comment kısımlarına mı etiket isimlerini yazayım ?

comment kısmına da yazdım gerçi ancak VAR - END_VAR arasında sadece // yorum satırı olarak görünüyor. Yapmak istediğim şey bu kodları en optimize şekilde gereksiz yer kaplatmadan ST diline çevirmek. Böylece farklı marka PLClerde aynı kodları kolayca kopyalayarak kullanabileceğimi düşünüyorum. Teşekkürler, iyi forumlar dilerim.



NOT: Görseli temsili olarak hazırladım, burada nesne1 nesne2 gibi değerler etiketler. Bunlar yerine M1, M5 gibi yazmam mı daha iyi olur merak ediyorum.
 

Ekli dosyalar

  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    6.7 KB · Görüntüleme: 16
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
Kodları en optimize şekilde ST diline çevirmek ve gereksiz yer kaplamamak şöyle yapabilirsiniz:
  1. Etiketlerinizi doğru ve açıklayıcı bir şekilde isimlendirin: Etiketler, değişkenlerin ve işlemlerin anlaşılabilir ve açıklayıcı isimlerle verilmesi önemlidir. Bu sayede kodunuzun ne yaptığını daha kolay anlayabilir ve yönetebilirsiniz.
  2. Gruplama ve yapılandırma: Fatek PLC'de bulunan X, M, Y, D, R gibi verileri mantıklı gruplar halinde düşünün ve adlandırın. Örneğin, birkaç bit veya register bir işlevi yerine getiren bir modül gibi düşünebilirsiniz. Bu sayede ST dilinde de bu grupları daha düzenli bir şekilde tanımlayabilirsiniz.
  3. Eşleştirmeyi otomatikleştirmek: Eğer mümkünse, Fatek PLC'nizdeki etiketleri ve verileri otomatik olarak ST dilindeki değişkenlere eşleştiren bir yazılım veya araç kullanabilirsiniz. Bu, işi büyük ölçüde kolaylaştırabilir ve hataları azaltabilir.
  4. Kullanmadığınız değişkenleri çıkartın: PLC programlamada zamanla biriken ve artık kullanılmayan değişkenler olabilir. ST diline çevirirken, bu gereksiz değişkenleri çıkartarak kodunuzu temiz ve optimize edilmiş tutabilirsiniz.
  5. Comment kısımlarında etiket isimlerini kullanın: ST dilinde, "//" ile başlayan satırlar yorum satırları olarak kabul edilir ve derlenmezler. Bunun yerine, "(" ile başlayan ve ")" ile biten çok satırlı yorumlar kullanabilirsiniz. Bu sayede comment kısmında da etiket isimlerini açıklayıcı bir şekilde kullanabilirsiniz.
  6. Çoklu dil desteği isterseniz; Mümkünse, programınızda kullanılan etiketleri dil dosyalarına taşıyarak, farklı dillerde kolayca çeviri yapabilirsiniz.
  7. Genel ve yeniden kullanılabilir fonksiyonlar: Sık kullanılan işlemleri genel fonksiyonlar halinde tanımlayarak, kodunuzu daha modüler ve yeniden kullanılabilir hale getirebilirsiniz.
Sonuç olarak, ST diline çevirirken etiketleri bit ve registerlara tek tek yazmak yerine, kodunuzu daha düzenli ve optimize edilmiş bir şekilde yazın. Gruplama, yapılandırma ve otomatikleştirme yöntemlerini kullanarak kodunuzu daha anlaşılır ve yönetilebilir hale getirebilirsiniz. Bu sayede farklı marka PLC'lerde de kolaylıkla kullanabileceğiniz daha taşınabilir bir program elde edebilirsiniz.
 
Sonuç olarak, ST diline çevirirken etiketleri bit ve registerlara tek tek yazmak yerine, kodunuzu daha düzenli ve optimize edilmiş bir şekilde yazın. Gruplama, yapılandırma ve otomatikleştirme yöntemlerini kullanarak kodunuzu daha anlaşılır ve yönetilebilir hale getirebilirsiniz. Bu sayede farklı marka PLC'lerde de kolaylıkla kullanabileceğiniz daha taşınabilir bir program elde edebilirsiniz.
Teşekkür ediyorum cevabınız için. Dikkate alacağım, otomatikleştirme konusunda da sanırım birşeyler yapabilirim, fatek plcde element comment kısmında bit/registerlar ve etiket isimleri projeden export edilebiliyor. Oradaki etiketleri export edip güzelce sıralarsam sanki olabilir gibi. sağolun

Şimdi yine uğraşmaya başladım, aklıma st ile yazdığım kodları fonksiyon bloklarına çevirip tek bir programın içinde toplama fikri geldi. Böylece tüm st kodlarını etiketler ile yazıp, en son fonksiyonun VAR_INPUT ve VAR_OUTPUT kısımlarından istediğim bit/register değerlerini girebilirim sanırım. Ama böyle yapmam fazla yer kaplar mı emin değilim. Mitsubishide fonksiyon bloğu yapınca plc hafızası dolmuştu, deneyeceğim artık, Teşekkürler.
 
Teşekkür ediyorum cevabınız için. Dikkate alacağım, otomatikleştirme konusunda da sanırım birşeyler yapabilirim, fatek plcde element comment kısmında bit/registerlar ve etiket isimleri projeden export edilebiliyor. Oradaki etiketleri export edip güzelce sıralarsam sanki olabilir gibi. sağolun

Şimdi yine uğraşmaya başladım, aklıma st ile yazdığım kodları fonksiyon bloklarına çevirip tek bir programın içinde toplama fikri geldi. Böylece tüm st kodlarını etiketler ile yazıp, en son fonksiyonun VAR_INPUT ve VAR_OUTPUT kısımlarından istediğim bit/register değerlerini girebilirim sanırım. Ama böyle yapmam fazla yer kaplar mı emin değilim. Mitsubishide fonksiyon bloğu yapınca plc hafızası dolmuştu, deneyeceğim artık, Teşekkürler.
Evet, tüm ST kodlarını etiketler ile yazmak ve sadece fonksiyonun VAR_INPUT ve VAR_OUTPUT kısımlarından istediğiniz bit/register değerlerini girmek, kodunuzun daha modüler ve anlaşılabilir olmasını sağlayacaktır. Bu yaklaşım, kodunuzun yeniden kullanılabilirliğini artırabilir ve bakımını kolaylaştırabilir.

Ancak, doğru şekilde yapılandırılmazsa, çok fazla etiket kullanmak, programın hafızasını gereksiz yere doldurabilir. Her etiket, bellek üzerinde yer kaplar ve fazla etiket kullanmak, PLC'nin bellek sınırlarını zorlayabilir.

Mitsubishi veya diğer marka PLC'lerde, fonksiyon blokları ve etiket kullanımı, PLC'nin modeline, bellek kapasitesine ve yapılandırmasına bağlı olarak farklılık gösterebilir. Eğer daha önce Mitsubishi PLC'sinde fonksiyon bloğu kullanırken hafıza dolmuşsa, bu durumu göz önünde bulundurarak ST dilinde de etiket kullanımınıza dikkat etmenizde fayda var.

Şöyle optimize edebilirsiniz:
  1. Sadece işlevsel ve gerçekten ihtiyacınız olan etiketleri tanımlamaya özen gösterin. Kullanmadığınız etiketleri çıkartın.
  2. Eğer kodunuzda sık sık tekrarlanan sabit değerler varsa, bunları doğrudan kod içinde kullanmak yerine, bir sabit olarak tanımlayarak tekrar kullanın.
  3. İhtiyacınız olan en küçük veri türünü kullanarak değişkenleri tanımlayın. Gereksiz büyük veri türlerini kullanmaktan kaçının.
  4. "Global" değişkenler yerine, sadece fonksiyon içinde geçerli olacak "local" değişkenler kullanın. Bu, hafızada yer tasarrufu sağlar.
  5. CodeSys veya diğer PLC programlama araçlarında, derleme ve optimizasyon seçenekleri olabilir. Bu seçenekleri kullanarak kodunuzu daha verimli hale getirebilirsiniz.
  6. Büyük ve karmaşık fonksiyon bloklarını küçük ve özgün modüllere bölmek, daha düzenli ve optimize edilmiş bir yapı oluşturmanıza yardımcı olur.
Hafıza kapasitesine göre kritik olan yerlerde, mümkün olan en küçük boyutta değişkenleri kullanmak ve gereksiz etiketleri çıkartmak önemlidir. Her zaman, belirli bir PLC modelinin hafıza boyutlarını göz önünde bulundurarak programlamaya özen göstermeniz tavsiye edilir.
 
CodeSys veya diğer PLC programlama araçlarında, derleme ve optimizasyon seçenekleri olabilir. Bu seçenekleri kullanarak kodunuzu daha verimli hale getirebilirsiniz.
  1. Büyük ve karmaşık fonksiyon bloklarını küçük ve özgün modüllere bölmek, daha düzenli ve optimize edilmiş bir yapı oluşturmanıza yardımcı olur.
Çok teşekkür ediyorum tekrardan, dediğinizi araştıracağım, optimizasyon için bir seçenek vs. Varsa bi deneyeyim belki işimi kolaylaştırır.

Aslında mitsubishi hafızası dolmazdı diye düşünüyorum, ancak fonksiyon bloklarına çevirdiğimde label tanımlayarak yazmak durumundaydım (çünkü o blokları fonksiyon olarak ana programda kullanacaktım) bu etiketlere de bloklar ana programa konulduğu zaman M,D,X,Y giriş/çıkışlarını bağlayacaktım.


Bakalım, üç dört güne tamamlarım herhalde, verimli olursa bu şekilde devam ederim veya ST ile birkaç kolaylaştırıcı fonksiyon bloğu hazırlayıp eski usül devam da edebilirim.
 
Son düzenleme:

Forum istatistikleri

Konular
128,191
Mesajlar
915,732
Kullanıcılar
449,965
Son üye
Pentium55

Yeni konular

Geri
Üst