I cannot find a proper documentation to describe it, especially in Karel Manual Reference
Posts by chibai
-
-
-
yes of course you have to write a TP program where you run your karel program,
What do you mean with "Running out of resource"? I told you to use a delay in the main loop to avoid the TP to freeze.
what mean you are stuck on MSG_connect?
Thank you for your advice, it does't work by adding delay in the main loop.
The Karel code is running at MSG_connect statement without TP freezing
-
Addendum: a teamate tried setting up my BootLoader as a Macro, and creating a BGL program that would trigger the signal linked to that macro whenever the background programs were not running, and it appears to work for any of the reboot scenarios. The only downside is that whenever we kill the background programs, the BG&Macro restart them immediately, so we have to manually stop the BG program before we can make any edits.
Did you solve your problem? I think we met the same situation.
I want to running a Karel Server Poragm background, while run a TP program manually step by step
-
you can use " Cold start autoexec program " in System config to start it automatic at cold start.
don´t forget to use a delay (100ms) to reduce the programm ´s CPU time, otherwise it will freeze your TP , or your robot...
But we are actually get stuck on the statement of "
MSG_CONNECT(host_name, port_status)
", not cpu running out of resource -
I don't think this is possible. You can do multitasking (RUN PROGRAM instead of CALL PROGRAM, but this would require you to have a main program from which you start your 'background' tasks. So if you want manual control over a program while already running something in the background, I don't think you'll be able to do it. Maybe look if it's possible for you to start your program(s) from a very simple shell:
Besides this, if you want to execute the TP program in step mode won't this also put the Karel server in step mode? Maybe if you RUN the server it won't.. but something to think about/look into.
I actually found one of supplier to do this, but we can not simulate in the same way!!
Here's our program from one of our suppliers:
While the Karel Server Running, we can still enter a TP program to see detail.
Here's our own developing Karel program:
While the Karel Server Running, we will cause TPIF-013, when we are trying to enter a TP program
-
I'm trying to running a Karel server to record Joint and Cartesian position.
When I want to run another TP program, It shows TPIF-013 other progam running.
How can I resolve this condition, running a Karel server program in background and a TP program by teach pendant manually step by step.
Here is my %statement in Karel
-
-
-
Instead of looking for variables, it is easier to link all UOP signals to Flags (if you don't use them for PLC communication) and read DO's in KAREL.
- For E-Stop set DO in System > Config
- For Fault read UO[6]
- For enabled UO[1] and UO[2]
- For robot motion you set DO in IO > Cell Outputs
For reading DO use GET_PORT_VAL (2, port_nr, STATUS).
Thank you for your reply, I also want to control the enable status of robot. But even if I set UO[2] as False, it will go back to True automatically.
Is there any way I can change the status(enbaled/disabled) of robot?
-
I think most status are stored in some System Variables
I guess there are several status as belowe:
IsImergenceyStop?
IsRobotInFault?(the Fault signal in TP)
IsRobotEnabled?
IsMoving?(the status of servo??)
IsControllerReady?(the status of robot controller?)
-
Is there any command we can simulate the TP dead switch, so we can cut off the power
-
I found that UI[8] for Fanuc is ENBL signal, but it seems I can not set IN signal
-
Maybe is there any TP program to enable and disable the robot
-
Hi chibai,
Fanuc has not supported movements with Karel for a long time. In general, however, this is still possible.
-- > Call a tp program in a karel program to move the robot...
Fanuc has some examples of this in some docs.
Thanks a lot!
This is exactly what I want
-
I'd like to move robot by karel program
My idea is save the target joint position in register, than operator the Fanuc Robot move to the target joint position.
-
$ROB_ORD_NUM[1] contains the mechanical arm order number for group 1. "H772" corresponds to a R2000ic/125L for example. The numbers are shown when you start a cell from scratch for arm model:
H750 corresponds to a LR MATE 200iD/7L.
You could also hammer through the $FEATURE array, as it will have the actual name of the arm in there, but it pretty much be in a random spot depending on how many options the robot has.
Thank you, I think this is a complete answer for me~~
I wish I could mark your reply as answer
-
I want to enable and disable the robot by Karel Program.
Enable means the robot is power on or servo on
Disable means the robot is power off or servo off
Thanks a lot, guys~~
I found this area is really really hard to search information!
-
If you're looking to get a Fanuc Robot series by Karel Program, there are a few things you'll need to do. First, you'll need to make sure you have the correct version of the Karel programming language for your robot. This language is used to program Fanuc robots, and each robot has its own specific version of the language.
Once you have the correct version of Karel, you can start programming your robot. One way to get the series of your Fanuc robot is by using the system variable called $ROBOT. This variable contains a string that describes the type of robot you're using, including the series and model number.
To get the series information from the $ROBOT variable, you can use the STRCMP function to compare it to a string that contains the series name you're looking for. For example, if you're looking for the LR MATE 200iD/7L series, you could use the following code:
CodeIF STRCMP($ROBOT, "LR MATE 200iD/7L") == 0 THEN ! Your code here for LR MATE 200iD/7L series ENDIF
This code will check if the $ROBOT variable contains the string "LR MATE 200iD/7L", and if it does, it will execute the code inside the IF statement. You can replace the comment with your own code that's specific to the LR MATE 200iD/7L series.
Thanks for youre reply, I will try it in RobotGuide, and "$ROBOT" is not valid for compile, I guess we need some %ENVIRONMENT OR %INCLUDE.
I have another strange question, that is I can not find $ROBOT in system variable of TP(menu->0(next)->6(system)->2(variable))
-
Any system variable store the string like "LR MATE 200iD/7L"?