工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

複雑な GDS ポートを定義し、それらを IEC コードで GDS ポートに接続する方法

アブストラクト

この記事では、C++ でデータ構造のような複雑な GDS ポートを定義し、それらを IEC コードで GDS ポートに接続する方法を説明します。

データ構造

データ構造を宣言する方法。 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

また、プログラム クラスのヘッダーで、このタイプを GDS ポートとして定義できるようになりました。

#pragma once
...
#include "MyData.hpp"

namespace MyComponent
{

//#program
//#component(MyComponent::MyComponent)
class MyProgramm ...
{

...

public:
    //#port
    //#name(TheData)
    //#attributes(Input)
    MyData GdsPortMyData;

};

} // namespace MyComponent

GDS ポートを IEC コードの GDS ポートに接続できるようにするには、IEC コードの変数が同じタイプである必要があります。これは、IEC 構造体が C++ データ型と同じデータ レイアウトを持つ必要があることを意味します。さらに、すべての要素名は C++ 型の要素と一致する必要があります。

TYPE

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

END_TYPE

タイプ UDT_PROJECT_MY_DATA の GDS 出力ポート ポート TheData で GDS に接続できるようになりました C++ プログラムの。

STRING への特記事項

STRING データ型に関する特別な注意事項。現在のところ、IEC コードは UTF-8 エンコーディングを認識していないことに注意してください。文字列リテラルは ISO-8859-1 エンコーディングを使用しています。そのため、C++ コードの文字列リテラルと比較する前に、UTF-8 に変換する必要がある場合があります。 ISO-8859-1 から UTF-8 への変換、およびその逆の変換には、boost-locale ライブラリを使用できます。

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

産業技術

  1. 7つの一般的なピックアンドパックエラー—およびそれらを修正する方法
  2. 6つの一般的なロジスティクスの間違いとそれらを回避する方法
  3. 内陸港が米国のサプライチェーンをより良く接続する方法
  4. ラストマイルデリバリーの7つの課題とその解決方法
  5. 4種類のサイバー攻撃とその防止方法
  6. ラストマイルデリバリーの3つの落とし穴—そしてそれらを回避する方法
  7. 7つの一般的な輸送の失敗とそれらを回避する方法
  8. 開閉装置の故障の4つの主な原因とそれらを回避する方法
  9. 機械の故障の主な原因とその防止方法
  10. 相互運用性とは何ですか?私の会社はそれをどのように達成できますか?
  11. Haas CNC を PC およびラップトップに接続する方法