Frage zu Arrays in Simatic Step7

Wie bekomme ich über eine Schleifenfunktion ,bei einem array die einzelnen Bytes mit verschiedenen Daten gefüllt ohne das ,sobald die Schleife beginnt,
meine bytes mit den gleichen Daten gefüllt werden.

Ich möchte mit einer Schleife nachschauen wann das nächste leere Byte zu verfügung steht, und es dann mit einem wert beschreiben.:mecker:
 
AW: Frage zu Arrays in Simatic Step7

Dumme Frage: Woher beziehst du denn diese verschiedenen Daten? Und wann stehen diese zur Verfügung?
Wenn sie erst mit zeitlichem Versatz kommen, dann funzt das nicht mit einer Schleife, weil eine S7 nicht multitaskingfähig ist; d.h. bis deine Schleife alle Daten bekommen hat, ist deine CPU schon längst mit Zykluszeitüberschreitung auf Stop gegangen. Für so einen Anwendungsfall müsstest du bloß den Index eines indirekt adressierten Arrays ganz ohne Schleife inkrementieren.
 
AW: Frage zu Arrays in Simatic Step7

Dumme Frage: Woher beziehst du denn diese verschiedenen Daten? Und wann stehen diese zur Verfügung?
Wenn sie erst mit zeitlichem Versatz kommen, dann funzt das nicht mit einer Schleife, weil eine S7 nicht multitaskingfähig ist; d.h. bis deine Schleife alle Daten bekommen hat, ist deine CPU schon längst mit Zykluszeitüberschreitung auf Stop gegangen. Für so einen Anwendungsfall müsstest du bloß den Index eines indirekt adressierten Arrays ganz ohne Schleife inkrementieren.

Ich habe zb. einen Temperaturwert ,lasse die Schleife solange laufen bis ein freies Byte gefunden wurde und schreibe den wert in das Byte, aber nur in das eine und nicht in alle freien bytes(habe 300 Speicherstellen)
 
AW: Frage zu Arrays in Simatic Step7

Ich habe einen Temperaturdatensatz ,möchte mit einer Schleife die Bytes auf einen Freien Platz zum Speichern absuchen und diesen wert darin ablegen, ohne das alle Bytes im Array mit diesem wert gefüllt werden .
D.h. der Baustein darf nur einmal durchlaufen werden egal wie lange ein Startbit für den Baustein aktiv ist aber WIE
 
AW: Frage zu Arrays in Simatic Step7

Hi!

So müsst's eigentlich funzen, hab's aber nicht probiert.
Nachteile:
Bei jedem CPU-Zyklus wird das Array von 0 an durchgesucht >> schlecht für die Zykluszeit. Besser wäre es, sich den aktuellen Index zu merken und da dann beim nächsten Mal weitermachen.
Was soll bei Überlauf passieren? Wieder bei 0 anfangen mit Beschreiben?

Gruß
berty
 

Anhänge

  • TempArray.JPG
    TempArray.JPG
    50,2 KB · Aufrufe: 111
AW: Frage zu Arrays in Simatic Step7

Danke für deine Hilfe , bin selbst drauf gekommen.
Ich hatte das Problem das sich die Funktion mit dieser anweisung immer wieder
neu gestartet hatte und sich so alle bytes mit einem wert gefüllt haben, habe jetzt einen sogenannten stoppmerker gesetzt so das nur ein durchlauf der Funktion zugelassen wird.

Ich bin ein Anfänger in diesem bereich ,ist nicht so das ich gar nichts kann,
ebensowenig kann man nicht alles wissen.

Zum Schluß noch eine Frage....

Kann ich dich nochmal in solchen Sachen etwas fragen, ist vielleicht manchmal ein bisschen dumm für dich( so in etwa : ...ist der zu Blöd für sowas....) ,es wäre mir aber eine große Hilfe mein projekt zum Erfolgreichen abschluß zu bringen!!!!

Danke......
 
AW: Frage zu Arrays in Simatic Step7

Hallo, ich habe ein Problem mit dem simatic step7 Programm von Simens. Ich soll ein Programm schreiben, in dem eine Palette von einem Sensor angesteuert das Förderband entlangfährt, am Ende des Bands ist eine Sensor der Band zwei ansteuert. Sensor eins des zweiten Bands steuert, dass das erste Band stehen bleibt. Am Ende des zweiten Bands wechselt ein Sensor die Drehrichtung des Bands. Der erste Sensor des zweiten Bands steuert das erste Band wieder an (linksdrehend). Der zweite Sensor des ersten Bands soll das zweite Band wieder anhalten. Der erste Sensor des ersten Bands bleibt die Palette stehen.
Mein Problem: Ich weiß nicht wie ich zwei FC's erstellen soll und die gleichen Eingänge der SPS anders benennen soll, da ich ja nicht zweimal die gleichen Eingänge benutzen kann.
 
AW: Frage zu Arrays in Simatic Step7

Hi!

Wär vielleicht besser gewesen, wenn du ein neues Thema angefangen hättest. Arrays haben nicht zwangsläufig was mit deiner Frage zu tun.

Mein Problem: Ich weiß nicht wie ich zwei FC's erstellen soll und die gleichen Eingänge der SPS anders benennen soll, da ich ja nicht zweimal die gleichen Eingänge benutzen kann.
Kannst du die Aufgabenstellung etwas genauer formulieren?! Hat man euch evtl. aufgetragen, euere Funktion in parametrierte FCs abzulegen?

Gruß
berty
 

Jobs

Jobmail abonieren - keine Jobs mehr verpassen:

Ich möchte die wöchentliche Jobmail erhalten und akzeptiere die Datenschutzerklärung.
Du kannst die Jobmail jederzeit über den Link in der Mail abbestellen.

Wir verwenden Sendinblue als unsere Marketing-Plattform. Wenn Du das Formular ausfüllst und absendest, bestätigst Du, dass die von Dir angegebenen Informationen an Mailchimp zur Bearbeitung gemäß den Nutzungsbedingungen übertragen werden.

Top