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

Menggunakan pengontrol PLCnext sebagai perangkat rumah pintar melalui Asisten Rumah

Proyek demo kecil ini menunjukkan cara mudah menggunakan pengontrol PLCnext sebagai perangkat rumah pintar dalam perangkat lunak otomasi rumah sumber terbuka Home Assistant melalui REST API dan Modbus TCP. Dengan pengontrol PLCnext Anda dapat menggunakan komponen Axioline dalam otomatisasi Anda untuk menambahkan Output yang lebih kuat dengan mudah daripada Pin GPIO dari Raspberry Pi, sensor suhu seperti Pt100 dan sistem bus seperti DALI. Yang Anda butuhkan hanyalah instalasi Asisten Rumah yang berfungsi dan pengontrol PLC berikutnya dengan proyek PLC berikutnya yang kecil namun dapat dijalankan.

Prasyarat

Perpustakaan:

Layanan Asisten Rumah:

Deskripsi Fungsionalitas

Untuk memberikan gambaran singkat tentang kemungkinan menggunakan PLCnext Controller sebagai perangkat rumah pintar, ada proyek PLCnext yang dapat menyetel ulang perangkat lain dengan mengontrol tegangan suplainya dengan relai. Reset dipicu oleh perintah yang dikirim ke Bot Telegram, sebelum email dikirim dengan informasi bahwa restart dimulai. Contoh ini akan ditampilkan dengan dua cara berbeda untuk menghubungkan pengontrol PLCnext ke lingkungan Home Assistant.

Arsitektur

Koneksi melalui Modbus TCP

Dimulai dengan koneksi Modbus TCP, server Modbus ditambahkan ke proyek PLCnext dengan menggunakan ibrary Modbus TCPl. Konfigurasinya sama seperti pada contoh library. Memilih register Modbus yang tepat tergantung pada jenis data dan cara penggunaannya. Dalam hal ini variabel dipetakan ke register koil.

Harap perhatikan fakta, bahwa server Modbus tidak mendukung lebih dari satu koneksi pada saat itu. Jadi jika koneksi tidak diakhiri dengan benar, yang sayangnya terkadang terjadi saat menguji koneksi, server akan mengalami error dan harus direstart secara manual. Untuk menghindari hal ini, disarankan untuk memprogram restart otomatis server Modbus di proyek PLCnext.

Untuk klien Modbus ada dua kemungkinan utama di Home Assistant dan Anda bebas memilih favorit Anda. Yang pertama adalah menggunakan add-on Node-RED dan salah satu library Modbus yang tersedia di sana. Yang lebih intuitif adalah mengonfigurasi entitas di configuration.yaml lingkungan Asisten Rumah Anda (informasi lebih lanjut). Seperti yang ditunjukkan di bawah ini, layanan sakelar standar digunakan, yang merupakan cara umum untuk bekerja dengan variabel boolean, karena telah menerapkan fungsi turn_on/turn_off untuk menyetel atau menyetel ulang variabel.

modbus: 
    type: tcp           # using Modbus TCP 
    host: YOUR_SERVER_IP    # fill the server ip address  
    port: 502 
    name: hub1          # could be changed  
switch: 
  - platform: modbus 
    coils: 
      - name: restartMB     # could be changed 
        hub: hub1 
        slave: 1 
        coil: 13            # the register position of the variable 

Jika Anda memilih kemungkinan Node-RED, perhatikan fakta bahwa ini biasanya memulai koneksi yang berbeda untuk membaca dan menulis dengan Modbus TCP, sehingga server Modbus mengalami kesalahan seperti yang disebutkan di atas. Untuk menghindari hal ini, Anda dapat menggunakan Modbus UDP atau dua server Modbus di proyek PLCnext Anda, satu untuk membaca dan satu lagi untuk menulis.

Koneksi melalui REST API

Kemungkinan kedua untuk koneksi adalah antarmuka data PLCnext REST. Antarmuka ini terkait dengan PLCnext HMI, sehingga perlu memiliki setidaknya satu halaman HMI di proyek PLCnext Anda, meskipun kosong, agar REST API tersedia. Selanjutnya, variabel harus ditandatangani dengan bendera HMI. Untuk informasi lebih detail, silakan lihat di Pusat Info PLCnext.

Dalam hal ini add-on Node-RED digunakan untuk menghasilkan permintaan HTTP di sisi Home Assistant. Instalasi add-on dilakukan dengan mengikuti petunjuk ini dan ini. Pastikan Anda telah melakukan kedua langkah tersebut sebelum melanjutkan.

Jika otentikasi pengguna HMI di proyek PLCnext diaktifkan, otentikasi di Node-RED akan terlihat seperti ini:

Alur menjalankan otentikasi dan menyimpan token akses untuk digunakan dalam permintaan selanjutnya. Untuk struktur yang tepat dari permintaan HTTP, harap periksa juga dokumentasi di Pusat Info PLCnext.

Untuk mendapatkan akses ke data lingkungan Asisten Rumah Anda di Node-RED, ada beberapa node yang datang dengan add-on Node-RED. Alur pendek di bagian bawah gambar berikut membuat entitas baru di Asisten Rumah dan di alur di atas entitas ini diperiksa untuk perubahan. Jika entitas disetel ke true, variabel di pengontrol PLCnext juga disetel ke true dan memicu reset. Karena variabel restart dalam proyek PLCnext secara otomatis disetel ke false setelah reset, entitas di Home Assistant juga disetel ke false setelah penundaan selama 5 detik.

Telegram Keduanya

Untuk berkomunikasi dengan Home Assistant, Telegram Bot API digunakan. Untuk menggunakan ini bot baru harus didaftarkan dengan mengikuti instruksi ini.

telegram_bot:
  - platform: polling
    api_key: YOUR_API_TOKEN
    allowed_chat_ids:
      - YOUR_CHAT_ID_1
      - YOUR_CHAT_ID_2 

Cara termudah untuk menemukan id obrolan Anda adalah dengan menulis pesan kepada bot Anda dan kemudian memulai permintaan http:

https://api.telegram.org/botYOUR_API_TOKEN/getUpdates

Contoh yang berguna untuk Telegram Bot mungkin, yang memberi tahu Anda setiap pagi tentang kondisi cuaca hari ini, sehingga Anda memiliki indikasi apa yang harus Anda kenakan hari ini. Dalam proyek ini ia mendapat tugas lain, untuk mengatur ulang PLC (tekan tombol di register Modbus) dengan perintah di Telegram. Perintah “/MBrestartPLC” dikirim ke bot dan memulai skrip otomatisasi di Home Assistant, yang akhirnya mengubah nilai register koil Modbus dan “/RESTrestartPLC” melakukan hal yang sama dengan menggunakan REST API.

SMTP

Di Home Assistant, Simple Mail Transfer Protocol (SMTP) dapat digunakan untuk mengirim email dengan pilihan data yang tersedia di otomatisasi rumah Anda. Layanan dapat diimplementasikan dengan menambahkan kode berikut ke configuration.yaml :

notify:
  - name: SMTP_MESSENGER # could be changed
    platform: smtp
    server: SMTP_SERVER # e.g. smtp.gmail.com
    port: 587
    timeout: 15
    sender: YOUR_EMAIL_ADRESS
    encryption: starttls
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    recipient:
      - EMAIL_ADRESS_OF_THE_RECIPIENT
    sender_name: My Home Assistant # could be changed 

Klik di sini untuk mendapatkan informasi lebih lanjut tentang layanan SMTP di Home Assistant.

Otomasi

Jika semua layanan dan perpustakaan diimplementasikan dan disiapkan, mereka harus digabungkan. Ini dilakukan oleh otomatisasi yang diprogram dalam automations.yaml dari lingkungan Asisten Rumah. Struktur otomatisasi sangat sederhana seperti yang ditunjukkan pada tabel di bawah ini. Alias ​​hanyalah nama untuk otomatisasi di Home Assistant. Pemicu adalah kondisi yang harus benar untuk menjalankan otomatisasi, seperti perintah telegram tertentu seperti yang digunakan dalam kasus ini, dan tindakan adalah tugas, seperti dalam kasus ini menyetel variabel ke true dan mengirim email.

Modbus TCP API REST
- id: '1' alias: 'Trigger a reset of a controller via modbus' trigger: platform: event event_type: telegram_command event_data: command: '/MBrestartPLC' action: - service: switch.turn_on entity_id: switch.restartMB - service: notify.SMTP_MESSENGER data: title: 'PLC message' message: 'PLC restart initiated via modbus!' - id: '2' alias: 'Trigger a reset of a controller via rest api' trigger: platform: event event_type: telegram_command event_data: command: '/RESTrestartPLC' action: - service: switch.turn_on entity_id: switch.restartREST - service: notify.SMTP_MESSENGER data: title: 'PLC message' message: 'PLC restart initiated via rest!'

Kesimpulan

Proyek demo kecil ini membuktikan, bahwa cukup sederhana untuk mengintegrasikan pengontrol PLCnext dalam otomatisasi rumah. Ketersediaan semua data PLC di Home Assistant membuka jalan bagi aplikasi yang jauh lebih canggih daripada contoh ini. Pikirkan tentang program PLC yang lebih kompleks yang dapat dikontrol dan dipantau bergantung pada cuaca atau data lain yang tersedia di Home Assistant.


Teknologi Industri

  1. Pengelolaan perangkat:Mengikuti jutaan smart meter
  2. Aplikasi Otomasi Rumah
  3. Menggunakan gateway IIoT open source untuk mempercepat integrasi perangkat Modbus
  4. 433MHz Smart Home Controller dengan Sensorflare dan RaspberryPi
  5. Kesenjangan keterampilan rumah pintar
  6. Keuntungan Menggunakan VIA di Pad
  7. Menggunakan Mesin CNC Terjangkau untuk Memotong Logam di Rumah
  8. GRPC jarak jauh menggunakan grpcurl
  9. Mengelola perangkat Kontrol PLCnext melalui SNMP
  10. Menginstal manajer paket apt(-get) di PLCnext