Default value is false, if you deselect it will not call the program according to the signals, do you have pg programs? I am not using this function, dont think that i have ever used it.
Posts by Alexandru
-
-
Enables or disables the function to allow selection of programs via external signals.
-
Hello,
Like i said i did not connect the safety part with the Cubic-S and maybe the procedures might be different. I can not guide you how to connect because i dont have any experience with the Cubic-S.
What i can tell you, is the procedure that i am using...
For the robot i am using 2 safety circuits with each F-DQ address. I am using safety relays from SICK (RLY3-OSSD400) for each safety circuit.
From the robot part there is only one F-DI connected to the robot, but if you have other emergency stop
it will have a different F-DI address.
For the door circuit i collect all the information from the devices that are connected in the area (doors, safety light curtains) and all devices have different F-DI adresses.
In one case i used SENDDP and RCVDP blocks in order to receive safety information from other machines.
-
You can find some instructions in the as programming manual.
Which robot are you using and what kind of controller do you have?
If you need some help how to Connect to the robot, please ask.
-
I have connected the safety part from the robot with a F-CPU but the robot was not using Cubic-S. Could you please tell what external inputs do you have from Cubic-S? For E-Stop circuit i was using the connection from X7 and for the door circuit the connection from X8.
-
you need to have the online terminal KRTerm for example and type save backup, it will save the backup file from the robot.
Which terminal are you using to connect to the robot?
-
Hello,
Those instructions are from BLOCK programming. You can find every explanation in the 5.3 section from Operation manual.
-
You are in the wrong section, you should create a new topic.
The robot was working fine before you changed the battery? Do you have a backup before you changed the battery?
Go to Aux Function --> Advanced Setting --> Zeroing --> Zeroing Data Set/Display and check the numbers,
all numbers should start with 2684 .... if the number is different you have to do the zeroing again.
-
This picture is from Arm signals, usually i put the inputs starting from 1033 and outputs from 33. Also, there is no input or output allocated. You can use 12 inputs and 8 outputs in the Arm.
-
Have you checked if the axes and encoder values are zeroed? Maybe the JT6 wasnt zeroed and thats why it could not reach 90 degrees.
-
Hello,
What kind of information are you looking for?
-
Have you contacted your local Kawasaki distributor?
-
You can use TWAIT function for some delays...
Your code might look Something like:
SWAIT 1015 waiting for input signal 1015 to be on
TWAIT 0.5 wait 0.5 seconds
GOTO 100 jump to 100 label
-
Ok, now i have seen, but now you have 8 grippers, so you need to add 2 signals more
IF SIG(1015,1016,1017,1018,1019,1020,1021,1022) THEN
n_pick_failed = 0
ELSE
n_pick_failed = 1
GOTO exit_routine
END
The numbers are already set in the init_vars, but i usually work with array indexes, for example
di_bat_pres[1] = 1015
di_bat_pres[2] = 1016
....
....
di_bat_pres[8] = 1022
and you can check in the load_cells or pick_cells programs like this:
For .i = 1 TO 8
IF SIG(di_bat_pres[.i]) == TRUE) THEN
n_pick_failed = 0
ELSE
n_pick_failed = 1
GOTO exit_routine
END
END
-
Thank you for the feedback. It is good that you managed to change the programs.
Also in the program plc_load_cells or plc_pick_cells you dont check if the robot picked properly all bateries. The code exists, but it is commented, for example this:
;IF (SIG(di_bat_1_pres)==TRUE) OR (SIG(di_bat_2_pres)==TRUE) OR (SIG(di_bat_3_pres)==TRUE) OR (SIG(di_bat_4_pres)==TRUE) OR (SIG(di_bat_5_pres)==TRUE) OR (SIG(di_bat_6_pres)==TRUE) THEN ;OR (SIG(di_bat_7_pres)==TRUE) OR (SIG(di_bat_8_pres)==TRUE) THEN ;Check to make sure there are no batteries present
; n_pick_failed = 1
; GOTO exit_routine
;ELSE
; n_pick_failed = 0
;Do Nothing
;END
; in front of the line means that the code is commented. What kind of batteries does the robot handles?
-
You want that the PLC checks the actual location against the last known location and either faults, prompts if the robot can move to home position or execute the last assigned recovery routine ??
-
Hello,
With some help from @kwakisaki i could understand little bit the code. This is my personal approach.
I looked over the code and for your modifications you need to change the following programs:
.PROGRAM calc_transfer need to change i_xfer_pos = .zn_start_pos+(i_count*3) and the for loop it will remain the same up to 7.
.PROGRAM calc_transfer_l need to change the for loop FOR i_count = 1 TO 1 because the in the inner frame there is only one column on each row
(2,5,8)...
.PROGRAM calc_carrier_lo need to change the for loop FOR i_count = 1 TO 1
.PROGRAM calc_carrier need to change i_carrier_pos = .zn_start_pos+(i_count*6) and the for loop it will remain the same up to 7.
In the program .PROGRAM teach_pts you need to teach or check:
the outer corner from the picking frame (1, 25 and 3, 27)
the outer corner from the placing frame (1, 49 and 3, 51) also (4, 52 and 6, 54)
picking points x_xfer_pallet[1] and x_xfer_pallet[25] (x_xfer_pallet[25] = x_xfer_pallet[33] from the old pattern), x_xfer_pallet[3] and x_xfer_pallet[27] (x_xfer_pallet[27] = x_xfer_pallet[35])
placing points x_cell_carrier[1] and x_cell_carrier[49] (x_cell_carrier[49] = x_cell_carrier[65]), x_cell_carrier[3] and x_cell_carrier[51] (x_cell_carrier[51] = x_cell_carrier[67]), x_cell_carrier[4] and x_cell_carrier[52] (x_cell_carrier[4] = x_cell_carrier[5] and x_cell_carrier[52] = x_cell_carrier[69]), x_cell_carrier[6] and x_cell_carrier[54] (x_cell_carrier[6] = x_cell_carrier[7] and x_cell_carrier[54] = x_cell_carrier[71])
on the ; TEST PICK POINTS section the new input values would be something like this :
CALL calc_transfer_l(1,3) calculate position 2
CALL calc_transfer_l(25,27) calculate position 26
on the ; TEST PLACE POINTS section the new input values would be something like this:
CALL calc_carrier_lo(1,3) calculate position 2
CALL calc_carrier_lo(4,6) calculate position 5
CALL calc_carrier_lo(49,51) calculate position 50
CALL calc_carrier_lo(52,54) calculate position 53
you need to modify the index positions because the index 66, 67, 70, 71 for example ....
.PROGRAM pick_n_load you need to modify the inputs from the calculation programs:
;PICK TRAY 1
CALL calc_transfer_l(1,3)
CALL calc_transfer_l(25,27)
;PICK TRAY 1
CALL calc_transfer(1,25)
CALL calc_transfer(2,26)
CALL calc_transfer(3,27)
CALL calc_carrier_lo(1,3)
CALL calc_carrier_lo(4,6)
CALL calc_carrier_lo(49,51)
CALL calc_carrier_lo(52,54)
CALL calc_carrier(1,49)
CALL calc_carrier(2,50)
CALL calc_carrier(3,51)
CALL calc_carrier(4,52)
CALL calc_carrier(5,53)
;..........................................
; START PICK AND PLACE ROUTINE
;..........................................
;
FOR n_row_count = 1 TO 54
.PROGRAM pick_cells need to change
IF n_xfer_count>54 THEN
n_xfer_count = 1
END
.PROGRAM load_cells need to change
IF n_load_count>54 THEN
n_load_count = 1
END
Hope that i did not forget anything...
-
You have to shut down the controller and then unplug the teach pendant.
-
from which program you want to change? Taking 8 batteries it will affect the picking position?
I saw that you already check for 8 signals (but the last 2 signals are commented) so you did some modifications already? The programs for the points calculations are not called by the robot from the main program, i guess that you have to check manually or in a separate program the points calculations?
-
Yes, every kawasaki robot is using AS programming. You need to connect with the terminal and start writing the programs in AS language