亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
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

而在programm类的Header中,这个类型现在可以定义为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

为了能够将 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 输出端口 现在可以连接到 GDS In Port TheData C++ 程序。

STRING的特别说明

STRING 数据类型的特别说明。请注意,IEC 代码目前不知道 UTF-8 编码。字符串文字使用 ISO-8859-1 编码。因此,在将它们与 C++ 代码中的字符串文字进行比较之前,可能需要将它们转换为 UTF-8。您可以使用 boost-locale 库在 ISO-8859-1 和 UTF-8 之间进行转换。

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

工业技术

  1. 什么是工业边缘计算以及它如何使制造业受益?
  2. 七个常见的拣配错误——以及如何解决这些错误
  3. 六个常见的物流错误以及如何避免这些错误
  4. 内陆港口如何更好地连接美国供应链
  5. 最后一英里的七个交付挑战,以及如何解决这些挑战
  6. 四种类型的网络攻击,以及如何预防它们
  7. 最后一英里交付的三个陷阱——以及如何避免它们
  8. 七个常见的运输错误,以及如何避免它们
  9. 开关柜故障的4大原因及避免方法
  10. 机器故障的主要原因以及如何预防
  11. 什么是互操作性,我的公司如何实现它?
  12. 如何将 Haas CNC 连接到 PC 和笔记本电脑