Hi,guys
The people always set the robot speed from teach peadant , I wanna set the robot speed from HMI,what should I do ? I'm a first kawasaki user.
Many thanks to you!
can I set the robot speed from HMI ?
-
adeyan -
September 7, 2013 at 5:04 PM -
Thread is marked as Resolved.
-
-
What problem are you trying to solve, Adeyan?
In other words, how is setting the speed from the pendant causing trouble?
-
Hi Adeyan, A bit late haha but I'm new in the robotics world and eager to start learning it like a freak.
So, I found something in the Kawasaki external I/O Manual, (in my case for a FS06L with D71F Controller)
There is a way to make the robot execute it's cycle in slow repeat mode while it gets a signal from for example the PLC.
So you should wire a PLC output into the External IO Inputs, then configure that input number in AUX. function A-0508. (Refer to Operation manual if needed)
I believe you can set the slowrepeat percentage in that same window as well.
Maybe that's isn't what you meant, but in some cases it could suit your requirements! -
Multiple methods because the AS language is wonderfully flexible & powerful:
- Use a series of digital I/O lines from HMI to robot that creates a binary word for the desired speed. Robot code must read the lines, decode into decimal, and set a SPEED variable that can be used in the program.
- Similar, but use an analog signal. Converted at the robot.
- Use a comm line (RS232, ethernet, or industrial protocol) connection to transfer an ASCII string of the speed value. Encoded at the HMI, decoded at the robot.
-
Multiple methods because the AS language is wonderfully flexible & powerful:- Use a series of digital I/O lines from HMI to robot that creates a binary word for the desired speed. Robot code must read the lines, decode into decimal, and set a SPEED variable that can be used in the program.
- Similar, but use an analog signal. Converted at the robot.
- Use a comm line (RS232, ethernet, or industrial protocol) connection to transfer an ASCII string of the speed value. Encoded at the HMI, decoded at the robot.
Totally agree.........
TygerDawg mentioned the SPEED Command.
- Apply any of those methods with the Monitor Command prefix'd to it MC SPEED and attach it in a background task with the variables assigned from any of the above methods and you can also adjust the speed percentage monitor value during operations.Basic example of a background task with IF Panel buttons mapped as internals to control speed monitor level (D or E Controller).............
.INTER_PANEL_D
9,2,""," INC SPD"," +10%","",10,4,2,2001,0
10,2,""," DEC SPD"," -10%","",10,4,2,2002,0
.END
.INTER_PANEL_TITLE
"",0
"",0
"",0
"",0
"",0
"",0
"",0
"",0
.END
.INTER_PANEL_COLOR_D
182,3,224,244,28,159,252,255,251,255,0,31,2,241,52,219,
.END
.PROGRAM spd.pc()
;=============================================================================
; Monitor IF Panel for Speed Adjust request
;=============================================================================
; Set Start up speed setting and variables
.rob.mon.spd = 10; default speed setting
.rob.mon.min = 10; minimum percentage
.rob.mon.max = 100; maximum percentage
.rob.mon.inc = 10; incremental variable
.tmp.spd = .rob.mon.min; internal temp speed value
MC SPEED .tmp.spd; set initial Speed Monitor to minimum value
;=============================================================================
repeat:
IF SIG(2001) THEN; Inc Speed Request Button
.tmp.spd = .rob.mon.inc+.tmp.spd
IF (.tmp.spd=>.rob.mon.max) THEN
.tmp.spd = .rob.mon.max; always set max if value too high
END
MC SPEED .tmp.spd
WAIT NOT SIG(2001); Wait for Release
END
IF SIG(2002) THEN; Dec Speed Request Button
.tmp.spd = -.rob.mon.inc+.tmp.spd
IF (.tmp.spd<.rob.mon.min) THEN
.tmp.spd = .rob.mon.min; always set min if value too low
END
MC SPEED .tmp.spd
WAIT NOT SIG(2002); Wait for Release
END
TWAIT 0.1
GOTO repeat
.ENDI don't believe there is any method of being able to adjust Teach/Check Speeds as these are only accessible via the Teach Pendant.......
-
Multiple methods because the AS language is wonderfully flexible & powerful:- Use a series of digital I/O lines from HMI to robot that creates a binary word for the desired speed. Robot code must read the lines, decode into decimal, and set a SPEED variable that can be used in the program.
- Use a comm line (RS232, ethernet, or industrial protocol) connection to transfer an ASCII string of the speed value. Encoded at the HMI, decoded at the robot.
Can you explain more this part? How do you encoded the value in HMI? The decoded value is in decimal?
Thank you!
-
Simply put:
Digital IO can be hardwired lines, or by way of fieldbus.
Either way uses BITS command:
BITS 1,8 = 170; sends decimal 170 out as bit pattern on outputs 1-8..........binary = 10101010
data.in = BITS(1001,8); reads inputs 1001-1008 and converts to decimal......so if 10101010 is read in, data.in would be defined as 170.Serial Comms is not as straight forward as ASCII values are involved and each character within the string (including carriage returns, line feeds and separators) need to be treated as individual elements.
It is also dependent on the external peripheral too, as that may require 'handshaking' to control the data flow (synchronise) which means RTS/CTS, PARITY, STOP BITS and ACK etc.....
- You have to construct a received string by decoding/extracting individual characters of the data received.
- To send a string out, you have to send out individual characters and needs decoding at the external peripheral.
- Also include any 'handshaking' that is required.
- Sending is a lot simpler than Receiving.2 things I would recommend for this are:
- Host Communications Manual.
- AS Commands prefixed with '$'.
Also:
- A cheap device that you can link a Controller to for testing.......An Arduino for instance....(would involve a little bit of Arduino knowledge).Either method works, but it all depends on your application - keep it simple.........Fieldbus is....but is limited......RS232 etc is not, but is more flexible.....In my opinion.