I'm getting to understand about hierarchical connectors in Modelica. Are there any libraries with examples involving hierarchical connectors (connector within a connector)? I've gone few websites looking for it and couldnt find much information. Any leads will be appreciated.
There are examples of this in the Modelica Standard Library:
Modelica.Electrical.MultiPhase.Interfaces.Plug
Modelica.Electrical.QuasiStationary.MultiPhase.Interfaces.Plug
Modelica.Mechanics.MultiBody.Interfaces.FlangeWithBearing
A closely related concept is expandable connector. Here are some examples of this:
Modelica Standard Library: Modelica.Blocks.Examples.BusUsage
Book section: http://book.xogeny.com/components/architectures/thermal_control/
The VehicleInterfaces libarary uses them extensively.
Related
I have been reading around the internet for a good explanation of what a node is in OPC-UA. It seems there are libraries out there for it, but none actually explain nodes. What is the purpose of nodes in OPC-UA?
Note: OPC and OPC-UA noob here
I think you are talking about 2 different stuff here.
the node concept of OPC UA: An OPC UA node is like an entity representing information. Some Nodes are Variables, DataType, References, Object, Methods... depending of what they are used for.
By reading the OPC UA Specification you will get a good overview here - Specially Part 1: Overview and Concepts and Part 3: Address Space Model (you need to create a free account first)
NodeOPCUA, which is a Node.js implementation of OPC UA.
Node is a basic conception of OPC UA protocol. It has some unique identifier and represents types, relationships, objects, classes, variables and etc.
If you are a programmer, a good analogy would be an object model in high level program languages (Java, Ruby etc) where types and methods are also instances.
Im a little confused about BPMN 2.0 Engines
if you have modeled a process on the BPMN 2.0 standard in a BPM engine like activiti, activeVOS or JBOSS and you want to execute that process, the engine converts that BPMN "code" into another kind of code (like BPEL, XPDL, etc) or there is a way to "execute BPMN 2.0"?
There are some engines like IBM BPM that offers you only BPMN in their "basic" product, so, that product "executes" BPMN directly? or converts its in some way?
the same ocurred with JBOSS, if u model a BMPN process u can execute it?
Kind regards
BPMN 2.0 is an OMG specification that you can find here
The specification describes several level of comprehension. In your case, what you are interested in are ;"Process Modeling Conformance" and "Process Execution Performance".
The specification also provide rules for serialization which is based on XML.
Some editors are using this serialization internally, some others not. In the second case, most of the time they provide import/export in bpmn 2 format.
What you have to be aware is that, even if a lot of execution behaviors has been defined, there is still a lot of points where it is missing or at least not all vendors interprets the specification exactly the same.
The BPMN Model Interchange Working Group is working to file the gap and provide guidelines for a proper serialization and exchange of BPMN files between vendors.
To sum up, the short answer is: it doesn't really matters if they execute it directly of if they convert it internally. The only important thing is that the behavior respects the "Process Execution Conformance".
Regards,
I am looking for some kind of specification, documentation, explanation, etc. for .stp/.step files.
It's more about what information each line contains instead of a general information.
I can't seem to figure out what each value means all by myself.
Does anyone know some good readings about STEP files?
I already searched google but all I got were information about the general structure instead of each particular value.
The structure of STEP-File, i.e. the grammar and the logic behind how the file is organized is described in the standard ISO 10303-21.
ISO 10303 or STEP is divided into Application Protocols (AP). Each AP defines a schema written in EXPRESS. The schemas are available on the Internet: the CAX-IF provides some, STEPtools has some good HTML documentations.
The reference of the AP schemas is hosted on stepmod.
Assuming I model a complete system correctly, according to the Modelica syntax, are the compilers 'mature' enough to handle it?
I need to model a system with at least 15 connected components, each components is relatively simple, mathematically speaking, only algebric equations. Modelica is very appealing to me but I am a complete beginner and this project is important to me so I'm a little bit afraid to commit to Modelica.
I understand that compilers can't fully simulate all of the standard library examples and models, how can I know what are the exact limitations?
Thanks.
Well, it depends quite a bit on what tool you choose of course. I can tell you from personal experience that over 10 years ago I used Dymola in a project at Ford Motor Company where we modeled an engine (combustion), transmission (mechanisms and hydraulics) and chassis (multi-body representation). The resulting system had 250,000 equations and certainly hundreds if not thousands of components and connections. You can find more information about the project in a paper I wrote.
Of course, it depends on other things besides the size of your models. Most Modelica tools do not really support variable structure (DAEs with variable index) and others have limitations with respect to some of the language constructs that they fully support (which therefore means some libraries are not fully supported).
Unfortunately, at the moment there is not a comprehensive way to qualify the support from different tools but this is something that the Modelica Association recognizes is a problem and they are working on it.
But overall, Modelica is quite mature and is used in many, many industrial projects. You can find the proceedings from the previous 8 Modelica Conferences at http://www.modelica.org/ and you will see that many big name companies (Ford, BMW, GM, Toyota, Airbus, etc) have published material there.
This has baffled me for a long time.
Given basic atomic primitives like compare & swap, I can see how to implement a spin lock (from which I can build mutexes).
However, I don't see how I can build condition variables out of this. How is this done?
It's not particularly simple. The following is a link to a paper by Douglas Schmidt (who is also largely responsible for the ACE libraries) that details several approaches for implementing condition variables on Windows using the synchronization primitives available in Win32 (pre-Vista). The approaches include using only the basic, generally available on any OS primitives, and discusses the various limitations of the approaches:
http://www.cs.wustl.edu/~schmidt/win32-cv-1.html
The bottom line (concluding remarks):
This article illustrates why developing condition variables on Win32 platforms is tricky and error-prone. There are several subtle design forces that must be addressed by developers. In general, the different implementations we've examined vary according to their correctness, efficiency, fairness, and portability. No one solution provides all these qualities optimally.
The SignalObjectsAndWait solution in Section 3.4 is a good approach if fairness is paramount. However, this approach is not as efficient as other solutions, nor is it as portable. Therefore, if efficiency or portability are more important than fairness, the SetEvent approach described in Section 3.2 may be more suitable. Naturally, the easiest solution would be for Microsoft to simply provide condition variables in the Win32 API.
Note that starting in Vista, Windows supports condition variables using native APIs:
http://msdn.microsoft.com/en-us/library/ms686903.aspx