ait-ies / fmiterminalblock Goto Github PK
View Code? Open in Web Editor NEWTwo way interface between the Functional Mockup Interface (FMI) and IEC 61499-based controllers.
License: Other
Two way interface between the Functional Mockup Interface (FMI) and IEC 61499-based controllers.
License: Other
All FMITerminalBlock binaries (main program and tests) fail to execute as soon as FMI++ Sundials support is enabled. The sundials library is not found. (Windows 7, MSVC 14)
It should be possible to adjust the output of boost test cases via command line arguments.
On using the singlestep-delayed simulation methods, the model does not enter event mode when external inputs are applied. Events which are triggered by the model are properly handled.
Optional Feature. In case one output variable directly depends on an input variable, generate an event as soon as the input variables were updated.
A quick tutorial which gives some impressions on the usage of FMITerminalBlock was requested
Information should be provided on whether a events were issued late and how much delay occurred. The following timing performance indicators should be implemented to evaluate the real-time performance of a simulation run:
To calculate the delay value of each event, multiple points in time may be used for reference. E.g.. a delay may be calculated by comparing the nominal time with the time, the network distribution starts or the time the network distribution ends. The following delays may be considered:
The default fmu.name
parameter should be read from the model description.
Parse the model description and automatically set the type of in- and output channels. The user shouldn't be urged to enter the .type
code anymore.
The test requires an FMU (sine_standalone) which uses fmippex.dll but it is not specified as a dependency
Simple parameter changes need to be clarified. (E.g. the PLC needs to be reprogrammed because online changes are not that easy.)
On linking FMITerminalBlock, lots of error messages related to pthread are produced and build fails. E.g.:
[ 13%] Linking CXX executable FMITerminalBlock
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::get_current_thread_data()':
thread.cpp:(.text+0xfd): undefined reference to `pthread_key_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::set_current_thread_data(boost::detail::thread_data_base*)':
thread.cpp:(.text+0x13d): undefined reference to `pthread_key_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::start_thread_noexcept()':
thread.cpp:(.text+0x1d0): undefined reference to `pthread_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::start_thread_noexcept(boost::thread_attributes const&)':
thread.cpp:(.text+0x28d): undefined reference to `pthread_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::detach()':
thread.cpp:(.text+0xaad): undefined reference to `pthread_detach'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::join_noexcept()':
thread.cpp:(.text+0x18aa): undefined reference to `pthread_join'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::do_try_join_until_noexcept(timespec const&, bool&)':
thread.cpp:(.text+0x1a3d): undefined reference to `pthread_join'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::get_current_thread_data()':
thread.cpp:(.text+0x116): undefined reference to `pthread_getspecific'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::set_current_thread_data(boost::detail::thread_data_base*)':
thread.cpp:(.text+0x156): undefined reference to `pthread_setspecific'
/home/.../boost/boost_1_61_0/lib/libboost_log.a(attribute_name.o): In function `boost::log::v2s_mt_posix::attribute_name::get_string_from_id(unsigned int)':
attribute_name.cpp:(.text+0x61): undefined reference to `pthread_rwlock_rdlock'
attribute_name.cpp:(.text+0x9b): undefined reference to `pthread_rwlock_unlock'
attribute_name.cpp:(.text+0x7f8): undefined reference to `pthread_rwlock_destroy'
attribute_name.cpp:(.text+0x8a8): undefined reference to `pthread_rwlock_destroy'
/home/.../boost/boost_1_61_0/lib/libboost_log.a(attribute_name.o): In function `boost::log::v2s_mt_posix::attribute_name::get_id_from_string(char const*)':
attribute_name.cpp:(.text+0xb3c): undefined reference to `pthread_rwlock_rdlock'
attribute_name.cpp:(.text+0xbaa): undefined reference to `pthread_rwlock_unlock'
attribute_name.cpp:(.text+0xcb2): undefined reference to `pthread_rwlock_unlock'
attribute_name.cpp:(.text+0xcba): undefined reference to `pthread_rwlock_wrlock'
attribute_name.cpp:(.text+0x186c): undefined reference to `pthread_rwlock_destroy'
attribute_name.cpp:(.text+0x1956): undefined reference to `pthread_rwlock_destroy'
attribute_name.cpp:(.text+0x1c5d): undefined reference to `pthread_rwlock_unlock'
Used software:
Add configuration options and necessary configuration classes to represent a shared connection. Each connection may be shared between multiple channels/publisher/subscriber. It should also be possible to implicitly generate a connection configuration by appending the connection configuration to a particular channel.
A link to the 4diac document and a brief description of the format should be added
Several channels should be able to share a common generic network connection. Therefore, connection objects have to be created separately and have to be passed on on to each publisher or subscriber. Available subscribers need to be refactored in order to support shared connections.
Add a process description/notebook which provides some facilities to evaluate the source and structure of various delay components. Several Axis which separate predicted and external events should be provided. Additionally, the prediction and distribution delays should be calculated.
On executing the test cases on Debian Jessie, EventHandling and NetworkManager fail by showing the following error message repeatedly.
testNetworkManager: /home/.../boost/boost_1_61_0/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res' failed.
Program versions:
The header lines as well as the event format need further clarification
For some FMUs, instantiation and initialization takes a considerable amount of time. Nevertheless, simulation time starts before the FMU is loaded. Hence the whole simulation starts with a delay. The figure shows the delay over simulation time which is steadily decreased.
Start the simulation time just after the FMU has been initialized.
The out.<nr>.<nr>=
format was considered to be counter intuitive. The format may be changed to channel.<nr>.output-variable.<nr>=
.
Currently, only the FMI++ standard integrators are available. The user should be able to configure simulation parameters such as the integrator type and tolerance information dynamically.
The script should read event CSV files as generated by FMITerminalBlock and interpolate missing values. Initial values should be set via the command line or default values should be assumed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.