Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Uso de tipos de datos simples y complejos en C++

Hola a todos,

En esta publicación de blog, exploraremos tipos de datos simples y complejos en C++ y PLCnext Engineer. Contendrá dos partes diferenciadas, un ejercicio simple y complejo.

Este tutorial asume que tiene alguna experiencia con C++ y PLCnext Engineer.

empezar

Primero, necesitará las herramientas adecuadas para el trabajo, un editor C++, el software PLCnext Engineer y un PLC Phoenix Contact para ejecutarlo. Estos son los materiales que he usado:

Personalmente, elegí Visual Studio como mi editor de C ++, pero también se puede usar Eclipse. Los enlaces a los tutoriales se pueden encontrar aquí:

En cuanto a PLCnext Engineer, puede encontrarlo en nuestro sitio web.

Ejercicio simple

Para este primer ejemplo, crearemos una pequeña aplicación que verifique si se envía el número correcto desde el PLC. Primero haga un nuevo proyecto C++. Luego nos dirigimos al archivo de encabezado, el nombre debería verse así [NombreDelProyecto].hpp, también hay archivos con el nombre [nombreDelProyecto]component.hpp que no usaremos. Una vez que esté en el archivo de encabezado, habrá un muro de código delante de usted, pero no se preocupe, será simple. En primer lugar, definiremos los puertos, uno de ENTRADA y otro de SALIDA. Se pueden definir así, tenga en cuenta que esto es solo para tipos de datos simples:

//#puerto
//#atributos(entrada)
//#nombre(PruebaEntrada)
int64 Prueba de entrada =0;


//#puerto
//#atributos(Salida)
//#nombre(prueba de salida)
int64 Prueba de salida =0;

Luego pasamos al siguiente archivo donde haremos la codificación real. Esto debería llamarse [NombreDelProyecto].cpp y no debería contener mucho. Vamos a cambiar eso lo suficientemente pronto. Permítanos agregar un código para verificar los números, ya sea usando If o un caso de cambio, eso depende de usted. He usado estructuras if en este:

void PLMProjectReadInputProgram::Execute() void PLMProjectReadInputProgram::Execute(){
if (PruebaEntrada ==1) {
Prueba de salida =15;}


si (Prueba de entrada ==2) {
Prueba de salida =150;}


si (Prueba de entrada ==3) {
Prueba de salida =1500;}


if (PruebaEntrada ==4) {
Prueba de salida =15000;}
}

Antes de dirigirnos al ingeniero de PLCnext, debemos convertir este proyecto de C++ en una biblioteca para que el PLC lo entienda. Esto se hace simplemente haciendo clic en construir en la parte superior de la pantalla. Esto debería ejecutarse un poco y le indicará cuando la biblioteca esté completa. Si este paso no está claro, le recomiendo que consulte los tutoriales enumerados anteriormente.

Navegue al programa principal en la pestaña de componentes bajo programación en la carpeta 'Local' luego seleccione variables dentro de la pantalla principal para ver las variables en el PLC. Aquí podemos elegir un nombre y un tipo de datos y el uso. Los tipos de datos en PLCnext Engineer deben ser los mismos que en el programa C++. Puede encontrar un enlace a los diferentes tipos y sus equivalentes aquí. El uso definirá si las variables son locales o se pueden usar para enviar y recibir datos de programas o variables externos.

Después de hacer esto, comenzaremos a conectar las variables después de haber agregado la nueva biblioteca. Esto se puede hacer así:

La biblioteca que creó se puede encontrar dentro de la carpeta bin de su proyecto, cópiela en la carpeta de bibliotecas para el ingeniero de PLCnext. La ubicación se parece a esto:

C:\Usuarios\Público\Documentos\PLCnext Engineer\Bibliotecas

Después de eso, regresamos al ingeniero de PLCnext para agregar la biblioteca a nuestro programa. Navegaremos a la pestaña de componentes, abriendo el cuadro de bibliotecas y haciendo clic derecho en bibliotecas. Luego haga clic en 'agregar biblioteca de usuario', esto lo llevará a la carpeta de bibliotecas a la que fuimos antes. Elija la biblioteca que desea usar y continúe.

Una vez hecho esto, necesitaremos agregar el programa a las tareas, lo cual se hace de la siguiente manera. En el lado izquierdo de la pantalla dentro del área de la planta, haga doble clic en PLCnext. Debe abrirse en el medio. Luego vaya a la pestaña 'tareas y eventos' y agregue un nuevo programa después de MainInstance. Esto se puede hacer de dos maneras, ya sea seleccionando el tipo de programa o arrastrándolo desde el área de componentes en 'PLCnext Componentes y Programas'.

Luego, las variables deberían aparecer en la pestaña 'Lista de puertos' que se encuentra junto a la pestaña 'tareas y eventos'. Abra esto para ser recibido por todas sus variables de C++ y PLCnext. Debería ser algo como esto:

Si hizo todo correctamente, debería poder conectar los puertos de SALIDA de su PLC al puerto de ENTRADA del programa C ++, también es posible al revés, y debería verse más o menos así. Si esto no funciona, intente verificar sus tipos de datos.

Para agregar un valor ficticio a nuestra variable, naveguemos al programa principal en la pestaña de componentes, luego seleccione el código dentro de la pantalla principal para ver el código y agregar algunos propios. Simplemente configuraremos la variable que sale a un valor numérico, en este caso 1.

Ahora implementemos el proyecto en el plc y deberíamos obtener 15 como respuesta del código C++. Puede ver las variables en la 'Lista de puertos' de antes.

Ejercicio complejo

Para este ejemplo, crearemos una pequeña aplicación que enviará una serie de estructuras hacia y desde el PLC. Primero haga un nuevo proyecto C++. Luego nos dirigimos al archivo de encabezado, el nombre debería verse así [NombreDelProyecto].hpp, también hay archivos con el nombre [nombreDelProyecto]component.hpp que no usaremos. Una vez que esté en el archivo de encabezado, habrá un muro de código delante de usted, pero no se preocupe, será simple. En primer lugar, necesitaremos hacer una estructura para este ejemplo, haremos una estructura para un automóvil. Esto se hace de la siguiente manera:

public:// typedefs
struct StrCar{
StaticString<80> sbrand;
int16 iCaballos de fuerza;
int16 iAño;
booleano xAsegurado;
};

!¡IMPORTANTE! ¡Los nombres y tipos en C++ y PLCnext Engineer deben ser los mismos! Los tipos de datos se pueden encontrar aquí.

Luego estaremos definiendo los puertos, uno IN y otro OUT porque serán listas de datos hazlos como tal. También es importante que sea una lista de "coches". Esto se hace así:

//#puerto
//#atributos(Entrada)
//#nombre(CarIn)
StrCar CarToC[2];

//#puerto
//#atributos(Salida)
//#nombre(CarOut)
StrCar CarFromC[2];

Luego pasamos al siguiente archivo donde haremos la codificación real. Esto debería llamarse [NombreDelProyecto].cpp y no debería contener mucho. Vamos a cambiar eso lo suficientemente pronto. Aquí cambiaremos los valores del auto uno y el auto dos.

//Establecer el primer miembro de la lista de autos igual al auto del PLC
CocheDeC[0].sbrand =CarToC[1].sbrand;
CarFromC[0].iHorsepower =CarToC[1].iHorsepower;
CocheDeC[0].iYear =CarToC[1].iYear;
CocheDeC[0].xAsegurado =CocheAC[1].xAsegurado;

//Añadir valores ficticios al segundo miembro
CocheDeC[1].sbrand =CarToC[0].sbrand;
CarFromC[1].iHorsepower =CarToC[0].iHorsepower;
CocheDesdeC[1].iAño =CocheAC[0].iAño;
CocheDeC[1].xAsegurado =CocheAC[0].xAsegurado;

Antes de dirigirnos al ingeniero de PLCnext, debemos convertir este proyecto de C++ en una biblioteca para que el PLC lo entienda. Esto se hace simplemente haciendo clic en construir en la parte superior de la pantalla. Esto debería ejecutarse un poco y le indicará cuando la biblioteca esté completa. Si este paso no está claro, le recomiendo que consulte los tutoriales enumerados anteriormente.

Ahora, antes de que podamos comenzar a crear variables en PLCnext Engineer, necesitaremos crear un tipo de datos propio, en este caso, una estructura de automóvil y una lista de automóviles. Para esto necesitaremos un archivo de tipos de datos y se puede encontrar y crear aquí:

Abra este archivo si aún no lo ha hecho, luego podemos comenzar a crear nuestra propia estructura de la siguiente manera:

TIPO

StrCar:

ESTRUCTURA

sMarca:STRING;
iCaballos de fuerza:INT;
iAño:int;
xAsegurado:BOOL;

END_STRUCT

END_TYPE

!¡IMPORTANTE! ¡Los nombres y tipos en C++ y PLCnext Engineer deben ser los mismos! Los tipos de datos se pueden encontrar aquí.

Después de hacer la estructura, necesitamos hacer una matriz de este tipo y se hace así y en el mismo archivo en el que nos encontramos actualmente:

TIPO

carList:ARRAY[0..1] OF StrCar;

END_TYPE

Para crear una variable con el tipo 'carList' navegue al programa principal en la pestaña de componentes en 'programación' luego dentro de la carpeta 'Programas' luego seleccione variables dentro de la pantalla principal para ver las variables en el PLC. Aquí podemos elegir un nombre y un tipo de datos y el uso. Como tipo de datos seleccione nuestro personalizado:

Después de hacer esto, comenzaremos a conectar las variables después de haber agregado la nueva biblioteca. Esto se puede hacer así:

La biblioteca que creó se puede encontrar dentro de la carpeta bin de su proyecto, cópiela en la carpeta de bibliotecas para el ingeniero de PLCnext. La ubicación se parece a esto:

C:\Usuarios\Público\Documentos\PLCnext Engineer\Bibliotecas

Después de eso, regresamos al ingeniero de PLCnext para agregar la biblioteca a nuestro programa. Navegaremos a la pestaña de componentes, abriendo el cuadro de bibliotecas y haciendo clic derecho en bibliotecas. Luego haga clic en 'agregar biblioteca de usuario', esto lo llevará a la carpeta de bibliotecas a la que fuimos antes. Elija la biblioteca que desea usar y continúe.

Una vez hecho esto, necesitaremos agregar el programa a las tareas, lo cual se hace de la siguiente manera. En el lado izquierdo de la pantalla dentro del área de la planta, haga doble clic en PLCnext. Debe abrirse en el medio. Luego vaya a la pestaña 'tareas y eventos' y agregue un nuevo programa después de MainInstance. Esto se puede hacer de dos maneras, ya sea seleccionando el tipo de programa o arrastrándolo desde el área de componentes en 'PLCnext Componentes y Programas'.

Luego, las variables deberían aparecer en la pestaña 'Lista de puertos' que se encuentra junto a la pestaña 'tareas y eventos'. Abra esto para ser recibido por todas sus variables de C++ y PLCnext. Debería verse algo como esto.

Si hizo todo correctamente, debería poder conectar los puertos de SALIDA de su PLC al puerto de ENTRADA del programa C ++, también es posible al revés, y debería verse más o menos así. Si esto no funciona, verifique los tipos de datos y los nombres de sus variables.

Para agregar un valor ficticio a nuestra variable, naveguemos al programa principal en la pestaña de componentes, luego seleccione el código dentro de la pantalla principal para ver el código y agregar algunos propios. Solo estableceremos la variable que sale a algunos detalles del automóvil. Estos se pueden elegir al azar, pero deberán coincidir con los tipos de datos. (dependiendo de lo que elija, use cadenas donde usó cadenas, etc.)

CarToC[0].sBrand :=‘Audi’;
CarToC[0].iCaballos de fuerza :=200;
CarToC[0].iYear :=2020;
CarToC[0].xInsured :=TRUE;

CarToC[1].sBrand :=‘Mazda’;
CarToC[1].iCaballos de fuerza :=120;
CarToC[1].iYear :=2001;
CocheToC[1].xAsegurado :=FALSO;

Una vez que implementemos este ejemplo, la lista que sale debe intercambiarse en la lista entrante. Puede ver las variables en la 'Lista de puertos' de antes.


Tecnología Industrial

  1. A Cloud Infinity y más allá
  2. Cálculos complejos de voltaje y corriente
  3. Entrada y salida básica de C#
  4. Clases y objetos de C++
  5. Punteros y arreglos de C++
  6. Estructuras y clases en C ++
  7. C++ Fecha y hora
  8. Procedimientos de escritura:sencillos y eficientes gracias a la digitalización
  9. gRPC remoto usando grpcurl
  10. Cómo crear una aplicación de consola PLCnext simple en C#
  11. Instalación del administrador de paquetes apt(-get) en PLCnext