how to transfer file from OPC UA client to OPC UA Server - file-transfer

I'm using open62541 to run a server on my embedded device(stm32f429), as a client I use UAExpert to connect to the server and borowse the nodes.
My problem is that I want to upload a file from Client "UAExpert" to my Server. I found a similiar question here on Stackoverflow but the answer didn't help me a lot.
I read the Annex C in part 5 but I couldn't understand how to implement the methods on the server side.
Can any one help me?
thnx in advance

I don't think that UAExpert supports this feature.
UAExpert can display Image from OPC UA Variable values from the Server (So actually if the Variable is writeable you could overwrite the value with you own)

Related

Mapping of C# objects to OPCUA

I am new to OPC UA,
Our requirement is that the OPC UA Client app will do the reads/write data from/to a backend system (which is the system of record) via a OPC UA server. How can we represent the backend system C# objects in an OPC UA Server? So that the data gets directly updated in the backend system rather being on nodes(nodes object), we are more concerned on the duplicate data in both places (OPC UA server and Backed system) and also the data need to be UPTODATE on both the OPCUA server and backend system
I know this is not exactly an answer but maybe it can help you.
Look in the https://github.com/OPCFoundation/UA-.NETStandard-Samples with the Quickstarts and especially AlarmCondition Server. There you see a simple implementation of an "Underlying System".
Maybe this can be of help?

OPC UA data rate

Is there a data rate limit for OPC UA? I am currently using OPC UA tunneller to transfer data and looks like it is limited to 10 Hz. Is this a setting that can be changed?
Thanks
Shashi
The limit is entirely up to the configuration of the OPC UA server you're connected to.
In this case, since you're using a tunneler, you may need to check configuration of the server behind the tunneler in addition to the tunneler itself.

Adding a node to server's address space in OPC UA ANSI C stack

I have a problem with OPC UA ANSI C stack, a very simple project for a subject: simply add a node to the server's address space, so that a client can then read it.
I know there is the open source ANSI C stack (open62541), but I need to use the official one.
I found these two objects inside the stack: the struct OpcUa_AddNodesItem (stackcore/opcua_types.h) and the function OpcUa_ServerApi_AddNodes (proxystub/serverstub/opcua_serverapi.c).
I think that this struct must be inserted inside the function, but I have some problems to set these two object's parameters.
Inside ansicservermain.c, how have I fill this two objects to add a node on the fly (for example, an integer variable)?
The OPC Foundation is only releasing the OPC UA Stack in ANSI C. This only allow you to have the communication layer. To have a fully functionnal OPC UA Server you need to develop your own Server on top of it, that will manage stuff like the AddressSpace (where you have the Node), the Session, the Subscription,...
You can try and buy some OPC UA Server SDK that have everything implemented or develop you own.
If you basically want to add some Nodes with the OPC UA Stack "Demo Server" there is 2 possibilites.
Add a static nodes by adding nodes in the addressspace_init.h files
Implement the OpcUa_ServerApi_AddNodes() which will be called by the OPC UA AddNodes Service, allowing an OPC UA Client to add some new nodes on the fly in an OPC UA Server (there is currently not so many OPC UA Client nor Server supporting this features as far as I know)

Can server communicate directly to client?

Everybody knows that client always request to server to execute script and get required data and we can give lot of examples of this.
But the question is that. Is there any example that server directly communicate/request to client. The server is not categorized i mean that any server.
Thanks in advance

Configuration of JPOS QMUX

I am new in JPOS. I need some help. Please find below my requirement.
In TCP connection terms, the IST Switch is configured to be a Server and the MPOS server is configured to be a Client. MPOS server and IST Switch should communicate via a single TCP connection. Also there should be provision to have multiple TCP connections between MPOS server and IST Switch for scalability, load-sharing and handling fail-over. Once established a TCP connection is maintained continuously.
I have gone through jpos developer guide and get to know QMUX can be used for my requirement. Request to you kindly help me on this.
I couldn't understand your question exactly but QMUX has nothing to do with load-balancing or with fail-over. QMUX get bind with only one Channel Adaptor
Let me tell you what QMUX does so we can clear the understanding of when QMUX would be usefull. For example you have a channel connected to a server and server supports concurrent requests(i.e. second request on the same tcp link while client is waiting for response of the first request). Now here comes a problem to relate requests-response pairs (because its quite possible that second response arrives even before the response of first request) this is what exactly QMUX does. mux part actually stands for multiplexer.
For laod-balancing or fail-over you can use org.jpos.q2.iso.MUXPool class following is a sample q2 xml descriptor
<?xml version="1.0" encoding="UTF-8"?>
<muxpool name="MuxPool" class="org.jpos.q2.iso.MUXPool" logger="Q2">
<muxes>MuxPrimary MuxSecondary</muxes>
<strategy>PRIMARY_SECONDARY</strategy>
</muxpool>
MuxPool provides two strategies primary-secondary or round-robin depends whether you are looking for fail-over or load-balancing.
If you think that I understood your question correctly and I am pointing you toward right direction let me know I may be able to share you one sample application using QMux and Muxpool on coming weekend.
Please take a look at chapter 8.3 of the jPOS Programmer's guide draft conveniently titled "QMUX" you can download here: http://jpos.org/doc/proguide-draft.pdf - You'll need also the companion service "ChannelAdaptor" described in section 8.1