Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

STM32 PLC Projesi

Başlatan tesladream, 12 Mayıs 2020, 08:56:25

tesladream

Selamlar,

STM32F4 geliştirme kartım var, opensource bir PLC projesi yapmak istiyorum.

- CanBUS bootloader
- CanBUS ile yazılım yükleme/configürasyon
- Önceden belirlenen 10 Digital Input, 5 ADC Input, 10 Digital Output, 2 H-Bridge çıkış olsun kabul ediyorum.
- QT ile GUI hazırlayacağım. Ladder veya Functional Block Diagram da ile kod modellenebilir.

Bazı net olmayan kısımlar aklımda. GUI üzerinde yeni hex çıkartıp yüklemek mi mantıklı, yoksa kod generic yapıp sadece GUI ile konfigure etmek mi karar veremedim.

STM32 ile PLC nasıl mimarisi nasıl kurabiliriz?



brandice5

Bence STM32 içinde bir interpreter geliştirip, PLC programını script olarak göndermek daha mantıklı.

makdeniz

Kodu adım adım işleyen bir yapı daha mantıklı böylece plc'den lazım olduğunda program tekrar upload yapılabilir.

Bende zamanında benzer bir yapı ile uğraştım ama editor kısmında mantıgı istediğim gibi kuramadığım için bıraktım gerçekten zahmetli bir iş.

Şimdiden kolay gelsin.
Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

Tagli

Alıntı yapılan: brandice5 - 12 Mayıs 2020, 09:27:42Bence STM32 içinde bir interpreter geliştirip, PLC programını script olarak göndermek daha mantıklı.
Bence de. Gerçi ben script yerine bir çeşit byte code düşünmüştüm. Ladder veya benzeri bir kaynaktan bilgisayar üzerinde kendi özel byte code'unuza derlenip PLC'ye atılabilir.

Bir ara, cep telefonunda ladder çizip yazılımını bluetooth ile güncelleyebileceğim bir PLC yapabilir miyim diye düşünmüştüm ama zaman ayıramadım.
Gökçe Tağlıoğlu

brandice5

@Tagli bence plain text olması daha avantajlı çünkü bytecode üretmek için PC üzerinde derleyici tarzı ek bir uygulama daha geliştirilmesi gerekir. Plain text script'i ise notepad de bile açıp düzenleyebilirsiniz.

Ladder tarzı bir grafik arayüz istenirse, ugyulama ladder'i scripte çevirir. Kullanıcı isterse notepad de açıp scripti görebilir ve değiştirebilir.

Plain text'in tek dezavantajı dosya boyutu olabilir ama günümüzdeki işlemcilerde bunun çok sorun olacağını sanmıyorum.

Tagli

Kullanıcı tarafından okunup değiştirilebilme avantajı olsa da ben işlemciye kod olarak text yükleme taraftarı değilim. Program boyutu bir sorun, ama bence asıl sorun programın çalışma hızı olacaktır. Text işleyip komut olarak çalıştırmak PLC'nin işlemcisi için zahmetli bir iş.

Ben ladder'ı XML veya JSON gibi bir formatta saklayıp sonra derleyiciye vermeyi düşünmüştüm. Gerçi logic optimizasyonu başlı başına bir çalışma alanı ama başlangıç için es geçilebilir belki. Program da 32-bit byte code'lardan oluşacaktı.
Gökçe Tağlıoğlu

tesladream

PC de kodu derleme olayına bende girme taraftarı değilim. PLC ler IEC-61131-3 isminde bir protocol kullanıyorlarmış. Sanırım bu protocol de derleme yapılıyor. PC de application i seçiyorsun ladder, kod veya functional block diagram olarak.

Peki kodu derlemeyeceksek, mcu üzerinde tüm olasıklıkları kodlayıp calibratable variable lar ile seçtirerek çalıştıracağız. PC ve MCU arasında haberleşme protocol üne json, xml herhangi bişey olabilir. MCU içerisindeki ini dosyasını güncelleriz, reset attığımızda yeni ini dosyası ile çalışır.

Problem mcu üzerindeki runtime kodu nasıl bu kadar generic yapabiliriz?

Diğer soru PC de kullanıcı cascade işlem seçerse yani
- İki inputu al topla
- Sonuc > 150 ise
- çıkış pini 10sn sonra active olucak.

Cascade işlemleri çözemedim. Linked-list ile modulleri bağlayabiliriz.

tesladream

Hazır bir stack code var mıdır bu iş için?

makdeniz

Bir PLC'nin ladderi aşağıdaki dosyayı oluşturuyor belki fikir verir.

Ladder örnegi

|----| %I0.0 |-----|/| %M0.0 |------------(s | %M0.0)----|

Çevrilen kod

LD    %I0.0          Açık kontak
ANDN    %M0.0        Kapalı kontak
S    %M0.0            Set
Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.