SETPRM command

  • I want to change the "work home position", being CUBE 64 by code with the SETPRM command on a DX200. The Inform manual is a bit vague on this topic however.

    This should be possible with:

    Code: SYSTEMJOB.JBI
    0001'***** systemjob
    0002 DOUT OT#(4082) OFF                   OT#(4082)=HOME VALUES SET
    0003'
    0004*top
    0005 IF( IN#(4082)=ON ) THEN              IN#(4082)=HOME VALUES ACK
    0006  SETPRM KIND=6 PRMNO=I050 D050       D050=HOMEPOS TMP
    0007  DOUT OT#(4082) OFF                  OT#(4082)=HOME VALUES SET
    0008 ENDIF
    .
    .

    and


    This would change parameters S3C1072(MIN)/1080(MAX) to S3C1077/1085 to the values from LD001 to LD005 in the master job.

    When starting the masterjob, I receive following error message:

    The SETPRM instruction was executed while another system was in execution

    Setting error

    (1)Check the following settings.
    ·The SETPRM instruction cannot execute while another system is operating. Correct the job.



    What am I missing here?

    There are 2 rules for success:

    1. Never reveal everything you know,

    Edited once, last by Fester1981 ().

  • The system will not allow the use of the SETPRM instruction when multiple system jobs are running. If a single system job was running then, yes, the SETPRM instruction would work.


    Unless I am missing something, I would change this to a robot job or include the instructions in a startup or initialization job that gets executed out of the master. This code would only execute when starting from the top of the master and would be outside the process loop. If security is the reason for making it a system job, what about making it a macro?


    Does setting of the work home need to be executed continuously?

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • If I'm not mistaken, I only have one system job running. I reduced the integrator's 3 to 1 by moving most of it to the ladder. But I will have to check tomorrow to be sure.


    I only found the SETPRM instruction in the systemjob instruction list. That's the only reason that I've put it there. The code that I've put at "MASTER" in my first post was in fact a simplification. It is not actually the masterjob but the job called from it, if a specific EoAT is installed.


    It only needs to be checked/modified if the masterjob is started from the top.

    There are 2 rules for success:

    1. Never reveal everything you know,

  • I was able to run a system job and a robot job with something similar to your code successfully. When I had two or more system jobs and a robot job running I would get the alarm.


    I missed the DX200 part. The GETPRM/SETPRM instructions came out on the NX100 controller. Yaskawa has made changes to what job type the instructions can go in. NX100, I believe, was a robot job. DX100 and DX200 those instructions are available in a macro job.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • I was able to run a system job and a robot job with something similar to your code successfully. When I had two or more system jobs and a robot job running I would get the alarm.


    I missed the DX200 part. The GETPRM/SETPRM instructions came out on the NX100 controller. Yaskawa has made changes to what job type the instructions can go in. NX100, I believe, was a robot job. DX100 and DX200 those instructions are available in a macro job.

    I tried executing the command in every type of job that had it in the instruction list. GETPRM works fine every time while SETPRM yields the same error. I'll e-mail Yaskawa tomorrow for more info...

    There are 2 rules for success:

    1. Never reveal everything you know,

Advertising from our partners