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

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Halo semuanya,

Dalam tulisan blog ini kita akan menjelajahi tipe data sederhana dan kompleks dalam C++ dan PLCnext Engineer. Ini akan berisi dua bagian yang berbeda, latihan sederhana dan kompleks.

Tutorial ini mengasumsikan Anda memiliki beberapa pengalaman dengan C++ dan PLCnext Engineer.

mulai

Pertama Anda akan membutuhkan alat yang tepat untuk pekerjaan, editor C++, perangkat lunak PLCnext Engineer dan Phoenix Contact PLC untuk menjalankan ini. Ini adalah bahan yang saya gunakan:

Saya pribadi memilih Visual Studio sebagai editor C++ saya, Tapi eclipse juga dapat digunakan. Tautan ke Tutorials dapat ditemukan di sini:

Seperti yang Anda ketahui, PLCnext Engineer dapat ditemukan di situs web kami.

Latihan sederhana

Untuk contoh pertama ini kita akan membuat aplikasi kecil yang memeriksa apakah angka yang benar dikirim dari PLC. Pertama buat proyek C++ baru. Kemudian kita pergi ke file header, nama seharusnya terlihat seperti [NameOfTheProject].hpp, ada juga file dengan nama [nameOfTheProject]component.hpp yang tidak akan kita gunakan. Setelah Anda berada di file header akan ada dinding kode di depan Anda tetapi jangan khawatir itu akan sederhana. Pertama-tama, kita akan mendefinisikan port, satu IN dan satu OUT. Mereka dapat didefinisikan seperti ini, ingat ini hanya untuk tipe data sederhana:  

//#port     
//#attributes(input)
//#name(InputTest)
int64 InputTest = 0;


//#port
//#attributes(Output)
//#name(outputTest)
int64 OutputTest = 0;

Kemudian kita pindah ke file berikutnya tempat kita akan melakukan coding aktual. Ini harus bernama [NameOfTheProject].cpp dan seharusnya tidak berisi banyak. Kita akan mengubahnya segera. Mari kita tambahkan beberapa kode untuk memeriksa angka baik dengan menggunakan If's atau switch case, terserah Anda. Saya menggunakan struktur if di sini:

void PLMProjectReadInputProgram::Execute()void PLMProjectReadInputProgram::Execute(){
        if (InputTest == 1) {
            OutputTest = 15;}


        if (InputTest == 2) {
            OutputTest = 150;}


        if (InputTest == 3) {
            OutputTest = 1500;}


        if (InputTest == 4) {
            OutputTest = 15000;}

}

Sebelum kita pergi ke PLCnext engineer kita perlu membuat proyek C++ ini menjadi library untuk PLC agar dapat dipahami. Ini dilakukan dengan hanya mengklik build di bagian atas layar. Ini akan berjalan beberapa saat dan akan memberi tahu Anda ketika library selesai. Jika langkah ini tidak jelas, saya sangat menyarankan Anda untuk memeriksa tutorial yang tercantum di atas.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Navigasikan ke program utama di tab components di bawah programming di folder 'Local' kemudian pilih variabel di dalam layar utama untuk melihat variabel di PLC. Di sini kita dapat memilih nama dan tipe data serta penggunaan. Tipe data di PLCnext engineer perlu sama dengan di program C++ dan tautan ke berbagai tipe dan samakannya dapat ditemukan di sini. Penggunaan akan menentukan apakah Variabel lokal atau dapat digunakan untuk mengirim dan menerima data dari program atau variabel luar.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Setelah melakukan ini kita akan mulai menghubungkan variabel setelah kita menambahkan library baru. Ini dapat dilakukan seperti ini:

Library yang Anda buat dapat ditemukan di dalam folder bin dari proyek Anda, salin ini ke folder libraries untuk PLCnext engineer. Lokasi terlihat seperti ini:

C:\Users\Public\Documents\PLCnext Engineer\Libraries

Setelah itu kita kembali ke PLCnext engineer untuk menambahkan library ke program kita. Kita akan navigasikan ke tab components, membuka kotak libraries dan klik kanan libraries. Kemudian klik 'add user library' ini akan membawa Anda ke folder libraries yang kita kunjungi sebelumnya. Pilih library yang ingin Anda gunakan dan lanjutkan.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Setelah ini selesai, kita perlu menambahkan program ke tugas yang dilakukan sebagai berikut. Di sisi kiri layar di dalam area plant klik dua kali pada PLCnext. Itu seharusnya terbuka di tengah. Kemudian pergi ke tab 'tasks and events' dan tambahkan program baru setelah MainInstance. Ini dapat dilakukan dengan dua cara, baik dengan memilih jenis program atau menariknya dari area components di bawah 'PLCnext Components & Programs'.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Kemudian variabel seharusnya muncul di tab 'Port list' yang berada di samping tab 'tasks and events'. Buka ini untuk disambut oleh semua variabel Anda dari C++ dan PLCnext. Itu seharusnya terlihat seperti ini:

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

 Jika Anda melakukan semuanya dengan benar Anda seharusnya dapat menghubungkan port OUT dari PLC Anda ke port IN dari program C++, sebaliknya juga mungkin, dan seharusnya terlihat seperti ini. Jika ini tidak bekerja coba periksa tipe data Anda.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Untuk menambahkan nilai dummy ke variabel kita mari kita navigasikan ke program utama di tab components kemudian pilih code di dalam layar utama untuk melihat kode dan menambahkan beberapa kode kita sendiri. Kita hanya akan mengatur variabel yang keluar ke nilai numerik, dalam kasus ini 1.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Sekarang mari kita terapkan proyek ke plc dan kita seharusnya mendapatkan 15 sebagai respons dari kode C++. Anda dapat melihat variabel di 'Ports List' dari sebelumnya.

Latihan kompleks

Untuk contoh ini, kita akan membuat aplikasi kecil yang akan mengirim array structs ke dan dari PLC. Pertama buat proyek C++ baru. Kemudian kita pergi ke file header, nama seharusnya terlihat seperti [NameOfTheProject].hpp, ada juga file dengan nama [nameOfTheProject]component.hpp yang tidak akan kita gunakan. Setelah Anda berada di file header akan ada dinding kode di depan Anda tetapi jangan khawatir itu akan sederhana. Pertama-tama, kita perlu membuat struct untuk contoh ini kita akan membuat struct untuk mobil. Ini dilakukan sebagai berikut:

public: // typedefs   
    struct StrCar{    
        StaticString<80> sbrand;       
        int16 iHorsepower;       
        int16 iYear;       
        boolean xInsured;
    };

!PENTING! Nama dan tipe dalam C++ dan PLCnext engineer perlu sama! Tipe data dapat ditemukan di sini.

Kemudian kita akan mendefinisikan port, satu IN dan satu OUT karena mereka akan menjadi daftar data buatlah sebagai demikian. Penting juga adalah untuk membuatnya sebagai daftar 'mobil'. Ini dilakukan seperti ini:

//#port    
//#attributes(Input)       
//#name(CarIn)       
StrCar CarToC[2];

//#port       
//#attributes(Output)       
//#name(CarOut)       
StrCar CarFromC[2];

Kemudian kita pindah ke file berikutnya tempat kita akan melakukan coding aktual. Ini harus bernama [NameOfTheProject].cpp dan seharusnya tidak berisi banyak. Kita akan mengubahnya segera. Di sini kita akan mengubah nilai dari mobil satu dan mobil dua.

//Set the first member of the car list equal to the car from the PLC
CarFromC[0].sbrand = CarToC[1].sbrand;
CarFromC[0].iHorsepower = CarToC[1].iHorsepower;
CarFromC[0].iYear = CarToC[1].iYear;
CarFromC[0].xInsured = CarToC[1].xInsured;

//Add dummy values to the second member
CarFromC[1].sbrand = CarToC[0].sbrand;
CarFromC[1].iHorsepower = CarToC[0].iHorsepower;
CarFromC[1].iYear = CarToC[0].iYear;
CarFromC[1].xInsured = CarToC[0].xInsured;

Sebelum kita pergi ke PLCnext engineer kita perlu membuat proyek C++ ini menjadi library untuk PLC agar dapat dipahami. Ini dilakukan dengan hanya mengklik build di bagian atas layar. Ini akan berjalan beberapa saat dan akan memberi tahu Anda ketika library selesai. Jika langkah ini tidak jelas, saya sangat menyarankan Anda untuk memeriksa tutorial yang tercantum di atas.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Sekarang sebelum kita dapat mulai membuat variabel di PLCnext engineer kita perlu membuat tipe data kita sendiri, dalam hal ini struct mobil dan daftar mobil. Untuk ini kita memerlukan file tipe data dan dapat ditemukan dan dibuat di sini:

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Buka file ini jika belum, kemudian kita dapat mulai membuat struct kita sendiri seperti berikut:

TYPE

    StrCar:

    STRUCT

        sBrand: STRING;
        iHorsepower: INT;
        iYear: int;
        xInsured: BOOL;

    END_STRUCT        

END_TYPE

!PENTING! Nama dan tipe dalam C++ dan PLCnext engineer perlu sama! Tipe data dapat ditemukan di sini.

Setelah membuat struct kita perlu membuat array dari tipe ini dan dilakukan seperti ini dan dalam file yang sama tempat kita berada saat ini:

TYPE

    carList: ARRAY[0..1] OF StrCar;

END_TYPE

Untuk membuat variabel dengan tipe 'carList' navigasikan ke program utama di tab components di bawah 'programming' kemudian di dalam folder 'Programs' kemudian pilih variabel di dalam layar utama untuk melihat variabel di PLC. Di sini kita dapat memilih nama dan tipe data serta penggunaan. Sebagai tipe data pilih yang kami buat sendiri:

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Setelah melakukan ini kita akan mulai menghubungkan variabel setelah kita menambahkan library baru. Ini dapat dilakukan seperti ini:

Library yang Anda buat dapat ditemukan di dalam folder bin dari proyek Anda, salin ini ke folder libraries untuk PLCnext engineer. Lokasi terlihat seperti ini:

C:\Users\Public\Documents\PLCnext Engineer\Libraries

Setelah itu kita kembali ke PLCnext engineer untuk menambahkan library ke program kita. Kita akan navigasikan ke tab components, membuka kotak libraries dan klik kanan libraries. Kemudian klik 'add user library' ini akan membawa Anda ke folder libraries yang kita kunjungi sebelumnya. Pilih library yang ingin Anda gunakan dan lanjutkan.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Setelah ini selesai, kita perlu menambahkan program ke tugas yang dilakukan sebagai berikut. Di sisi kiri layar di dalam area plant klik dua kali pada PLCnext. Itu seharusnya terbuka di tengah. Kemudian pergi ke tab 'tasks and events' dan tambahkan program baru setelah MainInstance. Ini dapat dilakukan dengan dua cara, baik dengan memilih jenis program atau menariknya dari area components di bawah 'PLCnext Components & Programs'.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Kemudian variabel seharusnya muncul di tab 'Port list' yang berada di samping tab 'tasks and events'. Buka ini untuk disambut oleh semua variabel Anda dari C++ dan PLCnext. Itu seharusnya terlihat seperti ini.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

 Jika Anda melakukan semuanya dengan benar Anda seharusnya dapat menghubungkan port OUT dari PLC Anda ke port IN dari program C++, sebaliknya juga mungkin, dan seharusnya terlihat seperti ini. Jika ini tidak bekerja periksa tipe data dan nama variabel Anda.

Menguasai Tipe Data Sederhana dan Kompleks dalam C++ dengan PLCnext Engineer

Untuk menambahkan nilai dummy ke variabel kita mari kita navigasikan ke program utama di tab components kemudian pilih code di dalam layar utama untuk melihat kode dan menambahkan beberapa kode kita sendiri. Kita hanya akan mengatur variabel yang keluar ke beberapa spesifikasi mobil. Ini dapat dipilih secara acak tetapi akan perlu cocok dengan tipe data. (tergantung pada apa yang Anda pilih, gunakan string di tempat Anda menggunakan string dll.)

CarToC[0].sBrand := 'Audi';
CarToC[0].iHorsepower := 200;
CarToC[0].iYear := 2020;
CarToC[0].xInsured := TRUE;

CarToC[1].sBrand := 'Mazda';
CarToC[1].iHorsepower := 120;
CarToC[1].iYear := 2001;
CarToC[1].xInsured := FALSE;

Setelah kita menerapkan contoh ini daftar yang keluar harus ditukar dalam daftar yang masuk. Anda dapat melihat variabel di 'Ports List' dari sebelumnya.


Teknologi Industri

  1. Memperluas Horison Cloud: Zona Baru, Kontainer, dan Strategi Multicloud
  2. Analisis Lanjutan Sirkuit DC Reaktif dengan Kondisi Awal Non-Nol
  3. Dasar-Dasar C#: Esensial Input dan Output
  4. Kelas & Objek C++: Panduan Praktis Pemrograman Berorientasi Objek
  5. Struktur vs Kelas C++: Panduan Praktis untuk Pengembang Terintegrasi
  6. Panduan Lengkap Tanggal dan Waktu dalam C++
  7. Penulisan Prosedur Digital: Sederhana, Efisien, dan Terpercaya
  8. Akses gRPC Jarak Jauh Aman dengan grpcurl pada Perangkat PLCnext
  9. Mengembangkan Aplikasi Konsol PLCnext Menggunakan C#: Panduan untuk Pemula
  10. Menginstal Manajer Paket APT pada PLCnext Linux: Panduan Langkah demi Langkah