A Modelica library for OPC Classic DA (Data Access)

Package Contents


A step-by-step guide to running your first model with OPCClassic


A collection of examples to help you get started


Package with basic read and write blocks for types Real, Integer, and Boolean


This package contains connectors and partial models specific to the OPCClassic


Package with all Modelica functions used by the OPCClassic


Type and unit definitions


Package containing icons


A model used for setting up server parameters (name of host and server)


What Is OPCClassic?

OPCClassic is a library that allows you to create Modelica models that connect to OPC servers in the real world.

What Can You Do with OPCClassic?

  • Connect to OPC servers in a variety of domains, such as oil and gas, industrial energy, and life sciences, all in real time
  • Incorporate production data from the real world into your models, for example, as block inputs or reference signals
  • Connect to several servers from one model
  • Write model data directly to OPC servers
  • Monitor production data in real time
  • Perform data analyses
  • Design control systems and test them on real data

How Does It work?

OPCClassic is based on the OPC Classic specification, which means that it is based on Microsoft Windows technology using the COM/DCOM (Distributed Component Object Model) for the exchange of data between software components.

OPCClassic uses the external, open source client library OPCClientToolKit (modified source can be found here) to establish communication with the OPC server. In addition, a number of external C functions have been created as a complement to the client library, which create a communication interface between the Modelica world and the server. The library contains several Modelica functions that call these external C functions to set up communication with the desired server and item on that server.


OPCClassic supports the OPC Classic specification for Data Access (OPC DA). Other OPC Classic specifications, such as OPC Alarms and Events (OPC AE) and OPC Historical Data Access (OPC HDA), are currently not supported.

Supported OPC types include Real, Integer, and Boolean. Other OPC specific types, such as date and currency, are currently not supported.

Since OPCClassic is based on OPC Classic, it is restricted to Windows only.


Ask questions about System Modeler and OPCClassic:


Get details about the OPC protocol:


Learn more about System Modeler:


Contact support:


Licensed under Wolfram System Modeler™ Library License Agreement

For license conditions, see here.


This software includes OPCClientToolKit, which is licensed under version 2.1 of the GNU Library General Public License, the full text of which is available here:  https://www.gnu.org/licenses/lgpl-2.1.txt.


Copyright (C) 2005 Mark C. Beharrell

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

The modified source of OPCClientToolKit can be found here

Wolfram Language



New in Version 2.0

  • Library compatible with Modelica Standard Library 4.0.0

New in Version 1.2.1

  • Fix Modelica Language incompatibilities

New in Version 1.2.0

  • Library is now available for free for Wolfram System Modeler users
  • Use OpcEnum service to lookup OPC server names
  • If OPC server lookup fails, list all available OPC DA servers on the host
  • Support connecting to OPC servers using the CLSID instead of the server name
  • Added a command line program opcdalist for listing OPC DA servers on a host

New in Version 1.1.3

  • Improved Modelica language compliance

New in Version 1.1.2

  • Improved Modelica language compliance

New in Version 1.1.1

  • Now compatible with Modelica library version 3.2.3

New in Version 1.1

  • Added stored plots to examples for easy plotting of relevant variables
  • Improved icons for blocks
  • Now compatible with Modelica library version 3.2.2