Hello,
I am working on a project to dynamically be able to modify the HW configuration of our machines based on which machine type it is. The point I am starting from has 4-5 machine types which have IO import files pulling the modules in from Source=“AR” and changing IO where necessary based on the different machine types. This first import file works with a chain of 75 modules that live on the branch of the X20BC0083a (ik_full_p2.txt, changed extension from .xml to be able to upload):
ik_full_p2.txt (311 Bytes)
I have modified the project to no longer have the IO modules live in the physical view of the configuration because our X2X chain of possible modules got too long to successfully boot a PLC without causing an error before changing the HW configuration that we are actually running. So I am now using this type of import file which needs to call out each module individually and uses templates for the modules that were sliced from the arconfig.br and iomap.xml files in the project that had all of the modules in the physical view of the configuration(ik_full_p1.txt changed from .xml for upload):
ik_full_p1.txt (43.2 KB)
This file calls out all 75 modules that live after that X20BC0083a in the first file individually and maps IO that was originally mapped to the modules in the configuration. The problem is that this file causes issues when importing onto a real hardware setup that matches this configuration. If I include more than 53 modules (Specifically adding the SL2.IF1.ST2.IF1.ST54 X20DS438A module and commenting out everything after it) when the system powers back up the SDM shows the chain configured correctly, but EVERY module behind the X20BC0083 shows as “Not Plugged”. If I comment out the .ST54 module and only put 53 modules on the system, the SDM shows all configured modules OK. A side note is that I changed the type of module getting added at .ST54 from the X20DS438A to an X20BT9400 and it resulted in a success.
It seems like the amount of data that is getting setup for the modules when using the template files which were created by the original modules in the AS project is getting too large for implementation in this way of importing. I am wondering if there is a way to get around this and get this import to succeed. It is a critical point for the planned dynamic capabilities and if I can get past this step, I see a clear path forward.
Things I have tried so far:
- Increase the AsyncPayload parameter on the X2X interface of the X20BC0083 from default 160 to 400.
- Turned all Module Status info where I could in the .ar template files
- Removed several io mapping definitions of items that do not actually show up in the IO Mapping in AS
- i.e. NrOfResets, NrOfInits, NrOfFwUpdates, ModuleNoComm, ModuleCommError, etc.
I appreciate any feedback that might help come to a solution or help point toward this not being feasible.


