Flankenerkennung

Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Lupo,

ne, darum ging es ja auch gar nicht, lediglich die Aussage das alles eine Schrittkette ist war falsch.

Schwamm drüber, und zurück zum Thema.

Gruss Daniel
 
Ach ja - noch etwas :
Was macht euch übrigens Glauben, dass ich euch angreifen, blossstellen oder sonst etwas Böses will ?

Zum blossstellen fehlt dir denke ich einiges.

Die Aussage alles wird sequenziell abgearbeitet auch in Hochsprachen, ist schlicht und einfach falsch. Du solltest dich einmal mit treats beschäftigen.
Aber ist gut, du kannst es und weißt es.

bike

P.S: schade, dass manche Threats so abgleiten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Bike:
Was ist denn an den gemachten Aussagen falsch ?
Hast du schon ein Hochsprachen-Programm gesehen, dass nicht sequentiell arbeitet ? Selbst mehrere Tasks werden ja auch nur durch einen Trick in der dahinter stehenden Runtime parallel bearbeitet. Und simulatane Bearbeitung mehrerer Abläufe in der SPS ist ja auch kein Problem ...

Erklär mal ...
 
@Bike:
Was ist denn an den gemachten Aussagen falsch ?
Hast du schon ein Hochsprachen-Programm gesehen, dass nicht sequentiell arbeitet ? Selbst mehrere Tasks werden ja auch nur durch einen Trick in der dahinter stehenden Runtime parallel bearbeitet. Und simulatane Bearbeitung mehrerer Abläufe in der SPS ist ja auch kein Problem ...

Erklär mal ...


Ich weiss, dass es auch in PLC manche Teile parallel ablaufen (müssen). Wenn z.B. die NC eine Signal in der Nahtstelle ändert, wird die sequenzielle Bearbeitung unterbrochen und andere Funktionen werden gestartet.
So ist auch in Hochsprache geschriebenen Programmen.
Daher stimmt die Aussage, daß alle Programme sequenziell ablaufen nicht. Wenn ein treat ein Ergebnis während einer Parallelbearbeitung, bereitstellt, reagiert ein anderer treat darauf, das Programm wird ggF unterbrochen oder verzweigt oder so.
Also so zumindest habe ich bis heute programmiert.

bike


P.S: Aber es ist doch jedem überlassen alles in Schrittketten zu schreiben, wenn es geht. Ich kann es nicht.
 
Ich weiss, dass es auch in PLC manche Teile parallel ablaufen (müssen). Wenn z.B. die NC eine Signal in der Nahtstelle ändert, wird die sequenzielle Bearbeitung unterbrochen und andere Funktionen werden gestartet.
So ist auch in Hochsprache geschriebenen Programmen.
Daher stimmt die Aussage, daß alle Programme sequenziell ablaufen nicht. Wenn ein treat ein Ergebnis während einer Parallelbearbeitung, bereitstellt, reagiert ein anderer treat darauf, das Programm wird ggF unterbrochen oder verzweigt oder so.
Also so zumindest habe ich bis heute programmiert.

Genauso kenne ich das auch (ohne es bisher auch nur einmal programmiert zu haben). Nichts-desto-weniger wird trotzdem jede Prozedur oder Funktion in sich sequentiell abgearbeitet. Das mit der Unterbrechung an einem Sprung oder einer Warte-Anweisung setzt ja letztlich die Prozedur an genau der Stelle wieder fort - lückenlos. Dieser Trick wird ja nur gemacht um anderen (parallen Aufgaben) auch eine Chance zu geben ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genauso kenne ich das auch (ohne es bisher auch nur einmal programmiert zu haben). Nichts-desto-weniger wird trotzdem jede Prozedur oder Funktion in sich sequentiell abgearbeitet. Das mit der Unterbrechung an einem Sprung oder einer Warte-Anweisung setzt ja letztlich die Prozedur an genau der Stelle wieder fort - lückenlos. Dieser Trick wird ja nur gemacht um anderen (parallen Aufgaben) auch eine Chance zu geben ...

Gruß
LL

Stimmt jede Funktion zu der mehr als eine Anweisung gehören werden intern nacheinander abgearbeitet, doch das bedeutet nicht, dass die Programme sequentiell ablaufen. Besonders wenn es mehrere Prozessoren sind stimmt diese Ansicht so noch viel weniger, wie sie von Lupo aufgezeigt wird.
Ich programmiere so inzwischen seit etwas mehr als 30 Jahre, sequenziell und parallel.
Aber wir sollten dieses Thema besser in Programmstategie diskutieren.


bike
 
Mir ging es nur darum darzustellen, dass zwischen dem, was du schreibst und dem, was Lupo geschrieben hat, kein Widerspruch besteht.
 
Stimmt jede Funktion zu der mehr als eine Anweisung gehören werden intern nacheinander abgearbeitet, doch das bedeutet nicht, dass die Programme sequentiell ablaufen. Besonders wenn es mehrere Prozessoren sind stimmt diese Ansicht so noch viel weniger, wie sie von Lupo aufgezeigt wird.
Ich programmiere so inzwischen seit etwas mehr als 30 Jahre, sequenziell und parallel.
Aber wir sollten dieses Thema besser in Programmstategie diskutieren.


bike

Also bei CNC-Steuerungen die bike einsetzt, gehen so glaube ich die
Uhren ein wenig anders wie bei einer normalen SPS
Ist diese mehrzahl von Prozessoren heute eigentlich noch üblich? Wenn
ich eine Beckhoff Steuerung nehme haben die doch auch nur eine CPU
wo das SPS-Programm drauf läuft und als Option auch die NC.

Wie ist eigendlich eine normale S7-CPU aufgebaut, haben die
eigentlich bei den großen Apperaten mehre CPU's z.b. in den
T-Maschinen?

@bike,
in welcher Steuerung sitzen diese mehrzahl an prozessoren?

PS. reißt euch bitte nicht gegenseitig die Harre aus hier, bei
mir ist es ja egal. Ich hab ja keine mehr.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Helmut,
ich glaube nicht, dass es etwas mit "Haare ausreissen" zu tun hat. Hier ist es eher ein Auffassungs-Problem.

Soweit ich es kenne (und zwar nicht speziell von den CNC-Maschinen her) ist es so :

- bei der SPS wird das Programm Anweisung für Anweisung von oben nach unten durchgearbeitet - ob etwas erfüllbar ist oder nicht. Eine Endlos-Schleife ist der Tod des Zyklus.

- bei den CNC-Maschinen oder aber auch bei der ereignis-gesteuerten Programmierung ist es so, dass das Programm z.B. bis zu einem Sprung-Befehl bearbeitet wird und dann kommt die nächste aktive Prozedur. Hier läuft das dann so ähnlich usw. So ein Sprung-Befehl kann hier alles Mögliche sein - z.B. auch ein "warte bis Position X angefahren". Immer wenn etwas nicht gleich ausführbar ist wird in die nächste aktive Prozedur verweigt. Dadurch erreicht man (Pseudo-)simulatanes Abarbeiten. Im Grundsatz arbeitet aber jede Prozedur erstmal sequentiell - sie kann ja gar nicht anders.

Gruß
LL
 
PS. reißt euch bitte nicht gegenseitig die Harre aus hier, bei
mir ist es ja egal. Ich hab ja keine mehr.

Also bei mir tut man damit auch schwer.
Es ging eigentlich um Flankenerkennung, die nach Aussage eine Schrittkette ist.
Dann kam die Aussage, dass auch in Hochsprache alles sequenziell programmiert wird.
Nicht zwei oder mehr Befehle werden als sequentielles Programm beschrieben. Doch dazu gibt es kluge Abhandlungen, nach meienr Meinung wird dies zu weit führen hier.

Man kann bzw müsste jetzt Mehrprozessorbetrieb genauer definieren.
Mehrprozessor, mehrere Prozessoren in einem Gehäuse finden eigentlich nicht mehr statt, da die Intelligenz auf die Antriebe und andere Komponenten verteilt wird. Die NC bzw PLC schickt was zu tun ist und bekommt zurück was getan wurde.
Dass die NC oder die PLC an einer bestimmten Stelle warten ist nicht ganz richtig. Es gibt Interrupt und Sychronaktionen und Parallelbearbeitung.
Zu der Beckhoff NC kann ich nichts sagen, ahb e ich noch? nicht in den Fingern gehabt. Doch wir haben mit Siemens NC genug zu tun HBZ zu programmieren. Fanuc, Bosch Rexroth und Heidenhain sind da nicht die ganz richtigen Kandidaten dafür, wenn das Zentrum ein gewisses Leistungsspektrum übersteigt.



bike
 
Im Grundsatz arbeitet aber jede Prozedur erstmal sequentiell - sie kann ja gar nicht anders.

Gruß
LL
Stimmt wenn zwei Befehle als sequentielles Programm beschrieben werden ja, sonst nein.

Weder NC noch PLC wartet auf irgendetwas, das NC Programm belibt auf dem Satz stehen, doch das heißt nicht, dass die NC nichts macht.

Aber es begann als Flankenerkennung, die als Schrittkette bezeichnet wurde.


bike


P.S: Lass uns zu den Flanken zurückkehren und Parallelcomputing und Ähnliches in Programmstrategien vielleicht vertiefen, wenn notwendig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem ist, dass einem (zumindest mir) irgendwann im Informatikunterricht eingebläut wird:
Terminiertheit
Terminiertheit heißt: Ein Algorithmus hält nach endlich vielen Schritten an (bricht kontrolliert ab). Dies gilt für jede mögliche Eingabe. Würde ein Algorithmus nicht terminieren (und somit zu keinem Ergebnis kommen), wäre die Folge eine so genannte Endlosschleife.
ohne zu berücksichtigen, dass
Für diese Eigenschaft gibt es jedoch Ausnahmen: Steuerungssysteme, Betriebssysteme und viele weitere Programme, die auf Interaktion mit dem Benutzer aufbauen. Solange der Benutzer keinen Befehl zum Beenden eingibt, laufen diese Programme beabsichtigt endlos weiter. Donald Knuth schlägt in diesem Zusammenhang vor, nicht terminierende Algorithmen als rechnergestützte Methoden (Computational Methods) zu bezeichnen.
siehe: http://de.wikipedia.org/wiki/Algorithmus

Was ich damit sagen will: nicht für jeden Programmierer ist es von vorneherein selbstverständlich, dass die Endlosschleife bereits in das System in Form des zyklischen abgearbeiteten Programms eingebaut ist.
 
Zurück
Oben