Located in Tempe, we aim to serve delicious meals with the best service possible. We pride ourselves on our work and want to share a memorable experience with you. In Japanese, kuka means a bite and izakaya means pub. Here, you will find a variety of Japanese dishes as well as a selection of cocktails and wines to go with your food. When you walk in, expect to be greeted warmly by our staff!
Love this spot! My boyfriend and I love the variety of skewers, sushi and all the food in general. Everything is tasty and also decently priced. The happy hour is great! Food and drink specials. One of our favorite date night spots!
I am currently using kuka robot KR3, with CPU (computer) KRC3 (windows 95) and monitor(HMI/control panel) KRC3. I am using the Siemens PLC s7-1200 that is connected with KUKA with profibus (cm 12435). There is already the communication between the PLC and the Robot. For now I am using PLC to just to give command which mean there is start,stop and emergency button controlled with PLC programmed in TIA portal v13.
The robot is just doing pick and place function for this moment. Now my big desire is to send the at least 6 Axis (real axis when the robort is moving) to the plc. I can see the real axis(A1 to A6) and other axis at real time in the control panel of kuka. But I want those axis to be sent to PLC mab be with some outputs or any way. I already spent alot of time but I am not able to even know the i/o of those axis or position. I can access to pmfbs.ini or iosys.ini but I have no knowledge what to change there?
Can you please give detail information step wise how can I at least send the 6 axis to the PLC? I can log in to expert mode too. Is it easy to send axis to PLC or do i need to write again complex program? Hope to get some help.
Thank you very much in advance.
Sincerely
SUdan
What do you mean by "real axis when the robort is moving"? Do you mean when it starts or when pos_act is reached?
You can use $AXIS_ACT to get the current/actual position of the robot in Axis-specific. You can declare a axis-specific variable and assign $AXIS_ACT it when you need to fetch those values for PLC. You can then copy each axis value axis-specific variable into six different real variables in order to transfer each to PLC.
Yes, I mean all the six angles (in the degree) when the robot is moving. Can you please tell me how can I use $Axis_ACT ? And where and how can i declare axis-specific variables and assign $axis_act? Sorry to ask but i really have no idea how to assign variables to angles(6 Axis) or use $axis_act?
I am going to try this out. But can i again ask few questions? For the declaring variables, you mention .dat but is it configure.dat or which .dat file? Is it the the .dat of the file that i have programeed for pick and place option? Can you please tell me which exactly?
You only need to include those in your .dat and .src files you have already for your pick and place. The real variables are just for fetching the actual positions.
When you declare those variables as global you can use them in the .sub file directly for parallel execution.
You need to create those output signals the same way you did with other RobotPLC signals before. I have only given you that signal range as an example. You must also map them in the in the configuration with the Profinet or other method you use.
Thank you for the reply
I tried to declare Global variables in so many place like .dat and in.src and even in config.daT BUT I AM NOT able to declare. I tried to picture here but it didnot allowed me.
Declaring realaxis in .dat is ok and $axis_act in .src is also ok , no compiling error. But when i tried to declare global in .src or in .dat , of my pick and place program there is compiling error saying "illegal or unknown block".
6. You will need to convert your $AXIS_ACT values into Integer equivalents before trying to send them. Usually this can be done by multiplying by 100 before sending, then dividing by 100 at the receiving end.
Can you please tell me how to make the .dat file public as i need to make global variables? Yes i need the realtime feed back, So will you please tell me, which part of executable code do i need to put in sps.sub? The full code .src of my pick and place program? or declaration from .dat? and between which lines in .sub should i keep my executable codes?
And i have made signal deceleration like u showed in .dat file of my own code not in $config.dat, is it ok? or can I declare signal in both place or only in .dat of my program? and when i used global in front of signal there was error. How can those signal be global?
And thank you for the example of codes, i will convert my $AXIS_ACT value like you showed. But my one question is , in the above post davidina told " AxisA1=AxesTemp.A1 ; Each axis is copied into real variables" and i did same. Still do i need to do like u told, in sps.sub?
So will you please tell me, which part of executable code do i need to put in sps.sub? The full code .src of my pick and place program? or declaration from .dat? and between which lines in .sub should i keep my executable codes?
You can not put all your code in .src in sps.sub. Only the relevant "fragment" for sending the values to PLC in real time are necessary. Please note that sps.sub runs parallel with robot program and it is independent. You can make the conversion of real to integer in the sps.sub, for example
You can not declare a signal in both places. In any of the cases it should work if properly declared. If your DAT file is declared as public as shown you will no more have problems declaring global variables in it.
1. Declare variables global in DAT file
2. Assign to those variables the current values of $AXIS_ACT in sps.sub
3. Do the conversion in sps.sub as SkyeFire illustrated.
4. Declare those signal range in Config.dat
5. Do the proper I/O mapping in the configuration
6. Make the conversion in the PLC program as you want.
7. Check all over again for possible errors.
Hi davidina. Thank u once again for your kind and helpful information.
I tried to make .dat file PUBLIC but it gave me error saying " DEFDAT trial1 PUBLIC, DEFDAT inadmissible". Its error 2042. I trioed to look to error manual but that was not helpful. Then When I finished typing DEFDAT myDatFile PUBLIC , I could not find those lines in my .dat file. IT is automatically hidden. How can i get rid of this problem. Then i go to error list and try to modify the line I cannot see those line "DEFDAT myFilename PUBLIC"
KSS version 4.1.7 may pre-date the implementation of GLOBAL declarations. Probably the simplest approach is to declare whatever variables you need "globalized" in $CONFIG.DAT, without the GLOBAL keyword.
Long story short, on older KSS versions the only way to make global variables was to declare them in $CONFIG.DAT. Any variable declared in that file is global by default. The addition of the Public DAT file and GLOBAL declarations was added later, but $CONFIG.DAT's original features remained, for backwards compatibility.
Now if there is any way to see if i did every things correctly?? Well of course there is not compiling error. I can run the robot. How I can see these bits into plc (Simen)? Yes there is connection already via profibus. What is my next step to see the all six angles of robot in PLC while the robot is moving?
Have you done I/O Mapping before? This must be done before you can get any values from Robot in the PLC. If you are not familiar with this there so many topics related to this in this forum. It is no more allowed to post kuka materials on the forum but if you have, I would recommend to also check the kuka manual about the steps to make the mapping.
You can check what the robot is sending by pulling up Axis1 (or 2, or 3, or...) in the Variable Monitor, and also by observing the $OUTs in the I/O monitor. As for whether this information travels across the ProfiBus to the PLC, that depends on your IOSYS mapping.
As long as $OUT 102-293 are already mapped to the PLC, you should only need to create some 32-bit input-word blocks in the PLC mapped to the correct Integer inputs (and then divide by 1000 to restore the decimal point).
KUKAprc enables you to program industrial robots directly out of the parametric modelling environment, including a full kinematic simulation of the robot. The generated files can be executed at the KUKA robot, without requiring any additional software.
The free evaluation version allows the full simulation and code generation without. Additional features such as support for SunriseOS, external axes, G-Code import etc. are only available to members of the Association for Robots in Architecture. See www.robotsinarchitecture.org/kukaprc for an overview of the available features.
KUKAprc is also increasingly being used in industry at high-end wood fabrication companies, market leaders in the aeronautical industry, and even in nuclear reactors. For these applications, a commercial license is required.
It provides the robotic building blocks to directly integrate a KUKA robot into a parametric environment. Instead of writing code, simple function-blocks are connected with each other and the results immediately visualized.
KUKAprc simulates even complex robot setups with up to four external axes. It can also solve the external axis position by itself, just enter the preferred distance between robot and target (for rail systems) or a 3D-vector (for rotary axes) and KUKAprc will set the values automatically.
So, I'm helping program for a kuka robot. It is running an older control cabinet and we have to split up programs into 3250 lines per subprogram. This is no problem in the post processor. However, at the beginning of every subprogram instead of just calling a new liner move for the robot it codes a joint move (ptp) as the first line. This is a major problem because ptp moves are generally unpredictable with robots. Meaning if you tell it to go from -185 at a joint to 180, it goes the quickest way whether that's the way you want it to go or not. So, I would like to change the first line of the subprogram to be a linear move as this has predictable results. I'm asking how because I can't really see where to change it...there is language in the post indicating you can but nothing on how to do it. I'm also asking because I have a lot of parts with giant gouges in them from the robot turning the "bad" way to reorient itself at the start of a new subprogram. And mind you this isn't a change between toolpaths, but one long finishing toolpath split up into say 25 subprograms. So, at any of those 25 times it goes to a new sub I can get unpredictable joint flips. Not a fun thing. Any help?
Thanks.