Category Archives: WinCC OA

WinCC OA Android App…

I now also built an Android App to visualize my Home-Automation data (powered by WinCC OA –

Because i did the same for iOS and used C# for coding (Xamarin Framework) i was able to share about 70% of the code between both Apps (iOS and Android). So there was no need to re-implement the communication and business logic!! All i had to do is to get familiar with the Android-UI…



2013-09-23 12.55.05 Screenshot_2013-09-23-16-26-26 2013-09-22 07.09.00 test1 Screenshot_2013-09-22-14-09-48


SmartHome Architecture…

SmartHome…. high availability architecture… but just for fun and to play with some technologies. The system is also able to run on a single system like the “Scada Local” system, and this is just an old Lenovo Netbook with 2GB RAM…


Used software: Arduino, RaspberryPI, WinCC OA, VMWare ESXi, iSCSI-Target TGT, Oracle-Solaris, Oracle-Linux, Oracle-Database & ASM, Oracle-Apex…

Progamming the Arduino was pretty cool, this cheap micro controller is very powerful 🙂  Implemented a rough interface to WinCC OA (powerful SCADA software made by Siemens/ETM)…


WinCC OA APEX jQuery mobile smartphone demo…


Simple mobile smartphone demo build with Oracle APEX connected to WinCC OA (

It tooks me about 3h… and i had NO experience with APEX!

The map does not work on (my) android smartphone… maybe a known bug:

Connectivity WinCC OA <=> Oracle:

Oracle-DB => PL/SQL => XMLRPC-Calls => WinCC OA (Control)

Currently the connectivity library is very basic, but if i will find some time i will extend it… and you will find it on sourceforge…

if you have a valid Oracle database license APEX is for free! if you don’t have one, you can use Oracle-XE, which you can get for free…. 🙂

Oracle and APEX meets WinCC OA…

With a “few lines” of code Oracle is able to fetch WinCC OA values over XMLRPC webservice – current and history values (WinCC OA RDB-Manager is not needed).

WinCC OA values can be queried with “natural” Oracle SQL Statements

select t.dp, wccoa.dpGet(t.dp||'.int'), wccoa.dpGet(t.dp||'.int:_online.._stime')
from dpnames t where dp like 'Example%'

So, it is also easy to create “WinCC OA” (Web)APEX Applications!

Update C# WinCC Open Architecture Connector

New “C# WinCC Open Architecture Connector” version.

2013.01.01: Added Proxy-Server with client/server TCP/IP connection for dp(Query)Connects and unsolicited data multicasting.

2012.12.23: Added a very simple C# WinForms application which displays two datapoints, waits
for value changes and values can also be set by a button out of the WinForms application.

2012.12.23: Added WaitDataMulti function which performs a dpWaitForValue. Can be used to wait
for a change of value of data points of a taglist.


C# WinCC OA Connector…

C# WinCC OA Connector


Communication can be done directly with XMLRPC or with the included proxy:

  • .net remoting is used for “commands” from the client to the proxy (dpConnect, dpQueryConnect).
  • tcp (xml over tcp) for sending unsolicited data/events from the proxy to the client.

The proxy also acts as a distributor – if clients have the same dp(Query)Connects,
the connects in the control are done once, and the proxy will forward it to the clients.

Added functions for dpConnects without using “Tag” Objects (the Tag objects where created for
mobile clients). Now it is easy to create for example a dpQueryConnect. The callback function
is just a C# delegate:

// create server and client objects
client = new WCCOAClient (ProxyHost, ProxyRemotePort, ProxyClientPort);

// start and connect
client.Start ();
client.Connect ();
client.DpQueryConnectSingle((object s, ArrayList a) => {
}, “SELECT ‘_online.._value’, ‘_online.._stime’ FROM ‘*.**'”);

The proxy (WCCOANetServer.exe) must be started on a server (can, but must not be, the WCCOA Server).

Works fine with MonoTouch and Mono for Android!

WinCC Open Architecture must run the included Ctrl-Script xmlnet_server.ctl

GPLv3 License is used for the public domain.
If you plan to use it in a CLOSED SOURCE project,
please get in touch with me – !