Posts by Ninad Joshi

    Thanks for the involvement.

    Below is a part of PNS program.

    11:LBL[1] ;

    12: ;

    13: R[20:TEST]=100 ;

    14: OVERRIDE=R[7:Old_OVR] ;

    15: R[20:TEST]=0 ;


    17: //OVERRIDE=20% ;

    18: R[20:TEST]=1 ;

    19: SELECT R[1:Work No]=5,CALL RECOVERY_HOME ;

    20: =10,CALL PICK_LH_PALLATE ;

    21: =20,CALL PICK_RH_PALLET ;

    22: =30,CALL WELD_1 ;

    23: =40,CALL WELD_2 ;

    24: =50,CALL WELD_3 ;

    25: =60,CALL WELD_4 ;

    26: =70,CALL WELD_5 ;

    27: =80,CALL WELD_6 ;

    28: =90,CALL WELD_7 ;

    29: =100,CALL WELD_8 ;



    32: =110,CALL DROP_LH_PALLATE ;

    33: =120,CALL DROP_RH_PALLATE ;

    34: ELSE,JMP LBL[110] ;

    35: ;

    36: JMP LBL[1] ;

    37: ;

    38: LBL[110] ;

    39: MESSAGE[Wrong Work Nn] ;

    40: JMP LBL[1] ;

    Now when R[1]=30; WELD_1 program is executed. Below is a part of WELD_1 program.

    61:J PR[30:PreWeld1] 85% CNT100 ;

    62: R[5:Recover Data]=15 ;

    63: ;

    64:L PR[31:Weld1] 500mm/sec FINE ;

    65: R[5:Recover Data]=16 ;

    66: //L P[2] 100mm/sec FINE ;

    67: ;

    68: //DO[104:OFF:WELD1]=ON ;

    69: CALL CONFIRM_POS(67) ;

    In CONFIRM_POS program, DO is set. Number of the DO is AR (67 in this case). So DO[67] is set. Now the cursor goes to CONFIRMORDER program as soon as it completes WELD_1. Below is the CONFIRMORDER program.

    1: LBL[2] ;

    2: ;

    3: DO[31:OFF:Action Finish]=ON ;

    4: ;

    5: WAIT DI[19:OFF:Spare 1]=ON ;

    6: ;

    7: DO[31:OFF:Action Finish]=OFF ;

    8: ;

    9: GO[1:5:WORK NO ACK]=0 ;

    10: ;

    11: DO[26:OFF:Read Prg No]=OFF ;

    12: ;

    13: DO[28:OFF:Read Work No]=OFF ;

    14: ;

    15: DO[27:OFF:Wait Work No]=ON ;

    16: ;

    17: WAIT DI[27:OFF:Work No Valid]=ON ;

    18: ;

    19: R[1:Work No]=GI[1:0:Work No] ;

    20: ;

    21: GO[1:5:WORK NO ACK]=R[1:Work No] ;

    22: ;

    23: DO[28:OFF:Read Work No]=ON ;

    24: ;

    25: IF R[1:Work No]=0 OR DI[28:OFF:Work No OK]=OFF OR R[1:Work No]=R[4:Last Work No],JMP LBL[2] ;

    26: ;

    27: DO[27:OFF:Wait Work No]=OFF ;

    28: ;

    29: DO[28:OFF:Read Work No]=OFF ;

    In BG logic program, following is the code.

    DO[100:OFF:Robot In Motion]=($MOR_GRP[1].$ROB_MOVE) ;

    IF (DO[100:OFF:Robot In Motion]=ON) THEN ;

    DO[67:OFF:Weld1]=OFF ;

    ENDIF ;

    I have also checked by using flags but same result. This works in Manual mode but in Auto mode, when the cursor goes to CONFIRMORDER, output goes off.

    These are linear movements with approximation setting FINE when the robot set DO ON. I am setting DO in a new instruction like DO[65: Robot At Weld Position] = ON.

    For working this now, I have removed resetting DO in BG. Now resetting in next program before next movement starts but I would like to do this based upon the robot position; like even I jogged the robot, DO should switch OFF.

    I will check by using pulse in this case. Thanks. :thumbs_up:

    I am working on the Fanuc R2000iC robot with r30iB plus controller. After the robot reaches a certain specific position, I need the PLC to know the robot has reached the desired position.

    I need to do this without using reference positions. So I switched ON a digital output when the robot reached a position and used the $MOR_GRP[1].ROB_MOVE variable in BG Logic to know whether the robot is in motion. When the variable returns 1, the DO is switched off in BG logic. This works fine in manual mode but in auto mode, even if the logical instruction gets executed, the output gets switched off.

    How to make the above logic run in auto mode?

    Any help would be appreciated. Thanks. :smiling_face:

    Thanks, it means I can create/convert local points in a particular .DAT file into GLOBAL by changing the declaration and by adding the PUBLIC suffix to DEFDAT line.

    There's also the question of where you will DECL these points. It's possible to change their DECL to GLOBAL in the module they were created in (although this requires adding the PUBLIC suffix to the DEFDAT line of the .DAT file), but KSS 8.6 supports the new GLOBAL_POINTS file. I haven't used this, but as I understand it, this is supposed to allow Inline Form points to be created as Global variables instead of locals, and Global points created via ILFs are stored in GLOBAL_POINTS.DAT.


    Hello all, I recently worked on a KUKA robot with KRC version 8.6.9. Currently the robot is in running condition in all three shifts. All the motion points are local. The customer requires all the points to be declared as global. When I tried to convert a point into global by checking the box in the change option, the message appears: In order to be able to change this setting, you must have rights for global TouchUp. I checked the KSS 8.6 manual which states that user rights must be Teach/modify global points, but this function group is deactivated by default. How to activate the function group?

    I am attaching the images of the manual for the reference.

    Also, can this task be done in offline way, like converting all the local points from the robot backup into global using workvisual ?

    Range Rack Slot Start Status
    DO[1-32] 89 1 33 ACTIVE
    DO[33-512] 0 0 0 UNASSG
    GI Rack Slot Start Pt Num Pts
    1 89 1 65 16
    2 89 1 81 16
    3 89 1 97 16
    4) 89 1 113 16
    5 89 1 129 16
    6 89 1 145 16
    7 89 1 161 16
    8 89 1 177 16
    9 89 1 193 16
    10 89 1 209 16

    Hi all, I am working on Fanuc robot CR15iA with R30iB mate plus controller.

    I/O mapping is done as shown above.

    All is working with PLC.

    At first, 8 GIs were configured, and were working fine. Robot was receiving group inputs to these GIs from PLC. and GI

    We needed some more GI for the programming. In PLC, the programmer increased the allotment and it shows no error. I added it in the Robot (GI8 and GI9), no error. But I don't receive any values on GI8 and GI9 when PLC sends.

    What can be the solution? Is there any memory allotment issue for GIs?.

    Thank you.

    Hi all, I am working on KUKA KR210 R2700-2, KRC4 controller (KRC version- 8.6.7). I need to monitor some large number of DI-DOs using WorkVisual. I can go online with the controller using WorkVisual but how to monitor DI-DO status in the workvisual environment? Thanks in advance.

    These are subprograms, called with parameters in the brackets.
    They are most probably written in Karel, not in TP.

    Figured it out to some extent. Actually, when we write pallet instruction, controller asks for more information like number of rows, columns, layers, width between columns, height of layers and palletizing pattern etc. When we set the parameters, INST_PALLET(AR[1],AR[2],......) instruction appears on the pendant.

    Hi all,

    working on fanuc crx cobot with R30iB mini plus controller.

    Following is the code I am working on.

    1: CALL -INST_PALLET(P[1],P[2],P[3],2,11,75,2,5,6) ;

    2:L PR[5:Cart Approach] 1000mm/sec CNT50 ;

    3:L PR[6:Cart OnPart] 250mm/sec FINE ;

    4: CALL -INST_HAND_CLOSE(1,'GRIP_CLOSE',0,2,0) ;

    5: PAYLOAD[2:Slug] ;

    6:L PR[5:Cart Approach] 1000mm/sec CNT50 ;

    7:J PR[1:Home] 60% CNT100 ;

    Where can I find the details about instruction number 1 and number 3? I tried to search in manuals but could not find INST_PALLET or INST_HAND_CLOSE instruction.

    Any help would be appreciated. :smiling_face:

    Hi all. I need to open backup of real robot controller in ROBOGUIDE environment, but the software says, " This ROBOGUIDE supports virtual robot V9.10 or before. You need to update ROBGOUIDE to use virtual robot V9.30." Now can I add FRVRC 9.30 version in my already installed software? If yes, where can I get FRVRC file? or should I install completely new ROBOGUIDE software with V9.30?

    The better option is probably to have the PLC reset it through a system input (system parameters, I/O) so you have some control over it.

    If you truly want it to reset to main every time you turn it to auto (very annoying IMHO) you can also set that in the system parameters under controller... Auto Condition Reset.

    Thanks SAABoholic.:smiling_face:

    You just need to configure your Start button (on HMI) with the System Input (Action: Start at main) ===> when you press Start button, robot will automatically PP to main and Start

    Gửi từ Redmi Note 4 của tôi bằng cách sử dụng Tapatalk

    I implemented it and it worked. Thank you very much for the solution and regret for the late reply.


    Hello all, I am working on Mitsubishi robot with CR751-d controller.I am a beginner for Mitsubishi robot. I have few questions in mind:

    1. How to run any program in no step mode i.e. continuous mode in manual from TB(Terminal Box)?

    2. How to give nomenclature to DI-DO of the robot?

    3. In the application I am currently working on, robot IOs are connected to PLC by hard wiring but how to check IO mapping of the robot IOs?

    Thank you.:smiling_face:

    Hello everyone. I am new to experience ABB robot. I have one question. In the system I am working, PLC is working as a master and robot is acting as a slave. Communication between the robot and the PLC is established by DeviceNet communication protocol. Now when the system is required to run in auto mode, mode selector switch on the robot controller is set to auto mode, motors are swithched ON by pressing the push button on the robot controller. Now the operator needs to tap on PP to Main option in the production window. How to make the PP jump directly to main program when robot is set in auto mode and motors are switched ON?

Advertising from our partners