EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS for Building a SCADA System for Energy Grids; Interface to NI VeriStand
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Markus Huber <markus.huber11 at gmx.de>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 5 Jan 2021 12:33:14 +0000
Hi Markus,


ADLightField/lightFieldApp/src/Makefile contains this line:


USR_CXXFLAGS += /EHa /clr /D_AFXDLL /AI.. /D_WIN32_WINNT=0x601

Does your Makefile have that?  The /clr flag may be what you are missing.

If you still have problems please send the complete output of the compiler command that generates the error.

Mark




________________________________
From: Markus Huber <markus.huber11 at gmx.de>
Sent: Tuesday, January 5, 2021 5:48 AM
To: Mark Rivers
Cc: tech-talk at aps.anl.gov
Subject: Re: EPICS for Building a SCADA System for Energy Grids; Interface to NI VeriStand

Hi Mark,

Thank you very much for the hints.

I am currently trying to write my own driver based on asynPortDriver C++
base class, like you did in LightField.cpp.

To do so, i created a new IOC which basically is a copy of the
testAsynPortDriver example (but called it VeristandToEpics). This IOC
runs as expected.

My idea is to adapt the testAsynPortDriver.h and .cpp (in my case they
are named VeristandToEpics.h and .cpp) step by step to fit my needs.

So far i have added the following to my driver VeristandToEpics.cpp:

"using namespace System;" (VeristandToEpics.cpp(36)) and

"#using <NationalInstruments.Common.dll>         // VeristandToEpics.cpp(46)
#using <NationalInstruments.VeriStand.ClientAPI.dll>
#using <NationalInstruments.VeriStand.DataTypes.dll>
#using <NationalInstruments.VeriStand.dll>
#using <NationalInstruments.VeriStand.RealTimeSequenceDefinitionApi.dll>
#using
<NationalInstruments.VeriStand.RealTimeSequenceDefinitionApiUtilities.dll>
#using <NationalInstruments.VeriStand.RealTimeSequenceUtilities.dll>
#using <NationalInstruments.VeriStand.SystemDefinitionAPI.dll>
#using <NationalInstruments.VeriStand.SystemStorageUI.dll>
#using <NationalInstruments.VeriStand.WorkspaceMacro.dll>"

I have added these dll files to the src directory that also contains
VeristandToEpics.cpp.

When i now run "make" in <top> of my IOC i get the following error:

"C:\Users\Mark\EPICS\VeristandToEpics\VeristandToEpicsApp\src\VeristandToEpics.cpp(36):
error C2871: 'System': a namespace with this name does not exist
C:\Users\Mark\EPICS\VeristandToEpics\VeristandToEpicsApp\src\VeristandToEpics.cpp(46):
fatal error C1190: System::Object not found, missing /clr option or
missing import of standard assemblies?
make[3]: ***
[C:/Installationen/EPICS/base-7.0.4.1/base-R7.0.4.1/configure/RULES_BUILD:249:
VeristandToEpics.obj] Error 2
make[3]: Leaving directory
'C:/Users/Mark/EPICS/VeristandToEpics/VeristandToEpicsApp/src/O.windows-x64'
make[2]: ***
[C:/Installationen/EPICS/base-7.0.4.1/base-R7.0.4.1/configure/RULES_ARCHS:58:
install.windows-x64] Error 2
make[2]: Leaving directory
'C:/Users/Mark/EPICS/VeristandToEpics/VeristandToEpicsApp/src'
make[1]: ***
[C:/Installationen/EPICS/base-7.0.4.1/base-R7.0.4.1/configure/RULES_DIRS:85:
src.install] Error 2
make[1]: Leaving directory
'C:/Users/Mark/EPICS/VeristandToEpics/VeristandToEpicsApp'
make: ***
[C:/Installationen/EPICS/base-7.0.4.1/base-R7.0.4.1/configure/RULES_DIRS:85:
VeristandToEpicsApp.install] Error 2"

I use the "x64 Native Tools Command Prompt for VS 2019" for building and
playing around with EPICS. This has worked so far for all my tests and
builds.

Do you have an Idea what i am doing wrong? Do I need to edit the
Makefile or change compiler settings? Do i need to add more DLLs to my
src directory?

Thank you very much and kind regards

Markus


At the moment i am facing the following error: When i make my IOC

Am 23.12.2020 um 18:27 schrieb Mark Rivers:
> Hi Markus,
>
> I am not familiar with VeriStand, though from a quick look at their Web site I see it is a test framework that can use a variety of interfaces, including .NET Common Language Runtime (CLR).
>
> I have written one EPICS driver that uses the .NET CLR, namely the ADLightField driver in areaDetector:
>
> https://github.com/areaDetector/ADLightField
> https://areadetector.github.io/master/ADLightField/ADLightField.html
>
> It is based on the asynPortDriver C++ base class from the EPICS asyn module.
>
> I don't think that StreamDevice can be used as the interface between VeriStand and the SCADA because it is intended for string message interfaces, while I think you need a programmatic interface, e.g. C++.
>
> Mark
>
>
> -----Original Message-----
> From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Markus Huber via Tech-talk
> Sent: Wednesday, December 23, 2020 10:28 AM
> To: EPICS tech-talk <tech-talk at aps.anl.gov>
> Subject: EPICS for Building a SCADA System for Energy Grids; Interface to NI VeriStand
>
> Dear EPICS Community,
>
> I am quite new to EPICS and have some general questions.
>
> I am looking for an open-source framework that enables me to develop a SCADA system for an experimental sector-coupled microgrid at a research lab our univerity.
> After watching some videos and presentations about EPICS and its support modules, i think EPICS might be the right tool for that. Now i wonder if you think so, too.
>
> In the beginning our system consists of three main parts:
>
> 1. A VeriStand application that bundles all signals from/to the field controllers.
> 2. A software interface that enables communication between VeriStand (in
> particular: VeriStand's .NET API) and our intended SCADA system.
> 3. Our SCADA system, which should provide an HMI, historian database, alarm handling, and so on.
>
> Later, it should be possible to connect other devices to the SCADA system without the detour via the VeriStand application (1. and 2.).
> In the beginning, all three components will run on the same host machine.
>
> Do you think EPICS is suitable to develop such a SCADA system (3.)?
> * If yes, can you recommend any support modules to implement an interface between (2.) and (3.)? Do you think Asyn and StreamDevice are suitable, or is there a simpler way?
> * If no, can you recommend any other, well-documented, modern, and open-source frameworks to develop a SCADA system?
>
> Thank you in advance and kind regards
> Markus Huber
> MSc Student (Computer Science) at TU Munich
>

References:
Re: EPICS for Building a SCADA System for Energy Grids; Interface to NI VeriStand Markus Huber via Tech-talk

Navigate by Date:
Prev: Re: EPICS for Building a SCADA System for Energy Grids; Interface to NI VeriStand Markus Huber via Tech-talk
Next: RE: RETIGA? Pearson, Matthew R. via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS for Building a SCADA System for Energy Grids; Interface to NI VeriStand Markus Huber via Tech-talk
Next: CS-Studio Alarm History configuration Vishnu Patel via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
ANJ, 06 Jan 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·