XL220OL
4.70.0
9/30/2020

To facilitate printer driver protocol testing the windows simulation is able to communicate to a printer simulation through the Loopback address on a hardcoded tcp/ip port.

This change allows the IP address and the port to be specified so that an actual printer on the network can be used as well.

The command argument format for the printer IP address, using the loop back address as an example is: pip127.0.0.1

The command argument format for the printer port number, using 4567 as the example port is: ppor4567

both arguments are case sensitive.

In 2016 we added logo printing to the 1510 printer for Rondo, based on the latest ESI printer protocol spec, because we have no printers to test with. Now in 2020 when they try to use it, it does not work.

We have discovered today, the latest ESI protocol document from VideoJet has an error in it. Yet somehow we got it correct when logo printing was added for the 1520 printer.

The [1B][84][38] command required an 8 character file name. It had to be 8 characters. This is the command we were attempting to use but the latest ESI protocol document actually documents the [1B][84][43] command, which has an argument to specify the file name length. Instead of adding the [1B][84][43] command, someone edited the [1B][84][38] command in the document instead.

Both the 1510 and 1520 drivers are now using the correct [1B][84][43] command.

The VideoJet driver, in its extended mode, uses row and column numbers to locate field data within the print message format.

The XL print driver allowed for 3 rows and 4 columns but the Eclipse driver allows 4 row values 0-3 and 5 column values 0-4.

The XL protects its array bounds by converting any index with a range error to 1.

Rondo was trying to use 5 columns. Since a bug with logo printing in SCN 4304 is also being fixed, an additional column is also being added in the same release. To avoid having to change and release Eclipse as well to allow them to use the 5th column, the XL driver will now stop converting column 0 to column 1. This effectively changes the column index field from a 1 based index to a zero based index.

The AMS Generic and the other Matthews drivers like the ViaJet and PM5100 already had the ability to connect to an MPERIA windows simulation via a Tcp/Ip Ethernet socket. They could also connect to an actual printer by specifying the printers IP Address and Port using command line arguments.

This change allows the PC simulation to connect to any printer, including bundle ticket printers, that support Ethernet Tcp/Ip socket connections.

New command line arguments have been defined that allow the IP address and Port for the bundle ticket printer be specified.

The command argument format for the bundle printer IP address, using the loop back address as an example is: bip127.0.0.1

The command argument format for the bundle printer port number, using 4567 as the example port is: bpor4567

Enabled Ansynchronous Printing with the AMS Generic Print driver.

When displaying the Asynchronous Print Buffer, the buffer text box was covering the OK button. The solution was to resize the window to allow all of the controls to be displayed correctly.

When using Asynchronous printing, the controller attempts to treat the line as Shear-Only Line if there is only one other press and there are no gags. It does this by clearing the Part Queue on every halt. It also replaces the last part in the Print Queue when entering run. This allows the operator to set next and have it take effect immediately. However there were some holes in the logic that caused the print queue to get out of sync.

  1. If the last part in the print queue had already been triggered by the sensor but not yet been cut off, entering the run mode queued another message for the part in progress.

  2. Halting and restarting with more than one part in the print queue.

Both scenarios resulted in an extra part in the print queue. Eventually, with enough run cycles the print queue would fill up.

The logic for this was incorrect and was spread out over the code. The existing implementation was removed and replaced with a simpler one.

If the controller is operating in the simulated shear only mode:

  1. When initializing the Part Queue, if there are messages in the Print Queue, replace the last Print Queue added with the first part in the Part Queue.
  2. When initializing the Part Queue, if the printer sensor is blocked, the first part has already been printed on so don't add the first part in the Part Queue to the Print Queue.

The Error messages that Eclipse has Setups or Tools Locked are normal under some conditions. For Example, Setups cannot be modified while Eclipse is uploading or updating setups. The same goes for Tools or any of the record chains in memory.

However, MODBUS, when the PLC Remote Setup or Tool Configuration Selection features are enabled was causing this condition to be much more likely. The MODBUS code was reading the current configuration ID's from the PLC and should have been looking for a change before making a selection. Since it did not look for a change, every manual shear(for example) would cause the Setup and or Tool Configuration to be re-selected. If an operator tried to clear the queue with two manual shears in a row, depending on how quick Eclipse was, Setups and or Tools may have been locked and the operator would get a message indicating such on the second shear attempt.

This has now been resolved by only attempting to update the Setups and Tools when the PLC has actually changed its selection to be different from the current Setup or Tool configuration.

Historically all print drivers have been developed and tested with one RS232 baud rate. This baud rate is configured in the x370 by the driver when the x370 is identified.

The AMS Generic print driver will be used by numerous printers as printer manufacturers develop plugins or inserts to allow their printers to more easily integrate or simulate other printers.

ReaJet has developed an integration. Rather than force them to use the default rate that the AMS generic print driver selects, 57600, a new setup has been added. The parameter is currently available only when the AMS Generic Driver is selected. All other drivers will continue to use their defaults for now.

The new setups are called "Part RS232 Baud Rate" and "Bundle RS232 Baud Rate"

The selection options are 9600, 14400, 28800, 38400, 57600 and 115200.

If Eclipse does not set the Height and Width multiplier or if it sends a zero, the Height and Width multipliers will be defaulted to 1.

All communication was modified to allow the printer 500msec to respond.

The 6370 was not responding to a protocol version request from the printer due to an unneeded carriage return in the command string interfering with the 6370 command communication.

The Ams Generic interface version command was modified to allow the response of "1" to be equivalent to "1.00". The printer is no longer required to send the ".00" part of the version number.

If Eclipse does not send the point size, the point size will default to 14 as the spec says.

The Clear Print Queue and Check Status commands were waiting for too many characters.

Two issues were found that prevented the Image printer from communicating. The Image printer requires the binary communication commands with the 6370. Neither issue was in the driver itself but in the common communication code that passes binary data to and from the 6370 board.

  1. Single character commands would not be sent to the printer. There was a bug with a single character string that resulted in the command not being sent. This was intrroduced in the restructuring done in SCN 4139.

  2. For binary communication the code did not wait long enough for the response when using the new protocol introduced in SCN 4138.

The VideoJet Driver uses the Height Multiplier field in an unconventional way. It is used as a modifier to the selected Font to select Single, Double or Triple line depending on the selected Font. Typically a multiplier should be 1 or higher. In the case of the VideoJet driver a Height of zero has meaning so changing a zero to a one is undesirable. However, this is what SCN 4338 did in the base driver code.

This was fixed by adding a virtual method to allow the VideoJet Driver to override the standard default of one with a zero.

If a press punches too close together it can damage press tooling and it is inefficient time wise. Sometimes customers program patterns with overlapping punches that span the trailing edge of one part and the leading edge of the next part so that the first and last parts will both get all of their holes. We detect the redundant press hits in the middle and remove the duplicates. Press hits, with gags are OR'd together to become one press hit with the gags of both operations.

SCN 2585 changed the threshold of +- one encoder count to be equal to the part tolerance. However, this can result in holes that can be as much as two times the tolerance out of spec. In addition, the change was made for one customer for a problem we were unable to duplicate.

We have added a new setup called "Punch Combination Tolerance". This provides independent control over how close targets can be before they are OR'd together.

For now it will be available on controllers that are configured with Gags. When unavailable the tolerance will be the equivalent distance of 1 encoder count, which reverts it back to the original tolerance prior to SCN 2585.

A setup was created in a theorized attempt to improve tolerance. After a move, rather than test to see if other presses are within tolerance, this new setup would allow each press to do its own move.

The Setup is called Punch Tolerance mode and has two settings, Individual and Parallel. The intent is that Independent will force each press to do its own move to get as close to its target as possible. Parallel is the legacy operation where a press will test to see if it is within tolerance and will not attempt to move.

When beginning to implement the actual run logic of the setup it became apparent that it was a larger job than it sounds like on the surface. It will require a lot of changes and an approach similar to the one 5226 motion controller uses where a 75% threshold within the tolerance is used to decide if the press needs to attempt its own move. It is a little more complicated because not all lines are able to back up like the folding machine axes the 5226 deals with.

For now, until/if we decide to revisit this, the setup will be hidden and will have no effect.