Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 42

Thema: Funktionbaustein mit verschiedenen DB*s

  1. #21
    Paco ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2011
    Beiträge
    22
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oh man...keine ahnug hatte ich irgendwo gelesen....

    Ich werds wohl nicht mehr verstehen. Woher soll Netz und Hilfsschaler dnen wissen ob sie eingang oder ausgang sind? wenn sie nur bei "var" deklariert sind?
    Angehängte Grafiken Angehängte Grafiken

  2. #22
    Registriert seit
    27.03.2007
    Beiträge
    59
    Danke
    28
    Erhielt 34 Danke für 28 Beiträge

    Standard

    Hallo Paco,

    was der Pfälzer bereits erwähnte hast du bisher leider ignoriert (wenn dir das Hintergrundwissen fehlt, dann hättest du auch gerne dazu eine Frage stellen dürfen).
    Zitat Zitat von Der Pfälzer Beitrag anzeigen
    Es sieht so aus, als dass du nicht die def.Variablen benutzt, sondern Absolute Adressen (zB "Hilfs" E0.3)
    gleiches Problem
    Also, die internen Variablen in einem FB werden direkt im DB abgespeichert. Der DB ist quasi das Gedächtnis. Eine Grundregel bei einem mehrfach zu verndetem FB ist, das dort KEINE Absolutadresse verwendet werden dürfen.

    Zitat Zitat von Paco Beitrag anzeigen
    Wenn ich nun den fb aufrufe mit Ein Zeit und Aus als in parameter und Stern und Dreieck als Out, nehme ich noch Netz und "hilfsschalter" als var.
    Dennoch muss ich doch in der symboliktabelle sagen was Netz oder Hilfsschalter sind, (eingang, ausgang) oder nicht?
    Das ist mir leider noch unklar...
    Netz und Hilfsschalter werden bei dir nur im FB verwendet und sind somit lokal. Die brauchst du nicht in der Symboltabelle deklarieren. Der FB merkt sich ihren Zustand. Du kannst den beiden im FB einen Wert zuweisen und diesen dann entsprechend abfragen und z.B. auf einen Ausgang verschalten. Sie sind weder Ein- noch Ausgang, sondern nur Hilfsbits um dir etwas zu merken.

    Eine weitere Grundregel in der Programmierung lautet: Gib deinen Variablen sinnvolle Symbolnamen. Du hast dem Eingang E0.3 den Namen "Hilfs" gegeben. Außerdem hast du in der Variablendeklaration den Namen "Hilfs" verwendet. Bei Siemens kann man die beiden nun Unterscheiden, indem der eine Name in " geschrieben wird (global definiert in der Symbolik) oder eine # vorangestellt ist (interne Variable in einem FB oder FC).
    Da du hier zweimal dieselbe Symbolik verwendest, kann es sehr leicht passieren, dass global und lokal verwendete Variablen durcheinandergeraten. Benenne doch erst einmal die Variablen um und sorge dafür, dass du im Bausteine KEINE globalen Variablen mehr verwendest. Dann klappt das auch mit dem Aufruf.

    Gruß Sonja

  3. #23
    Registriert seit
    08.10.2009
    Ort
    Südpfalz
    Beiträge
    273
    Danke
    43
    Erhielt 54 Danke für 47 Beiträge

    Standard

    Zitat Zitat von Paco Beitrag anzeigen
    Ok das ist schonmal neu für mich und sieht ganz gut aus. Wenn ich nun den fb aufrufe mit Ein Zeit und Aus als in parameter und Stern und Dreieck als Out, nehme ich noch Netz und "hilfsschalter" als var.
    Dennoch muss ich doch in der symboliktabelle sagen was Netz oder Hilfsschalter sind, (eingang, ausgang) oder nicht?
    Das ist mir leider noch unklar...
    Das Thema ist nicht mit ein paar Infos rüberzubringen.
    OK, ich versuch mal einen kleinen Crashkurs (wo soll ich nur anfangen?)

    Also,
    du musst zwischen den "Absoluten Adressen" (Ex.x, Ax.x usw) und den Parametern innerhalb des FBs unterscheiden.
    Die Absoluten sind im gesamten Programm immer die gleichen.

    Die im FB deklarierten sind nur innerhalb des FBs gültig.
    Daher dürfen in einem universellen FB (zB. für mehrere Motoren identische Logik) keine "Absoluten" verwendet werden.
    Diese werden beim Aufruf des FBs an IN, OUT, INOUT übergeben.
    Der FB "trägt" diese in seinen Instanz-DB, der beim Aufruf angegeben wird, ein.

    Dabei ist zu beachten:
    Bei Abfragen (U, O, L..) im FB ist IN zu verwenden.
    Bei Zuweisen (S, R, =) im FB ist es OUT.
    Ist beides programmiert, muss INOUT angegeben werden.

    Die Deklarationen im Bereich STAT sind "Speicherzellen" im Instanz-DB.
    Diese sind beim nächsten Zyklus (Abarbeiten des Programms) für diesen Aufruf des FBs gültig (Gedächtnis).

    Die Deklarationen im Bereich TEMP sind nur temporär (zeitlich) während der Abarbeitung innerhalb des FBs gültig.
    Einer Abfrage muss daher vorher eine Zuweisung erfolgen.
    Verwendung zB für Zwischenmerker, die nur innerhalb des FBs gebraucht werden.
    (gültig = reeler Wert)
    Mal so grob für Nicht-SPSler

    Zur Symboltabelle:
    Die solltest du eintragen, ist aber für die Funktionalität kein Muss.

    Ich hoffe, ich konnte dir mal weiterhelfen.

    Gruß Roland

    Edit
    Puzzlefreak war schneller
    Zum Verständnis:
    Die "Absoluten" bei mir sind mit den "Globalen" bei Puzzlefreak identisch.
    Geändert von Der Pfälzer (06.05.2011 um 13:56 Uhr) Grund: Edit
    Nicht Mensch, nicht Tier: Programmierer halt ...

  4. Folgender Benutzer sagt Danke zu Der Pfälzer für den nützlichen Beitrag:

    Paco (06.05.2011)

  5. #24
    Paco ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2011
    Beiträge
    22
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke das war sehr hilfreich...

    Aber ich verstehe immernoch nicht wie ich dann "Netz" und "Hilfs" verwenden soll. Ich soll nach aufgabenstellung im FB mit "hilfs" - der ein eingang sein soll, das Netz - was ein ausgang sein soll. EInschalten.

  6. #25
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Zitat Zitat von Paco Beitrag anzeigen
    hoffe einer von euch kann mir bei folgenden Problem helfen, und ich kann dem gespräch mit meinem Prof ausm weg gehen
    Wenn ich mir den Thread inzwischen so anschaue, dann kann ich mir auch vorstellen warum Du kein Gespräch mit dem "Prof" führen möchtest. So richtig hast Du den Sinn eines Funktionsbausteins noch nicht verinnerlicht!
    Also nun von meiner Seite langsam zum Mitschreiben:
    Immer wiederkehrende Funktionsabläufe (wie Deine Stern-Dreieck-Sache) werden innerhalb eines FB's programmiert. Die Informationen, wie z.B. Taster "Ein" usw. werden als IN-Parameter dem FB übergeben. Der FB macht dann intern das, was er tun soll - und übergibt die Steuerbefehle den OUT-Parametern.
    Den FB "Stern-Dreieck" kann man nun einmal oder auch mehrmals aufrufen z.B. in einem FC oder auch einem anderen FB. Am Aufruf des FB "Stern-Dreieck" werden nun aussen die IN und OUT-Parameter versorgt.

    Gruß Approx

    P.S.: Dein "Prof" hats sicher auch nicht leicht...
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  7. #26
    Paco ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2011
    Beiträge
    22
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hehe ja er hats sicherlich nicht leicht

    Ein verusuch noch

    Wenn aber "hilfs" KEIN In parameter ist, was nach aufgabenstellung so beschrieben ist, wie kann ich dann mit ihm etwas einschalten?

  8. #27
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Paco Beitrag anzeigen
    Hehe ja er hats sicherlich nicht leicht

    Ein verusuch noch

    Wenn aber "hilfs" KEIN In parameter ist, was nach aufgabenstellung so beschrieben ist, wie kann ich dann mit ihm etwas einschalten?
    Hast du dich inzwischen miut IN / OUT und VAR Parameter beschäftigt?
    Hast du nachgelesen, was die im einzelnen tun und wie diese verwendet weren können?

    Wenn ich deine Beiträge lesen eher weniger, leider.


    bike

  9. #28
    Registriert seit
    08.10.2009
    Ort
    Südpfalz
    Beiträge
    273
    Danke
    43
    Erhielt 54 Danke für 47 Beiträge

    Standard

    Kannst du mal die Aufgabenstellung posten?
    Nicht Mensch, nicht Tier: Programmierer halt ...

  10. #29
    Paco ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2011
    Beiträge
    22
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mit einem Ein taster wird ein (sternschütz) eingeschaltet. WEnn das schütz angezogen hat betätig es normalerweise einen HIlfsschalter. Mit diesem Schalter( den wir als eingang simulieren) wird das sogenannte netzschütz eingechaltet und der motor läuft nun mit diesem beiden schützen im Stern betrieb. Gleihczeigt mit dem Hilfsschalter wird einen motorspezifische Stern-Dreieck-Umschaltzeit gestartet. Ist diese Zeit abgelaufen, wird das Sternschütz abgeschaltet und das Dreieckschütz eingeschaltet. Nun läuft der motor im Dreieckbetrieb. Mit einem austaster kann man alles jederzeit beenden.


    1) Es soll ein Fb geschrieben werden in dem die Anlauffunkton realsiert wird. Als übergabevariablen sollen variablen für den ein und Aus-taster und die stern-dreieck-zeit vorgesehen werden. Sowie Sternschütz und Dreieckscütz als rückgabevariablen.

    So bitte


    Übringends habe ich nun endlich geschafft einen Fb fehlerfrei mit "Verstand" zum laufen zu bringen. bzw ein Motor läuft an, nur leider wenn ich den zweiten anschalte überlaufen sie sich gegenseitig:S

  11. #30
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Paco Beitrag anzeigen
    Aber ich verstehe immernoch nicht wie ich dann "Netz" und "Hilfs" verwenden soll. Ich soll nach aufgabenstellung im FB mit "hilfs" - der ein eingang sein soll, das Netz - was ein ausgang sein soll. EInschalten.
    "Netz" ist doch das Netzschütz, also auch ein Out-Parameter.
    Nur Stern und Dreieck bringt nicht wirklich viel.

    Und mit "Hilfs" ist die Rückmeldung des Sternschützes gemeint.
    Also ein IN-Parameter, da du aber kein Schütz hast wird es mit einem separatem Schalter simuliert.

    Somit ergibt sich folgende Beschaltung des FB:
    Code:
    IN : Ein
    IN : Aus
    IN : Rueckmeldung Stern
    IN : Zeit Stern
    OUT: Netz
    OUT: Stern
    OUT: Dreieck
    Geändert von Paule (06.05.2011 um 15:03 Uhr)
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

Ähnliche Themen

  1. Drehstrommotor an verschiedenen Netzen
    Von sirbarny im Forum Antriebstechnik
    Antworten: 10
    Letzter Beitrag: 06.06.2011, 16:46
  2. Antworten: 25
    Letzter Beitrag: 05.01.2011, 07:47
  3. DP-DP Koppler verschiedenen Adressen
    Von godi im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 04.07.2008, 16:12
  4. Zusammenführen von verschiedenen S7 Projekten
    Von Tobias135 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.09.2006, 19:15
  5. Die verschiedenen Spam Typen....
    Von Kojote im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 27.12.2005, 19:05

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •