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

Ergebnis 1 bis 7 von 7

Thema: Variablenwerte vom System Manager werden nicht/falsch zum PLC Control übernommen

  1. #1
    Registriert seit
    01.04.2013
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich habe ein komisches Problem.
    Wenn ich meine Eingangs-, Ausgangs-, Profinet Controller (EL6631),.. mit dem PC mit einem Koppler (EK1100) verwende funktioniert alles einwandfrei. Wenn ich jetzt aber statt dem Koppler eine CX9020 gibt es ein komisches Verhalten.
    Beim Profinet wurde eine Kamera von Keyence angeschlossen welche ein Array von Byte liefert. Dieses Array habe ich im System Manager zu meiner UINT Variable (inVar) vom meinem Program verknüpft (mit jeweils den richtigen Offsets). Anschließend habe ich die Konfiguration aktiviert und das Program hinaufgespeilt (genau das gleiche wie mit dem Koppler nur habe ich den Prozessor Typ umgestellt).

    Jetzt das komische Problem:
    Beim System Manager sehe ich z.b. dass das Byte array 0x00 0x00 0x00 0x02 hat --> die Variable (inVar) hat den Wert 2 -> so weit so gut. Aber wenn ich jetzt die Variable inVar im PLC Control ansehe hat es den Wert 131072 -> 0x00020000. Also so wie es aussieht wird hier irgendwie die Bytes ein wenig verschoben.
    Wie kann das sein?

    inVar ist eine globale Variable und ich habe diese zu meinem StandardTask (2ms) angehängt. Der SyncTask vom Profinet Controller hat 1ms. Kann das das Problem sein? Muss ich die inVar zu dem Profinet SyncTask verbinden?

    Vielen Dank
    Ludi
    Zitieren Zitieren Variablenwerte vom System Manager werden nicht/falsch zum PLC Control übernommen  

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

    Standard

    So wie das aussieht ist da nur Hi- und LoWord vertauscht. Hast du im Systemmanger bei deiner Variablenverknüpfung irgendwo die Option "Tausche LOWORD und HIWORD" ?

  3. #3
    ludi81 ist offline Benutzer
    Themenstarter
    Registriert seit
    01.04.2013
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, ja es gibt das flag, aber das habe ich nicht gesetzt. Außerdem müsste dann doch auch bei der Online Ansicht von der Variable im TwinCAT System Manager der falsche Wert stehen. Dieser stimmt aber.

    Kann es sein weil der PC eine x86 und das CX9020 eine ARM Architektur hat?

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

    Standard

    So weit ich weiß verwenden alle CX das Little Endian Format. Mappst du das Byte-Array direkt auf ein DWORD?

  5. #5
    ludi81 ist offline Benutzer
    Themenstarter
    Registriert seit
    01.04.2013
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hallo, ich mappe das Byte Array (4 Bytes) direkt auf meine UINT Variable (das erste byte hat den offset 24, das zweite 16, das dritte 8 und das vierte o).

    es wird ja beim System Manager richtig angezeigt, deshalb müsste das mapping ja stimmen. Im Program ist es anders.

  6. #6
    Registriert seit
    29.09.2006
    Beiträge
    368
    Danke
    0
    Erhielt 41 Danke für 38 Beiträge

    Standard

    Ändert sich das bei dieser Einstellung in der Registry? "HKEY_CURRENT_USER\Software\Beckhoff\TwinCAT System Manager\On Startup" ein DWORD "SubVarOffsByOffs" mit dem Wert "1" bei Neustart vom SystemManager und Rescan vom SPS Projekt?

  7. #7
    ludi81 ist offline Benutzer
    Themenstarter
    Registriert seit
    01.04.2013
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe gestern noch mit Beckhoff telefoniert und folgende 2 Sachen berücksichtigt. Jetzt scheint alles zu funktionieren:
    1) Byte Alignment: Twincat 2 am PC (x86) verwendet 1 Byte alignment, Ein ARM Prozessor mit Twincat 2 verwendet 4. Dadurch wurden die Daten glaube ich verschoben.
    2) Im System Manager habe ich zuerst das Programm mit dem Koppler erzeugt. Das hat ja funktioniert. Danach habe ich einfach das Projekt unter einem neuen Namen abgespeichert und die Hardware neu gesetzt. Laut Beckhoff muss man unbedingt ein neues Projekt anfangen.

    Vielen Dank für eure Hilfe
    Ludi

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 09.11.2011, 12:40
  2. System Manager öffnet nicht?
    Von lifenec im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 07.06.2011, 09:21
  3. Programm von PLC Control in System Manager einfügen
    Von selly im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 10.02.2011, 11:58
  4. Anfängerfrage zum System-Manager
    Von waba im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 25.07.2008, 23:37
  5. Antworten: 1
    Letzter Beitrag: 14.12.2004, 19:06

Lesezeichen

Berechtigungen

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