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

Menguasai Definisi dan Koneksi Port GDS Komplek dalam Pemrograman IEC

Abstrak

Dalam artikel ini saya akan menjelaskan cara mendefinisikan port GDS kompleks seperti struktur data dalam C++ dan menghubungkannya ke port GDS dalam kode IEC.

Struktur Data

Cara mendeklarasikan struktur data. Mari kita lihat C++.

#pragma once #include "Arp/System/Core/Arp.h" #include "Arp/Plc/Commons/PlcTypes.h" namespace MyComponent { class MyData { public: MyData() = default; ~MyData() = default; public: Arp::boolean Valid = false; Arp::int16 IntegerValue = 0; Arp::Plc::Commons::Gds::StaticString<80> StringValue = ""; Arp::uint8 Data[8] = {0x00}; }; } // namespace MyComponent

Dan di Header dari class program tipe ini sekarang dapat didefinisikan sebagai GDS Port.

#pragma once ... #include "MyData.hpp" namespace MyComponent { //#program //#component(MyComponent::MyComponent) class MyProgramm ... { ... public: //#port //#name(TheData) //#attributes(Input) MyData GdsPortMyData; }; } // namespace MyComponent

Untuk dapat menghubungkan GDS Port ke GDS Port dalam kode IEC variabel dalam kode IEC harus memiliki tipe yang sama. Ini berarti struktur IEC harus memiliki tata letak data yang sama dengan tipe data C++. Selain itu semua nama elemen harus cocok dengan elemen dalam tipe C++.

TYPE UDT_PROJECT_MY_DATA : STRUCT Valid BOOL; IntegerValue : INT; StringValue : STRING; Data : ARRAY [0..7] OF BYTE; END_STRUCT; END_TYPE

Sekarang GDS Out Port dengan tipe UDT_PROJECT_MY_DATA dapat dihubungkan ke GDS In Port TheData dari program C++.

Catatan Khusus tentang STRING

Catatan khusus tentang tipe data STRING. Perhatikan bahwa kode IEC untuk saat ini tidak menyadari encoding UTF-8. String literals menggunakan encoding ISO-8859-1. Jadi mungkin perlu untuk mengonversinya ke UTF-8 sebelum membandingkannya dengan string literals dalam kode C++. Anda dapat menggunakan perpustakaan boost-locale untuk mengonversi antara ISO-8859-1 ke UTF-8 dan sebaliknya.

Arp::String toUtf8(const Arp::String& s) { return boost::locale::conv::to_utf<char>(s.CStr(), "ISO-8859-1"); } 

Teknologi Industri

  1. Hindari Kesalahan Mahal: 7 Kesalahan Kunci Pick-and-Pack dan Solusi Teruji
  2. Hindari Enam Kesalahan Logistik Umum untuk Keberhasilan Rantai Pasok yang Lancar
  3. Meningkatkan Rantai Pasok AS: Peran Strategis Pelabuhan Darat
  4. Mengatasi Tujuh Tantangan Utama Pengiriman Mil Terakhir: Solusi Terbukti untuk Pengiriman yang Lebih Cepat dan Hemat Biaya
  5. Empat Tipe Serangan Siber – Strategi Pencegahan Terbukti
  6. Tiga Tantangan Utama dalam Pengiriman Mil Terakhir & Strategi Terbukti untuk Mengatasinya
  7. Hindari Jebakan Pengiriman: 7 Kesalahan Umum dan Solusi Terbukti
  8. 4 Penyebab Utama Kerusakan Switchgear & Strategi Pencegahan Terbukti
  9. Mengidentifikasi Penyebab Utama Kegagalan Mesin dan Strategi untuk Menghindari Downtime
  10. Interoperabilitas Dijelaskan: Bagaimana Perusahaan Anda Mencapai Integrasi yang Lancar