산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
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

모듈 폴더와 자바 클래스가 생성됩니다:

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를 사용하고 있습니다. 그러나 처음에는 추가 모듈이 필요한 정보가 하나 더 필요합니다. 이것은 우리 모듈을 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/ . HelloWorldjre 바이너리 폴더의 "java" 파일을 chmod +x 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. 자바 연산자
  3. 자바 인터페이스
  4. 자바 리소스 사용
  5. 자바 주석
  6. Java 10 - 클래스 데이터 공유
  7. 원격 생산 제어의 5가지 장점
  8. SNMP를 통한 PLCnext Control 장치 관리
  9. C#에서 간단한 PLCnext 콘솔 애플리케이션을 만드는 방법
  10. PLCnext의 클러스터 관리?