# OPC UA alternatives (aka Kepserver)?

**URL:** <https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962>\
**Category:** General Discussion\
**Created:** [February 13, 2018, 4:23am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962 "2018-02-13T04:23:31Z")\
**Posts on this page:** 12\
**Page:** 3

<div class="post-metadata">

**Author:** ![accyroy](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/accyroy/32/3386_2.png) [@accyroy](https://forum.inductiveautomation.com/u/accyroy)\
**Post date:** [February 25, 2018, 12:32pm UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/41 "2018-02-25T12:32:44Z")

</div>

This script will parse your CSV and enter it into the ignition historian with your RTU timestamp.

```auto
#convert the csv into an ignition dataset
import csv
path = system.file.openFile("csv")
if path != None:
	f = open(path,'rb')
	reader = csv.reader(f)
	csvlist = list(reader)
	ds=[]
	row = 0
	for x in csvlist:
		if row == 0:
			headers = x
		if row > 0:
			ds.append(x)
		row += 1
csvdataset = system.dataset.toDataSet(headers, ds)

#parse the dataset and enter the data into the historian
for row in range(csvdataset.rowCount):
	tagname = csvdataset.getValueAt(row,'tag')
	tagvalue = int(csvdataset.getValueAt(row, 'intvalue'))
	tagtimestamp = system.date.fromMillis(long(csvdataset.getValueAt(row, 't_stamp')))
	tagquality = 192
	system.tag.storeTagHistory("ign_historical","default",[tagname],[tagvalue],[tagquality],[tagtimestamp])

```

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [February 26, 2018, 12:19pm UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/42 "2018-02-26T12:19:38Z")

</div>

The values for tagnames , values, etc. are lists, so you could set the lists up in one loop and just call system.tag.storeTagHistory() once.

```auto
import csv
path = system.file.openFile("csv")
if path != None:
  f = open(path,'rb')
  reader = csv.reader(f)
  csvlist = list(reader)

  #initialize lists
  tagname = []
  tagvalue = []
  tagtimestamp = []
  tagquality = []
  headerFlag = 0

  for line in csvlist:
    # ignore first line
    if headerFlag == 0:
      headerFlag = 1
    else:
      tagname.append(line[1])
      tagvalue.append(line[2])
      tagtimestamp.append(system.date.fromMillis(long(line[3])))
      tagquality.append[192]

system.tag.storeTagHistory("ign_historical","default",[tagname],[tagvalue],[tagquality],[tagtimestamp])

```

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [March 22, 2018, 3:21am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/43 "2018-03-22T03:21:52Z")

</div>

**How to Create a Node-Red MQTT Dashboard:**

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [April 19, 2018, 3:34am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/44 "2018-04-19T03:34:06Z")

</div>

> **[Microsoft launches Azure Sphere, its new end-to-end IoT solution](https://techcrunch.com/2018/04/16/microsoft-built-its-own-custom-linux-kernel-for-its-new-iot-service/)**
>
> At a small press event in San Francisco, Microsoft today announced the launch of a secure end-to-end IoT product that focuses on microcontroller-based devices — the kind of devices that use tiny and relatively low-powered microcontrollers (MCUs) for...

[![]( " - YouTube") ](https://www.youtube.com/watch?v=o_FSuy8mVA4)

I think, this will use MQTT and eventually replace OPC UA.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [April 19, 2018, 10:58am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/45 "2018-04-19T10:58:18Z")

</div>

With all of your data passing through Microsoft’s servers. I think not.

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [April 20, 2018, 4:02am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/46 "2018-04-20T04:02:07Z")

</div>

Agreed. Whom can you trust?. Police(aka NSA) is the thief here. Threat is the feeder for security business like virus is the lifeline for anti-virus and so on. All Governments collect data. Weaker and corrupt Governments happily export their people and data to USA. Privacy is the biggest joke in social media. **No more holy cows**. Mark Zuckerberg must be ROFLing 😄

Privacy and Data security is an excellent opportunity for Government authorities of slave nations to make some fast bucks. Data is for the people. When they are eagerly waiting with a broad smile to export their people to USA, what are they going to do with their private data?. Throw few more bones, they will sell 2 for 1. They will happily sell the remaining surplus useless population, dime a dozen, to big pharmaceutical giants for Bio research, develop drugs and Health care services for mankind 😄

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [June 10, 2018, 7:38am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/47 "2018-06-10T07:38:44Z")

</div>

> **[FreeOpcUa/python-opcua](https://github.com/FreeOpcUa/python-opcua)**
>
> LGPL Pure Python OPC-UA Client and Server. Contribute to FreeOpcUa/python-opcua development by creating an account on GitHub.

Did anyone test this OPC UA server?. Do you think, this can become a multiplatform alternative for Kepserver?.

---

<div class="post-metadata">

**Author:** ![cmisztur2](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmisztur2/32/4243_2.png) [@cmisztur2](https://forum.inductiveautomation.com/u/cmisztur2)\
**Post date:** [June 14, 2018, 11:55am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/48 "2018-06-14T11:55:10Z")

</div>

Kepware is working on a Linux image that can be Dockerized.

---

<div class="post-metadata">

**Author:** ![heybales](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/heybales/32/3358_2.png) [@heybales](https://forum.inductiveautomation.com/u/heybales)\
**Post date:** [June 14, 2018, 5:48pm UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/49 "2018-06-14T17:48:15Z")

</div>

I only looked at it quickly, but I didn’t see any mention of drivers. Will it publish tags from my AB and Siemens PLCs?

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [June 15, 2018, 3:32am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/50 "2018-06-15T03:32:12Z")

</div>

I suggest, ask your team to dig deeper and build your own driver for AB and SIEMENS. All PLC drivers communicate on the basis of request/response cycle. MODBUS is the mother of all PLC/RTU protocols. You can build your driver framework for MODBUS TCP and use it to build other drivers.

---

<div class="post-metadata">

**Author:** ![fran.alija](https://avatars.discourse-cdn.com/v4/letter/f/ea5d25/32.png) [@fran.alija](https://forum.inductiveautomation.com/u/fran.alija)\
**Post date:** [December 4, 2018, 12:04pm UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/51 "2018-12-04T12:04:32Z")

</div>

For a OPC UA and MQTT on Linux check this out:

> **[Industrial IoT and SCADA Software Solutions by N3uron](https://n3uron.com/)**
>
> N3uron is a Highly Customizable Communications Platform Offering Multiple Industrial IoT and SCADA Software Solutions for Carrying out a Multitude of Tasks.

It runs on ARM architectures too. I’m using it to send data from renewable plants to the Cloud and it works fine. The neat feature is not just it runs on Linux, but also the GUI is Web (HTTPS =\> bye, bye RDP).

Not as many protocols as Kepserver but enough for my projects.

---

<div class="post-metadata">

**Author:** ![David.Reed.Schmidt](https://avatars.discourse-cdn.com/v4/letter/d/5f9b8f/32.png) [@David.Reed.Schmidt](https://forum.inductiveautomation.com/u/David.Reed.Schmidt)\
**Post date:** [December 23, 2018, 3:35am UTC](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962/52 "2018-12-23T03:35:19Z")

</div>

I have developed with FreeOpcUa. It creates an OPC server endpoint and contains all the methods to create the folders, objects, and nodes. The challenge is to develop the driver for the target device (i.e. the plc), obtain the data from the device, then leverage the methods provides by FreeOpcUa to share the data with the server’s clients. In my project, I created an OPC server with FreeOpcUa that converted restful APIs to OPC-UA resulting in the client skipping all the API calls and instead connecting to the OPC-UA server and subscribing to the tags for the data.

[Previous page](https://forum.inductiveautomation.com/t/opc-ua-alternatives-aka-kepserver/16962.md?page=2)
