Skip to main content
Skip table of contents

OPC-UA Interface Guide (Meteor Inkjet)

Meteor Pane Plugin v4.10.6296.0, Copyright (c) 2024 Global Graphics Software. All rights reserved.

Overview

The Meteor Pane Plugin allows a user to obtain up-to-date information about the state of any attached Meteor hardware.

When the Open Platform Communications (OPC) server in Meteor Pane Plugin is enabled an OPC node tree is published.
The nodes in this tree represent grouped areas of state and functionality.

For example, a Server section allows:

  • the RIP Server name, location, and version.

  • the associated Meteor status data.

  • Product Detect signals to be sent.

  • ...and more.

Default address: opc.tcp://localhost:26642/spc-meteor

Meteor Router

For the OPC information to be up-to-date the plugin must communicate with a MeteorRouter process running on each Windows RIP Server machine.

If using Meteor on CentOS-based RIP Servers you must ensure the Meteor_Output_Plugin.json config templates set SPDHost to true.

Certificates

Communication between OPC UA clients and servers require both parties to possess their own application certificate. To enable further communication each party must trust the opposing certificate. This trust can be established automatically, programmatically or manually depending on the application's configuration or implementation.
The certificate for SPC can be found in %programdata%\\Global Graphics Software Ltd\\Meteor Pane Plugin\\App Certificates\\certs should you need to copy it to the Trusted Peer Certificate folder. In this release it will be a Self Signed Certificate issued by and for Smart Print Controller.

OPC Nodes

The OPC node mechanism will report when any state changes (at all server/controller/head levels), allowing clients to react accordingly. The period at which these state changes are detected is governed by the Servers.RefreshPeriod value, which can be modified at runtime.

The OPC client also has the option of polling values whenever it wishes. This allows for higher frequency updates but has a small time buffer applied,
preventing the case where requesting each property in a node tree would trigger a full Meteor status update.

Turning on Servers.EnableDebugLogging will allow closer monitoring of when state is refreshed and what values are being reported.

Caveat: Updates from SPC will be paused when it has been instructed to release the printer interface. In this state, SPC cannot interact with the Meteor API,
and no status updates will be provided until the interface has been reacquired. Clients relying on updates should ensure proper acquire/release handling.

OPC Methods

Any methods listed in this documentation will include details about their required parameters (if any), and return value.

In the event of an error please see the application log file for more information.

OPC Client Library

The following documentation provides guidance on using the Traeger Industry Components GmbH OPC client library for software developers working with Meteor Pane Plugin.

Configuring Custom Message Sizes

The default maximum message sizes used by OPC clients to communicate to the server are sufficient for most use cases. However, to ensure transfer of larger data packets (such as retrieving some job thumbnail images) it may be necessary to configure the OPC client with custom values.

For example:

CODE
	Client = new OpcClient();
	Client.Transport.MaxArrayLength = 1024 * 1024 * 50;
	Client.Transport.MaxBufferSize = 1024 * 1024 * 50;
	Client.Transport.MaxMessageSize = 1024 * 1024 * 50;
	Client.Transport.MaxStringLength = 1024 * 1024 * 50;

See here for more information.

Adjusting Communication Timeouts

OPC clients regularly verify the responsiveness of the connection to the OPC server. However, in certain circumstances where the system is under heavy load, maintaining a responsive connection might not always be possible. To mitigate potential issues under such conditions, it is recommended to increase the default communication timeouts.

The example below demonstrates how to adjust the default values:

CODE
	var defaultTimeOut = (int)TimeSpan.FromMinutes(10).TotalMilliseconds;
	Client = new OpcClient
	{
	    // Don't auto-disconnect - Dispose the client to explicitly disconnect.
	    DisconnectTimeout = int.MaxValue,
	    KeepAlive = { Interval = defaultTimeOut },
	    SessionTimeout = defaultTimeOut,
	    OperationTimeout = defaultTimeOut,
	    ReconnectTimeout = defaultTimeOut
	};

Please note that the provided examples serve as illustrations, and it's important to tailor the configuration to your specific requirements.

MeteorMonitorSet

The top-level set containing all available OPC nodes.

Immediately underneath this root-level node are a categorized collection of sub-nodes, each encapsulating a different area of behavior.

Section Name

Description

Plugin

State relating to the Meteor plugin.

Servers

State relating to the collection of registered RIP Servers.

Server1

State relating to a single RIP Server. (The numeric suffix will change as appropriate.)

Controllers

State relating to the collection of head controllers.

Controller1

State relating to a single head controller. (The numeric suffix will change as appropriate.)

Heads

State relating to the collection of print heads managed by the parent controller.

Head1

State relating to a single print head. (The numeric suffix will change as appropriate.)

Status

State relating to the Meteor status data of a single RIP Server.

Plugin

State relating to the Meteor plugin.

Properties

Name

Type

Writable

Description

VersionNumber

String

No

Describes the Meteor plugin version number.

Servers

State relating to the collection of registered RIP Servers.

Details

The OpcServers class provides state and methods for managing SPC's interaction with the Meteor API through OPC interfaces.
This includes acquiring and releasing printer interfaces, which are critical for ensuring proper system monitoring and operation.
NOTE The Meteor Monitor plugin will automatically acquire the Meteor printer interface when it is first launched
ReleasePrinterInterface()
Use this method to relinquish SPC's control over the Meteor printer interface, allowing an OPC client to make its own calls to the Meteor API directly.
NOTE When SPC has been instructed to release the printer interface, it will no longer interact with the Meteor API (e.g., updating status fields, controlling head power) until the interface is reacquired with a call to AcquirePrinterInterface().
AcquirePrinterInterface()
Use this method after a call to ReleasePrinterInterface().
This enables SPC to take back control of the Meteor printer interface, enabling it to monitor and manage the system, update status fields or controlling head power, etc.

Properties

Name

Type

Writable

Description

EnableDebugLogging

Boolean

Yes

When enabled the application will write Meteor structure content to the application log.

HeadEventCount

Int32

No

A counter incremented each time any Head state changes, allowing OPC clients to subscribe to a single 'change' event.

IsOpcEnabled

Boolean

No

IsRouterConnected

Boolean

No

Reports whether communication to the Meteor Router is active and succeeding.

PDHint

Boolean

No

A hint as to whether a Hardware Product Detect can be triggered.

RefreshPeriod

Double

Yes

The state refresh period (seconds).
NOTE Modification requires external control.

ServerCount

Int32

No

The number of defined RIP Servers.

Methods

Name

Returns

Description

AcquirePrinterInterfaces()

Boolean

Acquires the printer interface for SPC to monitor and manage the Meteor API. See above for more information.

ReleasePrinterInterfaces()

Boolean

Releases the printer interface, allowing OPC clients to interact directly with the Meteor API. See above for more information.

Server1

State relating to a single RIP Server. (The numeric suffix will change as appropriate.)

Properties

Name

Type

Writable

Description

IsConnected

Boolean

No

Whether the RIP Server is currently connected.

Name

String

No

Name of the RIP Server.

VersionNumber

String

No

Version of the RIP Server.

Methods

Name

Returns

Description

AbortTiffSubmission()

Boolean

Aborts via the Meteor Print Engine.

EndTiffSubmission()

Boolean

Ends the doc and job in the Meteor Print Engine.

ForcePD()

Boolean

Trigger a PD signal.

GetEEPROM(UInt64 printControllerNumber, UInt64 headControllerNumber)

String

Returns EEPROM data for a given print head.

GetPrintEngineError()

String

Returns the most recent print engine error.

SetCrossWebOffset(UInt64 planeNumber, UInt64 offset)

Boolean

Sets the cross web offset (in dots).
NOTE The print run must be active for this call to be effective.

SetHeadPower(Boolean power)

Boolean

Set the head power state.

SetParam(UInt64 printControllerNumber, UInt64 headNumber, UInt64 paramId, UInt64 value)

Boolean

Sets the state of one of the adjustment parameters for head position, head voltage, etc.

SetParamEx(UInt64 printControllerNumber, UInt64 headControllerNumber, UInt64 headNumber, UInt64 paramId, UInt64 value, UInt64 jettingAssemblyNumber)

Boolean

Extended API to set and store parameters.

SetParamExViaJson(String jsonPath, String serverName)

Boolean

Submits a compatible json file, which specifies a group of set param ex commands to send to Meteor.

SetSignal(UInt64 printControllerNumber, UInt64 headNumber, UInt64 requestId, UInt64 state)

Boolean

Sets the state of a defined signal (I/O, PSUs etc).

SetValuesViaJson(String jsonPath, String serverName)

Boolean

Submits a compatible json file, which specifies a group of signal, param or param_ex commands to send to Meteor.

SetValuesViaJsonString(String json, String serverName)

Boolean

Submits a compatible json string, which specifies a group of signal, param or param_ex commands to send to Meteor. NOTE: Do not send json containing newline characters.

StartTiffSubmission()

Boolean

Starts a job and FIFO doc in the Meteor Print Engine.

SubmitTiff(String path, UInt32 planeNumber, UInt32 screeningMode, UInt32 greyLevel, UInt32 xLeft, UInt32 yTop)

Boolean

Submits a single Tiff to the Meteor Print Engine.

UpdateXOffsets()

Boolean

Writes the head x-offsets to the PCC registers, allowing on-the-fly adjustment.

Controllers

State relating to the collection of head controllers.

Properties

Name

Type

Writable

Description

ControllerCount

Int32

No

The number of head controllers reported as connected.

Controller1

State relating to a single head controller. (The numeric suffix will change as appropriate.)

Properties

Name

Type

Writable

Description

ControllerNumber

UInt64

No

The ID of the controller.

Heads

State relating to the collection of print heads managed by the parent controller.

Properties

Name

Type

Writable

Description

HeadCount

Int32

No

The number of print heads.

Head1

State relating to a single print head. (The numeric suffix will change as appropriate.)

Properties

Name

Type

Writable

Description

DdramDwordsA

Int32

No

See Meteor SDK documentation.

DdramDwordsB

Int32

No

See Meteor SDK documentation.

HeadDwordsA

Int32

No

See Meteor SDK documentation.

HeadDwordsB

Int32

No

See Meteor SDK documentation.

HeadState

UInt32

No

See Meteor SDK documentation.

HeadTemperature

Int32[]

No

See Meteor SDK documentation.

Status

State relating to the Meteor status data of a single RIP Server.

Properties

Name

Type

Writable

Description

AbsoluteXCounter

Int32

No

Absolute X Counter

BufferLevel

UInt32

No

Buffer Level

DocsQueuedLane1

Int32

No

Docs Queued Lane 1

DocsQueuedLane2

Int32

No

Docs Queued Lane 2

EncoderCount

Int32

No

Encoder Count

FifoPathDocsSent

Int32

No

FIFO Path Docs Sent

MixedModePreloadDocsQueuedLane1

Int32

No

Mixed Mode Preload Docs Queued Lane 1

MixedModePreloadDocsQueuedLane2

Int32

No

Mixed Mode Preload Docs Queued Lane 2

PdCount

Int32

No

PD Count

PreloadPathDocsSent

Int32

No

Preload Path Docs Sent

PreloadPathTotalCopies

Int32

No

Preload Path Total Copies

PrintCount

Int32

No

Print Count

PrinterStatus

UInt32

No

Printer Status

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.