How Many PID Loop Iterations per Second Can the FP-3000 Run? Hardware: Industrial Communications>>Fieldbus
Problem: I would like to know how fast I can run a PID loop on an FP-3000. Solution: Summary The FP-3000 can run approximately 50-60 PID loop iterations per second. You can choose how to distribute these iterations -- running 1 PID loop 50 times per second or 50 PID loops once per second (actually just 49 PID loops, see below). You can also choose a point between these two extremes. Note: When deciding how fast to run PID loops, keep in mind the A/D update rate of the FieldPoint I/O modules. For example, the AI-100 has an update rate of 2.8 ms, but the AI-110 has an update rate of 170 ms to 1500 ms. It does not make sense to run a PID loop at a faster rate than the update rate. The update rate of the individual I/O modules is documented in the catalog and in the operating instructions of each module. Detailed Solution Up to 150 function blocks can be instantiated on an FP-3000. One of these must be a resource block. This means that you can instantiate up to 149 other function blocks. Each PID loop requires 3 blocks (AI, PID, AO). Thus, at most 49 PID loops can run on a single FP-3000. Because function blocks must execute serially, there is a trade-off between how many PID loops you run and how fast you can run them. To see this relationship, calculate the total execution time for your desired function blocks. Also note that in your schedule, you generally want to leave 30% of your macrocycle for unscheduled communciations (to allow alarm information to be passed between devices, HMI communications, etc.). The function blocks used in a PID loop have maximum execution times (worst-case times) as shown below. (Note: You can find this information in the block information tab for the desired function block. Under the View menu, choose Preferences. Click on the Block View tab. Check the Show Block Information checkbox. Now when you double-click on a function block, a new tab called Block Information will appear. Look at the parameter EXECUTION_TIME on the Block Information tab for the individual function block. If the number is a hexadecimal number, you can change it to decimal by right-clicking and unchecking Hexadecimal Data. This decimal value of this parameter is the execution time in 1/32ms. Dividing this number by 32 will give the maximum execution time in milliseconds). The Configurator does not allow function blocks to be scheduled any closer together than these maximum execution times.
For one PID loop: Total time scheduled for function block execution = 20 ms (8 ms + 6 ms + 6 ms) Multiplying this number by 1.5 will allow 30% unscheduled time = 30 ms No unscheduled time = 1/0.020 s = 50 iterations per second (for one loop) 30% unscheduled time = 1/0.030 s = about 33 iterations per second (for one loop) For 49 PID loops: Total time scheduled for function block execution = 980 ms (49*(8 ms + 6 ms + 6 ms)) Multiplying this number by 1.5 will allow 30% unscheduled time = 1470 ms No unscheduled time = 1/0.980 s = about one iteration per second (for each of 49 loops) 30% unscheduled time = 1/1.470 s = about one iteration per 1.5 seconds (for each of 49 loops) Related Links: KnowledgeBase 1SFE93QV: What Kind of Data Throughput Should I Expect from an FP-3000? KnowledgeBase 1O3CJ7US: Sampling Speed of FieldPoint Modules Attachments:
Report Date: 04/19/1999 Last Updated: 01/05/2005 Document ID: 1KIED0B7 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
