-> Hier kostenlos registrieren
Hallo miteinander,
Ich nutze folgenden Code innerhalb der Visualisierung in der Eigenschaft "Textvariablen" -> "Textvariable" und "Tooltipvariable" in e!COCKPIT.
Damit übergebe ich in der Steuerung eine andere Textliste und ID als Variable an einen Frame, da die Eigenschaft "Dynamische Texte" keine Variablen annimmt.
Leider funktioniert das nicht mehr mit CODESYS 3.5.19.0 (alles auf neueste Version gesetzt), ich erhalte folgende Fehlermeldung bei der Codeerzeugung:
Kennt jemand eine alternative Möglichkeit, die Textliste und ID (oder den Inhalt) als Variable zu übergeben, ohne dafür extra eine POU zu erstellen?
Ich nutze folgenden Code innerhalb der Visualisierung in der Eigenschaft "Textvariablen" -> "Textvariable" und "Tooltipvariable" in e!COCKPIT.
Damit übergebe ich in der Steuerung eine andere Textliste und ID als Variable an einen Frame, da die Eigenschaft "Dynamische Texte" keine Variablen annimmt.
Code:
...
Code erzeugen...
[FATALER FEHLER] Internal error in _IStatement (maybe try to simplify expressions): __PROPERTYINFO(VisuElems.CmpDynamicText.DynamicTextGetText(pstTextList := ADR(sPanelTextList), pstTextIndex := ADR(sPanelTextID))^, instvar_2); : System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei ..(_IOperatorExpression ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_IOperatorExpression ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_IExpressionStatement ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ISequenceStatement )
[FEHLER] frmMaster: Internal error in _IStatement (maybe try to simplify expressions): {attribute 'message_guid' := 'f8a62334-0fb8-4c02-97b6-8c847d3ba0ac'} __INSTANCEPOINTER^._xUpdateCalled := TRUE; __INSTANCEPOINTER^._visufbelempolygon[0].m_pStaticTextProperties := ADR(GEN_MU_Instance); __INSTANCEPOINTER^.instvar_0 := CONCAT(STR1 := ' ', STR2 := VisuElems.CmpDynamicText.DynamicTextGetText(pstTextList := ADR(__INSTANCEPOINTER^.sPanelTextList), pstTextIndex := ADR(__INSTANCEPOINTER^.sPanelTextID))^); __INSTANCEPOINTER^.instvar_1.pVarAdr := ADR(__INSTANCEPOINTER^.instvar_0); __INSTANCEPOINTER^._visufbelempolygon[0].m_pTextChanges^.pVarText := ADR(__INSTANCEPOINTER^.instvar_1); _visu_temporary_booldummy_0 := FALSE; {nobp_flag}_visu_temporary_pointeroffset_0 := INT#0; {nobp_flag}__INSTANCEPOINTER^._visufbelempolygon[0].m_pTextChanges^.diBitOffsetText := DINT#-1; __INSTANCEPOINTER^.instvar_1.pVarAdr := (__INSTANCEPOINTER^.instvar_1.pVarAdr + UINT_TO_DWORD(INT_TO_UINT(_visu_temporary_pointeroffset_0))); {} __PROPERTYINFO(VisuElems.CmpDynamicText.DynamicTextGetText(pstTextList := ADR(sPanelTextList), pstTextIndex := ADR(sPanelTextID))^, instvar_2); _visufbelempolygon[0].m_pTextChanges^.pVarTooltip := ADR(instvar_2); {warning enable C0355} _visu_temporary_booldummy_0 := __BITOFFSET(VisuElems.CmpDynamicText.DynamicTextGetText(pstTextList := ADR(sPanelTextList), pstTextIndex := ADR(sPanelTextID))^, _visu_temporary_pointeroffset_0, _visufbelempolygon[0].m_pTextChanges^.diBitOffsetTooltip); instvar_2.pVarAdr := (instvar_2.pVarAdr + UINT_TO_DWORD(INT_TO_UINT(_visu_temporary_pointeroffset_0))); _visufbelempolygon[0].m_pTextChanges^.dwVarTextType := INT_TO_DWORD(VisuElems.Visu_FctGetVisuType(lmType := USINT_TO_DWORD(USINT#16))); _visufbelempolygon[0].m_pTextChanges^.dwVarTooltipType := INT_TO_DWORD(VisuElems.Visu_FctGetVisuType(lmType := USINT_TO_DWORD(USINT#16))); _visufbelempolygon[0].m_pTextChanges^.wTextVarValid := WORD#3; {nobp_flag}; _visufbelempolygon[0].m_pDynamicText^.stTextList := 'txtGenFormat'; _visufbelempolygon[0].m_pDynamicText^.stTextIndex := 'str'; _visufbelempolygon[0].m_pDynamicText^.stTooltipIndex := 'str'; _visufbelempolygon[0].m_pDynamicText^.wValidDynamicText := WORD#7; {nobp_flag}; {nobp_flag}; _visufbelemsimple[0].m_pStaticTextProperties := ADR(GEN_MU_Instance_2); _visufbelemsimple[0].m_pColorVariables^.ColorVars.NormalColors.dwFrameColor := colSkyguide.darkblue; _visufbelemsimple[0].m_pColorVariables^.ColorVars.NormalColors.dwFillColor := colSkyguide.darkblue; _visufbelemsimple[0].m_pColorVariables^.wValidColors := WORD#3; {nobp_flag}; _visufbframe[0].m_pStaticTextProperties := ADR(GEN_MU_Instance_4); _visufbframe[0].GetVisuStartEndIndex(pClientData := _pCurrentClientData, iStartIndex => _iFrameVisuStartIndex, iEndIndex => _iFrameVisuEndIndex); FOR _iFrameVisuIndex := _iFrameVisuStartIndex TO _iFrameVisuEndIndex BY INT#1 DO CASE _iFrameVisuIndex OF INT#0: ; END_CASE END_FOR; {nobp_flag}; _visufbframe[1].m_pStaticTextProperties := ADR(GEN_MU_Instance_4); _visufbframe[1].GetVisuStartEndIndex(pClientData := _pCurrentClientData, iStartIndex => _iFrameVisuStartIndex, iEndIndex => _iFrameVisuEndIndex); FOR _iFrameVisuIndex := _iFrameVisuStartIndex TO _iFrameVisuEndIndex BY INT#1 DO CASE _iFrameVisuIndex OF INT#0: ; END_CASE END_FOR; {nobp_flag}; _visufbframe[2].m_pStaticTextProperties := ADR(GEN_MU_Instance_4); _visufbframe[2].GetVisuStartEndIndex(pClientData := _pCurrentClientData, iStartIndex => _iFrameVisuStartIndex, iEndIndex => _iFrameVisuEndIndex); FOR _iFrameVisuIndex := _iFrameVisuStartIndex TO _iFrameVisuEndIndex BY INT#1 DO CASE _iFrameVisuIndex OF INT#0: ; END_CASE END_FOR; {nobp_flag}; _visufbframe[3].m_pStaticTextProperties := ADR(GEN_MU_Instance_4); _visufbframe[3].GetVisuStartEndIndex(pClientData := _pCurrentClientData, iStartIndex => _iFrameVisuStartIndex, iEndIndex => _iFrameVisuEndIndex); FOR _iFrameVisuIndex := _iFrameVisuStartIndex TO _iFrameVisuEndIndex BY INT#1 DO CASE _iFrameVisuIndex OF INT#0: ; END_CASE END_FOR; GenInp.sPanelTextList REF= sPanelTextList; GenInp.sPanelTextID REF= sPanelTextID; _visuClientObjectMgr.Update(); : System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ISequenceStatement ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ISequenceStatement )
[FEHLER] frmMaster(Element ID 35): Internal error in _IStatement (maybe try to simplify expressions): __PROPERTYINFO(VisuElems.CmpDynamicText.DynamicTextGetText(pstTextList := ADR(sPanelTextList), pstTextIndex := ADR(sPanelTextID))^, instvar_2); : System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei ..(_IOperatorExpression ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_IOperatorExpression ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_IExpressionStatement ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ISequenceStatement )
[FEHLER] Internal error:System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.Exception: Internal error in POU: UPDATE ---> System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ISequenceStatement ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ICompiledPOU ) bei ..(_ICompiledPOU ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.Codegeneration.(_ICompiledPOU , _ISignature ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.Codegeneration.(_ICompiledPOU ) bei ..() --- Ende der internen Ausnahmestapelüberwachung --- --- Ende der internen Ausnahmestapelüberwachung --- bei _3S.CoDeSys.Compiler35190.CompilerPhases.CompilerPhase5_Codegenerator.(IList`1 ) bei _3S.CoDeSys.Compiler35190.CompilerPhases.CompilerPhase5_Codegenerator.(IScope5 , IList`1 ) bei _3S.CoDeSys.Compiler35190.CompilerPhases.CompilerPhase5_Codegenerator.(ICodegenerator ) bei ..() bei ..() ---> (Interne Ausnahme #0) System.Exception: Internal error in POU: UPDATE ---> System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ISequenceStatement ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.CodeOptimizer_pass1.(_ICompiledPOU ) bei ..(_ICompiledPOU ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.Codegeneration.(_ICompiledPOU , _ISignature ) bei _3S.CoDeSys.Compiler35190.Phase5_Codegeneration.Codegeneration.(_ICompiledPOU ) bei ..() --- Ende der internen Ausnahmestapelüberwachung ---<---
Übersetzung abgeschlossen -- 1 Fehler, 0 Warnungen : Kein Download möglich
Dyn. Sprachumschaltung: Texte über TextID aus Textlist auslesen
TwinCAT System Service v3.1.0.2204 TwinCAT v3.1.4020.0 Hallo zusammen, ich würde gerne in TwinCAT Texte aus einer Textlist dynamisch auslesen, in dem ich die zugehörige TextID angebe. In der Original Codesys-Plattform von 3S sieht der Aufruf dann so aus und funktioniert auch...
www.sps-forum.de
Targetvisu: Dynamische Textliste mit Stringvariable kombinieren
Hallo, Ich benutze die Targetvisu von Beckhoff, und stehe vor folgendem Problem: Ich habe ein Rechteck (als Tabelleneintrag/Template), in dem eine Integer-Variable vorgibt, welcher Text aus einer Textliste ausgegeben wird. Das funktioniert soweit so gut, aber nun hat sich die Anforderung...
www.sps-forum.de