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:
- Preparar el archivo HTML.
- Crear un nuevo proyecto en TIA Portal e integrar un PLC 1215C AC/DC/Rly.
- Configurar la interfaz PROFINET, cambiando la dirección IP de 192.168.0.1 a 192.168.0.2.
- Activar el servidor web en la configuración del PLC.
- Establecer el nivel de acceso a administrativo en la administración de usuarios.
- Añadir la carpeta con el archivo HTML en el directorio HTML de las páginas de usuario.
- Seleccionar el archivo HTML como página de inicio.
- Generar los bloques.
- 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.
- Añadir un bloque WWW en otro segmento, con 333 a la izquierda y una marca ERR a la derecha.
- Compilar todo el hardware y software.
- Conectar el PLC físico al ordenador y cargar el código.
- 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>