Multiplexvariable Index verändern

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe eine Multiplexvariable, bei der ich ein array multiplexe.
nun möchte ich dass das array bei den werten 1 bis 100 gemultiplext wird, leider tragen sich die werte irgendwie selbst ein und stehe auf 0 bis 99, wie kann ich denn zumindest den anfangswert des indexes ändern?
 
ok

Habe es anderst gelöst, habe ne variable in nem skript beschrieben, wenn sich die andere b´variable ändert. aber habe jetzt das Problem, dass das ereignis nur eintritt, wenn man direkt auf das eafeld klickt. nicht wenn man den wert über wert setzen verändert. geht das auch irgendwie anders? Also dass das ereignis auch dann eintritt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

das Ergeignis wenn sich das Bild öffnet. Aber ich denke das ist generell nicht ne gute Lösung mit dem Script.

Deine Indexvariable ist eine interne Variable in WinCC richtig?
Kann man dort in der Variablenliste keinen Anfangswert angeben?

Wenn es keine interne Variable ist, könntest du sie einmalig in der SPS vorbesetzen.

Ansonsten such mal bei siemens nach mutliplexen dann findest du sicher nochmal ein Beispiel dazu.

Gruß Mike
 
Ok

Ich habe jett die indexvariable in der SPS um 1 verringert, um bei dem index 1 auf das element 0 zugreifen zu können. aber das kann ja doch so auch nicht gewollt sein, oder?
Man kann auch irgendwie nicht 2 arrays in den multiplexer legen, also von mir aus 0-10 in array a und 11-20 in array b. das geht irgendwie nicht. Wollte es erst so machen, dass ich je nach index auch bestimm elemente eines array ansprechen kann, aber man kann ja anscheinend auch immer nur das ganze array einfügen...schade.

Kann man wirklich nicht den wert verändern, wo der index anfängt?
 
Hi,

Was machst du denn wenn deine Indexvariable 0 ist? Verringerst du sie dann auch um 1?

Also wenn die Indexvariable 0 ist zeigt sie auf das erste Element auf das sie gemultiplext ist! Hast du dir das mal angesehen:
http://support.automation.siemens.c...objaction=csview&extranet=standard&viewreg=WW
oder das:
http://support.automation.siemens.c...objaction=csview&extranet=standard&viewreg=WW

Wenn du also eine Indexvariable hast ,die du in der SPS ändern kannst, dann kannst du Ihr doch einen Anfangswert zuweisen.
Entweder fragst du das Bild ab und wenn es aufgerufen wird setzt du die Indexvariableauf 0 oder...
Du fragst du CPU ab wenn diese einen Neustart macht setzt du die Indexvariableauf 0 oder...
Du fragst die Steuerspg. ab wenn diese bei pos. Flanke eingeschalten wird setzt du die Indexvariable auf 0 oder...
Du stellst die Indexvariable als ein Datenbaustein-Word ein (wie im Siemens Beispiel). Dann kannst du diesem auf jeden Fall einen Anfangswert geben!


Ich meine in der Variablenliste von WinCC wo die Indexvariabledeklariert ist kann man Ihr einen Anfangswert geben oder? Entweder ganz hinten in der Tabelle oder über Ihre Eigenschaften. Vllt. irre ich ich auch!

Gruß Mike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mmmh

Es geht mir nicht um den Startwert. also das problem ist folgendes:
Ich habe mehrere Schrittketten.
Ich habe 20 Parameter. --> Diese Parameter stehen in 20 Arrays.
Je nachdem welche Schrittkette ausgewählt ist, möchte ich die Parameter anzeigen.
Da meine Schrittketten bei Schrittkette 1 anfangen, gibt es keinen Index 0.
ich kann meine indexvariable von 1-20 verändern (20 Schrittketten).
ich hätte es jetzt gerne so, dass die multiplexvariable eben die indexe 1-20 benutzt und nicht 0-19. sonst muss ich mir ja eine variable erstellen, die mir meinen minimalen index von 1 eben um eins reduziert.

wieso kann man denn eigentlich keine 2 array in die multiplex bereiche legen?
 
Mal sehen ob ich es richtig verstehe...

ich kann meine indexvariable von 1-20 verändern (20 Schrittketten).

Wie wählst du denn die Schrittketten an?
Etwa über eine DropDownListe?
Dann könntest du eine Textliste ranhängen die eben nur die Werte 1-20 enthält.

Oder kannst du in die Multiplex-Liste nicht einfach am Index 0 und am Index 1 das gleiche Array ran hängen von der SK1?

Gruß
 
Ok

Also das Problem ist ja nicht die Null, sondern, dass generell immer der index um eins verschoben ist. Ich wähle die Schrittkette einfach über ein EA-Feld aus. könnte es natürlich über ein Dropdown menü machen und dann den index so anpassen, dass es passt, aber meiner meinung nach müsste es doch möglich sein den index anpassen zu können, oder? Bzw. Noch mal die Frage: Ich kann ja ein array in die multiplex indexe legen, warum kann ich nicht noch eins danch "schalten"? also quasi array a = index 0-10 und array b = index 11-20 ?
Aber mir geht es im Moment Hauptsächlich darum, dass ich eben im EA-Feld in meine INT Variable den index 1 eingebe und er dann auch in das erste element des arrays schreibt (Also in meinem Fall das Element 0)
Ps. Ist auch irgendwie blöd, dass siemens es zulässt, dass man im db die arrays flexibel anlegen kann (also z.B. auch mit index 100 anfangen kann, aber im wincc flex fängt das arry immer mit index 0 an)
 
Zurück
Oben