$UI_CONFIG.$IOSTAT_INST = FALSE should do the job
Thanks AnandTUD, that is it exactly
$UI_CONFIG.$IOSTAT_INST = FALSE should do the job
Thanks AnandTUD, that is it exactly
Is there a system variable for IO State ON and OFF in the TP editor
For me to use the EDCMD menu I have to pause the robot and then toggle the IO_State.
I would like to turn IO state off when I make a backup as the values display in the DIN / DOUT / GIN / GOUT which makes file comparisons hard between backups. I usually make my backups as MD copies and use the LS files as saved.
Thanks in advance
Elvi
[*POSREG*]$MAXPREGNUM Storage: CMOS Access: RW : INTEGER = 200
[*NUMREG*]$MAXREGNUM Storage: CMOS Access: RW : INTEGER = 500
[*SYSTEM*]$MAXUALRMNUM Storage: CMOS Access: RW : INTEGER = 900
[*SYSTEM*]$MAX_DIG_PRT Storage: CMOS Access: RW : INTEGER = 4096
Rambling question in reply while we are talking Kawasaki arrays. Lets say I am passing arguments into a sub routine program is it possible to pass an entire array into a subroutine or not. If it is possible how do you define the parameters to be an array and how do you use that argument in the subroutine.
If I am passing postions or reals I have to force the type when I call the sub routine for a position variable (& or #) but not for the real type. Then when I use that positional argument in the sub-routine I only use the arguments name with . infront of it but do notuse the & or # but the & or # are required in the definition.
I know I can pass a single element of an array but would like to pass an entire array. If it is possible to pass arrays I would expect the caller would have to also pass the max element num or only use predined sizes. The programmer can deal with that but is it possible to pass a reference to an entire arrray to a subroutine.
In the snippet below I would like to pass the 6 element array of reals rthis_xyz[0-5] for now that array is global.
Definition
x.findxyzminmax(.&xcheckpos,.firstpos)
Calling
CALL x.findxyzminmax(&xMypos,TRUE)
Using i.e. inside the routine
.PROGRAM x.findxyzminmax(.&xcheckpos,.firstpos)
;I would like to use a passed in array right here to hold the 6 real values from the position returned by this DECOMPOSE......
DECOMPOSE rthis_xyz[0] = .xcheckpos
IF (.firstpos==TRUE) THEN
;Do FirstPos TRUE stuff here
ELSE
;Do FirstPos FALSE stuff here
.END
Exactly right thanks a lot.
The manuals could do with a little more source code and example code. But this was exactly what I needed thank you so much Kwakasaki
I have a Kawasaki robot and am running the terminal. My issue is I am trying to remove multiple dimension arrays from my controller. I have had success removing the the single array using the DELETE/L MY_ARRAY[] syntax but this does not remove 2 and 3 dimensional arrays. There is no longer any AS code referring to these arrays.
Trying to clean up our robot, your help is much appreciated
Here is a list of the Facility Code numbers for Fanuc Errors.
Fanuc Error Facility Codes
Facility Name - Facility Code Number - Description
SRIO 1 Serial driver
FILE 2 File system
PROG 3 Interpreter
COND 4 Condition handler
ELOG 5 Error logger
MCTL 6 Motion control manager
MEMO 7 Memory manager
OPIF 8 Operator interface
TPIF 9 Teach pendant user interface
FLPY 10 Serial floppy disk system
SRVO 11 FLTR&SERVO in motion sub-system
INTP 12 Interpreter errors
PRIO 13 Digital I/O subsystem
TPAX 14 Aux task/subsystem
MOTN 15 Motion subsystem
VARS 16 Variable manager subsystem
ROUT 17 Interpreter built-ins
WNDW 18 Window I/O manager
JOG 19 Manual jog task
APPL 20 Application manager
LANG 21 Language utility
SPOT 23 Spot application
SYST 24 Facility code of system
SCIO 25 Syntax checking routine for teach pendant programs
PALT 26 Pallet
UAPL 27 UAMR
VISN 32 Vision system
DICT 33 Dictionary processor
TRAN 35 Translator
TKSP 36 Translator/KCL scanner/parser
KT 37 KAREL tools
APSH 38 Application shell
CMND 42 Command processor
RPSM 43 Root pass memorization
LNTK 44 Line tracking
WEAV 45 Weaving
TCPP 46 TCP speed prediction
TAST 47 Through-arc seam tracking
MUPS 48 Multi-pass motion
MIGE 49 MIG-Eye tracking
LSW 50 Laser welding
SEAL 51 Sealing
PAIN 52 Paint application errors
ARC 53 Arc welding
TRAK 54 TRACK softpart
CMCC 55 CMC softpart
SP 56 Softparts utility loader
MACR 57 MACRO option
SENS 58 Sensor interface
COMP 59 Computer interface
THSR 60 Touch sensing
DJOG 64 Detached jog
OPTN 65 Option installation
Thanks for posting this it helped will edit my CIO and post along with some data to illustrate hope to do this in the next week or so. The CIO is not so intuitive
Used by the Forms Manager and there is a USER2 screen on both the TP and on the CRT. Look in the Karel manual, you will have to use the forms compressor and then use the constant files in your Karel program. Very powerful functionality if you need an interactive display.
Hi PDL - If you plug a usb keyboard into the TP USB port you can use it for ASCII entry. To do so go into entry mode then go down to to options/keyboard at the bottom of entry modes. When in keyboard mode you type text like for a comment or a label. But that is not what I am talking about.
I want to see all of the Fanuc screens on a terminal like a VT220 TELNET client serial or ethernet. This mode is the same sort of mode as when you had the full sized integrated monitor/keyboard on the controller cabinet these were available on the RH/RJ/RJ2/RJ3 controller , the user had a access to KCL and also to all the other screens including the CRT USER2 screen. I am making up a serial cable for the JD17 port and will try this over serial with P3: setup as a KCL/CRT. I expect this will work but was hoping to have an ethernet based terminal versus serial much easier for connectivity and distance.
Currently I can do a KCL only over Ethernet the MENU key does not work in my VT220 emulator so I cannot access any other screen.
Anyone who knows the CRT/Keyboard option J535 and has info that would be appreciated.
Looking for info on using the CRT Keyboard over Ethernet. I have new R30 and would like to navigate the menus/windows via a terminal program versus using a browser. I have done this in the past on RJ3 controllers but have not been able to get to the menus to work in this new controller. I am using PowerTerm over TELNET. KCL comes up and is very fast, but I have not been able to remap the keys so the F10 brings up the MENU mini-window. If anyone is doing this over Ethernet I would be very interested in the setup. I think the browser CGTP option will soon be turned on (waiting on PAC codes) but I would rather use a terminal and operate via keystrokes versus having to use the mouse.
Thanks in advance.
Thanks for the reply Kwakaisaki I am very familiar with the AS TOOL and realize what it is and also I keep QTOOLS set to OFF. I did not realize I could enter a trans and teach a tool to it in the Auto Tool menu so I had set a tool to TOOL5 and then made a point on the terminal and set the same values to it but let those values int he TOOL5. I understand TOOL5 is used for block programming primarily. Appreciate you writing back
I see you wrote something about signals specifically
Dedicated signals can be adjusted via the terminal using: DEFSIG INPUT or DEFSIG OUTPUT
what do you mean by that exactly any reply is much appreciated
By the way my primary experience is Fanuc and I see you are working on those now I would be glad to offer you some input if you have a question PM me if you would like to talk.
I needed a pointer tool to teach some trans positions for a function so I did that using TOOL5 and got my new routine to work no problem. I ran some parts and thought it was all good but after using this robot to do some limited production successfully the robot was rebooted and then it came up with a CUBIC-S mismatch due to TOOL5 not matching the factory NULL values. I could have setup CUBIC-S to match these TOOL5 values but there only needed temporarily so I wanted to just set them back to NULL.
What I would like to know is how to change system variables and settings from a Terminal window like to change Auto Tool Coordinates - TOOL5 and edit it back to nill values from the terminal. I wound up making a quick AS file and loading that into the controller like the following.
.AUXDATA
TOOL5 0.000 0.000 0.000 0.000 0.000 0.000
DFF5 20.000 0.000 0.000 0.000
.END
I would have rather typed it in from a temrinal window. If I do a point TOOL5 or a TYPE TOOL5 it is unknown but I would think there has to be a way to see and to edit this system setting from the terminal. On a base Kawasaki system I could make such an edit from the menus R-405 or Auto Tool Coordinatees tool 5 window they have components entry or teach method. I am on a system where you can only teach the tool so I could no edit it there. so that was out. Perhaps I want to assign TOOL5 to a TRANS var for now I have to copy it out and type it in to my TRANS.
Another example is if I type DEFSIG I can see many system signal configuration settings but I cannot edit or change them from the terminal I have to use a menu and a screen to do such but think access to these from the terminal is probable possible. So in this case I can view them but not change them.
Thanks for your help if you know how to access/edit these settings..... Looking to learn more on the Kawasaki
You need to look at the data_type var to see what the user passed in. If it was a real, leave it, if it was an int, write int_val into r_RADICAND and continue.
This is the right solution
I saw this a while ago and decided I wanted a scrolling display. Mine posts the new message string on the top line and pushes down so it scrolls down rather than scrolling up. You can post 1,2,3 or 4 lines at a time and also do a clear. If you wanted more than 4 lines you could have 2 screen displays. There is test routine and an interface panel. I pass in the strings assign them to global vars and manipulate them based on the called routine. This was done on an E controller.
Thanks guys, I appreciate the input. I found I cam manipulate the Repeat_Once or Repeat_Cont from the drop down where the main override is set there is a step and repeat setting but this is only in effect or appears to be when the system is repeat mode on the controller key_switch and the pendant key_switch are set ready for auto mode then I get a box to the left of the override replacing the jog mode icon and in that box it shows the values of the repeat and step.
If I am trying to do a complex function when I need line be line stepping I will use the STEP command from the terminal window.
When I step through AS code on my lab robot in check once it seems to only step from move to move and flys right through any non motion code. I would like to know how to set this so it steps through each line of code whether it is motion or some other type of instruction like A = 1 Is this possible to step through each line of code.
Similiar question when I prime the stack and run my program it seems i have it when the entire program is set to repeat automatrically and other times the entire program runs and it stops at the end of the final line. What controls looping the program automaticall and or stopping at the end after it has ran once.
Thanks
elvicash in Indy
Eureka - I got this to work today I have been battling it for multiple weeks. Epson does not easily support positional robot math. To get this to work I had to do 3 translate rotate matrix equations and then calculate a new frame/local dynamically per pick and I also have copy the original taught taught position into a new position so it has the new local number. This was to do a Fixed Camera part pick - What I would call Vision with Frame Offset. In my method I calculate a new frame per pick and always go to the same position I went to when the part was initially part.
My pick sequence looks like the following
------------------------------------------------------------------------------
'Move clear of Camera
Go P10_App_Pick
If SnapCognex = True Then
'We had a good snap and find
Print "Cognex Success - Style ", iTempStyle
Else
Print "Cognex Failed - Cannot pick part"
Exit Function
EndIf
'Calculate the runtime offset (2 matrix operations)
' Part Diff = RUN_LOC : (INV (GOLD_LOC))
Call Calc_Runtime_Offset
Create Local 6 = Local 5 : Part_Diff (1 matrix operation)
Call Calc_Runtime_Local
Tool 1
'Copy P5 into P6 with Local 6 assigned
P(6) = P(5) /6
Go P6_Run_Pick +TLZ(-25)
Move P6_Run_Pick
Call Close_Grip
Move P6_Run_Pick +Z(25)
'Move clear of the camera
Go P10_App_Pick
-------------------------------------------------------------------------------
If anyone out there has an easier way to do Epson guidance with a Cognex camera I would be interested in sharing information.
If anyone is reading this I would suggest buying Epson Vision which has canned methods for guidance.
I have had limited success with the code I posted that method will not work for high accuracy it does roughly track the part XY and some small rotation. I feel I have to return to finishing the Offset function I was initially trying to roll out. I need to calculate the difference between the original part location and the runtime part location and add that difference to the local. was trying to add the calculated difference to the taught part pos which did not work. What I am trying to accomplish is the following.
Tool 1 Camera calibrated to Local 5 - snap / find store part location X,Y,U save that info teach pick position P(10) with local 5
Build up local 6 by the following Loc 6 = Local 5 : (Vis_Run_Part_Loc : INV (Vis_Orig_Part_Loc ))
P(11) = P(10) except its Local 6 relative all components XYZUVW match P10
Move to P(11)
EDITED THIS AND DELETED CODE SAMPLE
This methodI posted was not accurate for me after testing it