Difference between revisions of "Usage Cases"

From Flowcode Help
Jump to navigationJump to search
Line 35: Line 35:
  
 
This is essentially what version 5 of Flowcode provided. These engineers have divorced their design from the system they are working on and are able to work at a circuit level to realise their design. They want to see the user components like switches, LEDs, LCDs, and are very familiar with electronics at a circuit level.  
 
This is essentially what version 5 of Flowcode provided. These engineers have divorced their design from the system they are working on and are able to work at a circuit level to realise their design. They want to see the user components like switches, LEDs, LCDs, and are very familiar with electronics at a circuit level.  
 +
 +
[[File:circuit level.png]]
  
 
===Those working at an electromechanical level===
 
===Those working at an electromechanical level===
  
 
New for version 6. There are few mechanical designs that do not incorporate electronics. Many engineers working at a circuit level also want to connect that circuit to the mechanics but do so ‘live’ on the equipment they are designing: and endless cycle of design, download, test. We want to provide resources for these engineers to be able to import their mechanical designs, to characterise their movement in Flowcode, to simulate the entire design and to develop not just the software that drives the machine, but also that decodes user files to drive the machine and connect it to the wider world.  
 
New for version 6. There are few mechanical designs that do not incorporate electronics. Many engineers working at a circuit level also want to connect that circuit to the mechanics but do so ‘live’ on the equipment they are designing: and endless cycle of design, download, test. We want to provide resources for these engineers to be able to import their mechanical designs, to characterise their movement in Flowcode, to simulate the entire design and to develop not just the software that drives the machine, but also that decodes user files to drive the machine and connect it to the wider world.  
 +
 +
[[File:electromechanical level.png]]
  
 
===Those working at a systems level===
 
===Those working at a systems level===
  
 
New for version 6. When working at a systems level the electronics design is a trivial task compared to the design of the overall system. If you consider the task of controlling the heat in a tank for example: the electronic circuit is relatively simple consisting of a heater unit and a thermistor. But predicting and managing the rate of temperature rise, the temperature hysteresis in due to sensor and heater lag, the damping in the system and other factors are where the challenges lie. Flowcode allows users to model the system under control, and to design an algorithm to control it. The fundamental control code will probably be easy. The mathematics behind it might not be. Working at a systems level is a real challenge for engineers and Flowcode 6 provides real benefits for those who want to model their system.
 
New for version 6. When working at a systems level the electronics design is a trivial task compared to the design of the overall system. If you consider the task of controlling the heat in a tank for example: the electronic circuit is relatively simple consisting of a heater unit and a thermistor. But predicting and managing the rate of temperature rise, the temperature hysteresis in due to sensor and heater lag, the damping in the system and other factors are where the challenges lie. Flowcode allows users to model the system under control, and to design an algorithm to control it. The fundamental control code will probably be easy. The mathematics behind it might not be. Working at a systems level is a real challenge for engineers and Flowcode 6 provides real benefits for those who want to model their system.
 +
 +
[[File:systems level.png]]
  
 
==Some examples of our customers and how they can use Flowcode==
 
==Some examples of our customers and how they can use Flowcode==

Revision as of 14:15, 12 March 2014

On this page we set out our vision for who uses, or will use, Flowcode, how they will use it and where the product is heading. Flowcode 6 is a huge step forward from Flowcode 5. So much so that we thought about changing the name of the product to differentiate it more. So where are the differences and what vision do we have for Flowcode 6 over Flowcode 5?

Differences between version 5 and version 6

A bigger range of components

The usefulness to an engineer of a design tool is closely linked to the range of parts that can be incorporated into the design. Flowcode 6 includes component creation software for users to create their own designs: electrical, mechanical and systems. By making components easy to create we hope that the number of parts available in Flowcode will expand rapidly and the product will become more and more useful. There are already lots of components in V6 that are hidden from view on startup that we are using to test the capabilities of Flowcode. (open the Search filter and enter ‘all’ to see them)

Simulation

Flowcode 6 has superb simulation capabilities. The great thing about simulation is that it allows you to test your design on-screen before you deploy it. This saves time. Simulation also allows you to set scenarios for your project to test it under more conditions than you find on the bench. So simulation also allows you to increase the chance of your design being successful once it is in the field. Simulation also allows you to understand your design better and is a great learning tool.

Test built in

Electronic systems engineers design tend to do one of two things:

  • Control an electronic system
  • Monitor an electronic system

Flowcode version 5, and earlier, allows engineers to develop programs to control an electronic system. That’s great. But what is much more useful is to develop software to control a system and to also measure the system’s performance so that you are 100% sure that it is doing what it is supposed to. Flowcode 6 has loads of features that facilitate this.

Mechanical and 3D support

Engineers don’t design code, microcontrollers, or circuit boards. They design a system which makes use of code, microcontrollers, or circuit boards. With Flowcode we want to channel an engineer’s energy into thinking about the system; not into developing code for it. Flowcode 6 now includes full 3D support and a range of API calls that allow engineers to work at a systems level. We are just getting started here. Take a look at some of the Example files to get an idea of what is now possible. We can now simulate complete mechanical systems like plotters and 3D printers: not just the mechanical drive systems but also the file decoding systems. The 3D engine and API calls facilitate other types of design and simulation: from heating water in tanks using PID algorithms to robotics. This is very exciting. 3D design files for electromechanical parts are now freely available and can be easily imported into Flowcode and used in engineer’s designs.

Our customer groups

When thinking about customers, what they need, and what features to put into Flowcode we classify three types of use:

  • Those working at a circuit level
  • Those working at an electromechanical level
  • Those working at a systems level

Those working at a circuit level

This is essentially what version 5 of Flowcode provided. These engineers have divorced their design from the system they are working on and are able to work at a circuit level to realise their design. They want to see the user components like switches, LEDs, LCDs, and are very familiar with electronics at a circuit level.

Circuit level.png

Those working at an electromechanical level

New for version 6. There are few mechanical designs that do not incorporate electronics. Many engineers working at a circuit level also want to connect that circuit to the mechanics but do so ‘live’ on the equipment they are designing: and endless cycle of design, download, test. We want to provide resources for these engineers to be able to import their mechanical designs, to characterise their movement in Flowcode, to simulate the entire design and to develop not just the software that drives the machine, but also that decodes user files to drive the machine and connect it to the wider world.

Electromechanical level.png

Those working at a systems level

New for version 6. When working at a systems level the electronics design is a trivial task compared to the design of the overall system. If you consider the task of controlling the heat in a tank for example: the electronic circuit is relatively simple consisting of a heater unit and a thermistor. But predicting and managing the rate of temperature rise, the temperature hysteresis in due to sensor and heater lag, the damping in the system and other factors are where the challenges lie. Flowcode allows users to model the system under control, and to design an algorithm to control it. The fundamental control code will probably be easy. The mathematics behind it might not be. Working at a systems level is a real challenge for engineers and Flowcode 6 provides real benefits for those who want to model their system.

Systems level.png

Some examples of our customers and how they can use Flowcode

Embedded Engineer

An embedded engineer generally has a working knowledge of embedded hardware and software. They would usually use a programming language like C or Basic to allow them to develop programs to run on their custom purpose built hardware or development environment. Flowcode is ideal for embedded engineers as it can drastically help to decrease development times by providing libraries of components with fully documented routines allowing you to quickly implement anything from a simple switch with proper de-bounce to a complex item like a GSM mobile phone connection. The Flowcode language also helps remove annoying bugs like typo's and syntax problems which are common in standard programming languages.

Flowcode is also an ideal tool for embedded engineers as it allows files to be shared between several engineers and merged together using the XML based file format.

The features of Simulation and debugging via the Matrix hardware provides an extra interface to help debug your system to get up and running as quickly as possible.

Test Engineer

A test engineer generally might have the same skill set as an embedded engineer but using Flowcode there is generally no need for this.

A test engineer might be tasked with testing a new piece of circuitry right the way through to testing the mechanics of a product like a push bike to make sure it has been built up to standard before shipping to a customer.

Using Flowcode's features like the ability for the simulation to talk to real hardware makes it much easier to setup a test rig that will log all the eventualities as they happen allowing you to catch things before they go wrong and complaints start coming in.

The MIAC USB Slave component allows a MIAC PLC to be connected and controlled via the Flowcode simulation so this can be a very powerful tool for testing.

The features of Simulation and debugging via the Matrix hardware provides an extra interface to help test your system and ensure everything is running as planned.

Systems Engineer

A systems engineer will typically be in charge of pulling all of the various aspects of a system together into one place so that all the different technologies in the system interact and work together seamlessly. The Flowcode simulation environment is a great place for performing such tasks as it allow you to link in real world hardware and provide graphical representation of what is going on. e.g. a S.C.A.D.A type system.

Education / Learning to program

Flowcode is an ideal programming language for education as it provides a very straightforward interface to programming and gets around common mistakes such as syntax problems and typos.

Teachers and lecturers can use features like the macro export to create locked routines that the students cannot edit allowing them to learn in a straightforward yet controlled manner.