Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Gambar Asli Java &GraalVM:Meningkatkan Konektivitas Basis Data di Aplikasi Manufaktur

Lanskap aplikasi saat ini dalam industri manufaktur dibagi menjadi hierarki yang kaku. Mulai dari Manajemen menggunakan sistem ERP, sistem perencanaan menggunakan MES, sistem pengawasan menggunakan SCADA hingga sistem kendali yang diwujudkan dengan PLC dan sistem lapangan di bagian paling bawah.

Meskipun sebagian besar sistem manajemen, perencanaan, dan pengawasan diterapkan dalam bahasa pemrograman berorientasi objek tingkat tinggi, sistem kontrol diimplementasikan sepenuhnya dengan bahasa tingkat rendah dengan C sebagai bahasa pemrograman yang mendominasi.

Perubahan mendadak dari tingkat hierarki tingkat tinggi ke tingkat rendah menimbulkan beberapa masalah. Diperlukan alat dan ekosistem yang sangat berbeda. Untuk implementasinya, pengembang yang benar-benar berbeda dengan cara berpikir yang berbeda harus dilibatkan untuk mengimplementasikan suatu tugas. Antarmuka harus didefinisikan antara dua dunia atau sistem. Hanya karena tidak ada kemungkinan untuk melanjutkan dengan bahasa pemrograman tingkat tinggi yang diketahui dari tingkat pengawasan ke tingkat kontrol. Hal ini kini telah berubah. Misalnya, dengan menggunakan teknologi container pada level kontrol di PLC, kami dapat menggunakan bahasa pemrograman seperti Java pada level hierarki ini dan mendobrak hierarki yang kaku.

Java adalah bahasa pemrograman berorientasi objek tingkat tinggi yang banyak digunakan. Ini memiliki komunitas dan ekosistem perpustakaan dan kerangka kerja yang dinamis yang menyediakan fungsionalitas tambahan, memungkinkan Anda memanfaatkan alat dan solusi yang ada untuk membangun aplikasi Anda dengan lebih cepat dan efisien.

Kami akan menunjukkan bagaimana Java tersedia di Phoenix Contact PLCnext untuk menyederhanakan pengembangan aplikasi yang berjalan di PLCnext dan berkomunikasi langsung dengan database untuk mengambil dan menyimpan informasi relevan aplikasi dan menyajikannya di antarmuka web. Salah satu framework paling populer di Java adalah Hibernate. Ini menyederhanakan proses pemetaan objek Java ke tabel database relasional, mengurangi jumlah kode boilerplate yang diperlukan untuk operasi database. Hibernate menyediakan abstraksi tingkat tinggi, memungkinkan pengembang untuk bekerja dengan objek daripada kueri SQL secara langsung. Hal ini dapat menyebabkan siklus pembangunan lebih cepat dan mengurangi upaya pembangunan. Hibernasi mengabstraksikan perbedaan antara vendor database yang berbeda, membuatnya lebih mudah untuk beralih antar database tanpa perubahan kode yang signifikan. Artikel ini menjelaskan integrasi Hibernate untuk menghubungkan perangkat lunak yang berjalan pada PLC ke database.

Aplikasi Java modern di PLCnext

Untuk mulai mengimplementasikan aplikasi Java modern, sebaiknya gunakan kerangka aplikasi seperti Quarkus atau Spring Boot. Kerangka kerja ini menyederhanakan konfigurasi proyek, manajemen ketergantungan.

Untuk contoh ini kita akan memulai aplikasi kita menggunakan Quarkus Menggunakan Hibernate ORM dan Jakarta Persistence Guide. Contoh kode sumber dapat ditemukan di proyek github hibernate-orm-quickstart.

Kami akan mulai memodifikasi kode sumber aplikasi. Kita dapat mengubah kelas Java Fruit.java menjadi Event.java dan tambahkan kolom baru date .

Contoh kode Event.java :

...
@Entity
@Table(name = "Events")
public class Event {
 @Id
 @GeneratedValue
 private Long id;
 
 private String title;
 
 @Column(name = "eventDate")
 private LocalDateTime date;
 
...

Kita dapat mengonfigurasi URL database dan kredensial dengan memodifikasi file application.properties

Contoh src/main/resources/application.properties

quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=myusername
quarkus.datasource.password=mypassword
quarkus.datasource.jdbc.url=jdbc:postgresql://myremotehost/mydatabase
quarkus.datasource.jdbc.max-size=8
quarkus.datasource.jdbc.min-size=2
quarkus.hibernate-orm.database.generation=create
...

Saat aplikasi dimulai, tabel dalam database akan dibuat dan diinisialisasi jika diperlukan. Setelah startup, kita dapat berinteraksi dengan database dengan antarmuka web yang berjalan pada port 8080 di PLCselanjutnya:

Perlu diingat, ini semua terjadi pada tingkat kontrol hierarki kami tanpa sistem tambahan apa pun di antaranya.

Gambar Asli GraalVM

Banyak pengembang masih percaya bahwa Java memerlukan apa yang disebut Java Runtime Environment untuk mengeksekusi Java Byte-Code dan tidak memberikan kinerja yang diperlukan. Hal ini tidak lagi terjadi pada aplikasi tertanam. Dalam contoh ini kami menggunakan teknologi GraalVM Native Image untuk mengkompilasi kode Java ke dalam aplikasi asli. Kompilasi gambar asli GraalVM menawarkan solusi menarik untuk mengatasi tantangan waktu startup dan konsumsi memori dalam aplikasi Java, khususnya di lingkungan dengan sumber daya terbatas seperti sistem tertanam. Dengan mengkompilasi aplikasi Java terlebih dahulu ke dalam executable asli, GraalVM secara signifikan mengurangi waktu startup dan overhead memori dibandingkan dengan kompilasi Just-In-Time (JIT) tradisional.

GraalVM MicroDoc memiliki kemampuan unik untuk menghasilkan biner untuk perangkat yang tertanam. Pada saat tutorial ini ditulis, GraalVM mendukung prosesor ARM dan x86 32-bit dan 64-bit.

Untuk mengkompilasi aplikasi Java kami terlebih dahulu dengan menargetkan PLC AXC F 1152 , kita dapat menggunakan GraalVM MicroDoc dan mengonfigurasi beberapa opsi kompiler di file application.properties .

...
quarkus.native.additional-build-args=--target=linux-arm,-H:CompilerBackend=llvm,-H:+PreserveFramePointer,-Dllvm.bin.dir=/llvm/bin,--native-compiler-path=/arm-none-linux-gnueabihf-g++,-H:CAPCacheDir=/cap-cache/armv7a-linux-gnueabihf

Anda akan menemukan informasi lebih lanjut tentang proses kompilasi silang dan debugging di artikel berikut:Membangun dan men-debug gambar asli Java dari MicroDoc GraalVM Embedded

Untuk membangun aplikasinya, Anda cukup menggunakan perintah berikut:

$ mvn -Pnative package

Selanjutnya, kita memulai simulator PLCnext. Simulator disediakan sebagai gambar qemu. Simulator akan menyambut kita dengan baris berikut:

PLCnext Linux 2023.0 sim-axcf1152 ttyAMA0
sim-axcf1152 login:

Biner yang dihasilkan dapat disalin ke PLC dengan perintah scp yang membuka shell aman ke PLC dan mentransfer biner ke sistem target. Anda dapat memulai aplikasi menggunakan perintah berikut:

$ ./application

Dengan menggunakan klien kokpit PLCnext, kita juga dapat melihat penggunaan memori dan penyimpanan saat ini:

Namun, kami juga tertarik dengan startup dan konsumsi memori aplikasi tunggal kami dibandingkan dengan menjalankan aplikasi di Java Runtime Environment seperti OpenJDK. Jadi, kami mengukur kedua nilai seperti yang ditunjukkan pada tabel berikut:

Waktu mulai (lebih sedikit lebih baik), Penggunaan memori (lebih sedikit lebih baik)

Gambar Asli GraalVM: 0,413 detik, 87 MB

BukaJDK: 13 dtk, 128 MB

GraalVM Native Image menawarkan peningkatan kinerja yang signifikan dalam hal waktu startup dan penggunaan memori dibandingkan OpenJDK, yang menunjukkan efektivitasnya dalam mengoptimalkan konsumsi sumber daya untuk penerapan aplikasi yang efisien.

Ringkasan

Menggunakan Java pada tingkat kontrol seperti PLC memiliki banyak manfaat. Pertama-tama, tidak ada kesenjangan teknologi antara tingkat pengawasan dan tingkat pengendalian. Tenaga kerja yang sama dapat mengimplementasikan aplikasi dan memanfaatkan ekosistem Java serta alat yang tersedia. Kedua, GraalVM mampu mengkompilasi kode Java sebagai aplikasi asli pada perangkat yang tertanam seperti prosesor ARM dan x86 32-bit dan 64-bit. Dengan demikian, pengembang Anda tidak perlu mengurus arsitektur yang mendasarinya dan dapat mengimplementasikan aplikasi Anda dalam bahasa berorientasi objek tingkat tinggi. Ketiga, berkat dukungan kontainer PLCnext Phoenix Contact, kami memiliki akses ke antarmuka PLC secara langsung dalam komponen perangkat keras yang sama dan dapat mematahkan hierarki kaku dalam aplikasi industri manufaktur saat ini.

Catatan:

Blog Pembuat menampilkan aplikasi dan kisah pengguna anggota komunitas yang tidak diuji atau ditinjau oleh Phoenix Contact. Gunakan dengan risiko Anda sendiri.


Teknologi Industri

  1. Mendesain Ulang Peralatan Anda Untuk Meningkatkan Produktivitas
  2. Apa itu Oksida Hitam atau Menghitam | Layanan Penyelesaian Logam Kustom Junying
  3. Membentuk Kembali Rantai Pasokan dan Logistik untuk Ketahanan
  4. Tiga Manfaat Strategi Ritel Multisaluran
  5. Cara Mengatasi Masalah Regulator Tekanan Umum
  6. dukungan suku cadang CNC untuk mesin CNC 5-sumbu 3-sumbu 4-sumbu
  7. Tip Teknologi Proto:Masking Standar vs Masking Kustom
  8. Bagaimana Mengukur Pusat Beban, Papan Panel, dan Papan Distribusi?
  9. Bagaimana Cara Kerja Tube Bender?
  10. VS1838b:Produksi LED penerima inframerah VS1838b