This was extremely useful. I usually barely find what I need and still have many unanswered questions after Google/RU-vid searches but you went into the perfect amount of detail covering the whole setup. Great job! Subscribed!
Dear Adam, I successfully made my first automation with Fanuc with your help here. Thank you for your videos and for your time to make it. My PLC is Omron and my HMI is INVT, I use it to Enable, Reset, RSR, Start, and Pause the Robot with DI and DO. My PLS has Ethernet communication, but I don't have a result with an ethernet setup between Omron and the R 30iB Plus controller. I have two questions: - How can I set parameters in the robot registry from PLC with Ethernet communication? Now I make changes in the robot registry by DI and background program like +1 or -1. I need this to make changes in tool offsets, because we use the robot for palletizing rice in a termoshrink film, and we need to make changes frequency. - How can I make command to abort selected program from different DI, because the command "Abort" is in the same digital input as the other command(reset or pause), can I separate the signals? Thank you!
Hey Adam, great job in putting all these videos together. god bless you man!! quick question here, is the integration same process for the CRX models? thank you and appreciate it!
Thanks for this crash course - I'm getting myself up to date on our FANUC stuff and I don't like needing to bother the Senior Engineer over little things like this if it's something I can learn/figure out myself. Very helpful!
I know I'm commenting well over a year after the video release, but I'm hoping my question may still get answered. I understood the 4 states of 2 bits, but by what process does that turn into a 1, 2, or 3?
Hi Bradley! If you're talking about the "Group Input" portion of the video, converting bits into integers is a native process that FANUC does in the background. When you define a Group Input (or Group Output) you tell it how many bits, and then FANUC converts those bits directly to integers. You can then use directly or as Registers. Hope that helps!
Love your videos. I have set up a palletizing robot using PalletPro and everything is done however, I have an AB PanelView HMI and I would like it to display the current layer and unit number that has been placed for the operators to view. Since I cant access them as I/O points I was told I need to use explicit messaging. Could you do a video on setting up explicit messaging between robot and CompactLogix or, if one already exists, point me in the direction of it? Thanks much.
I have a SCARA 6iA/30iB Plus Compact...Need to pick a part from a tray with 100 parts 10x10 array, 1.25"x1.25". I want to send just the X&Y values to the 30iB before each pick. Any advice...
Hopefully this project is still active :) In any case, great question. You will want to setup a User Frame with a 0,0 coordinate as your first part's pick position. From there, the PLC can simply send a Group Input (watch my video on that!) which turns into a Register value, which you can then use as a PR offset (watch PR Offset video too!). The PR Offset is simply which row and column, multiplied by the pitch between parts. Checkout those videos, and the one on User Frames if need be, and combining those ideas you'll end up with a very slick way of telling the robot where to go and when.
In order to pass Strings back and forth from an Allen Bradley PLC, you need the EDA (Enhanced Data Access) option in addition to your Ethernet Adapter option. We also have a bundled price called "Advanced EIP Package" which gives all of that.
Hi Adam, awesome video! Do you have a video that zeroes in on connecting IO? I am trying to connect Pallet Pro to my real robot so it will run the programs sent from Pallet Pro. I can't find clear directions on how to do it.
Certainly, Dan; PNS is a very useful and common method of program select. You must name your programs PNS001, PNS002, etc. etc., and then use the corresponding UI[x] bit to select which will be run. The only limitation is the number of PNS bits available. Often it is enough, but if you have more programs than PNS bits, we recommend using Group Inputs and Registers to select. Thanks!
@@AdamWillea yeah I like group input so much better. So much easier to understand. But I know a lot of people have questions on those especially since they're dedicated UIs
You need to add it at the beginning of the program, more accurate, in the section when you choose the type of firmware, the you select Ethernet Adapter
Adam, you are the man. I’m a noob in robotics and just getting my first PLC to Robot project going. Thank you for explaining how to get the correct program to run on a start signal.
Hey Adam little confused you using DI 1 and 2 to call program i thought those are for the UOP signals how does that work behind the scene does that mean i dont have to set the UOP ?
Hi Anthony, I was wondering the same thing. I wish someone would have answered this question. Did you ever find out why he was using DI instead of uop input?
My robot is standard version, it doest have start button on controll panel, is there any solution to run the robot automatically ? Im looking forward to hearing your advice. Thank you so much,
Hello Nguyen, If your robot does not have a physical start button, you will need to map an I/O signal to the UOP start bit. This can be done either by physically wiring your own button into the robot I/O, or by mapping a bit using a protocol like Ethernet IP, Modbus TCP, Profinet, or other. In any case, you'll simply need to switch the TP Off, and issue a "START" bit. Thanks!
@@AdamWillea I have read material about mapping I/O, Im wondering whether or not I can use Rack 34 for UOP and and Mapping F( for example: F6 ) to "UI 6: start signal". Then instead of using a phisical button so I can force F6 to start my robot ? Thank you so much for your answer.
Great video but I have one issue with mine. When I go into setup/program select and change the detail for my "other" to run my main program it only stays in there for one start signal "UI6". When I send a start it deletes from my setup details for the other in program select. What is clearing that variable? Thanks
Hi Tom, to be clear - you are losing the data from the system variable $SHELL_WORK.$CUST_NAME, is that correct? You could go into the actual sysvars (Menu-> System -> variables) and scroll down to that variable. Monitor it there and see if you catch it clearing itself. I've not seen that happen before unless another program is overriding it. Also, you're not using PNS signal anywhere, right? Just thinking if robot is seeing multiple start signals...
@@AdamWillea Thanks for the reply, found the problem last week. I had the UIP mapped to large (size of 18) so it was zeroing it out. Dropped it down to size of 8 and that took care of it. Only using the first 8 anyways. Keep up the great video's!
Hello Chinmay! Perhaps a trick question (or trick answer); I wouldn't configure Analog io's on Ethernet Rack 89. FANUC offers Analog I/O cards which read signals 4-20mA range, which you can scale appropriately as needed. If you are looking to send a value stream to the robot, it would be best to setup Group Inputs. Simply open your GI/GO settings, configure them to Rack 89, Slot 1, and appropriate Start #, then define how many bits you want. These will setup Integer values you can use directly, copy to Registers, etc., for various tasks. FANUC also offers "Enhanced Data Access" (EDA) which allows you to map "real" type instead of integer type straight from PLC to Registers. Else, just use GI, multiply by 1,000, and scale it to a R[x] and you'll have a Real with 3 decimals :)
Adam: Thanks for this video. Just what I needed for my final school project, a tic-tac-toe game in which I need to pass the robot the grid number (1-9) to place the X or the O. Question though???? You showed us how to read the Program Number from R[1], but NOT how to set G[1] from the PLC, since the Fanuc can only accept ones and zeros as input. How do I put the Program Number to run into G[1] from the PLC? Thanks again, William......
Great question William - in an Allen Bradley PLC, any integer is natively setup as an array of ones and zeros. So if you make a variable an INT, SINT, or DINT, you'll be able to open the tags screen and see something like "Thing = 5" but if you click to expand the INT of "Thing" you'll see Thing.0, Thing.1, Thing.2, Thing.3, etc., and you'll see the binary representation of that number. If you have those mapped (a direct copy instruction will work) to the mapped bits going to the robot, you'll be all set. You may find some additional helpful detail on the robot side in my Group IO video here: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-AmVGv9uKq5Q.html Hope that helps!
In direct binary permutations, yes. However consider you cannot call a program with NO bits. e.g., for a 2-bit input you have 00, 01, 10, 11. That's 4 items. But you cannot have "00" call a program in the robot mainly for safety reasons. If the robot does not see ANY i/o coming in (both bits are off) we would be safer to assume there is a communication error, blown fuse, loose wire, etc. You wouldn't want to call program "10" and have it run program "00" and cause a crash just because a 24VDC wire failed. So in this case, take the total possible and subtract 1 :)
a video in depth with the first part of the video would be very helpful, especially with an ethernet connection scenario, ty verry much btw for sharing your knowledge
@@AdamWillea I would be happy to send you a Compactlogix if it is helpful. Dont think I could be of much help with the software though. august.meinerz@gmail.com
@@AdamWillea These videos are phenomenal by the way. We need more ease of access to education to progress as a country in manufacturing. Nice work to you and Fanuc!
@@augman0817 Hi August! I might be interested in the CompactLogix hardware - it could help with future videos. I'll reach out to you via your gmail. Thanks!
Thanks, Giuseppe! FANUC supports several communication protocols like Ethernet IP, EtherCAT, Profibus, Profinet, Modbus TCP, discrete I/O, and more. To learn more about all the possibilities and how they work, it's best to get in contact with your local Sales Rep and local Engineering Support Team and start a conversation.
Awesome video and thank you for all of the information. Could you expand somewhat on what the "start point" means? For example, in the video at 4:17 you enter the config screen and you have Rack 89 and slot 1 chosen and then for "start" you have a 1. But just below that for DI [9-16] you have 27 chosen for start. Why is that and what exactly is the start? I was under the impression that the start was supposed to be the first DI chosen in that range column. Thank you!!
Excellent question. It comes down to mapping bits within words. I always recommend that users make an Excel document and visually type out what PLC bits go to what Robot DI/DO, and what that bit does. This is because FANUC counts straight through from "1" up to whatever; let's say 4 words at 16-bits per word, FANUC shows 1-64. But the PLC counts from "0" and starts over every 16th bit. So you get [0].0 then [0].1 up to [0].15 then it goes [1].0 then [1].1 up to [2].15 for those 64 bits. The "START" column is saying what "bit" do we start counting from for that range of DI's or DO's. Please note that at 4:17 in my video, the second line is NOT mapped to Ethernet. It is Rack 0. Ethernet is rack 89. So those bits are pointed to different places. Most people, 90% of the time, just map their whole range DI[1-64] to Rack 89 Slot 1 Start 1 and forget about it. But then if you have IO going somewhere else, say an output card, that would be mapped to Rack 48 Slot 1 Start 65. You start at bit 65 because 1-64 are used and you don't want to double-map things.
Great video Adam!! Much appreciated!! Can you do a video on adding a valve bank on the robot and setting up the I/o in the robot using Ethernet please!! Thank you
Thank you! Setting up an ethernet ip valve bank is simply utilizing the FANUC EIP Scanner option, setting up the IP addresses on your valve bank and robot, then mapping the Rack 89 I/O same as you did on the PLC. Difference is, PLC requires "Adapter" option where robot is slave, valve bank requires "Scanner" where robot is master. Feel free to contact our tech support for more details via our website. Thanks!
Hello Adam, first I want to thank You for Your videos, I learned a lot from You! Can You maybe make a video about how to connect Python app (or some other programming language) via TCP/IP to select robot programs? Thank You again!
Cool video, Adam! Your way of calling programs is different than the method I use but this was definitely informative. Also... I had my first interview with Fanuc for an FSE position yesterday. It went really well and I'm hopeful that I'll be joining the team soon!
Hey Adam, I learn a lot from your videos and I appreciate your help, this is the one I was looking for, but in specific if you are available to make a video with PROFINET setup it would be awesome, I am trying to understand RACK numbers 99 and 100 (IO Controller and IO Device) but can not find a Manual about PROFINET on the web. Thanks in advance and have fun coding.