Apache PLC4X adalah upaya untuk membuat sekumpulan perpustakaan untuk berkomunikasi dengan pengontrol logika terprogram (PLC) kelas industri dengan cara yang seragam. Kami berencana mengirimkan perpustakaan untuk digunakan di:
PLC4X juga terintegrasi dengan proyek Apache lainnya, seperti:
Dan menghadirkan utilitas yang berdiri sendiri (Jawa) seperti:
Ini juga menyediakan alat (Java) untuk penggunaan di dalam aplikasi:
Tergantung pada bahasa pemrograman, penggunaannya akan berbeda, oleh karena itu silakan kunjungi Memulai di situs web PLC4X untuk mencari bahasa pilihan.
CATATAN: Saat ini versi Java yang mendukung pembuatan seluruh bagian Apache PLC4X setidaknya adalah Java 19 (Kami telah menguji semua versi hingga Java 21), namun hanya Java Tool UI yang memerlukannya saat ini. Semua modul lainnya memerlukan setidaknya Java 11.
Lihat panduan pengguna PLC4J di situs web untuk mulai menggunakan PLC4X di aplikasi Java Anda: https://plc4x.apache.org/plc4x/latest/users/getting-started/plc4j.html
Saat ini, proyek dikonfigurasi untuk memerlukan perangkat lunak berikut:
JAVA_HOME
yang dikonfigurasi untuk mengarah ke sana.passive-mode
PERINGATAN: Pembuatan kode menggunakan utilitas yang memerlukan beberapa pengaturan VM tambahan. Saat menjalankan build dari root, pengaturan di .mvn/jvm.config
diterapkan secara otomatis. Saat membuat sub-modul saja, penting untuk menyetel argumen vm: --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
. Di Intellij misalnya atur ini dalam pengaturan IDE di bawah: Preferensi | Bangun, Eksekusi, Penerapan | Alat Bangun | Maven | Pelari: Opsi JVM.
Penjelasan lebih rinci tersedia di situs web kami:
https://plc4x.apache.org/plc4x/latest/developers/preparing/index.html
PLC4C
kita juga membutuhkan:Semua persyaratan diambil oleh build itu sendiri
PLC4Go
kita juga membutuhkan:Semua persyaratan diambil oleh build itu sendiri
PLC4Py
kita juga membutuhkan:PLC4Net
kita juga membutuhkan:Dengan pengaturan ini Anda akan dapat membangun bagian Java dari PLC4X.
Saat melakukan build lengkap, kami secara otomatis menjalankan pemeriksaan prasyarat dan menggagalkan build dengan penjelasan, jika tidak semua persyaratan terpenuhi.
Jika Anda tidak ingin repot mengatur lingkungan pada sistem normal Anda, dan Anda telah menginstal Docker, Anda juga dapat membangun semuanya dalam container Docker:
docker compose up
Ini akan membangun container Docker lokal yang mampu membangun semua bagian PLC4X dan akan menjalankan maven build dari direktori lokal di dalam container ini.
Build default akan menjalankan build rilis lokal, sehingga build ini juga dapat digunakan untuk memastikan build yang dapat direproduksi saat dirilis.
Secara default, apakah itu akan menyimpan file secara lokal:
out/.repository
out/.local-snapshots-dir
Alasannya adalah, jika tidak, artefak tersebut akan dikemas dengan artefak rilis sumber, sehingga menghasilkan arsip zip berukuran 12 GB atau lebih. Namun, menyimpannya di direktori target
utama akan membuat build menghapus repo lokal setiap kali mvn clean
dijalankan. Namun direktori out
dikecualikan secara default dari deskriptor Majelis, dan oleh karena itu tidak disertakan dalam zim sumber.
Anda harus menginstal setidaknya Java 11 di sistem Anda dan konektivitas ke Maven Central (untuk mengunduh dependensi pihak ketiga eksternal). Maven 3.6 diperlukan untuk membangun, jadi pastikan itu terinstal dan tersedia di sistem Anda.
CATATAN: Saat menggunakan Java 21 saat ini modul integrasi Apache Kafka dikecualikan dari build karena salah satu plugin yang diperlukan terbukti tidak kompatibel dengan versi ini.
CATATAN: Ada kemudahan Maven-Wrapper yang diinstal di repo, ketika digunakan, ini secara otomatis mengunduh dan menginstal Maven. Jika Anda ingin menggunakan ini, silakan gunakan ./mvnw
atau mvnw
alih-alih perintah mvn
biasa.
CATATAN: Saat dijalankan dari sumber-zip, mvnw
mungkin tidak dapat dijalankan di Mac
atau Linux
. Ini dapat dengan mudah diperbaiki dengan menjalankan perintah berikut di direktori.
$ chmod +x mvnw
CATATAN: Jika Anda bekerja pada sistem Windows
, gunakan mvnw.cmd
alih-alih ./mvnw
pada perintah build berikut.
Bangun stoples Java PLC4X dan instal di repositori maven lokal Anda
./mvnw install
Anda sekarang dapat membuat aplikasi Java yang menggunakan PLC4X. Contoh PLC4X adalah tempat yang baik untuk memulai dan tersedia di dalam direktori plc4j/examples
.
Driver Go
dapat dibuat dengan mengaktifkan profil with-go
:
./mvnw -P with-go install
Driver Java
dapat dibuat dengan mengaktifkan profil with-java
:
./mvnw -P with-java install
Implementasi C# / .Net
saat ini sedang dalam work in progress
. Untuk dapat membangun modul C# / .Net
, saat ini Anda perlu mengaktifkan: profil with-dotnet
.
./mvnw -P with-dotnet install
Implementasi Python saat ini dalam keadaan agak tidak bersih dan masih memerlukan pemfaktoran ulang. Untuk dapat membangun modul Python, saat ini Anda perlu mengaktifkan: profil with-python
.
./mvnw -P with-python install
Untuk membangun semuanya, perintah berikut harus berfungsi:
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code install
Bergabunglah dengan komunitas PLC4X dengan menggunakan salah satu saluran berikut. Kami akan dengan senang hati membantu!
Berlangganan ke milis berikut:
Dapatkan berita PLC4X terkini di Twitter: https://twitter.com/ApachePlc4x
Ada berbagai bentuk di mana Anda dapat terlibat dalam proyek PLC4X.
Ini adalah, namun tidak terbatas pada:
Kami adalah kelompok yang sangat ramah jadi jangan takut untuk melangkah maju. Jika Anda ingin berkontribusi pada PLC4X, lihat panduan kontribusi kami!
Apache PLC4X dirilis di bawah Lisensi Apache Versi 2.0.