About the oven_gtk (oven demo graphical interface): # # (c) 2001 Juan Carlos Orozco # # Offered to the public under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # This code is made available on the understanding that it will not be # used in safety-critical situations without a full and competent review. # To execute: Make sure that /mmi/hmi_gtk/ is compiled. Otherwise type "make" at this directory. From this directory: ./demo The Heater window: Buttons: Start and Stop the machine, set it to Automatic or Manual modes, change to the oven window or quit the aplication using their respective buttons. Entry fields: Set the manual set point for the gas valve and the automatic thermal fluid pump set point. The first value will be taken into consideration only on manual mode and the second only on automatic mode. Display fields: Flame status, pump status, valve position, manual valve position set point, heat generated by the heater, actual thermal fluid temperature and its set point, thermal fluid temperature PID output. The Oven window: Buttons: No buttons on this window. Entry fields: Set the manual set point for each three way valve (works only in manual mode), automatic air temperature set point for each zone (works only in automatic mode) and belt speed set point (works only when the machine is started). Display fields: Each three way valve position and manual set points, air temperature set point and actual value, radiator temperature and product temperature ll this for each zone, belt speed set point command and actual speed feed back. The difference between the oven demo and oven_gtk demo to the user is that in the oven_gtk demo one can set the manual setpoint and the automatic setpoint in two separate entry fields. Notes: The start button starts the belt motor and ignite the heater flame. Please note that even if the machine is stopped numbers move on the screen, this is because they are simulated values (temperatures). For example when we first run the program all temperatures are zero, and they start moving up until they all reach the ambient temperature value. This is of course when the oven is stopped (flame off). Some tipical values to operate this machine coud be (running in atomatic mode): (Dont forget to start the machine and set it to automatic) Belt speed 10 m/min FluidTempSP 200 Cº AirTempSP Zone1 90 Cº AirTempSP Zone2 120 Cº AirTempSP Zone1 140 Cº After some time the actual values should reach their desired values. Then you could play with this values to see how does the machine behaves. It is interesting to note that we have a Product Temperature variable, this does not mean that we require sensors to measure the product temperature in the real machine, this is a calculated value and depends on the belt speed. This program uses the next MATplc modules: Two DSP modules one for the Oven and one for the Heater. A HMI_GTK module which displays the graphical interface for the demo. The two DSP modules and the HMI_GTK module are synchronized using the simple secuential synchronization scheme. Read demo/oven/README.html for more implementation details. WARNING: Due to a bug on glade, the GnomePixmap scaled state is not saved. This will cause the *.glade configuration file to loose this information each time a change is saved. In this demo the next line was inserted manually for each scaled widget: True This simple bug makes working with scaled GnomePixmap images unconfortable. Hopefully this will be fixed in future versions of glade. Libglade does not recognize the scaled state either, therefore an interim solution was implemented in hmi_gtk.c module. The inconvenience is that the name of the pixmap has to be placed on the name of the widget using the next format: .filename.ext_id The widget is actually scaled to the size of the widget and not using the scale factors of the GnomePixbuf. The progressbar widget also has a similar problem but with the ranges and factors of the progress bar, this limits the versatility of this widget to scale the incoming signal. Right now it is only possible to display a 0.0 to 100.0 value using this widget.