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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Zugriff auf Variable über String mit Var-Namen

  1. #1
    Registriert seit
    16.01.2009
    Beiträge
    45
    Danke
    16
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    habe ein ziemliches Problem:
    Gibt es unter TwinCAT eine Möglichkeit, über einen String (der z.B. in einer Visu beschrieben wird und den Variablennamen enthält), im PLC-Programm auf die Variable dieses Namens zuzugreifen und sie abzufragen?
    Z.B. Variable vom Typ BOOL: TEST1
    Wenn in einem String (in der PLC) dann der Variablenname "TEST1" steht, kann man dann mittels dieses Strings auf die gleichnamige Variable zugreifen und ihren Signalzustand in der PLC abfragen/verarbeiten?

    Danke im Voraus für eure Hilfe!
    Marco
    Zitieren Zitieren Zugriff auf Variable über String mit Var-Namen  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Nochmal langsam zum mitschreiben.
    Du willst extern mit einer Software auf Variablen in deiner SPS zugreifen, von denen du nur die Namen kennst?

    Mit den ganzen Visualisierungen kenne ich mich nicht aus. Aber es funktioniert auf jeden Fall mit mit C++, Delphi, (Basic?) und LabView.
    TwinCat OCX ist eigentlich recht einfach zu handhaben, gewisse Grundkenntnisse in den jeweiligen Sprachen vorrausgesetzt.

    Ist es sowas, was dir vorschwebt, oder wandere ich hier auf dem Holzweg?

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    ... wenn ich die Frage richtig verstanden habe, dann will der Themenstarter in einem String der SPS den Namen der Variablen übergeben, die sie be-/verarbeiten soll ...
    Wenn ja, dann ginge das m.E. nur in dem in der SPS eine Routine programmiert wird, die den Inhalt des Strings abfragt/vergleicht und entsprechend dann die (schon bekannten) Variablen verwendet ...

    Gruß
    LL

  4. #4
    Registriert seit
    16.01.2009
    Beiträge
    45
    Danke
    16
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Larry Laffer hat recht...
    Aber hat jemand eine Idee, wie ich eine Variable im PLC-Programm verarbeite, von der ich nur den Namen in einem String habe? Wie könnte man diese Variable anhand ihres Namens suchen und verarbeiten?

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich sehe das wie Larry, so wie du das gern hättest geht das nicht.

    Du mußt den Variablennamen aus den String isolieren.
    Dann per Stringvergleich in einer vordefinierten Liste nachsehen, ob ein Varname paßt. Für jeden Varnamen brauchst du dann die entsprechende Aktion mit dieser Variablen.

    [PHP]IF strVarName = 'Variable_1' THEN
    Var_Wert := Variable_1;
    ELSE
    IF strVarName = 'Variable_2' THEN
    Var_Wert := Variable_2;
    ELSE
    IF strVarName = 'Variable_3' THEN
    Var_Wert := Variable_3;
    END_IF
    END_IF
    END_IF[/PHP]
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Wäre es nicht einfacher, in der Visu den Wert der gewünschten Variablen zu ermitteln und diesen direkt einer anderen Variablenzuzuweisen, mit der dann in der PLC weitergearbeitet wird?
    Die Variablennamen sind meines Wissens nach nicht im PLC-Programm zur Laufzeit verfügbar. Deshalb wäre auch eine vordefinierte Liste wie bei Ralle notwendig.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  7. #7
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Habe mir mal die Systemfunktionen von Twincat angesehen.

    Da gibt es den FB:

    -> PLC_ReadSymInfoByName

    Der nimmt als Eingangsparameter den Namen der Variablen als String entgegen. Als Out gibt er zwar nicht direkt den Wert der Variablen aus, aber zumindest die Größe der Variablen und deren Adresse.
    Dann könnte man evtl. indirekt über die Adresse auf die Variable zugreifen.

    Ist aber ohne Gewähr, weil ich noch nie mit TwinCat gearbeitet habe. Also am besten mal eben die Twincat-Hilfe nach "PLC_ReadSymInfoByName" befragen.

  8. Folgender Benutzer sagt Danke zu Grubba für den nützlichen Beitrag:

    Cerberus (02.09.2009)

  9. #8
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard

    Zitat Zitat von Grubba Beitrag anzeigen
    Habe mir mal die Systemfunktionen von Twincat angesehen.

    Da gibt es den FB:

    -> PLC_ReadSymInfoByName

    Der nimmt als Eingangsparameter den Namen der Variablen als String entgegen. Als Out gibt er zwar nicht direkt den Wert der Variablen aus, aber zumindest die Größe der Variablen und deren Adresse.
    Dann könnte man evtl. indirekt über die Adresse auf die Variable zugreifen.

    Ist aber ohne Gewähr, weil ich noch nie mit TwinCat gearbeitet habe. Also am besten mal eben die Twincat-Hilfe nach "PLC_ReadSymInfoByName" befragen.
    Hier der entsprechende Link zur Beckhoff-Hilfe.
    A programmer is just a tool which converts caffeine into code.

  10. #9
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 63 Danke für 62 Beiträge

    Standard

    Zitat Zitat von Cerberus Beitrag anzeigen
    Hier der entsprechende Link zur Beckhoff-Hilfe.
    Und dann mit Index und Offset aus der Struktur, per AdsRead und AdsWrite auf die Variable zugreifen.

  11. #10
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Neals Beitrag anzeigen
    Und dann mit Index und Offset aus der Struktur, per AdsRead und AdsWrite auf die Variable zugreifen.
    Ich glaube du wolltest eigtl folgende Links verwenden: Struktur, AdsRead und AdsWrite.
    A programmer is just a tool which converts caffeine into code.

Ähnliche Themen

  1. String Variable
    Von Anger im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.03.2011, 18:09
  2. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  3. String als OUT-Variable an FC
    Von baggerandy im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 25.11.2009, 09:05
  4. Zugriff auf NC-&PLC-Variable per C++/DDE
    Von Ulrich im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 21.05.2008, 11:22
  5. Zugriff auf DB(String) über Pointer
    Von Thomas R im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.03.2007, 21:04

Stichworte

Lesezeichen

Berechtigungen

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