Beiträge von panic mode

    natuerlich nicht.. Aber da Koordinatensysteme Parallel sind, konversion von CM auf Flange ist einfach (mit "parallel axis theorem")

    Ixx=Lxx+M(Y^2+Z^2)

    Iyy=Lyy+M(X^2+Z^2)

    Izz=Lzz+M(X^2+Y^2)


    wo Lxx, Lyy,Lzz ist inertia um Schwerepunkt

    Ixx,Iyy,Izz is inertia X,Y,Z offset (Flange)

    X,Y,Z ist CM offset

    M is masse


    aber da CAD lastdaten bereits auf Flange bezogen ist, keine offset-umrechnung ist notig (mit offset, inertia ist gosser und werte sind bereits drin). mann muss aber ohne CM distanzen (bereits drin)


    ; Schwerpunkt bezogen:

    LOAD_DATA[n].M=M

    LOAD_DATA[n].J.X=Lxx

    LOAD_DATA[n].J.Y=Lyy

    LOAD_DATA[n].J.Z=Lzz

    LOAD_DATA[n].CM.X=X

    LOAD_DATA[n].CM.Y=Y

    LOAD_DATA[n].CM.Z=Z

    LOAD_DATA[n].CM.A=Rz

    LOAD_DATA[n].CM.B=Ry

    LOAD_DATA[n].CM.C=Rx


    ; Flange bezogen:

    LOAD_DATA[n].M=M

    LOAD_DATA[n].J.X=Ixx ;Lxx

    LOAD_DATA[n].J.Y=Iyy ;Lyy

    LOAD_DATA[n].J.Z=Izz ;Lzz

    LOAD_DATA[n].CM.X=0 ;X

    LOAD_DATA[n].CM.Y=0 ;Y

    LOAD_DATA[n].CM.Z=0 ;Z

    LOAD_DATA[n].CM.A=Rz

    LOAD_DATA[n].CM.B=Ry

    LOAD_DATA[n].CM.C=Rx

    Bin für alle Anregungen und Ideen dankbar.

    Alle Anregungen?


    EKI

    OPC

    durch SPS E/A

    Datai mit CWRITE auslesen

    DirectoryLoader

    Eigene Applikation entwickeln (KVP/KVP C4/C3Bridge)

    RSI

    SPI

    Morse code

    usw.


    Was wäre eurer Meinung nach die einfachste und günstigste Lösung?

    Datai mit CWRITE auslesen ist einfach und günstig da auf allen KRC4/KRC5 schon bei. und TXT/CSV Datai mit program (oder per hand) erstellen ist kein Problem.

    Zeile 8, fehlt Anfuhrungzeichen am Ende. Also RawData ist nur 63 Character lang, nicht 850.

    Zeile 9, nein, so geht es nicht... arrays mit einer Schleife kopieren - oder auch StrCopy() fuer CHAR arrays.

    Zeile 11, nein, Zeichenkette ist in RawData[]


    oder liber so, da Queldata format mehrere Trennzeichen hat:

    Code
    FOR i=1 to slen
    SWITCH RawData[i]
      CASE ",", "(", ")" 
        src[i]=" "
      DEFAULT
        src[i]=RawData[i]
      ENDSWTICH
    ENDFOR

    Gibt es eine Möglichkeit, LIST-Elemente mit SHOWVAR zu aktualisieren? Ziel ist es, einige benutzerdefinierte Inline-Formulare zu erstellen und eine benutzerfreundliche Werkzeug- und Basisauswahl zu ermöglichen. Liste sollte Namen statt Nummern zeigen - auch wenn Namen geändert wurden.


    Code
    DECL PARAM ToolList = {VALUE {LIST : ... }}
    
    
    SHOWVAR(FULLPATH[] "TOOL_NAME[,]", PARAM ToolList )
    ;oder einzeln..?
    SHOWVAR(FULLPATH[] "TOOL_NAME[3,]", PARAM ToolList[3] )
    SHOWVAR(FULLPATH[] "TOOL_NAME[3,]", PARAM ToolList.Item[3] )
    SHOWVAR(FULLPATH[] "TOOL_NAME[3,]", PARAM ToolList.Item[3].Value )
    SHOWVAR(FULLPATH[] "TOOL_NAME[3,]", PARAM ToolList.Item[3].Value[] )

    example showed StatusKey using two scripts - to both set and reset output. programmer can control what is or isn't in those scripts. for example one could not change output state when StatusKey is released


    it should be possible but exact robot position would need many outputs (6 axis * 32 bit/axis = 192 bits). it is recommended to read UserTech description about intended use.


    reboot is not needed unless changes are in the menu (*.config file)


    nobody knows what is inside the program that is not shared

    Von wie vielen Robotern reden wir? kuka-Optionen kosten Geld und müssen an jedem Roboter installiert werden. Wenn die Maschinen bereits mit der SPS verbunden sind, warum nicht einfach mit der SPS kommunizieren?

    leider im Vergleich mit SWRITE, SREAD ist verkrüppelt und funktioniert nicht mit irgendwelche Trennzeichen. deshalb zuerst mit einer Schleife alle Kommas durch Leerzeichen tauschen und dann mit SREAD bearbeiten


    Ich immer definire alles und setze wehn gebraucht. Es hilft eine Attrappe Taste definieren, die nicht aktiviert ist. Danach als Platzhalter verwendet werden um nicht benutzte tasten deaktivieren...

    Ehrlich gesagt habe ich keine Lust, Code ohne Formatierung und Zeilennummern zu lesen ...


    Der Code sollte in das Quellcode-Tag eingeschlossen werden:



    Möglich mache ich mit kdfx Datei was falsch?

    genau...


    KeyBar ist definiert und Tasten zugewiesen, aber die Tasten 1-4 sind nicht definiert. alle abhängigen Objekte müssen definiert werden

    Code
    <StatkeyBar Name="BeispielKeyBar">
        <SK Name="Key1" Pos="1" />
        <SK Name="Key2" Pos="2" />
        <SK Name="Key3" Pos="3" />
        <SK Name="Key4" Pos="4" />
    </StatkeyBar>


    Also jede Taste braucht sowas :

    Code
        <StatKey Name="Key1" Style="#SWITCH" Next="" Enable="TRUE" UserMode="">
          <Picture Default="C:\KRC\TP\UserTech\TEMPLATE\Bild1.ico" KeyDown="C:\KRC\TP\UserTech\TEMPLATE\Bild2.ico" KeyDownMinus="" />
          <Text Top="" Center="" Bottom="Key1" />
          <Needs SafetySwitch="TRUE" DrivesOk="TRUE" Prostate0="Free|Stop|Reset|End|Active" Prostate="Free|Stop|Reset|End" ModeOp="T1|T2" />
          <Scripts OnKeyDown="Key1_Down" OnKeyUp="Key1_Up" OnKeyShow="" OnKeyDownMinus="" OnKeyUpMinus="" OnKeyRepeat="" OnKeyRepeatMinus="" />
        </StatKey>    


    Dasselbe gilt für Skripte. jeder Aufruf benötigt eine Deklaration, und Taste ruft zwei Skripte


    " <Scripts OnKeyDown="Key1_Down" OnKeyUp="Key1_Up" OnKeyShow="" OnKeyDownMinus="" OnKeyUpMinus="" OnKeyRepeat="" OnKeyRepeatMinus="" />"


    Deshalb:

    Code
        <Script Name="Key1_Down">
           < Message Text="Taste #1 gedrueckt..." /> 
           <SetVar Fullpath="$OUT[1]" Value="TRUE" />
        </Script>
        
        <Script Name="Key1_Up">
           < Message Text="Taste #1 gelassen..." /> 
           <SetVar Fullpath="$OUT[1]" Value="FALSE" />
        </Script>

    KRL Variablen mussen als Global deklariert sein.

    KRL Variablen mussen in DAT als Global deklariert sein. Nur dann UserTech scripts koennen Zugrif auf solche Variablen haben.

    in Buch steht:.

    Variablen und Datenobjekte gelten lokal, d. h. in einer definierten Techno-

    logie, wenn sie zwischen der Anweisung <Application> … </Application>

    deklariert sind.

    wieso müssen Global sein?

    Nicht daselbe... Buch beschreibt UserTech Variablen und Objekten - nicht KRL Variablen...!



    in KRL Ausgang ist zB $OUT[1]

    Dass ist eine globale Variable.


    UserTech had damit keine Probleme

    Code
    <SetVar FullPath="$OUT[1]" Value="TRUE />

    wie gesagt, XML syntax ist pingelig... struktur ist wichtig. achtung ist noetig bei vershactelung...


    zB


    Code
    <Param>...</Param>

    und

    Code
    <Application>...</Application>


    verschachtelt

    Code
    <Application><Param>...</Param></Application>

    oder

    Code
    <Application>
      <Param>...</Param>
    </Application>

    oder

    Code
    <KukaTechDescription>
      <Application>
        <Param>...</Param>
        <Param>...</Param>
        <Param>...</Param>
        <Param>...</Param>
        <InlineForm>...</InlineForm>
        <Set>...</Set>
      </Application>
    </KukaTechDescription>

    usw.


    Und wie gezeigt, Technologie (oder Application) kann mehrere Teile haben.

    zB.


    was bereitstellt:


    BeispielAppXYZ.BeispielKeyBar

    BeispielAppXYZ.GreiferKeyBar

    BeispielAppXYZ.ZangeKeyBar


    und Menu soll entsprechend angepast, sonst gibts:

    Dateien mussen aufeinander angepast sein.

    XML syntax ist pingelig - alle Namen und Strukturen mussen stimmen... (Anfang un Ende)

    KRL Variablen mussen als Global deklariert sein.

    usw.



    Was mache ich falsch?

    Eine Menge:


    Quellcode nicht in Quellcode block </>

    Code nicht komplet, nur KFDX Teile

    Falsche Syntax,

    Dopplet deklarierte Applikation, usw.


    zB.


    "Fals" ist falsch, sollte "FALSE" sein

    "<Scripts..." ist falsch, sollte "<Script ..." sein

    Script soll nicht innerhalb Set definiert sein..

    wehn menu fehlerhaft ist, rote notiz-fenster ist gezeigt (Unhandled Error), BOF startet nicht und muss runtergefahren (stuertzt ab).


    wehn KFD/KFDX fehlerhaft ist, BOF startet aber fehlerhafte UserTech functionen sind nicht da und weitere Meldungen zu erwarten sind.


    Beispiel:

    Tipp:



    Kaltstart ist nur bei Änderungen in CONFIG erforderlich.

    KFD/KFDX Änderungen erfordern keinen Neustart:


    Geändertes KFD (vor UserTech 4.x) kann nach UderTech-Neuinitialisierung schnell ausprobiert werden. (menu Configuration>Miscellaneous>Reinitialize UserTech)

    Mit KFDX (UserTech4.x) gibt es so etwas nicht mehr und Änderungen sind meist sofort nutzbar.


    Wenn sich Änderungen auf die KeyBar auswirken, sollte KeyBar einfach wieder ausgewählt werden...

    (menu Sonfiguration>StausKeys>...)

    Neulich (KSS8.6 und KSS8.7) UserTech nutzt KFDX Dataien (XML Struktur). Vorher Dataien waren in KFD format. Wehn KFD zur Hand ist, aber KRC mit neuer KSS/UserTech betrieben ist, KFD-> KFDX konversion ist hilfreich. Aber Beispiel ist bereits als KFDX vorbereitet, keine Wandlung ist noetig.


    Weil KFD/KFDX Dateien sehr wichtig sind, nichts passierts ohne passende menu Datai (*.config).


    So, danke für Geduld :) . Aber gehen wir von Anfang an :

    1. ich schreibe Programm in Note ++

    2.dann kopiere ich Programm auf usb und dann auf Steuerung C-KRC/TP/userTech/Templete

    3.steuerun konvert das .

    dass gleiche mache ich mit die Bilder was ich haben will?

    nein....


    lese...




    wehn es von Anfang gehts:

    1. schreibe Program in Notepad++ . das kann entweder KFD order KFDX sein. KFDX ist nur auf KSS8.6/8.7 nutzbar (UserTech 4.x+).

    2. kopiere KFD/KFDX samt Bilder auf KRC (C:\KRC\TP\UserTech\Template)

    3. schreibe passende Menu Datei (*.config)

    4. Menu Datai nach KRC uebertragen (C:\KRC\SmartHMI\)

    5. KaltStart mit "dateien neulesen" (English: 'Reload Files')

    6. status key bar anwaehlen (menu Configuration>Status Keys>Beispiel)


    UserTech komt mit Program um KFD auf KFDX wandel. Also, alles gebraucht ist in Handbuch...


    hab schnell ein Beispiel gebastelt aber nicht getested... solte etwa so ausehen und wahrscheinlich funzt.. viel Spass...


    C:\KRC\SmartHMI\smarthmi.exe.Beispiel.config


    C:\KRC\TP\UserTech\TEMPLATE\Beispiel.kfdx