Programación en C y Configuración de Servidor Web con PLC Siemens

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,21 KB

Ejercicios de Programación en C y Configuración de Servidor Web con PLC Siemens

Cálculo del Mayor en un Vector

Este programa en C genera un vector de números aleatorios y encuentra el mayor de ellos.


#include <stdio.h>
#include <stdlib.h>

int generarNumeroAleatorio(int min, int max) {
    return min + rand() % (max - min + 1);
}

int main() {
    int n;
    srand(time(NULL));
    printf("Ingrese el tamaño del vector: ");
    scanf("%d", &n);
    int vector[n];
    for (int i = 0; i < n; i++) {
        vector[i] = generarNumeroAleatorio(0, 100);
    }
    printf("El vector generado es: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", vector[i]);
    }
    printf("\n");
    int mayor = vector[0];
    for (int i = 1; i < n; i++) {
        if (vector[i] > mayor) {
            mayor = vector[i];
        }
    }
    printf("El mayor número en el vector es: %d\n", mayor);
    return 0;
}

Suma de Matrices

Este programa en C realiza la suma de dos matrices.


#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int i, j, m, n; /* variables para matrices */
    printf("Suma de matrices.\n");
    printf("Introduce número de filas:  ");
    scanf("%2d", &m);
    printf("Introduce número de columnas: ");
    scanf("%2d", &n);
    float a[m][n];
    float b[m][n];
    float c[m][n];
    for (i = 1; i <= m; i++)
        for (j = 1; j <= n; j++) {
            printf("Introduce elemento A[%2d,%2d]: ", i, j);
            scanf("%f", &a[i - 1][j - 1]);
        }
    for (i = 1; i <= m; i++)
        for (j = 1; j <= n; j++) {
            printf("Introduce elemento B[%2d,%2d]: ", i, j);
            scanf("%f", &b[i - 1][j - 1]);
        }
    for (i = 1; i <= m; i++)
        for (j = 1; j <= n; j++)
            c[i - 1][j - 1] = a[i - 1][j - 1] + b[i - 1][j - 1];
    printf("\nMatriz A.\n");
    for (i = 1; i <= m; i++) {
        for (j = 1; j <= n; j++)
            printf(" %6.2f ", a[i - 1][j - 1]);
        printf("\n");
    }
    printf("\nMatriz B.\n");
    for (i = 1; i <= m; i++) {
        for (j = 1; j <= n; j++)
            printf(" %6.2f ", b[i - 1][j - 1]);
        printf("\n");
    }
    printf("\nMatriz C.\n");
    for (i = 1; i <= m; i++) {
        for (j = 1; j <= n; j++)
            printf(" %6.2f ", c[i - 1][j - 1]);
        printf("\n");
    }
    return 0;
}

Configuración de un PLC Siemens como Servidor Web

Pasos para configurar un autómata de SIEMENS como servidor web y cargar un código HTML:

  1. Preparar el archivo HTML.
  2. Crear un nuevo proyecto en TIA Portal e integrar un PLC 1215C AC/DC/Rly.
  3. Configurar la interfaz PROFINET, cambiando la dirección IP de 192.168.0.1 a 192.168.0.2.
  4. Activar el servidor web en la configuración del PLC.
  5. Establecer el nivel de acceso a administrativo en la administración de usuarios.
  6. Añadir la carpeta con el archivo HTML en el directorio HTML de las páginas de usuario.
  7. Seleccionar el archivo HTML como página de inicio.
  8. Generar los bloques.
  9. En el Main, crear un segmento con una entrada abierta de START, una entrada negada de STOP y una salida del MOTOR, además de una entrada abierta de MOTOR en paralelo con la de START.
  10. Añadir un bloque WWW en otro segmento, con 333 a la izquierda y una marca ERR a la derecha.
  11. Compilar todo el hardware y software.
  12. Conectar el PLC físico al ordenador y cargar el código.
  13. Acceder al servidor web a través de la IP 192.168.0.2 y buscar el enlace a las páginas de usuario.

Juego del Número Oculto

Este programa en C implementa un juego de adivinar un número.


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int num, num2, opc = 0;
    printf("\n Adivinar número");
    printf("\n 1 - Comenzar.");
    printf("\n 2 - Salir.\n");
    printf("\n Introduce una opción:");
    scanf("%d", &opc);
    while (opc != 2) {
        num = rand() % 100;
        printf("\n Introduce número: ");
        scanf("%d", &num2);
        while (num != num2) {
            if (num > num2)
                printf("Es mayor");
            else
                printf("Es menor");
            printf("\n Introduce número: ");
            scanf("%d", &num2);
        }
        printf("\n ¡Has acertado! \n");
        printf("\n 1 - Jugar de nuevo.");
        printf("\n 2 - Salir.");
        printf("\n Introduce una opción:");
        scanf("%d", &opc);
    }
    system("PAUSE");
    return 0;
}

Control de Motor con HTML en PLC

Código HTML para accionar un motor a través de un botón en un servidor web del PLC:


<title> WebServer S7 1200</title>
<h2 style="color: green"> WebServer PLC S7 1215 AC/DC/RLY - AUTOMATION ENGINEER</h2>
<marquee> Email: [email protected] </marquee>
<h1>Motor Status <span style="color: blue"> :="MOTOR": </span></h1>

Indicador de Valor Analógico en HTML

Código HTML para mostrar un valor analógico (temperatura) en un servidor web del PLC:


<title>WebServer S7 1200</title>
<style>
    .temp-display {
        font-size: 2em;
        color: red;
    }
</style>
<script>
    function updateTemperature() {
        fetch('path_to_your_plc_temperature_endpoint')
            .then(response => response.json())
            .then(data => {
                document.getElementById('temperature').textContent = data.temperature + ' °C';
            })
            .catch(error => console.error('Error fetching temperature:', error));
    }
    setInterval(updateTemperature, 5000);
    window.onload = updateTemperature;
</script>
<h2 style="color: green">WebServer PLC S7 1215 AC/DC/RLY - AUTOMATION ENGINEER</h2>
<marquee>Email: [email protected]</marquee>
<h1> Motor Status <span style="color: blue">:= "MOTOR":</span></h1>
<h1>Actual Temperature <span id="temperature" class="temp-display">-- °C</span></h1>

Entradas relacionadas: