TIA FC-Nummer im FC-Aufruf auslesen

Hallo, hat das was mit der automatischen Vergabe der FC-Nummern in TIA zu tun? Schalte die Automatik einfach ab und vergib die FC-Nummer manuell, dann brauchst Du nicht zur Laufzeit fragen, welche Nummer das TIA gewählt hat.
Wozu soll der FC eigentlich seine eigene Nummer kennen?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, hat das was mit der automatischen Vergabe der FC-Nummern in TIA zu tun? Schalte die Automatik einfach ab ...
Auch wenn die Nr. automatisch vergeben wird, so wird sie trotzdem angezeigt.

Würde mich auch interessieren, warum man die während der Laufzeit auslesen muss, da sie doch schon bei der Programmerstellung/Übersetzung bereits bekannt ist?
 
Hey,

Hallo, hat das was mit der automatischen Vergabe der FC-Nummern in TIA zu tun?
Nein hat es nicht.

Der FC soll seine Nummer kennen weil im FC die Variablen indirekt adressiert werden und der FC1 z.B. die Station 1 ist, FC2 Station 2 usw...
Wenn ich die Nummer auslesen könnte würde ich mir das Anpassen (oder vielmehr das vergessen des Anpassen ;)) der Indexvariable sparen.
 
Das hört sich ziemlich sinnfrei an. Der fc ist genau gleich nur die fc Nummer ändert sich? Habt ihr zu viel Speicher und müsst den irgendwie füllen?


Sent from my iPhone using Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
DB Nummer, Länge etc. geht mit ATTR_DB, aber FC Nummer ist mir nicht bekannt. Aber vollmi hat Recht, ist ziemlich sinnlos. Besser wärs doch so:

- UDT erstellen mit den E/A's dieser Funktion, Station oder was auch immer
- UDT für jede Station in der Symboltabelle deklarieren mit Startadresse
- FC mit UDT als Schnittstelle versehen
- Aussen bei dem FC Aufruf nun nur noch das Symbol beschalten (Station 1, 2, 3 etc.)

Die Adressierung ist eines der Dinge, die mit TIA viel sauberer und ohne Pointer gelöst werden können als mit Step7.

Sonst Programmierleitfaden S.69 mal anschauen.

Gruss Patrick
 
Zuletzt bearbeitet:
Der fc ist genau gleich nur die fc Nummer ändert sich?

Das habe ich nicht geschrieben und das ist auch nicht so.
Schöner wäre ein einfaches "Nein" oder "Ja das geht so:..." auf meine einfache Frage zu antworten als sinnfreie Tipps und dumme Kommentare zu schreiben ohne die (nicht relevanten) Hintergründe zu kennen. ;)
Trotzdem danke
 
Das habe ich nicht geschrieben und das ist auch nicht so.
Schöner wäre ein einfaches "Nein" oder "Ja das geht so:..." auf meine einfache Frage zu antworten als sinnfreie Tipps und dumme Kommentare zu schreiben ohne die (nicht relevanten) Hintergründe zu kennen. ;)
Trotzdem danke

Es scheint ein paar feste Naturgesetze zu geben. die gelten bekanntlich immer.

1. Auf eine Frage bekommt man selten die erwartete Antwort.
2. Es steht jeden Tag einer auf, der meint das Rad neu zu erfinden und es besser zu können als alle vor ihm.
3. Manchmal klappt das sogar.

Ich wüßte nicht, daß das geht.
Ich hab meinen Stationen immer die Nummer als Input mitgegeben, der Aufwand ist nicht groß und man macht sich nicht von irgendwelchen FC-Nummern abhängig.
Außerdem sieht man es sehr schön (ist bei mir der 1. Input).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der fc ist genau gleich nur die fc Nummer ändert sich?
Das habe ich nicht geschrieben und das ist auch nicht so.
Wenn es zwei verschiedene FC sind, dann ist es nicht notwendig, daß die FCs zur Laufzeit ihre Nummer kennen oder ermitteln. Im FC1 programmierst Du fest die Adressierung der Variablen der Station 1 und im FC2 programmierst Du fest die Adressierung der Variablen der Station 2.

Wenn es doch der selbe FC für verschiedene Stationen ist, dann ist es nicht zweckmäßig, die eigene FC-Nummer zu ermitteln, weil es ja bei jedem Aufruf die selbe Nummer ergeben würde.

Dein Vorhaben ist so oder so ziemlich sinnfrei.

Und nun ganz eindeutig: Nein, bei S7-300 und S7-400 geht es nicht, daß ein FC die eigene Nummer erfragt. (bei S7-1200 und S7-1500 geht es sehr wahrscheinlich auch nicht)
(bei S7-400 und einigen S7-300 kann man theoretisch extra einen "Programmierfehler" einbauen, welcher einen Fehler-OB aufruft und den Fehler-OB auswerten oder im Diagnosepuffer nachschauen, wo der Fehler aufgetreten ist)

Genau für die mehrfach-Verwendbarkeit von Bausteinen wurde die Parametrierfähigkeit per Aufrufparameter erfunden. Es liegt am Programmierer, bei jedem Aufruf die richtigen Aktualoperanden anzugeben - dafür wird der SPS-Programmierer schließlich bezahlt und nicht für das gedankenlose Kopieren von Code und vergessen die notwendigen Anpassungen vorzunehmen.

Harald
 
Wenn es doch der selbe FC für verschiedene Stationen ist, dann ist es nicht zweckmäßig, die eigene FC-Nummer zu ermitteln, weil es ja bei jedem Aufruf die selbe Nummer ergeben würde.

Dein Vorhaben ist so oder so ziemlich sinnfrei.

Hättest du den Thread aufmerksam gelesen wüsstest du das es nicht derselbe FC ist. Und was in meinen Projekten sinnfrei ist und was nicht kannst du nicht entscheiden.

Es liegt am Programmierer, bei jedem Aufruf die richtigen Aktualoperanden anzugeben - dafür wird der SPS-Programmierer schließlich bezahlt und nicht für das gedankenlose Kopieren von Code und vergessen die notwendigen Anpassungen vorzunehmen.
Richtig - dennoch nutze ich jede Möglichkeit die mir Arbeit und eventuell damit verbundene Fehler spart.
 
Das habe ich nicht geschrieben und das ist auch nicht so.

Also wenn der FC sich eh unterscheiden, du also Code ändern musst. Dann halte ich es doch für Sinnfrei genau die Stationsnummer irgendwie zu automatisieren, erst recht sie von der FC nummer abhängig zu machen. Da blickt ja nachher keiner mehr durch.

Schöner wäre ein einfaches "Nein" oder "Ja das geht so:..."

Das könnte man machen. Man könnte auch einfach ein Handbuchlink eintragen. Aber das SPS Forum ist eigentlich für Diskussionen, Wissensverbreitung und Entwicklung da. Das funktioniert nur wenn man aus dem ganzen Wortschatz kramt auch wenn ein JA oder NEIN manchmal ausreichen würde.

Ich kann jetzt nur für mich sprechen, aber ich habe schon etliche Fragen gestellt und wesentlich umfangreichere Antworten bekommen als erwartet welche mich zum teil auf völlig andere Wege gebracht haben, aber immer vorwärts. Es ist also nicht so, dass es von Nachteil ist, wenn einem der Programmierstil von anderen Entwicklern auch mal hinterfragt wird.

Die Mehrheit der Kommentare sind auch nicht dumm, sondern allenfalls mal sarkastisch oder herausfordernd. Manchmal auch fies, aber selbst diese sind eher dazu gedacht den Fragesteller dazu zu bringen sich nochmal über den Code herzumachen.

Du kannst dich aber natürlich weiterhin darauf versteifen auf deine Fragen kurze Antworten zu wollen und alle anderen Personen rauszufiltern die nicht wie erwartet geantwortet haben (gibts hier einen Filter?). Dann wirst du recht schnell ein stilles Forum haben und in der Entwicklung entweder stehenbleiben oder den Code maximal nach Siemensplan mit der Maus zusammenklicken.

mfG René
 
Zurück
Oben