12. Évfolyam
Rendszerek

PLC programozás, F1 adatbázis, hálózatkezelés és mikrovezérlők — az ipari informatika négy alappillére a 12. évfolyamban.

Siemens LOGO! Microsoft Access Cisco Packet Tracer Arduino SQL
scroll
01
// 01

PLC Programozás

A PLC (Programmable Logic Controller) egy ipari számítógép, amelyet gyártási folyamatok, gépek és épületautomatizálás vezérlésére terveztek. A Siemens LOGO! 8 az egyik legelterjedtebb kisméretű PLC — könnyen programozható, megbízható és rendkívül sokoldalú.

A LOGO!Soft Comfort szoftverben FBD (Function Block Diagram) nyelven programoztunk. Az egyik klasszikus feladat a lépcsőház világítás — a nyomógombra meggyúl a lámpa, majd egy időzítő után automatikusan elalszik.

// Siemens LOGO! 8 specs
Tápfeszültség12/24 VDC
Bemenetek8× digitális (I1–I8)
Kimenetek4× relé (Q1–Q4)
MemóriaROM / RAM / EEPROM
SzoftverLOGO!Soft Comfort V8
NyelvFBD / LAD / ST
// Lépcsőház világítás — PLC szimuláció LOGO! 8 FBD
lépcső 2. emelet 1. emelet Földszint Q1 Q2 Q3 I3 I2 I1 TIMER: —
Q1: KI Q2: KI Q3: KI // Nyomj egy gombot
02
// 02

F1 Adatbázis

Az adatbázis projektet Microsoft Access-ben készítettem — a 2024-es Formula 1-es szezon adatait dolgoztam fel. Három táblából áll: versenyzők, csapatok és futamok, amelyek egymáshoz kapcsolódnak idegen kulcsokon keresztül.

Az adatok a formula1.com oldalról gyűjtöttem manuálisan. SQL lekérdezésekkel lehet szűrni, rendezni és összekapcsolni a táblákat — INNER JOIN, WHERE, ORDER BY parancsokkal.

// Adatbázis specs
SzoftverMicrosoft Access
Táblák3 db (driver, csapat, futam)
Kapcsolat1:N (one-to-many)
KulcsDriverID / CsapatID
Versenyzők24 db
Futamok24 db (2024 szezon)
24versenyző
10csapat
24futam
03
// 03

Hálózatkezelés

A Cisco Packet Tracer szimulációs szoftverben terveztem meg a hálózatot. Két alhálózat (192.168.10.x és 192.168.20.x) egy Cisco 1941-es routerrel összekötve — mindkét oldalon switch, PC-k, laptop és WiFi eszközök.

A DHCP szervert dual-homed módban konfiguráltam — automatikusan osztja ki az IP-címeket mindkét alhálózatnak. A ping paranccsal ellenőrizhető az eszközök közötti kommunikáció.

// Hálózat specs
RouterCisco 1941
Switch2× Cisco 2960-24TT
Alhálózat 1192.168.10.0/24
Alhálózat 2192.168.20.0/24
DHCPAutomatikus IP kiosztás
WiFiAccess Point (WPA2)
// Live Network Simulation ● REALTIME · 9 DEVICES
// Packet Log
DHCP Server Router (Cisco 1941) Switch WiFi laptop PC (DHCP)
04
// 04

Mikrovezérlők

A mikrovezérlők kis méretű integrált áramkörök, amelyek egy processzort, memóriát és I/O portokat tartalmaznak egyetlen chipen. Az Arduino az egyik legelterjedtebb nyílt forráskódú platform — egyszerű programozás, C/C++ alapú nyelv, rengeteg könyvtár.

A sorompóvezérlő projektben egy SG90 szervó hajtja le a sorompórudat, miközben két piros LED felváltva villog. A vezérlés Arduino Uno-val történik, a villogás millis() alapú időzítéssel — így a program nem áll meg a delay() alatt.

// Arduino Uno specs
ProcesszorATmega328P (8-bit)
Órajel16 MHz
Flash memória32 KB
Digitális I/O14 pin (6 PWM)
Szervó (Pin 9)SG90 — 0° / 90°
LED1 / LED2Pin 2 / Pin 3
GombPin 7 (INPUT_PULLUP)
// Komponensek
SzervóSG90 (0°–90°)
LED2× piros LED
Ellenállás2× 220Ω
Villogásfelváltva, 400ms
Tápfeszültség5V (USB)
// sorompo.ino — teljes forráskód Arduino C++
#include <Servo.h>
 
const int LED1 = 2;
const int LED2 = 3;
const int SERVO_PIN = 9;
const int BTN = 7;
 
Servo sorompo;
bool vonatJon = false;
bool ledAllapot = false;
unsigned long utolsoVillogas = 0;
 
void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(BTN, INPUT_PULLUP);
  sorompo.attach(SERVO_PIN);
  sorompo.write(0); // NYITVA
}
 
void loop() {
  if (digitalRead(BTN) == LOW) {
    vonatJon = !vonatJon;
    delay(300); // debounce
  }
 
  if (vonatJon) {
    sorompo.write(90); // ZÁRVA
    // millis() alapú villogás — nem blokkol
    if (millis() – utolsoVillogas >= 400) {
      ledAllapot = !ledAllapot;
      digitalWrite(LED1, ledAllapot);
      digitalWrite(LED2, !ledAllapot);
      utolsoVillogas = millis();
    }
  } else {
    sorompo.write(0); // NYITVA
    digitalWrite(LED1, LOW);
    digitalWrite(LED2, LOW);
  }
}
// Logika összefoglalás
Gomb lenyomvonatJon állapot vált
vonatJon = trueszervó 90° → LED villog
vonatJon = falseszervó 0° → LED-ek KI
millis()nem blokkoló időzítés
VillogásLED1 ↔ LED2 felváltva
// További évfolyamok
// Vissza 13. Évfolyam Gyűjtőoldal → // Évfolyam 11. Évfolyam Megnyitás → // Évfolyam 9-10. Évfolyam Megnyitás →