Posts by Mate_271

    Thanks for your help hermann ! :smiling_face:


    I clearly understand the upper thing, but i have a problem with your lower comment :thinking_face:


    https://www.roboterforum.de/ro…e/?postID=55065#post55065


    In this topic the user calculate it differently:


    "

    INW(Word begin)=Modul adress,0, X(I/O Word Lenght)

    Sample:

    INW12=4,0,X6


    Description:

    The 4. Module I/O adress KRC2 $IN[72].....$IN[168]

    INW12= 12*16(1 Word 16 Bit)= 72th Input (Beginning adress)

    x6= 6*16=6 Words=96 bit=72 Beginning adress+96 bit Data lenght= In 72 to In 168

    "


    As you tell 4*8 + 1 = 33


    But in this situation 12*8 + 1 = 97 and what he wrote the beggining value 72

    97 not equal to 72.


    Can you explain me why please? :smiling_face:

    Dear SkyeFire,


    I am a beginner in profibus devices and i don't understand everything clear.


    We have a system like this:

    ;[PBMASL] ProfiBus Siemens Master/Slave CP5614

    ; Entries in form 2

    ; {address} = Slave DP-address

    ; {address} = 127 ==> Slave part of CP5614


    We will use our robot as a master with a HMI PLC slave whose address is 3. That's clear.

    It's clear moreover i have to use form 2.


    Form 2:

    ; {token}{offset}={address},{byte}[,{multip}]

    ;

    ; {token} INB, INW, INDW, OUTB, OUTW, OUTDW

    ; {offset} byte offset of robot IO System

    ; {address} address of a peripheral device (0..m)

    ; driver specific information, see descr. below

    ; {byte} byte offset at this peripheral device (0..m)

    ; Offset starts with 0 at the every device

    ; driver specific information, see descr. below

    ; {multip} creats n dataobjects of {token}

    ; Example:

    ; INW4=10,0,x2

    ; Two words of the peripheral device with address 10 and

    ; up from byte 0 are mapped to the inputs 33-80.


    I don't know what should i choose of INB, INW or INDW.

    It means how do i want to divide the bits on the PLC?Or what else?


    Furthermore, how did you calculate that inputs 33-80 from INW4 = 10,0,x2 ?


    I hope you can help me! Thanks in advance!


    Cheers

    Thanks for your help again! :smiling_face:


    Maybe i misunderstanding something, but can you help me one more thing?


    INI...

    PTP HOME...

    PTP P1....

    ; ### start of search ###

    INTERRUPT DECL 6 WHEN $IN[666] DO Save_Pos()

    INTERRUPT ON 6

    FIND_POS()

    INTERRUPT OFF 6

    ; ### end of search ###

    PTP P3....

    PTP HOME...


    The interrupt triggered and solved the interrupt prog. and It resume to the main program and go to P3. How can i stop this movement. I need to go to P3 because it have to see a direction, but when the interrupt triggered and solve the prog i don't want to go to P3. It will pick the workpiece in the interrupt prog and i would like to go elsewhere.

    Dear panic mode,


    If you don't mind i would like to ask one more! :smiling_face:


    So, what you sent to me is partly clear, but i confused about save and find position. If the sensor( IN[666]==TRUE) the interrupt triggered and open save pos()... i save the position, and then i find it? It will be the same position as i think. With { X 0 } i can go upper? Or what can i define with that?

    Every work piece on the pallet will be lower and lower, that's why I would like to use sensor for identification.



    Appreciate your helps!


    Cheers

    Hello guys,


    KRC 2

    KSS: 5.6.11


    I would like to use $POS_INT to define a position where interrupt triggered. The process is as follows:


    The robot will going down in Z, where the sensor triggered(when it see the workpiece) the interrupt. I would like to save this position, because when the gripper pickup the work piece i would like to go up 100 mm and put elsewhere. How can i solve this problem? I wanted to use $POS_INT to define the position where i can go up in Z 100 mm. Can this work? Where can i see the saved $POS_INT position?


    Thanks in advance!:)


    Cheers

    Hey everybody,


    I don't know that i can ask this question in this site, but i give it a try if you don't mind. :smiling_face:

    If this don't comply with the site rules, feel free to delete..Thanks!


    So our company bought a 00-228-936 type set for our KUKA robot. This cables work well with KRC 4, but we would like to calibrate our KRC 2 robot too. This set don't contains this. I surfed the whole internet and i find only one site, where i can buy a cable like that, but it's very expensive for a cable...As i know the cable type is 00-228-327.


    Anybody can help me where can i buy a converter or a cable for us?

    Thanks in advance!

    Cheers:)

    Earlier i made a mistake...sorry...


    It's.. DEFFCT


    SIGNAL X1 $IN[80] TO $IN[84]

    SIGNAL X10 $IN[85] TO $IN[88]

    SIGNAL X100 $IN[89] TO $IN[93]

    SIGNAL X1000 $IN[94] TO $IN[98]


    RETURN X1000*1000+X100*100+X10*10+X1


    ENDFCT


    How can i move it to the $config.dat if the description says i have to use DEFFCT?


    Can you explain me please like an example how can i declare signal X1 in dat??


    i know how to declare int, bool, real etc., but i don't know how to decl this if the description says what i wrote earlier.

    Yes, thats what i would like to know. So this is the format what should i use?


    DEF example()


    SIGNAL X1 $IN[80] TO $IN[84]

    SIGNAL X10 $IN[85] TO $IN[88]

    SIGNAL X100 $IN[89] TO $IN[93]

    SIGNAL X1000 $IN[94] TO $IN[98]

    RETURN X1000*1000+X100*100+X10*10+X1


    END


    -> back to the main program


    IF example()=> 500 THEN


    PTP P1...

    ...

    ...


    else

    ...


    ENDIF

    DEFFCT INT Tool_ID()

    SIGNAL X1 $IN[1201] TO $IN[1204] ; low nibble

    SIGNAL X10 $IN[1205] TO $IN[1208] ; high nibble

    RETURN X10*10 + X1

    ENDFCT



    i just copied what you write earlier to help you understand what i would like to say :grinning_squinting_face:

    So.. i would like to use a HMI PLC, where the data change if the operator enter the values. example:

    The operator says i would like to produce 300x500 exp wooden planks. After that he will produce 600x1000, so the values should change.


    The question is how to change the return line to be variable?

Advertising from our partners