Hi Shane! Great video! I have implemented the code but I applied it to my system and only used 2 DINTS rather than 64. I have run into an issue with the reset commands though. Whenever I toggle the reset PB bit on, the program seems to function fine. However, when I toggle the reset PB bit back off it immediately throws a controller major fault. It says that the fault is occurring in the rung with the FBC instruction. It is a Type 4 fault, code 20 or "Array subscript too large, or CONTROL data type POS or LEN invalid." I have double and triple checked that everything lines up in terms of the number of DINTs and bits I am using. Have you seen this fault before and would you have any guidance as how to potentially solve it? Thank you!
@@tylerwarlow2959 so the bit level is matching the dints? The trick to this is to make sure all data types are the same and that you use the correct length. I used 15 dints which is 480 bits. I also use 0 through 14 which is 15 didn't (aka 480 bits or alarms) Ignore using bit zero for a fault trigger because that creates errors. Watch this video as well, a few minutes in, it shows what I am describing. ruclips.net/video/yCD-8v9h6b0/видео.htmlsi=Mqo5LrLBwgZdPsGP
I'm wondering if it has something to do with the Result Control parameter of the FBC. I was wondering why you set that to 15? The error is only occurring once the result control position becomes greater than 1. I noticed that your result control position never goes higher than 1 despite you having the length set to 15, why might that be?
Yessir. The bit level is matching the dints as far as I can tell. Just to compare to what you said, here is what I have in my program currently. I used 2 dints which came out to 64 bits. I used 0 through 1 which is the 2 dints I already skipped past bit zero thanks to your video. I think what is generating the error has to do with the Result Control parameter of the FBC. If I press the reset PB, it is not resetting that position back to 0. Rather it takes the next alarm and tries to go to position 2. Since I only have Alarms_Results[0] and Alarms_Results[1] it creates an error because it is trying to move it to the non existing array Alarms_Results[2]. How did you avoid this in your program? It seemed like your Source, Reference, and Result arrays were all of DINT[15]. Mine are all of DINT[2]. Thanks you so much for your help. @@ShaneWelcher
Thanks for the video. What if the fault bits themselves are Bit 0 and 480? May be when I implement this I will have more clarity. I have a Fault array of DINTs (length 64). I thought of using FBC’s output Found bit to control my drives. Here’s my real concern…if I have multiple faults active at the same and I am just finding one fault at a time and between resetting first fault and finding the next Fault in the array I am worried the FD bit will go OFF and turn Back ON …which won’t suit my application unless I add a delay to with FD bit to control the drives. I know there is one more setting where it will find all the Faults at the same, May be that will work better? I will have to try that. Any other way to monitor fault array?
Subscribe: mmini.me/Subscribe-4-Updates
Other socials:
Facebook: facebook.com/OnlinePLCSupport
LinkedIn: www.linkedin.com/in/shane-welcher-sr/
Very well explained. I would really like to see how you implement this further into more alarm handler logic. Will there be a follow-up to this video?
In the course I built that teaches the full project build out, yes.
Video per video, very well laid out for a full project build for great learning.
Hi Shane! Great video! I have implemented the code but I applied it to my system and only used 2 DINTS rather than 64.
I have run into an issue with the reset commands though. Whenever I toggle the reset PB bit on, the program seems to function fine. However, when I toggle the reset PB bit back off it immediately throws a controller major fault.
It says that the fault is occurring in the rung with the FBC instruction. It is a Type 4 fault, code 20 or "Array subscript too large, or CONTROL data type POS or LEN invalid." I have double and triple checked that everything lines up in terms of the number of DINTs and bits I am using.
Have you seen this fault before and would you have any guidance as how to potentially solve it? Thank you!
Make sure your array is the correct size
I just checked again and all of my arrays are of DINT[2]@@ShaneWelcher
@@tylerwarlow2959 so the bit level is matching the dints?
The trick to this is to make sure all data types are the same and that you use the correct length.
I used 15 dints which is 480 bits.
I also use 0 through 14 which is 15 didn't (aka 480 bits or alarms)
Ignore using bit zero for a fault trigger because that creates errors.
Watch this video as well, a few minutes in, it shows what I am describing.
ruclips.net/video/yCD-8v9h6b0/видео.htmlsi=Mqo5LrLBwgZdPsGP
I'm wondering if it has something to do with the Result Control parameter of the FBC. I was wondering why you set that to 15?
The error is only occurring once the result control position becomes greater than 1. I noticed that your result control position never goes higher than 1 despite you having the length set to 15, why might that be?
Yessir. The bit level is matching the dints as far as I can tell. Just to compare to what you said, here is what I have in my program currently.
I used 2 dints which came out to 64 bits.
I used 0 through 1 which is the 2 dints
I already skipped past bit zero thanks to your video.
I think what is generating the error has to do with the Result Control parameter of the FBC. If I press the reset PB, it is not resetting that position back to 0. Rather it takes the next alarm and tries to go to position 2. Since I only have Alarms_Results[0] and Alarms_Results[1] it creates an error because it is trying to move it to the non existing array Alarms_Results[2].
How did you avoid this in your program? It seemed like your Source, Reference, and Result arrays were all of DINT[15]. Mine are all of DINT[2]. Thanks you so much for your help.
@@ShaneWelcher
Thanks for the video. What if the fault bits themselves are Bit 0 and 480? May be when I implement this I will have more clarity.
I have a Fault array of DINTs (length 64).
I thought of using FBC’s output Found bit to control my drives.
Here’s my real concern…if I have multiple faults active at the same and I am just finding one fault at a time and between resetting first fault and finding the next Fault in the array I am worried the FD bit will go OFF and turn Back ON …which won’t suit my application unless I add a delay to with FD bit to control the drives.
I know there is one more setting where it will find all the Faults at the same, May be that will work better? I will have to try that.
Any other way to monitor fault array?
Bit zero will be a decimal of 1 so it should work, the comparison is decimal.
Although, it's common to not use bit zero in the very first array only
What is making the FBC "stop" when the initial alarm is triggered?
Because the alarm mask
studio 5000 logix emulator how to download ,please help me.
Through the Rockwell Automation website or from your local representative.