General Information

Graphical Programming and Simulation for BACnet, Modbus, LonWorks, SNMP

i.CanDrawIt® is provided at no additional cost for unlimited use with any ValuPoint® controller, i.CanDoIt® server, or AddMe® network I/O node from Control Solutions Minnesota*.

• No supporting software to buy
• No license fees
• No run-time licenses
• Includes no-fee online support
• No time limits
• No functional limits or disabled features
• Make as many copies as you need

Use free form logic style, ladder logic style, or hybrid mix of styles. Fully customizeable and expandable function block library with source code is included.

*i.CanDrawIt® is not sold for use with other controllers or I/O devices.

Introducing i.CanDrawIt®

We at Control Solutions Minnesota have been promising graphical programming (or visual control programming) for a while. But we had a hard time finding a tool set that was easy to use, worked well, was simple to install, required little or no maintenance, and was powerful and flexible. We also wanted one more thing: Very inexpensive.

We found a number of expensive programming tools. We also found inexpensive drawing tools that had no means of translating a drawing into code. We found lots of fun graphic toys that made very pretty pictures with no resulting functionality. But after a long search, we finally found an open source CAD package that we converted from drawing electronic circuits to drawing programs. Instead of generating a net list for circuit board layout, our version generates code for downloading into a controller. The resulting tool met most of our objectives for graphical programming, and exceeded the rest.

We know from experience and customer feedback that the majority of our customers are more comfortable with an electrical schematic than a program source listing. Therefore it was important to us that our graphical programming tool most closely resemble a schematic CAD package rather than something you would find in the IT department. Once we started working with i.CanDrawIt, even our most experienced software developers quickly found a preference for drawing control diagrams rather than writing control programs just because it saved so much time.

How i.CanDrawIt® Works

You begin your control drawing by dragging function blocks from the library and dropping them onto the drawing canvas. Select a function block, or "part" from the list on the left. The diagram of that block appears above the list. Click that block, drag it onto the drawing, and click the mouse once per copy you wish to add to the drawing.

Next, you select the line tool and draw lines from outputs of one block to inputs of the next. By drawing lines between logic gates and other blocks, you begin to create the control program.

When you are ready to associate the abstract blocks with real world inputs and outputs, you do this by adding designators and optional parameters. To add this information, you simply click on the block to be updated, assign a function block number, and add optional parameters as applicable.

The most commonly applied parameter will be I/O point designation. The "Object" parameter will have a text string such as "REG 22" to designate a Modbus holding register, "AI 14" to designate a BACnet Analog Input, "AO 2" to designate a BACnet Analog Output, and so on. When the PID block is updated, you will add tuning parameters such as the proportional band, integral, and derivative terms.

When your drawing is complete, you run the error checker to catch obvious problems, then run the source code generator, and finally the compiler, each with just a click of the mouse.

Simulation and Live Testing

i.CanDrawIt® is more than just a drawing tool. Our graphical programming tool is also a complete simulation and live debugging tool. You can single-step through your drawing in simulation or live debug mode. The tool will stop after executing each function block, and highlight that block. You can click on the block to see the values of any variables it produced. You can optionally change the values of variables before continuing.

Any I/O objects referenced in the course of executing your control drawing will automatically appear in the watch list that shows in debug mode. You may also manually add any desired I/O objects to the watch list. You may change the values of I/O objects by clicking on them and editing "on the fly".

When single stepping may be too slow, you can set a breakpoint on any function block by clicking on that block and checking the breakpoint check box. When execution reaches this block, it will pause. You may resume, or single step from that point.

You are not restricted to using the predefined library objects. You can modify existing blocks, or add completely new function blocks. If you need to do line code testing for new complex function blocks you are creating, we also offer a code development tool that is line based and includes line by line simulation and debugging. Once the line code is working as desired, you then import it into your library block for easy addition to any control drawing.

Source code for all pre-defined function blocks is provided, and you can readily create your own new function blocks. Drawing tools are provided for creating the graphical representation of your function. By following a few simple rules in naming your variables, the code gets automatically connected to connection pins on the graphical symbol.