CNCEngineering is the largest and most experienced FANUC retrofitter in North America. Our customers range in size from small manufacturers to Fortune 500 companies like Boeing, GE, General Dynamics and UTC.
Our FANUC CNC Retrofits are engineered toward OSHA, NFPA, and ANSI standards. We focus on minimizing downtime during your retrofit installation by working long days, multiple shifts, and/or weekends. CNC Engineering is also one of the first to be recognized as a FANUC Authorized CNC System Integrator; backed by lifetime support from us and from FANUC America.
First, we'll get to know your machine. Then, we'll take care of engineering, pre-assembly, and testing at our facility. After delivering the pre-assembled retrofit package to you, we'll send our professional Installation Team and Control Engineer to complete the retrofit at your facility. The average retrofit requires two (2) weeks of machine downtime.
Before you need to! Often a customer is aware that the technology and components on their machines are outdated. However, there is a natural tendency to wait until something breaks. While this may be an acceptable philosophy for your lawn mower, the maintenance of your machine tools needs to be approached more strategically.
A critical machine breakdown can seriously damage your production and jeopardize relationships with your customers. Take control and retrofit your machines before they break down. This will provide you the ability to "plan and schedule" the machine downtime needed for the retrofit.
As in North America, rail networks in Europe are in urgent need of renovation. In Germany alone, around 4,200 km (2,609.7 mi.) of track are to be renovated by 2030. Robel Rail Automation has developed a repair system that includes FANUC industrial robots.
This is especially true for the time-consuming and complicated repair work on points, or movable sections of track, he added. Rail network operators face increasing shortages of skilled workers such as welders.
The robots detect internal and external defects and autonomously repair them using welding, milling, and grinding processes. Robel Rail Automation is currently implementing a stationary repair system to test the individual process steps on new and used switches.
European railway networks are already running the first prototype systems, and Robel said it expects the system to be commercially available in two to three years. The Bavarian company added that its system will safely perform continuous maintenance work and help conserve resources.
FANUC Corp. claimed that it is the world's leading manufacturer of factory automation for CNC control systems, robots, and production machinery, including ROBODRILL, ROBOCUT and ROBOSHOT. Since 1956, the company said it has been a pioneer in the development of numerically controlled systems in the automation industry.
With more than 260 locations worldwide and over 8,000 employees, FANUC said it offers a dense network for sales, technical support, research and development, logistics, and customer care. Its U.S. office is in Rochester Hills, Mich.
I am a beginner in PLC world trying to find my way through LADDER programming, ST, protocols etc etc and I am slowly getting the hang on it but now I have come accross a troublesome implementation. We have 3 Robotic Cells in my plant each of them consisting of a Fanuc robot communicating via Ethernet IP protocol to NX1P2 PLC controller. The setup of communications is implemented and working as intended but I want to use explicit messaging to manipulate certain Robot Position Registers, Registers and string Registers. I have the needed Fanuc documentation and Omron documentation but I am a little lost. Are there any guidelines I could use to start ?
NX1P2 supports either Class 3 or UCMM explicit messages. Which you use will be dependent upon preference and upon the Fanuc capabilities. It's a very simple process, there are function blocks in the CPU to read and write.
UCMM does not require a connection first, it will just send a message. Class 3 has a function block to establish the connection (pick up the phone and say hello) and then terminate the connection (goodbye and hang up) at the end.
Thank you very much for your reply. I have read the instruction manual showcasing the Communication commands that you descrbied but I do not know the difference between UCMM and class 3 messages. Can you please confirm the following assumptions ?
1) CIPRead/UCMMRead is used to read a variable of another PLC connected in the same ethernetIP network. Not needed for my case.
I appreciate your help a lot. I am starting to get the hang on it. As the manual states: "The robot controller is an explicit message server and supports connected and unconnected explicit
messaging." So that means both message types can do my job.
Please let me describe what I am trying to do. Any help will be more than welcome. What I want to do is use an explicit message to manipulate a numeric register of the robot. With the FANUC documentation on hand I managed to find the instance attribute and service I need in order to accomplish that.
ReqPath.ClassID :=???;
ReqPath.InstanceID :=???;
ReqPath.isAttributeID:=???;
ReqPath.AttributeID :=???;
CIPUCMMSend_instance(
Execute :=TRUE,
RoutePath :='02\192.168.150.25', //robot_ip
TimeOut :=UINT#20,
ServiceCode :=???,
RqPath :=ReqPath,
ServiceDat := ???,
Size :=UINT#0,
RespServiceDat:=ResDat);
I suppose this is done with RespServiceDat:=ResDat and after I run the command any response from the robot (server) will be recorded there, correct ? How can I monitor this variable in real time inside sysmac studio ?
If something goes wrong with communications to the robot (setup incorrect, or some other issue, command does not get to robot or response does not get back), it is necessary to monitor the outputs of the function block. Assign variables to the output pins (as shown below):
and the window will be at the bottom of the screen. Just add the variables to the window. Be sure to enter local variables like this: ProgramName.Variable Name. You could also use this window to monitor your Response data.
UPDATE:
Thank you for your valuable help. I was able to to find the error but I dont really know how to overcome this. As the manual states any errors concerning the outcome of the function will be stored in ErrorIDEx variable which in my case returns 0900 0000 Invalid attribute value but there is also another variable called ErrorID which stores 1C00 which I guess I have to ignore for now, as the cause of my failed message is the attribute value which I don't understand why as I have followed all the rules provided by FANUC's EIP Manual and vendor-specific list of services attributes etc etc
I then changed Attribute to a number outside the supported range of 0-250 and The message was sent (nothing changed in the controller registers though)
with all the parameters correct though I still get 09 error which is not documented by fanuc.
I really appreciate your time and effort! I spoke countless of hours with FANUC and OMRON and they couldn't guide me through setting it up. And when I set it up they couldn't propose any solutions to my problem. So much for "technical supports" and "customer care".
Omron support is very good. At least here in the USA. I especially like the Levels of support they use. We can get through the simple solutions very quickly and move up a level if you have difficult problem. Although I do believe there a few members here in theses forums that supersede phone support. Probably because they work in the field along side customers.
That being said, fieldbus issues are difficult because you have multiple manufacturers involved. It's easy for one of them to blame the other and call it quits. Omron hasn't done that to me. There are others that have.
So moving on, on the project and after successfully using Explicit Message function to write a single Numeric Register I moved on to the next request which is to read a BLOCK of registers and store them to an array. Again, after following FANUC's documentation for the correct setting of the message parameters I managed to read the block of registers I needed and here comes the problem:
I need 4 separate blocks of registers to be stored in 4 separate arrays. To give you an idea of the project, the robot has 6 stations each station using a grinding wheel and for every wheel there are parameters like diameter, increment amount, skip increment/no of pieces, y dimension variance. So what seemed like a good idea was to create a structure (I called it SWheel) consisting of 4 arrays, then proceed to make a global variable of Data Type Swheel and using 4 separate messages extract each block and pass each array to the Response data recieved. My problem is this:
If I pass, for example, SWheel.yVariance to the RespServiceDat parameter of the CIPUCMMSend function the array is not populated with values.
If I pass another array created outside of structure in the global variables it gets populated as intended. Both arrays are of the same type (ARRAY[1..7] of REAL).
3a8082e126