Visu über digitale Eingänge bedienen

mde
2011-07-27
2011-07-29
  • mde - 2011-07-27

    Hallo,

    ich möchte meine Visu über digitale Eingänge bedienen können, ich habe z.B. vier Eingänge, links, rechts, Ok und Abbruch. Mit diesen Tasten möchte ich jetzt über links und rechts zwischen meinen Button in der Visu wechseln und mit Ok auf einem markierten Button die Taste drücken.

    Hat jemand so etwas schon mal gemacht und kann mir einen Tipp geben wie ich das umsetzen kann?

    Gruß

    mde

     
  • Erik Böhm - 2011-07-27

    Moin

    Schon mal das Kapitel 'Visualisierung-Programmierfähigkeit' angeschaut ?

    Mal davon abgesehen, dass das ja von hinten durch die Brust ins Auge geschossen ist...
    Warum einfach wenns auch kompliziert geht ?

    Gruß Erik

     
  • mde - 2011-07-28

    Hallo Erik,

    ich habe mir mal das Kapitel zur Programmierfähigkeit durchgelesen. Wie ich jetzt aber zwischen verschiedenen Visualisierungselementen wechseln kann weiß ich trotzdem nicht. Mit Hilfe der Programmierfähigkeit kann ich ja nur die Eigenschaften des Objekts ändern.

    Wie würde es denn einfach gehen?

    Gruß

    mde

     
  • Anonymous - 2011-07-28

    Originally created by: jl

    Hallo

    Wenn in den Zielsystemeinstellungen unter Visualisierung das Häckchen für "Systemvariable CurrentVisu aktivieren" aktiv ist, dann kann mit dieser Variable zwischen den Visualisierungsseiten gewechselt werten.

    Beispiel:

    IF eingang1 AND CurrentVisu <> 'Visu2' THEN
    CurrentVisu := 'Visu2';
    END_IF

     
  • mde - 2011-07-28

    Das Umschalten zwischen verschiedenen Seiten ist ja kein Problem. Das funktioniert ja auch alles über Button etc.

    Ich möchte aber mit den digitalen Eingängen, links, rechts, erst einen Button auswählen und dann über den OK Eingang den ausgewählten Button drücken, um z.B. die Seite zu wechseln oder in ein Eingabefeld zu kommen.

     
  • Erik Böhm - 2011-07-28

    Moin

    Du willst jetzt mit dem Eingang einen Button betätigen, der dann eine Aktion auslöst.
    Es ist wäre doch viel einfacher, die Aktion einfach an den Eingang zu hängen, anstatt an einen Button.

    Zoom auf ein Visualisierungselement (z.B. Eingabefeld) gibts für die HMI ob das bei Target/Web auch funktioniert weiss ich nicht.

    Gruß Erik

     
  • mde - 2011-07-28

    Ich habe aber nur 4 digitale Eingänge, links, rechts, Ok, Abbruch, und nicht für jede Aktion oder Seitenwechsel einen eigenen Eingang. In meiner Visu kann ich aber z.B. 10 verschiedene Button haben die auf eine andere Seite verweisen oder ggf. eine Aktion starten etc.

    Ich möchte jetzt mit den Tasten links und rechts zwischen meine 10 Button hin und her wechseln und mit Ok bestätigen. Eigentlich das gleiche Prinzip wie es bei der Tastaturbedienung mit Tab und Leertaste geht.

     
  • Erik Böhm - 2011-07-28

    Dann wäre jetzt langsam interessant welches System du benutzen willst.
    Wie gesagt, ob das setzen des Focus überall geht, weiss ich nicht.

     
  • mde - 2011-07-28

    Es soll auf einem Wago IPC laufen, denn genauen Typ weiß ich leider noch nicht.

     
  • Erik Böhm - 2011-07-28

    Mahlzeit

    Die Frage wäre ja welcher Visu Typ ?
    HMI, Web oder TargetVisu ?

    In der CoDeSysHMI (und ich vermute NUR in der HMI) gibts eine Variable 'CurrentSelectionIndex' über die so etwas vermutlich realisierbar wäre.

    Gruß Erik

     
  • mde - 2011-07-28

    Es soll auf dem IPC als Target Visualisierung laufen.

     
  • Erik Böhm - 2011-07-28

    Ich würde sagen, da hast du dann wohl Pech gehabt...
    Wüsste nicht dass das in der TargetVisu möglich ist.

    Gruß Erik

     
  • tomiku - 2011-07-28

    Hallo,

    Eventuell kommst Du damit weiter.

    PROGRAM test
    VAR
    links:BOOL; (Digitaler Eingang)
    rechts:BOOL; (Digitaler Eingang)
    OK:BOOL; (Digitaler Eingang)
    Abbruch:BOOL; (Digitaler Eingang)

    IN_taste_up: BOOL;
    IN_taste_down: BOOL;
    IN_Max: WORD;
    IN_Min: WORD;
    Q_up: BOOL;
    Q_down: BOOL;
    delay_count: WORD;
    TASTEN_DELAY_TIME: WORD := 10;
    IO_val_count: WORD;
    

    END_VAR

    IF links OR rechts THEN
    IF delay_count>0 THEN

        ;
    ELSE
        IF rechts THEN
            Q_down:=TRUE;
            IF IO_val_count>IN_Min THEN
                IO_val_count:=IO_val_count-1;
            END_IF
        END_IF
        IF links THEN
            Q_up:=TRUE;
            IF IO_val_count<IN_Max THEN
                IO_val_count:=IO_val_count+1;
            END_IF
        END_IF
        delay_count:=TASTEN_DELAY_TIME;
    END_IF
    

    ELSE
    Q_up:=Q_down:=FALSE;
    IF delay_count>0 THEN
    delay_count:=delay_count-1;
    END_IF
    END_IF

    IF currentvisu='PLC_VISU' AND
    IO_val_count=1 AND
    OK THEN
    currentvisu:='VISU_1';
    END_IF

    IF currentvisu='VISU_1' AND
    IO_val_count=0 AND
    OK THEN
    currentvisu:='PLC_VISU';
    END_IF

     
  • mde - 2011-07-29

    Vielen Dank für die Antwoten. Mit dem Code von tomiku kann ich schonmal einen Seitenwechsel machen.

     
  • tomiku - 2011-07-29

    Hallo,

    Du kannst damit auch verschiedene Aktionen auslösen.
    Z.B.

    IF currentvisu='VISU_1' AND
    IO_val_count=2 AND
    OK THEN
    Aktion_1:=TRUE;
    END_IF

    IF currentvisu='VISU_1' AND
    IO_val_count=3 AND
    OK THEN
    Aktion_2:=TRUE;
    END_IF

     

Log in to post a comment.