Daftar Isi:
- Langkah 1: Pendahuluan
- Langkah 2: Deskripsi Papan Nyata:
- Langkah 3: Urutan Pemrograman Apa? SFC dan Diagram Negara
- Langkah 4: Pemrograman Dengan Arduino IDE 1.6.X
- Langkah 5: Pemrograman Dengan YAKINDU
- Langkah 6: Awasi Dengan AdvancedHMI
- Langkah 7: Awasi Dengan Unigo Evolution
- Langkah 8: Kesimpulan
Video: Arduino PLC 32 I/O+State Machine+SCADA atau HMI: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Banyak cara untuk memprogram, mengontrol dan mengawasi suatu sistem industri dengan arduino.
Langkah 1: Pendahuluan
Dalam instruksi ini saya akan berurusan dengan:
2 metode untuk memprogram arduino yang terhubung ke semacam mesin termasuk tombol pus, sakelar, dan LED
1- Metode pertama dengan arduino 1.6.x IDE menggunakan perpustakaan SM (Mesin Negara)
2-Metode kedua menggunakan Yakindu, proyek editor diagram keadaan yang dibuat dengan lingkungan Eclipse: Anda menggambar mesin keadaan Anda, dan itu menghasilkan kode untuk ditransfer ke papan Arduino.
Bekerjasama dengan
2 cara mengawasi mesin dengan SCADA atau HMI virtual berjalan:
1- di bawah Android 4.4: Unigo Evolution, aplikasi gratis tanpa kode hanya item untuk ditempatkan di layar dan modbus TCP
2-di bawah Windows 8: proyek gratis AdvancedHMI yang membutuhkan Visual Studio 2013, tidak ada kode dan item untuk ditempatkan di layar dan modbus TCP
Jadi Anda menggambar urutan fungsional Anda dengan SFC (dalam otomatisasi: Bagan Fungsi Sekuensial), Anda menerjemahkannya dalam diagram keadaan (sangat dekat), Anda memprogramnya (Yakindu atau Arduino SM lib) dan kemudian Anda mengawasinya dengan SCADA (Unigo android atau AdvancedHMI Windows).
Langkah 2: Deskripsi Papan Nyata:
Skema:
Saya menggunakan papan Arduino UNO, bukan klon karena Yakindu tidak dapat mengirim program apa pun ke klon mana pun hanya dengan papan UNO dan Mega.
Saya dapat memiliki 32 I/O digital dengan 2 ekspander SPI seperti MCP23S17 (2x16 I/O) dan 2 output analog 12 bit lainnya (analog nyata bukan filter PWM) dengan 2 DAC SPI seperti MCP4921.
Saya tidak menggambar pelindung ethernet tetapi Anda memerlukannya untuk mengawasi sistem Anda: jadi pin 4, 10, 11, 12 dan 13 tidak boleh digunakan untuk hal lain dan jelas pin 0 dan 1 hanya untuk RX TX.
Papan gambar nyata:
8 tombol yang diperlukan:
- 4 untuk mode manual: satu untuk lampu di setiap led
- 1 untuk berhenti darurat: jika didorong, Anda berada dalam mode normal, lepaskan: darurat
- 1 untuk mode otomatis yang menyalakan dan mematikan lampu berurutan dari setiap led, jika dilepas: mode manual, untuk mengontrol setiap led tanpa urutan
- 1 untuk RUN dalam mode otomatis
- 1 untuk BERHENTI dalam mode otomatis
4 led untuk mensimulasikan apa pun yang Anda inginkan (relay, valve…)
Saya memberikan nama setiap tombol dan led yang saya gunakan dalam program.
Langkah 3: Urutan Pemrograman Apa? SFC dan Diagram Negara
Saya membuat SFC yang sangat sederhana untuk menggambarkan apa yang seharusnya dilakukan sistem.
3 SFC diperlukan:
- SFCsecu untuk masuk atau keluar dari mode darurat, master SFC yang meluncurkan yang lain
- Manual otomatis SFC diluncurkan oleh SFCsecu, Anda dapat mencapai mode otomatis atau mode manual
- SFC run stop, scan dan hafal jika seseorang mendorong DCY (RUN) atau FCY (STOP)
SFC ini berjalan dalam pseudo-multistaking.
Lalu saya menerjemahkannya dalam diagram keadaan:
- mesin master (Darurat) meluncurkan 2 budak lainnya
- budak untuk memindai dan menghafal DCY dan FCY
- seorang budak untuk mencapai mode otomatis atau manual
Hal lain: ketika Anda menekan DCY, Anda dapat mengarahkan output analog dengan trimer virtual pada scada, ketika Anda mendorong FCY, output analog turun ke 0V.
Diagram status membantu Anda memprogram arduino.
Langkah 4: Pemrograman Dengan Arduino IDE 1.6. X
Saya memberi Anda kode untuk menerjemahkan diagram sebelumnya. Saya membutuhkan 3 lib tambahan yang saya berikan juga.
Anda juga memerlukan tabel alamat untuk memahami pin apa yang Anda gunakan untuk apa dan modbus mendaftarkan alamat yang sesuai.
Langkah 5: Pemrograman Dengan YAKINDU
Pertama unduh proyek gratis versi 2.9 (bukan pro) di:
www.itemis.com/en/yakindu/state-machine/
Kemudian ikuti tutorial yang disediakan: ada beberapa modifikasi dibandingkan dengan terakhir kali saya mengunduh program, hanya untuk nama bagian yang berbeda dari file "xxxconnector.cpp" untuk menyelesaikannya.
Gambar: gambar mesin status, tampilan folder dalam proyek dan pustaka yang diimpor dari arduino, tampilan "xxxconnector.cpp" untuk membuat tautan antara transisi/status dan input/output nyata dari dewan atau SCADA.
Saya memberi Anda proyek yang hanya perlu Anda impor di ruang kerja yang dibuat secara otomatis.
Juga disediakan: lib yang diperlukan untuk mengimpor ke Yakindu dan beberapa perubahan yang harus dilakukan dijelaskan dalam tutorial.
Langkah 6: Awasi Dengan AdvancedHMI
Pertama unduh Visual studio Express 2013 atau lebih di:
www.microsoft.com/fr-fr/download/details.a…
Kemudian unduh proyek AdvancedHMI di:
sourceforge.net/projects/advancedhmi/?SetF…
Saya memberi Anda gambar SCADA yang saya gambar (dengan alamat register modbus yang sesuai) dan diprogram tanpa kode, proyek dimodifikasi dan tutorial singkat.
Langkah 7: Awasi Dengan Unigo Evolution
Anda memerlukan perangkat android dengan android 4.4 (kit kat) dan layar 7 inci.
Saya memberi Anda gambar SCADA yang saya gambar (dan alamat register modbus yang sesuai) dan tutorial singkat untuk menggunakan Unigo, tidak perlu kode, folder yang berisi gambar lampu dan tombol industri untuk dimasukkan ke dalam folder UniGOPictures yang dibuat di internal Anda SD oleh aplikasi, dan proyek.
Langkah 8: Kesimpulan
Itu adalah tugas besar untuk mengumpulkan 2 cara pemrograman yang berbeda dan 2 cara pengawasan yang berbeda. Sulit pada awalnya untuk terbiasa dengan keterampilan masing-masing. Tapi sekarang berhasil dan setelah dipahami, Anda sekarang dapat mengontrol sistem yang lebih rumit.
Banyak terima kasih kepada banyak tutorial di seluruh dunia, kepada Archie (AdvancedHMI), kepada RenéB2 (Yakindu) dan kepada Mikael Andersson (Unigo Evolution) dan kepada pengembang perpustakaan arduino yang mengizinkan saya melakukan proyek "penyerbuan teknologi" semacam itu.
Sans eux j'aurais peut tre souffert d'un sentimen d'incomplétude infinie pour l'éternité. J'exagère un peu.
Selamat instruksi.