Category Archives: WinCC OA

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…

Mobile-Phone-App: http://www.rocworks.at/wordpress/rocvmobile/

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)…

SmartHomeArchitecture

WinCC OA APEX jQuery mobile smartphone demo…

Apex-Mobile-Demo

Simple mobile smartphone demo build with Oracle APEX connected to WinCC OA (www.etm.at).

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: http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-42-known-issues-1863578.html

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

http://sourceforge.net/projects/roc-winccoa-lib/?source=directory

CommDiagram

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) => {
WCCOABase.PrintArrayList(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 – andres.vogler@gmail.com !