5/27/2020 4:13 PM | |
Joined: 9/27/2006 Last visit: 9/20/2024 Posts: 12282 Rating: (2684)
|
Hello Nico; The following documents will describe the functionning of the FB 58, which is basically a FB 41 (continuous PID controller) attached to a FB 43 "PulseGen" block, to control solid-stae heating coils, for example. PID Temperature Control https://support.industry.siemens.com/cs/ww/en/view/18652438 Question about FB58 "TCONT_CP" problem with s7 s300 CPU 312 ,PID You will find the answer to your specific question on CYCLE and CYCLE_P parameters in the second link, Question about FB58..; thanks to hdhosseini for his knowledge and patience. You are right about using your CPU 312 with a number of FB 58 in your program. The call of FB 58 requires 10,866 bytes in work memory (look at the Tech_specs.jpg file in the 3rd link) , each subsequent use of a IDB for FB 58 will add to the space taken. Your CPU is limited to 32 kB of work memory, do the math. And it is also limited in processing time (it is a rather old design), so you might be overrunning its capabilities before you finish this project. If this is only a test project, I would suggest calling one FB 58 with its IBD and testing it to obtain the type of control you are looking for; it will certainly work for one call. Then add a second call to FB 58 with its own IDB, see how the CPU handles the extended OB 35 cycle and memory usage. If all goes well, add a third... Hope this helps, Daniel Chartier |
5/29/2020 6:44 PM | |
Joined: 9/27/2006 Last visit: 9/20/2024 Posts: 12282 Rating: (2684)
|
Hello Niko; I have had to work on a project to control 25 heating zones in a cPU 313C, one FB 58 with solid-state heating coils as outputs, using one multiple instance DB to minimize memory use. https://support.industry.siemens.com/cs/ww/en/view/18723826 It was not an easy project, the choice of the CPU was done by management and did not reflect our choices. We managed to get it done using many memory optimizing techniques such as STL programming, but I would do it very differently if we had to do it again. The CPU 312 you are working with has less memory and speed that the compact CPU we used in our project, but you would be implementing only 10 control zones. So there could be room for you to complete your task. As I suggested earlier, make one FB 58 control with one IDB, then add a second instance as a multiple instance, and check the difference in size of the program. That will tell you how large the program would be after you finish all 10 zones. Then you would be able to determine if it is worth your while to continue in this project. Hope this helps, |
This contribution was helpful to1 thankful Users |
Follow us on