Forum: Mikrocontroller und Digitale Elektronik SPS - Interessantes Gebiet


von Martin (Gast)


Lesenswert?

Hallo Leute!

Ich habe mich in letzter Zeit einbißchen mit Mikrocontroller
beschäftigt.
Für ein neues Projekt wird jedoch eine SPS notwendig.

Das bedeutet die SPS ist schon da und das laufende Programm soll
verändert werden. Es existiert aber kein Quellcode. Ich glaube man
nennt dies bei der SPS Anweisungsliste.

Es handelt sich um eine SPS S7 von Siemens.

Nun meine Fragen:
Gibt es bei der SPS ebenfalls so etwas wie ein Lockbit, damit man das
Programm nicht auslesen kann?

Kann man ein Programm, welches sich in der SPS befindet runterlesen und
dann verändern? Erhält man dann wieder die Anweisungs-Liste? Oder hat
man dan nur sowas wie ein Hex-File in Händen?


Ich danke euch Profis schonmal für eure Antworten.

Tschüss

Martin

von ... (Gast)


Lesenswert?

"Gibt es bei der SPS ebenfalls so etwas wie ein Lockbit, damit man das
Programm nicht auslesen kann?"

JA

"Kann man ein Programm, welches sich in der SPS befindet runterlesen
und
dann verändern?"

JA

Erhält man dann wieder die Anweisungs-Liste?

JA oder kop / fup

und noch eines eine sps ist eine interpretermaschine

von bla (Gast)


Lesenswert?

Es gibt einen unterschied ob man S7-200er Reihe verwendet oder
die S7 300/400er Reihen.
es gibt auch geschützte bausteine in der SPS aber wie ja fast überall
möglich lassen sich auch diese Bausteine mit einem Programm
freischalten. Meist sind das Standardbausteine (Funktionen) von
Siemens. Aber normaler Weise läßt sich immer alles in einer S7 ändern.

mfg bla

von Martin (Gast)


Lesenswert?

Wie kann man erkennen, dass Lockbits gesetzt sind?

Benötigt man hierzu ein Programmiergerät oder kann man direkt einen PC
dranschließen, mit dem man das Ganze auslesen kann und feststellen
kann, ob Lockbist gesetzt sind?

mfg Martin

von bla (Gast)


Lesenswert?

kommt auf die SPS drauf an.
bei manchen 200er kann man ein Serielles Kabel verwendet. Ansonsten
brauch man einen MPI oder/und Profibus Adapter um auf die CPU zu
kommen.

mfg bla

von Thomas S (Gast)


Lesenswert?

Ich habe noch nichts von einem Lockbit in einer S7 200/300 gehört.
Meines Wissens ist das Anwenderprogramm immer aus der SPS auslesbar.
Einige Systembausteine die in der SPS liegen mögen kompiliert sein und
dadurch unveränderbar und unlesbar.
An einer Siemens SPS kann man einen Speicherabzug machen und eine neue
damit in den gleichen Zustand bringen also klonen.

HAt da jemand andere Erfahrungen?

von Basti (Gast)


Lesenswert?

man muss sich auch mal überlegen wofür so eine sps eigentlich da ist.
eine sps ist doch hauptsächlich dafür da um irgendwelche produktions
oder förderanlagen oder ähnliches zu automatisieren. eine firma baut
sich so eine anlage selber oder lässt sie bauen und kauft sie dann samt
software, weil aber so eine anlage aber ja eigentlich so
anwendungsspeziefisch ist, ist doch die gefahr von softwareklau
wahrscheinlich nicht so hoch wie das aus irgendwelchen gründen das
programm auf irgendeinem rechner "verloren" geht. wenn es denn dann
aus irgendwelchen gründen so kommen sollte und man irgendwann
irgendeine kleinigkeit ändern möchte, aber die sps "gelockt" hat
steht man mehr als dumm da...

also ich wüsste nicht das man das bei einer s7 machen kann und glaube
auch nicht das es geht

von Thomas (Gast)


Lesenswert?

Man kann die 300/400er Serie mit einem Passwort schützen. Dann kann man
sich die Bausteine auch nicht mehr aus der SPS auslesen. So weit ich
weiß ist es nur möglich den Passwortschutz aufzuheben, in dem man im
Besitz des Quellcodes ist und das ganze Programm neu überträgt.

Der Bausteinschutz ist ohne Probleme knackbar (wenn man dabei überhaupt
von kancken sprechen kann), wie schwer das bei dem SPS-Schitz ist weiß
ich nicht.

Gründe dafür die SPS zu schützen gibt es genug. Ohne Schutz könnte z.B.
jemand was am Programm ändern, irgendwas an der Anlage kaputt fahren und
dann das alte Programm wieder aufspielen.

von SPS-Hasser (Gast)


Lesenswert?

Wozu brauchst denn die SPS ?

von Minicharl (Gast)


Lesenswert?

einer S7 können Schutzstufen zugewiesen werden:
 Schutzstufe 1: entspricht kein Schutz
 Schutzstufe 2: nur lesender Zugriff möglich
 Schutzstufe 3: weder lesender noch schreibender Zugriff möglich

Ausserdem kann man in den Systemdaten das F-CPU Register definieren,
ein Programm kann dann ausgelesen werden, sofern es die Schutzstufe
erlaubt. Zurückübertragen gelingt jedoch nur in die gleiche S7-CPU,
weil das F-CPU Register einer anderen S7-CPU natürlich anders definiert
ist.(damit lässt sich dann ein Kopierschutz von einer zur anderen CPU
bewerkstelligen.

Ein anderer Schutzmechanismus ist der
KNOW-HOWSchutz: Ein Baustein mit der Eigenschaft KNOW_HOW_PROTECT, ist
ein geschützter Baustein, der nicht bearbeitet werden kann

von Martin (Gast)


Lesenswert?

Hallo Leute!

Danke für die vielen Antworten.

Eine Frage habe ich noch, weil ich mich vergewissern möchte:

Wenn es mir jetzt gelingen würde, die SPS auszulesen, habe ich dann
definitiv den Quellcode in Händen oder nur ein Hex-File?

Ich weiß, dass ich diese Frage schon stellte, aber ich nehme mal
an, dass man bei der Anweisungsliste auch Kommentare einbauen kann.
Sind diese dann auch wieder zu sehen nach einem Auslesen?

Danke Leute
Tschüss
Martin

von damien (Gast)


Lesenswert?

moin.

man kann zum einen seine bausteine schützen (können nicht geöffnet
werden). dabei musste man seine awl in structed text umwandeln und dann
ne zeile hinzufügen. sowas wie password=1. wie das genau
funktioniert...befrage mal die hilfe zur s7, die war meines erachtens
recht gut.
zum anderen gibts auch noch, wie oben erwähnt die möglichkeit ein
systempasswort zu vergeben [s7 hilfe ;)]. wenn man den code auslesen
kann, hat man dann die awl ohne kommentare und
"variablenbeschreibung" vor sich.

von bla (Gast)


Lesenswert?

normaler Weise ist eine SPS nie geschützt ist mir in meiner bisjetzige
Berufslaufbahn noch nicht untergekommen.
Mit welcher Software ließt du den die SPS aus?

fmg bla

von Martin (Gast)


Lesenswert?

Es ist so, dass eine Firma eine SPS besitzt, die schon einige Zeit läuft
und von einer anderen Firma angeschlossen und programmiert wurde.
Jetzt ist diese erste besagte Firma zu uns gekommen und möchte eine
Änderung oder besser gesagt eine Adaptierung. Es soll ein zusätzlicher
Ausgang für eine bestimmte Schaltaufgabe verwendet werden.

Aus diesem Grund erkundige ich mich hier bei euch Profis, da ich mit
SPSen nur in der Schule zu tun hatte.

Wenn die SPS nämlich geschützt wäre und man das Programm sowieso nicht
auslesen kann, erledigt sich das Ganze für uns von selbst, weil es dann
keinen Sinn macht, wenn ich mich auf den SPSen schlau mache.

Ich weiß nur, dass es sich um eine SPS S7 von Siemens handelt.
Ich habe noch keine Hardware oder Software gesehen.

Tschüss
Martin

von Benjamin S. (b_sieber)


Lesenswert?

ich arbeite beruflich mit der Simatic S7 300 und 400

hier eine kleine kurzreferenz dazu, ich hoffe ich kann einige diener
fragen damit beantworten.

###Schutzfunktionen####

man programmiert mit dem S7-Manager die logik in verschiedene Bausteine
welche über den Know-How-Schutz einzeln passwort-geschüzt werden
können.

###Programmierung###

die programmierung kann im normalfall in drei sprachen stattfinden.
-FUP (Funktionsplan) entspricht ungefähr den bekannten logigsymbolen
-KOP (Kontaktplan) entspricht ungefähr einem um 90° gedrehten
Schltplan
-AWL (Anweißungsliste) ist eine "art" assembler wenn man will
neuerdings ist noch eine vierte sprache namens SCL verfügbar welche
ähnlichkeit mit Pascal hat

zum verständniss der einzelnen sprachen ein kurzes beispiel einer
einfachen undverknüpfung zweier eingänge:

FUP:
        +---------+
E0.0 ---+  &      |
        |         |
E0.1 ---+         +--- A1.0
        +---------+
KOP:
|
+---| |---|  |---( )
|  E0.0   E0.1  A1.0
AWL:
U E0.0
U E0.1
= A1.0

###Symbolik & Kommnetare###

Bei der SPS können für alle Opperanten (Eingänge, Ausgänge,
Merker[=Zwischenspeicher], Programm- und Datenbausteine, etc.)
Symbolische namen vergeben werden dies geht über die Symboltabelle von
Step7 oder direkt aus dem Programmeditor herraus so definiert man also
für den eingang E0.0 das Symbol Taster1 und schreibt folglich
nichtmehr
U E0.0
sondern
U "Taster1"

weiterhinn können pro programmbaustein und pro enthaltenem Netzwerk
64KByte Kommentar geschrieben werden. bei AWL ist zusätzlich noch
InlineKommentar möglich (einfach mit // am ende der Zeile anfügen).
Wenn man Kommntare benuzt sollte man jedoch darauf achten das Kommntare
NICHT mit auf die SPS übertragen werden!!!!!! d. h. das man zusätzlich
zu dem Programm auf der SPS das Programm auch immer offline haben
sollte damit im falle einer Änderung oder Fehlersuche der Kommentar zur
verfügung steht.

###Rückübertragen vom AS###

das zurückübertragen eines Programmes vom AS (Automatisierungsgerät =
SPS) auf das PG (Programmiergerät = Computer mit schnittstellenkabel)
ist jederzeit möglich. Man erhält den vollen quellcode zurück, das
einzige was weg ist sind wie schon gesagt die Kommentare.

###Programmbausteine###

Bei der Programmierung einer SPS sollte man außerdem auf die
verschiedenen Bausteintypen achten:
-OB (Organisationsbaustein) die Funktion dieses Bausteintyps ist von
der Bausteinnummer abhängig z.B. OB1->Zyklischer Programmablauf
OB121->reaktion bei programmfehler, etc.
-DB (Datenbaustein) enthält daten ähnlich wie eine exceltabelle, kann
zum beispiel zum längerfristigen speichern von Produktionsdaten
verwendet werden
-FC (Funktion) wird zur normalen programmbearbeitung benuzt
-FB (Funktionsbaustein) ähnlich dem FC nur das der FB einen eigenen DB
zur speicherung von z.B. Temporären daten besizt

weiterhin existieren noch SFC's und SFB's (Systemfunktionen und
Systemfunktionsbausteine) auf die ich hier nicht weiter eingehen möchte
da das zu tif greifen würde.

###Sinnvoller Programmaufbau###

Die SPS ruft Zyklisch immer den Baustein OB1 auf, um nicht alles im OB1
programmieren zu müssen nuzt man diesen Baustein im Normalfall nur als
"Sprungleiste" und "springt" von ihm aus die einzelnen FC's und
FB's an der sprungbefehl in S7 lautet call somit würde ein
Sprungbefehl in AWL folgendermaßen aussehen:
call FC1        //FC1 aufrufen
call FB1, DB1   //FB1 mit Datenbaustein DB1 aufrufen
die eigentliche Programmabarbeitung sollte auf mehrere FC's bzw. FB's
aufgeteilt werden (z.b. FC1 für betriebszustände der anlage, FC2
Ansteuerung von Meldeleuchten, etc).
eine Referenz wan die einzelnen OB's aufgerufen werden findet man in
der Hilfe vom S7 Manager.

mfg bs

von Thomas (Gast)


Lesenswert?

> ###Rückübertragen vom AS###

> das zurückübertragen eines Programmes vom AS (Automatisierungsgerät >
= SPS) auf das PG (Programmiergerät = Computer mit
> schnittstellenkabel)
> ist jederzeit möglich. Man erhält den vollen quellcode zurück, das
> einzige was weg ist sind wie schon gesagt die Kommentare.

Jederzeit? Wie umgehe ich den Passwortschutz auf der SPS?

von rebs (Gast)


Lesenswert?

Von einem der beruflich die S7 programmiert wie Benjamin Siebert sollte
man erwarten können das er weiß wie man das Programm schützt wenn es in
der S7 ist!
Hatte schon öfters das Problem mit dem Passwortschutz, ist aber auch
verständlich das Firmen die eine Anlage verkaufen und den
Wartungsvertrag haben niemand anders an ihr Programm lassen!
Gruß

von Thomas (Gast)


Lesenswert?

Er sagt ja gerade, dass die Rückübertragung auch möglich ist obwohl
die SPS geschützt ist.
Also wie denn nun?

von rebs (Gast)


Lesenswert?

wenn der Programmierer nicht möchte das jeder das Programm ändert
schützt er sein Programm durch ein Passwort! Und dann kommst du nicht
dran!
Gruß

von Thomas S (Gast)


Lesenswert?

Es gibt ein Forum nur für SPS: http://sps-forum.de/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.