Mengoptimalkan PLCnext dengan Azure IoT Edge: Analisis Edge dan Integrasi Cloud
Azure IoT Edge memungkinkan untuk memindahkan analitik cloud dan logika custom ke "the edge", dalam kasus ini ke perangkat PLCnext kita. Ini memiliki beberapa manfaat dalam mengurangi bandwidth yang digunakan dan latensi. Dengan Azure IoT Edge Anda dapat mengembangkan dan menerapkan aplikasi Anda sendiri dari aplikasi cloud terpusat. Dalam blog ini Anda akan mempelajari cara menyiapkan Azure IoT Edge dan beberapa prinsip dasarnya.
Pendahuluan
Menjelaskan semua in's and out's dari solusi Azure IoT Edge mungkin terlalu jauh untuk Makersblog, tetapi pastikan untuk membaca sendiri sebelum Anda melanjutkan blog ini. Di portal ini Anda menemukan semua informasi yang Anda butuhkan untuk mendapatkan gambaran yang baik tentang apa yang kita lakukan dalam blog ini. Mari kita pergi dan instal runtime.
Instalasi
Buat Azure IoT Hub dan buat perangkat
Sebelum memulai kita perlu menyiapkan beberapa hal di azure portal. Saya asumsikan Anda telah menyiapkan akun Azure.
Hal pertama yang harus kita lakukan adalah membuat resource group dan memberi nama yang deskriptif. Klik pada create a new resource group. Jika tidak tercantum Anda dapat menekan tombol "+" dan mencari new resource group.
Buat layanan IoT Hub baru. Anda dapat memiliki 1 layanan IoT Hub gratis, Anda mungkin ingin mengubah tipe dari standard ke free! Jika tidak biarkan semua pada pengaturan default dan lanjutkan dengan menerapkan layanan. Langkah terakhir kami adalah membuat IoT Device. Buka layanan dan cari di panel kiri jendela untuk IoT Edge. Klik pada itu dan buat IoT Edge device baru. Beri perangkat ID, semua pengaturan lainnya dapat dibiarkan pada nilai default.
Klik pada perangkat yang baru dibuat dan catat "Primary Connection String", string ini kita butuhkan pada langkah selanjutnya untuk memprovisi perangkat kita.
Menginstal Azure IoT Edge Runtime
Jalankan perintah di bawah ini berurutan, versi yang terbaru selalu dapat ditemukan di sini.
git clone https://github.com/pxcbe/azure-iot-edge.git
cd azure-iot-edge/install
sudo passwd root
su
chmod +x SetupEdge.sh
./SetupEdge.sh
Langkah berikutnya adalah memprovisi perangkat kita. Memungkinkan untuk melakukan ini secara semi atau bahkan sepenuhnya otomatis. Anda dapat menemukan informasi lebih lanjut tentang itu di sini di infoportal. Ketik perintah berikut di shell Anda dan tempel connection string Anda pada baris 55 dari file yaml.(tutup dengan ctrl +s ctrl +x)
nano /etc/iotedge/config.yaml
Reboot controller agar perubahan berlaku.
reboot
Memverifikasi instalasi
Jalankan perintah berikut sebagai root:
iotedge check --verbose
Jika Anda tidak mendapatkan error kita dapat melanjutkan! Anda mendapatkan error? Periksa repositori GitHub, mungkin ada perbaikan yang tersedia. Jika tidak, silakan buat issue!
Menerapkan Modules
Hanya runtime tidak akan berguna bagi kita. Mari kita mulai menerapkan beberapa modules! Klik "Set modules" dan klik pada runtime settings. Di sini kita perlu mengubah "Hostport" untuk menghindari NGINX server yang berjalan pada PLCnext. Terakhir tambahkan marketplace module bernama "Simulated Temperature Sensor". Tekan "review + create" dan terapkan module ke perangkat PLCnext.
Pengaturan seharusnya terlihat seperti ini:
{
"HostConfig": {
"PortBindings": {
"443/tcp": [
{
"HostPort": "444"
}
],
"5671/tcp": [
{
"HostPort": "5671"
}
],
"8883/tcp": [
{
"HostPort": "8883"
}
]
}
}
}
Memantau Telemetry messages
Untuk memverifikasi apakah pesan masuk. Silakan ikuti prosedur ini untuk menginstal Azure IoT Tools di Visual Studio Code. (Anda perlu sign in ke Azure, jadi pastikan jika Anda menggunakan sertifikat mereka ada di mesin pengembangan Anda juga).
Mengambil data PLCnext ke IoT Hub
Langkah berikutnya adalah membawa data PLCnext Engineer kita ke cloud. Ada beberapa cara untuk melakukan ini. Anda dapat menggunakan Modbus module dan membuat Modbus server dalam proyek PLCnext Anda. Anda dapat menggunakan REST service dan GET requests dengan custom module, atau menemukan satu yang sesuai dengan kebutuhan Anda di Marketplace. Saya akan menjelaskan cara menyiapkan OPC Publisher untuk memulai Anda dengan mempublikasikan data Anda dari OPC UA Server embedded PLCnext.
UPDATE: Sepertinya saat ini ada error dengan OPC Publisher module, silakan coba metode lain untuk saat ini.
Disclaimer: Untuk blog ini kita akan menonaktifkan fitur keamanan PLCnext, jangan gunakan ini dalam produksi!
Nonaktifkan user authentication pada WBM perangkat PLCnext Anda sebelum melanjutkan.
Tambahkan OPCPublisher dari Marketplace dengan cara yang sama seperti yang Anda lakukan dengan "Simulated Temperature sensor". Klik pada module dan pergi ke container create options. Tempel pengaturan berikut di jendela di bawah container create options.
{
"Hostname": "publisher",
"Cmd": [
"publisher",
"--pf=/appdata/publishednodes.json",
"--di=60",
"--to",
"--aa",
"--si=10",
"--ms=262144"
],
"HostConfig": {
"Binds": [
"/iiotedge:/appdata"
],
"PortBindings": {
"62222/tcp": [
{
"HostPort": "62222"
}
]
},
"ExtraHosts": [
"localhost:127.0.0.1"
]
}
} Modifikasi konfigurasi berikut agar cocok dengan node id Anda, buat folder /appdata dan buat file dengan nama "publishednodes.json" yang berisi konfigurasi baru Anda.
[
{
"EndpointUrl": "opc.tcp://192.168.10.10:4840",
"UseSecurity": false,
"OpcNodes": [
{
"Id": "ns=3;s=Counter",
"OpcSamplingInterval": 2000,
"OpcPublishingInterval": 5000
},
{
"Id": "ns=3;s=Sinusoid",
"OpcSamplingInterval": 2000,
"OpcPublishingInterval": 5000
}
]
}
]
Jika semuanya berjalan dengan baik Anda seharusnya melihat data di Azure IoT Tools untuk visual studio!
Masih mengalami masalah?
Anda dapat menggunakan perintah berikut untuk melihat apa yang sedang terjadi.
iotedge logs -f "namemode"
Credits
Terima kasih khusus kepada Oliver Warneke atas karyanya yang dapat saya bangun dan untuk meluangkan waktu untuk membantu saya!
Contact
Menghadapi masalah, atau ingin tahu lebih lanjut? Silakan hubungi axsupport@phoenixcontact.be.
References
https://docs.microsoft.com/en-us/azure/iot-edge/about-iot-edge?view=iotedge-2018-06