Codesys serielle Verbindung mit Raspberry Pi und Arduino

Informationen und Textbausteine:

In Bearbeitung [ … ]

Modbus/ Serial Einrichtung:

sudo raspi-config

    Would you like a login shell to be accessible over serial?
            -> NO

    Would you like the serial port hardware to be enabled?
            -> YES

    The serial login shell is disabled
    The serial interface is enabled

/boot/firmware/config.txt

[all]
    # Disconnect bluetooth fram UART
    dtoverlay=w1-gpio
    dtoverlay=disable-bt
    enable_uart=1

/etc/codesyscontrol/CODESYSControl_User.cfg

[SysCom]
    Linux.Devicefile.1=/dev/ttyAMA0
    Linux.Devicefile.2=/dev/ttyUSB0

Beispielprogramm:

Arduino:

void setup() {
    Serial.begin(9600); // Setze die Baudrate auf 9600
}

void loop() {
    if (Serial.available() > 0) {
        String receivedData = Serial.readStringUntil('\n');
        Serial.print("Empfangen: ");
        Serial.println(receivedData);

        String responseData = "Antwort: " + receivedData;
        Serial.println(responseData);
    }
}

Codesys:

  • Erstelle ein neues CODESYS-Projekt und füge einen seriellen Kommunikationsbaustein hinzu.
  • Konfiguriere die serielle Schnittstelle (/dev/ttyAMA0 oder entsprechend).
Beispielprogramm in ST (Structured Text):
PROGRAM Serial_Comm
VAR
    uart: SysCom.SerCom; (* Serieller Kommunikationsbaustein *)
    sendData: STRING := 'Hallo Arduino';
    receiveData: STRING;
    bytesWritten: DINT;
    bytesRead: DINT;
END_VAR

(* Initialisierung der seriellen Schnittstelle *)
uart.pPort := '/dev/ttyAMA0';
uart.iBaudRate := 9600;
uart.iDataBits := 8;
uart.iStopBits := 1;
uart.iParity := SysCom.Parity.NONE;
uart.xActive := TRUE;

(* Sende Daten an Arduino *)
IF uart.xConnected THEN
    uart.Write(s:=sendData, len:=LEN(sendData) + 1, rd:=bytesWritten);
END_IF

(* Empfange Daten vom Arduino *)
IF uart.xConnected THEN
    uart.Read(s:=receiveData, len:=256, rd:=bytesRead);
END_IF

Raspberry Pi – raspbian SSH

SSH vor dem ersten Start des Raspberry Pi aktivieren

Version: 28/05/2017 - zur Überarbeitung markiert

BEITRAG VERALTET! Eventuell ist er noch brauchbar falls Du einen RasPi 1 mit dem alten Betriebsystem verwendest. Download der alten Raspbian Images ist HIER möglich zum aktuellen Zeitpunk.

Hier nur eine schnelle beiläufige Information zum Betriebssystem Raspbian für den Raspberry Pi. Es betrifft die Standarteinstellung für den SSH Zugriff.

Seit Release des Raspbian Images von 25.11.2016 ist der SSH-Server standardmäßig deaktiviert. Offensichtlich aus Sicherheitsgründen. Wenn man nun wie ich die Pi’s lediglich Headless betreibt, war ich schon verwundert wieso ich auf einem neu installieren Gerät keine SSH Verbindung herstellen kann.

Also wie aktiviert man nun wieder den SSH-Server auf dem Raspberry Pi? Ganz einfach: Die neu installierte SD-Karte nochmal flott an einem anderen Rechner mounten und in der Bootpartition eine leere Textdatei mit dem Namen ssh erstellen.

Das war es auch schon, wichtig ist lediglich das die Datei exakt so heißt. Nach dem nächsten Bootvorgang ist der SSH-Server wieder ganz normal zu erreichen.

Die Standart Zugangsdaten lauten:

Username: pi Passwort: raspbian

Das Passwort sollte und muss man nach dem ersten Login mit passwd ändern! Unter Umständen je nach Internetzugang und Einstellungen des Routers ist der Pi auch von außerhalb erreichbar.

Zur Grundkonfiguration sollte man sich sudo raspi-config genauer anschauen, als erstes sollte man dann die Speicherkarte expandieren.


Änderungslog:

  • 2022-08-15 20:27:14 Monday
    Beitrag als veraltet markiert da es Rasbian in dieser Version seit 2020 nicht mehr gibt und weiterentwickelt wird.