Nexeed

Line Control

    • Introduction
    • User manual
      • Basic operation
      • Part data
      • Route lists
        • Overview: Overview tab
        • Overview: Processes tab
        • Overview: Facilities tab
      • Import configuration files
      • Block Migration Tool
    • Developer documentation
      • How-to
        • Use AssemblyLine Service API
    • API documentation
      • Assembly Line HTTP API
      • Line Control HTTP API
    • Glossary
Line Control
  • Industrial Application System
  • Core Services
    • Block Management
    • Deviation Processor
    • ID Builder
    • Multitenant Access Control
    • Notification Service
    • Reporting Management
    • Ticket Management
    • Web Portal
  • Shopfloor Management
    • Andon Live
    • Global Production Overview
    • KPI Reporting
    • Operational Routines
    • Shift Book
    • Shopfloor Management Administration
  • Product & Quality
    • Product Setup Management
    • Part Traceability
    • Process Quality
    • Setup Specs
  • Execution
    • Line Control
    • Material Management
    • Order Management
    • Packaging Control
    • Rework Control
  • Intralogistics
    • AGV Control Center
    • Stock Management
    • Transport Management
  • Machine & Equipment
    • Condition Monitoring
    • Device Portal
    • Maintenance Management
    • Tool Management
  • Enterprise & Shopfloor Integration
    • Archiving Bridge
    • Data Publisher
    • Direct Data Link
    • Engineering UI
    • ERP Connectivity
    • Gateway
    • Information Router
    • Master Data Management
    • Orchestrator
Nexeed Learning Portal
  • Line Control
  • Developer documentation
  • How-to
  • Use AssemblyLine Service API
✎

How to use the Assembly Line API

The intention of the Assembly Line Service is to serve the interface for assembly/production lines. Production Stations of an assembly line can create, retrieve, update and delete part data as well as freely definable additional data. Production Stations can also get information about whether the station (or production process) is the next proper process to be executed at the part.

CreateVmdt

Description

The CreateVmdt command is normally used by the first process in an assembly line which has the work part in place. The command creates a dataset in the Line Control Database for the work part.
The command will do two things:

  1. Create the new dataset(s) for the part(s)

  2. Implicit calls SetNextStation Because of this, the command should be called after the process has been executed.
    If a dataset already exists for a given identifier, the command fails and the error number 18661 will be returned to the station. In this case the dataset must be deleted first to be able to create the dataset for that identifier.
    If a group must be created, H.Count must contain the number of group members. The single group members must be specified inside the D.SubPart array. The index of the array must start with '0'.
    Normally Line Control does not allow calling CreateVmdt for work parts which are already created inside the Line Control database. In this case the second call will return an error code 18663 ("The dataset already exists"). You can change this behavior by setting the configuration parameter overwriteProtection to false. This will first check if the dataset that should be created already exists in the database. If so, the dataset will be deleted and then the dataset will be recreated with the new values. If the dataset is a group this check will be done for the group itself and for all sub parts the group contains. Because this check is done on every call of CreateVmdt, there will be a performance penalty of deactivating the overwrite protection. Thus, you should leave it on unless you have reasons that outweighing the penalty of performance decrease.

Telegram Examples

//create a single work part
#1{"Order",8,"CreateVmdt";"Id",3,19;"H.Identifier",8,"Test_004";"H.TargetIdx",3,1;"H.Result",3,0;"H.NioBits",3,8;"H.Plant",3,39;"H.LineNo",3,1213;"H.StatNo",3,10;"H.StatIdx",3,1;"H.FuNo",3,1;"H.WorkPos",3,1;"H.TypeNo",8,"1111111111";"H.TypeVar",8,"0815";"H.Charge",8,"";"H.WorkingCode",3,123;"H.PartState",3,1;"H.RouteList",8,"SampleRouteList";"H.ResFileName",8,"";"H.VmdtDataBlockSize",3,200;"H.SetAddData",3,0;}

//create a group part (with subparts)
#1{"Order",8,"CreateVmdt";"Id",3,1;"H.Identifier",8,"Test_058_G";"H.ProcessNo",3,900;"H.RouteList",8,"TDP_3";"H.Result",3,1;"H.NioBits",3,0;"H.Plant",3,39;"H.LineNo",3,1213;"H.TypeNo",8,"1111111111";"H.TypeVar",8,"";"H.Charge",8,"";"H.WorkingCode",3,0;"H.ResFileName",8,"";"H.VmdtDataBlockSize",3,0;"H.SetAddData",3,0;"H.IsMaster",3,1;"H.Count",3,4;"D.SubPart[0].Identifier",8,"Test_058_P1";"D.SubPart[0].Pos",3,1;"D.SubPart[0].Result",3,1;"D.SubPart[0].NioBits",3,0;"D.SubPart[1].Identifier",8,"Test_058_P2";"D.SubPart[1].Pos",3,2;"D.SubPart[1].Result",3,1;"D.SubPart[1].NioBits",3,0;"D.SubPart[2].Identifier",8,"Test_058_P3";"D.SubPart[2].Pos",3,3;"D.SubPart[2].Result",3,1;"D.SubPart[2].NioBits",3,0;"D.SubPart[3].Identifier",8,"Test_058_P4";"D.SubPart[3].Pos",3,4;"D.SubPart[3].Result",3,1;"D.SubPart[3].NioBits",3,0;}


//JSON for the HTTP POST (note the symbol " must be escaped by a backslash )
{
    "OpConTelegram": '#1{"Order",8,"CreateVmdt";"Id",3,1;"H.Identifier",8,"6379831139131215391986404970";"H.ProcessNo",3,900;"H.RouteList",8,"TDP_3";"H.Result",3,1;"H.NioBits",3,0;"H.Plant",3,39;"H.LineNo",3,1213;"H.TypeNo",8,"1111111111";"H.TypeVar",8,"";"H.Charge",8,"";"H.WorkingCode",3,0;"H.ResFileName",8,"";"H.VmdtDataBlockSize",3,0;"H.SetAddData",3,0;"H.IsMaster",3,1;"H.Count",3,4;"D.SubPart[0].Identifier",8,"6379831139131215391986404970_9/9/2022 9:09:51 AM +00:00_1";"D.SubPart[0].Pos",3,1;"D.SubPart[0].Result",3,1;"D.SubPart[0].NioBits",3,0;"D.SubPart[1].Identifier",8,"6379831139131215391986404970_9/9/2022 9:09:51 AM +00:00_2";"D.SubPart[1].Pos",3,2;"D.SubPart[1].Result",3,1;"D.SubPart[1].NioBits",3,0;"D.SubPart[2].Identifier",8,"6379831139131215391986404970_9/9/2022 9:09:51 AM +00:00_3";"D.SubPart[2].Pos",3,3;"D.SubPart[2].Result",3,1;"D.SubPart[2].NioBits",3,0;"D.SubPart[3].Identifier",8,"6379831139131215391986404970_9/9/2022 9:09:51 AM +00:00_4";"D.SubPart[3].Pos",3,4;"D.SubPart[3].Result",3,1;"D.SubPart[3].NioBits",3,0;}'
}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.TargetIdx

Target of the active processing step which should be used as next processing step.
If server-side target selection should be used, this parameter should be set to -1 or be completely omitted. In this case the server will select the appropriate target.

H.Result

x

Processing result of the process
If server-side target selection should be used, the value of this parameter must match with one of the values specified in the configuration.

H.NioBits

x

Bits indicating the processing errors
Errors are encoded as single bits not as error numbers.
These bits can be evaluated by a rework / analysis station to define the appropriate action for the work part.

H.Plant

x

Plant number

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.TypeNo

x

Type number of the work part

H.TypeVar

x

Type variant of the work part
If no type variant information is available, this parameter must contain an empty string.

H.Charge

x

ID of the batch of the work part
If the work part belongs to no batch, the parameter must contain an empty string.

H.WorkingCode

x

Working code for the work part

H.PartState

State of the work part
If server side target selection should be used, this parameter should be set to -1 or be completely omitted. In this case the server will select the appropriate state.

H.RouteList

x

Route list name
Line Control will assign the work part to this route list.

H.ResFileName

x

Name of the result data file
This parameter can be used to define a common name for all result files generated by the stations.

H.VmdtDataBlockSize

x

Size of the binary data block
The size can’t be changed during the lifetime of the Line Control dataset. If you are not using the binary block, you should set this parameter to 0.

H.SetAddData

x

Indicates whether the message has additional binary data
H.SetAddData = 1 → Binary data sections have been set
H.SetAddData = 0 → No binary data sections
If this flag is set to 1, server tries to update the binary data block with the sections appended to the OpCon telegram string. If no such sections have been sent, an error message will be returned. If the flag is set to 0, the binary block will not be touched even when binary data sections are appended to the OpCon telegram string. This flag will not influence the additional data which has been sent as name-value pairs.

H.OrderId

Order number of an order that is associated with a valid route list. Vmdt uses the associated route list and assigns it to the newly created part.
This parameter is ignored when the H.RouteList is specified.
If neither H.OrderId nor H.RouteList is specified, CreateVmdt fails.

H.Count

Number of work parts the group contains
If H.IsMaster = 1, this parameter is mandatory and must contain the number of sub parts which should be added to the group.
The value specified for this parameter must match with the number of D.SubPart[x] entries.

H.SubPart[x].Identifier

Identifier of the sub part.
If H.IsMaster = 1, this field is required.

H.SubPart[x].Pos

Position of the sub part inside the group
If H.IsMaster = 1, this parameter is mandatory and must contain the position of the work part inside the group. This position will be used as index if the work part should be identified using the group identifier.

H.SubPart[x].PartState

State of the sub part

H.SubPart[x].Result

Result of the sub part
If H.IsMaster = 1, this parameter is mandatory and must contain the processing result for the sub part.

H.SubPart[x].NioBits

NioBits of the SubPart
If H.IsMaster = 1, this parameter is mandatory and must contain the processing result for the sub part.

H.AddData.<VarName>

Additional data specified as name value pairs (<VarName> is the name of the additional data information)

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

VT_Enum types Supported in IAS

Varenum Value State in IAS

VT_BOOL

11

Accepted

VT_DATE

7

Accepted

VT_I1

16

Accepted

VT_BSTR

8

Accepted

VT_I2

2

Accepted

VT_INT

22

Accepted

VT_I4

3

Accepted

VT_UI1

17

Accepted

VT_UI2

18

Accepted

VT_R4

4

Accepted

VT_R8

5

Accepted

Note: VT_Enum types that are not listed above are not supported by IAS beacuse they either are rejected by MES too, or accepted (i.e. MES does not reply with an error) but with an incorrect behavior (i.e. MES writes an incorrect value to the DB)

DeleteVmdt

Description

The last station / process usually uses this command to delete the dataset in the Line Control database.
It is possible to call DeleteVmdt from a process (station) which is not in order to process the part. The server will only check if the process (station) is included in the route list for the part. Trying to call the command from a process / location which is not included in the route list will result in an error.
If the command will be called with an identifier which does not exists, the command will return no error code, because it is assumed that the Line Control dataset has already been deleted.

When the part being deleted is a group that has additional data associated with it, Line Control assigns a copy of the group’s additional data to each of the group’s sub parts. Upon copying the group’s additional data to a sub-part’s additional data, additional data items with the same name as one of the sub-part’s additional data items are not copied (additional data items of a sub-part are not overwritten).

If Line Control timers or counters are linked to the master part, those are copied to the sub parts, unless they already exist.

Telegram Examples

Telegram:

#1{"Order",8,"DeleteVmdt";"Id",3,44;"H.Identifier",8,"Test_058_G";"H.IsMaster",3,1;"H.ProcessNo",3,700;}


JSON for the HTTP POST (note the symbol " must be escaped by a backslash )

{
    "OpConTelegram": "#1{\"Order\",8,\"DeleteVmdt\";\"Id\",3,47;\"H.Identifier\",8,\"test-20224_T4\";\"H.IsMaster\",3,-1;\"H.ProcessNo\",3,20180205;\"H.DelSubParts\",3,-1;}"
}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.Flags

Delete reason
This parameter specifies reason why DeleteVmdt has been called. Default: H.Flags == PACKED

H.DelSubParts

Used when deleting a group part H.Master=1
If H.DelSubParts=1 is specified, the command also deletes the subparts in the group. This means, the client can delete the whole group by sending only one telegram for the master.
If H.DelSubParts=0 is specified, the command only deletes the group. All sub parts can be still used in Line Control.

With this command the bits of H.Flags will be interpreted like this:

Name Bit Comment

PACKED

0

Part has been packaged

SCRAPPED

1

Part has been scrapped

Response

Parameter Description

H.OrderState

Return value of the command:
0: Command has been executed with no errors
<> 0: Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

SetStation

Description

This command will typically be used by a rework station. With this command the next process/station is sent for the work part using the process number / location and not one of the targets of the active processing step. It is important to note here that ProcessNo (or StatNo, StatIdx, FuNo and WorkPos) must actually be present in the route list.
With this command you can store additional data to the dataset. The additional data must be specified as name value pair and transmitted using the D.AddData.<VariableName> fields, where <VariableName> is the name of the additional data item. The name of the field must start with a character and must not contain '.'.
Working with groups, the client has to specify the next process / station always explicitly. There are no algorithms like bottom-up or top-down propagation of the processing steps like in the SetNextStation command.
The client must send the complete information in one telegram using the SubPart[x] fields or sending the next process with single messages for the sub part and the group.

Telegram Examples

Single Part

#1{"Order",8,"SetStation";"Id",3,4;"H.Identifier",8,"Test_055";"H.PartState",3,4;"H.Result",3,1;"H.NioBits",3,0;"H.NextProcessNo",3,21;"H.ProcessNo",3,15;"H.SetAddData",3,0;}

Group

#1{"Order",8,"SetStation";"Id",3,57;"H.Identifier",8,"Test_021_G";"H.PartState",3,4;"H.Result",3,1;"H.NioBits",3,0;"H.NextProcessNo",3,900;"H.ProcessNo",3,700;"H.SetAddData",3,0;"H.IsMaster",3,1;"H.Count",3,4;"D.SubPart[0].Pos",3,1;"D.SubPart[0].Result",3,1;"D.SubPart[0].NioBits",3,0;"D.SubPart[0].PartState",3,4;"D.SubPart[0].NextProcessNo",3,900;"D.SubPart[0].ProcessNo",3,700;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.Result

New content of the last processing result
The value will not be interpreted by the vMDT server; the value will simply be stored into the vMDT dataset.
If this parameter is not specified in the message or set to -1, the state of the work part will not be altered.

H.NioBits

New content of the nio bits
If this parameter is not specified in the message or set to -1, the state of the work part will not be altered.

H.ProcessNo

Process number
New value for the last process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

New value for the line number of the last location
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

New value for the station number of the last location
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

New value for the last station index number
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

New value for the last functional unit number
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

New value for the last working position number
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.NextProcessNo

Process number
New value for the next process number
If the location (H.NextStatNo, H.NextStatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.NextStatNo

New value for the station number of the next location
If H.NextProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.NextStatIdx

New value for the next station index number
If H.NextProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.NextFuNo

New value for the next functional unit number
If H.NextProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.NextWorkPos

New value for the next working position number
If H.NextProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.PartState

New value for the part state
If this parameter is not specified in the message or set to -1, the state of the work part will not be altered.

H.SetAddData

x

Indicates whether the message contains additional data (binary or key value data).

H.Count

Number of elements inside the SubPart array (the array is 0-based)
If H.IsMaster = 1, this parameter is mandatory and must contain the number of sub parts which should be added to the group. The value specified for this parameter must match with the number of D.SubPart[x] entries.
Default: H.Count = 0

D.SubPart[x].Pos

Position of the sub part inside the panel / group

D.SubPart[x].Result

Result of the sub part
If this parameter is not specified in the message or set to -1, the state of the work part will not be altered.

D.SubPart[x].NioBits

Nio bits of the sub part

D.SubPart[x].PartState

State of the sub part
If this parameter is not specified in the message or set to -1, the state of the work part will not be altered.

D.SubPart[x].NextProcessNo

Overrides the next process number for the sub part

D.SubPart[x].ProcessNo

Overrides the last process number for the sub part

D.AddData.<VarName>

Value of additional data item <VarName>

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

SetNextStation

Description

This command is sent to the server when a part has been worked. The values sent by the command to the server are stored in the corresponding Line Control dataset. With this command the next process will be read from the route list and assigned to the part according to the result send by the station.

Telegram Examples

Single Part

#1{"Order",8,"SetNextStation";"Id",3,38;"H.Identifier",8,"Test_058_P1";"H.Result",3,1;"H.ProcessNo",3,750;"H.NioBits",3,0;"H.IsMaster",3,0;"H.SetAddData",3,0;}


group for the bottom-up scenario: one SetNextStation telegram for each sub-part and a closing telegram for the group. Notice the Result=-1 (not specified) and Target=0 that tells the assembly line service to use bottom-up logic

#1{"Order",8,"SetNextStation";"Id",3,55;"H.Identifier",8,"Test_058_G";"H.ProcessNo",3,281;"H.IsMaster",3,1;"H.TargetIdx",3,0;"H.SetAddData",3,0;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.TargetIdx

Target of the active processing step which should be used as next processing step.
If server-side target selection should be used, this parameter should be set to -1 or be completely omitted. In this case the server will select the appropriate target.

H.Result

Processing result of the process
If server-side target selection should be used, the value of this parameter must match with one of the values specified in the configuration.

H.NioBits

Bits indicating the processing errors
Errors are encoded as single bits not as error numbers.
These bits can be evaluated by a rework / analysis station to define the appropriate action for the work part.

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.PartState

State of the work part
If server side target selection should be used, this parameter should be set to -1 or be completely omitted. In this case the server will select the appropriate state.
If TargetIdx > 0, this parameter must be provided.

H.SetAddData

x

Indicates whether the message has additional binary data
H.SetAddData = 1 → Binary data sections have been set
H.SetAddData = 0 → No binary data sections
If this flag is set to 1, server tries to update the binary data block with the sections appended to the OpCon telegram string. If no such sections have been sent, an error message will be returned. If the flag is set to 0, the binary block will not be touched even when binary data sections are appended to the OpCon telegram string. This flag will not influence the additional data which has been sent as name-value pairs.

H.Count

Number of work parts the group contains
If H.IsMaster = 1, this parameter is mandatory and must contain the number of sub parts which should be added to the group.
The value specified for this parameter must match with the number of D.SubPart[x] entries.

H.SubPart[x].Identifier

Identifier of the sub part.
If H.IsMaster = 1, this field is required.

H.SubPart[x].Pos

Position of the sub part inside the group
If H.IsMaster = 1, this parameter is mandatory and must contain the position of the work part inside the group. This position will be used as index if the work part should be identified using the group identifier.

H.SubPart[x].PartState

State of the sub part

H.SubPart[x].Result

Result of the sub part
If H.IsMaster = 1, this parameter is mandatory and must contain the processing result for the sub part.

H.SubPart[x].NioBits

NioBits of the SubPart
If H.IsMaster = 1, this parameter is mandatory and must contain the processing result for the sub part.

D.SubPart[x].TargetIdx

Explicit target index for the sub part

D.AddData.<VarName>

Additional data specified as name value pairs (<VarName> is the name of the additional data information)

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

GetNextStation

Description

This command returns the information about the part and the information about the next process or station that must be executed for this work part.

Telegram Examples

#1{"Order",8,"GetNextStation";"Id",3,4;"H.Identifier",8,"Test_003";"H.LineNo",3,1213;"H.GetAddData",3,0;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.LineNo

Line number
Contained only for backward compatibility. Will not be evaluated.

H.GetAddData

x

Binary data information should be returned
H.GetAddData = 1 → Binary data sections requested
H.GetAddData = 0 → No binary data sections requested
If this flag is set to 1, server tries to read the sections appended to the OpCon telegram string from binary data block with. If no such sections have been sent, an error message will be returned. If the flag is set to 0, the binary block will not be read even when binary data sections are appended to the OpCon telegram string.
This flag will not influence the additional data which has been defined as name-value pairs.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

H.NextProcessNo

Number of the process which should applied on the work part.

H.NextStatNo

Station number of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextStatIdx

Station index of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextFuNo

Function unit number of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextWorkPos

Working position of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.Result

Processing result of the last process

H.NioBits

NOK bits set by the last process

H.TypeNo

Type number of the work part

H.TypeVar

Type version of the work part

H.Charge

Batch ID of the work part

H.WorkingCode

Production context of the work part
Specifies the general processing of the part (e.g. if the part is a normal part or a test or calibration part)

H.PartState

State of the work part

H.ResFileName

File name which should be used when writing result data information to dat files.

H.OrderId

ID of the production lot

H.Count

Number of work parts inside the group
Contains the number of sub part entries inside the D-section. This parameter will be always being sent, regardless if a group or a single work part has been requested. In case of a single work part, H.Count is set to 0.

H.AddData.<VarName>

Additional data value with name xxx
All additional variables will be sent which have been assigned to the identifier. If you are requesting a work part which is also a member of a group and both have additional name-value pairs, only the values of the work part will be returned.

H.SubPart[x].Identifier

Identifier of the sub part

H.SubPart[x].Pos

Position of the sub part inside the group

H.SubPart[x].PartState

State of sub part

H.SubPart[x].Result

Last processing result for the sub part

H.SubPart[x].NioBits

NOK bits for the sub part

H.SubPart[x].NextProcessNo

Number of the process which should applied on the sub part

H.SubPart[x].LastProcessNo

Number of the process which last applied on the sub part

GetLastStation

Description

This command is almost identical to the GetNextStation command, except it will also return the information about the last executed process (incl. the location). This information is vital for rework / analysis station to be able to interpret the processing result and NOK bits correctly.

Telegram Examples

#1{"Order",8,"GetLastStation";"Id",3,69;"H.Identifier",8,"Test_058_G";"H.IsMaster",3,1;"H.LineNo",3,1213;"H.GetAddData",3,0;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.LineNo

Line number
Contained only for backward compatibility. Will not be evaluated.

H.GetAddData

x

Binary data information should be returned
H.GetAddData = 1 → Binary data sections requested
H.GetAddData = 0 → No binary data sections requested
If this flag is set to 1, server tries to read the sections appended to the OpCon telegram string from binary data block with. If no such sections have been sent, an error message will be returned. If the flag is set to 0, the binary block will not be read even when binary data sections are appended to the OpCon telegram string.
This flag will not influence the additional data which has been defined as name-value pairs.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

H.NextProcessNo

Number of the process which should applied on the work part.

H.NextStatNo

Station number of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextStatIdx

Station index of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextFuNo

Function unit number of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextWorkPos

Working position of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.LastProcessNo

Function unit number of the last location
Could be '0' if no location has been configured for the process.

H.LastStatNo

Station number of the last location
Could be '0' if no location has been configured for the process.

H.LastStatIdx

Station index of the last location
Could be '0' if no location has been configured for the process.

H.LastFuNo

Function unit number of the last location
Could be '0' if no location has been configured for the process.

H.LastWorkPos

Working position of the last location
Could be '0' if no location has been configured for the process.

H.Result

Processing result of the last process

H.NioBits

NOK bits set by the last process

H.TypeNo

Type number of the work part

H.TypeVar

Type version of the work part

H.Charge

Batch ID of the work part

H.WorkingCode

Production context of the work part
Specifies the general processing of the part (e.g. if the part is a normal part or a test or calibration part)

H.PartState

State of the work part

H.ResFileName

File name which should be used when writing result data information to dat files.

H.OrderId

ID of the production lot

H.Count

Number of work parts inside the group
Contains the number of sub part entries inside the D-section. This parameter will be always being sent, regardless if a group or a single work part has been requested. In case of a single work part, H.Count is set to 0.

H.AddData.<VarName>

Additional data value with name xxx
All additional variables will be sent which have been assigned to the identifier. If you are requesting a work part which is also a member of a group and both have additional name-value pairs, only the values of the work part will be returned.

H.SubPart[x].Identifier

Identifier of the sub part

H.SubPart[x].Pos

Position of the sub part inside the group

H.SubPart[x].PartState

State of sub part

H.SubPart[x].Result

Last processing result for the sub part

H.SubPart[x].NioBits

NOK bits for the sub part

H.SubPart[x].NextProcessNo

Number of the process which should applied on the sub part

H.SubPart[x].LastProcessNo

Number of the process which last applied on the sub part

GetProcessReleaseInfo

Description

This command is used to return the information if the part could be processed by the requesting process (or station).
The vMDT server will check if the requesting process matches with the process which should be next for the part according the route list.
In addition to this the command will also check the state of the part. The production release will only be granted for parts which have OK state. For all other parts, the production release will be denied. For parts which are in the IN_PROCESSING state, the command will set that part to NOK and move it to the NOK target of the process which will be stored as next processing target. For such parts, the requesting process will receive H.PartForStation set to false, and the H.NextProcessNo will contain the process number of the NOK target.
If the production release is requested for a group, the release condition checks will be applied to the member parts of the group as well as for the group itself. In addition to this, the command will also check the constraints for the maximum allowed NOK or SCRAPED members.

Telegram Examples

#1{"Order",8,"GetProcessReleaseInfo";"ID",3,7;"H.Identifier",8,"Test_045_001";"H.GetAddData",3,0;"H.ProcessNo",3,451;"H.IsMaster",3,0;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.GetAddData

x

Binary data information should be returned
H.GetAddData = 1 → Binary data sections requested
H.GetAddData = 0 → No binary data sections requested
If this flag is set to 1, server tries to read the sections appended to the OpCon telegram string from binary data block with. If no such sections have been sent, an error message will be returned. If the flag is set to 0, the binary block will not be read even when binary data sections are appended to the OpCon telegram string.
This flag will not influence the additional data which has been defined as name-value pairs.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

H.PartForStation

Production release flag
Flag indicating if the work part should be processed or not:
H.PartForStation = -1 → processing allowed
H.PartForStation = 0 → processing not allowed

H.NextProcessNo

Number of the process which should applied on the work part.

H.NextStatNo

Station number of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextStatIdx

Station index of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextFuNo

Function unit number of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.NextWorkPos

Working position of the location which should process the work part.
Could be '0' if no location has been configured for the process.

H.Result

Processing result of the last process

H.NioBits

NOK bits set by the last process

H.TypeNo

Type number of the work part

H.TypeVar

Type version of the work part

H.Charge

Batch ID of the work part

H.WorkingCode

Production context of the work part
Specifies the general processing of the part (e.g. if the part is a normal part or a test or calibration part)

H.PartState

State of the work part

H.ResFileName

File name which should be used when writing result data information to dat files.

H.OrderId

ID of the production lot

H.Count

Number of work parts inside the group
Contains the number of sub part entries inside the D-section. This parameter will be always being sent, regardless if a group or a single work part has been requested. In case of a single work part, H.Count is set to 0.

H.AddData.<VarName>

Additional data value with name xxx
All additional variables will be sent which have been assigned to the identifier. If you are requesting a work part which is also a member of a group and both have additional name-value pairs, only the values of the work part will be returned.

H.SubPart[x].Identifier

Identifier of the sub part

H.SubPart[x].Pos

Position of the sub part inside the group

H.SubPart[x].PartState

State of sub part

H.SubPart[x].Result

Last processing result for the sub part

H.SubPart[x].NioBits

NOK bits for the sub part

H.SubPart[x].NextProcessNo

Number of the process which should applied on the sub part

SetPartState

Description

This command will be typically executed after the requesting the production release (with commands like GetNextStation, GetLastStation or GetProcessReleaseInfo). It changes the part state in the Line Control dataset. Setting the part state is not coupled with the information which will be the next process for processing the part. Therefore the location / process information inside the request will be used for logging purposes (history entry) only.
The command is group processing aware. You can run the command using the normal group processing scenarios (standard top down or bottom up). The decision which scenario should be executed is based on the data sent with the command call:
• Standard: H.IsMaster = 1 and D.SubParts is available
• Top down: H.IsMaster = 1 and D.SubParts is not available
• Bottom up: For all sub parts the SetPartState command must be sent (with H.IsMaster = 0). After all sub parts have been altered, the SetPartState command for the group must be sent with H.IsMaster = 1 and no H.PartState (or H.PartState = -1).

Telegram Examples

--Single Part

#1{"Order",8,"SetPartState";"Id",3,1;"H.Identifier",8,"";"H.PartState",3,-1;"H.ProcessNo",3,-1;}

-- Group

#1{"Order",8,"SetPartState";"Id",3,1;"H.Identifier",8,"";"H.IsMaster",3,0;"H.PartState",3,-1;"H.ProcessNo",3,-1;"H.Count",3,0;"D.SubPart[0].Pos",3,0;"D.SubPart[0].PartState",3,-1;"D.SubPart[1].Pos",3,0;"D.SubPart[1].PartState",3,-1;"D.SubPart[2].Pos",3,0;"D.SubPart[2].PartState",3,-1;"D.SubPart[3].Pos",3,0;"D.SubPart[3].PartState",3,-1;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.PartState

x

State of the work part
For the group message inside the bottom up scenario, this argument has to be set to -1 or must not be sent.

H.Count

x

Number of elements inside the SubPart array (the array is 0-based)
If H.IsMaster = 1, this parameter is mandatory and must contain the number of sub parts which should be added to the group. Value specified for this parameter must match with the number of D.SubPart[x] entries.
Default: H.Count = 0

H.SubPart[x].Pos

Position of the sub part inside the group

H.SubPart[x].PartState

State of the sub part

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

ReplaceRouteList

Description

This command is typically used by a rework station. It changes the route list for the work part and also sets the next process as with the command SetStation. It is important to note here that both processes \ locations (H.ProcessNo, H.NextProcessNo, H.StationNo, H.NextStatNo, …) must actually be present in the new route list.
There will be no check if the current station / process of the active processing step are equal with the location / process sent by the station.
If the route list for a group must be changed, you have two options to specify the target for the sub parts of the group.
Using the first option, the client must send for all sub parts the next / last processing step. Only if the information has been sent for all sub parts the command will accept the input. If one sub part is left out, an error will be returned.
The second option can be used if all parts should be set to the same target like the group. In this case, the specification of the sub part targets could be left out. Line Control will use in this case the next / last processing step of the group for the sub parts as well.
The state of the part itself will not be altered by this command. This ensures that NOK (sub) parts / groups will remain NOK. Because the new targets have been specified, it could happen, that (sub) parts which are previously encoded to the rework station could no be set to a "normal" process. The design of the application should take this behavior in account to avoid problems in the line.

Telegram Examples

--Single Part

#1{"Order",8,"ReplaceRouteList";"Id",3,4;"H.Identifier",8,"Test_055";"H.ProcessNo",3,900;"H.RouteList",8,"TDP_3";"H.NextProcessNo",3,299;"H.IsMaster",3,0;}

-- Group

#1{"Order",8,"ReplaceRouteList";"Id",3,4;"H.Identifier",8,"Test_055";"H.ProcessNo",3,900;"H.RouteList",8,"TDP_3";"H.NextProcessNo",3,299;"H.IsMaster",3,1;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.RouteList

x

Name of the new route list
If this command is called for a group, the new route list will be set for the group and all sub part which are members of the group. It is not possible to specify for the group and the sub parts different route lists.
If this parameter is specified, the 'H.OrderId' is ignored.
This parameter can be omitted if `H.OrderId' is specified.

H.OrderId

Order number of an order that is associated with a valid route list.
Line Control uses the associated route list to execute the command.
If the parameter H.RouteList is specified, this parameter is ignored. If neither this parameter nor H.RouteList is specified, ReplaceRouteList fails.

H.NextProcessNo

New value for the next process number
If the next location (H.NextStatNo, H.NextStatIdx…) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.NextStatNo

New value for the next station number
If H.NextProcessNo has been specified, this parameter can be omitted; otherwise it is a mandatory parameter.

H.NextStatIdx

New value for the next station index
If H.NextProcessNo has been specified, this parameter can be omitted; otherwise it is a mandatory parameter.

H.NextFuNo

New value for the next function unit number
If H.NextProcessNo has been specified, this parameter can be omitted; otherwise it is a mandatory parameter.

H.NextWorkPos

New value for the next working position number
If H.NextProcessNo has been specified, this parameter can be omitted; otherwise it is a mandatory parameter.

H.Count

Number of elements inside the SubPart array (the array is 0-based)
If H.IsMaster = 1, this parameter is mandatory and must contain the number of sub parts which should be added to the group. Value specified for this parameter must match with the number of D.SubPart[x] entries.
Default: H.Count = 0

H.SubPart[x].Pos

Position of the sub part inside the panel / group

H.SubPart[x].NextProcessNo

Overrides the next process number for the sub part

H.SubPart[x].LastProcessNo

Overrides the last process number for the sub part

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

RenameIdentifier

Description

This command changes the identifier for a work part. After the command has been executed, the work can only be accessed using the new identifier. Examples of applications for this are a turntable or a conversion to a new work piece carrier.
If the flag H.CreateEmptyWpc is set to 1, the values for H.EmptyWpcRouteList and H.EmptyWpcRouteList must be set in the telegram to values existing in the database.

Telegram Examples

#1{"Order",8,"RenameIdentifier";"Id",3,14;"H.Identifier",8,"Test_018";"H.NewIdentifier",8,"Test_018_new";"H.LineNo",3,1213;"H.StatNo",3,20;"H.StatIdx",3,1;"H.FuNo",3,1;"H.WorkPos",3,1;"H.CreateEmptyWpc",3,0;"H.EmptyWpcTargetIdx",3,1;"H.EmptyWpcRouteList",8,"TDP_4";}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.NewIdentifier

x

New ID of the work part / group.
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.CreateEmptyWpc

x

Specifies if a new vMDT dataset for the empty work piece carrier (WPC) should be created.

H.EmptyWpcRouteList

x

Route list for the empty work piece carrier.
If H.CreateEmptyWpc = 0 this parameter should be set to an empty string, otherwise is should contain the name of the route list.

H.EmptyWpcTargetIdx

x

Target index for the empty work piece carrier.
If H.CreateEmptyWpc = 0 this parameter should be set to -1, otherwise is should contain a valid target index for the processing step.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

AddPartToGroup

Description

This command is used to add a part to an existing group. In the telegram the client must specify the identifier of the part and the identifier of the group to which the part is to be added. If the part being added does not exist in the database, the command will try to create it (the client must send all the necessary details so as specified for the command CreateVmdt)
In the telegram the client can also specify a position inside the group for the new member. If such a position is not specified, Line Control will assign the part to the next available position in the group. If a position is specified, this must be not occupied yet by another sub part, otherwise Line Control will raise an error. The following table lists the parameter for the command.
Some of these parameters are only used when the part being added does not exists in the database yet (i.e. when the command also creates the part).

Remarks
The part being added must satisfy two conditions:
• It must be on the same route list as the group to which it is being added
• (If the parameter H.CheckSameProcess = 1) It must be on the same process as the group
If these conditions are not satisfied, Line Control will raise an error.

Telegram Examples

Adds an existing part to an existing group

#1{"Order",8,"AddPartToGroup";"Id",3,20;"H.Identifier",8,"Test_080_P";"H.IdentifierType",3,0;"H.LineNo",3,1213;"H.ParentIdentifier",8,"Test_060_000";"H.ParentIdentifierType",3,1;"H.CheckSameProcess",3,1;"H.Pos",3,6;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IdentifierType

Identifier type of the part that is being added. For standard scenarios, this is usually 0 (i.e. sub parts). The parameter can be omitted, in which case it will always be zero.

H.ParentIdentifier

x

Identifier of the Group-Part (i.e. the master) of the group to which the part is to be added.

H.ParentIdentifierType

Identifier of the group-part (the master) of the group to which the part is to be added. For standard scenarios, this field will always have the value 1 (which is the master, for normal parts). It can thus be omitted.

H.Pos

Position inside the group for the part. If this parameter is omitted, Line Control will assign the first available position.

H.CheckOnTheSameProcess

If H.CheckOnTheSameProcess = 1, Line Control will check that the part being added is on the same process as the group part (the master).
Default value: 0 → no check on the process number.

H.TargetIdx

This Parameter is ignored if the part to be added already exists
Target of the active processing step which should be used as next processing step.
If server-side target selection should be used, this parameter should be set to -1 or be completely omitted. In this case the server will select the appropriate target.

H.Result

This Parameter is ignored if the part to be added already exists
Processing result of the process
If server-side target selection should be used, the value of this parameter must match with one of the values specified in the configuration.

H.NioBits

This Parameter is ignored if the part to be added already exists
Bits indicating the processing errors
Errors are encoded as single bits not as error numbers.
These bits can be evaluated by a rework / analysis station to define the appropriate action for the work part.

H.Plant

This Parameter is ignored if the part to be added already exists
Plant number

H.ProcessNo

This Parameter is ignored if the part to be added already exists
Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

This Parameter is ignored if the part to be added already exists
Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

This Parameter is ignored if the part to be added already exists
Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

This Parameter is ignored if the part to be added already exists
Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

This Parameter is ignored if the part to be added already exists
Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

This Parameter is ignored if the part to be added already exists
Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.TypeNo

This Parameter is ignored if the part to be added already exists
Type number of the work part

H.TypeVar

This Parameter is ignored if the part to be added already exists
Type variant of the work part
If no type variant information is available, this parameter must contain an empty string.

H.Charge

This Parameter is ignored if the part to be added already exists
ID of the batch of the work part
If the work part belongs to no batch, the parameter must contain an empty string.

H.WorkingCode

This Parameter is ignored if the part to be added already exists
Working code for the work part

H.PartState

State of the work part
If server side target selection should be used, this parameter should be set to -1 or be completely omitted. In this case the server will select the appropriate state.

H.RouteList

This Parameter is ignored if the part to be added already exists
Route list name
Line Control will assign the work part to this route list.

H.ResFileName

This Parameter is ignored if the part to be added already exists
Name of the result data file
This parameter can be used to define a common name for all result files generated by the stations.

H.VmdtDataBlockSize

This Parameter is ignored if the part to be added already exists
Size of the binary data block
The size can’t be changed during the lifetime of the Line Control dataset. If you are not using the binary block, you should set this parameter to 0.

H.SetAddData

This Parameter is ignored if the part to be added already exists
Indicates whether the message has additional binary data
H.SetAddData = 1 → Binary data sections have been set
H.SetAddData = 0 → No binary data sections
If this flag is set to 1, server tries to update the binary data block with the sections appended to the OpCon telegram string. If no such sections have been sent, an error message will be returned. If the flag is set to 0, the binary block will not be touched even when binary data sections are appended to the OpCon telegram string. This flag will not influence the additional data which has been sent as name-value pairs.

H.OrderId

This Parameter is ignored if the part to be added already exists
Order number of an order that is associated with a valid route list. Vmdt uses the associated route list and assigns it to the newly created part.
This parameter is ignored when the H.RouteList is specified.
If neither H.OrderId nor H.RouteList is specified, CreateVmdt fails.

H.AddData.<VarName>

Additional data specified as name value pairs (<VarName> is the name of the additional data information)

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

RemovePartFromGroup

Description

This command removes a single part from a group. The telegram must contain the identifier of the part that is to be removed. The part is removed from the group, but not deleted. The master’s additional data is also copied to part before removing it from the group.

Remarks:
The telegram specifies only the part that is to be removed. The group is implied from the values in the database:
The ParentIdentifier for the part (if any exists) is the group from which the part will be removed.
If the part does not belong to any group, no error will be raised.

Telegram Examples

#1{"Order",8,"RemovePartFromGroup";"Id",3,1;"H.Identifier",8,"Part_01";"H.IdentifierType",3,0;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part that is to be removed from the group.

H.IdentifierType

Identifier type of the part that is being removed.
For standard scenarios, this is usually 0 (i.e. sub parts). The parameter can be omitted, in which case it will always be zero.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

SetHeaderVar

Description

This command overrides the content of a single header variable of a Line Control dataset. Only the variables listed below can be changed. Changing the content of a header item of a group will not be propagated to the group members. The client has the responsibility to call this command on the group’s parts.
The client has to identify itself by sending its process number (or location). The process must be contained in the specified route list, but it is not required that the client be the next process.
If the client sends a location only, this location must be mapped to a process which is part of the route list.

Telegram Examples

#1{"Order",8,"SetHeaderVar";"Id",3,3;"H.Identifier",8,"Test_052";"H.IsMaster",3,0;"H.ProcessNo",3,700;"H.VarName",8,"H.TypeNo";"H.StringValue",8,"2222222222";"H.IntValue",3,0;"H.RealValue",4,0;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group
If H.IsMaster is set, this must be the ID which is identifying the whole group (e.g. panel ID or boat ID).

H.IsMaster

Identifier type
H.IsMaster = 1 → H.Identifier is a group ID
H.IsMaster = 0 → H.Identifier is a work part ID
Default: H.IsMaster = 0

H.ProcessNo

Process number
If the location (H.StatNo, H.StatIdx …) is not specified, this parameter will be mandatory. If the location and the process number have been specified, the process number will be used.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.VarName

x

Name of the variable which should be changed.
Only variables listed below can be changed.

H.IntValue

New value of an INTEGER variable.

H.StringValue

New value of the STRING variable.

H.RealValue

New value of the REAL variable.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

It is not possible to change all variables inside the vMDT dataset header. The new value of the variable which should be changed must be stored in relation to its data type either in H.IntValue, H.StringValue or H.RealValue.
The following table lists the values that are allowed for the telegram’s parameter H.VarName along with the type parameter that must be provided. Note that each VarName’s value must start with H. (H followed by a dot).

H.Varname H.IntValue H.StringValue H.RealValue

H.PartState

x

H.WorkingCode

x

H.TypeNo

x

H.TypeVar

x

H.Charge

x

H.ResFileName

x

MovePartToStock

Description

This command puts the part with Identifier specified in the Identifier field in stock. If the attribute Stock\renameBeforeMoving is set to 1 in the uploaded configuration VmdtServer.config.xml, the part is renamed to the value specified in StockIdentifier when moving.
When moving a group to stock, subParts are not moved to stock.
If the attribute Stock\isSupermarket is set to 1 in the uploaded VmdtServer.config.xml, the part is moved to the Line Control supermarket instead of the local stock. In case of groups, the entire group if moved to supermarket.
Setting both Stock\isSupermarket and Stock\renameBeforeMoving to 1 is not supported.

Telegram Examples

#1{"Order",8,"MovePartToStock";"Id",3,9;"H.Identifier",8,"Test_003";"H.StockIdentifier",8,"Test_003_Stock";"H.LineNo",3,1213;"H.StatNo",3,250;"H.StatIdx",3,1;"H.FuNo",3,1;"H.WorkPos",3,1;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part or group to be moved to stock

H.StockIdentifier

Identifier after moving to Stock If Stock\renameBeforeMoving is set in the uploaded configuration VmdtServer.config.xml then this parameter must be given.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

MovePartFromStock

Description

This command moves the part with the Id specified in H.StockIdentifier from stock. If the Stock\renameBeforeMoving attribute is set to 1 in the uploaded VmdtServer.config.xml, the part is renamed to the value specified in H.Identifier when moving.

Telegram Examples

#1{"Order",8,"MovePartFromStock";"Id",3,11;"H.StockIdentifier",8,"Test_041";"H.Identifier",8,"Test_041";"H.LineNo",3,1213;"H.StatNo",3,10;"H.StatIdx",3,1;"H.FuNo",3,1;"H.WorkPos",3,1;}

Request

Parameter mandatory Description

H.Identifier

x

ID of the work part after moved from stock.

H.StockIdentifier

Identifier to be moved from stock. If Stock\renameBeforeMoving is set in the uploaded configuration VmdtServer.config.xml then the part is being renamed to the value given in H.Identifier.

H.LineNo

Line number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatNo

Station number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.StatIdx

Station index of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.FuNo

Functional unit number of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

H.WorkPos

Work position of the requesting station
If H.ProcessNo has been specified, this parameter can be omitted, otherwise it is a mandatory parameter.

Response

Parameter Description

H.OrderState

Return value of the command
0 – Command has been executed with no errors <> 0 – Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

ResetCounterValue

Description

This command resets the value of counter to minimum. When this command is sent, a counter number is reset for the corresponding line. If a lower limit has been configured, then the counter is reset to that value.

Telegram Examples

#1{"Order",8,"ResetCounterValue";"Id",3,1;"H.LineNo",3,1213;"H.CounterNo",3,1;}

Request

Parameter mandatory Description

H.LineNo

x

Line number of the requested counter

H.CounterNo

x

Number of the counter for which the value has to be reset.

Response

Parameter Description

H.OrderState

Return value of the command
0 - Command has been executed with no errors <> 0 - Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

GetCounterValue

Description

With this command, the server returns a serial number. A counter number (CounterNo) must be sent to the server for the request. Each counter number is associated with a sequential number (CounterValue) which is then returned as CounterValue. The range of consecutive numbers can be limited via configuration.

The counter’s value will be automatically increased with each call to this command.

Telegram Examples

#1{"Order",8,"GetCounterValue";"Id",3,1;"H.LineNo",3,1213;"H.CounterNo",3,123;}

Request

Parameter mandatory Description

H.LineNo

x

Line number

H.CounterNo

x

Number of the counter which should be used

Response

Parameter Description

H.OrderState

Return value of the command 0 - Command has been executed with no errors <> 0 - Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

H.CounterValue

Current value of the counter

Diagnostic

Description

This command is used for diagnosing whether the server is present.

Telegram Examples

#1{"Order",8,"OrderState";"Id",3,4;"H.OrderState",3,0;"H.OrderErrorText",8,"";}

Request

Parameter mandatory Description

The request does not contain any parameters.

Response

Parameter Description

H.OrderState

Return value of the command
0 - Command has been executed with no errors <> 0 - Command was not executed successful

H.OrderErrorText

If the command has not been executed successful, this parameter contains additional information about the error.

GetProductionJob

Description

This command is called to check whether a part can be used and which of the sub-parts are ready for production. If MacroName is provided in the input then macro will be executed. If the main part is locked, the sub-parts should not be processed. If a sub-part is locked, the other sub-parts can be processed.

Request

Parameter Mandatory Description

InVariables

Identifier

x

Unique identifier

IsMaster

x

True for group identifier

MacroName

Name of macro to be executed

ProcessDetails

x

The ProcessDetails object has the following attribute : Location, StationInfo, ProcessNo, TypeNo, TypeVar, TargetIndex

RequestDetails

x

The RequestDetails object has the following attribute : ProductFamily,TargetIndex,BlockSeverityThreshold,PartState

Target

Response

Parameter Description

Blocks

ProductionJob

The ProductionJob object has the following attributes : Identifier, IsMaster, NextProcessNo, NextStatNo, NextStatIdx, NextFuNo, NextWorkPos, LastProcessNo, LastStatNo, LastStatIdx, LastFuNo, LastWorkPos, Result, NioBits, TypeNo, TypeVar, Batch, WorkingCode, PartState, ResFileName, ProcessState → Status of the workpiece (e.g. OK, NOK,IN_PROCESSING, BLOCKED == 13), LocationStatus → Location status: -1 = unknown, 0 = not blocked,1 = warning level reached,2 = block level reached, SubParts

OutVariables

The out variables can be set by the macro to pass results back to the caller.

GetAdditionalData

Description

This command is used to request from the LineControl database all currently stored additional data relating to a workpiece. The additional data is always stored as key-value pairs.Values can be: Scalar sizes, Fields of scalar sizes (Arrays) and complex data types (Struct) as well as Fields of complex data types (Array of Struct).

Request

Parameter Mandatory Description

Identifier

x

Unique identifier

IsMaster

True for group identifier

Response

Parameter Description

OutVariables

SetAdditionalData

Description

The command SetAdditionalData is used to store additional data in the form of key-value pairs for a workpiece in the LineControl database.The following data types are possible: Scalar data types, Fields of scalar data types, and complex data types (struct), as well as fields of complex data types (array of struct).

Request

Parameter Mandatory Description

Identifier

x

Unique identifier

IsMaster

True for group identifier

Response

Parameter Description

OutVariables

GetCharacterAdditionalData

Description

This command is used to download the large additional character data (CLOBs) for a part that was uploaded via SetCharacterAdditionalData. For the specified part, LineControl retrieves the LargeCharacterAdditionalData (if any) with the specified name(s).LineControlAccess returns the character block.

Request

Parameter mandatory Description

PartId

X

It specifies the part identifier and the identifier type of the owning part object.

AddItemNames

It is an array of names. One for each binary CLOB that’s to be retrieved. It is defined as follows: { Name: string, Value: char[]}. The property Name contains the name assigned to the CLOB; the property value contains the character payload.

Target

If the method is called on the LineControlCoordinator, it gives the target LineControl on which the character data is to be uploaded.

Response

Parameter Description

BlobClobDataArray

It is an array of objects. The BlobClobDataArray (CharacterAdditionalDataItem) is specified as follows: { Name: string, Value: char[]}. The Name is the key used for retrieving the data (same as for the standard additional data), and the property value contains the actual character data.

GetBinaryAdditionalData

Description

The command GetBinaryAdditionalData retrieves large binary data (BLOB) from the LineControl database. These are binary data that have been uploaded previously via SetBinaryAdditionalData.

Request

Parameter mandatory Description

PartId

X

It specifies the part identifier and the identifier type of the owning part object.

AddItemNames

It is an array of names. One for each binary BLOB that’s to be retrieved.It is defined as follows: { Name: string, Value: byte[]}. The property Name contains the name assigned to the BLOB; the property value contains the binary payload.

Target

If the method is called on the LineControlCoordinator, it gives the target LineControl on which the binary data is to be uploaded.

Response

Parameter Description

BlobClobDataArray

It is an array of objects. The BlobClobDataArray (BinaryAdditionalDataItem) is specified as follows: { Name: string, Value: byte[]}. The Name is the key used for retrieving the data (same as for the standard additional data), and the property value contains the actual binary data.

GetPart

Description

The GetPart command can return information about the main part and its sub-parts based on the specified part ID.

Request

Parameter mandatory Description

Identifier

X

The identifier of the part for which information is to be returned.

Response

Parameter Description

Part

The Part object has the following attributes : Identifier,IdentifierType,Pos,WorkingCode, PartState, Result,NioBits, TargetIdx, TypeNo, TypeVar, ResFileName,BatchID, LastProcessingStep, LastProcessNo,LastProcessName, NextProcessingStep,NextProcessNo, NextProcessName, RouteListID, RouteListName, LotID, StockName, ParentIdentifier, ParentIdentifierType, Created, Modified.

SubParts

It is an array which contains information about the sub-parts.

SetBinaryAdditionalData

Description

This command is used to upload the large additional binary data (BLOBs) of a part. The input is an array of name-value pairs, where the name property specifies the name that LineControl uses for the additional data element (as with the standard additional data) and the value is a Base64 representation of the actual binary block.

Request

Parameter Mandatory Description

PartId

X

It specifies the part identifier and the identifier type of the owning part object.

Items

It is an array of BinaryAdditionalDataItem objects. The class BinaryAdditionalDataItem is specified as follows: { Name: string, Value: byte[]}. The Name is the key used for retrieving the data (same as for the standard additional data), and the property value contains the actual binary data.

Target

If the method is called on the LineControlCoordinator, it gives the target LineControl on which the binary data is to be uploaded.

SetCharacterAdditionalData

Description

This command is used to upload the large additional character data (CLOBs) of a part. The input is an array of name-value pairs, where the name property specifies the name that LineControl uses for the additional data element (as with the standard additional data), and the value is a (long) character string.

Request

Parameter Mandatory Description

PartId

X

It specifies the part identifier and the identifier type of the owning part object.

Items

It is an array of CharacterAdditionalDataItem objects. The class CharacterAdditionalDataItem is specified as follows: { Name: string, Value: char[]}. The Name is the key used for retrieving the data (same as for the standard additional data), and the property value contains the actual binary data.

Target

If the method is called on the LineControlCoordinator, it gives the target LineControl on which the binary data is to be uploaded.

MovePartToSupermarket

Method Resource Route Parameters (Request body) Parameters (Query) Return Codes

POST

/movePartToSupermarket

/api/v1/commands/movePartToSupermarket

(query) supermarketName (query) partIds

200, 400, 401, 403, 500

Description

With the command MovePartToSupermarket it is possible to transfer a part from a Line Assembly DB to a Supermarket DB. The complete part record is moved, including all additional data, timer data, counter data as well as identifier mapping data. the command is capable of moving a list of parts to the Supermarket DB. The parts data is stored in a named supermarket (given by parameter: supermarketName). If you are moving a group part, it is ensured that complete group is moved to the Supermarket DB.

Telegram Examples

  • Request:

{
  "supermarketName": "string",
  "partIds": [
    {
      "identifier": "string",
      "identifierType": 0
    }
  ]
}
  • Response: 200 in case of success

MovePartFromSupermarket

Method Resource Route Parameters (Request body) Parameters (Query) Return Codes

POST

/movePartFromSupermarket

/api/v1/commands/movePartFromSupermarket

(query) supermarketName (query) partIds

200, 201, 204, 401, 403, 404, 500

Description

The command MovePartFromSupermarket is used to transfer a part from a Supermarket DB to a Line Assembly DB. As with MovePartToSupermarket, the complete data record is transferred. The data in the source (given in the parameter name supermarketName) is deleted and stored Line Assembly DB of the corresponding Line Assembly instance. IN addition to this, the parts Route List and the position within the Route List can be specified with the parameters routeListName, nextProcessNo and nextLocation.

Telegram Examples

  • Request:

{
  "supermarketName": "string",
  "partDetails": [
    {
      "identifier": "string",
      "identifierType": 0,
      "transportId": "string",
      "routeListName": "string",
      "nextProcessNo": 0,
      "nextLocation": {},
      "orderNo": "string"
    }
  ]
}
  • Response: 200 in case of success

Execute

Method Resource Route Parameters (Request body) Parameters (Query) Return Codes

POST

/execute

/api/v1/commands/execute

(query) macorName (query) location (query) inVariablesDictionaries

200, 400, 401, 403

Description

A macro can be executed with the Execute command. The execution of the macro is not subject to the context of a work part as with the ProcessEnd and ProcessRequest commands, but has no context whatsoever.

Telegram Examples

  • Request:

{
  "macroName": "string",
  "location": "97337100154843707901649999660",
  "inVariablesDictionaries": {
    "scalarVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp2": {
        "direction": "out",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp3": {
        "direction": "In_Out",
        "persistenceName": "string",
        "value": "string"
      }
    },
    "scalarArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      }
    },
    "structVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      }
    },
    "structArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      }
    }
  }
}
  • Response: 200 in case of success

ProcessEnd

Method Resource Route Return Codes

POST

/processEnd

/api/v1/commands/processEnd

200, 201, 204, 401, 403, 404, 500

Description

The command ProcessEnd is normally called after editing a part. This informs LineControl whether or not the part has successfully gone through the process. Based on this information, the part is forwarded to the next process in accordance with the route list within the context of the call of ProcessEnd. ProcessEnd is used for three different purposes, differentiated by the value of the ActionCode parameter.

  • 0: Set part to next position in the route list (i.e. relaying or further coding)

  • 1: Create a part

  • 2: Delete part

If a macro is to be executed as part of the command ProcessEnd, the macro name can be provided in the parameter macroName.

Telegram Examples

  • Request:

{
  "identifier": "string",
  "inVariablesDictionaries": {
    "scalarVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      }
    },
    "scalarArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      }
    },
    "structVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      }
    },
    "structArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      }
    }
  },
  "isMaster": true,
  "macroName": "string",
  "processDetails": {
    "location": "string",
    "stationInfo": "string",
    "processNo": 0,
    "typeNo": "string",
    "typeVar": "string",
    "extensionData": {}
  },
  "resHead": {
    "result": 0,
    "typeNo": "string",
    "typeVar": "string",
    "typeVersion": "string",
    "workingCode": 0,
    "identifier": "string",
    "nioBits": 0,
    "pos": 0,
    "batch": "string",
    "subParts": [
      "string"
    ],
    "targetIdx": 0,
    "partState": 0
  },
  "spcResults": [
    {
      "spcTestNo": 0,
      "testSucceeded": true,
      "sessionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  ],
  "masterDeviceResults": [
    {
      "position": 0,
      "name": "string",
      "value": "string",
      "result": 0,
      "loLim": "string",
      "upLim": "string",
      "setValue": "string",
      "checkType": 0,
      "unit": "string",
      "paaRelevance": 0
    }
  ],
  "createInfo": {
    "routeList": "string",
    "resFileName": "string",
    "dataBlockSize": 0,
    "orderNo": "string"
  },
  "actionCode": 0,
  "requestDetails": {
    "productFamily": "string",
    "targetIndex": 0,
    "blockSeverityThreshold": 0,
    "partState": 0
  },
  "target": "string"
}
  • Response: 200 in case of success

ProcessRequest

Method Resource Route Return Codes

POST

/processRequest

/api/v1/commands/processRequest

200, 204, 401, 403, 404, 500

Description

The ProcessRequest command is always called by a production facility (a workstation) before a part is processed. In addition to the identifier of the part, other important information is also provided. Line Control can use this information to decide whether or not the part may pass through the production process of the requesting production facility. The criteria for this includes whether the requesting process, and therefore the requesting workstation, is the correct next process according to the route list, and whether the part is blocked or not. In addition, an expired timer could also cause a negative response to the processing request if the time between two processes is monitored by a timer. It is also possible to incorporate information about blocked materials, blocked tools, blocked production processes or production facilities into the decision-making process.

The result of the decision is returned via the parameters

  • partForStation

  • toolState

  • materialState

  • processState

  • locationState

  • partState

Telegram Examples

  • Request:

{
  "identifier": "string",
  "isMaster": true,
  "macroName": "string",
  "target": "string",
  "isSpecialDevice": true,
  "components": [
    "string"
  ],
  "tools": [
    "string"
  ],
  "inVariables": {
    "scalarVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      }
    },
    "scalarArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      }
    },
    "structVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      }
    },
    "structArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      }
    }
  },
  "processDetails": {
    "location": "string",
    "stationInfo": "string",
    "processNo": 0,
    "typeNo": "string",
    "typeVar": "string",
    "extensionData": {}
  },
  "partData": {
    "result": 0,
    "typeNo": "string",
    "typeVar": "string",
    "typeVersion": "string",
    "workingCode": 0,
    "identifier": "string",
    "nioBits": 0,
    "pos": 0,
    "batch": "string",
    "subParts": [
      "string"
    ],
    "targetIdx": 0,
    "partState": 0
  },
  "requestDetails": {
    "productFamily": "string",
    "targetIndex": 0,
    "blockSeverityThreshold": 0,
    "partState": 0
  }
}
  • Response: 200 in case of success

{
  "outVariables": {
    "scalarVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      }
    },
    "scalarArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      }
    },
    "structVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      }
    },
    "structArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      }
    }
  },
  "toolDetails": [
    {
      "identifier": "string",
      "state": 0,
      "counter": 0
    }
  ],
  "componentDetails": [
    {
      "matID": "string",
      "state": 0
    }
  ],
  "workItemDetails": [
    {
      "identifier": "string",
      "pos": 0,
      "partForStation": true,
      "state": 0,
      "nextProcessNo": 0
    }
  ],
  "actionCode": 0,
  "workPart": {
    "partForStation": true,
    "identifier": "string",
    "changeOver": true,
    "workingCode": 0,
    "typeNo": "string",
    "typeVar": "string",
    "batch": "string",
    "passThrough": true,
    "nextProcessNo": 0,
    "toolState": 0,
    "materialState": 0,
    "processState": 0,
    "locationState": 0,
    "spcTests": 0,
    "delayTime": 0,
    "partState": 0
  }
}

ProcessRequestSupermarket

Method Resource Route Return Codes

POST

/processRequestSupermarket

/api/v1/commands/processRequestSupermarket

200, 204, 401, 403, 404, 500

Description

This command can be used to request the processing release for a work part that is currently stored in the supermarket DB.

Telegram Examples

  • Request:

{
  "supermarket": "string",
  "identifier": "string",
  "isMaster": true,
  "macroName": "string",
  "target": "string",
  "isSpecialDevice": true,
  "components": [
    "string"
  ],
  "tools": [
    "string"
  ],
  "inVariables": {
    "additionalProp1": {
      "direction": "In",
      "persistenceName": "string"
    },
    "additionalProp2": {
      "direction": "In",
      "persistenceName": "string"
    },
    "additionalProp3": {
      "direction": "In",
      "persistenceName": "string"
    }
  },
  "processDetails": {
    "location": "string",
    "stationInfo": "string",
    "processNo": 0,
    "typeNo": "string",
    "typeVar": "string",
    "extensionData": {}
  },
  "partData": {
    "result": 0,
    "typeNo": "string",
    "typeVar": "string",
    "typeVersion": "string",
    "workingCode": 0,
    "identifier": "string",
    "nioBits": 0,
    "pos": 0,
    "batch": "string",
    "subParts": [
      "string"
    ],
    "targetIdx": 0,
    "partState": 0
  },
  "requestDetails": {
    "productFamily": "string",
    "targetIndex": 0,
    "blockSeverityThreshold": 0,
    "partState": 0
  }
}
  • Response: 200 in case of success

{
  "outVariables": {
    "scalarVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": "string"
      }
    },
    "scalarArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          "string"
        ]
      }
    },
    "structVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      }
    },
    "structArrayVariableDetailsDictionary": {
      "additionalProp1": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp2": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      },
      "additionalProp3": {
        "direction": "In",
        "persistenceName": "string",
        "value": [
          {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ]
      }
    }
  },
  "toolDetails": [
    {
      "identifier": "string",
      "state": 0,
      "counter": 0
    }
  ],
  "componentDetails": [
    {
      "matID": "string",
      "state": 0
    }
  ],
  "workItemDetails": [
    {
      "identifier": "string",
      "pos": 0,
      "partForStation": true,
      "state": 0,
      "nextProcessNo": 0
    }
  ],
  "actionCode": 0,
  "workPart": {
    "partForStation": true,
    "identifier": "string",
    "changeOver": true,
    "workingCode": 0,
    "typeNo": "string",
    "typeVar": "string",
    "batch": "string",
    "passThrough": true,
    "nextProcessNo": 0,
    "toolState": 0,
    "materialState": 0,
    "processState": 0,
    "locationState": 0,
    "spcTests": 0,
    "delayTime": 0,
    "partState": 0
  }
}

AddOrUpdateIdMapping

Method Resource Route Parameters (Path) Parameters (Query) Return Codes

POST

/AddOrUpdateIdmapping

/api/v1/commands/addOrUpdateIdmapping

(query) entryName (query) entryValue (query) addEntryName (query) addEntryValue

200, 204, 404, 500

Description

This command is used to add or update id mapping. The request body includes entryName, entryValue, addEntryName, addEntryValue. It uses entryName and entryValue to search out the Part which would add or update id mapping, and then uses addEntryName and addEntryValue to add or update id mapping. If adding or updating successfully, the response will be 200.

Telegram Examples

  • Request:

{
  "entryName": "LineControlIdentifier",
  "entryValue": "Identifier1",
  "addEntryName": "WPC3",
  "addEntryValue": "333"
}
  • Response: 200

CreateIdMapping

Method Resource Route Parameters (Path) Parameters (Query) Return Codes

POST

/createIdMapping

/api/v1/commands/createIdMapping

(query) identifier (query) identifierType (query) idMappings

200, 204, 404, 500

Description

This command is used to create id mapping to a part responding to identifier and identifierType. The request body includes identifier, identifierType, idMappings. Identifier and identifierType is used to search out which part to create id mapping. The parameter of idMappings is the id mappings to be created.

Telegram Examples

  • Request:

{
  "identifier": "0507_091934_429_4",
  "identifierType": 0,
  "idMappings": {
    "UniqueIdentifier":"{{$guid}}",
    "WpcIdentifier": "WpcIdentifier_test4"
  }
}
  • Response: 200

DeleteIdMapping

Method Resource Route Parameters (Path) Parameters (Query) Return Codes

POST

/DeleteIdMapping

/api/v1/commands/deleteIdMapping

(query) entryName (query) entryValue

200, 204, 404, 500

Description

This command is used to delete id mapping by entryName and entryValue. The parameter of entryName and entryValue can search out one part and will delete id mappings belonging to this part.

Telegram Examples

  • Request:

{
  "entryName": "MappingReference1",
  "entryValue": "mpr1"
}
  • Response: 200

GetMappedIdentifier

Method Resource Route Parameters (Path) Parameters (Query) Return Codes

POST

/GetMappedIdentfier

/api/v1/commands/getMappedIdentfier

(query) entryName (query) entryValue (query) entryToSearch

200, 204, 404, 500

Description

This command is used to get mapped identifier by entryName and entryValue. The parameter of entryName and entryValue can search out one part and the parameter of entryToSearch is used to get responding identifier.

Telegram Examples

  • Request:

{
  "entryName": "LineControlIdentifier",
  "entryValue": "0507_091934_429_3",
  "entryToSearch": "ToolID"
}
  • Response:

{
    "entryValue": "ToolID_test1"
}

GetMapping

Method Resource Route Parameters (Path) Parameters (Query) Return Codes

POST

/GetMapping

/api/v1/commands/getMapping

(query) entryName (query) entryValue

200, 204, 404, 500

Description

This command is used to get mapping by entryName and entryValue. The parameter of entryName and entryValue can search out one part. The response is a mapping list.

Telegram Examples

  • Request:

{
  "entryName": "MappingReference1",
  "entryValue": "mpr1"
}
  • Response:

{
    "idMappingList": [
        {
            "idMappingId": "3D4AC241-BA8E-4A98-8850-93FB9CA1FC1D",
            "partIdentifier": "9B815D81-145F-4B4D-A7BA-D722F34AEEB2",
            "entryName": "LineControlIdentifier",
            "entryValue": "0507_091934_429_3"
        },
        {
            "idMappingId": "92510512-8523-4070-95ED-A8BB8242489B",
            "partIdentifier": "9B815D81-145F-4B4D-A7BA-D722F34AEEB2",
            "entryName": "SerialNumber",
            "entryValue": "SerialNumber_test1"
        },
        {
            "idMappingId": "393380FA-3209-4D16-9A83-6E874D59AA76",
            "partIdentifier": "9B815D81-145F-4B4D-A7BA-D722F34AEEB2",
            "entryName": "ToolID",
            "entryValue": "ToolID_test1"
        },
        {
            "idMappingId": "B2492A84-5EF2-492E-B62C-00521B36891A",
            "partIdentifier": "9B815D81-145F-4B4D-A7BA-D722F34AEEB2",
            "entryName": "UniqueIdentifier",
            "entryValue": "0507_091934_429_3"
        },
        {
            "idMappingId": "ECF70F76-0CD9-4867-942F-6A7806D569A9",
            "partIdentifier": "9B815D81-145F-4B4D-A7BA-D722F34AEEB2",
            "entryName": "WpcIdentifier",
            "entryValue": "WpcIdentifier_test1"
        }
    ]
}

RemoveIdMapping

Method Resource Route Parameters (Path) Parameters (Query) Return Codes

POST

/RemoveIdMapping

/api/v1/commands/removeIdmapping

(query) entryName (query) entryValue

200, 204, 404, 500

Description

This command is used to remove id mapping by entryName and entryValue. The parameter of entryName and entryValue can search out one part. The entryName should not be 'LineControlIndentifier', otherwise, it will remove failed.

Telegram Examples

  • Request:

{
  "entryName": "UniqueIdentifier",
  "entryValue": "9365e599-34fa-4c82-89bb-24d99a16e6e5"
}
  • Response: 200 = PartRoutingCreateVmdt

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/createVmdt

/api/v1/commands/VmdtPartRouting/createVmdt /api/v1/{tenantid}/commands/VmdtPartRouting/createVmdt /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/createVmdt

tenantId optional string

configScope optional string

plantNumber required integer <int32>

state required object (AssemblyLine.Contract.VmdtPartRouting.VmdtState)

partCharacteristics required object (AssemblyLine.Contract.VmdtPartRouting.PartCharacteristics)

subParts Array of objects or null (AssemblyLine.Contract.VmdtPartRouting.VmdtPartProcessingStatus)

additionalData object (AssemblyLine.Contract.VmdtPartRouting.VmdtAdditionalData)

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Creates a VMDT (Virtual Manufacturing Data Transfer) for a specific device.
The command parameter specifies the details of the VMDT to be created. Please refer to Assemblyline public api document

Request Samples

{
  "plantNumber": 0,
  "state": {
    "result": "string",
    "nioBits": "string",
    "partState": "string",
    "targetIdx": "string"
  },
  "partCharacteristics": {
    "workingCode": "string",
    "typeNo": "string",
    "typeVar": "string",
    "charge": "string",
    "routeList": "string",
    "resFileName": "string",
    "orderId": "string"
  },
  "subParts": [
    {
      "part": {
        "identifier": {
          "identifier": "string",
          "identifierType": 0
        },
        "position": "string",
        "state": {
          "result": "string",
          "nioBits": "string",
          "partState": "string",
          "targetIdx": "string"
        }
      },
      "process": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      },
      "nextProcess": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      }
    }
  ],
  "additionalData": {
    "additionalVariables": {
      "property1": "string",
      "property2": "string"
    },
    "binaryBlock": "string"
  },
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingCreateVmdt

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

DELETE

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/vmdt /api/v1/{tenantid}/commands/VmdtPartRouting/vmdt /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/vmdt

tenantId optional string

configScope optional string

reason string or null deleteSubParts boolean

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Deletes a VMDT (Virtual Manufacturing Data Transfer) for a specific device.
The command parameter specifies the details of the VMDT to be deleted. Please refer to Assemblyline public api document.

Request Samples

{
  "plantNumber": 0,
  "state": {
    "result": "string",
    "nioBits": "string",
    "partState": "string",
    "targetIdx": "string"
  },
  "partCharacteristics": {
    "workingCode": "string",
    "typeNo": "string",
    "typeVar": "string",
    "charge": "string",
    "routeList": "string",
    "resFileName": "string",
    "orderId": "string"
  },
  "subParts": [
    {
      "part": {
        "identifier": {
          "identifier": "string",
          "identifierType": 0
        },
        "position": "string",
        "state": {
          "result": "string",
          "nioBits": "string",
          "partState": "string",
          "targetIdx": "string"
        }
      },
      "process": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      },
      "nextProcess": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      }
    }
  ],
  "additionalData": {
    "additionalVariables": {
      "property1": "string",
      "property2": "string"
    },
    "binaryBlock": "string"
  },
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "reason": "string",
  "deleteSubParts": true,
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

PartRoutingCreateVmdt

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/getProcessReleaseInfo /api/v1/{tenantid}/commands/VmdtPartRouting/getProcessReleaseInfo /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/getProcessReleaseInfo

tenantId optional string

configScope optional string

reason string or null deleteSubParts boolean

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Deletes a VMDT (Virtual Manufacturing Data Transfer) for a specific device.
The command parameter specifies the details of the VMDT to be deleted. Please refer to Assemblyline public api document.

Request Samples

{
  "getAddData": true,
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}

PartRoutingMovePartFromStock

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/movePartFromStock /api/v1/{tenantid}/commands/VmdtPartRouting/movePartFromStock /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/movePartFromStock

tenantId optional string

configScope optional string

reason stockIdentifier required string non-empty

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Moves a part from the stock to a specified location.
The command parameter specifies the details of the part and the location to which it should be moved. Please refer to Assemblyline public api document.

Request Samples

{
  "stockIdentifier": "string",
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingMovePartFromSupermarket

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/movePartFromSupermarket /api/v1/{tenantid}/commands/VmdtPartRouting/movePartFromSupermarket /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/movePartFromSupermarket

tenantId optional string

configScope optional string

supermarketName required string non-empty

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Moves a part from the stock to a specified location.
The command parameter specifies the details of the part and the location to which it should be moved. Please refer to Assemblyline public api document.

Request Samples

{
  "supermarketName": "string",
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingMovePartFromSupermarket

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/movePartToStock /api/v1/{tenantid}/commands/VmdtPartRouting/movePartToStock /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/movePartToStock

tenantId optional string

configScope optional string

stockIdentifier required string non-empty

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Moves a part to the stock.
The command parameter specifies the details of the part and the stock to which it should be moved. Please refer to Assemblyline public api document.

Request Samples

{
  "stockIdentifier": "string",
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingMovePartToSupermarket

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/movePartToSupermarket /api/v1/{tenantid}/commands/VmdtPartRouting/movePartToSupermarket /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/movePartToSupermarket

tenantId optional string

configScope optional string

supermarketName required string non-empty

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Moves a part to the supermarket.
The command parameter specifies the details of the part and the supermarket to which it should be moved. Please refer to Assemblyline public api document.

Request Samples

{
  "supermarketName": "string",
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingRenameIdentifier

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/\{tenantid}/commands/VmdtPartRouting/renameIdentifier /api/v1/{tenantid}/commands/VmdtPartRouting/renameIdentifier /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/renameIdentifier

tenantId optional string

configScope optional string

newIdentifier required string non-empty

emptyWpcProperties object (AssemblyLine.Contract.VmdtPartRouting.Requests.VmdtPartRoutingEmptyWpcProperties)

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Renames the identifier of a specific device.
The command parameter specifies the details of the identifier to be renamed. Please refer to Assemblyline public api document.

Request Samples

{
  "newIdentifier": "string",
  "emptyWpcProperties": {
    "create": true,
    "routeListName": "string",
    "targetIdx": "string"
  },
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingReplaceRouteList

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/replaceRouteList /api/v1/{tenantid}/commands/VmdtPartRouting/replaceRouteList /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/replaceRouteList

tenantId optional string

configScope optional string

routeList required string non-empty

nextProcessingStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo)

subparts Array of objects or null (AssemblyLine.Contract.VmdtPartRouting.VmdtPartProcessingStatus)

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Replaces the route list of a specific device.
The command parameter specifies the details of the route list to be replaced. Please refer to Assemblyline public api document.

Request Samples

{
  "routeList": "string",
  "nextProcessingStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "subparts": [
    {
      "part": {
        "identifier": {
          "identifier": "string",
          "identifierType": 0
        },
        "position": "string",
        "state": {
          "result": "string",
          "nioBits": "string",
          "partState": "string",
          "targetIdx": "string"
        }
      },
      "process": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      },
      "nextProcess": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      }
    }
  ],
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingSetHeaderVar

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/setHeaderVar /api/v1/{tenantid}/commands/VmdtPartRouting/setHeaderVar /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/setHeaderVar

tenantId optional string

configScope optional string

varToBeChanged object (AssemblyLine.Contract.VmdtPartRouting.Requests.HeaderVar)

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Sets a header variable for a specific device.
The command parameter specifies the details of the header variable to be set. Please refer to Assemblyline public api document.

Request Samples

{
  "varToBeChanged": {
    "headerIdentifier": 0,
    "value": "string"
  },
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingSetPartState

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/setPartState /api/v1/{tenantid}/commands/VmdtPartRouting/setPartState /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/setPartState

tenantId optional string

configScope optional string

state required object (AssemblyLine.Contract.VmdtPartRouting.VmdtState)

subparts Array of objects or null (AssemblyLine.Contract.VmdtPartRouting.VmdtPartState)

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Sets the state of a specific part.
The command parameter specifies the details of the part state to be set. Please refer to Assemblyline public api document.

Request Samples

{
  "state": {
    "result": "string",
    "nioBits": "string",
    "partState": "string",
    "targetIdx": "string"
  },
  "subparts": [
    {
      "identifier": {
        "identifier": "string",
        "identifierType": 0
      },
      "position": "string",
      "state": {
        "result": "string",
        "nioBits": "string",
        "partState": "string",
        "targetIdx": "string"
      }
    }
  ],
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

PartRoutingSetStation

Method Resource Route Parameters (Path) Request Body schema: (application/json) Return Codes

POST

/vmdt

/api/v1/{tenantid}/commands/VmdtPartRouting/setStation /api/v1/{tenantid}/commands/VmdtPartRouting/setStation /api/v1/{tenantid}/{configscope}/commands/VmdtPartRouting/setStation

tenantId optional string

configScope optional string

state object (AssemblyLine.Contract.VmdtPartRouting.VmdtState)

nextStationInfo object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo)

subparts Array of objects or null (AssemblyLine.Contract.VmdtPartRouting.VmdtPartProcessingStatus)

additionalData object (AssemblyLine.Contract.VmdtPartRouting.VmdtAdditionalData)

identifier required object (AssemblyLine.Contract.VmdtPartRouting.PartId)

callerStationInfo required object (AssemblyLine.Contract.VmdtPartRouting.VmdtProcessingStepInfo) messageId integer <int32>

200, 400, 401, 403, 500

Without tenantId parameter in route URL will use tenant0 as tenantId which is configured in umbrella HELM
Without configScope parameter in route URL will use Default Scope as configScope which is configured in umbrella HELM as default database connections

Description

Sets the station for a specific device.
The command parameter specifies the details of the station to be set. Please refer to Assemblyline public api document.

Request Samples

{
  "state": {
    "result": "string",
    "nioBits": "string",
    "partState": "string",
    "targetIdx": "string"
  },
  "nextStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "subparts": [
    {
      "part": {
        "identifier": {
          "identifier": "string",
          "identifierType": 0
        },
        "position": "string",
        "state": {
          "result": "string",
          "nioBits": "string",
          "partState": "string",
          "targetIdx": "string"
        }
      },
      "process": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      },
      "nextProcess": {
        "processNumber": "string",
        "station": {
          "lineNumber": "string",
          "statNo": "string",
          "statIdx": "string",
          "fuNo": "string",
          "workPos": "string"
        }
      }
    }
  ],
  "additionalData": {
    "additionalVariables": {
      "property1": "string",
      "property2": "string"
    },
    "binaryBlock": "string"
  },
  "identifier": {
    "identifier": "string",
    "identifierType": 0
  },
  "callerStationInfo": {
    "processNumber": "string",
    "station": {
      "lineNumber": "string",
      "statNo": "string",
      "statIdx": "string",
      "fuNo": "string",
      "workPos": "string"
    }
  },
  "messageId": 0
}

Response Samples

  • 200:

{
  "resultState": 0,
  "resultText": "string",
  "errorText": "string"
}
  • 400:

{
  "type": "string",
  "title": "string",
  "status": "string",
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

Contents

© Robert Bosch Manufacturing Solutions GmbH 2023-2025, all rights reserved

Changelog Corporate information Legal notice Data protection notice Third party licenses