+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Nov 2011
    Beiträge
    103

    Standard 3964/3964R-Protokoll unter linux / Buderus Logamatic 4000

    Hallo community,

    kann mir jemand behilflich sein eine serielle Verbindung mit 3964/3964R-Protokoll aufzubauen.
    Mein aktuelles Problem ist, daß ich keinen Protokolltreiber für Linux finde.
    Hat jemand sowas schon im Einsatz?

    Die eigentliche Anwendung dahinter ist die Anbindung meiner Buderus Logamatic 4000 Anbindung über das RS232 Gateway. Hat unter Windows mit einem Protokolltreiber von leaoil gut funktioniert.

    VG, Hermann

  2. #2
    Registriert seit
    Feb 2007
    Ort
    Syrgenstein
    Beiträge
    572

    Das Protokoll 3964 bzw. 3964R ist gewöhnlicherweise ein serielles Siemens-Protokoll zur Kommunikation mit SPS-Steuerungen.
    Schau mal nach libnodave. Darüber sollte es funktionieren.
    The difference between men and boys is the price of their toys

  3. #3
    Registriert seit
    Nov 2011
    Beiträge
    103

    hallo Dieter,

    besten Dank für den Tip. Habe libnodave-0.8.5 auf meinem Banana Pi-R1 kompiliert (im Makefile das workaround für Arm Prozessoren auskommentiert)
    Code:
    CFLAGS+=-DARM_FIX
    Mein Buderus RS232 Gateway hängt an einem Perle Iolan STS16 (RS232 Server) und wird unter TCP-Port 10001 mit Baudrate 9600, 8,N,1 angesprochen.

    Gibt es unter libnodave ein Serverprogramm, welches die Kommunikation über 3964R zwischen meinem Port 10001 (Buderus RS232 Gateway, Perle STS16) und einem lokalen Port am Banana PI (welcher dann durch Symcon ausgewertet werden kann) regelt?

    Komme an diesem Punkt irgendwie nicht weiter?

    Danke und VG,
    Hermann
    Geändert von Hermann (12.07.15 um 20:23 Uhr)

  4. #4
    Registriert seit
    Nov 2011
    Beiträge
    103

    Hallo zusammen,

    Die Frage geht eher an die Entwickler.

    Ist es geplant für die Linux Version von Symcon auch ein Modul zur Anbindung von S5 und S7 SPSen zur Verfügung zu stellen?
    Falls ja wann und ist es in diesem Zuge auch möglich, das Protokoll 3964/3964R basierend auf eine serielle Schnittstelle mit einzubinden ?

    Gruß,
    Hermann

  5. #5
    Registriert seit
    Feb 2007
    Ort
    Syrgenstein
    Beiträge
    572

    Zitat Zitat von Hermann Beitrag anzeigen
    Gibt es unter libnodave ein Serverprogramm, welches die Kommunikation über 3964R zwischen meinem Port 10001 (Buderus RS232 Gateway, Perle STS16) und einem lokalen Port am Banana PI (welcher dann durch Symcon ausgewertet werden kann) regelt?

    Komme an diesem Punkt irgendwie nicht weiter?
    libnodave hilft dir hier nicht weiter. Du brauchst von Perle einen Treiber, der dir einen (virtuellen) seriellen Port auf deinem Banana Pi zur Verfügung stellt. Ich glaub bei Perle nennt sich das True Port.

    Gruß
    Dieter
    The difference between men and boys is the price of their toys

  6. #6
    Registriert seit
    Nov 2011
    Beiträge
    103

    Hallo Dieter,

    danke für die Anmerkung. Das Problem ist nicht der Perle. Es geht hier rein um die Sicherungsschicht.
    :

    ISO/OSI Modell

    7 Anwenderschicht N/A
    6 Darstellungsschicht N/A
    5 Sitzungsschicht N/A
    4 Transportschicht N/A
    3 Vermittlungsschicht N/A
    2 Sicherungsschicht 3964/3964R
    1 Bitübertragungsschicht RS232

    Erklärung:
    Das Protokoll 3964R (auch DUST genannt) erfüllt die Funktion einer Sicherungsschicht und ist damit kein vollwertiges Protokoll. Es erlaubt die transparente Übertragung von Datenblöcken zwischen zwei Stationen, die Punkt-zu-Punkt verbunden sind. Die Kommunikation erfolgt im halbduplex Modus.

    Auf der Bitübertragungsschicht wird das asynchrone Standardverfahren (1 Startbit, 8 Datenbits, 1 Parität und 1 Stoppbit) unter Zuhilfenahme des ISO 7-Bit Zeichensatzes für Steuerzeichen (DLE, STX, ETX etc) verwendet.

    Es existieren zwei Ausführungen der Prozedur:

    3964
    hier wird zur Sicherung der Daten lediglich die Parität herangezogen
    3964R
    sichert die Daten zusätzlich mit einer Längsparität
    Eine weite Verbreitung fand und findet das Protokoll im Prozessautomatisierungsbereich speziell bei Simatic-SPSen zum Datenaustausch zwischen Geräten. 3964R wird auch als Sicherungsschicht bei einer Variante von Sinaut 8FW eingesetzt.


    Gruß,
    Hermann
    Geändert von Hermann (14.07.15 um 20:31 Uhr)

  7. #7
    Registriert seit
    Nov 2011
    Beiträge
    103

    Habe jetzt mal mit einer Register variable auf den client socket des buderus gateways mit folgendem skript mitgeloggt.

    PHP-Code:
    <?php
    // wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
    if ($IPS_SENDER == "RegisterVariable")
    {
      
    // bereits im Puffer der Instanz vorhandene Daten in $data kopieren
      
    $data  RegVar_GetBuffer($IPS_INSTANCE);
      
    // neu empfangene Daten an $data anhängen
      
    $data .= $IPS_VALUE;
      
    $datahex ord($IPS_VALUE);
      switch (
    $datahex) {
        case 
    2:
            
    RegVar_SendText($IPS_INSTANCEchr("16")); // STX -> DLE senden
            
    break;
        case 
    3:
          
    IPS_Sleep(200);
            
    RegVar_SendText($IPS_INSTANCEchr("16")); // ETX -> DLE senden
           
    break;
        }
      
    $mda GetValue(54507 /*[Technik\Heizung\mda]*/); // Merker Normalmodus (0) oder Direktmodus (1)
      
    if ((strlen($data) >= ) and ($mda == 0)) // Merker Daten werden im Normalmodus von der Logamatic empfangen
      
    {
          
    // $data in Blöcke von bis zu 9 Zeichen zerlegen
          
    $datasets str_split($data9);
          
    // $data leeren
          
    $data "";

          
    // alle Datensätze durcharbeiten
          
    for ($i 0$i count($datasets); $i++)
          {
             
    // vollständige Datensätze (genau 9 Zeichen lang) ausgeben
             
    if (strlen($datasets[$i]) == 9)
             {
             
    $string[$i]=$datasets[$i];
                
    $hexstring[$i]='';
                for (
    $x=0;$x<strlen($string[$i]);$x++)
                    {
                     
    $hexstring[$i].=dechex(ord(substr($string[$i],$x,1)))." ";
                    }
              echo 
    "empfangener Datensatz: ".$hexstring[$i]."\n";
             }
             else
             {
              
    // Unvollständige Datensätze in $data schreiben
              
    $data $datasets[$i];
             }
          }
      }
      if ((
    $datahex == 172) and ($mda == 1)) // Merker $mda ==1 Direktmodus, alle Datensätze werden von der Logamatic gesendet
      
    {
          
    SetValue(54507 /*[Technik\Heizung\mda]*/0);
          
    $array explode("\x02\xAB\x00"$data);
          
    //$array = explode("\x10\x03", $array1[1]);
          
    $dateiname "test.txt"// Name der Datei
            
    $handler fOpen($dateiname "a+");
            for ( 
    $x 0$x count $array ); $x++ )
            {
              echo 
    $x." : ".str2hex($array[$x])."\n";
              
    $text = ($x." : ".str2hex($array[$x])."\n");
              
    fWrite($handler $text);
            }
            
    fClose($handler);
          
    $data "";
      }
      
    // Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
      
    RegVar_SetBuffer($IPS_INSTANCE$data);
    }
    function 
    str2hex($string// Funktion String in Hex umwandeln
        
    {
            
    $hex='';
            for (
    $i=0$i strlen($string); $i++)
                {
                
    $hex .=" ".dechex(ord($string[$i]));
                }
            return 
    $hex;
        }
    ?>
    hier das debugging:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	debugging register variable.jpg 
Hits:	197 
Größe:	136.6 KB 
ID:	30126
    hier der client socket auf den Perle STS16
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	client socket.jpg 
Hits:	117 
Größe:	53.7 KB 
ID:	30127

    das sollte demonstrieren, dass meine Kommunikation steht (1. Schicht ISO-OSI Modell)

    libnodave dürfte mein Problem lösen können, allerdings habe ich hier keinerlei Erfahrung und bin deswegen auf Euere Hilfe angewiesen ...
    Geändert von Hermann (14.07.15 um 20:54 Uhr)

Ähnliche Themen

  1. Buderus Logamatic Web KM200
    Von Slash im Forum Haustechnik
    Antworten: 10
    Letzter Beitrag: 28.07.14, 12:31
  2. Buderus Logamatic Web KM200
    Von steiner im Forum Haustechnik
    Antworten: 0
    Letzter Beitrag: 24.07.14, 08:20
  3. Buderus Logamatic 2107
    Von RWN im Forum Haustechnik
    Antworten: 85
    Letzter Beitrag: 11.09.12, 22:17
  4. Buderus Logamatic 4000 / RS232 Gateway
    Von Hermann im Forum Haustechnik
    Antworten: 5
    Letzter Beitrag: 21.07.12, 18:25
  5. Logamatic 4000
    Von manza29 im Forum Haustechnik
    Antworten: 1
    Letzter Beitrag: 09.11.10, 09:12