Step 7 Programmierhilfe FUP

Was mache ich verdammt Falsch :-?:-?
Ich kann das Programm nicht laden :((
Start_Old muss ich doch als Bool definieren und bei Input einfügen oder ??

Ich brauche hilfe

LG
EMZ
 
Start_Old muss ich doch als Bool definieren und bei Input einfügen oder ??
Wenn Du weißt, das es BOOL sein muss, warum machst Du es dann nicht.

Und warum willst Du ihn jetzt nach INPUT verschieben? Start_Old bekommt im Programm einen Wert zugewiesen und soll diesen bis zum nächsten Zyklus behalten. Deshalb war Deine vorige Wahl im STATIC-Bereich richtig, nur das Format war falsch!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So viel aufwendiger kann es doch nicht sein oder ?
Da muss man doch bestimmt auch nur so ein 16bit Schiebebaustein mit einpaar Zählern etc. verknüpfen.
Da ist es mit Logo ja noch einfacher

Warum hast du dort MD und MW eingefügt ??

LG
EMZ
 
Ich habe dieses Problem schon die ganze Zeit, aber ich kann auch nichtmal nachlesen, woran es liegt.
Da steht halt Fehler und fertig.

SCL Sim. Probl..jpg

AN der CPU beim Simulator kommt die Fehlermeldung "SF"
 
So viel aufwendiger kann es doch nicht sein oder ?
Da muss man doch bestimmt auch nur so ein 16bit Schiebebaustein mit einpaar Zählern etc. verknüpfen.
Da ist es mit Logo ja noch einfacher
Ebend nicht.

Und ich persönlich hielt das mit der LOGO! auch nicht gerade für einfach.
Sonst hättest Du auch keine Hilfe gebraucht!
;)



Warum hast du dort MD und MW eingefügt ??
Wo? Am Aufruf des (SCL-)FB's?
Irgendwo muss ich mit den Daten ja hin. Und außerdem hatte ich die Takt-Verschiebung sowie die Anzahl der auszugebenden Impulse variable gemacht und muss das ja dann beim Ausführen auf die geforderten Werte einstellen.
Und der Merker-Bereich läßt sich relativ einfach simulieren und direkt in der Simulation verändern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, also ich habe jetzt eine Löung gefunden, aber ich möchte das.mit dem array versuchen.
Kann mir jemand die vorgehensweise erklären, wie ich so ein array erstellen kann und dir sprache wenns geht zuerst in fup oder halt awl... Und wenns geht.mit.step 7 nicht tia.
Ich muss halt schritt für schritt einmal sehen.wie man da vorgeht.beim erstellen

@hucki:
Von.mir aus mit gegenleistung
LG
EMZ
 
@hucki:
Von.mir aus mit gegenleistung
Mal ein Danke, wenn ich Deine Programme wieder angepaßt habe, wäre nett.
Ansonsten hab' ich schon einen bezahlten Job, der mir Spaß macht.
;)

Das Problem für Dich wird eher sein, dass ich das Ganze primär für mich mache, um am Ball zu bleiben, und dann irgendwann vlt. das Interesse an Deinem Problem verlieren und mich anderen Herausforderungen zuwenden könnte.


:ROFLMAO:



Hi, also ich habe jetzt eine Löung gefunden
Warum stellst Du sie hier nicht mal vor?
:confused:



Kann mir jemand die vorgehensweise erklären, wie ich so ein array erstellen kann und dir sprache wenns geht zuerst in fup oder halt awl... Und wenns geht.mit.step 7 nicht tia.
Ich muss halt schritt für schritt einmal sehen.wie man da vorgeht.beim erstellen
Man öffne die Schnittstelle des Bausteins und gebe zuerst den gewünschten Namen des Arrays bei Name ein.
Danach gebe man unter Datentyp "Array " gefolgt von den einzelnen Größen der Dimensionen des Datenfeldes in rechteckigen Klammern
und zum Schluss dem gewünschten Datentyp (z.B. bei einem boolschen Feld "... of Bool") des Datenfeldes ein.
Bei einem eindimensionalem Feld mit 100 boolschen Variablen, begonnen mit der Nummer 1, sehe das insgesamt so aus: "Array [1 .. 100] of Bool".
Dabei ist es egal, ob es sich um FUP, KOP, AWL oder unter TIA auch SCL handelt.
Bei SCL unter Step 7 Classic schreibt man Namen und Datentyp durch Doppelpunkt getrennt in den Abschnitt der Variablendeklaration:
Code:
[FONT=Courier New]VAR
     DATENFELD: ARRAY [1..100] OF BOOL;    // eindimensionales boolsches Datenfeld mit 100 Variablen
END_VAR[/FONT]
Der Vorteil gegenüber herkömmlichen Variablen - sie haben alle den gleichen Namen und werden durch einen Indexwert angesprochen, der sich berechnen läßt, z.B. DATENFELD[1] oder DATENFELD[x+1].
:)

PS: In welchen Abschnitt der Variablendeklaration Du das einträgst, hängt davon ab, wo bzw. als was Du das Feld brauchst.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstmals Danke ich dir für deine Hilfe.
Einer wie schon meine Vorreder sagen der wenigen der anderen Forenmitglieder intensiv hilft.



Man öffne die Schnittstelle des Bausteins und gebe zuerst den gewünschten Namen des Arrays bei Name ein.
Danach gebe man unter Datentyp "Array " gefolgt von den einzelnen Größen der Dimensionen des Datenfeldes in rechteckigen Klammern
und zum Schluss dem gewünschten Datentyp (z.B. bei einem boolschen Feld "... of Bool") des Datenfeldes ein.
Bei einem eindimensionalem Feld mit 100 boolschen Variablen, begonnen mit der Nummer 1, sehe das insgesamt so aus: "Array [1 .. 100] of Bool".
Dabei ist es egal, ob es sich um FUP, KOP, AWL oder unter TIA auch SCL handelt.
Bei SCL unter Step 7 Classic schreibt man Namen und Datentyp durch Doppelpunkt getrennt in den Abschnitt der Variablendeklaration:
Code:

VAR
DATENFELD: ARRAY [1..100] OF BOOL; // eindimensionales boolsches Datenfeld mit 100 Variablen
END_VAR

Der Vorteil gegenüber herkömmlichen Variablen - sie haben alle den gleichen Namen und werden durch einen Indexwert angesprochen, der sich berechnen läßt, z.B. DATENFELD[1] oder DATENFELD[x+1].


PS: In welchen Abschnitt der Variablendeklaration Du das einträgst, hängt davon ab, wo bzw. als was Du das Feld brauchst.

Dies werde ich dann vielleicht morgen angehen, ich muss heute auf einer Hochzeit und bin ab morgen 18 Uhr im Ausland.
Sorry, da ich leider kein S7 auf mein Smartphone habe, kann ich das Programm erst jetzt hochladen :D

Anhang anzeigen 21899

Anhang anzeigen 21900

Anhang anzeigen 21901


Ich hoffe die kann man öffnen :rolleyes::shock::cool:


http://www.bilderhoster.net/safeforbilder/92dyz8t9.png

http://www.bilderhoster.net/safeforbilder/768kfads.png

http://www.bilderhoster.net/safeforbilder/9t3p1alh.png



@BLOCKMOVE

Ich gebe zwar zu, dass ich nicht gerade der beste bin, was programmieren etc. angeht, weil ich mir einfach alles selber bei bringe. Und ich denke das mich der ein oder andere (hucki) auch versteht und hier Hilfe im Thread bietet nicht wie manch anderer der einfach nur irgendwelche Kommentare über "Ausdauer bei Problemfällen" o.ä. reinpostet.
Wenn hucki einfach nicht will, dann hätte er halt schon geschrieben dass er nicht helfen will, er braucht von dir kein extra Apell.



LG

EMZ
 
Zuletzt bearbeitet:
Hi,

jetzt habe ich das Programm in FUP geschrieben. Es funktioniert alles bis auf eins:

Genau das ist mein einziges Problem was ich bisher noch nicht lösen konnte:

Also ein Zählvorgang wird abgezählt und wenn in der Zwischenzeit der nächste Vorgang kommt wird dieser solange ignoriert, bis der erste Zählvorgang zu Ende ist. Anforderung ist aber, dass wenn während des ersten Zählvorgangs ein weiterer kommt, dass dieser mitberechnet bzw., gezählt wird.

Kann mir jemand helfen?
Gibt es dazu keine Funktion?

@hucki

Ich habe in der Bib. ein FC gefunden mit einer FIFO Funktion. Ich weiß aber nicht wie ich das beschalten muss und ob ich Datenbausteine öffnen muss, um das zum Laufen zu bringen.
Hast du mir dazu Beispile zu meiner Anwendung?
Ich habe schon F1 benutzt und mehrmals durchgelesen aber glaube das Beispiel in der Beschreibung ist nicht so passen für meine Anwendung.
Sag bescheid wenn ich zuviel Frage


FIFO-Baustein in FUP.jpg



LG
EMZ
 
Zuletzt bearbeitet:
Hi,
...
Also ein Zählvorgang wird abgezählt und wenn in der Zwischenzeit der nächste Vorgang kommt wird dieser solange ignoriert, bis der erste Zählvorgang zu Ende ist. Anforderung ist aber, dass wenn während des ersten Zählvorgangs ein weiterer kommt, dass dieser mitberechnet bzw., gezählt wird.

Kann mir jemand helfen?
Gibt es dazu keine Funktion?
...

Hallo EMZ,

man hat dir doch eigendlich eingehend erklärt, dass dies mit ein "paar" einfachen Zählern nicht möglich ist, was du brauchst ist ein FIFO/Schieberegister.
Klar kannst du dieses mit ein paar verketteten Schiebefunktionen lösen, aber die dir präsentierten Lösungen funktionieren einfach besser und sind in ihrer Flexibilität im Hinblick auf spätere Änderungen nicht schlagbar.

MfG Semo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@EMZ,
erstmal herzlichen Glückwunsch - Dein erster funktionierender Bilderupload im Forum (wenn ich nichts übersehen habe):


:ROFLMAO: :ROFLMAO: :ROFLMAO:


jetzt habe ich das Programm in FUP geschrieben. Es funktioniert alles bis auf eins:

Genau das ist mein einziges Problem was ich bisher noch nicht lösen konnte:

Also ein Zählvorgang wird abgezählt und wenn in der Zwischenzeit der nächste Vorgang kommt wird dieser solange ignoriert, bis der erste Zählvorgang zu Ende ist. Anforderung ist aber, dass wenn während des ersten Zählvorgangs ein weiterer kommt, dass dieser mitberechnet bzw., gezählt wird.
Tja, da hast Du wohl festgestellt,
dass dies mit ein "paar" einfachen Zählern nicht möglich ist, was du brauchst ist ein FIFO/Schieberegister.
:ROFLMAO: :ROFLMAO:


Ich habe in der Bib. ein FC gefunden mit einer FIFO Funktion. Ich weiß aber nicht wie ich das beschalten muss und ob ich Datenbausteine öffnen muss, um das zum Laufen zu bringen.
Hast du mir dazu Beispile zu meiner Anwendung?
Ich habe schon F1 benutzt und mehrmals durchgelesen aber glaube das Beispiel in der Beschreibung ist nicht so passen für meine Anwendung.
Sorry, da kann ich nicht helfen.
Ich hab' mir die FIFO's bisher immer selbst programmiert, so wie hier in diesem Thread. Denn das SCL-Programm ist auch ein FIFO. Nur das dieser gleich noch Deine speziell gewünschte Funktion mit der längeren Ausgabe enthält.


Und weil ich so geduldig bin :ROFLMAO: und Du nochmal gezeigt hast, dass Du nicht nur auf fertige Lösungen wartest, habe ich mal das (letzte) LOGO!-Programm mit der S7-1200 "nachgebaut" (ungetestet):










In Step 7 Classic dürfte die Übergabe des ausgeschobenen Bits etwas anders ausfallen, da man dort üblicherweise die Statusbits dafür benutzt.

Allerdings würde ich das in der Praxis nie so machen, da es einfach viel zu unflexibel im Vergleich zu der SCL-Variante ist. (Die LOGO! gibt ja nicht mehr her, aber eine S7-1200?)
Auch funktioniert das hier nur mit einer boolschen Information. Andere Arten von Informationen lassen sich durch ein solch einfaches FIFO nicht transportieren. Wenn man das bei der SCL-Variante ändern möchte, kann man den Typ des Arrays (und natürlich dann auch die Verwendung) entsprechend anpassen. Der grundlegende Programmablauf bleibt dabei gleich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hut ab :cool:

Danke dir erstmals für die ganze Geduld und den motivierten Einsatz. Danke dass du trotz einer Übung für dich, so engagiert hilfst.
Einer der WENIGEN die einen so helfen.




Danke

LG
EMZ
 
Zuletzt bearbeitet:
Ich bin aus dem Urlaub gekommen, werde mich erholen und gleich das Programm abspielen.

Zuhause bleiben nicht Urlaub und selber mehr üben sonst klappt das nie......

@hucki
Wenn du willst dann kann ich dir mal ein paar Aufgaben geben.... Dann brauchst du kein Forum mehr und
Verdienst noch etwas Geld dabei

Gruß
 
Zurück
Oben