...My boss just asked me if there is a way for the customer to add parts and limits through the HMI to the already 15 existing parts?
Actually there may be a fairly simple, if limited, way to do this: the current code uses 15 bits of B3:0 and B3:1 (i.e. bits 0 through 14 of each); that leaves the 16th bit, bit 15 unused*. It would be straightforward to add a few branches to process that bit, and the L12 WEIGHTDATA file already has room for a 16th set of weight parameters. Then create one more item on the HMI menu, call it "Custom," and provide a way for the operator to input weight parameters as well as a way for the HMI to write those parameters to the PLC from the HMI when that Custom part is in use. I assume the HMI is already writing to bits in B11:0 to select the part.
This does not provide a way to add multiple custom parts
ad infinitum, but if custom runs are rare, then it might be a workable solution.
Also note that any approach that allows the operators to add multiple parts' specifications over time will be volatile i.e. a PLC reset, or long-term power failure or shutdown, or replacement might lose all of the operator/HMI-added parts i.e. those that were not hardcoded in the original program. So if they want to go to that level, it is better done in a database (or other non-volatile storage**) apart from, and accessed by, the HMI or PLC.
* It is not that the number of bits is limited to 16, however far more extensive modifications would be required to go beyond that with the current B11 file layout, while adding only the 16th option can be done with limited, surgical changes.
** This could be as simple as a paper hardcopy log book, if events that cause them to be lost are rare enough, and they are then added back manually from the book as they are used.