Data Acquisition with IFS/OPC

Introduction

The IFS/OPC Client is an OPC (OLE for Process Control) compliant solution that provides automation equipment the ability to communicate with IFS Applications. This technology can be applied when you want to collect data from the production environment, for example when an event occurs in the production system that requires some maintenance activity. The OPC client makes it possible to configure subscriptions for equipment values and trigger events based on these values. It then communicates these values to IFS Applications through its connection to the business APIs such as the one for Equipment and Preventive and Corrective Maintenance. In this way, a work order may be created automatically in IFS Maintenance, without any user involvement. Business APIs for other components of IFS Applications can also easily be added, for example in distribution for weight counting truck loads on arrival, in manufacturing for real-time counting of the output of high speed lines, and several other areas.

How it works

Data gathered from automation equipment such as PLCs (Programmable Logic Controllers), DCSs (Distributed Control Systems) and RTUs (Remote Terminal Units) can be passed onto one or more OPC Servers. The OPC Servers then translate the data into a standard based OPC format.

The IFS/OPC Client can then be configured to connect to the OPC Servers which can lie anywhere on the network and not necessarily on the same host as the client. The client acquires the servers' data and then routes this data to IFS Applications through its connection to the IFS/Extended Server.

The IFS Extended Server exposes Business APIs that will serve as the destination of the data acquired by the IFS/OPC Client. The Business APIs let you communicate with IFS Applications to perform a particular function such as Receive Object Measurement and Create Fault Report. In this way, the IFS/OPC client is a passage for the real time updating of business objects in IFS Applications based on data gathered from shop-floor devices.

Configuration

In preparing the IFC/OPC client to acquire OPC data, the configuration of an XML file that specifies the conditions to govern the filtering, processing and relaying of OPC data to IFS Applications should be initially addressed.

Configuration in the OPC client consists of four item levels; Servers, Groups, Tags and Events. A typical configuration encompasses these four item levels as well as connection information to IFS Extended Server and a Subscriber definition on the Groups. Further functionality can be introduced with the configuration of Server, Group and Tag variables and VB script definitions on the events.

A server in the configuration tree establishes and holds the connection to an OPC Server. It can also hold variable definitions. At a time, the OPC client can hold connections to one or more OPC servers. You can connect to and disconnect from an OPC server independent from other servers.

A group is a collection of one or more OPC items, connected to one Business API to gather and transfer data. It can also hold variable definitions. The OPC subscription time is specified on the group as the rate at which you want to retrieve data changes from the OPC Server to the OPC client. The group also contains subscriber information, i.e. what Business API in the IFS Extended Server should be used for communication with IFS Applications. Selecting an operation in the subscriber definition will create a template input definition. The input definition consists of one or more parameters that you need to associate with variable definitions, hard coded values or other references.

A tag is a combination of an object and an OPC property in the OPC server. E.g. A pump (PM-312-PA-001) and a property for that object (operational time). Tags can be of several data types. The definition of the data type in the tag definition should match the data type for the tag in the OPC server. Variables can also be stored on this level.

An event is an occurrence that is triggered based on a predefined condition and value. An event can be of six types but there can only exist one event of each type on a particular tag. When an event is triggered, the input record’s parameters are filled with data which is then sent to the Extended Server.

VB scripts can be defined on the event level. Scripts customize the behavior of events. The script will only be executed if it is activated and the event has been triggered. Event scripts generally seek to send debug messages to the event log, compare OPC values, make calculations or update values in the OPC server.

Data Acquisition in Operation

When a fully developed configuration is at hand, two alternatives are available through which data can be acquired using the IFS OPC system. It can be acquired by executing the IFS/OPC Client Administrator, generally during configuration and testing periods. It can also be acquired by executing the IFS/OPC Service which will run as a background process taking into account the configuration settings. The service should be registered and started and is generally opted for when data acquisition works as intended and the plant is live.

When the value of an OPC tag changes on the OPC Server, the OPC client receives and updates the changed value on the OPC tag in the client. It then asses the value for the need to trigger an event. If the OPC value, reaches the value of the event condition the corresponding event is triggered and the VB script, if defined and activated on the event, will be executed. The event log can be seen at the bottom of the OPC client. The triggered event then relays data to the corresponding business object in IFS Applications through the extended server connection using the subscriber information of the group.

Understanding Event Triggers

When an event is triggered depends on the subscription rate and the type of event. For On Before Read and On After Read events to be triggered the value should change from one sampling point to the other. For other event types, both the event rule and a change in its value should be met at the given subscription time/sampling point.

If an On After Read event is defined and sampling corresponds to the following graph, events will be triggered in all intersections except when Time=4 since the value in all other cases has changed from the previous sample point/intersection.

If an On Limit Exceeded event has been defined and sampling corresponds to the following graph, an event will not be triggered when Time=1 and Time= 2 due to the fact that the value has not changed since the previous interval. The subscriber will be triggered when Time=3 since the value has changed but because the value is below the defined limit, the event will not be triggered. When Time=4, both the value changed and limit exceeded conditions are met so the event will be triggered. Even if the value continues to grow after Time=4, no more events will be triggered until the value has gone down below the limit.

Based on the above, it may seem wise to set a very short subscription time. However, the downside of this approach is that it will load the network, and since the automation side operates in real time, peaks still might be missed since the OPC client can’t operate in real time i.e. the millisecond domain. If it is crucial to catch fast peaks, it is probably better to catch this on the automation side, raise a flag when a condition is met, and monitor that flag from the OPC Client instead.

If an On Value Exceeded event is defined and sampling corresponds to the following graph, events will be triggered when Time=3 and Time=4 due to the fact that both the value has changed and that the first interval was passed in 3 and the next interval (First Interval + Interval) was passed in 4. When Time=6, 7 and 8 no events will be generated since the value is reset and doesn't exceed the next interval (First Interval + 2*Interval).

The triggering of events beyond Time=8 depends on the setting of the Reset value if underpass first interval check box. If this check box is not selected, no further events will fire until the value exceeds First Interval + 2*Interval. However, if it is selected, the value in the OPC Client is reset and the next event will fire when the First Interval is exceeded.

 

 

§