5.86.0
8/9/2022
This change actually impacts all software models due to a design change in how the software determines if it is safe to move material and at what speed.
A poorly documented design choice was making it very difficult get the Two Speed operation on the XL244CL Standard Die to work properly when combined with a two speed Open Loop stopping press.
A global variable that appears to have been added for the closed loop Delay After Shear operation was being used in an attempt to remember what speed to return to after the delay. Otherwise, all presses had the ability to vote on what speed to move at and they all have to agree on the fastest speed, Fast, Slow or Stopped. The Run code was trying to pretend to be the Shear press using the global variable.
This has been modified to give the Run code its own equal vote in what speed the material is able to move at so that it is more clear, separated and no longer prone to race conditions associated with the use of the global variable.
Moved bit manipulation and testing of various bit fields into methods of the Move Structure.
This is has been very rare. On power-up the 5387 board occasionally seems to report a large number of encoder counts, usually negative. The number of counts is far larger than anything that could physically occur on a machine. This is has been very rare. On power-up the 5387 board occasionally seems to report a large number of encoder counts, usually negative. The number of counts is far larger than anything that could physically occur on a machine.
Since we have a large number of 5387 boards in the field that would be very difficult to update, this change attempts to detect the problem and ignore the erroneous counts if and when they occur. Prior attempts to read the encoder several times on power-up to throw away any encoder counts occurring during power up have failed, leading us to believe the timing of the issues is complicated. For this reason we are adding a test that we expect will capture and correct the issue no matter when it occurs.
If the number of counts (positive or negative) exceeds 10,000 on a single read the encoder counts are discarded. This number, despite the appearance of being a nice round number pulled out of the air, was actually calculated using the following rational. A maximum material rate of 2000fpm using the smallest allowable resolution of 0.00004" and an encoder sample rate of 1msec results in a maximum number of counts per 1msec of 10,000 counts.
The Tab order of objects in windows on the XL screen is determined by the reverse order of when they are added to the window. The last object added receives focus and the object added just prior to that will be the next object to receive focus.
Combo Boxes failed to adhere to that rule, which messed up the tab order of some windows that selectively display combo boxes instead of integer prompts. The reason being that the combo box is built with a Window control and Window controls by default don't adhere to the same tab order rules. This was rectified in the Combo Box control.
This change prevents the No Selection entry of a combo box from being saved in the Scrap Code, Delay Code, Employee Code, Setup Library or Tool Library selection process. The windows containing these fields were modified to prevent the user from Selecting OK with a no Selection entry active. The OK button will display an Error Message with relevant instructions on what is required before OK is a valid option.
The Combo Box displays a list or text strings. If the current selection (integer value) is not in the list, the Comb Box displays "No Selection". The combo box allows for an integer entry if the user knows the code they want to select from the list and doesn’t want to scroll through it in entirety. It is expected that the user will select an entry or enter valid code from the list.
There was a bug when entering an integer value. The Combo box would delete itself and replace itself with an integer prompt. This potentially left a window with a pointer to an object that no longer existed(Dangling Pointer). Use of this pointer could result in memory corruption. Also, if they selected an invalid number, the list was no longer available for them to reference to find an entry.
Rather than delete itself the combo box is removed( not deleted) and replaced with the integer prompt. If the user enters a value that is not in the list, the integer prompt is deleted (no one has a pointer to it) and the Combo Box, with the list, is added back into the window.
In most cases an Enter key is required to validate and save data entered in an open edit window. However Dialog windows have additional code that detects when the OK button is selected to validate and save the data.
This change adds the same capability for the Right Explorer windows that have a data entry window rather than the traditional Grid. Examples of this would be the Setup and Tool Library selection windows in the Setup screen.
If the part printing option is enabled the printer press will not prevent a Manual Shear in Run Mode, provided no print driver is selected.
In Hole Correction mode the shear targets must stay in sync with the holes on the material and the Hole Queue. These requirements are incompatible with a Manual Shear in the Run Mode.
The DATA segment has outgrown the size allotted for it. The Heap Memory segment was moved from 2D000 to 2E000 to make room for it.