Remote API, which uses a serial cable or Ethernet, is a means of communication between a laser marking engine and a controller. The controller can be a CPU, a PLC, or any other device that is capable of relaying commands through the protocol illustrated in this article. Correct usage of the remote API command set gives users complete control over a laser marking system.
Image Credit: FARO Technologies Inc.
The advancement of Remote API was followed to program and regulate a laser marker using a series of commands. This is achieved regardless of whether a CPU is directly linked to the marking machine or not.
FARO Technologies Inc. offers a number of embedded marking controllers which can also be utilized when a CPU is not available. The company also offers WinLase software that runs on a CPU, which can be collectively managed with Remote API.
With the help of a serial cable or Ethernet, the functionality of the laser marking system can be remotely tracked and controlled from basic to advanced operations. The embedded controller from FARO Technologies can reduce the footprint and cost of a marking system, and therefore, a complete CPU does not have to be integrated into a laser marking machine. This set up can also reduce maintenance of the system in the absence of a desktop OS.
Why Use Remote API
Developers of laser marking systems can benefit from the Remote API as this gives them an edge over their competitors. The Remote API offers developers greater flexibility to design exactly the way they want their system controls to operate, thus allowing quick development of tailor-made and customized systems.
Custom software can be written using the Remote API. This software interfaces with numerous networked systems like databases that allow a dynamic and rugged marking system.
On the other hand, a PLC can also be used to regulate other systems, for example, automation while regulating a laser marker, simultaneously. Simple, unique, or complex user controls can regulate Remote API commands, and effectively display responses to offer system designers a complete control of the look and feel of their system.
Therefore, the adaptability and comprehensive command set of the Remote API allows system designers to go beyond the threshold of limitations of the box connected to a CPU, and create value by developing systems that focus on the requirements of customers.
Benefits of Using the Remote API
The main advantages of using the Remote API are listed below:
- Better flexibility of custom user interfaces
- A more embeddable marking engine
- Economical because CPU/PC with licensed software is not needed
A Marking Engine that is More Embeddable
Marking systems need a considerable amount of data at high speed. To meet this requirement, a CPU/PC is usually connected to dedicated hardware to convey to the scanning system and thus manage the laser. The use of an embedded controller avoids the power cost and space associated with the PC/CPU, and also decreases the footprint of the marking controller to exactly the size of the marking controller.
This allows a streamlined system to be built because the board is a component and not a PC/CPU, which may require careful and delicate handling — tracked for viruses, updates, and completely shut down before being turned off.
Increased Flexibility of Custom User Interfaces
System designers have the freedom to create their preferred hardware or software user interface and subsequently produce the required commands that run the laser marking system to complete a variety of tasks.
The command set is the same for RS232 (or RS485) as it is for TCP/IP. Therefore, once the users become familiar with the command set, they can use it over either transport to make changes on the UI without having to make any further changes to the marker interface.
Cost-Effective as PC/CPU with Licensed Software is Not Necessary
A laser marking system traditionally comes with custom software that enables users to produce and control the instructions sent by the software to their own controller. FARO has developed software that also performs this task, but with the Remote API, it is not needed. This aspect can decrease the cost of a system that otherwise may require a software license added to the price.
How it Works
ASCII encoded message-based communication is the protocol of the Remote API. All commands are controlled by the sender, and responses are concurrently sent back. The system is polling-based and a line feed removes all series of command and response. All the commands are numerical, and parameters are separated by commas, while the responses vary depending on the command.
Responses may include an ASCII numerical code, which denotes an API response code and can precede further response parameters separated by commas. Further response codes are simple strings composed of the value of the requested response.
Concurrent connections can be made to the marker, a characteristic that helps in tracking the system on a single connection while regulating it from another. Or, with smart orchestration, control can be surrendered between the connections in the case of challenging administration and use.
Certain commands need special mode access; this can be attributed to the nature of operating a laser marking system and the fact that several connections can also be made to the system. To achieve this, a “take control” command is issued. This command provides an effective result and the ensuing connection can make more sophisticated calls.
Types of Control
To facilitate the subsequent insertion of new commands, multiple groups of commands are available that have been separated numerically.
- Control commands — Range 0–99
- Object commands — Range 100–199
- Job commands — Range 200–299
- Administration commands — Range 500–599
The high-level marking system is controlled by control commands. Control commands include commands to take or release control of the system, to terminate a running system (for safety purposes), and to set configuration parameters like monitoring of safety conditions and system state, and laser and lens settings.
In addition, commands are available for directly managing peripherals like monitoring/toggling the GPIO, switching the laser on/off, and writing and reading the onboard serial ports to regulate serial-attached peripherals.
Object commands have an impact on objects that exist in the loaded marking job. Such commands help in acquiring and setting numeric values and strings, changing the way the object is marked, and also altering size and location. A few commands enable the removal and addition of objects and also aid in transforming (rotating/ distorting) them.
Job commands are meant for saving or loading jobs to flash storage or RAM. These commands also start executing either singly or continuously. The runtime behavior of jobs can be adjusted by setting the job commands to wait for an external IO bit. This string of commands helps manage the number of jobs that are “active” for marking and choosing between them. A set of applicable commands is also included in job attributes and the generation of new jobs.
Administration commands can be used to configure a system but these are not used extensively for this purpose compared to the control commands. This string of commands is more suitable for configuring the overall system and not for day-to-day functionality.
Commands comprise reading/setting the network settings, reading/setting the current time and date of the system, COM port settings, and giving a “nickname” to the device.
This basic example summarizes a case of tracking a running system. In other words, there are additional means of control. FARO Technologies offers embedded LEC products that have a stand-alone marking capability when choosing marking jobs, and the start/stop marking process using IO lines.
This simple example does not consider the initial phase of marking but demonstrates how to track the status over TCP/IP.
Assuming the device has an IP address of 10.10.10.5, the following “pseudo code” illustrates (OS independent) the steps that are associated with connecting to and tracking the marking engine.
Connect (IP=“10.10.10.5”, port=12500) // assume the connection is OK
Connection->Send(“209\n”) // send the “GetJobStatus” command
Result = Connection->Receive (until new line character in ASCII is found)
If Result = “JobIdle”
Then // There are no commands currently being executed
If Result = “Busy”
Then // The job engine is presently marking or active with commands
This information has been sourced, reviewed and adapted from materials provided by FARO Technologies Inc.
For more information on this source, please visit FARO Technologies Inc.