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

Ergebnis 1 bis 9 von 9

Thema: Automatisches Setzen von Inputs in PLC Sim

  1. #1
    Registriert seit
    24.03.2015
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Community,

    ich habe zurzeit ein Problem mit TIA Portal in Verbindung mit PLCSim und hoffe ihr könnt mir dabei helfen. Es handelt sich bei beiden Programmen um die Version 13 und die Basis Version.

    Erstmal vom Anfang: Ich habe die Variablen in einer Variablentabelle angelegt. Da ich dort aber keine Remanenz bei den Variablen habe, überführte ich diese in einen globalen Datenbaustein. Dieser ist optimiert.

    Nun werden die Variablen jedoch bei der Verwendung in FUP zum einen ohne Adresse und zum anderen nur noch als "..." angezeigt, sodass es kaum eine Unterscheidung zwischen den Variablen gibt und damit die Übersichtlichkeit darunter leidet. Gibt es dort weitere Möglichkeiten?

    Zweites Problem und eher das Größere:
    Wenn ich das Programm beobachten möchte, starte ich PLC SIM und füge die Variablen dort in die Sim-Tabelle ein.
    Wenn ich nun jedoch versuche, einzelne Inputs zu setzen, werden auch, wie von Zauberhand, andere Inputs auf 1 gesetzt ohne, dass diese irgendeine Verknüpfung zueinander aufweisen. Manche Variablen lassen sich dann auch nicht mehr zurücksetzen.
    Das Kuriosiste dabei ist, dass bei einem bestimmten Input auf 1 zwei Int-Variablen die Werte 8 und 2048 annehmen, obwohl diese wiederrum keine Verbindung miteinander haben.

    Bin dankbar für jede Antwort und hoffe ihr könnt mir bei den beiden Problemen helfen

    EDIT mit Lösung:

    Durch die unvorteilhafte Deklarierung der Wörter (IW1, IW2) fand eine Überlagerung statt. Deshalb wurden die Wörter in IW4 und IW6 umbenannt, welches das Problem löste.
    Geändert von Fesinator92 (13.08.2015 um 08:15 Uhr)
    Zitieren Zitieren [Solved] Automatisches Setzen von Inputs in PLC Sim  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Wie lauten denn die Adressen der Variablen und Inputs, die eigentlich keine Verbindung haben dürften.

  3. #3
    Fesinator92 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2015
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich versuche das ganze jetzt mal irgendwie zu erklären. Von %I0.1 bis %I0.6 sind verschiedene Inputs deklariert. Zwei Integer Variablen (%IW1,%IW2) sind ebenfalls angelegt. Diese 2 Int-Werte werden im Programm miteinander multipliziert und zwar erst dann wenn %I0.1 true ist.

    Also setze ich %I0.1 auf 1 und gebe bei IW2 eine Zahl ein (wird auch einwandfrei genommen) und bei IW1. Je nachdem welche Zahl IW2 hat, verändert sich IW1 dementsprechend.

    IW1 = 1 --> IW2 = 256
    IW1 = 2 --> IW2 = 512
    IW1 = 3 --> IW2 = 768

    und so weiter...dazu kommt, dass sich gleichzeitig die Inputs 0.2 bis 0.6 verändern

    IW1 = 2 --> I0.2 = true
    IW1 = 3 --> I0.3 = true
    IW1 = 4 --> I0.4 = true
    IW1 = 5 --> I0.3 und I0.4 = true
    IW1 = 6 --> I0.2 und I0.5 = true

  4. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    IW1 (ganz schlechte Wahl! weil ungerade) besteht aus IB1 und IB2. IW2 besteht aus IB2 und IB3.
    Na, merkt er was?

    Und warum zur Eingabe von Daten I(nput) und nicht M(erker).
    PS: Keine Ahnung, ob die Merker in englisch nicht auch einen anderen Buchstaben haben.


    Und wo gehen die I0.x im DB hin und wohin die IWs? Oder doch I1.x statt I0.x eingegeben? Klingt nämlich auch nach Überlagerung.
    Vlt. kannst Du ja mal 'ne Screenshot posten?
    Geändert von hucki (22.07.2015 um 18:13 Uhr)

  5. #5
    Fesinator92 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2015
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erstmal danke für die Hilfe

    Bei IW1 hast du tatsächlich recht, ich habe noch nie wirklich mit Integer-Werten gearbeitet. Also das Problem, dass sich IW2 gleichzeitig erhöht, ist schon einmal gelöst.
    Wie sich die Inputs verhalten, kann ich aber noch nicht sagen, weil ich das Programm nicht zuhause habe. Schaue ich mir dann morgen mal an.

    Ich habe die als Inputs deklariert, weil PLCSim es bei der S7-1200 absolut nicht zulässt Merker auf irgendeinen bestimmten Wert zu setzen (ausgegrautes Feld).
    Die I0.x im DB sind über Eingangs Zuweisungen (als FC angelegt) mit den Variablen aus der Variablentabelle verbunden. Diese haben bei mir die Bezeichnungen für die Lage im Schaltplan.

    Da sehr viele Eingänge im Programm verwendet werden, gehen die Inputs von I0.x bis I1.6, kommt es dabei zu Problemen?

  6. #6
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Ja. I1.x sind die einzelnen Bits des IB1.
    ��

  7. #7
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Gibt es einen Grund warum du keine Symbolik verwendest? Würdest du den Eingängen, Ausgängen Eingangsworten, Ausgangsworten Symbole geben und die Symbole in der Beobachtungs/Forcetabelle sowie im Programm verwenden, dann Motzt TIA bei überlappungen. Ausserdem siehst du dann immer welche Absolutadresse die Peripheriesymbole haben, was dir bei der Ein/Ausgangssimulation hilft

    Dazu noch ein Tip. Wenn du die Peripherie erstmal in einen Globalen DB überführst, hast du erstens die Möglichkeit alle Eingänge etc zentral jeden Einzeln passend vorzubereiten (invertierung, skalierung etc.) und ausserdem kannst du für den Test im PLCsim diese übertragung der Peripherie erstmal ausklammern und dann direkt mit Variablentabellen Symbolisch arbeiten.

    Bsp:
    Code:
    FUNCTION_BLOCK "IO_Handling"
    { S7_Optimized_Access := 'FALSE' }
    VERSION : 0.1
    
    
    BEGIN
        //
        // Import der IO's auf die DB's
        //
        
        // CPU - Eingänge
        "S7_FAS_AV01"._DBX_0_0 := NOT "DE_0_0";
        "S7_FAS_AV01"._DBX_0_1 := NOT "DE_0_1";
        "S7_FAS_AV01"._DBX_0_2 := NOT "DE_0_2";
    
    
        // Messschrank AV01 - Ausgänge
        "DA_25_0" := "S7_FAS_AV01"._DBX_25_0;             
        "DA_25_1" := "S7_FAS_AV01"._DBX_25_1;
        
    END_FUNCTION_BLOCK
    Testbetrieb:
    Code:
    ORGANIZATION_BLOCK "Main"
    TITLE = "Main Program Sweep (Cycle)"
    { S7_Optimized_Access := 'TRUE' }
    VERSION : 0.1
    
    
    BEGIN
        //"IO_Handling_DB"();
        "Sammelalarm_DB"();
    
    
        "Systemfunktionen_DB"(sekunden:="sekunden",
                              minuten:="minuten",
                              stunden:="stunden",
                              ms100_Takt:="ms100takt",
                              WD:="S7_FAS_AV01"._DBW_200_0);
        
    END_ORGANIZATION_BLOCK
    Scharfer Betrieb:
    Code:
    ORGANIZATION_BLOCK "Main"
    TITLE = "Main Program Sweep (Cycle)"
    { S7_Optimized_Access := 'TRUE' }
    VERSION : 0.1
    
    
    BEGIN
        "IO_Handling_DB"();
        "Sammelalarm_DB"();
    
    
        "Systemfunktionen_DB"(sekunden:="sekunden",
                              minuten:="minuten",
                              stunden:="stunden",
                              ms100_Takt:="ms100takt",
                              WD:="S7_FAS_AV01"._DBW_200_0);
        
    END_ORGANIZATION_BLOCK
    mfg René

  8. #8
    Registriert seit
    24.07.2012
    Beiträge
    58
    Danke
    36
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Zitat Zitat von Fesinator92 Beitrag anzeigen
    Erstmal vom Anfang: Ich habe die Variablen in einer Variablentabelle angelegt. Da ich dort aber keine Remanenz bei den Variablen habe, überführte ich diese in einen globalen Datenbaustein. Dieser ist optimiert.

    Nun werden die Variablen jedoch bei der Verwendung in FUP zum einen ohne Adresse und zum anderen nur noch als "..." angezeigt, sodass es kaum eine Unterscheidung zwischen den Variablen gibt und damit die Übersichtlichkeit darunter leidet. Gibt es dort weitere Möglichkeiten?
    Die Variablentabelle dient dazu, den Variablen Namen (Symbole) zu geben. Das ist auch nicht für irgendwelche Remanenzanwendungen gedacht.
    Bei optimierten Bausteinen auch aufpassen, dass die Remanenzeigenschaft aktiv ist!

    TIA ist bei richtiger Nutzung der symbolischen Adressierung im Vergleich zu S7-classic richtig gut nutzbar.
    Jeder muss nur für sich einen Weg finden, wie er seine Bausteine und Variablen benennt. Dann macht TIA auch richtig Spaß.

  9. #9
    Fesinator92 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2015
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ganz vergessen hier zu antworten. Danke für alle Antworten. Mein Problem hat sich durch die Anmerkung von Hucki gelöst. Habe einfach die deklarierten Wörter in IW4 und IW6 umbenannt

Ähnliche Themen

  1. Sercos Phasen von TwinCat PLC aus setzen
    Von Benni im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 26.11.2012, 13:02
  2. PLC Sim
    Von Ninja2602 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.11.2011, 13:03
  3. Plc sim
    Von franzlurch im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 14.02.2011, 07:30
  4. Antworten: 21
    Letzter Beitrag: 16.09.2009, 12:38
  5. PLC-Sim ???
    Von kpeter im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.05.2006, 13:19

Stichworte

Lesezeichen

Berechtigungen

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