Beiträge von AtoK09

    guten morgen zusammen,
    heute kommt der kunde um die ecke und möchte, dass ich die zwei robis aufeinander abstimme. wenn robi 1 eine best. position anfährt, darf robi 2 eben da nicht hinfahren. soweit "relativ einfach", denke ich. die schwierigkeit liegt für mich darin, dass beide robis zur selben zeit ihre positionsdaten bekommen und damit auch etwa zeitgleich losfahren. es ist nun gewünscht, dass ein rob quasi als master funktioniert und der andere abhängig von ihm arbeitet.
    d.h. wenn rob master dahin fährt, darf rob slave nicht dahin fahren. ich habe atm keine signale/ e/a's dafür.
    frage: wie kann ich das regeln, dass ein robi vorrangig(master) die position anfahren darf, wärend der andere warten muss.

    v5.5.14

    ich greife dies hier mal auf^^

    in diesem fred (thread) habe ich gelesen, dass ich bei negativen werten, die ich über signalvereinbarungen bekomme (ergo sind sie binär) sagen kann:

    Code
    if (binärerwert > 32767) then
      binärerwert1 = (binärerwert - 65536)
    else
      binärerwert1 = binärerwert
    endif

    soweit funktioniert das auch, alle getesteten werte bekomme ich so wie ich sie über hmi eingebe. die frage ist, ist dass ein guter stil, oder gibt es da elegantere lösungen?

    wenn du das cell.src nicht benötigst, ist eine andere möglichkeit auch, deine startbedingungen im loop der sps.sub einzutragen und dort direkt dein genutztes programm aufzurufen. in etwa so;


    ...
    Anwählen geht unabhängig von der Schnittstelle.
    ...


    danke für die info!
    aber ich bekomme auch das cell nicht automatisch angewählt. die beiden versuchscodes vom titan mit is_key_pressed liefen mit cell-anwahl und mit der anwahl meines mains, bzw mit programm abwahl.
    wenn ich dann

    Code
    IF $EXT AND ($PRO_STATE1==#P_FREE) THEN
          CWRITE($CMD,STAT,MODE,"RUN /R1/MAIN( )")
    ENDIF


    schreibe steht wieder alles still. ich hatte das nach titans post von 15.50 uhr so versucht. das einzige was ich noch nicht gemacht habe, war/ist ein kaltstart. das mussich dann morgen früh als erstes mal machen!

    da sind wir wieder am anfang des freds^^ es läuft so nicht!
    ich wollte nähmlich grad folgendes schreiben:

    wenn ich nun:

    Code
    IF $MODE_OP==$EX THEN
      CWRITE($CMD,STAT,MODE,"RUN/R1/main ()")
    ENDIF


    schreibe, müsste doch das prog bei umdrehen des schlüsselschalters angewählt werden. tut es aber nicht. das programm müsste doch auch unabhängig von der "autext" schnittstelle angewählt werden, oder etwa nicht?

    edith sagt: ich muss jetzt das werk verlassen, hier wird drauf geachtet nicht mehr als 10h zu wuppen... in ca 1h bin ich zu hause am rechner um hier weiterzulesen/-machen!

    da ich noch eher unerfahren bin; wie kann ich das kurz testen? steht da was in der cwrite/cread doku? ich schau mal.
    aus der doku:

    hier steht wenn alle STARTBEDINGUNGEN erfüült sind... was sind denn die startbedingungen? in meiner autext schnittstelle wird folgendes "gemacht":


      • $move_enable = 1

      • $conf_mess = 1

      • $drives_off = 1

      • $drives_on = 1 ->bis $peri_rdy= 1, dann $drives_off = 0

      • $ext_start = 1


    sind das die startbedingungen? wenn ja fehlt da was? ich glaube das sollte reichen, oder?

    titan: wenn ich die doku zur autext schnittstelle richtig interpretiere wird doch das programm erst mit$EXT_START angewählt, zumindest macht mich der text und das ablauf diagramm das glauben

    ok, werd ich nochmal schauen!

    @polterer:es ist so vorgesehen, dass immer wenn die anlage einen erststart macht ( das kann auch nach einem fehlerfall sein), der robi immer in die home position fährt,dh. sak(wobei ich eigentlich dachte im autext würde es diese sak fahrt nicht geben). dannach werden daten eingelesen und dann geht die arbeit schon los.

    edit: der robi sollte ansonsten immer rennen, wenn die sps sagt los dann macht er seinen job!
    hab ich dich richtig verstanden, sind das die infos die du wolltest?