Home » Eclipse Projects » 4DIAC - Framework for Distributed Industrial Automation and Control » Control System app for Beckhoff Using OPC-UA
Control System app for Beckhoff Using OPC-UA [message #1791557] |
Mon, 02 July 2018 13:16 |
Ahsan Zia Messages: 36 Registered: July 2018 |
Member |
|
|
Dear 4Diac-cers,
I am new to IEC 61499 environment, I have implemented a few academic projects in FBDK IDE.
I have a Beckhoff PLC and a mini paper pulp processing plant, for which I am planning to create a forte RTE, on which my designated Control App which (will be) made in Eclipse 4Diac IDE run. I will be using OPC-UA as a communication protocol between them.
The first Stage of the project will be to implement, the Process simulation using 4DIAC RTE on OPC-UA and than, the PLC for Pulp paper process plant. The simulator has been already implemented in Node JS.
Just before getting started, I want to ask a few questions.
• Suggest me, how I can go about creating a forte Runtime Environment for a PLC, which has its own Function Blocks?
• Can the generic Function blocks provided by 4Diac be used to program a proprietary PLC, and can one setup a RTE for the same or I can download a certain library for my task?
I will keep on posting my progress and ambiguities during the course of the project duration.
Thank you in advance.
Br,
Ahsan
|
|
|
Re: Control System app for Beckhoff Using OPC-UA [message #1791559 is a reply to message #1791557] |
Mon, 02 July 2018 13:29 |
Martin Melik Merkumians Messages: 117 Registered: March 2016 |
Senior Member |
|
|
Hi,
although I am not 100% sure if I understood correct, what you want to do, I throw in my 2 cents.
For your first question, regarding how to create a FORTE with custom function blocks, please refer to the the online help of 4diac (https://www.eclipse.org/4diac/en_help.php)
To your second questions: Quick answer: No
Longer answer, Beckhoff PLCs are based on the IEC 61131 standard, which, besides it is a cycle-based execution environment without event, does NOT define a standardized way, how a programming tool shall interact with the run-time environment. In fact, Beckhoff's TwinCAT utilized the Visual Studio compiler suite to compile a specific executable, which implements the program designed in TwinCAT.
So there are three ways to proceed from here:
1. Use OPC UA to also communicate with TwinCAT - should work as OPC UA is a standard. I have never done this, so I cannot provide any hints here.
2. Use Beckhoff's ADS interface to communicate with TwinCAT - I have already done this, works ok, but you cannot do real-time control over ADS (same as OPC UA), but you can set reference values easily via ADS and have the control algorithm programmed in TwinCAT.
3. Implement/find a working EtherCAT master stack - Depending on your requirements the Simple Open EtherCAT Master could be sufficient for your task. With that, you can completely replace TwinCAT and communicate directly with the Beckhoff components controlling your plant.
Best regards,
Martin
|
|
| | | |
Re: Control System app for Beckhoff Using OPC-UA [message #1792888 is a reply to message #1792886] |
Wed, 25 July 2018 11:54 |
Ahsan Zia Messages: 36 Registered: July 2018 |
Member |
|
|
Hi Jose,
Thank you for your reply.
The application is for the simulator at this time.. after that it will be modified for the actual PLC (later in August or Sept), for the timewe are want to establish a connection with the simulator.
The application takes 31 inputs, from which we have considered 20 primary inputs, 16 BOOL, 4 UNIT. to run the initial tests.
Different FB ""should"" give output on the bases of what combination of inputs have been energized. Inputs represent different valves and pumps.
for example: form the process AB , needs the combination of valves V1, V2, and V3 with Pump P1, which the liquid start flowing between A to B.
Please also check the first message of this thread.
Best Regards,
Ahsan Zia
-
Attachment: 101.JPG
(Size: 94.91KB, Downloaded 165 times)
|
|
| | |
Re: Control System app for Beckhoff Using OPC-UA [message #1792899 is a reply to message #1792897] |
Wed, 25 July 2018 13:06 |
|
did you have a look at our opc ua documentation yet? I think there it is quite clearly described how to connect to OPC UA servers for reading and writing data.
Furthermore I noticed that in your CFB you are duplicating events. That means for one input event you are sending two output events. Maybe that it is not what you want. also I would expect that a basic FB would be more efficient for the tasks you need.
|
|
| | | |
Re: Control System app for Beckhoff Using OPC-UA [message #1793673 is a reply to message #1793656] |
Mon, 13 August 2018 19:57 |
|
Hi Ahsan,
if I understand your post above correctly then it means that your simulator is offering values for reading and writing as server and that you can use UA Expert as client to read and write to/from it. If this is the case please have a look in the 4diac's OPC UA documentation under the Client section. There I think it is described how you can read and write data on a remote server.
I hope this helps.
Cheers,
Alois
|
|
| | |
Re: Control System app for Beckhoff Using OPC-UA [message #1793905 is a reply to message #1793857] |
Mon, 20 August 2018 08:05 |
Ahsan Zia Messages: 36 Registered: July 2018 |
Member |
|
|
Dear All,
I have tested all the values coming from different nodes by the method you helped me do last Thursday.
My application takes 31 values in total, out of which, 27 BOOL values, 4 UNIT values.
Initially, I was thinking to make composite blocks for each of the nodes, to read and write the values, but I guess that is not possible.
If I go by the procedure by implementing the same logic for each nodes, it will be quite messy, there will be dozens of tabs at the same time to operate the application.
I have a few question regarding the application.
*What procedure of implementation should I follow to keep the application as simple as possible? What are your recommendations?
*There should be one Client/Publish (node) per EMB-RES?
Best
Ahsan
-
Attachment: NwBlck.JPG
(Size: 208.80KB, Downloaded 1047 times)
[Updated on: Mon, 10 September 2018 09:10] Report message to a moderator
|
|
| | | | | | | | | |
Re: Control System app for Beckhoff Using OPC-UA [message #1798627 is a reply to message #1797804] |
Wed, 21 November 2018 10:34 |
Martin Melik Merkumians Messages: 117 Registered: March 2016 |
Senior Member |
|
|
Hi,
the ADS module has been added to the 4diac 1.10.0 RCs. So in order to use it you have to compile the Beckhoff ADS library from GitHub, and then configure FORTE's CMake settings accordingly where the compiled lib is located.
Before you can use an ADS connection in FORTE you first have to configure the ADS server you want to communicate with, via the ADS_SERVER_CONFIG FB. Then you can use the IO interface FBs to send and receive data values via ADS.
Which variable is accessed via the IO FBs is set via the PARAMS IN, in the following format <ADSServerFriendlyName:Full-qualified_Var_Name>. E.g., you configured an ADS server with the friendly name MyServer, and this Server sports a variable in this global variable list (usually called GVL) named MyVar, the PARAMS In would look like this: MyServer:GVL.MyVar.
If FORTE is running on an machine without an ADS address (so usually this means no TwinCAT is installed), you also have to set a local ADS address via the SET_LOCAL_ADS_ADDRESS FB.
Best regards,
Martin
|
|
|
Goto Forum:
Current Time: Wed Sep 25 22:42:42 GMT 2024
Powered by FUDForum. Page generated in 0.05655 seconds
|