DavidWalter84 said:
...Does anyone know if symbols are stored in the processor? I think they are but how much RAM do they use? I could delete those because they are using symbols and rung and instruction comments.
User references such as Symbols, Rung Comments, Instruction Descriptions, Routine and Data File names, etc. are all saved in the Offline Image of the *.RSS program file. Only the instructions and their addressing are compiled into machine code when performing a Download.
If you Upload from an SLC controller where you don't have the *.RSS file used to store all of the above then you "Create New File". This file will be void of all of the Symbols, Rung Comments, etc.
Deleting these user references will only decrease the size of the *.RSS file, but not the amount of memory that will be consumed in the processor.
Deleting unused Routines or rungs of code, unused Data Files or elements within Data Files, or consolidating code will help to free up processor memory.
Using the Delete Unused Memory tool does have its faults, as you've found out. Another tip to find out which Data File elements or bits are in use is to double-click a Data File and select "Usage" at the bottom. All used addresses will display an "X".
Note: The "Usage" feature requires that you must have "Enable Cross Reference Online" turned on under
Tools>Options>XRef / Address Wizard tab.
For the 193-E300 and additional memory use...
The EEM Control Block uses 58 elements within the assigned Integer Data File. Also, any extra addressing you have created to Send/Receive Data will consume memory.
If the basic setup to message with the E300 is pushing you over the edge, memory-wise, then there is not much you can do other than try to consolidate the existing program.
DavidWalter84 said:
Resizing some data table that I know are not used as indirects I found after I resize and save then go back to processor properties that the instruction words left is blank?
Does it need to be downloaded to get this info? You would think it would be handy to have that offline.
When you are Offline, the software is calculating the memory allocation. If there are pending rung edits or unverified rungs then the software cannot estimate the current memory allocation and is held in an indeterminate state until all edits are finalized. This can be seen on the "Controller Properties" window by the "Memory Used" and "Memory Left" fields displaying an asterix (*). Once all rung edits are finalized the software can now recalculate the current memory allocation and the updated values will be displayed.
When you are Online, the processor is calculating the memory allocation. If there are pending rung edits then the software can continuously display the memory allocation all the way through a rung edit by reading the processor's memory allocation. In some cases you can even see the "Memory Left" changing slightly as you transition from Accept/Test/Assemble Edits, even when you just take a rung through a full edit sequence without actually changing anything. It has to do with how the processor is using memory to perform an edit.
Because you are Offline and have program errors, certain rungs are being held as pending edits. Until you clear the errors and finalize the rung edits you will continue to see the * displayed in the aforementioned fields.
If you have no pending errors and are only seeing the memory not updating after resizing the Data Files, then you may just need to perform a "Verify Project" (Computer icon with correction mark at top).
Last year we had an SLC 5/05 1747-L552 32K processor that was down to less than 1000 Instruction Words so we bought in a second hand -L553 64K and swapped it in just to be safe. Recently I've had to create extra Data Files and Ethernet messaging to other SLC controllers. There are 12 on this network in total. If we hadn't the 64K in place it would not have been possible.
I do hope you can free up enough memory to carry out this mod, but even if you squeeze it in, I would still be considering available migration options.
Regards,
George