8.1 Tipos de datos incorporados

8.1.1 Tipo ConfigBase

Tipo de configuración básico

class ConfigBase{
    string GetConfigString(string key, string default);
    int GetConfigInt(string key, string default);
}

8.1.1.1 Obtener parámetro de configuración de cadena

  • Definición: GetConfigString(key, default) -> string

  • Categoría: Método

  • Parámetro:

    • key: tipo string,Nombre de configuración
    • default: tipo string,Valor predeterminado
  • Retorno: string Contenido de configuración obtenido, devuelve el valor predeterminado si está vacío

  • Ejemplo:

    -- El elemento de configuración actual es c
    -- Leer la dirección de configuración actual
    local address = c:GetConfigString("address","")

8.1.1.2 Obtener parámetro de configuración entero

  • Definición: GetConfigInt(key, default) -> int

  • Categoría: Método

  • Parámetro:

    • key: tipo string,Nombre de configuración
    • default: tipo int,Valor predeterminado
  • Retorno: int Contenido de configuración obtenido, devuelve el valor predeterminado si está vacío

  • Ejemplo:

    -- El elemento de configuración actual es c
    -- Leer el puerto de configuración actual
    local port = c:GetConfigString("port","")

8.1.2 Tipo Device

Tipo de dispositivo de recopilación de datos, hereda de ConfigBase, puede usar métodos de ConfigBase

class Device : ConfigBase{
    string name;
    string code;
    string type;
    json current;
    json last;
    int state;
    int id;
}

8.1.2.1 Obtener parámetro de configuración del dispositivo

8.1.2.2 ID del dispositivo

  • Definición: id

  • Categoría: Propiedad

  • Tipo: int

  • Descripción: Devuelve el ID del dispositivo

  • Ejemplo:

    -- Si este script está en el cálculo de borde del dispositivo, device es el dispositivo actual
    -- Devuelve el id del dispositivo actual
    local device_id = device.id

8.1.2.3 Nombre del dispositivo

  • Definición: name

  • Categoría: Propiedad

  • Tipo: string

  • Descripción: Devuelve el nombre del dispositivo

  • Ejemplo:

    -- Si este script está en el cálculo de borde del dispositivo, device es el dispositivo actual
    -- Devuelve el name del dispositivo actual
    local device_name = device.name

8.1.2.4 Código del dispositivo

  • Definición: code

  • Categoría: Propiedad

  • Tipo: string

  • Descripción: Devuelve el código del dispositivo

  • Ejemplo:

    -- Si este script está en el cálculo de borde del dispositivo, device es el dispositivo actual
    -- Devuelve el code del dispositivo actual
    local device_code = device.code

8.1.2.5 Datos de recopilación actual del dispositivo

  • Definición: current

  • Categoría: Propiedad

  • Tipo: table

  • Descripción: Devuelve los datos de recopilación actual del dispositivo

  • Ejemplo:

    -- Si este script está en el cálculo de borde del dispositivo, device es el dispositivo actual
    -- Devuelve los datos de recopilación actual del dispositivo actual
    local current_data = device.current

8.1.2.6 Datos de recopilación anterior del dispositivo

  • Definición: last

  • Categoría: Propiedad

  • Tipo: table

  • Descripción: Devuelve los datos de recopilación anterior del dispositivo

  • Ejemplo:

    -- Si este script está en el cálculo de borde del dispositivo, device es el dispositivo actual
    -- Devuelve los datos de recopilación anterior del dispositivo actual
    local last_data = device.last

8.1.2.7 Estado de recopilación del dispositivo

  • Definición: state

  • Categoría: Propiedad

  • Tipo: int

  • Descripción: Devuelve el estado de recopilación actual del dispositivo, 0 para normal, distinto de 0 en caso contrario

  • Ejemplo:

    -- Si este script está en el cálculo de borde del dispositivo, device es el dispositivo actual
    -- Devuelve el estado de recopilación actual del dispositivo
    local state = device.state

8.1.3 Tipo Variable

Tipo de variable de recopilación de datos, hereda de ConfigBase, puede usar métodos de ConfigBase

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

8.1.3.1 Escribir valor en variable

  • Definición: Write(value)

  • Categoría: Método

  • Parámetro:

    • value: tipo any,Valor a escribir, el tipo depende de la configuración del tipo de datos de la variable
  • Ejemplo:

    -- Si este script está en el cálculo de borde de la variable, variable es la variable actual
    -- Escribir en la variable de configuración actual
    variable:Write(1)
    -- variable:Write("1") --Si es tipo cadena
    -- variable:Write(true) --Si es tipo bool

8.1.3.2 Nombre de la variable

  • Definición: name

  • Categoría: Propiedad

  • Tipo: string

  • Descripción: Nombre de la variable

  • Ejemplo:

    -- Si este script está en el cálculo de borde de la variable, variable es la variable actual
    -- Devuelve los datos de recopilación anterior de la variable actual
    local name = variable.name

8.1.3.3 Datos de recopilación actual de la variable

  • Definición: current

  • Categoría: Propiedad

  • Tipo: table

  • Descripción: Datos de recopilación actual de la variable

  • Ejemplo:

    -- Si este script está en el cálculo de borde de la variable, variable es la variable actual
    -- Devuelve los datos de recopilación actual de la variable actual
    local current_data = variable.current

8.1.3.4 Datos de recopilación anterior de la variable

  • Definición: last

  • Categoría: Propiedad

  • Tipo: table

  • Descripción: Datos de recopilación anterior de la variable

  • Ejemplo:

    -- Si este script está en el cálculo de borde de la variable, variable es la variable actual
    -- Devuelve los datos de recopilación anterior de la variable actual
    local last_data = variable.last

8.1.3.5 Dispositivo al que pertenece la variable

  • Definición: device

  • Categoría: Propiedad

  • Tipo: Device

  • Descripción: Dispositivo al que pertenece la variable

  • Ejemplo:

    -- Si este script está en el cálculo de borde de la variable, variable es la variable actual
    -- Lee el nombre del dispositivo al que pertenece la variable actual
    local device = variable.device
    local device_name = variable.device.name

8.1.4 Tipo Publisher

Tipo de plataforma de push

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

8.1.4.1 Obtener datos de recopilación originales

  • Definición: GetOriginMessage() -> table

  • Categoría: Método

  • Retorno: table Devuelve los datos de recopilación originales

  • Formato de datos:

        [
            {
                "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.4.2 Establecer datos de push

  • Definición: SetMessage(message)
  • Categoría: Método
  • Parámetro:
    • message: tipo table
  • Retorno: table Devuelve los datos de push después del procesamiento de formato

8.1.4.3 Obtener datos de push

  • Definición: GetMessage() -> table
  • Categoría: Método
  • Retorno: table Devuelve los datos de push después del procesamiento de formato

8.1.5 Tipo Mqtt

Cliente Mqtt para push

class MqttClient{
    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.5.1 Conectar a Mqtt

  • Definición: Connect() -> int
  • Categoría: Método
  • Retorno: int Devuelve el estado de conexión, 0 para ok, distinto de 0 para fallo de conexión

8.1.5.2 Push al servidor mqtt

  • Definición: PushMessage(message,topic,qos,retained) -> int
  • Categoría: Método
  • Parámetro:
    • message: string tipo string,Mensaje a enviar
    • topic: string tipo string,Topic destino del push
    • qos: int tipo int,QoS del push, 0 o 1 o 2
    • retained: int tipo int,Si es mensaje retenido, 0 o 1
  • Retorno: int Devuelve el estado de push, 0 para ok, distinto de 0 para fallo de conexión

8.1.5.3 Verificar estado de conexión actual del servidor

  • Definición: CheckConnect() -> int
  • Categoría: Método
  • Retorno: int Devuelve el estado de conexión, 0 para ok, distinto de 0 para fallo de conexión

8.1.5.4 Suscribir topic

  • Definición: Subscribe(topic,qos) -> int
  • Categoría: Método
  • Parámetro:
    • topic: string tipo string,Topic a suscribir
    • qos: int tipo int,0 o 1 o 2
  • Retorno: int Devuelve el estado de push, 0 para ok, distinto de 0 para fallo de conexión

8.1.5.5 Dirección del servidor Mqtt

  • Definición: address
  • Categoría: Propiedad
  • Tipo: string
  • Descripción: Formato: tcp://127.0.0.1:1883

8.1.5.6 Nombre de usuario de autenticación Mqtt

  • Definición: username
  • Categoría: Propiedad
  • Tipo: string

8.1.5.7 Nombre de usuario de autenticación Mqtt

  • Definición: username
  • Categoría: Propiedad
  • Tipo: string

8.1.5.8 Contraseña de autenticación Mqtt

  • Definición: password
  • Categoría: Propiedad
  • Tipo: string

8.1.5.9 Mqtt ClientID

  • Definición: client_id
  • Categoría: Propiedad
  • Tipo: string

8.1.5.10 Mqtt KeepAlive

  • Definición: keepalive
  • Categoría: Propiedad
  • Tipo: string

8.1.5.11 Mensaje de testamento Mqtt

  • Definición: will_msg
  • Categoría: Propiedad
  • Tipo: string

8.1.5.12 Topic de testamento Mqtt

  • Definición: will_topic
  • Categoría: Propiedad
  • Tipo: string

8.1.5.13 QOS de testamento Mqtt

  • Definición: will_qos
  • Categoría: Propiedad
  • Tipo: int
  • Descripción: 0 o 1 o 2

8.1.5.14 Estado de conexión actual de Mqtt

  • Definición: connected
  • Categoría: Propiedad
  • Tipo: Bool
  • Descripción: Estado de conexión actual, true / false

8.1.5.15 Evento Mqtt Connected

  • Definición: on_connect
  • Categoría: Propiedad
  • Tipo: function()
  • Descripción: Se llama cuando la conexión al servidor mqtt tiene éxito, sin parámetros

8.1.5.16 Evento Mqtt Disconnected

  • Definición: on_disconnect
  • Categoría: Propiedad
  • Tipo: function()
  • Descripción: Se llama cuando el servidor mqtt se desconecta, sin parámetros

8.1.5.17 Evento de mensaje de suscripción Mqtt

  • Definición: on_message
  • Categoría: Propiedad
  • Tipo: function(topic,message)
  • Parámetro:
    • topic: string tipo string,Topic del mensaje de suscripción recibido
    • message: string tipo string,Contenido del mensaje de suscripción recibido
  • Descripción: Se activa cuando mqtt recibe un mensaje de suscripción, recibe dos parámetros

8.1.5.18 Mqtt SSL CA

  • Definición: ca
  • Categoría: Propiedad
  • Tipo: string

8.1.5.19 Mqtt SSL CERT

  • Definición: cert
  • Categoría: Propiedad
  • Tipo: string

8.1.5.20 Mqtt SSL KEY

  • Definición: key
  • Categoría: Propiedad
  • Tipo: string

8.1.5.21 Mqtt SSL KEY PASSWORD

  • Definición: key_pass
  • Categoría: Propiedad
  • Tipo: string

8.1.5.22 Mqtt SSL Version

  • Definición: ssl_version
  • Categoría: Propiedad
  • Tipo: string