staging.inyokaproject.org

Probleme mit RS232 - Dosbox - S5 Siemens Simatic Steuerung

Status: Gelöst | Ubuntu-Version: Ubuntu 21.04 (Hirsute Hippo)
Antworten |

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Bei meinen Versuchen über Dosbox eine brauchbare Verbindung zu einer Siemens S5 Steuerung auf zu bauen scheitere ich.

Die Verbindung wird über eine ttyS0 Verbindung Realisiert.Typ ist Baut:9600,Bit:8,Stopbit1,Parity:Even

Also alles nichts "Exotisches" aber es wird keine "richtige" Serielle Schnittstelle (Com1) erzeugt.

Hat einer Erfahrung? Welche Angaben werden benötigt?

Gruß Stephan

Nachtrag

Mit FreeDos wird die Verbindung zwar hergestellt – aber leider nicht "Stabil" ☹ S5 wird nach einer gewissen Zeit nicht mehr angesprochen.

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 7756

Kellerkind_2009 schrieb:

Siemens S5 Steuerung

Schreib' wenigstens Simatic dazu, damit keiner an ein Telefon mit herausziehbarer Antenne denkt! 😉

Baut:9600,Bit:8,Stopbit1,Parity:Even

Wenn Du schon statt richtigerweise b/s Baud verwendest, dann wenigstens mit "d".

Wann bricht denn die Verbindung ab (oder wird geschlossen), wenn Daten fließen oder wenn keine fließen? Bei letzterem braucht es vielleicht sowas wie einen "Autoping", ein offen Halten, würde ich mal bei AT-Befehlen suchen.

Bei ersterem kann's mehrere Ursachen geben. Als erstes würde ich auf 2400 b/s 'runtergehen, 8N1 natürlich beibehalten. Die Frage ist auch, wie Du an den Rechner anschließt, einen echten COM-Port (RS232-C) mit UART hast Du ja wohl nicht. Da kannst Du schon froh sein, daß Du bei der Emuliererei überhaupt einen Connect hinbekommst.

Die letzte FreeDOS stable ist schon 5 Jahre alt, 1.3-rc4 1 Monat.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

Kellerkind_2009 schrieb:

[…] es wird keine "richtige" Serielle Schnittstelle (Com1) erzeugt.

Sofern ich mich richtig erinnere (Siemens Simatic S5 ist schließlich aus dem letzten Jahrtausend), benötigt die Software von Siemens sowohl eine „echte“ COM1 des Betriebssystems MS/PC-DOS 3.3 als auch altersgerechte Unterstützung durch das Bios, und die Steuerung will auch echte EIA-232-Pegel sehen (also ± 12V) und auch Hardware-Handshake (CTS, RTS, DSR, DTR, DCD).

Bei Dosbox unter Linux wäre ich deshalb skeptisch. Vielleicht funktioniert eine virtuelle Maschine mit simulierter Steinzeit-CPU, echtem MS/PC-DOS 3.3 oder MS-DOS 6.2 besser. Selbst zu Zeiten, als das noch alles modernste Technik war, hat nicht jeder Hardware-Adapter funktioniert.

Hast Du Siemens gefragt, was sie empfehlen?

Kellerkind_2009

(Themenstarter)
Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Danke für die Antworten.

Siemens habe ich noch nicht gefragt.

Es ist ein PC aus dem Jahre 1992 und der hat eine RS232-C Schnittstellenkarte und MS Dos 3.1 als BS.

Mit dem Versuchs PC Shuttle und Freedos Version 13 bekomme ich eine

Verbindung zustande.Die wird aber oftmals beim Senden von Steuerungsbefehlen abgebrochen/beendet.Eine Wiederaufnahme ohne Neustart ist nicht möglich.

Anbei ein Sreenshot der Steuerungsanfrage (unter Dosbox)

Bilder

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

Bei der Prozedur 3964(R) muss auf jeden Fall ein Gerät auf „hohe Priorität“ und das andere auf „niedrige Priorität“ eingestellt werden. Vielleicht heißt das auch „mit Priorität“ und „ohne Priorität“ oder so ähnlich. Auf jeden Fall unterschiedlich einstellen, sonst können Konflikte bei beidseitig gleichzeitigem Sendewunsch nicht aufgelöst werden.

Außerdem müssen die einzelnen Zeichen innerhalb einer Zeichenverzugszeit eintreffen und die Quittungen innerhalb einer Quittungsverzugszeit. Diese zeitlichen Anforderungen lassen sich bei herkömmlicher Hardware oder simulierter Hardware schlecht kontrolliert einhalten.

Kellerkind_2009

(Themenstarter)
Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Welche Möglichkeit habe ich den Datenaustausch zu sehen? Die Steuerung meldet dann nur "Control Senden zur SPS nicht möglich"

Danke für die Hilfe 😀

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6234

Welche Möglichkeit habe ich den Datenaustausch zu sehen?

Eine reine Softwarelösung fällt mir dazu nicht ein. Wir hatten damals so etwas wie eine breakout box (drittes Bild, So etwas gab's damals auch bei Conrad). Damit konnte man dann mit einem Protokollanalyser, oder eienem PC mit entsprechender Software alles sehen.

Mit diesen kleinen Boxen könnte man, auch ohne Software, zumindest erkennen ob da überhaupt "Leben" auf der Leitung ist, sofern die LEDs den Sender nicht zu stark belasten. Profigeräte hatten deshalb zusätzliche Verstärker. Es gibt Geräte (Empfänger), z.B. von IBM, die zeigen keinerlei Lebenszeichen, wenn die Steuerleitungen nicht den richtigen Zustand haben.

Du benötigst wahrscheinlich auch irgendeine Form von Handshake / Flusskontrolle (Hardware oder Software). Bei nur einem Stopbit ist das sonst Russisches Roulett.

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 611

Oje, eine S5 ...

Für welches Museum willst du die denn aktivieren? Jeder Arduino ist heute der Kiste doch haushoch überlegen. In den 80-er Jahren hatte ich für die Dinger mal Treiber geschrieben (PDP/RSX11M und VAX/VMS). Obwohl ich damals in Produktion 20mA Schnittstelle bevorzugt habe, wurde im Test auch V24 verwendet. Als Stecker wirklich den 25-poligen V24-SUB-D Stecker nutzen. Lötbrücken im Stecker (RTS/CTS und DSR/DTR Brücken) möglichst vermeiden, sonst passiert das, was du festgestellt hast (Neustart des S5 Kommunikationseinheit). Eine Soft-Synchronisation (Ctrl-S/Ctrl-Q) geht gar nicht! Daher wirst du mit neueren USB/V24 Umsetzern kein Glück haben. Du brauchst schon eine "richtige" V24 Schnittstelle (keine 3 Draht Strecke).

Sonst musst du die S5 mit den Bauchgruppen penibel konfiguriert haben. Beispiel: Der Einsatz der Grund- und Erweiterungsbaugruppe der AS512 darf am SIMATIC Zentralgerät nur auf dem Steckplatz 127 mit 137 erfolgen. In einem Zentralerweiterungsgerät dürfen nur die Steckplätze 77 mit 87, 97 mit 107 und 117 mit 127 verwendet werden.

Kommunikation mit 1 Start-Bit, 8 Daten-Bits (bei 3964/7 nur 7 Daten-Bits), Parity-Bit auf "EVEN-Parity", 1 Stop-Bit sind einzustellen. Die Datenübertragungsgeschwindigkeit über den Decodierschalter würde ich auf 2400 Baud (Stellung 2) einstellen. 9600 Baud ist in der Regel zu schnell, wenn du keine ordentliche V24 Hardware hast.

Die Kommunikation erfolgt im Protokoll mit folgendem Blockaufbau: STX, Telegramm-Header, Telegramm-Daten, DLE, ETX, BCC (BCC nur bei 3964R). Das Jumpern der Lötbrücken zum Einstellen der Priorität ist nur relevant, wenn Initialisierungs-Konflikte im Protokoll auftreten (für den Test relativ egal).

Für die Kommunikation muss das DUST3964(R) Protokoll eingehalten werden. Zum Aufbau der Verbindung sendet der aktive Partner das Zeichen STX aus. Antwortet die Gegenstelle vor Ablauf der Quittungsverzugszeit (QVZ) von 550 ms mit dem Zeichen DLE, so geht der Treiber in Sendebetrieb über. Antwortet die Gegenstelle mit NAK, einem beliebigen anderen Zeichen (außer DLE), einem gestörten Zeichen oder die QVZ verstreicht ohne Reaktion, so ist der Verbindungsaufbau gescheitert. Nach insgesamt drei vergeblichen Versuchen bricht der Treiber das Verfahren ab und geht in die Grundstellung.

Gelingt der Verbindungsaufbau, so werden nun die im Ausgabepuffer des aktiven Partners enthaltenen Zeichen mit der gewählten Datenübertragungsgeschwindigkeit an den passiven Partner gesendet. Der passive Partner erwartet innerhalb von 220 ms diese Zeichen, andernfalls sendet er ein NAK. Nach erfolgtem Senden des Pufferinhaltes fügt der Sendetreiber DLE-ETX und bei der 3964R Prozedur den Block-Check-Character als Endekennung an und wartet auf Quittung.

Sendet die Gegenstelle innerhalb der QVZ das Zeichen DLE, so wurde der Datenblock fehlerfrei übernommen. Antwortet die Gegenstelle mit NAK, einem beliebigen anderen Zeichen (außer DLE), einem gestörten Zeichen oder die QVZ verstreicht ohne Reaktion, so wiederholt der Treiber das Senden des Datenblocks. Nach drei vergeblich gesendeten Versuchen bricht der Treiber ab und geht in die Grundstellung.

Sendet die Gegenseite während einer laufenden Sendung das Zeichen NAK, so beendet der Treiber den Block und wiederholt in der oben beschriebenen Weise.

Wenn du dich nicht penibel an das Protokoll und die Zeiten hältst, reagiert die S5 beleidigt (wie du gemerkt hast).

Ich würde dir empfehlen das Protokoll (s.o.) besser selbst zu schreiben als das PC Teil versuchen zum Laufen zu bringen. Wenn es um eine Steuerungsaufgabe geht, kauf dir für 5€ einen Arduino und realisiere deine Aufgabe damit. Das ist wesentlich einfacher und schont die Nerven.

Kellerkind_2009

(Themenstarter)
Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Vielen vielen Dank für die ganzen Infos 😀

Stelle gerade fest,das ich mir scheinbar das Richtige Objekt ausgesucht habe 😲

Der alte PC steuert eine alte Maschine,nun will ich Versuchen (solange es alles noch Funktioniert) einen Ersatz PC zu haben,falls es der alte mal nicht mehr tut.

shiro eine Frage habe ich

Die Datenübertragungsgeschwindigkeit über den Decodierschalter würde ich auf 2400 Baud (Stellung 2) einstellen.

Wo genau soll der Schalter sein? In der .BAT wird das COM1 zuerst so Konfiguriert

MODE COM1:9600,E,8,1

In den Programm finde ich dann (Screenshot) das.

Bilder

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 611

Kellerkind_2009 schrieb:

Wo genau soll der Schalter sein?

Der Dekodierschalter ist auf der Kommunikationsbaugruppe der S5 (war häufig eine CP525 oder CP524). Es gab da aber mehrere Kommunikationsbaugruppen. Zum Einstellen der Datenübertragungsgeschwindigkeit an der S5 ist jeder Schnittstelle ein Decodierschalter zugeordnet. Die Summe der Übertragungsraten eines jeden Grund- und Erweiterungsbaugruppenpaares darf jeweils 9600 Baud nicht überschreiten.

Decodierschalter     0    1    2    3    4    5    6    7
Übertragungsrate  9600 4800 2400 1200  600  300  150  110

Leider habe ich die vielen S5 Ordner nicht mehr, kann daher nur aus der Erinnerung Hilfestellung geben (nach 40 Jahren dünnt sich das etwas aus). Per Google findet man noch ein paar Informationen. Schau da mal nach. Die beziehen sich zwar auf neuere S5en (die auch schon L1 unterstützen) aber können schon weiter helfen. Die mit denen ich zu tun hatte, besaßen noch die Größe einer Bierkiste. Das Manual >>hier<< ist beispielsweise für eine S5 mit CP544, die ich so nicht benutzt habe und auch den Dekodierschalter nicht hat (die CP kann sogar über eine 3-Draht V24 Leitung betrieben werden). Na ja, halt neuere Geräte...

Musst mal schauen, was für eine S5 Type und welche Baugruppen bei dir vorhanden sind.

Nach Reduktion der Übertragungsgeschwindigkeit an der S5 musst du natürlich auch die Kommunikation auf dem PC anpassen z.B.

MODE COM1:2400,E,8,1

Dein DOS Programm kenne ich leider nicht und kann dir daher nicht sagen, wie es zu bedienen ist.

Kellerkind_2009

(Themenstarter)
Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Dann werde ich mit dem jetzigen Stand mal sehen wie weit ich komme 😬 (Denke ich habe mir das zu Einfach vorgestellt)

Werde auch mal die genauen Komponenten Bezeichnungen heraussuchen und dann Mitteilen.

Mein Problem ist,das ich die Maschine zum Testen immer vom alten PC trennen muss,da ich ja die Gegenstelle (S5) brauche ☺

Kann darum ein wenig dauern bis ich wieder Infos habe.

Auf jeden Fall nochmal einen Herzlichen schönen Dank an alle bis hier. 👍

Gruß Stephan

Kellerkind_2009

(Themenstarter)
Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Das Problem war DosBox! Mit DosBox-X Funktioniert es Einwandfrei 😬 Man muss es aber selbst aus einer .rpm bauen,da es kein .deb Paket dafür gibt – nur Snap.

stephan@stephan-desktop:~$ dpkg -l | grep dosbox
ii  dosbox-x        2022.12.26-2      amd64        DOS emulator for running DOS games and applications including Windows 3.x/9x

Gruß Stephan

Antworten |