your scaling for analog input is wrong...
it should be CAL32767
not CAL132767
Posts by panic mode
-
-
You can go to Kuka website and lookup curiculum for programming courses then choose material to work on and fill the gaps:
Master robot
Measure tool (Teach TCP and orientation)
Measure Base
Use of synchronous commands (Trigger command)
Use Trigger to call programs
use of Timers
use of Workspaces
Interrupts
Messages and Dialogs
External axis
Roboteam
... -
As far as I know it's a little bit different: kuka also always checks the Tool0 for the workspaces (at least in some KSS-Versions).Do you know by any chance KSS that does work like that?
TS asks about KRC4 and my reply stands... -
I'm used to Fanucs, which have you teach to origin and dimensions of the workspace in reference to the world coordinates, but then it checks it against whichever tool number is active.that is exactly what Kuka Cartesian workspace does...
X,Y,Z,A,B,C is origin and orientation of new Frame in space (relative to world)
X1,X2 is space size in X axis (min and max)
Y1,Y2 is space size in Y axis (min and max)
Z1,Z2 is space size in Z axis (min and max)
you get signal when TCP of currently selected tool is inside (or outside) of the space.btw, what is "{X..... "?
-
add function in your library that displays message with version number and revision date
-
nope, it cannot work - at least not as a REAL value.
when you declare SIGNAL, type is INT and it does not contain digits after decimal point.REAL is a 32-bit floating point number and allows you to transfer values such as 3.14152 or 0.99978
INT is a whole number and cannot handle places after decimal point.common workaround when transferring REAL using SIGNAL is to multiply REAL value by some value such as 1000 at sending end, then divide by 1000 on receiving end. this way you keep 3 positions after decimal place. for this you still need to use sufficient number of bits (8-bit is only allowing values 0-255).
to transfer true REAL number as defined by IEEE754, you must use 32-bit floating point format. -
which workspace type you are using (axis specific, Cartesian, cylindrical)?
what are the exact settings?for example:
$WORKSPACE[1]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 600.0,Y1 -200.0,Z1 450.0,X2 800.0,Y2 200.0,Z2 600.0,MODE #INSIDE}
SIGNAL $WORKSTATE1 $OUT[201] -
not sure if you are aware but it would be helpful to know oldest messages first. many messages that come later on are just follow up message. oldest message is at the bottom of the message screen. also it is helpful to know message number... (image?)
messages related to X44 are KEB, servo drive faults are KCB or KSB related. all of them are EtherCat but when one or more are not initialized, something is not connected right or hardware is not changed. did someone try activating different project or alter existing one?
-
I agree...
DC power used for brakes is connected to lower right corner. Check it... It also gets passed on to next drive. check them all. Does not hurt to check fuses on PBM (any red LEDs?)
-
hmmm.... what robot? what type of jog? single axis? if so which one?
I think it should be RED_VEL_AXC[] for axis specific jogging.
Btw, if you touch any overrides in MADA, you are on your own.
Before you start changing anything, did you compare your current MADA with factory default? (it is on D:) -
750-403 is 4xDI, with 4 modules that is 16xDI (2 byte)
750-467 is 2xAI, each AI is 16-bit ( total 4 byte)
750-504 is 4xDO, with 5 modules that is 20 bit (2.5 byte, but we cannot map just fractions so it is 3 byte)all inputs (DI and AI) are in the "inputs image", with analog being at the top, digital inputs following analog.
all outputs (DO in this case) are in the "outputs image". since there is no analog outputs, image contains only (and begins with) digital outputsconfiguration involves:
- wiring
- hardware setup
- network setup
- mappingmy understanding is that you only need help with last one.
this means that:
- in DEVNET.INI you must have node with MACID=5.
- in IOSYS.INI you must have uncommented devicenet driver (remove semicolon in front of "DEVNET=2,dnInit,dn2drv.o" under [DRIVERS])
- in IOSYS.INI under [DEVNET] you need to add mapping of physical I/O to robot I/O.the issue is you did not mention what I/O ranges are already used so, i'll take a stab, something like:
Code
Display More;... [DRIVERS] ; ... DEVNET=2,dnInit,dn2drv.o ;... [DEVNET] ; start with analog inputs read from node 5 ; 5 means devicenet node 5 ; 0 means skip 0 bytes to get data for first analog input ; 16 means 16-bit ; 2 means format ; cal is optional and represents full scale raw count value ; second analog input is same but we skip first two bytes ; which were used for first analog input ANIN1=5,0,16,2,cal32767 ANIN2=5,2,16,2,cal32767 ; then we proceed to map digital inputs: ; INB means map it to inputs as bytes (INW is words etc.) ; INB0 means start with byte 0 (inputs 1-8, etc) ; 5 means devicenet node 5 ; 4 means skip first 4 bytes (those were for two analog inputs) ; "x2" means map block of 2 bytes (inputs 1..16) INB0=5,4,x2 ; there is no analog outputs so ; just do digital outputs ; OUTB0 means output byte 0 (outputs 1..8) ; 5 means device net node 5 ; 0 means skip zero bytes (no analog outputs so ; output image starts with digital outputs) ; x3 means map 3-byte block (output 1..24) ; but only outputs 1..20 exist so unless you ; add one more output module, ; outputs 21-24 are going nowhere OUTB0=5,0,x3
if you already have something mapped to those inputs, simply change INBx and OUTBx to something else. for example
OUTB10=5,0,x3
will map the physical outputs to robot output starting at output byte 10 (outputs 81..88) -
well - you need to make correct I/O configuration.
you cannot just replace one module with a different one without changing configuration - the I/O map is different.
moreover analog and digital I/O have different size map.
finally, Wago always has analog at the top of the I/O map regardless or their physical location in the I/O block.if you need help, list exact order and type of all modules....
-
so how exactly does it work on Japanese robots? what stops you from making the same thing in KRL?
for example I made a function that compares arbitrary set of axes to any degree of accuracy with current robot position. for example one can do something like:
in the DAT file declare position and set values or simply record position by program:
in the SRC file, record position then compare it (after giving chance to user to jog robot to another position)
Code
Display MoreDEF TestAxes() DECL REAL Degrees DECL INT Mask Degrees = 0.1 ; this is our allowed tolerance Mask = 'B000000111110' ; use axes A2...A6 but not A1 or E1..E6 P1=$axes_act ; record current robot position (if you don't want to type the values in DAT file) HALT ; let user move robot axes ; when done press START again to check if still in 'same' position $OUT[13]=AxisMatch(P1,Degrees,Mask) ; set output if there is a match END
-
looks like KSP is loosing 24VDC logic power. check connections (pushed out or bent pin etc.)
-
how do you plan on fitting 32-bits into 8-bit ($OUT[133] TO $OUT[140]).
also, what type of PLC you are working with? swapping bytes is normally not needed (unless using Siemens PLC).
-
there is a difference between AUT and EXT mode. since you are getting message about move enable, your robot is in EXT mode not in AUT.
-
Usb Recovery stick can be used with KRC2ed05 if controller has 512Mb of RAM.
also you need to connect keyboard and press F10 to boot KRC2 from USB recovery stick.
stick must be configured to "use all controllers" (both KRC2 and KRC4).
the other option ("use only KUKA controllers") is really supposed to say "use only KRC4 controllers". -
on KRC4 you can do it right on smartPad:
login as Expert
open program
select points
choose transform or shift you like (menu Edit, Marked Region, ....)don't recall seeing that on older controllers but OrangeEdit can do the same thing.
-
I have VMware player 5.0.1 build-894247.
-
thank you for posting picture, I have never seen this - I guess there is first time for everything...