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

Menggunakan tipe data sederhana dan kompleks di C++

Halo semuanya,

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

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

mulai

Pertama, Anda memerlukan alat yang tepat untuk pekerjaan itu, editor C++, perangkat lunak PLCnext Engineer, dan Phoenix Contact PLC untuk menjalankannya. Ini adalah bahan yang saya gunakan:

Saya pribadi telah memilih Visual Studio sebagai editor C++ saya, Tetapi Eclipse juga dapat digunakan. Tautan ke Tutorial dapat ditemukan di sini:

Untuk PLCnext Engineer, ini dapat ditemukan di situs web kami.

Latihan sederhana

Untuk contoh pertama ini kita akan membuat aplikasi kecil yang memeriksa apakah nomor yang dikirim benar dari PLC. Pertama buat proyek C++ baru. Kemudian kita menuju ke file header, namanya akan terlihat seperti ini [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 sebelum Anda tapi jangan khawatir itu akan sederhana. Pertama, kita akan mendefinisikan port, satu IN dan satu OUT. Mereka dapat didefinisikan seperti ini, perlu diingat ini hanya untuk tipe data sederhana:

//#port
//#atribut(masukan)
//#nama(Uji Masukan)
int64 InputTest =0;


//#port
//#atribut(Keluaran)
//#nama(Uji keluaran)
int64 OutputTest =0;

Kemudian kita pindah ke file berikutnya di mana kita akan melakukan pengkodean yang sebenarnya. Ini harus diberi nama [NameOfTheProject].cpp dan tidak boleh mengandung banyak. Kami akan segera mengubahnya. Mari kita tambahkan beberapa kode untuk memeriksa nomor baik dengan menggunakan if atau switch case, itu terserah Anda. Saya telah menggunakan struktur if yang satu ini:

batalkan 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 menuju ke insinyur PLCnext, kita perlu membuat proyek C++ ini menjadi perpustakaan untuk dipahami oleh PLC. Ini dilakukan hanya dengan mengklik build di bagian atas layar. Ini akan berjalan sebentar dan akan memberi tahu Anda ketika perpustakaan selesai. Jika langkah ini tidak jelas, saya sangat menyarankan Anda untuk memeriksa tutorial yang tercantum di atas.

Arahkan ke program utama di tab komponen di bawah pemrograman di folder 'Lokal' lalu pilih variabel di dalam layar utama untuk melihat variabel di PLC. Di sini kita dapat memilih nama dan tipe data dan penggunaannya. Tipe data di PLCnext engineer harus sama seperti di program C++, tautan ke tipe yang berbeda dan persamaannya dapat ditemukan di sini. Penggunaan akan menentukan apakah Variabel bersifat lokal atau dapat digunakan untuk mengirim dan menerima data dari program atau variabel luar.

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

Pustaka yang Anda buat dapat ditemukan di dalam folder bin proyek Anda, salin ini ke folder pustaka untuk insinyur PLCnext. Lokasinya terlihat seperti ini:

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

Setelah itu kami kembali ke insinyur PLCnext untuk menambahkan perpustakaan ke program kami. Kami akan menavigasi ke tab komponen, membuka kotak perpustakaan dan mengklik kanan perpustakaan. Kemudian klik 'tambah perpustakaan pengguna' ini akan membawa Anda ke folder perpustakaan yang kami kunjungi sebelumnya. Pilih perpustakaan yang ingin Anda gunakan dan lanjutkan.

Setelah ini selesai, kita perlu menambahkan program ke tugas-tugas yang dilakukan sebagai berikut. Di sisi kiri layar di dalam area pabrik, klik dua kali pada PLCnext. Itu harus terbuka di tengah. Lalu buka tab 'tugas dan acara' dan tambahkan program baru setelah MainInstance. Ini dapat dilakukan dengan dua cara, dengan memilih jenis program atau menyeretnya dari area komponen di bawah 'Komponen &Program PLCnext'.

Kemudian variabel akan muncul di tab 'Daftar port' yang ditemukan di sebelah tab 'tugas dan acara'. Buka ini untuk disambut oleh semua variabel Anda dari C++ dan PLCnext. Seharusnya terlihat seperti ini:

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

Untuk menambahkan nilai dummy ke variabel kita, mari kita menavigasi ke program utama di tab komponen lalu pilih kode di dalam layar utama untuk melihat kode dan menambahkan beberapa kode kita sendiri. Kami hanya akan mengatur variabel keluar ke nilai numerik, dalam hal ini 1.

Sekarang mari kita menyebarkan proyek ke plc dan kita akan mendapatkan 15 sebagai respons dari kode C++. Anda dapat melihat variabel di 'Daftar Port' dari sebelumnya.

Latihan kompleks

Untuk contoh ini, kita akan membuat aplikasi kecil yang akan mengirimkan array struct ke dan dari PLC. Pertama buat proyek C++ baru. Kemudian kita menuju ke file header, namanya akan terlihat seperti ini [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 sebelum Anda tapi jangan khawatir itu akan sederhana. Pertama, kita perlu membuat struct untuk contoh ini kita akan membuat struct untuk mobil. Ini dilakukan sebagai berikut:

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

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

Kemudian kita akan mendefinisikan port, satu IN dan satu OUT karena mereka akan menjadi daftar data yang membuatnya seperti itu. Yang juga penting adalah menjadikannya daftar 'mobil'. Ini dilakukan seperti ini:

//#port
//#atribut(Masukan)
//#nama(Mobil)
StrCar CarToC[2];

//#port
//#atribut(Keluaran)
//#nama(CarOut)
StrCar CarFromC[2];

Kemudian kita pindah ke file berikutnya di mana kita akan melakukan pengkodean yang sebenarnya. Ini harus diberi nama [NameOfTheProject].cpp dan tidak boleh mengandung banyak. Kami akan segera mengubahnya. Di sini kita akan mengubah nilai dari mobil satu dan mobil dua.

//Menyetel anggota pertama dari daftar mobil sama dengan mobil dari 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;

//Tambahkan nilai dummy ke anggota kedua
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 menuju ke insinyur PLCnext, kita perlu membuat proyek C++ ini menjadi perpustakaan untuk dipahami oleh PLC. Ini dilakukan hanya dengan mengklik build di bagian atas layar. Ini akan berjalan sebentar dan akan memberi tahu Anda ketika perpustakaan selesai. Jika langkah ini tidak jelas, saya sangat menyarankan Anda untuk memeriksa tutorial yang tercantum di atas.

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

Buka file ini jika belum, maka kita bisa mulai membuat struct sendiri seperti berikut:

JENIS

StrCar:

STRUKTUR

sMerek:STRING;
iHorsepower:INT;
iTahun:int;
xDiasuransikan:BOOL;

END_STRUCT

END_TYPE

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

Setelah membuat struct, kita perlu membuat array jenis ini dan selesai seperti ini dan di file yang sama kita berada saat ini:

JENIS

daftar mobil:ARRAY[0..1] OF StrCar;

END_TYPE

Untuk membuat variabel dengan tipe 'carList' navigasikan ke program utama di tab komponen di bawah 'pemrograman' lalu di dalam folder 'Program' lalu pilih variabel di dalam layar utama untuk melihat variabel di PLC. Di sini kita dapat memilih nama dan tipe data dan penggunaannya. Sebagai tipe data pilih yang dibuat khusus kami:

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

Pustaka yang Anda buat dapat ditemukan di dalam folder bin proyek Anda, salin ini ke folder pustaka untuk insinyur PLCnext. Lokasinya terlihat seperti ini:

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

Setelah itu kami kembali ke insinyur PLCnext untuk menambahkan perpustakaan ke program kami. Kami akan menavigasi ke tab komponen, membuka kotak perpustakaan dan mengklik kanan perpustakaan. Kemudian klik 'tambah perpustakaan pengguna' ini akan membawa Anda ke folder perpustakaan yang kami kunjungi sebelumnya. Pilih perpustakaan yang ingin Anda gunakan dan lanjutkan.

Setelah ini selesai, kita perlu menambahkan program ke tugas-tugas yang dilakukan sebagai berikut. Di sisi kiri layar di dalam area pabrik, klik dua kali pada PLCnext. Itu harus terbuka di tengah. Lalu buka tab 'tugas dan acara' dan tambahkan program baru setelah MainInstance. Ini dapat dilakukan dengan dua cara, dengan memilih jenis program atau menyeretnya dari area komponen di bawah 'Komponen &Program PLCnext'.

Kemudian variabel akan muncul di tab 'Daftar port' yang ditemukan di sebelah tab 'tugas dan acara'. Buka ini untuk disambut oleh semua variabel Anda dari C++ dan PLCnext. Seharusnya terlihat seperti ini.

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

Untuk menambahkan nilai dummy ke variabel kita, mari kita menavigasi ke program utama di tab komponen lalu pilih kode di dalam layar utama untuk melihat kode dan menambahkan beberapa kode kita sendiri. Kami hanya akan mengatur variabel untuk beberapa spesifikasi mobil. Ini dapat dipilih secara acak tetapi harus cocok dengan tipe data. (tergantung pada apa yang Anda pilih, gunakan string di mana Anda menggunakan string, dll.)

CarToC[0].sMerek :=‘Audi’;
CarToC[0].iHorsepower :=200;
CarToC[0].iTahun :=2020;
CarToC[0].xInsured :=TRUE;

CarToC[1].sBrand :=‘Mazda’;
CarToC[1].iHorsepower :=120;
CarToC[1].iTahun :=2001;
CarToC[1].xInsured :=FALSE;

Setelah kami menerapkan contoh ini, daftar yang keluar harus ditukar dengan daftar yang masuk. Anda dapat melihat variabel di 'Daftar Port' dari sebelumnya.


Teknologi Industri

  1. Ke Cloud Infinity, dan Beyond
  2. Perhitungan Tegangan dan Arus Kompleks
  3. C# Input dan Output Dasar
  4. Kelas dan Objek C++
  5. Struktur dan kelas dalam C++
  6. C++ Tanggal dan Waktu
  7. Prosedur penulisan:sederhana dan efisien dengan beralih ke digital
  8. GRPC jarak jauh menggunakan grpcurl
  9. Cara membuat aplikasi konsol PLCnext sederhana di C#
  10. Menginstal manajer paket apt(-get) di PLCnext