Skip to content
  • There are no suggestions because the search field is empty.

Körber PAS-X MSI interface via Web Services

This article captures a sample solution for integrating HighByte Intelligence Hub with Körber PAS-X MSI interface using Web Services?

What Does This Article Cover?

Körber PAS-X is a MES (Manufacturing Execution System).  MSI (Message Based Shopfloor Integration) enables message-based communication between PAS-X and industrial systems.  An Intelligence Hub solution can be created to integrate with Körber PAS-X MSI.  It uses the PAS-X MSI interface to integrate the two systems via Web Services.   

This example shows how the Intelligence Hub can receive a request from MSI.  Intelligence Hub will capture the request and process it.  Once the request is completed, it will publish the results back to MSI.  Here is a diagram of how the components work together.

 

 

Solution Assumptions

PAS-X MSI Communications

This solution represents one common pattern of PAS-X initiating transactional requests to obtain results from external systems (e.g., DCS, SCADA, Historian, ERP, File Server).

This follows an Asynchronous Request-Callback communication pattern:

Request

  1. PAS-X posts a request to Intelligence Hub
  2. Intelligence Hub acknowledges receipt

Callback

  1. Intelligence Hub posts the result to PAS-X
  2. PAS-X acknowledges receipt

A request and its result are two separate one-way HTTP POST transfers, one in each direction. PAS-X and Intelligence Hub each act as both an HTTP client and an HTTP server, and each transfer is acknowledged in the HTTP response. An acknowledgment confirms receipt only. Success or failure of the work arrives in the callback.

This solution is not a complete and exhaustive guide to PAS-X MSI integration. PAS-X is highly configurable, and implementations vary. Involve the team responsible for the PAS-X implementation to configure the Master Batch Record (MBR) and its messaging interfaces.


Database

This solution uses the embedded SQLite database in Intelligence Hub to persist MSI messages and track their state. Persisting messages and their state improves overall reliability with error handling and retry logic.

The embedded SQLite database is used to make this solution self-contained and portable. In a production environment, it strongly recommended to use an external SQL database. Decoupling state from any single Intelligence Hub runtime makes the solution more resilient. It also simplifies high availability, upgrades and patching.

 

Configuration

Here is a download for the configuration used in this article.   Download the configuration and import it into Intelligence Hub.

Only use version 4.5 if you are running version 4.5 or above.

Download Version 4.1

Download Version 4.5

The configuration has two connections.   

  • MsiMessages is an SQLite connection that is used to store messages received by MSI.
  • MsiRestClient is a Rest Client connection to publish results back to MSI. (Make sure to turn the toggle on when using the stage in a pipeline)

The configuration has nine models.

  • MsiMessageContainer_MsiOrderParameterMessage is MSIMessageContainer for sending messages from HighByte Intelligence Hub to MSI.   It has a child MsiOrderParameterMessage.
  • TransferResult is the message structure for an acknowledge back to MSI after receiving message.
  • MsiOrderParameterMessage is a structure for determining how messages should be processed.  It can contain children based on the following types.
    • ParameterBoolean is a parameter message for exchanging booleans.
    • ParameterDateTime is a parameter message for exchanging datetimes.
    • ParameterDouble is a parameter message for exchanging doubles.
    • ParameterFloat is a parameter message for exchanging floats.
    • ParameterString is a parameter message for exchanging strings.

    The configuration has three pipelines

    • ReceiveMSIRequestAndSendAcknowledge is used to receive the MSI message and send an acknowledgement message.  It also is used to save the messages received into an SQLite database.
    • ProcessMSIRequestAndPublishResult is used to read the messages from the SQLite database, process the result and send the result to MSI.
    • DeleteClosedOrderParameterMessages is used to delete closed messages from the SQLite database. 

     

    Intelligence Hub Settings

    The following Intelligence Hub Settings are needed to work with the SimuMsi Client example:

    • HTTP Server - Set the Allow Login Authentication option to On.
    • REST Data - Set the Enabled option to On.

      • Once done, press Save on the Application Setting for these setting to take effect.

       

      User Setup

      Set up a user.  Give this user the admin Role to run this solution. The user can be configured with less claims as the admin role.  The appropriate claims would need access to underlying pipelines and the connection used in this solution.

       

      Connection Setup

      Navigate to the MsiRESTClient.   Press the 'X' on the Password field to clear out the existing Password.   Next, enter 'password' in the Password field and press Save.  This is the same password that will be entered as the password for the server in the SimuJMsi section.

       

      SimuMsi Client

      Here is the interface description XML file that is used in the SimuMsi simulation client.

      Interface Descriptions

      Download these interface descriptions in a file with an XML extension.    Place this file into its own folder.    Then, open SimuMsi.   Set the General Settings to the folder of the interface descriptions.   Once done, restart the SimuMsi client.

      Next, make sure the Simulation Mode is set to MES [Web Service].   

      Open Connection Settings.    First, set the Architecture to Client and Server.

      Make sure the setting match what is defined in the tables below. The Client Password is the password for the user in Intelligence Hub.   The Server password should be "password". 

      Web Service Configuration

      Client

      Field Value
      Msi System Name MsiSystem
      Msi System ID 2003
      External Identifier MsiSystemId
      Authenticate Url http://localhost:8885/data/v1/login
      PostMessage Url http://localhost:8885/data/v1/pipelines/ReceiveMSIRequestAndSendAcknowledge/value
      User Name administrator
      Password ••••••••
      Check Full Active ☐
      Check Per Request Active ☐
      Request Timeout 30000
      Max Number Of Retries 0
      Time Between Next Retry 3000
      Wait For Server To Finish First 0
      Token Expiry Time 30
      Full Reset On Error Active ☐
      Acknowledge As Msi Container ☑

      Server

      Field Value
      Web Server Url http://localhost:9000
      User Name user
      Password password
      Access Token Url /getAccessToken
      Token Expiration Time 90
      Certificate Expiry Check Time 1
      Msi Acknowledgement ☑
      Key for ClientId (empty)
      Key for ClientSecret (empty)
      Use Legacy mode (no ClientId) ☑
      Use OAuth ☑

      Press Apply and then OK when completed editing. Now, you are ready to use the SimuMsi client. Next, you first need to create a message.   Select Create Message.   Then, populate the parameters and press Save.

      Press "Start Simulation" to start the SimuMSI simulation.  Next, press Load Message to load and send the message.  Once loaded, press Send.

      If everything is configured correctly, you should first see your sent message.  Then after a few seconds, response should be received.

      Click on the response to view the result with weight.

      If the messages are not sent as expected, check the Services.log, which will be generated in the same folder, and SimuMsi.exe.    Also, turn on Replay in the Pipelines in Intelligence Hub to make sure they are functioning properly.  You can also check the Events Log in Intelligence Hub.

       

      Solution Video

      Here is a video that shows this integration between PAS-X MSI SimuMsi and HighByte Intelligence Hub.

      This video is older so it might not fully reflect the current configuration.

       

      Additional Resources