MANUFACTURING / INTEGRATION / AUTOMATION
LIVE TOOL

IPC-CFX message workbench

Look up IPC-CFX (IPC-2591) messages by topic, generate a message envelope from a form, validate messages and logs against definitions derived from the official IPC CFX SDK, and see how CFX travels over AMQP 1.0: exchange, subject, queue, and direct requests. It does not connect to any broker.

Tool

Message definitions derived from the IPC CFX SDK 2.1.1 source (Apache-2.0, commit 880255d, CFX 2.1), not from the IPC-2591 document itself. Nothing here connects to a broker or an endpoint.

Topics and messages

183 messages shown.

An event is published to everyone who subscribes (WorkCompleted, FaultOccurred …); a request goes to one endpoint, which answers with the matching response. The search needs JavaScript; without it the whole catalogue is shown.

CFX · 10

Root CFX Topic. All CFX endpoints must implement this topic

  • CFX.AreYouThereRequestRequest

    Allows any CFX endpoint to determine if another particular CFX endpoint is present on a CFX network

    Members: CFXHandle (string)

  • CFX.AreYouThereResponseResponse

    Allows any CFX endpoint to determine if another particular CFX endpoint is present on a CFX network

    Members: Result (RequestResult), CFXHandle (string), RequestNetworkUri (string), RequestTargetAddress (string)

  • CFX.EndpointConnectedEvent

    Sent when an Endpoint joins a CFX network after it has been established

    Members: CFXHandle (string), RequestNetworkUri (string), RequestTargetAddress (string)

  • CFX.EndpointShuttingDownEvent

    Sent when an endpoint is about to shut down and disconnect from a CFX network

    Members: CFXHandle (string)

  • CFX.GetEndpointInformationRequestRequest

    Requests detailed information about a single endpoint, as specified by its CFX Handle

    Members: CFXHandle (string)

  • CFX.GetEndpointInformationResponseResponse

    Allows any CFX endpoint to request the capabilities of a specified single endpoint

    Members: Result (RequestResult), EndpointInformation (Endpoint)

  • CFX.HeartbeatEventsince 1.2

    All endpoints are obligated to publish a Heartbeast message on all Publish type no less than once every 5 minutes

    Members: CFXHandle (string), HeartbeatFrequency (duration (TimeSpan)), ActiveFaults (list of Fault), ActiveRecipes (list of ActiveRecipe)

  • CFX.NotSupportedResponseResponse

    Allows a CFX endpoint to indicate to the sender of a request that it is not able to answer to this particular request There can be several reasons : - Unknown request/response message : appeared in a more recent version of CFX than the one used by the…

    Members: RequestResult (RequestResult)

  • CFX.WhoIsThereRequestRequest

    Allows any CFX endpoint to discover all of the other endpoints participating in this CFX network, and their capabilities

    Members: SupportedTopicQueryType (SupportedTopicQueryType), SupportedTopics (list of SupportedTopic)

  • CFX.WhoIsThereResponseResponse

    Allows any CFX endpoint to discover all of the other endpoints participating in this CFX network, and their capabilities

    Members: Result (RequestResult), CFXHandle (string), RequestNetworkUri (string), RequestTargetAddress (string)

CFX.InformationSystem.DataTransfer · 2

CFX Topic implemented by enterprise information systems (such as an MES or ERP system) and other types of endpoints capable of performing secure data transfer

  • CFX.InformationSystem.DataTransfer.FileTransferRequestRequestsince 1.4

    Sent by an endpoint to another endpoint to initiate a file transfer

    Members: FileTitle (string), FileLocation (string), TransferDirection (FileTransferDirection), TransferMode (FileTransferMode), File (File)

  • CFX.InformationSystem.DataTransfer.FileTransferResponseResponsesince 1.4

    Sent by an endpoint in response to a FileTransferRequest. File transfers may proceed either from the initiator/requester to the recipient (PUSH Mode), OR from recipient to initiator/requester (PULL Mode)

    Members: Result (RequestResult), FileTitle (string), FileLocation (string), TransferMode (FileTransferMode), File (File)

CFX.InformationSystem.OperatorValidation · 2

CFX Topic implemented by enterprise information systems (such as an MES or ERP system) that are capable of validating operators qualified to perform certain tasks

  • CFX.InformationSystem.OperatorValidation.ValidateOperatorRequestRequestsince 1.7

    Request that an operator take action now or be responsible for a process endpoint

    Members: Operator (Operator)

  • CFX.InformationSystem.OperatorValidation.ValidateOperatorResponseResponsesince 1.7

    Response to a request that the operator's login was successful or not

    Members: Result (RequestResult)

CFX.InformationSystem.ProductionScheduling · 2

CFX Topic implemented by enterprise information systems (such as an MES or ERP system) that are capable of scheduling production orders

  • CFX.InformationSystem.ProductionScheduling.WorkOrdersScheduledEvent

    Sent when a Work Order (or Work Order sub-batch) has been scheduled to be executed at a particular work area at a particular time

    Members: ScheduledWorkOrders (list of ScheduledWorkOrder)

  • CFX.InformationSystem.ProductionScheduling.WorkOrdersUnscheduledEvent

    Sent when a previously scheduled Work Order (or Work Order sub-batch) has been unscheduled at a particular work area at a particular time

    Members: ScheduledWorkOrderIdentifiers (list of ScheduledWorkOrderIdentifier)

CFX.InformationSystem.TopicValidation · 2

CFX Topic implemented by an endpoint which allows other endpoints to discover the validation types supported by a the responding endpoint

  • CFX.InformationSystem.TopicValidation.ValidateTopicRequestRequestsince 2.0

    Request that a specific topic needs to be validated before continuing the process / operations

    Members: ValidationTopic (ValidationTopic), ValidationTopicData (ValidationData)

  • CFX.InformationSystem.TopicValidation.ValidateTopicResponseResponsesince 2.0

    Response to a request that a specific topic (e.g., tool, material carrier, recipe, material) was successfull validated or not

    Members: ValidationTopic (ValidationTopic), Result (list of RequestResult)

CFX.InformationSystem.UnitValidation · 2

CFX Topic implemented by enterprise information systems (such as an MES or ERP system) capable of validating the production history and status of a production unit, and its readiness for processing

  • CFX.InformationSystem.UnitValidation.ValidateUnitsRequestRequest

    Sent from a process endpoint in order to validate the identifier of the next production unit

    Members: Validations (list of ValidationType), PrimaryIdentifier (string), HermesIdentifier (string), Units (list of UnitPosition), Lane (integer or null)

  • CFX.InformationSystem.UnitValidation.ValidateUnitsResponseResponse

    Sent from a process endpoint in order to validate the identifier of the next production unit

    Members: Result (RequestResult), PrimaryResult (ValidationResult), ValidationResults (list of ValidationResult)

CFX.InformationSystem.WorkOrderManagement · 5

CFX Topic implemented by enterprise information systems (such as an MES or ERP system) involved in the creation and management of production Work Orders and Work Order sub-batches

  • CFX.InformationSystem.WorkOrderManagement.WorkOrderQuantityUpdatedEvent

    Sent when the status of a Work Order (or Work Order sub-batch) has been updated

    Members: WorkOrderIdentifier (WorkOrderIdentifier), NewQuantity (number), PreviousQuantity (number or null)

  • CFX.InformationSystem.WorkOrderManagement.WorkOrderStatusUpdatedEvent

    Sent when the status of a Work Order (or Work Order sub-batch) has been updated

    Members: WorkOrderIdentifier (WorkOrderIdentifier), NewStatus (WorkOrderStatus), PreviousStatus (WorkOrderStatus)

  • CFX.InformationSystem.WorkOrderManagement.WorkOrdersCreatedEvent

    Sent when a new production Work Order is created by an information system (such as ERP or MES)

    Members: NewOrders (list of WorkOrder)

  • CFX.InformationSystem.WorkOrderManagement.WorkOrdersDeletedEvent

    Sent when a Work Order (or sub-batch of a Work Order) has been deleted within an information system (such as ERP or MES)

    Members: WorkOrderIdentifiers (list of WorkOrderIdentifier)

  • CFX.InformationSystem.WorkOrderManagement.WorkOrdersUpdatedEvent

    A Work Order (or Work Order sub-batch) has been modified / updated within an information systsem (such as ERP or MES)

    Members: UpdatedOrders (list of WorkOrder)

CFX.Maintenance · 12

CFX Topic implemented by endpoints which manage maintenance information

  • CFX.Maintenance.GetResourceInformationRequestRequestsince 1.3

    Requests detailed resource information about a single endpoint, as specified by its CFX Handle

    Members: CFXHandle (string)

  • CFX.Maintenance.GetResourceInformationResponseResponsesince 1.3

    Allows any CFX endpoint to request the resource and sub-resources of a specified single endpoint

    Members: Result (RequestResult), ResourceInformation (Resource)

  • CFX.Maintenance.GetResourceMaintenanceAndServiceRequestRequestsince 1.3

    Requests detailed resource maintenance information about a single endpoint, as specified by its CFX Handle

    Members: CFXHandle (string)

  • CFX.Maintenance.GetResourceMaintenanceAndServiceResponseResponsesince 1.3

    Allows any CFX endpoint to request the resource and sub-resources maintenance and services of a specified single endpoint

    Members: Result (RequestResult), Machine (Resource), MachineServiceAndMaintenanceData (list of ServiceAndMaintenanceData)

  • CFX.Maintenance.GetResourceMaintenanceStatusRequestRequestsince 1.3

    Dynamic response from external systems with detailed information about a resource maintenance status

    Members: Machine (Resource), ResourceMaintenanceDetails (list of ResourceInformation)

  • CFX.Maintenance.GetResourceMaintenanceStatusResponseResponsesince 1.3

    Dynamic response from external systems with detailed information about a resource maintenance status

    Members: Result (RequestResult), Machine (Resource), ResourceMaintenanceDetails (list of ResourceInformation)

  • CFX.Maintenance.GetResourceSetupRequestRequestsince 1.3

    Requests detailed resource setup information about a single endpoint, as specified by its CFX Handle

    Members: CFXHandle (string)

  • CFX.Maintenance.GetResourceSetupResponseResponsesince 1.3

    Allows any CFX endpoint to request the resource and sub-resources setup of a specified single endpoint

    Members: Result (RequestResult), ResourceSetup (Resource)

  • CFX.Maintenance.ResourceInformationEventEventsince 1.3

    Allows any CFX endpoint to send the resource and sub-resources of a specified single endpoint

    Members: EventDateTime (date and time or null), ResourceInformation (Resource)

  • CFX.Maintenance.ResourceMaintenanceAndServiceEventEventsince 1.3

    Allows any CFX endpoint to send the resource and sub-resources maintenance and services of a specified single endpoint

    Members: EventDateTime (date and time or null), Machine (Resource), MachineServiceAndMaintenanceData (list of ServiceAndMaintenanceData)

  • CFX.Maintenance.ResourceMaintenanceStatusEventEventsince 1.3

    Dynamic event from external systems with detailed information about a resource maintenance status

    Members: EventDateTime (date and time or null), Machine (Resource), ResourceMaintenanceDetails (list of ResourceInformation)

  • CFX.Maintenance.ResourceSetupEventEventsince 1.3

    Allows any CFX endpoint to send data about the resource and sub-resources setup

    Members: EventDateTime (date and time or null), ResourceSetup (Resource)

CFX.Materials.Management · 13

Messages related to the management of raw materials. Includes creation and labeling of material instances, decommissioning spent materials, etc

  • CFX.Materials.Management.BlockMaterialsRequestRequest

    A request to block one or more particular lots or instances of material from use in production

    Members: MaterialPackageIdentifiers (list of string), Reason (BlockReason), Comments (string), Blocker (Operator)

  • CFX.Materials.Management.BlockMaterialsResponseResponse

    Response to a request block one or more instances of material from use in production

    Members: Result (RequestResult), MaterialsPackagesNotBlocked (list of string)

  • CFX.Materials.Management.GetMaterialInformationRequestRequest

    A request (typically to an factory level software system) to obtain detailed information about a particular material package (or collection of material packages)

    Members: MaterialPackageIdentifiers (list of string)

  • CFX.Materials.Management.GetMaterialInformationResponseResponse

    Response to a request to obtain detailed information about one or more material packages

    Members: Result (RequestResult), Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MaterialsChainSplitEvent

    Sent when a certain material package chain is is been modified by opening the splice plate and therefore create 2 material chains out of one

    Members: SplittedMaterialPackage (MaterialPackage), RemainingMaterialPackage (MaterialPackage)

  • CFX.Materials.Management.MaterialsConsumedEvent

    Sent by a process endpoint when materials are consumed

    Members: ConsumedMaterials (list of ConsumedMaterial)

  • CFX.Materials.Management.MaterialsInitializedEvent

    Sent whan one or more new material packages are introduced into the factory environment

    Members: Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MaterialsJoinedEvent

    Sent when two separate material packages (containing the same part) are joined together

    Members: LeadingMaterialPackage (MaterialPackage), TrailingMaterialPackage (MaterialPackage)

  • CFX.Materials.Management.MaterialsModifiedEvent

    Sent when the attributes of one or more specific material packages have been altered

    Members: Reason (MaterialModifyReason), Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MaterialsRetiredEvent

    Sent when one or more material packages are fully exhausted / depleted

    Members: Materials (list of MaterialPackage)

  • CFX.Materials.Management.MaterialsSplitEvent

    Sent when a a certain quantity of material is removed from a material package to form a new material package

    Members: SourceMaterialPackageIdentifier (string), SourceMaterialPackageRemainingQuantity (number), NewMaterialPackageIdentifier (string), NewMaterialPackageQuantity (number)

  • CFX.Materials.Management.UnblockMaterialsRequestRequest

    A request to unblock one or more particular lots or instances of material from use in production

    Members: MaterialPackageIdentifiers (list of string), Comments (string), Unblocker (Operator)

  • CFX.Materials.Management.UnblockMaterialsResponseResponse

    Response to a request to unblock one or more particular lots or instances of material from use in production

    Members: Result (RequestResult)

CFX.Materials.Management.MSDManagement · 5

Specialized messages related to moisture sensitive materials management

  • CFX.Materials.Management.MSDManagement.MaterialsExpiredEvent

    Sent when one or more MSD material packages have reached their maximum exposure time, and may no longer be used in production (unless reconditioned)

    Members: Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MSDManagement.MaterialsOpenedEvent

    Sent when one or more MSD material packages have been opened and exposed to the environment

    Members: Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MSDManagement.MaterialsPlacedInDryStorageEvent

    Sent when one or more MSD material packages have been placed into dry storage

    Members: Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MSDManagement.MaterialsRemovedFromDryStorageEvent

    Sent when one or more MSD material packages have been removed from dry storage

    Members: Materials (list of MaterialPackageDetail)

  • CFX.Materials.Management.MSDManagement.MaterialsRestoredEvent

    Sent when one or more MSD material packages have been reconditioned, and restored for use in production

    Members: Materials (list of MaterialPackageDetail)

CFX.Materials.Storage · 10

Related to events that occur when materials are stored, including consumption

  • CFX.Materials.Storage.GetLoadedMaterialsRequestRequest

    A request to a material storage endpoint to obtain a list of all the materials currently stored within the endpoint

    Members: LocationIdentifiers (list of string), ResourceUniqueIdentifier (string)

  • CFX.Materials.Storage.GetLoadedMaterialsResponseResponse

    A response to a request to a material storage endpoint to obtain a list of all the materials currently stored within the endpoint

    Members: Result (RequestResult), Materials (list of MaterialLocation)

  • CFX.Materials.Storage.MaterialCarriersLoadedEvent

    Sent when a material carrier (typcially containing 1 or more material packages) is loaded at an endpoint

    Members: Carriers (list of MaterialCarrierLocation)

  • CFX.Materials.Storage.MaterialCarriersUnloadedEvent

    Sent when a material carrier (typcially containing 1 or more material packages) is unloaded at an endpoint

    Members: CarrierIdentifiers (list of string)

  • CFX.Materials.Storage.MaterialsEmptyEvent

    Sent when one or more material packages stored at a particular location become fully exhausted / depleted

    Members: EmptyMaterials (list of MaterialLocation)

  • CFX.Materials.Storage.MaterialsLoadedEvent

    Sent when a material package (potentially contained within a material carrier) is loaded at an endpoint

    Members: Materials (list of MaterialLocation)

  • CFX.Materials.Storage.MaterialsUnloadedEvent

    Sent when a material package (potentially contained within a material carrier) is unloaded at an endpoint

    Members: MaterialPackageIdentifiers (list of string)

  • CFX.Materials.Storage.SplicePointDetectedEvent

    Sent when an endpoint detects a splice point. A splice point is a juncture between two different material packages of the same part that have been pre-joined prior to loading at the material location, or were joined-in-place during production

    Members: DepletedMaterial (MaterialLocation), NewlyActiveMaterial (MaterialLocation)

  • CFX.Materials.Storage.ValidateStationSetupRequestRequest

    Request to a process endpoint to validate that the currently loaded materials comply with the setup requirements supplied in this request

    Members: SetupRequirements (StationSetupRequirements)

  • CFX.Materials.Storage.ValidateStationSetupResponseResponse

    Response to a request to a process endpoint to validate that the currently loaded materials comply with the setup requirements supplied by the request

    Members: Result (RequestResult)

CFX.Materials.Transport · 10

Messages used for the transportation of raw materials from one location in the factory to another location

  • CFX.Materials.Transport.CheckpointReachedEvent

    Sent when a group of materials or production units that is being transported through the factory environment arrives at a way point along its path source to destination

    Members: TransportOrderId (string), Comments (string), Status (TransportOrderStatus), TrackedBy (Operator), RelatedWorkOrderId (string), Checkpoint (string), FinalDestination (string), NextCheckpoint (string)

  • CFX.Materials.Transport.CreateTransportOrderRequestRequestsince 2.0

    Message request to create transport order; it shall contain all necessary data for one or more transports while leaving sufficient flexibility to make use of different Fleet Manager capabilities

    Members: TransportOrderId (string), RelatedWorkOrderId (string), Materials (TransportedMaterial), Source (string), FinalDestination (string), StartedBy (string), Priority (TransportPriority), TargetDeliveryTime (date and time)

  • CFX.Materials.Transport.CreateTransportOrderResponseResponsesince 2.0

    Message response for a corresponding transport order request

    Members: TransportOrderId (string), FleetManagerTransportOrderId (string), Result (RequestResult)

  • CFX.Materials.Transport.GetTransportOrderStatusRequestRequest

    A request to an endpoint (such as an upper level system, MES, ERP, etc.) to check the status of a particular transport order

    Members: TransportOrderId (string)

  • CFX.Materials.Transport.GetTransportOrderStatusResponseResponse

    A response to a request to an endpoint (such as an upper level system, MES, ERP, etc.) to check the status of a particular transport order

    Members: Result (RequestResult), TransportOrderId (string), FinalDestination (string), Status (TransportOrderStatus), History (list of TransportOrderHistory)

  • CFX.Materials.Transport.StartTransferRequestRequestsince 2.0

    This message informs a machine that an AMR has arrived at its location and materials can be transferred from/to the AMR to/from the machine

    Members: TransportOrderId (string), RelatedWorkOrderId (string), Materials (TransportedMaterial), StartedBy (string)

  • CFX.Materials.Transport.StartTransferResponseResponsesince 2.0

    This message is the response to the corresponding StartTransferRequest

    Members: TransportOrderId (string), Result (RequestResult)

  • CFX.Materials.Transport.TransportOrderCompletedEvent

    Sent when a transport order has arrived at its final destination

    Members: TransportOrderId (string), Comments (string), AcceptedBy (Operator), RelatedWorkOrderId (string), FinalDestination (string)

  • CFX.Materials.Transport.TransportOrderStartedEvent

    Sent when a new transport order is initiated. A transport order is a directive to move materials / WIP / production units from one location to another

    Members: TransportOrderId (string), StartedBy (Operator), Comments (string), Status (TransportOrderStatus), RelatedWorkOrderId (string), Source (string), FinalDestination (string), NextCheckpoint (string) … 9 in all

  • CFX.Materials.Transport.TransportOrderStatusChangedEvent

    Sent when the status of an existing transport order has changed

    Members: TransportOrderId (string), Comments (string), Status (TransportOrderStatus), UpdatedBy (Operator), RelatedWorkOrderId (string), Source (string), FinalDestination (string), NextCheckpoint (string)

CFX.Production · 46

CFX Topic implemented by endpoints which are involved in the process of creating and testing production units

  • CFX.Production.ActivateRecipeRequestRequest

    Used to activate a named recipe at the process endpoint. The response indicates whether this was successful or not

    Members: RecipeName (string), Revision (string), Lane (integer or null), Stage (Stage)

  • CFX.Production.ActivateRecipeResponseResponse

    Response to a request to activate a named recipe at the process endpoint

    Members: Result (RequestResult)

  • CFX.Production.ActivitiesExecutedEvent

    Indicates that one or more activities have been performed in the course of processing one or more production units

    Members: TransactionID (GUID), Stage (Stage), Activities (list of Activity)

  • CFX.Production.BlockMaterialLocationsRequestRequest

    Sent to a process endpoint to block or disable a particular material setup location

    Members: Reason (BlockReason), Comments (string), Locations (list of MaterialLocation)

  • CFX.Production.BlockMaterialLocationsResponseResponse

    Sent to a process endpoint to block or disable a particular material setup location

    Members: Result (RequestResult)

  • CFX.Production.GetActiveRecipeRequestRequest

    Used to request the name of the recipe that is activated at a process endpoint

    Members: Lane (integer or null), Stage (Stage)

  • CFX.Production.GetActiveRecipeResponseResponse

    Used to request the name of the recipe that is activated at a process endpoint

    Members: Result (RequestResult), ActiveRecipeName (string), ActiveRecipeRevision (string)

  • CFX.Production.GetAvailableRecipesRequestRequestsince 1.4

    This message is used to request a process endpoint for the available recipes

    Members: Path (string), MaxCount (integer)

  • CFX.Production.GetAvailableRecipesResponseResponsesince 1.4

    Response to a request of getting the available recipes. The response includes a list of recipes (name, revision), but not their data

    Members: Result (RequestResult), ActualCount (integer), RecipeCount (integer), Recipes (list of RecipeIdentifier)

  • CFX.Production.GetRecipeRequestRequest

    This message is used to request a process endpoint for the details of a named recipe

    Members: RecipeName (string), Revision (string)

  • CFX.Production.GetRecipeResponseResponse

    This message is used to request a process endpoint for the details of a named recipe

    Members: Result (RequestResult), Recipe (Recipe)

  • CFX.Production.GetRequiredSetupRequestRequest

    Sent to a process endpoint to request the setup requirements of the active recipe

    Members: Lane (integer or null), Stage (Stage)

  • CFX.Production.GetRequiredSetupResponseResponse

    Response from a process endpoint to a request to obtain the setup requirements of the active recipe

    Members: Result (RequestResult), RecipeName (string), RecipeRevision (string), Lane (integer or null), Stage (Stage), SetupRequirements (StationSetupRequirements)

  • CFX.Production.GetUnitInfoRequestRequestsince 1.4

    This message is used to request a process endpoint for the details of a list of Unit

    Members: PrimaryIdentifier (string), HermesIdentifier (string), UnitIdentifier (string)

  • CFX.Production.GetUnitInfoResponseResponsesince 1.4

    Response from a process endpoint to a request to obtatin Unit information

    Members: Result (RequestResult), PrimaryIdentifier (string), HermesIdentifier (string), UnitCount (integer), Units (list of UnitInfo)

  • CFX.Production.LocalRecipeChangedEventsince 2.0

    Sent by a process endpoint to indicate the activation of a recipe by its name

    Members: TransactionID (GUID), Lane (integer or null), Stage (Stage), LocalRecipeChanges (list of LocalRecipeChange)

  • CFX.Production.LockStationRequestRequest

    Request that the endpoint cease active operation (locked) as soon as practically possible at a process endpoint

    Members: Lane (integer or null), Stage (Stage), Reason (LockReason), Requestor (Operator)

  • CFX.Production.LockStationResponseResponse

    Response to a request that the endpoint cease active operation (locked) as soon as practically possible at a process endpoint

    Members: Result (RequestResult)

  • CFX.Production.OperatorActivatedEvent

    Indicates that an operator is now active at or responsible for a process endpoint

    Members: Operator (Operator)

  • CFX.Production.OperatorDeactivatedEvent

    Indicates that an activated operator is no longer active or responsible at a process endpoint

    Members: Operator (Operator)

  • CFX.Production.ReadingsRecordedEvent

    A process endpoint uses this message to send a data object that has been acquired for example from a sensor or a reading taken during processing of the unit

    Members: TransactionId (GUID or null), Readings (list of Reading)

  • CFX.Production.RecipeActivatedEvent

    Sent by a process endpoint to indicate the activation of a recipe by its name

    Members: RecipeName (string), Revision (string), Lane (integer or null), Stage (Stage), ExpectedCycleTime (number), ExpectedWorkTime (number or null), ExpectedUnitsPerWorkTransaction (number), NumberOfComponentsPerUnit (number) … 12 in all

  • CFX.Production.RecipeDeactivatedEventsince 1.2

    Sent by a process endpoint to indicate the deactivation of a recipe by its name

    Members: RecipeName (string), Revision (string), Lane (integer or null), Stage (Stage), WorkOrderIdentifier (WorkOrderIdentifier)

  • CFX.Production.RecipeModifiedEvent

    Sent by a process endpoint to indicate that a change has been made to a specified named recipe

    Members: RecipeName (string), Revision (string), ModifiedBy (Operator), Reason (RecipeModificationReason), Notes (string), WorkOrderIdentifier (WorkOrderIdentifier)

  • CFX.Production.SetupRequirementsChangedEvent

    Sent whenever the setup requirement of materials, tools, etc. are changed for any reason at a process endpoint

    Members: Lane (integer or null), Stage (Stage)

  • CFX.Production.ToolsCleanedEventsince 1.5

    This message is used when a tool such as stencil or squeegee is loaded into a cleaning machine

    Members: TransactionID (GUID), Tools (list of Tool), CleaningSteps (list of CleaningStep)

  • CFX.Production.ToolsLoadedEventsince 1.5

    This message is used when a tool such as stencil or squeegee is loaded into a cleaning machine

    Members: TransactionID (GUID), Tools (list of Tool)

  • CFX.Production.ToolsUnloadedEventsince 1.5

    This message is used when a tool such as stencil or squeegee is unloaded from a cleaning machine

    Members: TransactionID (GUID), Tools (list of Tool)

  • CFX.Production.ToolsUsedEvent

    Sent by a process endpoint when one or more tools are used in the course of performing an assembly operation

    Members: TransactionId (GUID), UsedTools (list of ToolUsed)

  • CFX.Production.UnblockMaterialLocationsRequestRequest

    Sent to a process endpoint to release a material locations block which was put into place by a previously sent BlockMaterialLocationsRequest

    Members: Locations (list of MaterialLocation)

  • CFX.Production.UnblockMaterialLocationsResponseResponse

    Response to UnblockMaterialLocationsRequest

    Members: Result (RequestResult)

  • CFX.Production.UnitsArrivedEvent

    Sent when production units physically arrives at a process endpoint, prior to any work or other activity commencing

    Members: PrimaryIdentifier (string), HermesIdentifier (string), UnitCount (integer), Units (list of UnitPosition), Lane (integer or null)

  • CFX.Production.UnitsDepartedEvent

    Sent by a process endpoint when units physically depart from a process endpoint

    Members: PrimaryIdentifier (string), HermesIdentifier (string), UnitCount (integer), Units (list of UnitPosition), Lane (integer or null)

  • CFX.Production.UnitsDisqualifiedEvent

    Sent by a process endpoint to identify that a specific production unit is disqualified or scrapped

    Members: PrimaryIdentifier (string), HermesIdentifier (string), Reason (DisqualificationReason), Comments (string), UnitCount (integer), Units (list of UnitPosition)

  • CFX.Production.UnitsInitializedEvent

    Sent when one or more production units are first introduced into the production process flow

    Members: TransactionID (GUID or null), PrimaryIdentifier (string), HermesIdentifier (string), WorkOrderIdentifier (WorkOrderIdentifier), UnitCount (integer), Units (list of UnitPosition)

  • CFX.Production.UnlockStationRequestRequest

    Request that a process endpoint resume production, following a previous lock

    Members: Lane (integer or null), Stage (Stage), Requestor (Operator)

  • CFX.Production.UnlockStationResponseResponse

    Response to a request for a process endpoint to resume production, following a previous lock

    Members: Result (RequestResult)

  • CFX.Production.UpdateRecipeRequestRequest

    This message is used to send a named recipe to a process endpoint

    Members: Overwrite (true / false), Recipe (Recipe), Reason (RecipeModificationReason or null)

  • CFX.Production.UpdateRecipeResponseResponse

    This message is used to send a named recipe to a process endpoint

    Members: Result (RequestResult)

  • CFX.Production.WorkCompletedEvent

    Sent by a process endpoint when all work has been completed at a process endpoint

    Members: TransactionID (GUID), Result (WorkResult), PrimaryIdentifier (string), HermesIdentifier (string), UnitCount (integer), Units (list of UnitPosition), PerformanceImpacts (list of PerformanceImpact)

  • CFX.Production.WorkOrderActionExecutedEventsince 1.2

    Sent when a non-added value action (out of production) relative to a work order is started, aborted or completed by a process endpoint

    Members: WorkOrderActionInstanceId (GUID), WorkOrderIdentifier (WorkOrderIdentifier), TimeStamp (date and time), Type (WorkOrderActionType), State (WorkOrderActionState), Comments (string), RelevantSurface (Surface), RecipeName (string) … 10 in all

  • CFX.Production.WorkStageCompletedEvent

    Sent by a process endpoint to indicate that a stage has been completed

    Members: TransactionID (GUID), Stage (Stage), Result (WorkResult), PerformanceImpacts (list of PerformanceImpact)

  • CFX.Production.WorkStagePausedEvent

    Sent when activity pauses for some reason at a stage of the process endpoint

    Members: TransactionID (GUID), Stage (Stage), PauseReason (WorkStagePauseReason)

  • CFX.Production.WorkStageResumedEvent

    Sent when activity recommences at a stage within a process endpoint, following a WorkStagePaused message

    Members: TransactionID (GUID), Stage (Stage)

  • CFX.Production.WorkStageStartedEvent

    Sent by a process endpoint when the work-stage for a unit or group of units starts

    Members: TransactionID (GUID), Stage (Stage)

  • CFX.Production.WorkStartedEvent

    Sent by a process endpoint when the work-cycle for a unit or group of units starts Example for version 2.0 and below: Example for version 2.1 and above:

    Members: PrimaryIdentifier (string), HermesIdentifier (string), TransactionID (GUID), Lane (integer or null), UnitCount (integer), Units (list of UnitPosition), RecipeName (string), Revision (string) … 10 in all

CFX.Production.Application · 2

CFX Topic implemented by endpoints which are involved in the application of materials to production units, such as fluids, adhesives, metals, etc

  • CFX.Production.Application.MaterialsAppliedEvent

    Sent when material is applied to a production unit, such as glue, adhesives, coatings, solder, paste, etc

    Members: TransactionId (GUID), AppliedMaterials (list of InstalledMaterial)

  • CFX.Production.Application.MaterialsUnappliedEvent

    Sent when material is unapplied or removed from a production unit, as in the case of paste being wiped clean, for example

    Members: TransactionId (GUID), UnappliedMaterials (list of UninstalledMaterial)

CFX.Production.Application.Solder · 1

CFX Topic implemented by endpoints which are involved in the soldering of production units

  • CFX.Production.Application.Solder.PCBSelectiveSolderedEvent

    Message sent upon completion of the selective soldering process This was an early message; the standard has since moved to the UnitsProcessed with SelectiveSolderPCBProcessData as the data being sent

    Members: TransactionId (GUID), HeaderData (SelectiveSolderData), SolderedPCBs (list of SelectiveSolderedPCB)

CFX.Production.Assembly · 3

Messages are used by a production resource performing any form of assembly of production units

  • CFX.Production.Assembly.MaterialsInstalledEvent

    Sent by a process endpoint when one or more materials (see note) are installed on to a production unit

    Members: TransactionId (GUID), InstalledMaterials (list of InstalledMaterial)

  • CFX.Production.Assembly.MaterialsUninstalledEvent

    Sent by a process endpoint when one or more materials (see note) are removed from a production unit

    Members: TransactionId (GUID), UninstalledMaterials (list of UninstalledMaterial)

  • CFX.Production.Assembly.UnitsPersonalizedEvent

    Sent by a process endpoint when a configuration or assignment is made (example MAC Address)

    Members: TransactionId (GUID), PersonalizedUnits (list of PersonalizedUnit)

CFX.Production.Assembly.PressInsertion · 3

  • CFX.Production.Assembly.PressInsertion.ConditionCompletedEvent

    Sent by a press insertion machine when a condition has been completed

    Members: TransactionID (GUID), ResultOfCondition (StatusResult)

  • CFX.Production.Assembly.PressInsertion.GetConditionPermissionRequestRequest

    This message is used to request a process endpoint for permission to proceed with the recipe based on the results of a condition sequence action

    Members: TransactionID (GUID), ConditionStep (ConditionStep), Data (string)

  • CFX.Production.Assembly.PressInsertion.GetConditionPermissionResponseResponse

    This message is used to grant or reject permission for a process endpoint to proceed with the recipe based on the results of a condition sequence action

    Members: TransactionID (GUID), ConditionStep (ConditionStep), Result (RequestResult)

CFX.Production.Hermes · 6

  • CFX.Production.Hermes.GetMagazineDataRequestRequestsince 1.3

    Sent from a Hermes endpoint to request magazine data

    Members: MagazineId (string)

  • CFX.Production.Hermes.GetMagazineDataResponseResponsesince 1.3

    Reponse to a request by a Hermes enabled endpoint to acquire information related to a particular magazine

    Members: Result (RequestResult), MagazineData (Magazine)

  • CFX.Production.Hermes.GetWorkOrderDataRequestRequest

    Used by an endpoint to acquire information related to a particular work order (typically at the beginning of a Hermes enabled line)

    Members: WorkOrderIdentifier (WorkOrderIdentifier), UnitIdentifier (string)

  • CFX.Production.Hermes.GetWorkOrderDataResponseResponse

    Reponse to a request by a Hermes enabled endpoint to acquire information related to a particular work order

    Members: Result (RequestResult), WorkOrderIdentifier (WorkOrderIdentifier), ProductTypeId (string), Length (number), Width (number), Thickness (number), TopClearanceHeight (number), BottomClearanceHeight (number) … 12 in all

  • CFX.Production.Hermes.MagazineArrivedEventsince 1.3

    Event triggered by a Hermes enabled endpoint when a magazine arrived

    Members: MagazineData (Magazine)

  • CFX.Production.Hermes.MagazineDepartedEventsince 1.3

    Event triggered by a Hermes enabled endpoint when a magazine departed

    Members: MagazineData (Magazine)

CFX.Production.LoadingAndUnloading · 2

Implemented when a production resource is capable of loading or unloading production units into any type of fixture or carrier

  • CFX.Production.LoadingAndUnloading.UnitsLoadedEventsince 1.2

    Sent when a unit is loaded from any form of carrier, including fixtures, pallets, trays, tubs, totes, carts, etc

    Members: UniqueIdentifier (string), UnitCount (integer), Units (list of UnitPosition)

  • CFX.Production.LoadingAndUnloading.UnitsUnloadedEventsince 1.2

    Sent when a unit is unloaded into any form of carrier, including fixtures, pallets, trays, tubs, totes, carts, etc

    Members: UniqueIdentifier (string), UnitCount (integer), Units (list of UnitPosition)

CFX.Production.Processing · 1

CFX Topic implemented by endpoints which are involved in the processing of production units

  • CFX.Production.Processing.UnitsProcessedEvent

    Sent when an endpoint processes one or more production units within the scope of a work transaction

    Members: TransactionId (GUID), OverallResult (ProcessingResult), CommonProcessData (ProcessData), UnitProcessData (list of ProcessedUnit)

CFX.Production.ReworkAndRepair · 1

CFX Topic implemented by endpoints which are involved in the repair and rework of defective or otherwise problematic production units discovered at any point in the production process, or later

  • CFX.Production.ReworkAndRepair.UnitsRepairedEventsince 1.4

    Sent by a process endpoint when one or more units have been reworked or repaird

    Members: TransactionId (GUID), RepairOperator (Operator), RepairedUnits (list of RepairedUnit)

CFX.Production.TestAndInspection · 4

Messages used when a production resource is performing any form of test or inspection of production units, including both automated and manual inspections, of all kinds

  • CFX.Production.TestAndInspection.GetInspectionInfoRequestRequestsince 1.7

    This message is used to request a process endpoint for the inspections performed on a list of Units

    Members: PrimaryIdentifier (string), HermesIdentifier (string), Units (list of UnitInfo)

  • CFX.Production.TestAndInspection.GetInspectionInfoResponseResponsesince 1.7

    Response from a process endpoint to a request to obtatin Inspection information for a list of Unit

    Members: InspectedUnits (list of InspectedUnit)

  • CFX.Production.TestAndInspection.UnitsInspectedEvent

    Sent by a process endpoint when one or more units have been inspected

    Members: TransactionId (GUID), InspectionMethod (InspectionMethod), SamplingInformation (SamplingInformation), Inspector (Operator), RecipeName (string), RecipeRevision (string), InspectedUnits (list of InspectedUnit), InspectedPanel (InspectedPanel)

  • CFX.Production.TestAndInspection.UnitsTestedEvent

    Sent by a process endpoint when one or more units undergo a series of tests

    Members: TransactionId (GUID), TestMethod (TestMethod), Tester (Operator), RecipeName (string), RecipeRevision (string), SamplingInformation (SamplingInformation), TestedUnits (list of TestedUnit)

CFX.ResourcePerformance · 26

CFX Topic related to the performance of an endpoint (speed, OEE, fault rates, etc)

  • CFX.ResourcePerformance.CalibrationPerformedEvent

    Sent when calibration of any sort has been performed at an endpoint

    Members: Calibration (Calibration), TransactionID (GUID or null)

  • CFX.ResourcePerformance.ChangeSleepStateRequestRequestsince 1.3

    This request allows an external source to change the sleep state of a Stage or Station ChangeSleepStateResponse message that it sends back to the requester

    Members: StageName (string), NewSleepState (string)

  • CFX.ResourcePerformance.ChangeSleepStateResponseResponsesince 1.3

    Response to an external source to modify a generic configuration parameter of a process endpoint

    Members: Result (RequestResult), OldSleepState (string), NewSleepState (string), Stage (Stage), Lane (integer or null), TransitionTimeRemaining (duration (TimeSpan) or null)

  • CFX.ResourcePerformance.ConsumptionDetailEventsince 2.1

    Members: SubsystemName (string), StartTime (date and time), EndTime (date and time), EnergyUsed (number), PeakPower (number), MinimumPower (number), MeanPower (number), PowerNow (number) … 36 in all

  • CFX.ResourcePerformance.EnergyConsumedEvent

    Sent by a process endpoint on a sampled interval of between 1 minute and 1 hour to indicate the energy usage and power consumption

    Members: StartTime (date and time), EndTime (date and time), EnergyUsed (number), PeakPower (number), MinimumPower (number), MeanPower (number), PowerNow (number), PowerFactorNow (number) … 35 in all

  • CFX.ResourcePerformance.EnergyConsumptionRequestRequestsince 1.3

    This request allows an external source to inquire data regarding energy consumption of the endpoint EnergyConsumptionResponse message that it sends back to the requester

    No members.

  • CFX.ResourcePerformance.EnergyConsumptionResponseResponsesince 1.3

    Response to an external source inquiring data regarding energy consumption of the endpoint

    Members: Result (RequestResult), StartTime (date and time), EndTime (date and time), EnergyUsed (number), PeakPower (number), MinimumPower (number), MeanPower (number), PowerNow (number) … 35 in all

  • CFX.ResourcePerformance.FaultAcknowledgedEvent

    Sent when a fault has been acknowledged by the operator, but not yet corrected (cleared)

    Members: FaultOccurrenceId (GUID), Operator (Operator)

  • CFX.ResourcePerformance.FaultClearedEvent

    Sent by a process endpoint when a fault is cleared as described in a FaultOccurred message

    Members: FaultOccurrenceId (GUID), Operator (Operator)

  • CFX.ResourcePerformance.FaultOccurredEvent

    Sent by a process endpoint whenever a fault is encountered. A data structure must be included in the message related to specific equipment type

    Members: Fault (Fault)

  • CFX.ResourcePerformance.GetActiveFaultsRequestRequest

    This request allows an external source to query the equipment for a list of active faults

    No members.

  • CFX.ResourcePerformance.GetActiveFaultsResponseResponse

    Response to an external source to modify a generic configuration parameter of a process endpoint

    Members: Result (RequestResult), ActiveFaults (list of Fault)

  • CFX.ResourcePerformance.HandleFaultRequestRequest

    This request allows an external source to modify the behaviour for this dedicated fault in such a way that the equoipment itself is not indicating the operator to handle this fault

    Members: FaultOccurrenceId (GUID), HandleRemote (true / false)

  • CFX.ResourcePerformance.HandleFaultResponseResponse

    Response to an external source to modify the behaviour for the equipment to guide the operator process endpoint

    Members: Result (RequestResult)

  • CFX.ResourcePerformance.LogEntryRecordedEvent

    An informational message sent by a process endpoint regarding the something that has occurred at the station

    Members: InformationId (string), Message (string), Importance (LogImportance), Lane (integer or null), Stage (Stage), AdditionalData (LogEntryAdditionalData)

  • CFX.ResourcePerformance.MaintenancePerformedEvent

    Sent by an endpoint when maintenance has been performed. Information includes the type of maintenance, maintenance code, parts used, labor etc

    Members: MaintenanceType (MaintenanceType), MaintenanceOrderNumber (string), MaintenanceJobCode (string), ConsumedMaterials (list of ConsumedMaterial), Tasks (list of MaintenanceTask)

  • CFX.ResourcePerformance.ModifyStationParametersRequestRequest

    This request allows an external source to modify a generic configuration parameter of a process endpoint

    Members: NewParameters (list of Parameter)

  • CFX.ResourcePerformance.ModifyStationParametersResponseResponse

    Response to an external source to modify a generic configuration parameter of a process endpoint

    Members: Result (RequestResult)

  • CFX.ResourcePerformance.ProcessDataRecordedEventsince 1.5

    Cleaning Agent needs to report the status of the cleaning liquid regularly as well as an alarm if certain values go out of the allowable range

    Members: ProcessData (ProcessData)

  • CFX.ResourcePerformance.SleepStateChangedEventsince 1.3

    Sent by a process endpoint when the sleep state transitions from one state to another

    Members: OldSleepState (string), NewSleepState (string), Stage (Stage), Lane (integer or null), TransitionTimeRemaining (duration (TimeSpan) or null)

  • CFX.ResourcePerformance.StageStateChangedEvent

    Sent by a process endpoint when the production state of one of its stages transitions from one state to another per its state model

    Members: Stage (Stage), Lane (integer or null), OldState (ResourceState), OldStateDuration (duration (TimeSpan) or null), NewState (ResourceState), RelatedFault (Fault)

  • CFX.ResourcePerformance.StationOfflineEvent

    Sent by a process endpoint when it is about to transition to a state where it is not possible for further communication, for example when the endpoint is powered down, reset, put into maintenance mode, or simply set off-line

    No members.

  • CFX.ResourcePerformance.StationOnlineEvent

    Sent by a process endpoint when it is ready for communication to resume, for example, powered up, maintenance over, etc

    Members: OfflineDuration (duration (TimeSpan) or null)

  • CFX.ResourcePerformance.StationParametersModifiedEvent

    Sent by a process endpoint to indicate that an operator has modified a generic parameter or configuration setting

    Members: ModifiedParameters (list of Parameter)

  • CFX.ResourcePerformance.StationStateChangedEvent

    Sent by a process endpoint when the production state transitions from one state to another per its state model

    Members: OldState (ResourceState), OldStateDuration (duration (TimeSpan) or null), NewState (ResourceState), RelatedFault (Fault)

  • CFX.ResourcePerformance.ToolChangedEvent

    Sent when a new tool is selected for active use at a production endpoint Example 1 (Generic tool change): Example 2 (Nozzle change on SMT placement machine):

    Members: OldTool (Tool), ReturnedToHolder (ToolHolder), NewTool (Tool), LoadedFromHolder (ToolHolder)

CFX.ResourcePerformance.PressInsertion · 1

Specialized messages related to the performance of press fit equipment

  • CFX.ResourcePerformance.PressInsertion.ComponentsPressedEvent

    Sent periodically by a Press Fit machine to indicate the number of presses which were successfully or unsuccessfully completed during the sample time window

    Members: StartTime (date and time), EndTime (date and time), TotalComponentsPressed (integer), TotalComponentsNotPressed (integer)

CFX.ResourcePerformance.SMTPlacement · 1

Messages related to the performance of resources where SMT placement takes place (SMT placement equipment)

  • CFX.ResourcePerformance.SMTPlacement.ComponentsPlacedEvent

    Sent periodically by an SMT placement machine to indicate the number of placements which were successfully or unsuccessfully completed during the sample time window

    Members: StartTime (date and time), EndTime (date and time), TotalComponentsPlaced (integer), TotalComponentsNotPlaced (integer)

CFX.ResourcePerformance.SolderPastePrinting · 6

Specialized messages related to the performance of solder paste printers

  • CFX.ResourcePerformance.SolderPastePrinting.CleanSqueegeeRequestRequest

    Allows an external source to direct a request to a stencil printer to perform a squeegee clean operation

    Members: CleanTypeRequested (SMTSqueegeeCleanType)

  • CFX.ResourcePerformance.SolderPastePrinting.CleanSqueegeeResponseResponse

    Response to a request from an external source for a squeegee clean operation to be performed

    Members: Result (RequestResult)

  • CFX.ResourcePerformance.SolderPastePrinting.CleanStencilRequestRequest

    Allows an external source to direct a request to a stencil printer to perform a stencil clean operation

    Members: CleanTypeRequested (SMTStencilCleanMode)

  • CFX.ResourcePerformance.SolderPastePrinting.CleanStencilResponseResponse

    A response to a request by a remote party for a stencil printer to perform a stencil clean operation

    Members: Result (RequestResult)

  • CFX.ResourcePerformance.SolderPastePrinting.SqueegeeCleanedEvent

    Indicates that a squeegee clean operation has been performed

    Members: Squeegee (SMTSqueegee), SqueegeeCleanType (SMTSqueegeeCleanType), TimeSinceLastClean (duration (TimeSpan)), CyclesSinceLastClean (integer), SqueegeeCleanCycles (integer), SqueegeeCleanTime (duration (TimeSpan))

  • CFX.ResourcePerformance.SolderPastePrinting.StencilCleanedEvent

    Indicates that a stencil clean operation has been performed

    Members: Stencil (SMTStencil), StencilCleanMode (SMTStencilCleanMode), TimeSinceLastClean (duration (TimeSpan)), CyclesSinceLastClean (integer), StencilCleanCycles (integer), StencilCleanTime (duration (TimeSpan))

CFX.ResourcePerformance.THTInsertion · 1

Specialized messages related to the performance of through-hole insertion equipment

  • CFX.ResourcePerformance.THTInsertion.ComponentsInsertedEvent

    Sent periodically by an THT inserter to indicate the number of insertions which were successfully or unsuccessfully completed during the sample time window

    Members: StartTime (date and time), EndTime (date and time), TotalComponentsInserted (integer), TotalComponentsNotInserted (integer)

CFX.Sensor.Identification · 4

Messages for devices that are responsible to reading or scanning identification labels or tags (barcodes, RFID’s, machine vision systems, etc.)

  • CFX.Sensor.Identification.IdentifiersNotReadEvent

    Sent by an identification device (barcode scanner, RFID reader, etc.) when the device attempts to read or interpret an identifier, but is unable to do so

    Members: PositionsNotRead (list of integer)

  • CFX.Sensor.Identification.IdentifiersReadEvent

    Sent by an identification device (barcode scanner, RFID reader, etc.) when the device has identified one or more items Example 1 (Simple, single barcode read) Example 2 (Camera system capable of reading all barcodes on a multi-circuit PCB panel)

    Members: PrimaryIdentifier (string), HermesIdentifier (string), Units (list of UnitPosition)

  • CFX.Sensor.Identification.IdentifyUnitsRequestRequest

    Sent by a process endpoint to a unit identification device (such as a barcode scanner or RFID reader) to request the most recently scanned unit identifiers

    No members.

  • CFX.Sensor.Identification.IdentifyUnitsResponseResponse

    Response from a unit identification device (such as a barcode scanner or RFID reader) to a process endpoint which contains the most recently scanned unit identifiers

    Members: Result (RequestResult), PrimaryIdentifier (string), HermesIdentifier (string), Units (list of UnitPosition)

Message

CFX.Production.WorkCompleted (event): Sent by a process endpoint when all work has been completed at a process endpoint

Envelope

Message body

Empty fields are written as null. Objects that may be null start excluded: tick “Include” to fill them in. Where a member can hold a derived type, choose it under “Type ($type)”.

Units list of UnitPosition · 2 itemsoptionalOnly required if the actual identifiers were not available at the time that the trasnaction was started (at…
Units [1] UnitPosition
Units [2] UnitPosition
PerformanceImpacts list of PerformanceImpact · 0 itemsThe total amount of productive time (in ms) that is expected to process one unit or group of units (as in…

Runs in this browser. Data is not uploaded or stored.

CFX envelope (JSON)

{
  "MessageName": "CFX.Production.WorkCompleted",
  "Version": "2.1",
  "TimeStamp": "2026-10-02T08:15:42.250+03:00",
  "UniqueID": "6f1c2a3e-8d4b-4c71-9a0e-2b5d7f3c1e84",
  "Source": "FactoKit.Example.Line1.AOI1",
  "Target": null,
  "RequestID": null,
  "MessageBody": {
    "$type": "CFX.Production.WorkCompleted, CFX",
    "TransactionID": "c2e7a9d1-4f3b-4e6a-8b2c-9d0f1a7e5b36",
    "Result": "Completed",
    "PrimaryIdentifier": "PANEL-2026-0001",
    "HermesIdentifier": null,
    "UnitCount": 2,
    "Units": [
      {
        "UnitIdentifier": "PCB-2026-0001-1",
        "PositionNumber": 1,
        "PositionName": "Circuit 1",
        "X": 12.5,
        "Y": 20.0,
        "Z": null,
        "Rotation": 0.0,
        "FlipX": false,
        "FlipY": false,
        "Status": "Pass"
      },
      {
        "UnitIdentifier": "PCB-2026-0001-2",
        "PositionNumber": 2,
        "PositionName": "Circuit 2",
        "X": 112.5,
        "Y": 20.0,
        "Z": null,
        "Rotation": 0.0,
        "FlipX": false,
        "FlipY": false,
        "Status": "Pass"
      }
    ],
    "PerformanceImpacts": []
  }
}

Check of the generated message: no errors, no warnings.

    “$type” first and the members in the SDK’s order (its own, then its base classes’), as the SDK’s Newtonsoft.Json writes them; whole numbers of double and float members get “.0”, decimals keep the digits typed. The JSON Schema download is FactoKit’s schema derived from the SDK, not an official IPC schema.

    Messages

    Drop a .json, .ndjson, .jsonl, .txt or .log file on the field or open one (up to 5 MB); it is read in this browser only.

    Runs in this browser. Data is not uploaded or stored.

    Validation

    5Errors
    2Warnings
    2Documents
    arrayRead as

    2 documents (array): 1 without findings, 5 errors and 2 warnings in all.

    Documents
    DocumentLineRead asMessageErrorsWarnings
    12envelopeCFX.Production.TestAndInspection.UnitsInspected00
    293envelopeCFX.Production.WorkCompleted52
    Errors and warnings
    Line : columnDocumentSeverityWhereDescription
    2 · WorkCompletedErrorTimeStampTimeStamp: “2026-10-02T08:15:42.250” must be an ISO 8601 date and time with its offset or Z (such as 2026-10-02T08:15:30.125+03:00); the SDK requires the time zone.
    2 · WorkCompletedErrorUniqueIDUniqueID: “6f1c2a3e-8d4b-4c71-9a0e-2b5d7f3c1e8” is not a GUID (8-4-4-4-12 hex digits, such as 2c24590d-39c5-4039-96a5-91900cecedfa).
    2 · WorkCompletedErrorMessageBody.ResultMessageBody.Result: “Complete” is not a value of WorkResult: Completed, Failed, Aborted, Skipped.
    2 · WorkCompletedErrorMessageBody.UnitCountMessageBody.UnitCount: 2.0 is written with a decimal point or exponent; the SDK reads whole-number members (integer) only as digits.
    2 · WorkCompletedErrorMessageBody.Units[0].PositionNumberMessageBody.Units[0].PositionNumber: expected integer, found “1.0”. The SDK reads a whole number written as text only as digits with an optional sign.
    2 · WorkCompletedWarningMessageBody.Units[0].StatusMessageBody.Units[0].Status: written as the number 0; the SDK writes the name (“Pass”). It reads both.
    2 · WorkCompletedWarningMessageBody.Operator“Operator” is not a member of WorkCompleted; the SDK ignores it.

    An error is something the SDK would refuse or read wrongly; a warning is accepted but probably not meant. Select a line and column to jump to it in the field.

    Addresses

    Addresses as amqp://host:5672 or amqps://host:5671 (TLS). Exchange and queue in the SDK documentation’s RabbitMQ form (/exchange/name, /queue/name). Topic patterns: “*” one word, “#” zero or more words, words separated by dots. This is an explanation only: nothing is sent.

    Runs in this browser. Data is not uploaded or stored.

    How the message travels

    Routed to the queueExample message vs your queue
    event (published)Kind
    FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompletedAMQP subject
      Routing of CFX.Production.WorkCompleted from FactoKit.Example.Line1.AOI1: published over amqp://broker.example.local:5672 to /exchange/cfx.line1 with the subject FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompleted; the queue /queue/mes.line1 bound with #.CFX.Production.# receives it and passes it to the subscriber. Requests from FactoKit.Example.MES go directly to amqp://aoi1.example.local:5672, link target FactoKit.Example.Line1.AOI1, not through the broker.Publish and subscribe: through the brokerENDPOINT (publisher)FactoKit.Example.Line1.AOI1sender link → target /exchange/cfx.line1subject FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompletedBROKER broker.example.local:5672EXCHANGE/exchange/cfx.line1binding #.CFX.Production.#the example message matchesQUEUE/queue/mes.line1receiver link ← source /queue/mes.line1SUBSCRIBERMES, data collection, dashboardsRequest and response: point to point, not through the brokerREQUESTERFactoKit.Example.MESdirect connection amqp://aoi1.example.local:5672link target FactoKit.Example.Line1.AOI1 · response on the same connectionENDPOINT (request listener)FactoKit.Example.Line1.AOI1
      Boxes inside the broker frame and the binding line follow a RabbitMQ topic exchange (not verified here); the endpoint side and the direct request follow the SDK source.

      Publishing (the endpoint)

      1. The endpoint opens an AMQP 1.0 connection to the broker at amqp://broker.example.local:5672 (unencrypted: user and password travel in clear text), and a sender link whose target address is /exchange/cfx.line1.
      2. Every message is one CFX envelope as JSON (UTF-8), compressed with gzip (the SDK’s default codec; content-encoding gzip), marked durable. When the endpoint sends several envelopes in one AMQP message, the body is a JSON array of envelopes.
      3. The AMQP subject is “FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompleted” (the SDK’s default: handle, a dot, the message name); the application properties repeat the topic, the message name, the handle and the target.
      4. The SDK publishes a Heartbeat as soon as a publish channel is added and then every minute by default (the message’s own documentation asks for one at least every 5 minutes).

      Routing and subscribing (the broker)

      1. On a RabbitMQ-style broker, /exchange/cfx.line1 is an exchange (commonly a topic exchange, often one per line), and the subject “FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompleted” is used as the routing key.broker convention, not verified
      2. The queue /queue/mes.line1 is bound to cfx.line1 with the pattern “#.CFX.Production.#”: the example message is routed to it. A queue receives a copy of every message whose routing key matches one of its bindings.broker convention, not verified
      3. A subscriber (an MES, a data collector) opens its own connection to amqp://broker.example.local:5672 and a receiver link whose source address is /queue/mes.line1; the SDK’s AddSubscribeChannel does this. Several subscribers on one queue share its messages; each application that needs every message gets its own queue.
      4. Messages wait in a durable queue while its subscriber is away.broker convention, not verified
      5. The SDK keeps messages it could not send in a local spool and sends them in their original order once the connection is back.

      Request and response (point to point)

      1. Requests do not go through the broker. FactoKit.Example.MES opens an AMQP connection straight to amqp://aoi1.example.local:5672, where the endpoint listens itself, and sends the request on a link whose target address is the endpoint’s handle FactoKit.Example.Line1.AOI1.
      2. The request envelope has Source FactoKit.Example.MES, Target FactoKit.Example.Line1.AOI1 and a RequestID (the SDK fills in “REQUEST-” and a GUID when it is empty); its reply-to is a temporary address “FactoKit.Example.MES-<GUID>”.
      3. The endpoint answers on the same connection: Source FactoKit.Example.Line1.AOI1, Target FactoKit.Example.MES, the same RequestID. A request it does not handle gets a CFX.NotSupportedResponse. The SDK waits 30 s for the answer by default.
      4. An endpoint announces its request address in EndpointConnected (RequestNetworkUri, RequestTargetAddress) and in the GetEndpointInformation and AreYouThere responses.
      AMQP message of the example (WorkCompleted), as the SDK sets it
      SectionPropertyValueSet from
      HeaderdurabletrueAmqpCFXEndpoint.DurableMessages (default true)
      Propertiesmessage-id<UniqueID of the envelope>CFXEnvelope.UniqueID
      Propertiestonull (an event has no Target)CFXEnvelope.Target
      Propertiesreply-toFactoKit.Example.Line1.AOI1CFXEnvelope.Source
      Propertiescorrelation-idnullCFXEnvelope.RequestID
      PropertiessubjectFactoKit.Example.Line1.AOI1.CFX.Production.WorkCompletedSubjectFormat
      Propertiescontent-typeapplication/json; charset="utf-8"fixed
      Propertiescontent-encodinggzipAmqpCFXEndpoint.Codec (default gzip)
      Propertiescreation-time<TimeStamp of the envelope>CFXEnvelope.TimeStamp
      Application propertiescfx-topicCFX.Productionnamespace of the message
      Application propertiescfx-messageCFX.Production.WorkCompletedCFXEnvelope.MessageName
      Application propertiescfx-handleFactoKit.Example.Line1.AOI1CFXEnvelope.Source
      Application propertiescfx-targetnullCFXEnvelope.Target
      Topic exchange bindings for the subject FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompleted (broker convention, not verified)
      PatternMeaningRoutes the example
      #.CFX.Production.#your bindingyes
      #every messageyes
      FactoKit.Example.Line1.AOI1.#everything from this endpointyes
      #.CFX.Production.WorkCompletedWorkCompleted from every endpointyes
      #.CFX.Heartbeatheartbeats onlyno
      Addresses
      ItemValue
      Endpoint handleFactoKit.Example.Line1.AOI1
      Brokeramqp://broker.example.local:5672
      Publish target (exchange)/exchange/cfx.line1
      Subject / routing keyFactoKit.Example.Line1.AOI1.CFX.Production.WorkCompleted
      Queue binding#.CFX.Production.#
      Subscriber source (queue)/queue/mes.line1
      Request address of the endpointamqp://aoi1.example.local:5672
      Request link targetFactoKit.Example.Line1.AOI1
      RequesterFactoKit.Example.MES

      Download offline versionSingle HTML file · v1.6 · 751 KB · works without internet

      How the messages are checked and generated

      IPC-CFX (IPC-2591, Connected Factory Exchange) messages are JSON envelopes sent over AMQP 1.0. The tool knows 183 messages (98 events, 42 requests, 43 responses) and the structures and enumerations they use, derived from the source of the official IPC CFX SDK. Everything runs in the browser and nothing connects to a broker or an endpoint.

      Where the definitions come from

      The envelope

      What the validator reports

      An error is something the SDK would refuse or read wrongly; a warning is accepted by the SDK but probably not meant. Every finding has its line, column and JSON pointer.

      The generator

      CFX over AMQP 1.0

      Worked examples (the tool’s examples)

      1. Generator: an illustrative WorkCompleted for panel PANEL-2026-0001 with two circuits (Units at X 12.5 and 112.5 mm, Status Pass), Result Completed, sent by FactoKit.Example.Line1.AOI1. The check below the output reports no errors and no warnings.
      2. Validator: an array of two envelopes. The UnitsInspected (an AOI finding insufficient solder on R22, with a NumericMeasurement and its “$type”) passes. The WorkCompleted has deliberate mistakes: 5 errors — TimeStamp without its offset (line 96), a UniqueID one digit short, Result “Complete” (WorkResult has Completed, Failed, Aborted, Skipped), UnitCount written as 2.0, PositionNumber as the text “1.0” (the SDK reads a whole number written as text only as digits) — and 2 warnings: Status written as the number 0 (the SDK writes “Pass”) and an unknown member “Operator”.
      3. Routing: FactoKit.Example.Line1.AOI1 publishes to /exchange/cfx.line1 with the subject “FactoKit.Example.Line1.AOI1.CFX.Production.WorkCompleted”; the queue /queue/mes.line1 bound with “#.CFX.Production.#” receives it; a request from FactoKit.Example.MES (GetEndpointInformationRequest, for instance) goes directly to amqp://aoi1.example.local:5672, link target FactoKit.Example.Line1.AOI1.

      Common mistakes

      Files

      Not verified

      Questions

      What is IPC-CFX?
      IPC-CFX (Connected Factory Exchange, IPC-2591) is a standard for the messages machines and software exchange on an electronics assembly line: work started and completed, units inspected and tested, faults, materials, station states. Each message is JSON in an envelope (MessageName, Version, TimeStamp, UniqueID, Source, Target, RequestID, MessageBody) and travels over AMQP 1.0. The IPC publishes an open-source .NET SDK with the definitions of every message; this tool’s definitions are derived from it.
      What is the “$type” in a CFX message?
      The SDK serializes with Newtonsoft.Json and writes the .NET type of the body as its first member, for example "$type": "CFX.Production.WorkCompleted, CFX". It writes "$type" again wherever a derived type stands in for its base class, such as a NumericMeasurement in a list of Measurements. A reader built on the SDK needs it there, and only as the first member of the object; where the base class is abstract it cannot read the object at all without it.
      Does a CFX message need a broker?
      Events (WorkCompleted, UnitsInspected, Heartbeat …) are published to an AMQP 1.0 broker, usually to an exchange, and subscribers read them from queues. Requests and responses do not use the broker: the SDK opens a direct AMQP connection to the request address the endpoint announces. This page explains both with your addresses but connects to nothing.
      Why does a message from my machine fail here but work in our MES?
      The SDK is lenient where a validator is strict: it ignores members it does not know, fills missing ones with their default value (an empty GUID, 0, the first choice of an enumeration) and reads enumerations as names or numbers. Those are warnings here. Errors are what the SDK refuses or reads wrongly: a string where a number belongs, an unknown enumeration value, a GUID or a date in another form, a missing or wrong “$type”, a TimeStamp without its time zone.
      Are these the official CFX schemas?
      No. The message definitions are derived from the source of the official IPC CFX SDK (version 2.1.1, Apache License 2.0); the IPC-2591 document itself was not read. The JSON Schema offered for download is FactoKit’s, built from those definitions, and its rule that value-type members are required is FactoKit’s reading of the SDK. Check against the standard and your partners’ implementations.