8.1 内置数据类型

8.1.1 Device 类型

采集设备类型

class Device{
    string GetConfigString(string key, string default);
    string name;
    int id;
    json current;
    json last;
}

8.1.1.1 获取设备配置参数

  • 定义: GetConfigString(key, default) -> string

  • 分类: 方法

  • 参数:

    • key: string 类型,配置名称
    • default: string 类型,默认值
  • 返回: string 获取到的配置内容,如果为空则返回传入的默认值

  • 示例:

    -- 如果此脚本在设备边缘计算里则 device为当前设备
    -- 读取当前设备的地址
    local address = device:GetConfigString("address","")

8.1.1.2 设备的 ID

  • 定义: id

  • 分类: 属性

  • 类型: int

  • 描述: 返回设备的 ID

  • 示例:

    -- 如果此脚本在设备边缘计算里则 device为当前设备
    -- 返回当前设备的id
    local device_id = device.id

8.1.1.3 设备的名称

  • 定义: name

  • 分类: 属性

  • 类型: string

  • 描述: 返回设备的名称

  • 示例:

    -- 如果此脚本在设备边缘计算里则 device为当前设备
    -- 返回当前设备的name
    local device_name = device.name

8.1.1.4 设备本轮采集到的数据

  • 定义: current

  • 分类: 属性

  • 类型: table

  • 描述: 返回设备本轮采集到的数据

  • 示例:

    -- 如果此脚本在设备边缘计算里则 device为当前设备
    -- 返回当前设备本轮采集到的数据
    local current_data = device.current

8.1.1.5 设备上轮采集到的数据

  • 定义: last

  • 分类: 属性

  • 类型: table

  • 描述: 返回设备上轮采集到的数据

  • 示例:

    -- 如果此脚本在设备边缘计算里则 device为当前设备
    -- 返回当前设备上一轮采集到的数据
    local last_data = device.last

8.1.2 Variable 采集变量类型

采集变量类型

class Variable{
    string GetConfigString(string key, string default);
    int GetConfigInt(string key, string default);
    int Write(json value);
    Device device;
    string name;
    bool writable;
    bool readable;
    json current;
    json last;
}

8.1.2.1 获取变量配置参数

  • 定义: GetConfigString(key, default) -> string

  • 分类: 方法

  • 参数:

    • key: string 类型,配置名称
    • default: string 类型,默认值
  • 返回: string 获取到的配置内容,如果为空则返回传入的默认值

  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 返回当前变量的地址
    local count = variable:GetConfigString("count", "")

8.1.2.2 获取变量配置参数

  • 定义: GetConfigInt(key, default) -> int

  • 分类: 方法

  • 参数:

    • key: string 类型,配置名称
    • default: int 类型,默认值
  • 返回: int 获取到的配置内容,如果为空则返回传入的默认值

  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 返回当前变量的采集的数量
    local count = variable:GetConfigInt("count", 1)

8.1.2.3 写入值到变量

  • 定义: Write(value)

  • 分类: 方法

  • 参数:

    • value: any 类型,要写入的值,类型取决于变量设置的数据类型
  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 写入变量当前配置的变量里
    variable:Write(1)
    -- variable:Write("1") --如果为字符串类型
    -- variable:Write(true) --如果为bool类型

8.1.2.4 变量的名称

  • 定义: name

  • 分类: 属性

  • 类型: int

  • 描述: 变量的名称

  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 返回当前变量上一轮采集到的数据
    local name = variable.name

8.1.2.5 变量本轮采集到的数据

  • 定义: current

  • 分类: 属性

  • 类型: table

  • 描述: 变量本轮采集到的数据

  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 返回当前变量本轮采集到的数据
    local current_data = variable.current

8.1.2.6 变量上轮采集到的数据

  • 定义: last

  • 分类: 属性

  • 类型: table

  • 描述: 变量上轮采集到的数据

  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 返回当前变量上一轮采集到的数据
    local last_data = variable.last

8.1.2.7 变量所属的设备

  • 定义: device

  • 分类: 属性

  • 类型: Device

  • 描述: 变量所属的设备

  • 示例:

    -- 如果此脚本在变量边缘计算里则 variable为当前变量
    -- 读取当前变量所属设备的名称
    local device = variable.device
    local device_name = variable.device.name

8.1.3 Publisher 类型

推送平台类型

class Publisher{
    json GetOriginMessage();
    int SetMessage(json message);
    json GetMessage();
}

8.1.3.1 获取原始采集数据

  • 定义: GetOriginMessage() -> table

  • 分类: 方法

  • 返回: table 返回原始采集数据

  • 数据格式:

        [
            {
                "device_id":1,
                "device_name":"test_fanuc",
                "device_state":1,
                "device_type":"fanuc",
                "ts":1716886841474,
                "values":[
                    {
                        "name":"cnc_runstatus",
                        "id":100,
                        "ts":1716886841474,
                        "value":1
                    }
                ]
            }
        ]

8.1.3.2 设置待推送数据

  • 定义: SetMessage(message)
  • 分类: 方法
  • 参数:
    • message: table 类型
  • 返回: table 返回format处理后的推送数据

8.1.3.3 获取待推送数据

  • 定义: GetMessage() -> table
  • 分类: 方法
  • 返回: table 返回format处理后的推送数据

8.1.4 Mqtt 类型

推送时的Mqtt客户端

class Variable{
    int Connect();
    int PushMessage(string message, string topic, int qos, int retained);
    int CheckConnect();
    int Subscribe(string message, int qos);

    string address;
    string username;
    string password;
    string client_id;
    int keepalive;
    string will_msg;
    int will_qos;
    bool connected;
    function on_connect;
    function on_disconnect;
    function on_message;
    function on_connect;
    string ca;
    string cert;
    string key;
    string key_pass;
    string ssl_version;
}

8.1.4.1 连接到Mqtt

  • 定义: Connect() -> int
  • 分类: 方法
  • 返回: int 返回连接状态,0为ok,非0为连接失败

8.1.4.2 推送到mqtt服务器

  • 定义: PushMessage(message,topic,qos,retained) -> int
  • 分类: 方法
  • 参数:
    • message: string 类型,需要推送的消息
    • topic: string 类型,推送的目标topic
    • qos: int 类型,推送qos,0或1或2
    • retained: int 类型,是否为保留消息,0或1
  • 返回: int 返回推送状态,0为ok,非0为连接失败

8.1.4.3 检查当前服务器连接状态

  • 定义: CheckConnect() -> int
  • 分类: 方法
  • 返回: int 返回连接状态,0为ok,非0为连接失败

8.1.4.4 订阅主题

  • 定义: Subscribe(topic,qos) -> int
  • 分类: 方法
  • 参数:
    • topic: string 类型,订阅的topic
    • qos: int 类型, 0或1或2
  • 返回: int 返回推送状态,0为ok,非0为连接失败

8.1.4.5 Mqtt服务器地址

  • 定义: address
  • 分类: 属性
  • 类型: string
  • 描述: tcp://127.0.0.1:1883这种格式

8.1.4.6 Mqtt鉴权用户名

  • 定义: username
  • 分类: 属性
  • 类型: string

8.1.4.7 Mqtt鉴权用户名

  • 定义: username
  • 分类: 属性
  • 类型: string

8.1.4.8 Mqtt鉴权密码

  • 定义: password
  • 分类: 属性
  • 类型: string

8.1.4.9 Mqtt ClientID

  • 定义: client_id
  • 分类: 属性
  • 类型: string

8.1.4.10 Mqtt KeepAlive

  • 定义: keepalive
  • 分类: 属性
  • 类型: string

8.1.4.11 Mqtt 遗嘱消息

  • 定义: will_msg
  • 分类: 属性
  • 类型: string

8.1.4.12 Mqtt 遗嘱主题

  • 定义: will_topic
  • 分类: 属性
  • 类型: string

8.1.4.13 Mqtt 遗嘱QOS

  • 定义: will_qos
  • 分类: 属性
  • 类型: int
  • 描述: 0或1或2

8.1.4.14 Mqtt 当前连接状态

  • 定义: connected
  • 分类: 属性
  • 类型: Bool
  • 描述: 当前连接状态,true / false

8.1.4.15 Mqtt Connected事件

  • 定义: on_connect
  • 分类: 属性
  • 类型: function()
  • 描述: mqtt服务器连接成功后调用此函数,入参为空

8.1.4.16 Mqtt Disconnected事件

  • 定义: on_disconnect
  • 分类: 属性
  • 类型: function()
  • 描述: mqtt服务器掉线后调用此函数,入参为空

8.1.4.17 Mqtt 订阅消息事件

  • 定义: on_message
  • 分类: 属性
  • 类型: function(topic,message)
  • 参数:
    • topic: string 类型,收到订阅消息的topic
    • message: string 类型,收到订阅消息的内容
  • 描述: mqtt收到订阅消息后会触发此函数,接收参数两个

8.1.4.18 Mqtt SSL CA

  • 定义: ca
  • 分类: 属性
  • 类型: string

8.1.4.19 Mqtt SSL CERT

  • 定义: cert
  • 分类: 属性
  • 类型: string

8.1.4.20 Mqtt SSL KEY

  • 定义: key
  • 分类: 属性
  • 类型: string

8.1.4.21 Mqtt SSL KEY PASSWORD

  • 定义: key_pass
  • 分类: 属性
  • 类型: string

8.1.4.22 Mqtt SSL Version

  • 定义: ssl_version
  • 分类: 属性
  • 类型: string