XL220CL
4.98.0
3/24/2025

At least one of our models has exhausted the 32 bits of Switch configuration. This change adds the possibility of an additional 32 bits for a total of 64.

The Switch configuration screen now displays 40 Switch bits. More can be added as needed in the future. An additional Switch data entry field has been added to support data entry in decimal format for the extra 32 bits. The two decimal data entry fields are labeled 1-32 and 33-64.

The Switch setting now displays both decimal fields seperated by a dash. Switch for bits 1-32 are displayed first, followed by a dash and then Switch for bits 33-64 are displayed.

A new hidden setup for bits 33-64 has been created to allow Eclipse to save and display the Switch setting for the additional bits. Its name is "Switch2".

On MRE2 models, the type of Die Accelerator can be chosen for each Die. When the Shear was configured for one of the rotary models and the Punch was confiured as a linear DA, the tolerance mode setup was not available for the Punch. This has been resolved. If any DA is configured as a linear DA, the Tolerance mode will now be present.

The XL had no unsigned integer to string functions.

Rts_Unsigned_Integer_String has been added. All of the other inline prototype versions, available with the Signed version, have been added as well.

Rts_Format_String has also been updated to accept the "%u" option for specifying an unsigned integer conversion.

Also, the Logger::printf method now accepts the %u option for unsigned integers.

When editing numbers, the numeric text was being shifted upwards from it normal displayed position. This has been resolved.

The integer edit controls have to handle the data conversions that happen when the controller's display format requires conversions between its internal units and the users desired display units. This requires a conversion to floating point and then back to integer after rounding, which can result in a loss of precision, depending on the magnitude of the number involved. In most cases, the integer values are not large enough to encounter this issue.

The only case this has become an issue is when editing the controller switch setting. In this case, the integer values require all 32 bits, which cannot be converted to a float without loss of precision. This is also the only case when an unsigned integer to string conversion has been required.

A bit in the Format configuration for edit fields has been reserved as a special case to specify that a field is to be treated as an unsigned integer. In this case, no conversion to float is performed. It is expected that when this flag is used, no display unit conversion will be required.

Closed Loop Die Accelerators are reporting the wrong press when a Press Complete error occurs. This is only a problem when the Die Accelerator is the Second Die Accelerator or the Shear press is not on the First Die Accelerator.

This has been resolved.

The Initialize data had encroached into the Heap memory start location so a remap was required.

This task error is generated if we get an extra IRQ7, which normally happens when recieve data is ready in the DSP or ARM co-processors.

The ARM co-processor API has the possibility to test if an IRQ7 interrupt is real. This is now being done on the ARM. Their may be a method to implement something similar for the DSP in the future.

If the interrupt is determined not to be real, we will leave the interrupt with no side effect and no longer generate the 8F000012 task error.

Hopefully this will resolve all cases of this issue.

SCN 5013 fixed an issue with the Die Stroke not being shortened on Press Completes on CLF Die Accelerators configured for multiple presses. An additional issue has now been found with the Press Complete tests that occur under the similar conditions.

To duplicate the issue, the master press on the Die needed to have a larger dwell than the slave presses. The Expect Press Complete setting needed to be configured for Yes on the master press. If the master press did not have a target and the slave press did, if its press dwell was shortened by a press complete, the master press would mistakenly report a Missing Press Complete error.

This has been resolved.

Simultaneous Press or Press Up Complete errors would not display.

Duplicate Error messages are filtered out in the user interface. Only the first instance gets dsiplayed, unless a flag to allow duplicates is used. The flag was not being used.

The second issue is that the press that is displayed was stored in a global variable, rather than a dynamic variable of some kind. This could lead to double, or more, reporting of the same press when multiple error messages are displayed, depending on the timing involved.

Both of these issues have been resolved.

This task error occurs if there is a new Timer interrupt prior receiving the data back from the ARM or DSP from the prior Timer interrupt.

While searching for the cause of a different task error, 8F000012, that seemed at the time like it may be SERCOS related, I discovered an issue with enabling the SERCOS cyclical interrupt. On the Closed Loop controller, to prevent the 8F00000E task error, the Timer interrupt should be disabled before enabling the SERCOS cyclical interrupt. In addition, if we are waiting on the data from a Timer interrupt, we need to receive that data prior to enabling the Cyclical interrupt.

The reason is that the Timer and the Cyclical interrupt both do the same thing, which is send new data to the DSP or ARM. We need to make sure that we wait to receive expected data from the DSP or ARM before we enable either one of these two interrupts so that we don't get one of them prior to receiving the expected data. If we don't, we may get the 8F00000E task error.

The Scanner Verification feature has been added to all controller models that have the PLC Integration (I) option. It will be available on Output 53.

SCN 4989 to publish the Bundle ID to the PLC was mistakenly released without testing and did not work. This has been resolved.

Added methods to the MODBUS class that are used to determine when it is safe to delete marked Coil, Item and Order Memory records.

The Current Coil is now published via MODBUS to a PLC. Further Details are described in the MODBUS SPec.

The MODBUS code has a number of dynamic memory buffers that must be recreated on every power cycle. These memory buffers are used to only send fields when the data changes.

It was very easy to add a new buffer and forget to also add the code that forces a recreation. This has been resolved by placing all of the pointers into one memory structure. This memory structure gets cleared on a power cycle, which then causes all of the buffers to be created.

The MODBUS code reads the AMS ID and Version Level first to determine if the provided Configuration Register Address is correct. Assming the AMS ID is correct, it uses the Version Level to determine the size of the full configuration data structure and then reads it. The second read, reads the AMS ID and Version Level again.

If the first read was successful, the code assumes that the second read would also be successful and that the same AMS ID and Version level would be read the second time.

We have found that Allen Bradley PLC's that don't support MODBUS in a native way, may not respond properly on the second read. To detect this, we are now testing for communication failures on the second read. In addition, the AMS ID and Version Level between the first and second read are compared for equivelence. If they are not equivelent or there is a communication error, a descriptive error message is displayed.

The AMS ID and the Version Level of the first read are displayed int the PLC Diagnostic Screen.