Posts by EmilijaS

    HI ALL,


    DOES THE PARITY BIT, WHEN SET, INDICATES PARITY PROGRAM NUMBER(2,4,6...) AND WHEN RESET REPESENTS ODD PROGRAM NUMBER (1,3,5...)(CASE OF THE PROGRAM)?


    THANK YOU IN ADVANCE

    This is the link of video tutorial that we used for the settings:

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    this are the settings in workvisual, the ip is in the subnet, we can ping the robot

    this are the errors on the robot side



    we tried with totali new tia portal program also, new ip addres new name for the robot on profinet but nothing is working


    when we swich to the plc 1200 it is working

    Has anyone encountered a similar problem:


    We used a plc siemens S7-1200 configured PROFINET communication with two robots and everything worked normally and the communication absolutely worked

    Due to the needs of the project we had to replace that plc with S7 1500 and we configured the communication again in the same way but the communication does not work.


    Are there additional settings for the S7-1500 series? Has anyone had similar experiences?

    Hi to all,

    I'm sorry, I didn't phrase the question well, and I didn't analyze enough everything written in this post, with a little deeper analysis I realized the following:

    The function I used from this post is the IntToReal function (written by panic mode )

    it converts from signed int to real -> example (1156681166 convert to 1932.4313)

    Code
    DECL INT I1
    DECL REAL R1
    I1=115668116
    R1=IntToReal(I1)

    and I got the correct value

    now I want to understand the logic of how KUKA reads a 32 bit integer (form from 32 Input values) in order to know what needs to be passed:

    mathematically when represented in 32 bits as signed int (big endian):


    My new question is the following: I declared a 32-bit SIGNAL in config:

    SIGNAL DI_Test $IN[106] TO $IN[137]

    are this values in KUKA represented as little endian -> is my IN[106] the last bit representing 2^0?


    and does the KUKA with the help of SIGNAL declaration read this number as SIGNED INT or am I actually making a mistake there?


    Do I need to swap the bytes order 4321 or 3412

    I've tried several combinations, I think I'm doing something wrong


    Thanks in advance





    Hi Panic I was using your function for converting int to real and I got this error - in the picture, the value of SIGNAL(32 bit input) was 7, I declared it in $config file and called your function IntToReal. Do I need to do to something more? KSS 8.7 , Kuka KRC5 compact controller

    KSS 8.3

    In the main program:



    1. EthernetKRL communication is opened in XML form:


    Code
    RET=EKI_Init(serviceName[])
    RET=EKI_Open(serviceName[])


    2. an interrupt is also declared


    Code
    INTERRUPT DECL 89 WHEN $FLAG[1]==TRUE DO GET_FROM_PC()
    INTERRUPT ON 89


    which is called when entire message arrives (FLAG 1 becomes true in that case, which, as you already know, is set in the config file :



    <RECEIVE>

    <XML>

    ...

    <ELEMENT Tag="Robot01" Set_Flag="1" />

    </XML>

    </RECEIVE>



    3. In this interrupt function, values are actually written from memory into some variables




    This all works as it should for a while, but then it happens that the message that was sent arrives incorrectly, in the sense that I see that the variable True was sent from the PC, but the program read it as False




    I thought that EKI_ClearBuffer before the message arrived would help, but that didn't help,




    Another thing I tried is to set the new flag (FLAG[5] in Program Logic ) to False at the beginning of the function GET_FROM_PC().


    When the end of the function is reached -> that is, everything has been read from memory, to set the FLAG[5] to True to ensure that the new message is written in variable -> While waiting for that FLAG[5] to become True in the main program (WAIT FOR $FLAG[5]==TRUE), but that only stopped the program:



    Program Logic:


    Main Program:



    and in GET_FROM_PC:




    Do you have any advice on how to solve this problem?


    Thanks in advance

    in the for loop, linear movement is performed so that it does not stop at every point of the loop, but continues with C_DIS :

    Code
    FOR _Index = 1 TO PointsNo
        LIN FrameArr_01[_Index] C_DIS
    ENDFOR


    Is it possible to use an interrupt or some other method to monitor the value of the input, without stopping the robot, and without losing continuity?


    It is only necessary to monitor if there is a change in the input in order to use that information later






    In the Manual it seas that robot can be attached to the ceiling


    When we manually change its position, the robot moves normally.


    The problem occurs when we test hand guidance with the help of the HEX sensor - along the global X,Y axis it still moves normally, but in the direction of the global Z axis this problem occurs (movement in height/upright)


    Thank you for response

Advertising from our partners