Property

Value

Sector

Factory-Floor Interfaces

Group

Field Devices

Connector

SIC Marking Laser (CCI)

Name

SIC


It is still under development, contact Tatsoft if you need this connector sooner.



Laser marking systems driven through the CCI ASCII interface

  • Name: SIC
  • Version: 1.0.0.0
  • Protocol: CCI (ASCII command/reply)
  • Interface: TCP/IP
  • Runtime: .NET Standard 2.0 (Multiplatform)
  • Configuration:
    • Devices / Channels / Nodes / Points


Overview

The SIC connector controls laser marking systems through its CCI ASCII interface. Every exchange is a single text command terminated by a line feed, answered by a single line: 1 for accepted, 0 for rejected, or the value itself for a read.

The connector covers the full marking workflow — loading and saving jobs, pen and laser parameters, entity geometry, text and barcode content, counters and date/time objects, hatching and wobble, and firing the mark — so a marking station can be built entirely from device points, with no scripting required to reach the laser.

A rejected command is an application-level answer, not a transport fault: an unknown entity name, a job path that does not exist, or a barcode setting that is invalid for the current symbology all return 0 while the connection stays healthy. Those surface as Bad quality on the point.

Communication Driver Information

Driver name

SIC

Assembly Name

T.ProtocolDriver.SIC

Assembly Version

1.0.0.0

Multiplatform

True

Devices supported

Laser marking systems controlled with the CCI ASCII interface enabled

Manufacturer

SIC Marking

Protocol

CCI (ASCII command/reply)

Interface

TCP/IP



Channel Configuration

Protocol Options

A single option, IsMarkingSource, selects which value answers the STS:IsMarking point.

Value

Meaning

Disabled

Default. The point is left unanswered.

ExecutionStatus

Use the execution status value as the marking state.

MarkResult

Use the mark result value as the marking state.

The default is Disabled because the interface's own marking-state query returns a command acknowledgement rather than the state. Select one of the other two only after validating it against the equipment.

TCP/IP Settings

The CCI interface listens on TCP port 350 by default. The connection is opened once and reused — the connector does not reconnect per command.


Node Configuration

Station Configuration

The station string is semicolon-separated: IP;Port

  • IP: address of the machine running the CCI interface. Use 127.0.0.1 when it runs on the same machine as the runtime.
  • Port: TCP port of the interface. Default 350. Additional lasers run on different ports.

For example, 127.0.0.1;350 for a local laser, or 127.0.0.1;351 for a second one.

The pen is not a station field. It is a point — see Required Points below.


Point Configuration

Address Format

Every address is exactly two tokens: Family:Item

  • Family: selects both the wire call and the value type — see Address Families below.
  • Item: a friendly name, or a raw numeric id.

The target entity and the target pen are not part of the address. They come from two required points whose values the connector applies to every entity-scoped and pen-scoped operation. One address therefore serves every entity in the job, and switching the target is a single write rather than a reconfiguration.

Required Points

Every node must configure these two. Without them the node acts on the whole job and on pen 1 for its entire lifetime.

Address

Access

Purpose

SEL:Entity

Read/Write

Name of the entity every entity-scoped point acts on. Write All (or an empty string) to target the whole job. Read it back to confirm what the connector adopted.

SEL:Pen

Read/Write

Pen every pen-scoped point acts on. 0 selects AUTO, which uses the pen the job itself assigned to the selected entity. 1255 pins a specific pen.

Write SEL:Entity before the points that depend on it, and not in the same scan. In a typical screen this happens naturally: the entity selector writes on change, and the action buttons write later.

Address Families

Family

Scope

Type

Access

Description

SEL

Connector

R / R+W

Selection state. Answered by the connector rather than by the laser.

DV

Global

Double

R+W

Global floating-point value.

LV

Global

Long

R+W

Global integer value.

SV

Global

String

R+W

Global string value.

ED

Entity

Double

R+W

Floating-point data on the selected entity.

EL

Entity

Long

R+W

Integer data on the selected entity.

ES

Entity

String

R+W

String data on the selected entity.

BIT

Varies

Boolean

R / R+W

One checkbox inside a flag word. The connector reads the word, changes the single bit and writes it back, so the neighbouring settings survive.

CALC

Varies

Varies

R / R+W

A value the connector derives from one or more reads. A derivation that cannot be completed reports Bad quality rather than a stale number.

CMD

W

An action. The point's value carries the argument.

STS

Integer

R

Connector status.

The same number means different things in different families — identifier 9 is one value as a global integer, another as global string, another as entity data. The family is what disambiguates it, which is why every address carries one.

Raw Identifier Addresses

On DV, LV, SV, ED, EL and ES, the Item may be a raw numeric identifier instead of a name — for example ED:71. This reaches identifiers that have no friendly name yet.

Unit conversion is keyed to the name, never to the identifier. DV:Frequency converts kHz to Hz; DV:6 does not. A raw address is passed through exactly as written.


Selection Points

Address

Type

Access

Description

SEL:Entity

String

R+W

Required. Target entity name; All means the whole job.

SEL:Pen

Integer

R+W

Required. Target pen; 0 = AUTO, 1255 = fixed.

SEL:EntityList

String

R

Every named entity in the job, semicolon-separated and prefixed with All. Feeds an entity selector.

SEL:EntityType

String

R

Type of the selected entity — see Entity Types below. Empty when the whole job is selected.

Entity Types

SEL:EntityType reports the object class, which is what decides which editing screens apply.

Value

Object

ScWinTextChars2D

Text

ScBarCode12Chars2D

Barcode, any symbology

ScSerialNumber2D

Counter or date/time

ScRectangle2D, ScEllipse2D, ScPolyLine2D, ScSpiral2D

Geometry

ScEntities2D

Group

ScMotionControl, ScExecutable

Control objects

(empty)

Whole job selected, or the name is not in the job

Two distinctions the type does not make. It does not separate DataMatrix from QR from 1D — read ES:BarcodeType for that. And a counter and a date/time object are the same class; BIT:IsDateTime is what tells them apart. Treat the list as non-exhaustive and compare case-insensitively.


Global Values

DV — Global Double

Items marked pen act on SEL:Pen.

Item

Unit

Scope

Description

LaserPower

W

pen

Laser power of the selected pen.

MarkSpeed

mm/s

pen

Marking speed.

JumpSpeed

mm/s

pen

Jump speed between marked segments.

Frequency

kHz

pen

Pulse frequency. The interface works in Hz; the connector converts.

MarkDelay

µs

pen

Delay after a marked segment.

JumpDelay

µs

pen

Delay after a jump.

LaserOnDelay

µs

pen

Delay before the beam switches on.

LaserOffDelay

µs

pen

Delay before the beam switches off.

PolygonDelay

µs

pen

Delay at a corner between segments.

WobbleFrequency

Hz

pen

Wobble frequency.

WobbleAmplitude

mm

pen

Wobble amplitude.

OverridePower

%

global

A global multiplier applied on top of the pen power. Not the pen power itself.

OpticOffsetX

mm

optic

Horizontal offset of the marking field.

OpticOffsetY

mm

optic

Vertical offset of the marking field.

OpticGainX

factor

optic

Horizontal scale correction. Dimensionless: 1.0 marks at nominal size.

OpticGainY

factor

optic

Vertical scale correction.

OpticRotation

degrees

optic

Rotation of the whole marking field, absolute.

Optic values are machine settings, not job contents. They apply to every job this head marks, they leave every entity untouched, and CMD:SaveJob does not persist them.

LV — Global Long

Item

Description

PointerMode

Mode of the guide pointer.

PenEnableFlags

Raw pen enable flag word. Pen-scoped. Use BIT:WobbleEnable to change it.

TransformAction

0 stores the transform baseline, 1 restores it, 2 restores with update.

TotalEntityNum

Entity count, all levels, including entities nested in groups.

ToplevelEntityNum

Entity count, top level only — a group counts once.

SV — Global String

Item

Description

JobImagePath

Writing a path captures an image of the job. CMD:SaveJobImage is the reliable form — a full-resolution capture needs the window visible, which that command handles.



Entity Data

All of these act on the entity named by SEL:Entity.

ED — Entity Double

Item

Unit

Description

FontSize

mm

Character height. Millimetres, not points. Ignored while a height limit is active.

TextLengthLimit

mm

Width the text is scaled to fit. CALC:EntityWidth is the preferred form.

TextHeightLimit

mm

Height the text is scaled to fit. CALC:EntityHeight is the preferred form.

TextGap

mm

Gap between a barcode and its human-readable text.

HatchDistance

mm

Distance between hatch lines. Valid range 0.00011000.

HatchAngle

degrees

Hatch line angle. The interface works in radians; the connector converts.

LineReduction

%

Line reduction applied to barcode modules.

CellSizeX

ratio

Horizontal cell fill ratio, 01. Honoured only while BIT:CellMode is on.

CellSizeY

ratio

Vertical cell fill ratio.

QuietZoneX

ratio or mm

Horizontal quiet zone. A scale factor by default; millimetres once BIT:Invert has set the absolute flag.

QuietZoneY

ratio or mm

Vertical quiet zone. Follows X unless the absolute flag is set.

RotationRelative

degrees

Rotates the entity by this amount. Accumulates on repeated writes — use CALC:EntityRotation for an absolute angle.

RotationAbsolute

degrees

Absolute angle. Not implemented on every build; CALC:EntityRotation handles the fallback.

EL — Entity Long

Item

Description

HatchStyle

0 off, 1 wavy, 2 horizontal L→R, 3 horizontal R→L, 4 rotational, 5 wavy with jumps, 6 zigzag. Prefer CMD:ApplyHatch.

Passes

Mark loop count.

TextCharFlags

Raw text checkbox word. Use the BIT:TextLimit* points to change it.

EntityPen

Pen the job assigned to this entity, 1255. This is what SEL:Pen = 0 reads.

HumanReadable

Human-readable text on or off.

BarcodeEcc

QR error correction: 0 = L, 1 = M, 2 = Q, 3 = H. DataMatrix is fixed and ignores it.

BarcodeFlags

General barcode flag word.

BarcodeLimitFlags

0x1 limit length, 0x2 limit height, 0x4 keep aspect.

DmSymbolMode

DataMatrix symbol-mode word.

DmSymbolSize

Raw zero-based symbol-size index. CALC:SymbolSize is the readable form.

QrCodeExVersion

QR version — the QR counterpart of the DataMatrix symbol size.

SerialStart

Counter start value. Takes effect only after a reset.

SerialStep

Counter increment.

SerialCurrent

Raw current counter value. See the caveat on CALC:SerialCurrent.

SerialBeatCount

Advance the counter only every N marks.

SerialResetCount

Auto-reset after N. 0 never resets.

SerialModeFlags

Raw mode word: text 0x1, barcode 0x2, file 0x4, date/time 0x8, custom format 0x10.

ES — Entity String

Item

Description

Content

The string a text object marks, or the payload a barcode encodes. Reads back as well as writes. On a counter or date/time object this is regenerated from the format at the next mark — change the format instead.

BarcodeType

Symbology, e.g. DataMatrixEx, QR Code Ex, Code-128, EAN-13, Code-39. Set it first — it decides which other barcode settings are valid.

BarcodeFormat

Format descriptor, e.g. 2,2,2,2.

SerialFormat

Counter format string, e.g. LOT-%06.0f-A. The conversion must be f; an integer specifier is rejected. Shared with the date/time pattern.

SerialAsciiFile

Path to a serial source file. The file must already exist. Requires BIT:SerialFromFile.



Bit Points

Each of these is one checkbox inside a flag word that also carries unrelated settings. The connector reads the word, changes the single bit and writes it back, so nothing else is disturbed.

Item

Access

Description

WobbleEnable

R+W

Wobble on or off for the selected pen. The wobble shape is configured per pen in the laser software and is not reachable over the interface.

Invert

R+W

Barcode invert. Also switches the quiet zone to absolute millimetres and releases the vertical axis, because the two settings travel together.

CellMode

R+W

Cell mode, required for flash operation. Set it before the cell size.

DmAutoSize

R+W

DataMatrix automatic symbol size.

DmRectangle

R+W

DataMatrix rectangular sizes. Switches the symbol-size list to the rectangular set.

TextLimitLength

R+W

Force the text to a fixed width.

TextLimitHeight

R+W

Force the text to a fixed height.

TextLimitAspect

R+W

Keep the aspect ratio while forcing a limit.

SerialCustomFormat

R+W

Use the custom format string. This is the only route to zero-padding — turning it off disables prefix, suffix and padding together.

SerialFromFile

R+W

Take the serial from a file. Mutually exclusive with the custom format.

IsDateTime

R

Whether the selected object is a date/time rather than a counter. Read-only: it reports what the object is. This is the only reliable way to tell the two apart.



Derived Points

These present a value the interface does not expose directly. Each costs several exchanges, so they belong on a moderate scan rate rather than the fastest one.

Item

Type

Access

Description

MarkWidth

Real

R+W

Width of the whole mark in mm. Reading returns the job's extent scaled by the optic gain; writing derives the gain from the wanted size, so no entity is modified and read-then-write changes nothing.

MarkHeight

Real

R+W

Height of the whole mark in mm, by the same mechanism.

EntityCenterX

Real

R

Horizontal centre of the selected entity in mm, derived from its bounding box.

EntityCenterY

Real

R

Vertical centre in mm. Write both axes together with CMD:ApplyEntityPosition.

EntityWidth

Real

R+W

Entity width in mm. Reading prefers the configured size limit and falls back to the bounding box when there is none. Writing sets the limit and its checkbox together.

EntityHeight

Real

R+W

Entity height in mm, by the same rule. A non-zero height overrides ED:FontSize.

EntityRotation

Real

R+W

Entity angle in degrees, absolute, counterclockwise positive. Writing reads the current angle and sends the difference, so writing the same value twice does not rotate twice.

SerialPrefix

String

R

Text before the counter digits, extracted from the format string.

SerialSuffix

String

R

Text after the counter digits.

SerialMinDigits

Integer

R

Zero-padding width. Prefix, suffix and padding have no identifiers of their own — they exist only inside the format string. Write all three with CMD:ApplyCounter.

SerialCurrent

Integer

R

Current counter value, recovered from the rendered content. The direct value has been observed reporting 0 for a counter that was not at zero, and a read carries no status to distinguish the two.

DateTimeFormat

String

R+W

Date/time pattern in readable form, e.g. DD/MM/YYYY — the connector converts to and from the internal representation. Refuses a counter object in both directions, because they share the same format field.

SymbolSize

String

R+W

DataMatrix symbol size as text, e.g. 20x20 or Auto. Square sizes only; with rectangular sizes selected the read reports Bad quality rather than a wrong size.

HatchOnOff

Integer

R

Whether hatching is active. Turn it on and off with CMD:ApplyHatch.



Commands

A command point is written, not polled. Where a command takes an argument, it is the point's own value.

Marking and Job Control

Item

Value

Description

Mark

Marks the whole job. Returns immediately without blocking; poll STS:IsMarking for completion.

MarkSelected

Marks only the selected entity. Refused when the whole job is selected.

StopMarking

Aborts the current mark.

LoadJob

File path

Loads a job. Marking and the pointer are stopped first, then a clean transform baseline is stored.

SaveJob

Saves over the job currently open, carrying both entity and pen changes.

SaveJobImage

File path

Captures an image of the job. Reports the result of the capture itself.

RenameEntity

New name

Renames the selected entity and re-points the selection at the new name.

PointerStart

Starts the guide pointer.

PointerStop

Stops the guide pointer.

ShowApp

Shows the laser software window.

HideApp

Hides the window. The interface keeps working.

TransformStore

Stores the current transform of every entity so it can be restored later.

TransformRestore

Restores the stored transforms.

Applied Settings

These write several values in a fixed order. They exist as single commands precisely because the order matters — separate points give no ordering guarantee.

Item

Value format

Example

Description

ApplyMarkSize

width,height

50,63.5

Whole-mark size in mm, both axes in one exchange so the mark is never left scaled on one axis only.

ApplyEntityPosition

x,y

12.5,-4

Absolute centre in mm. With one entity selected it moves that entity; with the whole job selected it translates the job as a single block.

ApplyHatch

on,distance,angle

1,0.05,45

Distance and angle are written before the style. Enabling hatching while the stored distance is invalid produces a dialog on the equipment, so the range is checked before anything is sent.

ApplyTextLimits

width,height

20,6

Size limits in mm, written before the checkboxes that activate them. 0 means no limit on that axis.

ApplyCounter

start,minDigits,prefix,suffix

1,6,LOT-,-A

Sets the counter and resets it so the new values take effect. The reset is job-wide. Refuses a date/time object.

ApplyBarcode

key=value;key=value

sym=DataMatrixEx;cell=0.8;invert=1;size=20x20;content=ABC123;rot=90

Applies barcode settings in the required order. Keys not present are left alone. See below.

ApplyBarcode keys

Recognised keys, listed in the order they are applied: sym, cellmode, invert, cell, qz, lr, size, ecc, content, hr, gap, font, w, h, rot.

The order is not arbitrary. The symbology decides which other settings are valid, so it goes first. The cell mode must precede the cell size. The content goes late so the symbol is encoded against the final constraints. The rotation goes last, because any step that changes the symbol rebuilds its geometry and would discard an angle set earlier. The quiet zone is written only when invert=1, since it has no effect otherwise.

Counters

Item

Description

ResetSerial

Restarts every counter in the job, not only the selected one.

IncSerial

Increments every counter in the job.

DecSerial

Decrements every counter in the job.

Flash Memory

Job storage on the controller card, for standalone operation. Slots are addressed by number. Flash access is slow relative to the other commands.

Item

Value

Description

FlashStoreCurrent

Slot number

Current job to a flash slot. The job must already be saved on disk.

FlashLoadToSICAdvanced

Slot number

Flash slot back into the laser software. Card settings are not restored.

FlashStoreFile

path,slot

A file on disk to a flash slot.

FlashSaveToFile

path,slot

A flash slot out to a file on disk.



Status Points

Item

Description

Connected

Reads 1 while the interface answers. A lost connection appears as Bad quality on the point, not as a 0 — gate logic on the quality, not on the value.

IsMarking

Marking state. Requires the IsMarkingSource protocol option, which is Disabled by default.



Notes and Limitations

One point, one exchange

The interface is strictly one command and one reply, so points are never grouped into blocks. A DV, LV, SV, ED, EL or ES point is a single exchange; a BIT or CALC point is several; SEL:EntityList and SEL:EntityType cost one exchange per entity in the job. Set scan rates accordingly — the enumeration points in particular belong on demand rather than on a cyclic scan.

Selection ordering

Write SEL:Entity before the points that depend on it. Points are sorted so the selection is sent ahead of the rest within a batch, but that is a mitigation and not a guarantee: nothing forces both writes into the same batch. Driving the selection from an operator action, and the operations from a separate one, avoids the question entirely.

Changes live in memory until saved

Everything written to entity and pen values changes only the job held in memory. CMD:SaveJob writes it to disk. The optic values are the exception in the other direction — they are machine settings and CMD:SaveJob does not persist them.

Read-only by nature

Some values can be written but never read back, so the connector derives the readable form instead: barcode width and height, the counter's prefix and suffix, and the symbol size are all reported through CALC points rather than the raw identifiers.

Not covered

The wobble shape, the date/time offset value, and the interface language are configured in the laser software and have no command in this interface.


Driver Revision History

SIC Revision History
VersionNotes
1.0.0.0Initial release. Job load and save, pen and laser parameters, optic transform, entity geometry, text and barcode content, counters and date/time objects, hatching and wobble, flash job storage. Entity and pen are selected through the SEL:Entity and SEL:Pen points.



In this section...