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

Aplikasi Java pada Kontrol PLCnext

Dengan Java 9, alat baru bernama jlink diperkenalkan. Ini menggabungkan modul dan membangun gambar runtime all-in. Di satu sisi, seluruh 32 bit ARM JDK dapat dijalankan pada Kontrol PLCnext. Tapi dengan jlink dan modul dimungkinkan untuk mengurangi sumber daya yang dibutuhkan untuk aplikasi Java Anda. Ini membuat bundel hanya dengan bagian-bagian penting dari JDK yang diperlukan untuk aplikasi Anda.

Prasyarat

Binari OpenJDK untuk banyak platform dapat ditemukan mis. pada AdoptOpenJDK. Untuk tutorial ini, kami memilih Linux arm32 jdk-12.0.2+10 untuk pengontrol dan liontinnya untuk sistem host Windows x64. Kami menggunakan lokasi JDK berikut:

C:
---Java
    |
    +---jdk-12.0.2
    |       ...
    |
    ---jdk-12-ARM-32bit
            ...

Buat modul aplikasi

Dalam contoh ini kami hanya mencetak Hello World di konsol. Untuk menggunakan jlink kita harus memasukkan aplikasi kecil ini ke dalam sebuah modul. Titik awal saya di terminal adalah folder bernama “HelloWorld” dan folder src dengan struktur berikut.

HelloWorld
---src
    ---de.plcnext.hello
        |   module-info.java
        |
        ---de
            ---plcnext
                ---hello
                        HelloWorld.java

Ini adalah contoh kode kecil kami di file HelloWorld.java:

package de.plcnext.hello;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello PLCnext world!");
    }
}

Dan module-info.java diperlukan untuk membuat modul:

module de.pxc.hello { }

Setelah membuat folder sumber, kami mengkompilasi proyek kami. Untuk ini kita menggunakan perintah berikut di terminal.

C:Javajdk-12.0.2binjavac.exe -d .modulesde.plcnext.hello .srcde.plcnext.hellodeplcnexthelloHelloWorld.java .srcde.plcnext.hellomodule-info.java

Folder modul dan kelas java dibuat:

HelloWorld
---modules
    ---de.plcnext.hello
        |   module-info.class
        |
        ---de
            ---plcnext
                ---hello
                        HelloWorld.class

Untuk menguji modul kita pada sistem host, kita dapat menjalankannya dengan perintah berikut:

C:Javajdk-12.0.2binjava.exe --module-path .modules -m de.plcnext.hello/de.plcnext.hello.HelloWorld

Ini akan menampilkan Hello PLCnext world! .

Cara menggunakan jlink

Sekarang kami ingin memasukkan ini ke perangkat kami tanpa seluruh JDK 300MB. Untuk ini kami menggunakan jlink tanpa parameter tambahan pada langkah pertama. Tetapi pada awalnya kami membutuhkan satu informasi lagi, modul tambahan mana yang diperlukan. Ini akan kami temukan dengan menganalisis modul kami dengan jdeps.

C:Javajdk-12.0.2binjdeps.exe --module-path ".modules" --add-modules "de.plcnext.hello"

Ini memberitahu kita, kita membutuhkan java.base tambahan untuk modul kami. Sebagai module-path kami memilih jalur ke aplikasi kami dan jalur ke jmod dari platform target kami JDK. Dalam hal ini C:Javajdk-12-ARM-32bitjmods .

Sekarang panggilan jlink kami terlihat seperti ini:

C:Javajdk-12.0.2binjlink.exe --module-path ".modules;C:Javajdk-12-ARM-32bitjmods" --add-modules "de.plcnext.hello,java.base" --output HelloWorldjre

Hasilnya adalah HelloWorldjre folder dengan hanya sekitar 45MB. Kami menyalin ini ke pengontrol kami. Dalam hal contoh ini ke /opt/plcnext/projects/java/ . Kita perlu membuat file "java" di folder biner HelloWorldjre dapat dieksekusi melalui chmod +x java dan mulai modul kami

./java -m de.plcnext.hello/de.plcnext.hello.HelloWorld

Itu harus menjalankan aplikasi dan output seperti sebelumnya Hello PLCnext world! . Dengan menggunakan beberapa parameter tambahan jlink, Anda dapat menghapus paket lebih banyak lagi (dalam contoh ini hingga 28MB) dengan menggunakan --strip-debug , --no-header-files , --no-man-pages dan --compress=2 . Di mana kompresi paling aman tetapi pada akhirnya dapat membahayakan kinerja.


Teknologi Industri

  1. Sirkuit Kontrol
  2. Operator Jawa
  3. Antarmuka Jawa
  4. Java mencoba-dengan-sumber daya
  5. Anotasi Jawa
  6. Java 10 - Berbagi Data Kelas
  7. 5 keuntungan dari kendali produksi jarak jauh
  8. Mengelola perangkat Kontrol PLCnext melalui SNMP
  9. Cara membuat aplikasi konsol PLCnext sederhana di C#
  10. Clustermanagement di PLCnext?