İçindekiler:

Arduino PLC 32 I/O+Durum Makinesi+SCADA veya HMI: 8 Adım
Arduino PLC 32 I/O+Durum Makinesi+SCADA veya HMI: 8 Adım

Video: Arduino PLC 32 I/O+Durum Makinesi+SCADA veya HMI: 8 Adım

Video: Arduino PLC 32 I/O+Durum Makinesi+SCADA veya HMI: 8 Adım
Video: HMI Dashboard Arduino Project 2024, Kasım
Anonim
Arduino PLC 32 I/O+Durum Makinesi+SCADA veya HMI
Arduino PLC 32 I/O+Durum Makinesi+SCADA veya HMI

Arduino ile endüstriyel bir sistemi programlamanın, kontrol etmenin ve denetlemenin birçok yolu.

Adım 1: Giriş

Tanıtım
Tanıtım

Bu talimatta şunlarla ilgileneceğim:

Butonlar, anahtarlar ve LED'ler dahil olmak üzere bir tür makineye bağlı bir arduinoyu programlamak için 2 yöntem

1- SM kitaplığı (State Machine) kullanan arduino 1.6.x IDE ile ilk yöntem

2- Eclipse ortamı ile oluşturulmuş bir durum diyagramı editörü projesi olan Yakindu'yu kullanan ikinci yöntem: durum makinenizi çiziyorsunuz ve Arduino kartına aktarılacak kodu üretiyor.

İle birlikte

Bir SCADA veya çalışan sanal HMI ile makineyi denetlemenin 2 yolu:

1- Android 4.4 altında: Unigo Evolution, yalnızca ekrana yerleştirilecek öğeleri ve modbus TCP'yi içermeyen ücretsiz bir uygulama

2-Windows 8 altında: Visual Studio 2013'e ihtiyaç duyan ücretsiz bir AdvancedHMI projesi, bir ekrana ve modbus TCP'ye yerleştirilecek kod ve öğe yok

Böylece fonksiyonel dizilerinizi bir SFC ile çizersiniz (otomasyonda: Sıralı Fonksiyon Şeması), bir durum şemasına çevirirsiniz (çok daha yakın), programlarsınız (Yakindu veya Arduino SM lib) ve sonra bir SCADA (Unigo) ile denetlersiniz. android veya AdvancedHMI Windows).

Adım 2: Gerçek Panonun Tanımı:

Gerçek Kurulun Açıklaması
Gerçek Kurulun Açıklaması
Gerçek Kurulun Açıklaması
Gerçek Kurulun Açıklaması

şematik:

Ben bir Arduino UNO kartı kullandım, klon değil çünkü Yakındu herhangi bir klona sadece UNO ve Mega kart gönderemiyor.

MCP23S17 (2x16 G/Ç) gibi 2 SPI genişleticiye sahip 32 dijital G/Ç'ye ve MCP4921 gibi 2 SPI DAC ile 2 analog 12 bit çıkışa (gerçek analog PWM filtreli değil) sahip olabilirim.

Ethernet kalkanını ben çizmedim ama sisteminizi denetlemek için buna ihtiyacınız var: bu nedenle 4, 10, 11, 12 ve 13 pinleri başka hiçbir şey için kullanılmamalı ve açıkçası 0 ve 1 pinleri yalnızca RX TX için kullanılmamalıdır.

Gerçek tahta resimleri:

8 buton gereklidir:

  • Manüel mod için 4 adet: her ledde ışık için bir adet
  • 1 acil durdurma için: basıldığında normal moddasınız, bırakın: acil durum
  • 1, serbest bırakıldığında her bir ledin sıralı ışığını açıp kapatan otomatik mod için: manuel mod, her bir led'i sırasız kontrol etmek için
  • Otomatik modda RUN için 1
  • Otomatik modda STOP için 1

İstediğinizi simüle etmek için 4 led (röle, vana…)

Programlarda kullandığım her buton ve ledin adını veriyorum.

Adım 3: Hangi Sıra Programlanacak? SFC ve Durum Şeması

Programlanacak Sıra Nedir? SFC ve Durum Şeması
Programlanacak Sıra Nedir? SFC ve Durum Şeması
Programlanacak Sıra Nedir? SFC ve Durum Şeması
Programlanacak Sıra Nedir? SFC ve Durum Şeması

Sistemin ne yapması gerektiğini açıklamak için çok basit bir SFC yaptım.

3 SFC gereklidir:

  • Acil durum moduna geçmek veya çıkmak için SFCsecu, diğerlerini başlatan ana SFC'dir
  • SFCsecu tarafından başlatılan SFC otomatik manuel, otomatik moda veya manuel moda ulaşabilirsiniz
  • SFC çalıştırma durdurma, tarama ve biri DCY (RUN) veya FCY (STOP) düğmesine bastığında ezberleme

Bu SFC, sözde çoklu işlemde çalışıyor.

Sonra onları bir durum şemasına çeviriyorum:

  • 2 diğer köleyi başlatan bir ana makine (Acil Durum)
  • DCY ve FCY'yi taramak ve ezberlemek için bir köle
  • otomatik veya manuel moda ulaşmak için bir köle

Başka bir şey: DCY'ye bastığınızda analog çıkışı bir scada üzerinde sanal bir trimer ile çalıştırabilirsiniz, FCY'ye bastığınızda analog çıkışlar 0V'a düşer.

Durum şeması, arduino'yu programlamanıza yardımcı olur.

Adım 4: Arduino IDE 1.6. X ile Programlama

Arduino IDE 1.6. X ile Programlama
Arduino IDE 1.6. X ile Programlama
Arduino IDE 1.6. X ile Programlama
Arduino IDE 1.6. X ile Programlama

Önceki diyagramları çevirmek için size kodu veriyorum. Sana da vereceğim 3 ek kütüphaneye ihtiyacım vardı.

Hangi pinleri ne için kullandığınızı anlamak için adres tablosuna ve modbus karşılık gelen adresleri kaydeder.

Adım 5: YAKINDU ile Programlama

YAKINDU ile Programlama
YAKINDU ile Programlama
YAKINDU ile Programlama
YAKINDU ile Programlama
YAKINDU ile Programlama
YAKINDU ile Programlama

Önce ücretsiz proje sürümü 2.9'u (pro değil) şuradan indirin:

www.itemis.com/en/yakindu/state-machine/

Ardından, sağlanan öğreticiyi izleyin: Programı en son indirdiğim zamana kıyasla, yalnızca "xxxconnector.cpp" dosyasının farklı bölümlerinin adlarının tamamlanması için bazı değişiklikler var.

Resimler: durum makinesinin çizimi, projedeki klasörün görünümü ve arduino'dan içe aktarılan kütüphaneleri, geçişler/durumlar ve gerçek girişler/çıkışlar arasında bağlantı kurmak için "xxxconnector.cpp" görünümü kurulu veya SCADA'lar.

Size otomatik olarak oluşturulan çalışma alanınıza aktarmanız gereken projeyi veriyorum.

Ayrıca sağlananlar: Yakindu'ya içe aktarmak için gerekli kütüphaneler ve öğreticide açıklanan bazı değişiklikler.

Adım 6: AdvancedHMI ile Denetleyin

AdvancedHMI ile Denetleyin
AdvancedHMI ile Denetleyin

İlk önce Visual studio Express 2013 veya daha fazlasını şuradan indirin:

www.microsoft.com/fr-fr/download/details.a…

Ardından AdvancedHMI projesini şuradan indirin:

sourceforge.net/projects/advancedhmi/?SetF…

Çizdiğim (ilgili modbus register adresleri ile) ve kodsuz programlanmış SCADA'nın resimlerini, değiştirilmiş projeyi ve kısa bir eğitim veriyorum.

7. Adım: Unigo Evolution ile Denetleyin

Unigo Evolution ile Denetleyin
Unigo Evolution ile Denetleyin

Android 4.4 (kit kat) ve 7 inç ekrana sahip bir android cihazına ihtiyacınız var.

Size çizdiğim SCADA'nın resimlerini (ve ilgili modbus kayıt adreslerini) ve Unigo'yu kullanmak için kısa bir öğretici, koda gerek yok, dahili cihazınızda oluşturulan UniGOPictures klasörüne koymak için endüstriyel ışıkların ve düğmelerin resimlerini içeren bir klasör veriyorum. Uygulamaya ve projeye göre SD.

Adım 8: Sonuç

2 farklı programlama yöntemini ve 2 farklı denetleme yöntemini bir araya getirmek çok büyük bir görevdi. Her şekilde becerilere alışmak başlangıçta zordur. Ama şimdi çalışıyor ve bir kez anlaşıldığında, artık daha karmaşık sistemleri kontrol edebilirsiniz.

Archie'ye (AdvancedHMI), RenéB2'ye (Yakindu) ve Mikael Andersson'a (Unigo Evolution) ve böyle bir "teknoloji fırtınası" projesi yapmama izin veren arduino kütüphanesi geliştiricilerine, dünya çapındaki birçok öğreticiye çok teşekkürler.

Sans eux j'aurais peut être souffert d'un duygu d'incomplétude infinie dökün l'éternité. J'exagère un peu.

Mutlu öğreticiler.