Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » 4DIAC - Framework for Distributed Industrial Automation and Control » FORTE LOVE HTTP(How to read communicate with Basic Function Block via HTTP protocol)
FORTE LOVE HTTP [message #1791486] Sat, 30 June 2018 12:34 Go to next message
Aydin Homay is currently offline Aydin HomayFriend
Messages: 5
Registered: June 2017
Junior Member
Dear all,

A couple of months ago I started working on a new communication layer for the FORTE to support HTTP protocol. Because I wanted to access my basic FBs inputs/outputs via a web application. Finally, I ended up with a working solution but not a really convenient approach as it was a little bit too complicated and required so many Publish/Subscribe FBs to be located inside of 61499 application next to the targeted FBs, which my next conference papers will discuss in detail what were problems of my current approach soon.

Now, I am going to give a second try to design and then implement such feature. But this time I am thinking about having something like the following convention:

HTTP[].URL[host [ ":" port ] [ abs_path [ "?" query ]]]

Does anyone have any idea what would be the most systematic and clean way of doing this?

One more time, the main challenge is to access basic and later on composite FBs inputs/outputs via HTTP protocol.

I am looking forward very much to reading your comments,
Aydin
Re: FORTE LOVE HTTP [message #1791639 is a reply to message #1791486] Tue, 03 July 2018 08:49 Go to previous messageGo to next message
Jose Maria Jesus Cabral Lassalle is currently offline Jose Maria Jesus Cabral LassalleFriend
Messages: 199
Registered: February 2016
Senior Member
hi,

a first beta version of an HTTP layer is already present in the 4diac-rte repository. It currently has only client support and can do PUT and GET requests. I've been working on adding POST reqquest, and also server capabilities. The client and server capabilities are differentiated according of the type of FB you use. For the server, I thought in having the parameter be the path to which the FB reacts. I didn't think about queries yet
Re: FORTE LOVE HTTP [message #1791669 is a reply to message #1791639] Tue, 03 July 2018 17:32 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1583
Registered: January 2014
Senior Member

Hi Aydin,

I'm really looking forward to your paper. Seems to be an interesting read.

While I understand your reasons, from a software engineering standpoint I have some issues with your planned new approach. This will introduce hidden interfaces to your application and breaks all encapsulation. This is one of the reason that we currently allow such a wide access only for debugging tools. Therefore I would be curios of other IEC 61499 elements (e.g., subapps, adapters) could help without breaking encapsulation.

On the other hand having a simpler and issue to use HMI support for 4diac is also something we are missing.

The infrastructure for accessing all elements is already in FORTE so from that point there is little work necessary. As path I would go with the "res/subapp1/supp2/FB/var" approach as it is used for monitoring but instead of . with /.

Cheers,
Alois
Re: FORTE LOVE HTTP [message #1791684 is a reply to message #1791669] Wed, 04 July 2018 07:24 Go to previous messageGo to next message
Aydin Homay is currently offline Aydin HomayFriend
Messages: 5
Registered: June 2017
Junior Member
Hi Alois,

Thanks for your reply, thanks for your compliments. Well, having a wide range access to all parameters, variables and so on is crucial and maybe the only way to build a debugging tool but I am not sure would be a good approch for my need (supporting HTTP based protocols) because then what would be the main (philosophical) difference between a wide range access on run time environment and a wide range access through communication protocols like OPC? Specifically UA version. Plus exposing all data to HTTP layer can cause a significant overhead in the case of big 61499 applications.

Sorry if I have typo I am answering through my cell phone.

Regards,
Aydin
Re: FORTE LOVE HTTP [message #1791691 is a reply to message #1791684] Wed, 04 July 2018 08:23 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1583
Registered: January 2014
Senior Member

Hi Aydin,

I think I've misunderstood your post. Could you then please clarify what you meant with this comment:
Quote:
One more time, the main challenge is to access basic and later on composite FBs inputs/outputs via HTTP protocol.


Cheers,
Alois
Re: FORTE LOVE HTTP [message #1791695 is a reply to message #1791691] Wed, 04 July 2018 09:20 Go to previous messageGo to next message
Aydin Homay is currently offline Aydin HomayFriend
Messages: 5
Registered: June 2017
Junior Member
Hi Alois,

Maybe I also did not explain very well. I would modify that quote with the following sentence:
The main challenge is to communicate with a basic function block via HTTP based protocols like REST but to achieve this goal we first need to support PUT, POST, GET, DELETE actions on a communication layer like fbdk or maybe if I am not wrong in service interface level. For example, imagine a scenario which on that there is a need to access from a web application or a desktop (windows etc.) application to a basic function block inside of the control system without going through OPC or other heavy and expensive protocols. One way is to put a Pub/Sub function blocks and support HTTP (the way that currently I am supporting it on my local repository FORTE) in fbdk layer but this will make the 61499 application ugly and crowed with so many Pub/Sub function blocks. Hope now this is more clear.

Regards,
Aydin

[Updated on: Wed, 04 July 2018 09:23]

Report message to a moderator

Re: FORTE LOVE HTTP [message #1791743 is a reply to message #1791695] Wed, 04 July 2018 15:55 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1583
Registered: January 2014
Senior Member

Hi Aydin,

thanks for the clarification. Maybe it helps if I tell how we do it with other HMi like interfaces like Eclipse Neo SCADA or OPC UA. There we have SIFBs (i.e., PUBLISH, SUBSCRIBE, SERVER) which provide the data/event interface from the application to the HMI data model. The main difference to typciall comunication SIFBs is that the communication is not done to a remote entity but to a local data model. HMI or external data sources connect to this data model via the respective communication protocol (e.g., OPC UA) and can then read the latest values and can write to them. On write we typically have a notifcaition mechanism for sending IND events on these FBs. Is this something similar you would like to have?

Cheers,
Alois
Re: FORTE LOVE HTTP [message #1791769 is a reply to message #1791743] Thu, 05 July 2018 07:03 Go to previous messageGo to next message
Aydin Homay is currently offline Aydin HomayFriend
Messages: 5
Registered: June 2017
Junior Member
Hi Alois,
My understanding from the following quote is that you are creating a SIFB which writes/reads into/from the loopback IP 127.0.0.1: Port (localhost: Port) and then a local data model (for simplicity call it a thread) communicates with this SIFB on the same loopback IP address and plays a bridge role between FBs and any other third party data communicator like OPC. Is that right?

Quote:
The main difference to typical communication SIFBs is that the communication is not done to a remote entity but to a local data model.

Regards,
Aydin

[Updated on: Thu, 05 July 2018 13:39]

Report message to a moderator

Re: FORTE LOVE HTTP [message #1791818 is a reply to message #1791769] Thu, 05 July 2018 15:04 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1583
Registered: January 2014
Senior Member

Hi,

in principle yes. However we ommit the burden of going through a IP based communication. We still have this as part of forte in a background thread and access the model via an in memory API (e.g., a dedicated ExternalEventHandler with API functions to add/remove entities in the data model and methods for updating values, methods for registering SIFBs for receiving updates).

Alois
Re: FORTE LOVE HTTP [message #1791949 is a reply to message #1791818] Sun, 08 July 2018 21:07 Go to previous message
Aydin Homay is currently offline Aydin HomayFriend
Messages: 5
Registered: June 2017
Junior Member
Hi Alois,

Thanks a lot this helped me a lot.

Cheers,
Aydin
Previous Topic:Memory Error
Next Topic:download boot file to the target which is running forte
Goto Forum:
  


Current Time: Sat Apr 20 02:00:18 GMT 2024

Powered by FUDForum. Page generated in 0.03732 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top