XL2CL
3.77.0
11/16/2016
SCN: 3038 — XL2CL; Return Rotational Dies to Start Position after a Manual Shear or Punch

Rotational Dies Find their Home Switch whenever whenever a Manual Shear or Manual Punch is executed. Prior to this change, during a Manual Shear, the die would return to the Start Position after finding the home switch. During a Manual Punch, the die stays at the home switch location. This inconsistency causes operators confusion.

SCN: 3039 — XL2; AmsGeneric MPERIA Plugin Rotation enhancement

The MPERIA plugin script is able to be configured with multiple print streams that can additionally be configured to print on one or more print heads.

A stream is what we have called a print message in the past.

If the same stream is supposed to print on both sides of a part, it may have assembly marks and text to indicate where other parts line up to the part being produced. In order for the text an and assembly marks to be legible, each text string must be individually rotated 180 degrees to that the string is still readable.

For Example, if a | image is placed on the part to indicate a location on the part it may have some text like "ABC" that indicates which other part is supposed to join at the | image location. On one side of the part the A must be printed first to be readable. On the other side the C must be printed first to be readable.

The script has been modified to internally and optionally rotate all print objects within one print stream for only one of multiple heads.

SCN: 3044 — XL2; Re-Enable Floating Point Divide by Zero Task Error

The XL operating system contains the floating point divide function. Within the floating point divide function, for an unexplained reason, someone removed(commented out) the divide by zero error. Instead of being informed of the divide by zero attempt, the code returned the largest possible Fp value. This is bad practice and just delays and possibly amplifies the damage that the divide by zero can cause.

The test has been re-enabled.

Subsequent testing of code written around the same time revealed some divide by zero errors. This change must be released in conjunction with some other changes to the XL2 application.

SCN: 3045 — XL2CL; Task Error C000000 Divide By Zero error on the RE and MRE with Task32 v1.52

The XL200CL-RE and XL200-MRE2 power up with a divide by zero task error. Fixing the error required changing the order of some calculations when anything affecting the resolution is modified.

SCN: 3049 — XL2; Enable Shape based pattern programming on other XL200 models

Shape programming is enabled on all Open and Closed Loop XL200 controllers with the exception of the KMF machine and the XL220 HVAC controller.

To preserve legacy user experience a new setup called Enable Shape Programming has been added to Operator Preferences. It has two options, Yes and No. When set to Yes the Shape programming menus and screens are enabled. For SGF controllers, their legacy experience involves Shape Programming so for them the setup defaults to Yes. For all other customers their Legacy experience does not include Shape programming so for them the setup defaults to No.

SCN: 3058 — XL2CL; 000F0001 task error followed by 800004FF on Tube Mill

A 000F0001 task error occurs if the input task is not allowed to run at least one every 100msec. This is a safety concern and the input task Watch-Dog timer generates a task error to shut the system down.

A 800004FF task errror is similar in that every task must be able to run at least once every 30 seconds. It is not as much of a safety concern because the high priority task that controll the machine are running but it indicates an infinite loop in the code somewhere and the system shuts down.

The tube mill has a scrap sensor input that is used to keep track of improperly welded sections of tube that need to be cut out and discarded. The scrap sensor is able to keep track of up to 100 sections of bad tube simultanously internally in its scrap queue ring buffer.

After a part is cut, the scrap queue has code that manages which sections of bad weld have been cut out. Once 100 sections of bad weld had been detected, this code had a bug in it that caused one of the indexes for the ring buffer to become corrupted and out of range. This resulted in an infinite loop. When running, the infinite loop was running in the Shear Task which is higher priority than the input task. The input task was not allowed to run and the input task Watch-Dog timer shut the system down.

During powerup, the same code executes but it executes prior to the input task starting. In this case the infinite loop code causes the 800004FF task error.

The bug was fixed and the Scrap Queue was tested throughout the 100 section range.