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 » Porting Forte.(Problem with porting Forte to new controller.)
Porting Forte. [message #1860266] Wed, 26 July 2023 09:17 Go to next message
Vadim RTV is currently offline Vadim RTVFriend
Messages: 4
Registered: April 2023
Junior Member
Hi!
I am porting Forte to a new PLC. Questions please help:
1. How many FB blocks can be in a project and how to implement there are a large number of them to view project pages on the screen. A project can have dozens if not hundreds of FBs.
It's not clear from the documentation.
2. Are there any global variables, for example: set point temperature the air conditioning system can be supplied to several FBs, usually a global variable is declared and then it is selected as FB input. Is it possible here and how to do it? I didn't find it in the documentation.
3. There is a small display and buttons on the PLC, you need to make a menu, where settings and parameters could be edited. For example:
- temperature setpoint, fed to the input of the PID controller and available
in the menu on the controller display to change
- address of the controller on the network, a global variable available in all FBs
and available on the display to change
On the basis of what can such a menu and such functionality be implemented?
4. Are there non-volatile variables? On other systems, these are "retain variables".
5. A new FB block, analog output, has been created in the program. The N_AO input connections is given the output number.
In the program, it corresponds to st_N_AO(), printf("%i",st_N_AO()) gives 45940096,
and if you do:
int m=st_N_AO();
printf("%i",m);
That gives the correct value.
How to work with such variables in the program?
6. How to work with CIEC_STRING variables, I want to copy into a regular string char c[] via strcpy, I want to output via prinrf - the first one gives a compilation error, the second one is garbage instead of text. How to copy a part of such a string, compare, printf, merge with another string?
7. Made FB AI analog input, one works, watch shows correctly. Place 3 FB (each contains the number of the analog inputs 1,2,3) plus place 3 FB of analog outputs and connected them so that the values ​​received from the inputs broadcast at the exit. For 3 AO I set watch and it is clear that the values ​​are correct, but when I set watch for AI, then it is set for the first FB, and when installed on the second FB AI gives a message
INFO: T#2436236139045: Connection closed by peer
and 4Diac stops displaying watch.
8. You have to deploy twice to make watch work. The first time does not display anything. Second with "owerwrite" and "watch" - OK. Forte on Windows.
Re: Porting Forte. [message #1860533 is a reply to message #1860266] Sun, 13 August 2023 19:13 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1585
Registered: January 2014
Senior Member

Hi,

these are a lot of question. Let me try to answer.

ad 1) we have in general no upper limit on FB instances per project. Performance wise we did tests up to 500k of FB instances. However to make such large projects manageable you need to use hierarchies of untyped as well as typed subapplications.

Ad 2) no there are no global variables. In the upcoming version we will have global constants for configuration purposes.

Ad 3) Not sure how to do the menu and display content but the values that you can set should be made available to the IEC 61499 program via SIFBs.

Ad 4) currently not. Again I guess to address that SIFBs that would write and read from NVRAM would be the right approach in IEC 61499. But I have not yet spent more time on a concept for that.

Ad 5) I'm not totally sure what is happening here. I guess I would need the FB interface and more information. However please not in the current development version this has changed. As I recommended also other users it makes sense to switch 4diac FORTE to the freeze branch and also use 4diac IDE milestone version (https://download.eclipse.org/4diac/updates/milestone/)

Ad 6) Again this improved a lot in the latest freeze branch. There are examples in 4diac FORTE code how to do this correctly.

Ad 7) From the description it is hard to tell what is going on here. However again we fixed a lot on monitoring in the last year.

Ad 8) This was because of a strange UI showing watches wrong. This is fixed in the latest milestone and nightly build versions.

I hope this helps.

Cheers,
Alois
Re: Porting Forte. [message #1860601 is a reply to message #1860533] Mon, 21 August 2023 10:35 Go to previous messageGo to next message
Vadim RTV is currently offline Vadim RTVFriend
Messages: 4
Registered: April 2023
Junior Member
Hi!
Thanks for the answer.
" you need to use hierarchies of untyped as well as typed subapplications."
There is no description of subapplications in the documentation, in "Step 6 - Advanced Features" it is only mentioned.
Where can I find a description?

Our target task is a RS485 network of small PLC controllers connected via a gateway to the SCADA on a PC, each controller has a small display and buttons.
Controllers should maintain the operability of managed systems to the maximum both in the absence of communication with SCADA and in the absence of communications between controllers.
The absence of menus, non-volatile variables, and global variables in the basic functionality makes such a system difficult to implement. Also, the functionality of IEC 61131-3 and IEC 61499 is designed to solve the simplest tasks, such as ladder logic. More complex tasks require more advanced functionality, such as state machines.
Re: Porting Forte. [message #1860660 is a reply to message #1860601] Thu, 24 August 2023 09:39 Go to previous message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1585
Registered: January 2014
Senior Member

Hi,

currently we don't have much documentation available on Subapplication. However I hope that our implementation is pretty straight forward. You can create Subapps by either right clicking on the application background. this gives you a new FB shape where you can added in and output pins in the according property sheet. Double clicking on the subapp brings you inside and you can create your fb network there. If you have already some fbs and you would like to put them into a subapp you just select them right click create subapp and 4diac IDE will do all the steps necessary to create a subapp with its interface and the selected blocks inside.
Previous Topic:Can't compile forte in Raspberry Pi with OPC UA
Next Topic:How to use client fbd for http
Goto Forum:
  


Current Time: Sat Apr 27 20:10:37 GMT 2024

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

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

Back to the top