Complexe GDS Poortdefinities en Verbindingen in IEC Programmeren Beheersen
Samenvatting
In dit artikel leg ik uit hoe u complexe GDS-poorten kunt definiëren zoals datastructuren in C++ en ze kunt verbinden met GDS-poorten in IEC-code.
Datastructuren
Hoe datastructuren te declareren. Laten we naar C++ kijken.
#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
En in de header van de programmaklasse kan dit type nu worden gedefinieerd als GDS-poort.
#pragma once
...
#include "MyData.hpp"
namespace MyComponent {
//#program
//#component(MyComponent::MyComponent)
class MyProgramm ... {
...
public:
//#port
//#name(TheData)
//#attributes(Input)
MyData GdsPortMyData;
};
} // namespace MyComponent
Om de GDS-poort te kunnen verbinden met een GDS-poort in IEC-code, moet de variabele in de IEC-code van hetzelfde type zijn. Dit betekent dat de IEC-structuur dezelfde datalay-out moet hebben als het C++-datatype. Daarnaast moeten alle elementnamen overeenkomen met de elementen in het C++-type.
TYPE UDT_PROJECT_MY_DATA : STRUCT
Valid : BOOL;
IntegerValue : INT;
StringValue : STRING;
Data : ARRAY [0..7] OF BYTE;
END_STRUCT
END_TYPE
Een GDS Out-poort van het type UDT_PROJECT_MY_DATA kan nu verbonden worden met de GDS In-poort TheData van het C++-programma.
Speciale Opmerking bij STRING
Een speciale opmerking bij het STRING-datatype. Wees u ervan bewust dat de IEC-code voor nu niet op de hoogte is van UTF-8-codering. De string-literalen gebruiken ISO-8859-1-codering. Het kan daarom nodig zijn om ze naar UTF-8 te converteren voordat u ze vergelijkt met string-literalen in C++-code. U kunt de boost-locale-bibliotheek gebruiken voor het converteren tussen ISO-8859-1 naar UTF-8 en terug.
Arp::String toUtf8(const Arp::String& s) {
return boost::locale::conv::to_utf<char>(s.CStr(), "ISO-8859-1");
}
Industriële technologie
- Voorkom dure fouten: 7 veelvoorkomende pick-en-pack-fouten en bewezen oplossingen
- Vermijd deze zes veelgemaakte logistieke fouten voor naadloos toeleveringsketensucces
- VS Toeleveringsketens Verbeteren: De Strategische Rol van Binnenhavens
- De Top Zeven Last-Mile Leveringsuitdagingen Overwinnen: Bewijzen Oplossingen voor Snellere, Kosteneffectieve Verzending
- Vier typen cyberaanvallen — Bewezen preventiestrategieën
- Drie Sleuteluitdagingen in Last-Mile Delivery & Bewezen Strategieën om Ze te Overwinnen
- Verschuilingsvallen vermijden: 7 veelgemaakte fouten en bewezen oplossingen
- Top 4 Schakelkaststoring Oorzaken & Bewezen Preventiestrategieën
- Belangrijkste oorzaken van machinefaling identificeren en strategieën om downtime te voorkomen
- Interoperabiliteit uitgelegd: hoe uw bedrijf naadloze integratie bereikt
- Uw Haas CNC verbinden met een PC of Laptop: Stap-voor-stap Handleiding