AAC20 - Logs - VM error codes
The article explains the reasons for different VM error codes in the AAC20 logs and offers possible solutions.
Identifying the problem
First of all, if there is a problem connecting to the AAC20 controller, check the logs, which can be accessed in two ways:

Figure 1. Error connecting to the AAC20 controller in iC_Tool
by logging into the web server of the device typing its IP address in a web browser:

Figure 2. Accessing AAC20 logs in the device’s web server
using the Console button in AAC20 Updater and ‘log’ in the pop-up window:

Figure 3. Accessing the AAC20 logs in AAC20 Updater
If the logs show the ‘Cannot run VM (10)’ code, it means that the application uploaded to the device exceeds an available memory.

Figure 4. Cannot run VM (10) error


Figure 5. Error codes table
Solution to VM (10)
Install the firmware and default application according to the AAC20 - Firmware - Version check and update article. Make sure to check the Upload default app.sab and kits.scode option.
Next, application can be created from scratch, logging to the AAC20 controller in iC Tool, or edited in an external tool, for example, Notepad++ (if backup is saved in .sax extension), by decreasing a number of used components not to exceed memory usage while uploading.
WARNING: While editing a .sax file, make sure to completely remove components along with links, which are located at the end of file.
Solution to VM (45)
The VM (45) error code mean that the number of kits uploaded to the device is too high meaning that the memory available for kits, which is 256 kB, has been exceeded.
First, remove kits, which are not used in the application (for example, by editing the app.sax file).
WARNING: Please note that, with a newer version of firmware, kits take more space, which is why the VM (45) error code may appear after the firmware update (the application created on previous versions of firmware included kits taking up space limits (about 256 kB).
Solution to VM (100)
The VM (100) error code means that a component has been placed under a wrong network in the application. The below example pictures the situation in detail:
logs analysis shows the VM (100) error code:

Figure 6. VM (100) error code
in the app.sax file, it is evident that points were incorrectly added to the ModbusAsyncNetwork:

Figure 7. The application .sax file
points from the ModbusAsyncNetwork kit were added to the ModbusRJ12Network;
for the ModbusRJ12Network, it is required to use points from the ModbusRJ12 kit;
to fix the application, edit the app.sax file by removing added points or editing the component’s “type=”, for example, from iSMA_ModbusAsyncNetwork::ModbusAsyncNumericMultiPoint to iSMA_ModbusRJ12Network::ModbusRJ12NetowrkNumericPoint.
Solution to VM (43)
The VM (43) error code means that the application has not been properly saved on the device. This may occur if while saving the application (by default, every 60 min) there is a power loss in the device’s location. Strong interferences may also result in a saving failure.

To avoid the problem, first, update the firmware (version 6.0 or higher). Next, turn off the cyclic application saving in app → plat.

WARNING: After switching off the cyclic application saving, the application will not be saved automatically.
Solution to VM (42)
The VM (42) error code means that the application file, uploaded to the device, is damaged. The file may get damaged if the uploading process is interrupted or fails. In extreme cases, the uploading process may be completed successfully but due to, for example, interferences the application file may get damaged, which results in displaying the ‘Cannot run VM (42)’ message in logs.

To fix the problem, install the firmware and default application according to the AAC20 - Firmware - Version check and update article. Make sure to check the Upload default app.sab and kits.scode option.
Next, upload the application backup to the device.