XL2OL
4.95.0
10/23/2024

EtherCAT Supports two standard protocols for Servo Drives, SoE and CoE. SoE is, a Servo specific protocol. CoE supports Servos by using the CiA 402 standard for servos which defines a set of Object ID's and functionality.

Support was added for CoE servos but specifically only the Mitsubishi J5 series drives. Support for other manufactures will have to be enabled and tested on a case-by-case basis.

Some non-standard (Manufacturer Specific) Object Id's had to be used to support the drive.

For Scaling the drive, I would have liked to use the CiA standard object 0x6080 but Mitsubishi did not provide a way to set it in their parameters. I had to use 0x2108 instead, which maps to their PT08 Overspeed Alarm setting.

There is no standard way of enabling or disabling Absolute Encoder Evaluation. I had to use Object ID 0x2003, which maps to PA03.

There is a One-Note on the Mitsubishi J5 that describes everything else required to commission a drive.

To aid in the configuration and troubleshooting of a Zanasi Z4xx printer, the following changes were made.

The F2-Test Print function has been re-enabled, to make it easier to troubleshoot or verify RS232 communication between the 6370 and the printer.

The Printer Status screen will now repeatedly request the 6370 software version so that the TX count and the Err Count fields in the Printer Status screen can be used to verify RS485 communication between the XL and the 6370 board.

In the Windows Simulation, the '5' key on the keypad was not mapped to anything, so it did nothing. The key is now mapped to the '5' character and not affected by shift or caps lock.

There was a bug with the negative sign in number controls when all or part of a number was selected. The selected portion of the number was not being deleted.

This is the expected behavior when the negative sign key is used.

If a negative sign is part of the selected text, the selected text will be deleted and the negative sign preserved.

If the selected text contains a decimal point and removing the text would violate the data format of the number, the negative sign key will be ignored.

If a negative sign is not part of the selected text, the negative sign key will invert the polarity of the number. Provided the decimal point rul is not violated, the selected text will be deleted.

This interface is being added for Scottsdale but it is not limited in use to them.

It is available only on V5 controllers because it is only through the Ethernet Port.

The interface allows inputs to be turned on in parallel with the discrete inputs on the controller, similar to MODBUS inputs. It reports back the discrete outputs states and the OR'd state of the discrete and Remote Inputs.

It has a 1 second watch dog timer to ensure safety if there is a loss of communication on the Remote IO interface..

Full details on the interface and the Remote IO Protocol are documented in a One-Note page in the XL200 Notebook.

A customer requested a Vendor Code field that they could use for their own internal purposes. It is a 32bit unsigned integer value.

This value is displayed in the System Information Screen. It can be set with the UART ME command. It comes back from the controller as one of eight hidden setup parameters at the beginning of the setup chain. The format of the setup value is visible, set, and returned in hex format.

For PC Simuation purposes, the Vendor code can be set with a command line argument, if desired.

Prior to this change SERCOS and EtherCAT drives were allowed 100msec to indicate that they were under torque after being enabled. If the drive faulted and disabled itself, the same 100 msec timeout was used.

A customer recently had an issue with a drive where the 100msec was not enough time for the drive to report that it was under torque. Several changes were made.

  1. The time that a drive is allowed to report that it is under torque after being enabled has been increased to 1000msec.
  2. Once under torque, if torque is lost, the error will be detected and reported within 50msec.
  3. A feedback loop has been added to the enable request. The enable request will no longer wait for a fixed timeout. It will wait until the drive is under torque, or an error occurs, whichever comes first.
  4. The windows simulation was modified to be able to test all these new features.

A new option has been added to the Eclipse Diagnostic Screen. The option is labled "F4-Request Backup".

This option flags all record chains for needing backup. On the next status request, Eclipse will see the flags and respond by backing up each of the chains that have requested backup.

The Format String function, unlike many of our other OS string functions, was not treating a Null string ptr like an empty string. On the hardware this would result in a garbage string being displayed. On the PC Simulation, it results in an excepion. Niether is desirable.

This has been resolved by substituting an empty string..

Several changes have been made to UI edit controls and UE edit functions to handle Null strings as empty strings.

  1. The License Code setup needed modification.
  2. The AmsNumber Class needed modification
  3. Several string functions in the PEG Graphics library needed modification.

These issues did not general casue major problems on the Hardware. However, in the windows simulation, they cause exceptions.

When a new coil is loaded(using various methods), the new coil is created, given a name and then passed to a common function that checks to see if a pre-existing coil exists in the controllers coil inventory that uses the same name. If a pre-existing coil is found, the new coil is deleted and the pre-existing coil becomes the current coil. This function had a bug in its argument list. It had a pointer for the new coil rather than a pointer to a pointer. If the coil had been replaced, and the calling code used the pointer to the deleted coil, memory would be corrupted.

This bug was resolved by changing the argument list of the function to require a pointer to pointer so that the calling code would have its pointer modified when a pre-exiting coil was found.

By design, the Million Monkeys test causes a reset on every other memory test when running on the hardware. A reset on the PC simulation has no meaning. The code that was implementing this feature was causing the test to stop in the Windows Simulation. This has been resolved by conditionally removing the problem code from the simulation.

This task error occurs when certain bogus memory addresses are used. It only happens on the actual hardware, not in a PC simulation. On the PC simulation, an exception is generated and the simution will shutdown.

Some of these were generated by the User Interface edit controls if an edit resulted in any sort of modal window being displayed. The Modal window opens up a new, and recursive, message processing loop that has the possibility of deleting the edit window or supporting controls objects in memory. If there is more code to run, that uses anything in the object, this task error or memory corruption can result. Code in many of the edit controls that are susceptable to this was moved arround to minimize or eliminate the potential effects.

The main cause of these issues was due to refreshing (repopulating) the tree or grid controls in the main windows due to some asynchronous event like the setup lockout key or the coil tailout input when the Grid or Tree is in the background due to an error message or any other sort of prompt. The solution to this was to redraw the existing controls (setup lockout) or delay the refresh until the Main Window regains focus.

Refreshing is required when new elements are added or deleted that the grid needs to display.

Redrawing is acceptable when new elements have not been added or removed. We just want to update the appearance due to a value change or to indicate that an object is no longer editable like setups.

Redrawing can be an imperfect, but safe, alternative, until a Refresh can be done safely.