Apa itu I-IOT
Setelah diperkenalkannya mesin uap pada 1760, uap digunakan untuk memberi tenaga mulai dari pertanian hingga tekstil. Ini memicu Revolusi Industri Pertama dan era manufaktur mekanik. Pada akhir abad ke-19, listrik, cara-cara baru mengatur pekerjaan dan produksi massal muncul, menandai dimulainya Revolusi Industri Kedua. Pada paruh kedua abad ke-20, pengembangan semikonduktor dan pengenalan pengontrol elektronik memunculkan era otomatisasi dan Revolusi Industri Ketiga. Pada Hanover Fair 2011, Henning Kagermann, Wolf-Dieter Lucas dan Wolfgang Walster menciptakan istilah Industry 4.0 untuk proyek untuk memperbarui sistem produksi Jerman menggunakan teknologi digital terbaru.
Industry 4.0 diharapkan dapat mengimplementasikan hal-hal berikut:
- Kombinasikan produksi dengan teknologi informasi dan komunikasi
- Gabungkan data pelanggan dengan data produksi
- Manfaatkan komunikasi dari mesin ke mesin
- Kelola produksi secara mandiri, fleksibel, dan hemat sumber daya
Pendiri dan presiden World Economic Forum, Klaus Schwab, percaya bahwa kemerdekaan revolusi industri keempat dapat dibenarkan oleh tiga faktor.
- Laju perkembangan. Tidak seperti yang sebelumnya, revolusi industri ini tidak berkembang secara linier, melainkan secara eksponensial. Ini adalah produk dari dunia yang beragam dan sangat saling tergantung di mana kita hidup, serta fakta bahwa teknologi baru itu sendiri mensintesis teknologi yang semakin maju dan efisien.
- . , , , . , ยซยป ยซยป , , ยซยป .
- . , , .
Menurut definisi, IoT adalah kunci untuk pengembangan masa depan industri, termasuk teknologi seperti analitik data besar, komputasi awan, robot, dan yang paling penting, integrasi dan konvergensi antara TI dan manufaktur.
Istilah I-IoT (Industrial internet of Things) mengacu pada subset industri IoT, yang merupakan transformasi digital dari bisnis alami. I-IoT menjadikan bisnis lebih fleksibel, lebih menguntungkan, dapat dipahami, dan menciptakan rantai nilai digital baru.
Rantai produksi tradisional mudah, langkah berurutan seperti pengembangan produk, sumber dan sumber bahan baku, dan pembuatan dan servis produk. Inti dari transformasi digital baru adalah bahwa ekosistem layanan dan model bisnis baru sedang dibuat di sekitar inti digital tertentu, memberikan kualitas baru untuk produksi. Seperti pengurangan biaya antara berbagai tahap persiapan produksi, commissioning dan operasi. Hubungan antara berbagai departemen dan tahapan menjadi lebih cepat, yang memungkinkan untuk bekerja lebih efisien dan lebih kompetitif di pasar.
I-IoT diharapkan dapat menciptakan nilai bisnis yang lebih dan memiliki dampak mendalam pada masyarakat manusia sehingga akan mengantar ke Revolusi Industri Keempat.
Menurut Forbes:
- IoT 157 2016 457 2020 , 28,5%
- , , IoT 2020 , 40 .
IoT I-IoT โ
- , . , , . , .
- , , ; .
- I-IoT , .
- โ , , . I-IoT, , .
- .
- , . , , , .
- . I-IoT .
- , .
CIM (manufaktur terintegrasi komputer) adalah model logika untuk sistem manufaktur yang dikembangkan pada 1990-an untuk mengintegrasikan proses manufaktur, sistem otomasi, dan sistem teknologi informasi di tingkat perusahaan atau perusahaan. CIM tidak boleh dilihat sebagai metode desain untuk membuat pabrik otomatis, tetapi lebih sebagai model referensi untuk implementasi otomasi industri berdasarkan pengumpulan, koordinasi, berbagi, dan transfer data dan informasi antara berbagai sistem dan subsistem melalui aplikasi perangkat lunak dan jaringan komunikasi. CIM sering digambarkan sebagai piramida dengan enam tingkat fungsional seperti yang ditunjukkan pada diagram berikut
Level 1 - Sensor, Transduser, dan Aktuator
Sensor elektronik adalah alat ukur yang lengkap secara struktural yang mampu mengubah satu atau lebih besaran fisik menjadi sinyal listrik untuk transformasi, transmisi, pemrosesan, dan tampilan informasi pengukuran selanjutnya. Aktuator (aktuator) adalah perangkat yang mengubah perintah kontrol menjadi efek fisik pada proses. Bahkan, fungsinya melengkapi sensor. Aktuator menerima sinyal kontrol sebagai input ke sistem kontrol dan mentransmisikan energi sebagai output ke mekanisme.
Level 2 - RTU, mikrokontroler, CNC, PLC, dan DCS
- (Remote terminal unit RTU) โ , . , , . , .
- (Embedded controller), , , . .
- (CNC) โ , . . , - .
- PLC โ , . PLC , , , . , , , . 10 100 .
- DCS umumnya digunakan dalam proses berkelanjutan seperti kilang, pembangkit listrik, atau pabrik kimia. Mereka menggabungkan fungsi kontrol yang diimplementasikan dalam PLC dan fungsi sistem kontrol pengawasan (SCADA). Sementara PLC dan SCADA adalah dua sistem yang terpisah, masing-masing dengan ruang alamat mereka sendiri, di DCS sistem ini menggunakan variabel dan struktur data yang sama.
Level 3 - SCADA, Sejarawan
Sistem SCADA adalah paket perangkat lunak untuk mengumpulkan, memproses, menampilkan, dan mengarsipkan informasi tentang objek pemantauan atau kontrol secara real time. Sistem pengumpulan data (Sejarawan) mengumpulkan informasi waktu-nyata tentang status pengoperasian peralatan. Sistem SCADA mengimplementasikan fungsi-fungsi utama berikut:
- PLC, , RTU , CIM.
- , .
- , , .
- - (HMI).
- HMI PLC.
4 -MES
MES adalah sistem perangkat lunak yang terletak antara ERP dan SCADA atau PLC, yang dirancang untuk mengelola proses produksi perusahaan secara efisien. Fungsi utama MES adalah untuk menyinkronkan manajemen bisnis dan sistem manufaktur dengan menggabungkan level perencanaan dan kontrol untuk mengoptimalkan proses dan sumber daya.
Fitur utama dari sistem MES adalah:
- Manajemen pesanan dan perencanaan produksi
- Manajemen bahan baku yang masuk dan produk setengah jadi
- Manajemen dan pemantauan aset
- Pelacakan produksi
- Manajemen pemeliharaan
- Pemeriksaan kualitas
Level 5 - ERP
ERP mencakup paket perangkat lunak yang digunakan organisasi untuk mengelola kegiatan sehari-hari bisnis mereka, seperti akuntansi, pembelian, manajemen proyek, dan manufaktur. ERP mengintegrasikan dan mendefinisikan serangkaian proses bisnis yang mengatur pertukaran informasi dan data antara sistem yang terlibat. ERP mengumpulkan dan mentransmisikan data transaksi dari berbagai departemen organisasi, sehingga memastikan integritas data dengan bertindak sebagai sumber tunggal.
Jaringan produksi
Sistem produksi terintegrasi membutuhkan berbagai jenis jaringan komunikasi, masing-masing didedikasikan untuk tugas tertentu
- Level 1: fieldbus
- Level 2: jaringan pengontrol
- Level 3, 4, 5: jaringan perusahaan
Jaringan lapangan telah diperkenalkan ke pengontrol antarmuka, sensor, dan aktuator, mengurangi kebutuhan kabel yang rumit. Dalam fieldbus, sensor dan aktuator dilengkapi dengan serangkaian pemrosesan minimum untuk memastikan transfer informasi secara deterministik.
Jaringan pengontrol harus menyediakan komunikasi antara node PLC. Transmisi data harus terjadi pada interval tertentu. Jaringan kontrol dan fieldbus juga sering disebut sebagai jaringan waktu nyata karena waktu pengiriman data dan informasi.
Jaringan perusahaan adalah jaringan yang terletak di antara sistem manajemen dan sistem perencanaan dan manajemen. Lapisan jaringan ini harus menjamin pemrosesan informasi yang rumit, tetapi dalam periode waktu yang lebih singkat. Oleh karena itu, tidak perlu untuk kerangka waktu yang ketat untuk lapisan jaringan ini.
Server OPC
Tidak ada standar komunikasi industri lainnya yang telah menerima penerimaan luas seperti itu di antara banyak industri dan produsen peralatan seperti OPC. Ini digunakan untuk mengintegrasikan berbagai sistem industri dan bisnis. SCADA, sistem keamanan (SIS), pengontrol logika yang dapat diprogram (PLC), dan sistem kontrol terdistribusi (DCS) menggunakan OPC untuk berkomunikasi satu sama lain, serta dengan database Historian, sistem MES dan ERP. Alasan keberhasilan OPC sangat sederhana - ini adalah satu-satunya antarmuka universal yang dapat digunakan untuk berkomunikasi dengan berbagai perangkat dan aplikasi industri, terlepas dari produsen, perangkat lunak, atau protokol yang digunakan dalam sistem kontrol. Setelah munculnya standar OPC, hampir semua SCADA dirancang ulang sebagai klien OPC,dan setiap produsen perangkat keras mulai memasok pengontrol, modul I / O, sensor cerdas, dan aktuator dengan server OPC standar.
OPC classic (Akses data DA)
Pada tahun 1995, berbagai perusahaan memutuskan untuk membuat kelompok kerja untuk menentukan standar interoperabilitas. Perusahaan-perusahaan ini adalah: Fisher Rosemount, Intellution, Intuitive Technology, Opto22, Rockwell, Siemens AG.
Anggota Microsoft juga diundang untuk memberikan dukungan yang diperlukan. Tugas kelompok kerja adalah menentukan standar akses ke informasi di lingkungan Windows berdasarkan pada teknologi modern saat itu. Teknologi yang dikembangkan bernama Object Linking and Embedding (OLE) untuk Kontrol Proses (OPC). Pada Agustus 1996, versi pertama OPC ditentukan.
Diagram berikut menunjukkan berbagai lapisan OPC Classic dengan protokol komunikasi utama - COM, DCOM dan Remote Procedure Call (RPC)
COM adalah arsitektur perangkat lunak yang dikembangkan oleh Microsoft untuk membangun aplikasi komponen. Pada saat itu, ini memungkinkan pemrogram untuk merangkum potongan-potongan kode yang dapat digunakan kembali sedemikian rupa sehingga aplikasi lain dapat menggunakannya tanpa khawatir tentang rincian implementasi mereka. Objek COM dapat diganti dengan versi yang lebih baru tanpa harus menulis ulang aplikasi yang menggunakannya. DCOM adalah versi COM jaringan. DCOM mencoba menyembunyikan dari pengembang perangkat lunak perbedaan antara objek COM yang berjalan di satu komputer dan objek COM yang berjalan jarak jauh di komputer lain. Untuk ini, semua parameter harus dilewati oleh nilai. Ini berarti bahwa ketika memanggil fungsi yang disediakan oleh objek COM, pemanggil harus melewati parameter terkait dengan nilai. Di samping itu,Objek COM akan menanggapi penelepon dengan meneruskan hasilnya dengan nilai juga. Proses mengubah parameter menjadi data yang dikirimkan melalui jaringan disebut marshalling. Setelah marshaling selesai, aliran data diserialisasi, ditransmisikan, dan dikembalikan ke urutan data aslinya di ujung koneksi.
DCOM menggunakan mekanisme RPC untuk mentransfer dan menerima informasi antara komponen COM secara transparan di jaringan yang sama. Mekanisme RPC dikembangkan oleh Microsoft untuk memungkinkan pengembang sistem untuk meminta eksekusi program jarak jauh tanpa harus mengembangkan prosedur khusus untuk server. Program klien mengirim pesan ke server dengan argumen yang tepat, dan server mengembalikan pesan yang berisi hasil dari program yang dieksekusi.
OPC Classic berisi sejumlah batasan:
- hanya tersedia pada sistem operasi keluarga Microsoft Windows;
- koneksi dengan teknologi DCOM, yang kode sumbernya ditutup.
- masalah konfigurasi yang terkait dengan DCOM;
- pesan gangguan komunikasi DCOM yang tidak akurat;
- ketidakmampuan DCOM untuk bertukar data melalui Internet;
- ketidakmampuan DCOM untuk memastikan keamanan informasi.
Model akuisisi data OPC Classic
Tujuan dari standar OPC Classic adalah sebagai berikut:
- Struktur data di sisi server untuk membuatnya lebih mudah untuk mengumpulkan data di sisi klien.
- Tetapkan layanan komunikasi dan mekanisme komunikasi standar
Intinya, standar OPC Classic berfungsi sebagai berikut.
Server mengelola semua data yang tersedia.
Server mengirim permintaan data dari perangkat sesuai permintaan dan memperbarui cache internal secara teratur. Server menginisialisasi dan mengelola cache untuk setiap kelompok variabel yang diminta oleh klien OPC. Laju pemindaian di sisi klien OPC tidak boleh kurang dari laju pemindaian server OPC untuk mengumpulkan data dari perangkat dan memperbarui cache internalnya. Kami menyarankan Anda mengkonfigurasi klien OPC untuk membaca dari cache dan memperbaruinya dua kali lipat dari yang server OPC memindai perangkat. Setiap bagian data yang dipertukarkan memiliki makna sendiri, ditunjukkan oleh cap waktu dan kualitasnya. Pertukaran data termasuk membaca, menulis, dan memperbarui otomatis ketika nilai berubah. Membaca atau polling dilakukan oleh klien OPC, yang secara teratur mengirimkan permintaan untuk data grup.Fase perekaman dapat sinkron atau asinkron. Pembaruan otomatis menggunakan tingkat permintaan yang disediakan oleh klien OPC. Server OPC memeriksa setiap pembaruan untuk melihat apakah nilai absolut dari nilai yang di-cache dikurangi nilai saat ini lebih besar dari zona mati yang ditentukan klien dikalikan dengan rentang yang dikonfigurasi untuk variabel tersebut. Dapat ditulis seperti ini:
if (abs(last_cached_value โ current_value) > (PERCENT_DEAD_BAND/100) * range) {
//cache is updated, and the client is notified through a callback mechanism
}
Informasi dari server OPC diatur ke dalam kelompok item terkait untuk efisiensi. Ada dua jenis grup:
- Grup publik: tersedia untuk klien apa pun
- Grup lokal: hanya tersedia untuk klien yang membuatnya
OPC UA
Respons pertama OPC Foundation terhadap semakin terbatasnya adopsi COM dan DCOM adalah pengembangan OPC XML-DA. Ini mempertahankan karakteristik OPC, tetapi mengadopsi infrastruktur komunikasi yang tidak terkait dengan produsen atau platform perangkat lunak tertentu. Konversi spesifikasi OPC-DA ke versi berbasis layanan web telah terbukti tidak cukup untuk memenuhi kebutuhan perusahaan yang semakin berinteraksi dan berintegrasi dengan dunia korporat dan eksternal.
Untuk informasi tentang arsitektur OPC UA, lihat opcfoundation.org/developer-tools/specifications-unified-architecture .
Oleh karena itu, protokol OPC UA dikembangkan untuk menggantikan semua versi berbasis COM yang ada dan mengatasi masalah keamanan dan kinerja. Standar ini membahas perlunya antarmuka platform-independen dan memungkinkan pembuatan model data yang dapat dikembangkan untuk menggambarkan sistem yang kompleks tanpa kehilangan fungsionalitas. OPC UA didasarkan pada pendekatan berorientasi layanan yang didefinisikan oleh standar IEC 62451. Tujuannya adalah sebagai berikut:
- Menggunakan Komponen OPC pada Platform Non-Windows
- Memungkinkan Anda untuk mengintegrasikan komponen utamanya ke perangkat kecil
- Menerapkan komunikasi standar di seluruh sistem berbasis firewall
Dari sudut pandang teknis, OPC UA berfungsi sebagai berikut:
- API mengisolasi kode klien dan server dari tumpukan OPC UA
- Tumpukan UA mengubah panggilan API ke pesan
- Stack UA menerima pesan dengan mengirimkannya ke klien atau server melalui API
Model informasi OPC UA
Prinsip dasar pemodelan informasi dalam OPC UA:
- Menggunakan metode berorientasi objek termasuk hierarki warisan.
- Mekanisme yang sama digunakan untuk mengakses tipe dan instance.
- Informasi tersedia melalui penggunaan node yang sepenuhnya terhubung dalam jaringan.
- Hirarki tipe data dan tautan antar node dapat diperpanjang.
- Tidak ada batasan tentang cara memodelkan informasi.
- Pemodelan Informasi selalu di-host di sisi server.
Himpunan objek dan informasi terkait yang disediakan server OPC UA untuk klien adalah ruang alamat. Anda dapat menganggap ruang alamat sebagai implementasi dari model informasi OPC UA.
Ruang alamat OPC UA adalah kumpulan node yang dihubungkan oleh tautan. Setiap node memiliki properti yang disebut atribut. Seperangkat atribut tertentu harus ada pada semua node. Hubungan antara node, atribut, dan tautan ditunjukkan pada diagram berikut
Node dapat dimiliki oleh berbagai kelas node, tergantung pada tujuan spesifik mereka. Beberapa node dapat mewakili instance, yang lain dapat mewakili jenis, dan sebagainya. OPC UA memiliki delapan kelas simpul standar: variabel, objek, metode, tampilan, tipe data, tipe variabel, tipe objek, dan tipe referensi. Dalam OPC UA, kelas simpul yang paling penting adalah objek, variabel, dan metode.
Sesi OPC UA
OPC UA menyediakan model komunikasi klien-server yang mencakup informasi negara. Informasi status ini terkait dengan sesi. Sesi didefinisikan sebagai koneksi logis antara klien dan server. Setiap sesi tidak tergantung pada protokol komunikasi yang mendasarinya; masalah pada tingkat protokol tidak secara otomatis mengakhiri sesi. Sesi berakhir setelah permintaan eksplisit dari klien atau karena ketidakaktifan klien. Interval menganggur diatur selama pembuatan sesi.
Model keamanan OPC UA
Model keamanan OPC UA diimplementasikan dengan mendefinisikan saluran aman yang menjadi dasar sesi tersebut. Saluran aman bertukar data sebagai berikut:
- Memastikan integritas data menggunakan tanda tangan digital.
- Memberikan privasi melalui enkripsi.
- Mengotentikasi dan mengotorisasi aplikasi menggunakan sertifikat X.509.
Gambar tersebut memperlihatkan lapisan berikut: lapisan aplikasi, lapisan sesi, dan lapisan transport.
Lapisan aplikasi digunakan untuk mentransfer informasi antara klien dan server yang telah membentuk sesi OPC UA. Sesi OPC UA dibuat di saluran yang aman. Lapisan transport adalah lapisan yang bertanggung jawab untuk mengirim dan menerima data melalui koneksi soket, yang mekanisme penanganan kesalahan diterapkan untuk memastikan bahwa sistem dilindungi dari serangan seperti denial-of-service (DoS).
Pertukaran data OPC UA
Cara termudah untuk bertukar data antara klien OPC UA dan server adalah dengan menggunakan layanan baca dan tulis. Layanan baca dan tulis dioptimalkan untuk mentransfer sekelompok data, daripada sepotong data atau beberapa nilai. Mereka memungkinkan Anda untuk membaca dan menulis nilai atau atribut dari node. Layanan baca memiliki parameter berikut:
maxAge: Ini adalah waktu maksimum yang diperlukan untuk mendapatkan nilai. Ini ditunjukkan oleh klien. Ini memaksa server untuk menghubungi perangkat (seperti sensor) jika salinan dalam cache lebih lama dari parameter maxAge yang dikonfigurasi oleh klien. Jika maxAge diatur ke nol, server harus memberikan nilai saat ini, selalu membacanya langsung dari perangkat.
Jenis stempel waktu: OPC UA menetapkan dua stempel waktu: stempel waktu sumber dan stempel waktu server. Stempel waktu asli adalah stempel waktu yang berasal dari perangkat, dan stempel waktu server adalah stempel waktu yang berasal dari sistem operasi yang dijalankan server OPC UA.
Daftar node dan atribut terlihat seperti ini:
- NodeId
- AttributeId untuk nilai contoh
- DataEncoding: ini memungkinkan klien untuk memilih pengkodean data yang sesuai, dan standarnya adalah XML, biner UA
Fitur protokol OPC
Protokol OPC tidak dapat sepenuhnya disebut gratis. Untuk mengembangkan perangkat lunak menggunakan OPC SDK, Anda harus menjadi anggota OPC Foundation. Namun, sekarang ada implementasi gratis dari perpustakaan klien dan server, misalnya freeopcua.github.io , tetapi mereka belum memiliki implementasi pub / sub.
Dibandingkan dengan protokol lain seperti MQTT, OPC tidak ringan.
PLC pengontrol logika yang dapat diprogram
Istilah PLC (Programmable Logic Controller, PLC) kemudian didefinisikan dalam standar EN 61131 (IEC 61131). PLC adalah sistem kontrol elektronik digital terpadu yang dirancang khusus untuk digunakan dalam lingkungan industri. PLC terus-menerus memonitor keadaan perangkat input dan membuat keputusan berdasarkan program pengguna untuk mengontrol keadaan perangkat output.
Persyaratan untuk PLC:
- Itu harus dapat berfungsi dalam kondisi industri yang keras, seperti suhu ekstrem, kotoran, jaringan catu daya berkualitas rendah.
- Ini harus beroperasi dengan sinyal input dan output terpisah 24VDC atau 240VAC khusus industri, serta sinyal analog (ยฑ 10V, 4-20mA, dll.)
- Bahasa pemrograman harus dipahami oleh insinyur otomasi
- PLC harus terus memantau pengoperasian fasilitas industri
- Sistem operasi harus cukup cepat untuk melakukan siklus pemindaian (20 - 100 ms)
Gambar berikut menunjukkan struktur mode operasi dasar PLC (menggunakan contoh CPU Simatic).
OPC UA dengan SIMATIC S7-1500
Prasyarat - Simatic TIA Portal V13-16 harus diinstal
Untuk mensimulasikan pengontrol dengan server OPC, SIMATIC S7-PLCSIM Advanced versi 2 atau 3 harus diinstal dan dikonfigurasi.
Support.industry.siemens.com/cs/document/109772889/trial -download% 3A-simatic-s7-plcsim-advanced-v3-0? dti = 0 & lc = en-WWSaya telah menginstal simulator versi 3 pada sistem dengan paket TIA Portal V14 SP1 yang ada. Sebelum pemasangan, penginstal memberitahu bahwa PLCSIM V14 tidak kompatibel dengan SIMATIC S7-PLCSIM V3 dan harus dihapus. Saya mengikuti langkah-langkah ini, setelah instalasi ditangguhkan. Sebuah proyek pengujian telah dibuat di Portal TIA dengan CPU 1512C-1 PN. Fitur khusus adalah menjadi tidak mungkin untuk melakukan simulasi menggunakan tombol "Mulai simulasi", tetapi tombol "Dowload ke perangkat" berfungsi ketika PLCSIM Advanced berjalan.
Untuk mengakses simulator melalui jaringan, Anda harus mengaktifkan PLCSIM Virtual Eth. Adaptor, yang pertama-tama Anda harus menginstal perangkat lunak WinPcap. Berikutnya adalah pengaturan Ethernet standar.
Setelah menekan tombol "Start", simulator menjadi aktif dan terlihat di jaringan
Selanjutnya, Anda perlu mengatur kotak centang "Simulasi dukungan selama kompilasi blok" pada tab "Perlindungan" di kotak dialog untuk memanggil menu pintas "Properti" di root proyek
Langkah selanjutnya adalah mengaktifkan server OPC di proyek dan memilih jenis lisensi (Anda dapat mengabaikannya, setelah itu proyek tidak akan dikompilasi)
Lebih lanjut, proses mengunggah perangkat lunak ke PLCSIM Advanced mirip dengan mengunggah ke simulator standar, dengan pengecualian yang dijelaskan sebelumnya.
Dalam proyek uji TIA Portal, DB1 dibuat dengan satu tag "tekanan" dan output digital "Q0.1 Tag_2" ditugaskan.
Untuk terhubung ke server OPC dan memonitor jaringan, simpul dan tag, Anda dapat menggunakan klien OaExpert Oa, yang dapat diunduh dari www.unified-automation.com/products/development-tools/uaexpert.html .
Untuk terhubung ke server OPC, Anda perlu menambahkan koneksi baru dan mendaftarkan Url Endpoint, yang sebelumnya ditetapkan dalam pengaturan proyek server OPC di TIA Portale, dalam kasus saya ini adalah opc.tcp: //192.168.1.113: 4840
Ketika Anda menghubungkan klien OPC ke server simulator, Anda dapat mengamati node dan tag yang dibuat.
Untuk secara terprogram mengimplementasikan interaksi klien dan server OPC, Anda dapat menggunakan implementasi opensource dari perpustakaan di Python github.com/FreeOpcUa/python-opcua , ada juga contoh dengan kode. Sebelum menggunakan, Anda harus menginstal dependensi yang diperlukan:
pip install freeopcua
pip install cryptography
Contoh paling sederhana untuk membuat server OPC dengan tiga tag
from opcua import Server
from random import randint
import datetime
import time
class Opc:
def __init__(self):
self.server = Server()
self.url = "opc.tcp://127.0.0.1:4848"
self.server.set_endpoint(self.url)
self.namespace_uri = "OPCUA_SIMULATION_SERVER"
self.namespace = self.server.register_namespace(self.namespace_uri)
self.root_node = self.server.get_objects_node()
self.parameters = self.root_node.add_object(self.namespace, "Parameters")
def create_variable(self, name, initial=0):
variable = self.parameters.add_variable(self.namespace, name, initial)
variable.set_writable()
return variable
def main():
opc = Opc()
tag_1 = opc.create_variable("Temperature", 25)
tag_2 = opc.create_variable("Pressure")
tag_3 = opc.create_variable("Time")
opc.server.start()
print("Server started at {}".format(opc.url))
while True:
#tag_1.set_value(randint(10, 50))
tag_2.set_value(randint(200, 999))
tag_3.set_value(datetime.datetime.now())
time.sleep(2)
if __name__ == '__main__':
main()
Contoh paling sederhana yang sama dari bagian klien
from opcua import Client
import time
url = "opc.tcp://127.0.0.1:4848"
client = Client(url)
client.connect()
print("Client connected")
Temp = client.get_node("ns=2;i=2")
Temp.set_value(25)
if __name__ == '__main__':
while True:
temperature = Temp.get_value()
print(temperature)
time.sleep(1)
Dimungkinkan juga untuk mengamati koneksi menggunakan klien UaExpert
Konsep I-IoT Edge
Edge adalah penghubung antara lingkungan produksi dan dunia IoT di awan. Edge dapat didekomposisi menjadi tiga komponen makro: Edge Gateway, Edge tools, Edge Computing
Pada 2017, Gartner mengumumkan hal berikut: "Edge akan memakan cloud." Meskipun pernyataan ini mungkin terdengar agak kontroversial, itu menyoroti peran yang telah dimainkan Edge selama bertahun-tahun. Perusahaan industri, setelah fase transisi ke cloud, menyadari bahwa tidak selalu mungkin untuk melakukan semuanya di lokasi yang jauh. Alasan untuk ini adalah sebagai berikut:
- . . , , . .
- : . , , , , 1 50 .
- Latensi jaringan: Kontrol proses lanjutan atau analitik yang terkait dengan perubahan data pada perilaku peralatan profil di jendela waktu kecil menderita latensi jaringan yang tinggi dan variabel. Optimalisasi peralatan diperlukan untuk eksekusi tercepat dalam interval waktu tertentu.
- Koneksi data. Untuk mengoptimalkan alur kerja atau layanan peralatan, diperlukan untuk mengganti komponen tanpa akses ke koneksi Internet.
Edge Gateway
Gateway tepi adalah inti dari perangkat tepi. Tugas utama gateway tepi adalah menyambung ke sumber industri untuk mengumpulkan dan mengirim data ke hub I-IoT menggunakan protokol transmisi seperti MQTT, CoAP, HTTPS atau AMQP.
Komponen terpenting dari gateway tepi adalah adaptor industri dan adaptor IoT. Adaptor industri biasanya berlangganan data dari area Field dan menerbitkannya di bus data. Biasanya, ini mengimplementasikan konektor untuk perangkat yang dipilih, bertindak sebagai sumber dalam aliran data I-IoT dan membuatnya tersedia di bus data Edge. Adaptor IoT, di sisi lain, menerima nilai dari bus data dan mengirimkannya ke IoT Data Hub. Bagian penting dari Gateway Edge adalah komponen Store-and-Forward. Ini adalah mekanisme umum untuk menyimpan data dalam penyimpanan lokal sementara. Ini memberikan ketahanan transmisi data terhadap ketidakstabilan jaringan. Dalam jaringan global, ketidakstabilan dan latensi saluran komunikasi sangat tinggi. Mekanisme penyimpanan dan penerusan dapat sebagai berikut:
- Buffer memori terbatas yang mencakup periode tidak aktif yang singkat
- Area penyimpanan khusus pada disk yang dapat mengakomodasi ketidakaktifan jangka panjang atau lalu lintas data yang sangat besar.
Kisaran jendela waktu di mana transfer data harus dipastikan tergantung pada skenario spesifik dan sumber daya fisik memori tepi dan penyimpanan.
Utilitas konfigurasi (Edge tools)
Alat Edge harus memiliki fitur berikut:
- Kemampuan untuk mengelola dan mengkonfigurasi pengumpulan data dengan mudah baik dari jarak jauh maupun lokal
- Kemungkinan untuk mendaftar untuk perbaikan dan pembaruan
- Kemungkinan tindakan logging
- Kemampuan untuk melihat dan memodifikasi data menggunakan antarmuka pengguna
- Konfigurasi diri dan registrasi mandiri di cloud saat startup
- Kemampuan untuk menerima dan menjalankan perintah dari cloud
Komputasi Tepi
Komputasi tepi memiliki fitur berikut:
- Kemampuan untuk melakukan tindakan menggunakan perangkat lunak I-IoT (middleware), baik offline maupun online.
- Kemungkinan untuk meng-host aplikasi khusus
- Kemampuan menjalankan analitik offline, bersama dengan middleware I-IoT atau jarak jauh.
- Kemampuan untuk melakukan tindakan atau memuat analitik dari middleware I-IoT
- Kemampuan untuk mengirim data tidak terstruktur dan spesifik ke middleware I-IoT sesuai permintaan atau pada startup bersyarat
Implementasi tepi
Vendor cloud dan produsen peralatan asli (OEM) mengembangkan berbagai solusi berdasarkan pada sistem operasi mereka sendiri atau menawarkan kit pengembangan perangkat lunak mandiri (SDK) cloud-independent.
Azure IoT Edge
Azure IoT Edge adalah solusi Microsoft Edge untuk Azure IoT. Platform ini mendukung penyimpanan dan penerusan, Edge Analytics, dan beberapa adaptor untuk mengonversi protokol asli atau standar ke protokol Internet. Azure IoT Edge juga mendukung OPC Server dalam implementasi OPC Classic dan OPC-UA. Tinjauan produk:
- Bekerja dengan perangkat Linux atau Windows yang mendukung subsistem wadah.
- Gratis, open source, runtime berlisensi MIT
- Kontainer yang kompatibel dengan docker dari layanan Azure atau dari Microsoft Cloud frontend. Memungkinkan Anda mengatur dan menyebarkan beban kerja dari cloud dari jarak jauh menggunakan IoT Hub
Rumput hijau
Greengrass adalah generasi IoT Edge berikutnya dari AWS. AWS menyediakan SDK untuk membangun AWS Edge dan memperluas kemampuan cloud ke perangkat edge dengan Greengrass. Ini memungkinkan perangkat untuk mengambil tindakan secara lokal sambil tetap menggunakan cloud untuk manajemen, analitik, dan penyimpanan persisten. Greengrass mendukung OPC UA, dan tidak mendukung OPC Classic. Manfaat:
- Respons peristiwa dekat waktu-nyata
- Bekerja offline
- AWS IoT Greengrass mengotentikasi dan mengenkripsi data perangkat, baik melalui LAN maupun dengan cloud
- Pemrograman perangkat yang disederhanakan dengan dukungan wadah
Android Things
Google menyediakan SDK untuk pengembangan Edge. Ini mensponsori Android sebagai perangkat Edge generasi berikutnya. Fitur platform:
- Pengembangan dengan Android SDK dan Android Studio
- Akses ke perangkat keras seperti tampilan dan kamera melalui platform Android
- Menghubungkan aplikasi ke layanan Google
- Integrasi periferal tambahan melalui API I / O periferal (GPIO, I2C, SPI, UART, PWM)
- Menggunakan Android Things Console untuk Mengirim Pembaruan Melalui Udara dan Pembaruan Keamanan
Node-RED
Ini adalah alat pemrograman visual untuk Internet of Things yang memungkinkan perangkat, API, dan layanan online untuk terhubung satu sama lain. Runtime Node-RED dibangun di atas Node.js dan karenanya memanfaatkan sebagian besar modelnya yang digerakkan oleh peristiwa, non-pemblokiran. Node-RED adalah alat pemrograman streaming yang awalnya dikembangkan oleh tim Layanan Teknologi IBM Emerging dan saat ini bagian dari JS Foundation.
Fitur:
- Buat logika program langsung di browser
- Runtime Node-RED dibangun di atas Node.js
- Streaming (unit logis) yang dibuat dalam Node-RED disimpan ke file JSON yang dapat dengan mudah diekspor dan diimpor
- Menjalankan dimungkinkan pada perangkat apa pun yang mendukung node.js
- Sejumlah besar ekstensi
Intel IoT Gateway
Fitur:
- Konektivitas cloud dan perusahaan.
- Dapat dihubungkan ke sensor dan pengontrol yang ada.
- Pra-filtering data yang dipilih untuk pengiriman.
- Pengambilan keputusan lokal untuk memastikan konektivitas mudah ke sistem warisan.
- Enkripsi data perangkat keras dan penguncian perangkat lunak.
- Komputasi dan analitik lokal pada perangkat.
Flogo iot
Project Flogo adalah ekosistem berbasis Go sumber ringan dan terbuka untuk membangun aplikasi yang digerakkan oleh peristiwa. Pemicu dan tindakan digunakan untuk memproses acara yang masuk. Antarmuka interaksi menyediakan kemampuan utama seperti integrasi aplikasi, pemrosesan aliran, dll.
- Aliran Integrasi Mesin aplikasi dengan percabangan bersyarat dan lingkungan pengembangan visual
- Streaming adalah tindakan pemrosesan aliran berbasis pipa yang sederhana dengan kemampuan untuk menggabungkan peristiwa di beberapa pemicu dan agregat di seluruh jendela waktu.
- Aturan deklaratif untuk keputusan kontekstual real-time
- Pola Microgateway untuk perutean bersyarat berbasis konten, validasi JWT, pembatasan tingkat, pemutusan sirkuit, dan banyak lagi
Eclipse kura
Eclipse Kura adalah open source, IoT Edge Framework yang dapat dikembangkan berdasarkan Java / OSGi. Kura menawarkan akses API ke antarmuka perangkat keras gateway IoT (port serial, GPS, pengawas waktu, GPIO, I2C, dll.). Ini mencakup protokol lapangan yang siap digunakan (termasuk Modbus, OPC-UA, S7), wadah aplikasi dan pemrograman visual berbasis web untuk akuisisi data, pemrosesan, dan penerbitan ke platform cloud.
EdgeX Foundry
EdgeX FoundryTM adalah proyek open source netral-vendor yang didukung oleh Linux Foundation yang menciptakan lingkungan terbuka bersama untuk komputasi IoT edge. Inti dari proyek ini adalah infrastruktur interoperabilitas yang dihosting pada platform perangkat lunak referensi independen OS lengkap untuk menciptakan ekosistem plug-and-play yang menyatukan pasar dan mempercepat penyebaran solusi IoT.
Pilihan konektivitas tepi untuk sumber data industri
- Tepi pada fieldbus
- Tepi pada OPC DCOM
- Tepi pada Proksi OPC
- Tepi pada OPC UA
- OPC UA pada pengontrol
Tepi pada OPC UA dan pada pengontrol
Menghubungkan ke server OPC UA adalah skenario yang lebih disukai karena memaksimalkan kemampuan OPC UA. Koneksi ke server OPC dapat digunakan dalam dua cara berbeda. Dalam kasus pertama, Edge terhubung ke server OPC UA melalui antarmuka klien OPC UA-nya. Sumber data dapat berupa: PLC, DCS, SCADA, atau Sejarawan.
Dalam kasus kedua, Edge terhubung ke server OPC yang dipasang langsung pada PLC, seperti yang sebelumnya dibahas dengan CPU 1500 Simatic.
Protokol MQTT
Pub / sub adalah cara untuk memisahkan klien yang mengirim pesan dari klien lain yang menerima pesan. Tidak seperti model client-server, klien tidak mengetahui adanya pengidentifikasi fisik seperti alamat IP atau port. MQTT adalah arsitektur pub / sub, bukan antrian pesan. Antrian pesan, pada dasarnya, menyimpan pesan, sedangkan MQTT tidak. Dalam MQTT, jika tidak ada yang berlangganan (atau mendengarkan) suatu topik, itu hanya diabaikan dan hilang.
Klien yang mengirim pesan disebut penerbit; klien yang menerima pesan disebut pelanggan. Di pusat adalah broker MQTT, yang bertanggung jawab untuk menghubungkan klien dan memfilter data. Filter semacam itu menyediakan:
- pemfilteran menurut topik - menurut desain, pelanggan berlangganan topik dan cabang topik tertentu dan tidak menerima lebih banyak data daripada yang mereka inginkan. Setiap pesan yang diposting harus mengandung subjek dan broker bertanggung jawab untuk mengirimkan kembali pesan ini kepada pelanggan atau mengabaikannya;
- pemfilteran konten - broker memiliki kemampuan untuk memeriksa dan memfilter data yang dipublikasikan. Dengan demikian, setiap data yang tidak dienkripsi dapat dikelola oleh broker sebelum disimpan atau ditransfer ke klien lain;
- pemfilteran menurut jenis - klien yang mendengarkan aliran data yang dilangganinya juga dapat menerapkan filternya sendiri. Data yang masuk dapat dianalisis, dan tergantung pada ini, aliran data diproses lebih lanjut atau diabaikan.
Ada tiga tingkat kualitas layanan di MQTT:
- QoS-0 ( ) โ QoS. ยซ ยป, . ;
- QoS-1 ( ) โ . , PUBACK;
- QoS-2 ( ) โ QoS, , . - . QoS-2, PUBREC. , PUBREL. PUBREL . PUBREL PUBCOMP. PUBCOMP , .
Saat ini, ada dua versi spesifikasi protokol MQTT: 3.1.1 dan 5.0 . Deskripsi protokol yang lebih terperinci dapat ditemukan di sini atau rekaman presentasi saya github.com/vladipirogov/Message-Queue-Telemetry-Transport , www.youtube.com/watch?v=fYoGubQFz5c&t=5s dan www.youtube.com/watch?v=8mupuCjedlc .
Pada artikel berikutnya saya akan mencoba untuk menunjukkan contoh implementasi platform kustom Edge I-IoT menggunakan Node-red sebagai Edge Gateway, Apache Kafka sebagai pengelola data dan penyimpanan sementara, Kafka Streaming sebagai Engine Aturan, Mosquitto (implementasi lain dimungkinkan) sebagai konektor MQTT ... Teknologi InfluxData akan digunakan untuk menyimpan data deret waktu.
Tautan ke video pertemuan itu.
Sumber informasi
- Platform transformasi digital
- Spesifikasi Arsitektur Terpadu OPC
- Ensiklopedia ACS TP
- FreeOpcUa adalah proyek untuk mengimplementasikan stack OPC-UA open-source (LGPL) dan alat terkait.
- GR Kanagachidambaresan Internet of Things for Industry 4.0
- Agen Cerdas Max Hoffmann untuk Industri 4.0
- Wolfgang Mahnke OPC Arsitektur Terpadu
- Klaus Schwab Revolusi Industri Keempat
- Perry Lee Internet of Things Architecture
- Ismail Butun Industrial IoT
- Spesifikasi MQTT