Hello,
I need to design a modular program (in STEP7) to control a flexible line (with only one PLC & TCP/IP communication).
The system should handle line components (industrial writing/reading devices: printers, cameras, etc.) from different manufacturers.
For example, the line operator should be able to change the active device configuration from one day to another (on a HMI panel): day_1: printer_1 - from manufacturer A; day_2: printer_2 - from manufacturer B.
Assumption: all the line components are in place, but, regarding the (operator) input, only one part (combination) of the components are used at a specific time: day_1: printer_1, camera_1; day2: printer_2, camera_2; day_3: printer_1 & printer_2, camera_1; etc.).
Also the program needs to handle multiple type of data (received through OPC): writing/reading data with length of 20, 30, 40, etc. characters with different nr. of items/day: 30.000, 50.000, etc., and at different line speeds (also configurable on HMI).
Program design shortcomings:
How can I tackle this complex challenge?
Is the Simatic iMap add-on suitable?
Did you have some experience with a similar program (project)?
I need to design a modular program (in STEP7) to control a flexible line (with only one PLC & TCP/IP communication).
The system should handle line components (industrial writing/reading devices: printers, cameras, etc.) from different manufacturers.
For example, the line operator should be able to change the active device configuration from one day to another (on a HMI panel): day_1: printer_1 - from manufacturer A; day_2: printer_2 - from manufacturer B.
Assumption: all the line components are in place, but, regarding the (operator) input, only one part (combination) of the components are used at a specific time: day_1: printer_1, camera_1; day2: printer_2, camera_2; day_3: printer_1 & printer_2, camera_1; etc.).
Also the program needs to handle multiple type of data (received through OPC): writing/reading data with length of 20, 30, 40, etc. characters with different nr. of items/day: 30.000, 50.000, etc., and at different line speeds (also configurable on HMI).
Program design shortcomings:
- Hardware configuration with components from different manufacturers.
- Implementation of multiple drivers: one for each type of line component.
- Memory allocation inside the PLC. I see 2 possibilities:
- Allocate enough (very big) memory for worst case scenario: all devices (with their drivers - in FBs, DBs) and maximum nr. of items (with max. length) and effectively use only as much as requiered -> part of PLC memory is defined but not used (may impair performance).
- Dynamic memory allocation - allocate memory only for the current configuration -> big headache with pointers & dynamic DB's.
How can I tackle this complex challenge?
Is the Simatic iMap add-on suitable?
Did you have some experience with a similar program (project)?