This invention relates to devices for automating the generation of technical data and software for electronic programmable controller systems.
This invention may be applied in conjunction with the invention described in PCT application number PCT/AU02/00871. The entire content of this specification is hereby incorporated by reference.
Electronic Circuits need to be connected to programmable controllers for three main reasons: 1) To supply the correct level of power 2) To process input signals so they are within controller specific limits and 3) To process output signals from the controller to useful control actions. These inputs are typically read by the programmed software, are processed as required and then signals are placed on the outputs to perform the desired control task.
Currently a person with sufficient technical knowledge of electronic circuits will take specifications and draw the needed circuits for a new programmable control system. This person will also produce a table of connections to the programmable controller, specifying the type of signals connected and clearly stating their purpose.
Typically another person with sufficient technical knowledge of programmable controllers will take the circuit drawings and table of connections to produce the software needed to run the programmable controller for the specified control application.
Some of the difficulties with this programmable controller project include: 1) transferring sufficient and correct information from the specification to the person with electronic circuit knowledge 2) the possible limited knowledge of the circuit designer 3) testing the electronic circuit for correct operation 4) transferring sufficient and correct information from the circuit design to the person who produces the software 5) producing software in such a way that it is clear and readable to any other person who may need to change it 6) working within the time and budget allocated to the project.
The existing devices for managing the above difficulties are typically systems of required paperwork and checking by a project management person. Although the project may run smoothly when these systems are properly implemented, the systems themselves usually add time and extra work to the overall project.
Some existing devices do allow for sub-tasks and objects to be grouped and manipulated by computer. For example a Computer Aided Design (CAD) circuit schematic program can combine circuits and generate parts lists. Such devices have the limitation of being constrained to the electronics or components of the circuit and do not help with software or broader project management.
To most people, embedded systems are not recognizable as computers. Instead, they are hidden inside everyday objects that surround us and help us in our lives. Embedded systems typically do not interface with the outside world through familiar personal computer interface devices such as a mouse, keyboard and graphic user interface. Instead, they interface with the outside world through unusual interfaces such as sensors, actuators and specialized communication links.
Real-time and embedded systems operate in constrained environments in which computer memory and processing power are limited. They often need to provide their services within strict time deadlines to their users and to the surrounding world. It is these memory, speed and timing constraints that dictate the use of real-time operating systems in embedded software.
Currently the “kernel” of a real-time operating system (“RTOS”) provides an “abstraction layer” that hides from application software the hardware details of the processor (or set of processors) upon which the application software will run. This “kernel” software resides and runs on the embedded controller to provide the services to application software running on a processor. These services include Task Management, Intertask Communication and Synchronization, Timers, Device I/O Supervisor and Memory Allocation.
Currently a person with sufficient technical knowledge of a RTOS will write application tasks that make use of the services available on the particular RTOS that has been chosen for the embedded system.
Some of the difficulties in choosing or developing a suitable RTOS include:
Further difficulties arise from the limits of a users technical knowledge of the RTOS. It may take quite a long time to become familiar with a particular RTOS and hence this may be used in preference to a RTOS that better fits the embedded system requirements.
Each embedded system has its own special requirements and currently a RTOS may be chosen or constructed that best fits the needs. The above difficulties and constraints lead to either compromises or extremely long development times to tailor make a custom operating system.
It is an object of the present invention to reduce or eliminate these difficulties and limitations while reducing the time and work needed to construct the application task software for embedded systems.
According to the first aspect of the present invention there is a computer software mechanism to automate the development and management of a programmable controller system. The software mechanism typically consists of graphical object elements that can be manipulated by a person wishing to produce a programmable controller system.
Using graphical software representations, there is provided a set of sub-circuits that can be selected and attached to a graphical representation of a programmable controller. Each sub-circuit contains data for the user so the user can make an informed selection and add this element to the new system. Each sub-circuit also contains signal data as to what type of signal is coming into or out of the sub-circuit.
Typically all the pins of a programmable controller will not accept all types of input and output signals. Hence only the pins that can connect to the signal type in the selected sub-circuit will be available for connection to that sub-circuit.
After the user connects all the sub-circuits that are needed, then technical information for the construction and testing of the programmable controller system are generated automatically by the software mechanism.
Specifically, since each sub-circuit contains a sub-circuit schematic, then the full circuit schematic can be generated as well as a list of the electronic components needed in the system. Also, since the signal type and function of the sub-circuit are also defined, then a complete test procedure for testing the electronics can be generated by listing the signals to be injected into each programmable controller pin and checking that the specified circuit function does operate. Similarly, expected signals on pins can be tested when other sections of the circuit are activated according to their required function.
The signal information in the sub-circuits as well as the connection selections by the user are used to automatically generate many elements of the program software for the programmable controller. These are: 1) Automatic generation of pin assignment software to configure the programmable controller to input or output the required signals 2) Automatic generation of software for setting required controller chip peripheral hardware to process the signals connected to the pins 3) Automatic assignment of variables and variable names for the signals and pins to be accessed 4) Information about operating system requirements to be implemented in the software.
According to the second aspect of the present invention there is a second computer software mechanism that is related to the first mechanism to automate the development and management of application task software for embedded systems. The user of the software provides the information about the tasks that are to be performed and their real-time constraints and parameters. The user then fills in the details of each task by specifying the software that will execute the task.
The second software mechanism will then compile the tasks into an order that fills the needs of the real-time constraints and parameters. It only adds extra instructions if needed to create specific and stable timing loops. Hence a virtual Real Time Operating System (RTOS) is constructed by this software mechanism to provide for the specific needs of the embedded system.
Hence the second software mechanism tailors the fastest possible RTOS that meets the exact needs of the embedded system tasks without including an “abstraction layer” of executable software. The user and this software mechanism compiler have done the abstraction. Hence the RTOS on the embedded system is “virtual” and takes no memory or speed resources from the embedded system to implement.
Specifically, since each task has a time constraint, they can be grouped into a “fast loop task” and a “slow loop task”. The refresh time of both types of tasks is met by making sure that the loop time is less than the maximum required time as set by the user. This way task priorities and passing of data between tasks is handled in a consistent and stable way. This invention is not limited to two “loop task” sets and it is apparent that it can be extended to more “loop task” levels.
It is noted that the present invention is limited to fixed task embedded systems. If a new task must be added to the system then it must be added to the Software Mechanism and the virtual RTOS re-compiled before updating the Embedded System program memory. This is not a limitation on most Embedded Systems since currently a new task is usually constructed on a separate computer before compiling and downloading to the Embedded System program memory.
As an extension to the present invention, it is noted that an embedded computer may be used to run the Software Mechanism to re-compile the embedded controller that is executing the tasks. This interruption could be handled by having at least two available task executer controllers so one can continue to run real-time tasks while the second is being updated. Then the second controller could quickly take over the running of the tasks under an updated real-time operating system. Since the entire embedded system can be taken into account in the present invention, it is apparent that the Software Mechanism can easily be applied to share tasks on multiple embedded controllers.
It is noted that the present invention is similar in many ways to a computer “language” in that it can become a consistent interface in spite of the specific machine code requirements of the embedded system. The present invention also “compiles” the required machine code rather than running an embedded “interpreter” type of RTOS. However, the Software Mechanism greatly differs from languages in that is based on RTOS requirements of the complete embedded system and automatically generates a result that fits the requirements of every task in the system. Current computer “languages” do not cater for these requirements since they are based on sequential task execution. The users of current computer “languages” must manually create the RTOS structure or select one that “interprets” the language tasks on the embedded controller.
The invention will now be described in more detail with reference to the following figures and tables in which:
The selectable sub-circuits according to one aspect of the invention are shown in Table 1. Each sub circuit has descriptive parameters attached to it. Some parameters may be descriptive and aid the user in understanding and using this device.
The user selects a sub-circuit and attaches it to a programmable controller pin. The user then selects another sub-circuit and attaches it to another pin of the controller. In this way the user attaches all the sub-circuits that are determined to be necessary by the user. An attachment diagram is thus created as in
It is apparent that a complete circuit diagram picture can thus be generated as in Table 2 since each sub-circuit contains its own circuit picture.
A complete parts list can similarly be generated as in Table 3. These are useful engineering details for the hardware assembly of the complete circuit.
The mechanism of the current invention also allows for automatic generation of a hardware test procedure as shown in Table 4. Since known input states must exist on each sub-circuit connection pin, therefore it can be tested on the pin socket of the programmable controller to determine if the sub-circuit is operating correctly. Similarly known output states will activate sub-circuits with documented outcomes. Hence a signal can be injected onto the pin socket and the sub-circuit outcome compared to the sub-circuit description to check if it has passed the test.
The mechanism of the current invention also allows for programmable controller settings to be assigned to the controller software for the setting of controller pins as in Table 5 and the setting of peripherals as in Table 6.
Further, the mechanism of the current invention also allows some programmable controller software variables to be automatically generated. Table 7 shows bit variable names used in the software to access the functions on the pins of the programmable controller.
Finally, the mechanism of the current invention allows some programmable controller software structure to be generated automatically. Table 8 shows that necessary set up software can be inserted directly after the controller starts. Necessary software subroutines can also be automatically inserted for processing the input signals from the pins as well as for processing output signals to the pins.
A specific implementation of the present invention will now be described in the form of a programming tool designed to program a microcontroller using the graphic symbol feature of the present invention. The specific implementation of software is called “ezCircuit Designer”.
1. To start adding a circuit, select a circuit group button.
See
2. Next, select a circuit from the list.
See
3. After a circuit has been selected, the circuit's connections are displayed in a list and some of the pins on the chip will change their colour. The highlighted connection in the list is the next one to be added to the circuit.
All of the green pins are compatible with the selected connection. Different pins on the micro-controller support different modes. Compatible pins are those pins that satisfy the modes required by the current circuit connection. Please see the micro-controller's datasheet for more information on what modes are supported by each pin.
The highlighted green pins are the ‘suggested’ pins. These pins support all the modes required by the selected connection, but also have the least number of other modes that will not be used by that connection. Using the ‘suggested’ pins leaves the pins with more modes available for other connections.
An error message is displayed if there are not enough compatible pins available for a selected circuit.
See
3. Select an available pin for each connection required by the circuit. As pins are selected, their colour changes from green back to blue and the connection is added to the diagram, having been removed from the list.
See
4. On completion of pin selection, the circuit is added to the micro-controller and the default pin names are assigned.
See
Remove a Circuit from the Micro-controller
1. Click on the unwanted circuit in the main window. After selection, the colour of the circuit block will change to orange.
See
2. Click on the Edit menu and then click Delete to remove the unwanted circuit.
See
Shortcut: You can also press the Delete key on the keyboard to remove the selected circuit from the micro-controller.
1. Click on a circuit block in the main window of ezCircuit Designer. When the circuit block is selected, its colour will change to orange.
See
2. Double click on the selected circuit block to view the diagram for that circuit.
See
3. To return to the main window, click on the Main button. Alternatively select Main from the Go To bar.
1. After selecting to view a circuit diagram, you will be at the circuit window for the selected circuit.
2. Click on the information icon to view the circuit information.
See
3. The information document will open after the information icon has been clicked.
See
1. Click and hold the left mouse button over the connection block to be moved.
See
2. While still holding the left mouse button down, drag the mouse cursor to the pin that the connection is to be moved to. When starting to drag, the pins compatible to the selected connection will change colour to green.
See
The mouse cursor will change to indicate if it is or is not over a compatible pin.
See
3. When the mouse is over the desired compatible pin, release the left mouse button and the connection will be moved.
See
1. In the main window, bring up a context menu by right-clicking on the pin name to be edited and select Rename.
See
Alternatively, if in the circuit window, simply left-click on the pin name to be edited.
Note that the pin names for some circuits cannot be edited. Power Supply, Oscillator and Reset Button circuits are not attached to pins that can be accessed in the assembly code and therefore have no pin names.
2. A text box will be displayed, allowing the name to be edited.
See
Note that because pin names are used in the generated assembly code, not all characters are accepted. Acceptable assembly code names start with a letter and only contain letters, digits and underscores.
3. Press the Enter key or click outside of the text box to finish editing the pin name. If an acceptable assembly code name has been given, the text box will be removed and the pin's name will be set.
See
Note: Descriptive pin names can help identify what circuit connection is connected to what chip pin. The main purpose of pin names though, is to be used in the generated assembly code, as names that identify the addresses of pins. This means that the pin can be accessed in the assembly program with the pin name rather than the numerical address.
The following is a list of advanced functions supported by ezCircuit Designer.
1. In the Options menu of ezCircuit Designer click on Chip Selection.
See
2. Select a micro-controller model from the pop up Chip Selection dialog box and then click OK.
See
Note that the Suggestion button highlights the model of the smallest micro-controller that can have all of the circuits in the current project attached to it.
3. The micro-controller is changed and the program tries to move the circuits from the previous micro-controller to the new one.
See
Shortcut: You can also double-click on the chip diagram or click on the chip icon from the program to change the micro-controller.
1. Click on the Options menu, then click Generate ASM File.
See
2. A message box pops up informing the user that the Assembly file has been saved to the project folder.
See
This help page explains how to add a new Circuit Group or edit an existing one.
1. To start, click on the Add button.
See
2. The Start Panel for the Wizard will be displayed. Click one of the buttons to select whether to ‘Add New Circuit Group’, ‘Add a New Circuit Group Based on an Existing Circuit Group’ or ‘Edit an Existing Circuit Group’.
See
If ‘Add New Circuit Group’ is selected, go to step 4.
3. If ‘Add a New Circuit Group Based on an Existing Circuit Group’ or ‘Edit an Existing Circuit Group’ was selected, the panel to select an existing Circuit Group will be displayed. Note that it is not possible to edit a circuit group that came installed with ezCircuit Designer, but you can base new circuit groups on them. Select a circuit group and click the Next Button.
See
If editing a circuit group, go to step 5.
4. If adding a new circuit group, the Circuit Group Name panel will be displayed. A generated unique name will initially be shown in the text box. Enter an appropriate name and click Next. If the name given is not unique, an error message will be given.
See
5. The icon panel will be displayed next. The icon currently set to represent this circuit group is shown in the centre of the panel. This is the icon that will be displayed in the main ezCircuit Designer window along with the icons for all other circuit groups. Clicking the Browse button will bring up an Open File Dialog Box, allowing a different image file to be selected and used as the icon. When an appropriate icon has been set, click the Next button.
See
6. The tool tip panel is displayed last. The tool tip is the text that appears when a user's mouse cursor hovers of the circuit group's icon in the main ezCircuit Designer window. Enter an appropriate tool tip and click the Finish button to end the Add Circuit Group Wizard.
See
When the Finish button is clicked, the circuit group will be saved and added to ezCircuit Designer.
This help page explains how to add a new Circuit or edit an existing one.
1. To start, click on the Add button.
See
2. The Start Panel for the Wizard will be displayed. Click one of the buttons to select whether to ‘Add New Circuit’, ‘Add a New Circuit Based on an Existing Circuit’ or ‘Edit an Existing Circuit’.
See
If ‘Add New Circuit’ is selected, go to step 4.
3. If ‘Add New Circuit Based on an Existing Circuit’ or ‘Edit an Existing Circuit’ was selected, the panel to select an existing Circuit will be displayed. Select a circuit and click the Next Button.
See
If editing a circuit, go to step 6.
4. If adding a new circuit, the ‘Select a Circuit Group’ panel is displayed. Select the group that this circuit will belong to and click the Next button.
See
5. If adding a new circuit, the ‘Circuit Name’ panel is displayed. A generated unique name will initially be shown in the text box. Enter an appropriate name and click Next. If the name given is not unique, an error message will be given.
See
6. The ‘Circuit Description’ Panel is displayed. The description is displayed in the ezCircuit Designer circuit window when the circuit diagram is being viewed. Give a description of the circuit and click the Next button.
See
7. The ‘Further Information Document’ panel is displayed. The further information document is displayed when the information button is clicked in the ezCircuit Designer circuit window. Click the Browse button to bring up a Open File Dialog Box to locate a document.
See
8. The ‘Electronic Components’ panel is displayed. To add a new component, enter the value and type of the component and the number of them required, then click the Add button. The drop down lists give suggested value units and types, but any text can be entered into them. To remove a component, select it in the list of All Components and click the Remove Selected button.
See
9. The ‘Circuit Test Procedure’ Panel is displayed. If desired, enter a description of how to test if the circuit is working correctly.
See
10. The ‘Circuit Special Cases’ panel is displayed. If any special cases are appropriate for this circuit, select them from the list.
See
11. The ‘Circuit Diagram File’ panel is displayed. Click the Browse button to bring up an Open File Dialog Box to locate a circuit diagram picture file for this circuit. Click the Set Up Connections button to bring up the separate ‘Circuit Diagram Form’. Note that a circuit requires at least one connection before it can be used in ezCircuit Designer.
See
12. If the Set Up Connections button in the ‘Circuit Diagram File’ panel is clicked, then the ‘Circuit Diagram Form’ is displayed. This form allows connections to be added and removed from the circuit and the Pin Names to be positioned on the circuit diagram.
See
Clicking the Add button brings up the ‘Add New Connection’ form to allow connection properties to be set up. Clicking the Remove button removes the selected connection. Double clicking on a connection will bring up the ‘Edit Connection’ form. The pin name for a connection can be moved about the circuit diagram by clicking and dragging it into position.
The ‘Add New Connection’ or ‘Edit Connection’ form allows the modes and default pin name of a connection to be set. Note that each circuit connection requires at least one mode before it can be used in ezCircuit Designer.
See
13. When the Next button is clicked in the ‘Circuit Diagram File’ panel, the ‘Computer Aided Design Files’ panel is displayed. If there is a Proteus Schematic Section file for the circuit, clicking the Browse button will bring up an Open File Dialog Box to located it. This file is used when a project using the circuit is exported to Proteus.
See
The ‘Computer Aided Design Files’ panel is the last panel in the Add Circuit Wizard. Click the Finish button and the circuit will be saved and added to ezCircuit Designer.
1. Click on Options menu in ezCircuit Designer, then click View Part List.
See
2. The Part List dialog box will pop up.
See
3. Click Export to Excel to save the part list to an Excel spread sheet, otherwise click Close.
4. If Export to Excel is clicked, then the Part List file is saved to the project folder and the file is opened in Excel, if Excel is installed.
Shortcut: You can also click on the part list icon to export the part list.
1. Click on the Options menu of the program, then click View Test Procedures.
See
2. A Test Procedure dialogue box will pop up.
See
Shortcut: You can also click on the test procedure icon to view the test procedure.
1. Click on Options menu of ezCircuit Designer, then click View Pin Settings.
See
2. A Pin Settings dialogue box will pop up.
See
3. When finished viewing, click Close to close the dialogue box.
Note: When you save the project the contents of Pin Settings will be saved as a text file in the Project Folder.
1. Select the Export to Proteus menu item from the Options menu.
See
2. A message box will be displayed explaining that, after clicking OK, you will need to wait until Proteus has finished loading before using the mouse or keyboard again. Using the mouse or keyboard may disrupt the export process and cause problems.
See
3. After clicking OK, Proteus will launch and the export process will load the schematic for the project's micro-controller . . .
See
1. Click on the Options menu, then click Send to CoreChart.
See
2. If CoreChart is installed, the generated ASM file will be exported to CoreChart.
See
3. Once CoreChart is loaded, the screen above will be displayed. Click on import and the program will be ready to download to the micro-controller.
The following is one project example. This example is a two player Reaction Game.
Step 1: Start a New ezCircuit Designer Project
Start ezCircuit Designer and choose “Create New Project”.
If a project is already open then choose “New” from the File menu.
A “Create a New Project” window will appear. In the “Name” box type “Reaction Game” as the name of the new project folder.
Select a location for the new project folder on the computer.
Press “OK”
Document the Project
Before starting any project it is important to clearly define the project. This helps to clarify what the project will do. It communicates all aspects of the project to other people.
To create a document, select “Create Document” under the “Documentation” menu. Next select “Specification”.
See
Click on “Introduction” to highlight it and then click the “Edit Contents” button.
See
See
Write a brief summary of this project (as above) and click “Save”.
We will also fill in the details for the rest of the documents as follows:
Since this is a New Project the PIC12F629 chip is always the default chip.
For this project we will use the PIC16F819 chip.
Double click on the central chip and select “PIC16F819” from the list. Click OK.
See
Choose the LED icon in the “Groups of Circuits”.
See
Select “active HIGH” in the “Circuits” menu and click on pin 13 of the chip. Add the same LED circuit to pins 17 and 18 on the chip.
See
Rename each of the LED circuits. Right click on the LED label and choose Rename. Change the LED names as follows:
From the “Groups of Circuits” menu click the “Button” icon. Select the “Pull up” circuit in the “Circuits” menu.
See
Add the “Button” circuit to pin 4.
Select the “Button” icon again and this time select the “Pull Down” circuit in the “Circuits” menu. Add the second “Button” circuit to pin 6 as shown below.
See
Rename “Button4” to “Player1Button” and “PllDwnButton6” to “Player2Button”.
See
Select the Buzzer icon in the “Circuit Groups” menu.
See
Add the “Piezo Buzzer” to pin 15 of the chip by clicking on pin 15.
See
Rename “Buzzer15” to “Speaker”.
See
The eLab16m board already has a power supply pre-built into the circuit. In fact, the type of the power supply is the “One_Diode_PS”. In ezCircuit, the default power supply is always the 5V Voltage Regulator. Therefore, change the power supply to the “One_Diode_PS”.
Delete the “power supply circuit” by selecting one of its connections and pressing the “Delete” key on the keyboard.
See
Click Ok when you see this message.
See
The Power Supply Circuit is next removed from the design.
Click on the Power Supply icon and select the “One_Diode_PS”.
See
Click on pin 14 and pin 5 to connect the power supply to the chip.
See
Rename the pins to “PowerSupply1” and “PowerSupply”
See
Select the Programmer Circuit icon under the Circuit Group menu and click on “Add”
See
The Programmer Circuit is inserted in the project. The Programmer Circuit is found connected to Pin 4, 5 and Pin 12, 13 and 14.
See
Click on the Programmer Circuit to bring the circuit forward.
See
Before we continue make sure the project is saved by clicking on “Save” under the “File” menu.
It is easier to build the circuit if the circuit diagrams are pinted out. To do this click on “Print” under the “File” menu.
See
“Print Project Documents” sub-menu will appear. Select the documents to print by clicking on the tick box next to the selected item. In this case select all the documents to print.
See
The “Part List” shows all the parts required to build the Reaction Game circuit from scratch. Nore that most of the parts for the circuit are available on the elab16m controller board.
After the hardware circuit is built it can be tested by running the test software on the chip. ezCircuit Designer generates the test software from the circuits designed.
Note: At this point, please ensure that CoreChart version 2.4.25 or higher is installed on your PC.
Click on “Send to CoreChart” under “Options” in the main menu.
See
CoreChart starts up automatically and the window below will appear. Click “Import”.
See
After importing the file i.e. ezCircuit sends an ASM file to CoreChart, the test program will be displayed.
See
The pin names have been translated to Bit Variables in CoreChart. This saves time in matching the Port pins to the circuit. To view the User Variable List click “Variables . . . ” under “Edit” in the main menu bar.
See
Step 12: Download the Program into Chip
Once you have imported the Test Program from ezCircuit, save the file using a new name “TestProgram”.
Plug the USB programmer into the “CON1” connector of the elab16m module. Plug the battery pack into the eLab16m and turn on the power switch.
On the CoreChart main menu bar select “Tools” and click on “Send to Chip”.
See
Once the program has been successfully downloaded into the chip, a GREEN status bar on the USB programmer software will appear. If the status bar is RED check that all the cables are connected correctly and the power on the eLab16m is turned on.
See
After verifying that the USB programmer system is running properly, the circuits can be tested by activating the outputs on the chip. The test program will do this.
See
There are 6 things that the microcontroller will do on this software:
Run the Test Program by pressing the “Player1Button” once. The “Player1Button” is the push button on the elab16m. The program will run the sequence as shown above.
Check that all three LEDs and the Buzzer turn on and off once. If one of them does not respond, check that the wires are connected correctly and tightly.
It is noted that although the implementation example and project example shown here generate software in assembler or CoreChart graphical assembler, this invention is also applicable to any other software languages such as: C, Basic, Java, Ladder Logic, Assembler for other microcontroller families, etc.
The following is an example of how tasks may be graphically added using forms:
When an individual task is selected for editing, via double clicking on it or clicking on Edit Task, or when a new task is created, the Add/Edit task form is displayed.
See
(1)—The task's name, to be displayed in the main form, and used as the subroutine name in assembly and CoreChart. Required field. Names must only contain letters and spaces.
(2)—A short description to explain the task's function. Optional.
(3)—The input selection drop box displays all available hardware inputs as well as task variables created by the user. Currently only one input can be selected for each task. If memory register is selected, the list of task variables (4) is made available. None can also be selected for inputs, which is used for tasks that occur unconditionally, and are not dependant on any other tasks.
(5)—The output select drop box, similar to (3), but None cannot be selected—all tasks must have a function.
(6)—Allows selection of timing type and periods.
Type—allows for the selection between three timing types—Fixed, bounded, and Not Critical.
Fixed is for time critical tasks that must be run at a certain time, and the time algorithms will give these tasks priority.
Bounded timing is for tasks that are to be executed within a specific time range. When selected, Lower specifies the lower bound for a bounded type task, and Upper the upper bound.
Not Critical is for tasks not dependant on timing, but rather on other tasks completing first.
(7)—Allows for selection of task operation type, for which the options are iterative, conditional, immediate, and parallel data stream, as well as the number of loops of the task.
(8)—Task variable form button. Opens up the task variable form.
The Task Variable form is accessed when the Task variables button in the Add/Edit task form is selected. It allows task variables to be defined before their use in a task.
See
(1)—Allows entry of the name of the variable to be added or changed. Once variable is added via (3) it will appear in the list below—(2).
(2)—Displays the list of existing variables. Clicking a variable in the list selects it to allow for renaming or deleting. This list will be shown in the Add/Edit task form when a Memory Register input or output is used.
(3)—Allows the new variable named in (1) to be added to the variables list. Note: Variable name can only consists of letters; numbers and symbols are not accepted.
(4)—Allows the renaming of an existing task variable. Renames selected variable from variable list (2) with the new variable name assigned in (1). If the variable was already in use by tasks when renamed, the name change will be automatically updated in those tasks.
Note: New variable name assigned must not already exist in the variable list.
(5)—Allows the selected task variable to be deleted from the list. If the variable is still in use by tasks when deleting, you can choose whether to replace the variable used for input/output with the default value, or have every task using the deleted variable removed. The renaming choice could be useful if the created tasks are still relevant but the need for a variable between them is no longer necessary.
(6)—Closes the form and returns to Add/Edit task form.
The following is an example project to illustrate the use of this invention. This project will flash a LED at a specified rate.
Step 1: Select eLab16m Template
The electronic control hardware is built using the eLab16m board.
The window below will appear. Click “Ok”:
See
To create the other LED flash task;
The VRTOS window will have two tasks and look like the
(NOTE: This project only uses timing dependent tasks; that is tasks that will occur every specified time period. VRTOS also has options to specify task-dependent tasks; i.e. a task that will occur when another specified task is complete, or non-dependent tasks; i.e. a task that will occur as often as possible.)
Now that the tasks are created, the task scheduling code can be generated in CoreChart.
Go to “File”, “Export”, “Export to CoreChart”.
The necessary code for the timing of tasks has already been generated. All that is required is the code for each task.
The CoreChart program should look like
The on-board yellow LED will flash every second and the red LED will flash every half a second.
Number | Date | Country | Kind |
---|---|---|---|
2007906752 | Dec 2007 | AU | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/AU08/01836 | 12/15/2008 | WO | 00 | 12/1/2010 |