Erstellung von Programmen, FB, Fc usw. Symbolisch möglich?

Noyan

Level-1
Beiträge
32
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen

Ich arbeite als SPS Programmierer bei einem Maschinenhersteller. Wir setzen vor allem S7 ein.

Folgendes stört mich: Wenn ich ein FB erstellen möchte, muss ich ja einen FB-Nummer auswählen. Falls der Kollege auch die selbe Nummer in seinem Programm gewählt hat, gibt es dann Probleme bei der Zusammenführung des Programmes. Es kann ja, wie bei Higländern, nur einen geben.

Kann ich das umgehen? Ich will ja einen Funktionbaustein programmieren, zB. "ZufuehrungAutomat" , was interessiert mich dabei, was es für eine Nummer hat?

Am liebsten würde ich die Nummer in S7 Manager unsichtbar machen. Und die Unterprogramme in Ordnern strukturieren.

Eigentlich weiss ich, dass es nicht geht. Aber ich wäre so gerne getäuscht...
 
einzige möglichkeit, die ich sehe, ist das schreiben von AWL-Quellen - da kann man symbolische "bausteinnummern" vergeben ... vor dem übersetzen ist allerdings eine symboltabelle notwendig!

andere möglichkeit: jeder bekommt einen adressvorrat zugewiesen.

in meiner bibliothek hab ich die nummerierung übrigens eingesetzt um die funktionen von einander unterscheidbar in bestimmte gruppen zu sortieren. hat den vorteil, dass jedes programm die selben nummern aufweist und somit es auch möglich ist mit immer dem selben symboltabellengerüst arbeiten zu können
 
Alles klar. Es geht nicht. AWL Quellen sind nicht so cool, da wir auch FUP Bausteine haben.

Mit dem Adressvorrat meinst du wahrscheinlich bestimmte Nummerbereiche. Sowas haben wir bereits. Nun haben wir eine grosse vielfalt an Maschinen. Unsere 10er Blöcke müssen bei Projekterstellung umkopiert werden, da die vorgesehene Nummern belegt sein könnten. Dummerweise ist es oft so, typisch Murphy...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Alles klar. Es geht nicht. AWL Quellen sind nicht so cool, da wir auch FUP Bausteine haben.

AWL-Quelle heißt nicht, daß der Baustein zwangsläufig in AWL programmiert werden muß. Das sagt lediglich, daß der übersetzte Code dann in AWL dargestellt wird, aber wenn man die Programmierregeln einhält, kann man die so erzeugten Bausteine auch in KOP oder FUP darstellen.
Die AWL-Quellen können allerdings sehr praktisch auch in einem beliebigen Textverarbeitungsprogramm bearbeitet werden und ganz easy mit copy und paste in das Programm gebracht werden.
Ich lasse mir beim Speichern der Bausteine immer die AWL-Quelle automatisch mit symbolischem Namen erzeugen. Dadurch habe ich immer die aktuellste Version auch als Quelle.

Wenn du dann noch unterschiedliche Symboltabellen mit verschiedenen FB-Nummern für die Bausteine bereithältst, ist das Leben schon wieder etwas einfacher.
 
Zuletzt bearbeitet:
aber wenn man die Programmierregeln einhält, kann man die so erzeugten Bausteine auch in KOP oder FUP darstellen.

grundsätzlich ist an dieser aussage nichts verkehrt ABER:
*ROFL*

...kennst du jemand, der einen kennt, der
1. alle konventionen drauf hat und
2. bausteinaufrufe in AWL für die darstellung in KOP/FUP programmiert und
3. noch spaß an seinem job hat?
 
grundsätzlich ist an dieser aussage nichts verkehrt ABER:
*ROFL*

...kennst du jemand, der einen kennt, der
1. alle konventionen drauf hat und
2. bausteinaufrufe in AWL für die darstellung in KOP/FUP programmiert und
3. noch spaß an seinem job hat?

1. nein
2. nein
3. wenn ich 1. und 2. bejahen könnte, könnte ich 3. beantworten
aber darum geht es ja auch nicht.

Ich denke, es werden FB's programmiert, die eine immer wiederkehrende Funktion ausführen. Bei solchen Bausteinen komme ich mit recht wenig anderen Bausteinaufrufen aus. Lediglich so'n paar SFB's und SFC's laufen mir da über den Weg.
Außerdem programmiere ich Bausteinaufrufe am gernsten in AWL, weil ich nicht so ein Kästchenfreund bin.
:ROFLMAO:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke, es werden FB's programmiert, die eine immer wiederkehrende Funktion ausführen.

das denke ich auch, vielleicht auch FC´s, deswegen seh ich gar nicht ein, warum diese in KOP/FUP geschrieben werden sollen :cool:

die beschaltende logik und ein paar verknüpfungen drum rum gerne ... aber das hat ja nichts in einer bibliothek zu suchen
 
das denke ich auch, vielleicht auch FC´s, deswegen seh ich gar nicht ein, warum diese in KOP/FUP geschrieben werden sollen :cool:

die beschaltende logik und ein paar verknüpfungen drum rum gerne ... aber das hat ja nichts in einer bibliothek zu suchen

KOP/FUP/AWL ist immer eine Ansichtssache des Programmierers. Früher (vor ca. 20 Jahren) wurde uns erzählt, das die "dummen" Elektriker in KOP, die "schlaueren" Techniker in FUP und die "genialen" Ingenieure in AWL programmieren, und ich sehe heute noch einige fragende Gesichter, wenn ich mir Bausteine in KOP ansehe, aber ich kann mich mit FUP einfach nicht anfreunden. Bei normalen UND/ODER Netzwerken nehme ich gerne KOP und wenn ich mehr Info brauche (online), dann schalte ich sowieso auf AWL.
Aber das liegt auch, wie so vieles, im Auge des Betrachters.
 
Vieles ist ja Gewöhnungssache. Ich programmiere gerne in SCL.

Das mit Quellenprogrammierung ist aber sehr interessant. Werde mich mal intensiver mit dieser Thematik befassen. Was jedenfalls sehr schön ist, Quellen sind leserlicher als ein langweilig schwarzer AWL Editor.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Wie wäre es den FB in FUP zu Programmieren und dann als Quelle Exportieren, dann müsste man diesen auch wieder mithilfe des Symbolischen namens den man in der Symboltabelle angibt auch unter einer anderen FB Nummer wieder Importieren können. Ich meine das funktioniert, einfach mal probieren mit nem TestFB, wenn es umbedingt eine AWL-Quelle sein muss dann in FUP Programmieren umwandeln lassen in AWL von S7 und dann als Quelle exportieren
 
Das wichtigste ist sich für symbolisch oder absolut addressierung zu entscheiden.
Diese einstellung findet man auf den Reiter "Adress Priority" (deutsch "Adresse priorität" ?) unter die eigenschaften für den Bausteinordner.

Mit Symbolisches addressierung vorgewählt, programmierst Du z.b. FB20 und gibt es ein symbolisches name, z.b. "ZufuehrungAutomat".
Muss Du jetzt dein programm einfügen in ein bestehendes Programm wo FB20 schon in verwendung ist, z.b FB20 = "Ventil", den muss du dein FB20 ein neues FB nummer geben, also FB21 = "ZufuehrungAutomat" z.b.
Das grosse unterschied ist, das alle andere stellen in dein programm, wo "ZufuehrungAutomat" verwendet ist, wird automatisch FB20 mit FB21 ausgewechselt.
Dasselbe gilt für die Instanz DBs das für "ZufuehrungAutomat" verwendet sind.
Und dies funktioniert auch für den FB und UDT deklarationsteil.
Hast du z.b. "Automat_1".Startbefehl = DB20.DBX2.0, und Du machst ein änderung im deklaration von FB "ZufuehrungAutomat" das bedeutet das
"Automat_1".Startbefehl = DB20.DBX4.0 dann wird dies auch automatisch überall so ausgeführt.

Ich programmiere 100% symbolisch. Absolut addressierung gehört IMHO zum vergangenheit.
Es funktioniert egal ob man in AWL, FUP, KOP oder SCL programmiert.
 
Zuletzt bearbeitet:
Wenn man dann noch einen Editor verwendet, der Syntaxhaghlighting beherrscht, wird's richtig gut. PSPad kann so was und ist Freeware. Damit räume ich meine Schrittketten auf, indem ich den Quelltext editiere.
Screenshot anbei.
Ebenfalls anhängende S7Graph.txt in S7Graph.ini umbenennen und in das Verzeichnis Syntax im pspad-Verzeichnis kopieren. In der PSPad-Hilfe nach Syntaxhihglighting schauen.

Diese Ini kann man sich latürnich für AWL-Quellen umschreiben.
 

Anhänge

  • PSPadGraphQuelle.jpg
    PSPadGraphQuelle.jpg
    155,3 KB · Aufrufe: 25
  • S7Graph.txt
    457 Bytes · Aufrufe: 13
Zuviel Werbung?
-> Hier kostenlos registrieren
Symboltabellen sind überbewertet - Jesper brauch sie nicht mehr

Ich programmiere 100% symbolisch. Absolut addressierung gehört IMHO zum vergangenheit.
Es funktioniert egal ob man in AWL, FUP, KOP oder SCL programmiert.

blabla blupp!

Die Bausteinnummer gibst du dann sicher auch als Wort ein. FC ZEHN beinhaltet dann die Aufrufe von FB ZWANZIG und EINUNDZWANZIG, nur die Instanzen heißen leider 20 und 21, die erstellst ja nicht du, sondern das System...

Gequirlte Kacke!
 
Also, ich muss schon sagen, Step7 ist eigentlich schon ziemlich veraltert. Ich kenne auch andere Systeme, Rockwell, B+R oder Codesys. Alle kennen symbolische Programmierung ohne wenn und aber.

Bei S7 muss ich eine FB Nummer auswählen, wenn die belegt ist, dann kann man kopieren, umbenennen, in andere Bereiche umsiedeln...

Dabei interessiert es mich nicht im geringsten, wo System diese Bausteine ablegt, schliesslich kann ich gesamtsoftware kompilieren und herunterladen. Das geht ja bei Siemens auch nicht, klar kenne ich Bausteinkonsistenz prüfen, das geht aber eine viertel Stunde. Wenn man Field PG hat, eine halbe Stunde...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also wenn schon, dann nicht heimlich.

Es geht schon sehr lang, auch als Siemens - Fan muss man dies zugeben. Beim Kollegen mit einem älteren grünen Field PG kann man locker eine halbe Stunde Pause machen.

Genauso ist es mit WinCC flexibel.
 
Zuletzt bearbeitet:
Also, ich muss schon sagen, Step7 ist eigentlich schon ziemlich veraltert. Ich kenne auch andere Systeme, Rockwell, B+R oder Codesys. Alle kennen symbolische Programmierung ohne wenn und aber.

Bei S7 muss ich eine FB Nummer auswählen, wenn die belegt ist, dann kann man kopieren, umbenennen, in andere Bereiche umsiedeln...

.... tja, das ist der Spagat, den Siemens gemacht hat, um angelehnt an die S5 programmieren zu können (ein paar Sachen gehörten wirklich abgeschafft: S5T#xxx , AUF DB ... ).

Es stimmt- es ist Schnee von gestern - ein Überbleibsel aus vergangener (guter?) Zeit.

Man kann "vollsymbolisch" arbeiten, aber die Adresse wird dennoch auf Programmebene eingesetzt (man kann ja auch immer die Ansicht so wechseln, dass man die eingetragene Adresse sieht.
Bei Beckhoff kann man völlig losgelöst davon programmieren - Adressen interessieren zum Programmieren GAR NICHT (wenn man will) - nur bei der Zuordnung zur Hardware kommen die Adressen wieder ins Spiel :)

Bei komplexeren Programmen (Strukturen, Rezeptdaten, etc.) finde ich die symbolische Programmierung für unerlässlich .... klar, geht auch ohne (zur S5-Zeit ging's ja auch absolut) - aber wenn die letzten Reserven verbraucht waren, da kam richtig Arbeit auf einen zu, wenn wo was eingefügt werden musste (alle Adressen verschieben) - bei der symb. Programmierung gehört dies wohl der Vergangenheit an. Absolute Adressen finde ich persönlich nur in folgenden Bereichen interessant (global-DBs für Datenaustausch, Hardware-Adressierung, Meldebereiche)
 
Zurück
Oben