Maîtriser les définitions et connexions de ports GDS complexes en programmation IEC
Résumé
Cet article explique comment définir des ports GDS complexes comme des structures de données en C++ et les connecter à des ports GDS en code IEC.
Structures de données
Comment déclarer des structures de données. Regardons du côté 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
Dans l'en-tête de la classe programme, ce type peut maintenant être défini comme port GDS.
#pragma once
...
#include "MyData.hpp"
namespace MyComponent {
//#program
//#component(MyComponent::MyComponent)
class MyProgramm ... {
...
public:
//#port
//#name(TheData)
//#attributes(Input)
MyData GdsPortMyData;
};
} // namespace MyComponent
Pour connecter le port GDS à un port GDS en code IEC, la variable IEC doit être du même type. La structure IEC doit avoir la même disposition de données que le type C++. De plus, tous les noms d'éléments doivent correspondre aux éléments du type C++.
TYPE UDT_PROJECT_MY_DATA : STRUCT
Valid BOOL;
IntegerValue : INT;
StringValue : STRING;
Data : ARRAY [0..7] OF BYTE;
END_STRUCT
END_TYPE
Un port GDS Out de type UDT_PROJECT_MY_DATA peut maintenant être connecté au port GDS In TheData du programme C++.
Note spéciale sur STRING
Attention au type STRING. Le code IEC n'est pas encore conscient de l'encodage UTF-8. Les littéraux de chaîne utilisent l'encodage ISO-8859-1. Il peut être nécessaire de les convertir en UTF-8 avant de les comparer avec des littéraux en C++. Utilisez la bibliothèque boost-locale pour convertir entre ISO-8859-1 et UTF-8.
Arp::String toUtf8(const Arp::String& s) {
return boost::locale::conv::to_utf<char>(s.CStr(), "ISO-8859-1");
}
Technologie industrielle
- Éviter les erreurs coûteuses : 7 erreurs clés de prélèvement-emballage et solutions éprouvées
- Évitez ces six erreurs logistiques courantes pour une réussite sans faille de la chaîne d'approvisionnement
- Renforcer les supply chains américaines : Le rôle stratégique des ports intérieurs
- Surmonter les 7 défis majeurs de la livraison du dernier kilomètre : solutions éprouvées pour un shipping plus rapide et rentable
- Quatre types de cyberattaques — stratégies de prévention éprouvées
- Trois défis clés de la livraison du dernier kilomètre et stratégies éprouvées pour les surmonter
- Éviter les pièges de l'expédition : 7 erreurs courantes et solutions éprouvées
- 4 causes principales de défaillance d'appareillage et stratégies de prévention éprouvées
- Interopérabilité expliquée : comment votre entreprise peut atteindre une intégration fluide