Overview

Harvester can route data from many different sources into a Windmill data acquisition and control system. It obtains data from other Windows applications using dynamic data exchange. The data then becomes accessible to Windmill modules like Chart and Logger.

Many Windows applications make data available over DDE. For instance:

  • spreadsheets like Excel
  • data acquisition hardware drivers
  • data entry software
  • analysis programs
  • industrial networks like LonWorks and FIP
  • your own code

These applications are known as DDE servers and Harvester connects them to Windmill. You can link up to 10 DDE servers, with up to 100 channels of data, to Harvester.

A DDE server always responds to requests, or commands, from another Windows application—know as a DDE client. Harvester is a DDE client and lets Windmill take the initiative. Without Harvester, Windmill is just a DDE Server.

When using Harvester you don't need to specify DDE links in the other Windmill programs: Chart, Logger and so on. All Windmill programs will see Harvester as if it were just another hardware device.


Getting Started

  1. Check that your DDE server application is suitable for use with Harvester.
  2. Load the DDE Server application.
  3. Run ConfIML and add Harvester to the list of data sources supported by Windmill. Select the DDE service name of your Server application from the drop-down list and create the DDE Server channels.
  4. Run the Windmill SetupIML program and generate a hardware setup file that includes the channels. You can name the channels and specify their units. You can mix DDE channels with other hardware channels you have installed in your system. (Your DDE Server application appears to Windmill as a normal "hardware" device.) With SetupIML you can create libraries of hardware setup files for different jobs.
  5. Launch the Windmill application you wish to use and load the hardware setup. You're now ready for logging, charting, etc.

DDE links are described when you install Harvester. If you want to change the links run ConfIML and tell the Windmill system about the changes.

Related topics:

Installing Harvester when bought from Windmill's Internet Shop


Applications that are Suitable for use with Harvester

Check that your application complies with the following three points. If it does you can use Harvester to connect the application to Windmill.

  1. Your application must be a Windows application.
  2. Your application must act as a DDE server. That is it must be capable of receiving DDE Requests or DDE Pokes. It may optionally implement DDE Advise (Hot links).
  3. Your application must send or receive data as single values; blocks of data may not be used. Some server applications may have the facility to send blocks of several data values. These blocks, however, don't contain the information that Harvester needs to extract single values and map them onto a single Windmill data channel.

Suitable applications include spreadsheets like Excel, industrial networks such as LonWorks and FIP, data acquisition hardware drivers, data entry software, analysis programs and your own Visual Basic code.


Installing Harvester with bought from Windmill's On-Line Shop

Installing Harvester when bought from Windmill's Internet Shop

  1. Open your DDE server application. If you have Excel you could use this to practise with Harvester. (If you don't have Excel then substitute your server whenever Excel is mentioned here.)
  2. Unzip the harvest.zip file into a temporary folder other than your Windmill folder.
  3. Run setup.exe. The Add IML Hardware box appears.
  4. Select Harvester and press the Add button.

  5. If Excel is open it is listed in the DDE Service Name box—select it from the list and type a description for it into the Description box. Press OK. The Configure DDE Server dialogue appears.

  6. Ignore the Configure DDE Server box and go to Excel. Copy the first cell containing data to the clipboard.

  7. Return to the Configure DDE Server dialogue

    Press the Paste Channels button. Harvester enters a DDE reference to your spreadsheet cell.

  8. Repeat steps 6 and 7 for all your data (up to 100 cells). You must do each cell individually as DDE block references won't work. When you've finished press OK in the Configure dialogue then Save.

  9. A message appears saying "If you have been running any IML applications during this session you must now restart Windows." You can ignore this.

  10. Start the Windmill SetupIML program and create a new setup which includes your Excel channels. If Excel is not shown then choose it from the Device menu.

    The channels to your spreadsheet cells are shown as numbers; 10000, 10001, 10002, etc. You can give these more sensible names. Double-click a number and type a new name. You can ignore the rest of the options. Save the setup and close SetupIML

  11. Open the Windmill Chart or Logger application. Load the setup file you have just created then choose (connect) your Excel channels. Press Start and the data in your spreadsheet is charted or logged by Windmill. Change the data in your spreadsheet and it will also change in Chart or Logger.

  12. To change the cell references re-run the Windmill ConfIML program.


Adding a DDE Server

To add a DDE server application to your Windmill system you have to include it in the list of data sources supported by Windmill, and set up the DDE references. You do this with the ConfIML program. ConfIML runs automatically when you install Harvester, and invites you to add some IML hardware.

  1. Select Harvester and press the Add button.

  2. If your DDE server is running it will appear in the Service Name list and you can select it. Otherwise type a name for your server application. The name can be up to 10 characters long and should not contain spaces.

  3. Type a description of the server into the Description box. This can be anything you like.
  4. Press OK. You can now create DDE channels between Harvester and your server.


Configuring a DDE Server: Creating DDE Channels

This dialogue box appears when you select a DDE server in ConfIML and press the Settings button, or when you press OK in the Add New DDE Server box. It lets you specify the command Harvester uses to start the server when the server is not already loaded, lets you paste DDE channels and lists channels currently in place.

When you've added or pasted all the channels you require to the server, and configured them satisfactorily, press OK and you're taken to the main ConfIML window.

For more help click over the picture below.

Command to start server

When a Windmill program finds Harvester references, it will try to establish contact with the server using this path. If your DDE Server application is currently running, Harvester automatically enters its location here.

Related Topics: Command to start server

Number of channels in the server

Shows the number of DDE channels currently in place. You cannot edit this number. Use Paste or Add to add channels, and Delete to remove channels.

Related Topics: Number of channels in the Server

Channels

Shows the DDE links you have created by pasting or adding channels.

Related Topics: Channels

Paste Channels

The easiest way to create channels is to copy the data in your DDE Server application, and then press the Paste Channels button here.

Related Topics: Paste channels button

Add Channel

Lets you specify DDE links by hand.

Related Topics: Add channel button

Configure Channel

Opens the Channel Setup dialogue, where you can set such things as the units of the data and the expected minimum and maximum values.

Related Topics: Configure channel button

Delete Channel

Removes the selected DDE link.


Configuring a DDE channel

Configuring a DDE Server Channel

This dialogue appears when you add a new DDE channel, or select a channel and press the Configure Channel button. It lets you add or edit DDE references and other details.


Configuring a DDE Server Channel

Here you can configure DDE channels.

Channel Number

Minimum / Maximum Values and Units

Channel is Input / Output / Digital

Service Name

Topic Name

Item Name

Read in background

Press OK when you've completed this dialogue and you're returned to the Configure DDE Server dialogue.


Saving the Configuration

Press Save in the main ConfIML window. The configuration settings you have chosen are saved and the DDE server added to the list of installed data sources. You can now use the SetupIML program to include the server's channels in a hardware setup file (*.ims).


Harvester with Excel

You might wish to use a Microsoft Excel spreadsheet to perform calculations on data before passing them to Windmill. Alternatively, you might simply want to chart data from Excel. You can set up links between Excel cells and Harvester by copying and pasting.

In Excel select a cell and choose Copy from the Edit menu. Now go to ConfIML and in the Harvester Configure DDE Server box, press the Paste Channels button.

You could also enter and edit the references by hand. For example:

Service Name:Excel

Topic Name:[C:\EXCEL\CALCS.XLS].Sheet1

Data Item:R1C1

The Service name here is Excel. The Topic name specifies the Excel Book/Sheet. The Data Item is the cell reference expressed as row and column.

Using Excel to Analyse Data Collected by Windmill, then Sending the Results back to Windmill

In the example below Excel is reading data from the Windmill DDE Panel and storing it in cells B4 - B8. These cells are updated automatically whenever DDE Panel takes new samples, at which point Excel calculates the average and standard deviation and stores them in cells B10 and B11. Harvester has been configured in ConfIML to read these calculations.

In cells B4 to B8 Excel is acting as a DDE client and obtaining data from the Windmill DDE Panel. Harvester is not needed for this transaction and the DDE references are entered in Excel as shown. (See the DDE Panel Help for more information on DDE references.)

In cells B10 and B11 Excel is acting as a DDE server under the control of Harvester. The DDE references are entered in ConfIML, letting Harvester read the calculations from the Excel cells and then automatically make them available to the rest of the Windmill programs. In this way you can store raw and processed data in the same Logger file.

Related topics:

Installing Harvester when bought from Windmill's Internet Shop


Harvester with Visual Basic Programs

You can write your own application to supply data to Harvester using Visual Basic. When configuring the channels in Harvester, specify the DDE Link as:

Service Name:The project Name, if using the development environment, or the executable name (if run time)—without the file extension in either case.

Topic Name:The form name.

Data Item:The control or label name.

For example: MyProject|Form1!Text1

You must change the form's LinkMode property variable to be 1 (source) before using the form as a Server and ensure the LinkTopic variable is also set. You may set both of these by selecting the form and selecting the Properties... menu item located on the Window Menu.

The controls on the form can now supply or receive data from a DDE client (destination) such as Harvester. Changes to the controls may then be recorded by Windmill.

Note: In Visual Basic, Source refers to a DDE server and Destination to a DDE Client


Problems?

Although Dynamic Data Exchange is a well-defined protocol, it does involve quite complex transactions and it is possible that some DDE operations may fail. Furthermore some servers may not implement the full DDE protocol, but only a subset of it. This may lead to problems when using the server with Harvester, in particular when initially configuring the system.

I Can't Add Windmill Programs Like DDE Panel and Logger to my List of Data Sources

You don't need to add any Windmill programs to the list of IML data sources. Windmill programs automatically communicate with each other without the need for DDE.

There's no response from ConfIML when adding a DDE Server

If ConfIML stops working when you're using it to add a DDE server, it may be that the server does not fully support the system topic. Windmill uses the system topic to interrogate the server for available topics and items. Run ConfIML without the server being loaded and simply enter the service, topic and item names manually. (You will not be able to use the "Paste Channel" facility if the server isn't loaded.)

Data not yet available message

If Harvester cannot connect to your server, it will assume the server is not present and attempt to load the server using the Start Up Command entered at configuration. It may take several seconds for the server to load. During this time Windmill will report that data is not yet available. Loading the server before you start Windmill will ensure that Harvester can quickly connect to the server.

Windmill applications can't connect the DDE server channels

If you have problems connecting to the server when running the Windmill applications, try loading the server before starting Windmill. Some applications will not successfully connect to Harvester if they have been 'spawned' by Harvester.


Glossary

ChannelA source of data

Cold LinkThe server application supplies data whenever the client (Harvester) requests it

DDE AdviseThe server application informs the client whenever new data is available (otherwise known as a Hot link)

DDE ClientThe application that starts the DDE conversation (Harvester)

DDE PokeThe server is sent data from the client

DDE RequestThe server is requested to supply data to the client

DDE ServerThe application that returns or receives data to or from the client

Hot linkThe server application informs the client whenever new data is available

Item NameIdentifies a specific item belonging to the Topic

Paste LinkA special clipboard format that permits DDE references to be cut and pasted between DDE applications.

Service NameIdentifies an application in a DDE conversation

System TopicA topic defined in the DDE protocol that contains information about the DDE services on offer. All DDE applications should support this topic.

Topic NameIdentifies a specific topic on which to communicate


World Wide Web

Web Site

You can find more information about Windmill Software on the World Wide Web at http://www.windmill.co.uk/.

Every month we publish a free newsletter - Monitor ((ISSN 1472-0221), delivered by e-mail. This gives tips on using Windmill and articles on data acquisition and control. To subscribe visit http://www.windmill.co.uk/newsletter.html.

For easy purchase of extra software modules visit http://www.windmillsoft.com/.

Updates of this Help file will be posted at http://www.windmill.co.uk/help.html.


Your Comments on the Help

Tell us any improvements we could make to our Help files. Could you quickly find what you wanted? Was the explanation clear? Have you any questions? Visit http://www.windmill.co.uk/help.html and fill in the comments form at the bottom of the page.


Windmill

Windmill is a suite of data acquisition and control software. It comprises:

Drivers - which handle the low-level communications

ConfIML - which creates a file holding details on which hardware devices are in your system

SetupIML - which creates files telling the other applications how you want the hardware configured

Applications - such as Logger and Chart which perform the data acquisition and control tasks


Contacting Windmill

Windmill Software,
PO Box 58,
North District Office,
Manchester,
M8 8QR,
UK
Telephone: +44 (0)161 833 2782
Facsimile: +44 (0)161 833 2190
E-mail: sales@windmill.co.uk
http://www.windmillsoft.com/
http://www.windmill.co.uk/


(Untitled)

DDE Item Name

The Data Item Name identifies the location of the data.


(Untitled)

Shows the service name you entered in the Add New DDE Server box. This is for information only: you can't change this here.


Adding the DDE Server

Here you can add a new DDE server application to your Windmill system.

  1. If your server is running is should appear in the list and you can select it. Otherwise type a name for your DDE server application. The name can be up to 10 characters long and should not contain spaces.
  2. Type a description of the server into the Description box.
  3. Press OK. You can now create DDE channels between Harvester and your server.


(Untitled)

Check "Channel is Input" to allow Harvester to read the channel. The server must support DDE REQUESTS for this option to work.


(Untitled)

Opens this Help window.


Windmill Harvester Help Contents

Overview

Getting started

Applications that are suitable for use with Harvester

Adding a DDE server

Configuring a DDE server: creating DDE channels

Configuring a DDE server channel

Saving the configuration

Harvester with Excel

Harvester with Visual Basic Programs

Problems?

Glossary


Minimum / Maximum Values and Units

These values do not impose any limits on the data. They give Windmill some indication of the magnitude of the incoming DDE data and allow, for example, Chart to select appropriate scales for its display. The values are not used for out of range checking and values exceeding the stated range will still be logged. The default range is 0-100 Units.

Related topics:

Configuring a DDE Server Channel


(Untitled)

The Topic name is the subject of the DDE conversation. You can select or type the appropriate topic here. See your DDE server manual for details of topics it supports.


Command to Start Server

Enter the complete path of the command needed to start the server. This can include command line arguments if appropriate—for example enter the command to start Excel followed by the name of a worksheet. This might look like: C:\Program Files\Microsoft Office\Office\EXCEL.EXE book1.xls

When a Windmill program loads a hardware setup containing Harvester references, it will try to establish contact with the server. If the server isn't running, Windmill will use the command you enter here to launch the application. If this fails, or you haven't specified a pathname, the Windmill program will give error messages for all channels derived from this server.

Related topics:

Configuring the DDE Server


(Untitled)

DDE Service Name

The Service Name identifies the DDE server application.


(Untitled)

Cancels your settings and returns you to the Add New DDE Server dialogue.


Configuring the DDE Server: Creating DDE Channels

Here you can configure the DDE server application. It lets you specify the command Harvester will use to start the server when the server is not already loaded; lets you paste DDE channels, and lists channels currently set up. (A DDE channel is a link to a data item, a spreadsheet cell say, or a reference to a single hardware I/O channel.)

Command to start server

Number of channels in the server

Channels

Paste Channels Button

Add Channel Button

Configure Channel Button

Delete Channel Button

When you've added or pasted all the channels you require to the server, and configured them satisfactorily, press OK and you're taken to the main ConfIML window.


Channel Number

The channel number shows which channel you selected in the Configure DDE server dialogue. You can't edit this number.

Related topics:

Configuring a DDE Server Channel


(Untitled)

Saves your settings and returns you to the Configure DDE Server box.


(Untitled)

Removes the selected DDE link.


(Untitled)

Select this arrow button to show a list of currently running DDE servers.


Configure Channel Button

When you select a channel from the list and press the Configure channel button, the Channel setup dialogue box appears. This lets you configure the channel and set the DDE references.

Related topics:

Configuring the DDE Server


Add Channel Button

To add a DDE server channel to the Channels list press the Add Channel button. The Channel setup dialogue appears for you to specify the channel's DDE references and other details.

(If your DDE server application has a Copy facility, you might find it easier to add a DDE channel using the Paste Channels button.)

Related topics:

Configuring the DDE Server


(Untitled)

Shows the DDE links you have created by pasting or adding channels.

Related Topics:

Channels


(Untitled)

Type the units for the maximum and minimum values.


(Untitled)

Saves your entries and takes to the Configure DDE Server box.


(Untitled)

Check this box if the channel is a digital channel—where 0 is digital off and any other value is digital on. The channel can then be used with any of Windmill's digital facilities.


(Untitled)

DDE Topic Name

The Topic Name is the subject of the DDE conversation.


Channel is Input / Output / Digital

Channel is Input

Check Channel is Input to allow Harvester to read this channel. The server must support DDE REQUESTS for this option to work.

Channel is Output

Check Channel is Output to allow Harvester to send data to this channel. The server must support DDE POKES for this option to work.

Channel is Digital

Check Channel is Digital to tell Windmill to treat this channel as a digital channel, where 0 is digital off and any other value is digital on. The channel can then be used with any of Windmill's digital facilities. Grouped digital channels are not supported.

Channels can be input only, output only or input and output.

Related topics:

Configuring a DDE Server Channel


Channels

The Channels list shows which of the server's channels are available to Windmill. (You can later choose to use only a subset of these channels if you wish, using the SetupIML program.) You create entries in the Channels list by pasting or adding server channels. Each entry starts with a channel number (0 to 99) and the DDE reference if known, or "DDE link not specified" if not.

The term channel covers all the different types of data Harvester can deal with. A channel might, for example, be a link to cell in a spreadsheet, or it might be a link to a hardware driver supplying data from a thermocouple.

Related topics:

Configuring the DDE Server


(Untitled)

Shows the number of DDE channels currently in place. You cannot edit this number. Use Paste or Add to add channels, and Delete to remove channels.

Related Topics:

Number of channels in the server


(Untitled)

Saves your settings and takes you to the main ConfIML window. There press the Save button and then start the Windmill SetupIML program.


Topic Name

The Topic name is the subject of the DDE conversation. If the DDE server is loaded, and it implements the System topic, the Topic Name box will list the topics supported by the server. Select the appropriate topic. If your DDE server doesn't implement the System topic you should type in the Topic name. See your DDE server manual for details of topics it supports.

Related topics:

Configuring a DDE Server Channel


(Untitled)

Type a description of your DDE Server here.


(Untitled)

Shows which channel you selected in the Configure DDE server dialogue. You can't edit this number. To change channel press OK or Cancel and return to the previous dialogue.


Read in background (using DDE Hot link)

If you check this box then whenever the server has new data it is automatically sent to Harvester, which stores the new value and supplies it to Windmill on request. This reduces the amount of DDE traffic. If several Windmill applications request data at the same time they are all given the same stored value. Note that some servers may not allow this. Check whether your server supports DDE ADVISE loops.

Related topics:

Configuring a DDE Server Channel


(Untitled)

Cancels your entries and returns you to the Add IML Hardware box.


(Untitled)

DDE Server

A DDE Server application is capable of receiving DDE Requests or DDE Pokes. It may optionally implement DDE Advise (Hot links).


(Untitled)

The easiest way to create channels is to copy the data in your DDE Server application, and then press the Paste Channels button here.

Related Topics:

Paste channels button


(Untitled)

IML stands for Interface Management Language. Windmill drivers use this language to communicate with the data acquisition hardware and other data sources.


(Untitled)

The Item Name identifies the location of the data, for example the name of the data channel or the address of a spreadsheet cell. Either select or type the item name.


Item Name

The Item Name identifies the location of the data, for example the name of the data channel or the address of a spreadsheet cell. If the server is loaded and implements the System topic, the Item Name box will list available item names. Otherwise you should type the item name.

Related topics:

Configuring a DDE Server Channel


(Untitled)

These values do not impose any limits on the data. They give Windmill some indication of the magnitude of the incoming DDE data and allow, for example, Chart to select appropriate scales for its display. The values are not used for out of range checking and values exceeding the stated range will still be logged. The default range is 0-100.


(Untitled)

Opens the Channel Setup dialogue, where you can set such things as the units of the data and the expected minimum and maximum values.

Related Topics:

Configure channel button


Service Name

This shows the service name that you entered in the Add New DDE Server dialogue box This is for information only: you can't change this here.

Related topics:

Configuring a DDE Server Channel


(Untitled)

Check "Channel is Output" to allow Harvester to send data to this channel. The server must support DDE POKES for this option to work.


(Untitled)

When a Windmill program finds Harvester references, it will try to establish contact with the server using this path. If your DDE Server application is currently running, Harvester automatically enters its location here.

Related Topics:

Command to start server


(Untitled)

A DDE channel is a link to a data item—a spreadsheet cell say, or a reference to a single hardware I/O channel.


(Untitled)

Windmill Harvester Help
designed and written
by Jill Studholme
http://www.studholme.net/


(Untitled)

If your DDE Server is running it will be shown in this list. Otherwise type a name for your Server—up to 10 characters long and without spaces.


(Untitled)

Start ConfIML from Windows—you do not need to re-run the install.exe program.


(Untitled)

DDE Server Channel

A DDE server's channels may be, for example, cells in a spreadsheet or a reference to a single hardware I/O channel.


Number of Channels in the Server

This is the number of channels currently set up to the server. It will be a number between 0 and 99 inclusive. You can't edit this number—it is automatically updated whenever you paste, add or delete channels.

Related topics:

Configuring the DDE Server


Paste Channels Button

For this button to work you need to have copied data to the clipboard from your server application. If you were using an Excel spreadsheet, for example, you would select a cell holding the data then choose Copy from the Edit menu.

Press the Paste button in the Configure DDE Server dialogue. The clipboard's contents are inserted in the Channels list as DDE links. Harvester can determine the number of channels (data items) available and the Service, Topic and Item name of each channel (i.e. the DDE references). You can not paste Block references as Harvester cannot extract individual channels from the block. For example you couldn't paste a reference like Excel|[Book1].Sheet1!R1C1-R10-C10.

After pasting a channel you might like to press the Configure Channel button. This lets you set, for example, whether the channel is an input or an output.

Instead of pasting links, you can use the Add Channel Button and specify the DDE references yourself.

Note: The clipboard data should be in CF_LINK format; a private clipboard format used to share DDE data between Microsoft applications (usually through Copy/Paste Link menu items). Microsoft Office applications like Excel and Access use this format.

Related topics:

Configuring the DDE Server


(Untitled)

Cancels your settings and returns you to the Configure DDE Server box.


(Untitled)

Check this box to tell the server that whenever it has new data it must send it to Harvester. This reduces the amount of DDE traffic. The server must support DDE ADVISE loops for this to work.


(Untitled)

Lets you specify DDE links by hand.

Related Topics:

Add channel button


Delete Channel Button

Select a channel and press the Delete Channel button to remove it from the Channels list.

Related topics:

Configuring the DDE Server