Posts by panic mode

    they cannot have same IP address.

    change one of them to a different IP such as 172.31.1.148



    reason is that the IP address is really composed of two fields:

    LAN address (most significant block of bits)

    Node address (least significant block of bits).


    together they are 32-bits in total but it is the subnet mask that tells where the split in IP address is.

    and that is also the reason why in subnet mask all set bits are on the left side.

    usually we look at network settings in decimal format where 32-bits are divided into four octets.

    so the 255 is value where all bits in an octet are set. mask like 255.0.255.0 is not valid since set bits are not grouped together.



    so when connecting two nodes:

    subnet mask must be the same (you have this, both are 255.255.0.0)

    LAN address must be the same (you have this, both are 172.31.x.x)

    node address must be unique (you do not have this, both are x.x.1.147 but they need to be unique)

    I no longer think this is the correct question to ask.

    yes, often people ask for help without supplying tangible info. things that may be glaring obvious, can be not discovered until topic has grown a lot. so statements like "i checked XYZ and it is ok" are usually the problem because we do not know the experience level of the user.

    I forced $Move_Enable to 1025 and drives active drives in T1.

    this signal is displayed and easy to see - usually. sometimes PLC logic is bad and signal is not stable (glitches or oscillates). in that case setting to fixed value like 1025 can help identify the problem, specially when access to PLC is not available so forcing PLC output is not possible.

    I noticed that $StopMess is asserted.

    that is an important clue. original post reads as if everything is fine. it is clear now that robot not running is not a mystery. screenshot of pendant (program screen and all messages) would be enough to sort this out.

    So I am now thinking that the real issue has to do with something external to the robot.

    That is correct, PLC need to keep $MOVE_ENABLE on all the time unless there is a severe issue.


    The only ative messages are:

    1. KSS 00203 General Motion Enable

    2. KSS 27004 Brake Test Required (Safe Operation is loaded on the robot)

    messages also display effect they have on the robot.

    for example this message does not stop robot:

    I checked of the hardware inside the cabinet looks normal and the perimeter gates and safety devices are in a good state.


    common mistake.. "i checked it and it is good".

    not really. something is obviously not right or there would be no topic asking for help.


    so why not show what the controller status and messages are? if asking for help, why not let forum members see for them selves if something is ok or not?


    one can monitor start condition.

    an example here is missing interface active:

    there is "Controller ready", it is signal $RC_RDY1 at the top of start conditions page.


    and unfortunately it is "documented" but obviously not properly as it does not tell the most important thing - what one can do if it does not come on:


    so the question is what changed? any hardware added/removed? any WoV project deployed? safety configuration activated? what is the safety interface? if DRIVES OFF signal true? that is a pesky one that does not show any messages.

    please use English in this forum.

    that KSS is too old and does not have string functions, ON_ERROR_PROCEED, $ERR etc.

    this means you need to use a workaround such as external function or using fixed length strings where you specify the max length to compare.


    example comparing first 3 characters (match):


    example comparing 5 characters (mismatch):


    not sure how to check string length in so old KSS so your strings may need to be padded with spaces

    you are only sorting timer value so info about timer number is lost. if you want to keep track of that too, your record that is being sorted must also include other field(s). in this case it would need to include timer number.

    btw, in this case both elements of the record could be INT but i show value as REAL just to illustrate that structure could contain anything


    Line 6 contains motion to be interrupted. This motion must be moved to a subprogram . Also add in that subprogram something to stop advance run, like


    Code
    DEF SEARCH()
      PTP P3
      WAIT SEC 0
    END


    and in your existing program replace the line 6 to


    Code
    SEARCH()

    you can specify which submits are started on powerup by clicking on S (Submit) at the top of the screen, then using Display/Assign > Cold start configuration


    or you can check

    KRC:\STEU\MADA\$CUSTOM.DAT


    like all interpreters, one cannot just arbitrarily cancel running task - first it need to be stopped, then it can be cancelled or deselected.


    if i recall, there is not START option in CWRITE, also your command to start aux submit does not look correct, it is missing ">" character as well as name of the submit... it should be something like "RUN /R1/nfTasks() > 3"