VC2OPCUA: Visual Components OPC-UA plugin


We have developed a Plugin for Visual Components that we would like to share with you.

The plugin exposes model information through OPC-UA, a trending communication protocol, creating a server that interacts with the Visual Components model bidirectionally.

You can find the source code here:
You can find a Windows installer here:

When the plugin is installed, a new panel will be added to the main window in Visual Components.


After the server is started, all active components are exposed in an OPCUA server (only accesible locally by your own PC), that allows access (read/write) to their signals and properties.

Companies using Visual Components for simulating their shopfloor and OPC-UA as the communication protocol for their machines might find this plugin useful, since factory control programs can use the same protocol both for production and for simulation. We believe this can result in more agile improvements of shopfloor control programs, and faster deployment from simulation to real production.

The plugin is free, under GPL 2.0 license. Feel free to use it.


Hi! I could not discover the server by a UA client. Can you please help with example steps screen shots? Thanks in advance

I have the same issue, did you solve the problem already? I’m trying to discover a server at opc.tcp://localhost:4840.

Thanks in advance!

(–edit I used the wrong server address, opc.tcp://localhost:51210/UA/VcOpcUaServer is the correct one and it connects!)

Hi, I cannot connect to Visual Components 4.2 via UA Expert client. (Server plugin is loaded and started in VC4.2 normally) Is there a 4.2 compatible release? Thanks

@Sergey OPC UA uses client-server model. Visual Components acts as OPC UA client. Visual Components can connect to one or more OPC UA servers. UaExpert acts as OPC UA client. No client-client connection.

@zesty hi, there is Vc2opcua plugin for VC, which works as Opc ua server, in this topic. It works as Opc ua server and you can connect via client and expose model info. It is not working now with me. I think because of VC 4.2 update

It would be great to have this plugin running in VC4.3.

I made a fork of the repo and fixed it to work with VC 4.3.0.
Only did basic testing with VC Premium, and don’t really intent on continuing the development.

Get it here (see release v1.0.3)


Hi ,

It is connecting fine without any headache , The issue that VC is not updating the time stamp as a server .

Client can read the data from VC2OPC at the time of connecting only for one time .

I think there is a small bug in the code which preventing VC2OPC from refreshing the data .

Tested on VC4.2.2 Essentials with (Integration Object & DeviceXplorer) .

I would expect OPC UA clients to have an option whether to rely on server-side timestamps or not.

I have used another OPC client where time refreshing is generated from the client not the server , Still the same issue .

Even after closing the connection between the client & VC2OPC server then reconnecting again , Values are not changed .

Only by stopping the VC2OPC server from VC then “Start The Server” again the values will be refreshed which means VC2OPC is reading the values of all available components one time only during starting the server .

It is a great tool to VC to have OPC server instead of available OPC client from VC company but unfortunately it is not doing the proposed job .

At least my version of the server works fine with VC 4.3.0 Premium. Both direct reading and using subscriptions receive new values in UAExpert and in the Connectivity OPC UA client.

Some things to note:

  • The server doesn’t seem to react to component (and probably other) name changes after it has been started.
  • Signals only work when simulation is running. This is part of how VC works, not an issue in the OPC UA server

First of all ; I would like to submit my thanks for your kind prompt replies .

Going back to the serve issue ; What ever you have shown in the video is working fine with me without any problem .

The issue when you are trying to monitor robot joints values .

Just try to add a robot , you can still monitor all signals & other prosperities like profile selection , multi grasp selection , etc. only joints values are not updating at all , You need to close the server connection then reconnecting it so values in the client will be updated .

Why robot joint values are not updated ? this is is the issue .

Appreciate if you can try to add a robot model & monitor its joint values .

Some properties in VC unfortunately don’t trigger their value change events due to various technical reasons. I think joint value properties in components and some properties of the statistics behavior are examples of such.

This might be the root cause why the values don’t update on the OPC UA server either.

If you had VC Professional you could create a Python script to periodically to copy the values from “joint value properties” to regular properties, which probably would then update on the server as well.

An interesting hack would be to use the Connectivity feature’s OPC UA client to read values from the simulation DOF objects and write them to some dummy properties or signals on the VC OPC UA server. At that point it could be easier to just set up another OPC UA server and use the Connectivity feature to push the data you need there instead.

Thank you for your kind reply .

Now it is more clear to me the main cause of the problem .

Let’s see what we can do with this limitation as you stated .

i install the vc2opcuaSetup.msi ,but i can not find the panel at the software,(version 4.1) can you tell me ?i need help ,thankyou !

I can’t find it either

  • I can’t find this interface in the software

Can you tell me how can I use it?