工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

PLCnext ControlのJavaアプリケーション

Java 9 では、jlink という新しいツールが が紹介されました。モジュールを組み合わせて、オールインのランタイム イメージを構築します。一方では、32 ビット ARM JDK 全体を PLCnext Control 上で実行できます。ただし、jlink を使用 およびモジュールを使用すると、Java アプリケーションに必要なリソースを削減できます。アプリケーションに必要な JDK の必要な部分だけを含むバンドルを作成します。

前提条件

多くのプラットフォーム用の OpenJDK のバイナリが見つかります。 AdoptOpenJDK で。このチュートリアルでは、Linux arm32 jdk-12.0.2+10 を選択しました Windows x64 ホスト システムのコントローラとそのペンダント用。 JDK の次の場所を使用しています:

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

アプリケーション モジュールを作成する

この例では、Hello World を出力しています。 コンソールで。 jlink を使用するには この小さなアプリケーションをモジュールに入れる必要があります。端末の出発点は、「HelloWorld」というフォルダーと、次の構造を持つ src フォルダーです。

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

これは、HelloWorld.java ファイル内の小さなコード例です:

package de.plcnext.hello;

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

また、モジュールを作成するには module-info.java が必要です:

module de.pxc.hello { }

ソース フォルダーを作成したら、プロジェクトをコンパイルします。このために、ターミナルで次のコマンドを使用します。

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

modules フォルダーと Java クラスが作成されます:

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

ホスト システムでモジュールをテストするには、次のコマンドで実行します。

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

これは Hello PLCnext world! を出力するはずです .

jlink の使い方

これを 300MB の JDK 全体なしでデバイスに取り込みます。このために、最初のステップで追加のパラメーターなしで jlink を使用しています。しかし、最初に、どの追加モジュールが必要かという情報がもう 1 つ必要です。これは、jdeps を使用してモジュールを分析することでわかります。

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

これは、java.base が必要であることを示しています。 さらに私たちのモジュールに。 module-path として アプリケーションへのパスと、ターゲット プラットフォーム JDK の jmod へのパスを選択します。この場合 C:Javajdk-12-ARM-32bitjmods .

jlink 呼び出しは次のようになります。

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

結果は HelloWorldjre です 約 45MB しかないフォルダ。これをコントローラーにコピーします。この例の場合は /opt/plcnext/projects/java/ に . chmod +x java を使用して、HelloWorldjre バイナリ フォルダー内の「java」ファイルを実行可能にする必要があります。 モジュールを開始します

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

Hello PLCnext world! 以前のようにアプリケーションと出力を実行する必要があります . jlink のいくつかの追加パラメーターを使用すると、 --strip-debug を使用して、パッケージをさらに (この例では 28MB まで) 削除できます。 、 --no-header-files--no-man-pages--compress=2 .圧縮は最も安全ですが、最後にパフォーマンスを損なう可能性がある場所.


産業技術

  1. 制御回路
  2. Java オペレーター
  3. Java インターフェイス
  4. Java try-with-resources
  5. Java アノテーション
  6. Java 10 - クラスデータ共有
  7. リモート生産管理の5つの利点
  8. SNMP経由でPLCnext Controlデバイスを管理する
  9. C# で簡単な PLCnext コンソール アプリケーションを作成する方法
  10. PLCnextでのクラスタ管理?
  11. PLCnext ControlのJavaアプリケーション