Studio 5000 FAL Instruction

Shane Welcher
A free video tutorial from Shane Welcher
Electrical Engineer For Machinery Automation
4.4 instructor rating • 6 courses • 5,784 students

Learn more from the full course

Allen Bradley PLC Training - RSLogix 5000 Series

This course will give a person with no experience learn PLC programming from scratch using RSLogix 5000 and Studio 5000.

21:39:01 of on-demand video • Updated May 2021

  • Be able to completely setup basic Rockwell Automation in RSLogix 5000 and Studio 5000 from scratch, understanding PLC programming.
  • Be able to program a basic Rockwell Automation in RSLogix 5000 and Studio 5000 from scratch
  • Be a PLC Troubleshooting Master - Get PLC programming knowledge not discussed anywhere else on the internet.
  • Get Access to My Other Platform As Well.
English [Auto] OK so in this video we're going to be doing is showing the FHL instruction. This is again this is the show the working environment. This is version 28 11. This is the emulated system so something very very simple just to show the process being used. So what we'll do is we'll go ahead and download and then we'll go ahead and do the program itself. So just kind of bear with me real quick just quiet downloads should take long at all. It's an AP program. And again this is going to be under the half a l instruction. So that's a very helpful instruction if you're trying to copy stuff copy just show you a couple of different methods that you can do. Like all the copy all you can copy just increment and stuff of that nature. So let's get you started with that. So again what we can do is we can just type it in a peer or you could come over to bleaters file. So if you wanted to just delete that you can go to file and actually do that. So what we'll do. So this instruction once you've got to have the control of it. So basically your tag structure for this instruction that they have this is basically where you put in say you're going to make this tag. In this case we'll say fail control something simple right. And nothing really elaborate. And that's that's made. So Arlene is going to be based upon basic the arrays that we have. So we know how many arrays that we want to actually move. So in our case we're going to be doing is we're going to have 10 or 20 arrays and I explain this to you in a minute. We'll start out with move in all but just now you can do all or and commit them first and foremost we'll just do all. And then next what we want to do is start making our what we're going to be doing is is moving different arrays and stuff of that nature. So I want to do is create an array for that. So we'll call this array one are let's just call this data one for that matter and then let's create the dimensions of that. The dimensions of the array would be 10. So now we have that in there right. And then this one would be data too. And then again we want to put the dimittis is 10 right. So then we'll do that. So now what we want to do is actually we want to move the stuff that's inside of data to our. I'm sorry let's just move these around these changes to data too. And then this change is two data one. I actually did that wrong. This changes the data too. And this changes the data. That's right. So we want to move the status and data to into data one. And that will be I know it's kind of confusing. So I actually just light it up better for you that way. It's easy to see. So we'll keep this as the steps to send data to. We want to move into data one. OK so what we do is now we want to actually indirect address this is we want to put our brackets. And then we want to put it fail. So basically you can copy this. We can copy that and just paste it in there. Paste in we want to use the position and then put our brackets. So again that didn't take. So let me just type that out. Data 1 and then we want to put our brackets. But if AOT control POS OK. So now I want to do the same thing. We want to add the position of this into the data too. So again we'll put our brackets put our instruction in the control then we'll put in that position. So that it keeps track of the position it's in. So basically we're going to be using indirect addressing to address to each one of these. So that way we know exactly where we're at and we're going to put that position. Obviously that's going to be a zero. And we're going to put a bit in front of this so we're not going to index this until we choose to. So we'll call this move data and then we'll put that as we'll just name it as name data command are moved out of command. Right. So first and foremost we've got to go into our data and see that there's nothing in there right. So we got to see that there's nothing in data right now and what we're trying to do is move the stuff this data to into data. Right. So what we need to do with that being said is we need to put data into data data to right. If we're trying to move the stuff as in data to into data one must go ahead and put some data into that system. So for the sake of what we're doing we'll put 10 Put 20 here 30 40 50 60 actually 60 70 80 night. And now we have data inside data to write and we have nothing inside data or one. So now let's go ahead and share that case. Now we just moved the data that was inside inside of data to enter data one. So you see how just how easy that was and basically did it off the position. So to see this a lot easier than I'll show you this to see how this happens a lot easier. It will change the the instruction from an all to increment and that way you get to see it go one by one. So actually we can change this say that let's put that back the way it was so view and then organize because so when we want to do is change the data that's in here now. And we'll call this one to three four six. So we're going to change the data and we'll watch it actually change it. So when we do an increment. OK so now what we have in data one is 10 through right 90. What we have in data 2 is 1 through 9 OK so now let me go ahead and let's pull that up and then shrink this so that you can see because our screen are wrong that we're doing is not very big at all. So what I want to do is kind of show you how it's it will index and maybe bring that up just a little bit. Well OK so now that we have that what we're going to do is we're going to index it now. OK. So in index the first one index the second one. So you see how it's indexing it's moving what is in the control position. So the control. So the the the POS The position is in is indirect addressing to that one part of that array. So we know we have a link to that array is it 10 so we're basically going from one is directing it to the first array. Right. So that now the next thing is going to do is go to the second array. So it's incrementing down right. So now every time it counts going in the right address to the next bar. So we'll just keep on cycling there. Right. So you kind of get the point now if we did. Again to that point if we did all instead of increment then it's going to move all of the data at once. You see that so easy that was. So this instruction the reason I wanted to kind of show this instruction is how powerful it is you can do a lot of stuff with this instruction. Just know that you know it's mainly good for moving data around or I'm not going to you can use it for other stuff as well I mean the possibilities are kind of in this. You know Rocco probably has many different ways. You know they build instructions and with that instruction you know you come in and you come up with different ideas. Again their main thing was moving arrays around. So that's kind of the one of the big highlights. They their main drive and point for using this even in their flowcharts and stuff like that. It just shows the bits being used to shows exactly how that diagram I just showed you it shows a array to array one. The same basic principle right. So what you can do a lot different stuff right. So you can do this just a whole bunch of stuff. So even right here you can get as complex as this you know this is showing that a lot of lot of stuff. So it's basically saying that the indirect address of this is going to go into aere to the indirect indirect address is going to go into the erate 3 whatever those two you want to divide by and then have that going to the indirect address going to 1. So you can actually do a mathematical equation and come up with something. And that's exactly what that expression says. So if you look at that. So there's a lot of things you can really kind of do with this instruction. I just highlighted one of the two most simplest things to kind of get your thought pattern going and gets you thinking about you know some possibilities on using this instruction. This has been around for quite some time so it's not nothing new the way you can control it in the way you do things and with it is completely up to you. Like I said programming is all about logic and it's all if you can think it you can do it. So why not show as many different attributes and stuff of that nature as we can. So again I'll go ahead and close out this video. And for those that are interested in seeing more stuff like this and showing more elements and is just programming in general you can go to my visit my I'll have a link below either my patriots or you can you can join and be a patriot and for that it's a pretty low cost per month. But and again that's that's there to support my efforts and stuff like that. So I don't feel like you need to but I am throwing extra stuff in there that I don't throw anywhere else. So I am putting stuff in there that only the people that support the patron account will get it. So again this is this is type stuff that you know it's just some some different stuff right. I've been doing a lot of servo's stuff lately so. So I kind of wanted to venture out and show you know some more basic stuff and show some more. You know just just different different ways of programming. OK. So hopefully that video was enlightening and helped you out. And again I'll have my link below if you're interested. Check it out. OK. Thank you.