I am currently working on a project that involves automatically acquiring the machine condition of a specific device through an FC. Within this FC, I am responsible for multiple tasks. These include tracking movements using Boolean variables "MovX" (ranging from 1 to 50) to monitor the device's position state, retrieving information from a DB for the IHM system, and determining the position status to display on the HMI. Additionally, I use the Boolean function "GetSymbolName" to identify and display the name of the movement on the HMI. One challenge I am facing is that my FC structure is becoming overly large, which is causing a significant strain on my CPU. I suspect that this issue may be due to the repetitive use of the "GetSymbolName" block. A potential solution to reduce the strain on the CPU could involve optimizing the acquisition of the Boolean sequence (1 to 50) to streamline the use of the "GetSymbolName" function with a pointer. This approach could help streamline the process and improve efficiency.
Are you worried about the performance speed of your application, the amount of memory it uses, or both?
In order to enhance my software's functionality, the goal is to incorporate multiple blocks for increased efficiency and optimal performance.
What is your desired CPU performance level and which Human Machine Interface (HMI) software are you currently utilizing?
The 1517F-3 PN/DP CPU - 6ES7 517-3FP00-0AB0 is a powerful processor, which can be connected to the HMI web application through OPC for easy access and control.
I had expected that this CPU would be able to handle your functions and their related processing tasks efficiently.
I understand your concern; managing CPU workload can be tricky! Your proposed solution sounds promising, but I'd also consider revisiting your FC's structure as a whole. Try to refactor the FC to divide tasks more efficiently, which can reduce its overall size and impact on your CPU. Consider leveraging the PLC data structures to replace the Boolean variables "MovX" with arrays, or use bit-packed structures. Another approach could be to run the "GetSymbolName" function less frequently if it's not causing any real-time implications. This way, you can streamline your process further and take some load off your CPU.
Your approach to solve the CPU strain problem sounds logical, and I believe optimizing the "GetSymbolName" block through efficient utilization of pointers could help. However, have you considered option of breaking down the functions in the FC, sort of like modular programming? By creating multiple, smaller FCs each responsible for one particular task. This way, each FC will consume less CPU resources individually, reducing the overall strain. It also helps in debugging and maintaining the system in future.
It sounds like you're tackling quite a complex project! Optimizing the acquisition process with pointers is a solid idea, as it can definitely help in reducing CPU load. You might also consider breaking your FC into smaller, more manageable functional blocks where each one handles a specific task. This way, you not only improve readability but can also potentially lower the computational burden. Additionally, if possible, look into caching the results of "GetSymbolName" for positions you access frequently—this could save you from repeatedly hitting that resource-intensive function. Good luck with your project!
✅ Work Order Management
✅ Asset Tracking
✅ Preventive Maintenance
✅ Inspection Report
We have received your information. We will share Schedule Demo details on your Mail Id.
Answer: - The "GetSymbolName" function in TiaPortal v17 is used to identify and display the name of a specific movement or variable on the HMI (Human-Machine Interface).
Answer: - To optimize Boolean sequence retrieval, you can consider using a pointer with the "GetSymbolName" function to streamline the process and reduce strain on the CPU. This approach can help improve efficiency and performance.
Answer: - Repetitive use of the "GetSymbolName" block in TiaPortal v17 can lead to an overly large FC structure, causing a strain on the CPU. This can affect the performance and efficiency of the program.
Answer: - One potential solution to reduce strain on the CPU is to optimize the acquisition of Boolean sequences (e.g., 1 to 50) and streamline the use of the "GetSymbolName" function with a pointer. By doing so, you can improve efficiency and optimize performance.
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.