This guide is going to show the steps that must be followed in order to test IBM App Connect Enterprise toolkit in a simple way by trying out the OPC to MQTT communication in your Windows machine. In order to simulate this scenario it will be necessary to install and configure some other software, this installation process will be explained in this guide too.

1.1. Installation of ACE

  1. Download and install ACE from: https://developer.ibm.com/integration/docs/app-connect-enterprise/get-started/
  2. After installing the program and choosing the workspace where you want to work, you are ready to start using ACE.

1.2. Installation of ACMfg which adds the manufacturing nodes

1.2.1. Prerequisites

  • Latest version of App Connect for Manufacturing (ACMfg).
    Please contact your IBM representative or Plamen Kiradjiev (kiradjiev@de.ibm.com).
  • Ensure that the IIB/ACE Toolkit is closed.
  • Ensure that all integration nodes are stopped.

1.2.2. Installation

  1. Download the latest ACMfg fix pack from FixCentral, including any latest iFix (by providing the latest fix pack as your last version).
  2. Extract the contents of the ACMfg_win64_2.0.0.2.zip to a location of your choice and run the ACMfg_win64_2.0.0.2.exe. This .zip file is provided in the folder provided.
  3. Accept license and install.
  4. This would install ACMfg at -C:Program \Files\IBM\ACMfg\2.0.0.2

1.3. Configuration of the database

In order to use ACMfg in ACE you need a container and a database working in your machine.

  1. The first thing that you must to do is install docker in your machine: https://hub.docker.com/editions/community/docker-ce-desktop-windows/. Follow the instructions provided. If you are working under Windows Home or earlier versions of Windows, please check: https://docs.docker.com/toolbox/overview/
  2. Run a DB2 container according to this section. You can find more information under: https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com. ibm.db2.luw.qb.server.doc/doc/t_install_db2CE_win_img.html.
  3. First open the terminal of your system and create a folder for your Docker image and entry it with this command.
    mkdir Docker
    cd Docker
  4. Login and pull the DB2 image required.
    docker login
    docker pull ibmcom/db2
  5. Create the .env_list.
    type nul > ".env_list"
  6. Open the file with your preferred text editor and paste the following content:
    LICENSE=accept
    DB2INSTANCE=db2inst1
    DB2INST1_PASSWORD=password
    DBNAME=testdb
    BLU=false
    ENABLE_ORACLE_COMPATIBILITY=false
    UPDATEAVAIL=NO
    TO_CREATE_SAMPLEDB=false
    REPODB=false
    IS_OSXFS=false
    PERSISTENT_HOME=false
    HADR_ENABLED=false
    ETCD_ENDPOINT=
    ETCD_USERNAME=
    ETCD_PASSWORD=
  7. Start the DB2 container.
    docker run -h db2server –name db2server –restart=always –detach –privileged=true-
    p 50000:50000 -p 55000:55000 –env-file .env_list -v db2pv:/database ibmcom/db2
  8. Access to the container.
    docker exec -ti db2server bash
  9. Inside the docker container perform the following operations in order to add a user and create the database.
    useradd acmfg
    passwd acmfg (Provide @CMfg@I3M as a password for your user)
    chage -I -1 -m 0 -M 99999 -E -1 acmfg
    su - db2inst1
    db2
  10. Now you are inside the db2 shell. Follow the next instructions in order to create the database, the steps might take a while so once you enter a command wait until the system responds.

    CREATE DATABASE ACMFG
    CONNECT TO ACMFG

    The next lines must be included in the same command:

    GRANT DBADM, CREATETAB, BINDADD, CONNECT, CREATE_NOT_FENCED,
    IMPLICIT_SCHEMA, LOAD ON DATABASE TO USER ACMFG

1.4. Connection between ACMfg and the database

Now that the database is ready you have to connect it to ACMfg.

  1. Start ACE Toolkit.
  2. From the Data Source Explorer view, right-click Database Connections folder and click New. The New Connection window opens.
  3. Set the database manager to a supported database type; DB2 for Linux, UNIX, and Windows, MySQL or Oracle.
  4. In JDBC driver select: IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0) Default. By the default you will have selected the appropriate drivers. If you have any problems and you need to download, download from here https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads. Then click on the three points, click Add JAR and search for the drivers that you downloaded.
  5. To set up the connection to the database, specify the required connection parameters according to your database type,
    such as the Database name, Host, Port number, Username, Password.
    • Database: Specify a database name (ACMFG in this case).
    • Host: The host name of your database host server (IP of the docker machine).
    • Port Number: The port number of your database server (50000 by default).
    • User name: The user name to connect to your database (ACMFG in this case).
    • Password: The password for the specified user name (Password you gave the user).
  6. Select Save password. Click Test connection and if the ping is successful, you are ready to use your database, so click Finish.
  7. Run the file ACMfgDB_Setup.sql which it is in this path in order to configure your database: C:\Program Files\IBM \ACMfg \2.0.0.2\runtime\amd64_nt_4\setup. In order to do this, right click on ACMFG database and select New SQL Script. Paste the content in ACMfgDB_Setup.sql and then right click and Run SQL.

1.5. Testing the system with a simple OPC UA communication

1.5.1. Required software

You need to install the following software in order to test your system:

1.5.2. Testing

Upload Connector Providers in order to be able to deploy OPC UA scenarios

  1. Go back to the Integration Development perspective and at the left bottom, select the integration explorer perspective.
  2. Right click on Integration Servers and select Create a local Integration Server. Put the name that you desire for your new server.
  3. Open the file in the path: C:\Users\<your user>\IBM \ACET11\workspace\<server> \<server>.conf.yaml
  4. Open it with your text editor and below ConnectorProvider: (around line 366), copy the next lines in order to update the jarsURL property of the server. The spaces are important so make sure that the lines have the exact same format as in the image.
  5. ACMfg:
    connectorClassName: ’com.ibm.industrypack.industryclient.connector.ICConnectorFactory’
    jarsURL: ’C:/Program Files/IBM/ACMfg/2.0.0.2/runtime/amd64_nt_4’


  6. Save the file.

Testing the OPC UA to MQTT communication

  1. Inside of the Integration Development perspective. Right click on Application Development window > Import… > IBM Integration > Project Interchange. Browse your SimpleOPCUAMQTT.zip and click on Finish.
  2. Open OPCUA2WIOT application > Flows > OPCUA2MQTT.msgflow. The flow is displayed in the main window.
  3. Click on OPC UA Client icon and select proprieties sub window. It’s possible that you have a trigger of Current Time implemented, select it and in the right side of this window click on Delete.
  4. In the same way, click on add. The Manufacturing perspective will be displayed. Select Counter item from Client item window.
  5. Right click on the Source icon of Data Source window and click on Add Mapping node. Named Prosys.
  6. Execute the Prosys OPC UA simulation server application and wait until you have a connection address. Then copy the TCP URL and paste it in the Server URL of the Data Source Proprieties and fulfill the rest of the parameters as is made in the next image. Click on Create Data Source.
  7. Once you are in this step, resources will be displayed in the Source Items window. These resources will allow us to use some data of our data source in the client operations. In this example Counter is the resource that will be used. In order to access this data, click in the arrow and open Objects folder, then 3:Simulation, and then select 3:Counter. In the window Client Item Properties, click on Create Client Item Tree. To check if the communication is okay, click on Counter in the Client Item and the information should be displayed in the Client Item Value window.
  8. Click on Add Trigger item value from Select window (just below Client item value window).
  9. Go back to the Integration Development perspective and in order to deploy the applications drag first ACMfg_Schemas and then drag both, OPCUA2WIoT and 0ControlFlowApp applications.

Visualization of the test case


At this point the application is already working but we need an MQTT manager which actuates as a server in order to receive the messages and publish them and an MQTT client in order to visualize the message.

  1. Open a terminal in your machine and go to the default location where mosquitto was installed. In order to do this use the following commands:
    cd ..
    cd ..
    cd "Program Files"
    cd mosquitto
    mosquitto -v

    Alternatively if you want to configure mosquitto as a service:

    • Open a power shell command prompt as administrator.
    • Change to the directory where you have installed mosquitto and type:
      ./mosquitto install
    • Mosquitto is added but you don’t get any confirmation and it isn’t started but will start on reboot.
  2. Now that you have mosquitto running, execute the MQTT.fx application, which is in the program files.
  3. Select the Subscribe field and then click on connect. Then click on the Scan button near to Topics Collector.
    test/ln1

    will be displayed as a topic.

  4. Then select
    test/ln1

    as a topic in the blank space just below the suscribe field and click on suscribe.

  5. If everything is fine, you will see displayed the MQTT messages which come from the OPC UA application as is shown in the following image.

Acknowledgements
With thanks to David Mesa Lopez for his contribution to this article

Join The Discussion

Your email address will not be published. Required fields are marked *