Umwandlung von Zahlensystemen.

Sobald du mit Kommazahlen - floats - rechnest brauchst du Basiskenntnisse über Binärzahlen und deren Umwandlung, um die Problematiken zu verstehen.
 
  • Gefällt mir
Reaktionen: andy_m4
Wieso sollte ein SPS-Anwender

Anwender im Sinne von Programmierer?

Zum einen gibt es noch ältere SPS für die man sogar Oktalsystem können "sollte", da hier z.B. die Zeilennummer so generiert sind.

Generell ist es für das Verständnis und gerade bei SPS arbeiten ja viele Systeme und Geräte zusammen. So kann es sein, das irgendein Sensor einen Wert nur Hexadezimal ausgibt, aber im HMI möchte man diesen natürlich in Dezimal visualisieren, (klar macht das TIA selbst) . Ansonsten ist es für die Fehlersuche sehr von Vorteil wenn ein Gerät nur "5E" anzeigt und man das umrechnen kann.

Ansonsten kann es auch von Vorteil sein wenn man Schnittstellen zur Fördertechnik, usw. in einer Linie definieren muss.

Wobei was soll ein "SPS Anwender" sein?

Es kommt wie gesagt auf die Tätigkeit an. Manch ein SPS-Programmierer wird es nie brauchen ein anderer vllt


Sobald du mit Kommazahlen - floats - rechnest öfter.

Bei SPS eher weniger, das läuft intern.
 
  • Gefällt mir
Reaktionen: Raijin und BeBur
DHC schrieb:
Es gibt auch unterschiedliche Möglichkeiten der Prozessoren Daten im Speicher abzulegen.
Datenformat Intel / Motorola. Big / Little Endian.
Das ist auch ein gutes Stichwort. Big Endian und Little Endian können verwirrend sein und auch zu Fehlern führen, wenn man nicht weiß, dass es das überhaupt gibt.

Beispiel SPS vs PC:

Eine Visualisierung auf einem PC soll ein 16 bit Integer aus einer SPS auslesen, die maximale Arbeitsbreite der Maschine ist 5000 mm. Das aktuelle Werkstück ist 4660 mm breit, aber die Visualisierung zeigt 13330 mm an. 4660 und 13330 haben nichts miteinander zu tun und die dargestellte Breite wirkt wie eine Zufallszahl, aber ist das wirklich so?

4660 dezimal = 1234 hex
13330 dezimal = 3412 hex

Huch? Beide setzen sich aus einem Byte mit 12 hex und einem Byte mit 34 hex zusammen, aber in verschiedener Reihenfolge. PC und SPS verwenden unterschiedliche Byte-Reihenfolgen. Beide speichern den Wert 4660 ab, allerdings tun sie dies jeweils andersherum. In Hexadezimal springt das sofort ins Auge, in Dezimal wirkt es wie purer Zufall. Die Lösung des Problems: Der PC muss die Bytes des ausgelesenen Integers erst drehen und dann sieht er den richtigen Wert.


Muss man das alles wissen und aus dem Ärmel schütteln können? Nicht unbedingt. Es geht bei Grundlagen nicht zwingend darum, alles aus dem Stegreif auch zu Fuß machen zu können. Meiner Meinung geht es im Kern erstmal darum, überhaupt von der Existenz der Problematik bzw. dem Lösungsweg gehört zu haben, um im Falle eines Falles das vergessene Wissen wenigstens gezielt auffrischen zu können.


Anmerkung: Sorry, wenn das irgendwie nach Oberlehrer klingt. Als Technischer Informatiker in der Software-Entwicklung (primär Labview und C#), der mit SPS-Programmierern zusammenarbeitet, habe ich täglich mit sowas zu tun, siehe die Anekdote aus #20. Und ich habe eben auch regelmäßig damit zu kämpfen, wenn mein Gegenüber eben nicht weiß wovon ich überhaupt spreche. Ich möchte aber betonen, dass ich keineswegs SPS-Programmierer abwerten möchte, weil es nicht zuletzt auch vom Werdegang abhängt (von der Pike auf vs mit 1-2 Kursen weitergebildet). Und vor allem gilt dasselbe natürlich auch andersherum für Hochsprachen-Programmierer gleichermaßen. Es gibt immer solche und solche, in jedem Metier.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: BeBur, Bitopium, Pete11 und 2 andere
SPS-Programmierer abwerten möchte,

Das Problem beim SPS Programmierer ist halt, dass es viele gibt die nur die Standardkurse beim Hersteller (Siemens, respektive Beckhoff) besucht haben und dann das war es dann. Und das reicht dann auch oft für so Standardprogramme (eine Presse mit Zweihandbedienung), wenn man dann noch im normalen Maschinenbau ist, dann ist das eben oft Copy&Paste und die Variablen anpassen und go..

Gibt auch viele SPS-Programmierer die nicht mal wissen was ein Bit und Bye eigentlich ist, obwohl sie täglich damit arbeiten.

Oder Analogwertverarbeitung in der SPS ist auch nicht ohne.

"Gute" SPS Programmierer im Sinne von:

  • Verständnis für Zahlensysteme
  • Ablauf von Maschinen
  • Kenntnisse älterer (S5,S7)
  • etc.

die auch dann vor Ort spontan was machen können, gibt es leider nur wenige. Sehr oft selbstständig und gut bezahlt.

Ich selbst hatte nur als Instandhalter/Montage mit SPS zu tun und eben in der Aus und Weiterbildung. Wir haben aber ordentlich gelernt wie man die div. Zahlensysteme untereinander umrechnet.

Klar für eine Standardanwendung reicht das, und da braucht man die Zahlensysteme eher selten, aber sobald Drehzahlen, Temperaturen, Maße usw. hinzukommen wird es sportlich.
 
  • Gefällt mir
Reaktionen: Raijin
Ja, ich habe in der Tat ähnliche Erfahrungen gemacht.

Um mich mit meinen SPS Kollegen wenigstens über dieselben Begriffe unterhalten zu können - in welcher Programmiersprache gibt es schon "remanente Merker" - habe ich so einen Basiskurs besucht. Klar, ich war absolut nicht die Zielgruppe und die anderen Teilnehmer waren allesamt Elektriker ohne Vorkenntnisse. Entsprechend schwierig war die Thematik für sie - nachvollziehbar, wenn man von alledem noch nie was gehört hat. Die "Parkhaussteuerung" im Abschlusstest war für sie entsprechend stressig und ich hatte .. .. sagen wir mal .. sehr viel Zeit, die anderen dabei zu beobachten ;)

Ist das bei dir, @Universe100 eventuell auch so ein Fall? Steckst du gerade in so einem Kurs und hast den ersten Kontakt mit SPSn und weißt nicht warum und wozu man sowas braucht bzw brauchen könnte?
 
Elektriker ohne Vorkenntnisse.

Das ist einer der wenigen Vorteile vom Mechatroniker ;). Wir haben da sehr viel mitbekommen. Begonnen wurde mit Logo!, dann irgendeine AEG Steuerung mit einer Programmieroberfläche die wie Basic aussah und die man nur in AWL programmieren konnte..

Dann weiter über S5/S7 und dann im Betrieb noch TIA mitbekommen, man sieht wir waren Siemenslastig...
Man muss auch die Eigenheiten der Verarbeitung, Zykluszeit, Einlesen der Ein und Ausgänge usw. kennen.

Viele denken halt SPS ist einfach, weil sie erst mal nur FUP sehen, dabei schreibt man ja heute in SCL. Und das ist nach meinem Verständnis schon relativ nahe an einer Programmiersprache für PC, von daher sollte man spät. jetzt diese Kenntnisse fordern.
ich denke beide müssen zusammenarbeiten, der SPS und der Programmierer der ich sage mal IT.


TE ist m.W. Azubi bei einem bekannten Staatskonzern mit zwei Buchstaben. Dort werden Berufe ausgebildet die auch SPS im Rahmenlehrplan stehen haben, aber es wird nur in wenigen Bereichen verwendet (Fahrzeugtechnik, gewisse Stellwerke ..)
Da es nun mal am Rahmenplan steht, vermittelt der Konzern das über Seminare, die mal gut mal schlecht sind. Und da er es betrieblich nicht anwenden wird, fragt er denke ich nach.
 
  • Gefällt mir
Reaktionen: Raijin
brettler schrieb:
ich denke beide müssen zusammenarbeiten, der SPS und der Programmierer der ich sage mal IT.
Das sowieso. Ich pflege da einen sehr offenen Austausch mit den Kollegen, weil ich nun mal die Bedienoberfläche bzw. die übergeordneten Systeme (Datenbanken, etc) programmiere und sie die Steuerung für die Maschine. In unserem Mutterkonzern ist das anders, da schieben sie sich immer gegenseitig die Schuld zu. Aus dem einen Büro hört man "Das ist nicht mein Problem, liegt an der SPS" und aus dem anderen Büro "Das ist nicht mein Problem, liegt am PC". Statt uns gegenseitig die Schuld zu geben, trägt bei uns im Tochterunternehmen jeder sein KnowHow zur Problemlösung bei - auch wenn ich natürlich immer Recht habe und die SPS immer schuld ist .. .. :D

Kommunikation ist das A und O, nicht nur PC<>SPS, sondern auch Mensch<>Mensch.

brettler schrieb:
Da es nun mal am Rahmenplan steht, vermittelt der Konzern das über Seminare, die mal gut mal schlecht sind. Und da er es betrieblich nicht anwenden wird, fragt er denke ich nach.
Klingt plausibel. Dasselbe mache ich gerade mit meinem Neffen (15) in Mathe durch, pq-Formel... "Papa hat gesagt ich brauche das eh nicht". Ich könnte meinem Schwager an die Gurgel gehen.. Durch so eine Einstellung kommt dann ne 5 in der Mathearbeit raus.. Egal.. OffTopic..
 
  • Gefällt mir
Reaktionen: brettler
Wenn wir schon beim Thema sind: Es kann auch nicht schaden zu wissen, wie ASCII in Dezimal bzw. Hex aussieht, Kommt ja immer mal wieder vor, dass man Text über Schnittstellen schicken muss, die das nicht nativ können.
 
Raijin schrieb:
ich brauche das eh nicht
Womit er auch völlig recht hat. Man kann quadratische Gleichungen auch mit Hilfe der quadratischen Ergänzungen lösen.
Das ist anspruchsvoller, als einfach Stumpf zahlen in eine Formel einzusetzen und man lernt auch mehr dabei (und ist dann auch in der Lage die p-q-Formel herzuleiten).
Aber ich fürchte, so war das nicht gemeint. :-)

Nilson schrieb:
Es kann auch nicht schaden zu wissen, wie ASCII in Dezimal bzw. Hex aussieht,
0x47h 0x6Fh 0x6Fh 0x64h 0x20h 0x50h 0x6Fh 0x69h 0x6Eh 0x74h :-)
 
Raijin schrieb:
Ist das bei dir, @Universe100 eventuell auch so ein Fall? Steckst du gerade in so einem Kurs und hast den ersten Kontakt mit SPSn und weißt nicht warum und wozu man sowas braucht bzw brauchen könnte?
Wir behandeln das Thema SPS im Rahmen der Ausbildung (Elektroniker Betriebstechnik).

Meine eingangs gestellte Frage ist übrigens wertfrei.
Hab mich einfach nur gefragt was man denn mit dem Wissen alles in der Praxis umsetzen kann.
Scheint irgendwie interessant zu sein, z.B. ist das Dezimalsystem mehr als nur Ziffern nebeneinander legen.
Das erinnert an die Grundschule wo man mit Tabellen mit Einer, Zehner Hunderter, etc. gearbeitet hat.
 
  • Gefällt mir
Reaktionen: Raijin
Universe100 schrieb:
Hab mich einfach nur gefragt was man denn mit dem Wissen alles in der Praxis umsetzen kann.
Scheint irgendwie interessant zu sein
Dann möchte ich mal ein praktisches Beispiel bringen, das hier schon angerissen, aber vielleicht nicht hinreichend erklärt wurde:

Anhand von hexadezimalen Zahlen ist es möglich, ein komplettes Byte = 8 bit mit nur zwei "Ziffern" darzustellen. Wie sieht 11100110 in Hex aus? Klar, kann man jetzt abzählen, in Dezimal und anschließend in Hexadezimal umrechnen - oder man macht es direkt, weil's viel einfacher ist.

Teilen wir die binäre Zahl in Gruppen von 4 bit, erhalten wir effektiv zwei "Ziffern" von 0-15. Momment, kommt uns das nicht bekannt vor? Genau, eine Hex-Ziffer, also 0-F. Wandeln wir diese 4er Blöcke einzeln um, können wir sehr schnell aus binär hexadezimal machen:

Code:
1110 0110
  E   6

Das Ergebnis ist also einfach E6 und mit ein bischen Übung kann man das nahezu direkt ablesen, ohne Taschenrechner, einfach so. Der Informationsgehalt ist derselbe, aber man braucht viel weniger Platz. Bei 8 bit geht das sonst auch gerade so noch in binärer Darstellung lesen, aber ab 16 bit macht das keinen Spaß mehr. In hex? Easy...

Maschinen arbeiten nun mal Binär, aber für Menschen ist das sehr sperrig, viel zu lesen/schreiben und auch viel zu fehleranfällig. Menschen sind das dezimale System gewohnt, das zwar vom Grundprinzip genauso arbeitet (jede Ziffer = eine Zehnerpotenz vs jede Ziffer = eine Zweierpotenz), aber eben nicht so direkt umrechenbar ist wie bin<>hex. Insbesondere das hexadezimale Zahlensystem kann den Umgang mit binären Zahlen daher deutlich vereinfachen. Es ist ein Stück weit ein Mittelding. Hex-Zahlen behalten den binären Charakter (8er bit-gruppen, low byte, high byte, relativ einfache Bit-Identifikation) sind aber einfacher zu lesen und besser zu merken als ewige 0-1er Kolonnen oder beliebig wirkende Dezimalzahlen, die nur indirekt Rückschlüsse auf ihre bit-breite ziehen lassen.

Fun Frage: Kann man mit einer Hand bis 31 zählen?
Klar, 5 Finger, 5 bit, binär zählen, ab geht's ;)

Weitere Beispiele für den Nutzen sind zB auch Dateiberechtigungen unter Linux. Auch diese werden als Bitmuster dargestellt - 3 Gruppen @ 3 bits - aber statt sich mit 9 bits auseinanderzusetzen, werden sie in 3er Gruppen umgewandelt und aus 111 = read + write + execute wird eine 7, aus 100 = read only wird 4 und am Ende heißt 754, dass es einmal full access (besitzer), einmal read +execute (gruppe) und einmal read only (others) gibt. Anwendungsfälle gibt es viele, aber das soll's jetzt von mir gewesen sein.
 
  • Gefällt mir
Reaktionen: Universe100 und andy_m4
Zurück
Oben