The information in this publication is intended as a guide only, and HCT take NO
responsibility for usage and implementation in any user written application code
structure.
HCT strongly suggests that the user attends one of the product training courses
to ensure correct and full understanding of this information and to learn further
optimized methods of control techniques.
Please contact HCT customer service to book one of the scheduled training
dates or to discuss arranging a course specific to your company needs.
Thank you for using High Country Tek Inc. Products.
HCT was founded in 1983 as an electronics contract manufacturing company, based upon the founder’s
extensive background in high-tech manufacturing, including senior manufacturing positions at several Silicon
Valley companies. Early in its history, HCT began a systematic migration towards proprietary products. The
Company anticipated the need for Electronic Controls for Mobile Equipment and invested more than $2M to
develop the DVC™ family of products, which began shipments in 2001.
HCT’s proprietary products have been designed specifically for the Mobile Equipment Market, taking into
consideration customers’ broad functionality needs, demands of the severe operating environments, and other
customer requirements unique to this market. The groundbreaking modular architecture of the DVC system
allows customers to add functionality, reliability and precision where and when they need it, while preserving all
of their investment in prior application development. Industry-standard communication protocols (e.g. CAN bus)
and HCT’s unique graphical, PC based, programming tool allows our customers to easily implement and
maintain Electronic Control Systems via this fully configurable, modular solution.
The patented Intella™ Software System is the heart of the company’s DVC product line. It was designed to
enable customers and channel partners who are relatively unfamiliar with sophisticated electronic control
systems to customize our products in the field with minimal training and/or support. Intella™ Software is a
comprehensive development environment for the design, development, testing, modification and support of DVC
system applications. Intella™ Application Libraries can be used as templates for application development. All of
this functionality is in a system that allows the application designer, application programmer and maintenance
programmer to operate within a single application development environment.
The DVC master controller module, with its flexible hardware and software, can run many applications as a
single stand-alone module. Combinations of DVC™ modules (10 modules to date, with different functionalities)
enable HCT to support a wide range of machine control applications. All DVC™ modules are packaged in small,
ruggedized enclosures. Each module is encapsulated to withstand extreme conditions in harsh operating
environments. The “hardened” enclosure allows customers to locate the DVC™ modules near the sensors,
valves, etc. they will control. This can significantly reduce the amount of cabling in a system and,
correspondingly, the cost.
We pride ourselves on producing cost effective devices that are rugged, abuse resistant, and easy to setup and
diagnose. We are able to respond quickly to customer requirements due to our in-house engineering and
assembly departments. We also provide turnkey manufacturing services for customers that do not require
engineering services. Our standard product line includes environmentally hardened hydraulic proportional valve
drivers, digital closed and open loop controllers, and user programmable CAN bus controller systems for mobile
off-highway applications.
In addition to our standard products, we develop custom products per customer requirements. Full product
specification from the customer is welcome, but not required. We often work with the customer to determine the
specifications for the product required to solve their problem. Our experience in the industrial and mobile control
markets speeds up the product design time and greatly reduces the occurrence of unanticipated problems.
Customer support after the sale is one of our strong points.
When you need SOLUTIONS for electronic control of mobile and industrial
devices think………. HIGH COUNTRY TEK
Each new release of the Programming Tool and Program Loader Monitor contains new and enhanced features
plus normal bug fixes. Release 4.7 succeeds Release 4.2 and contains the following new features and
extensions.
Application and BIOS Compatibility
Applicatio
4.7 generated applications will run with the previously released 4.22 BIOS as well as the new 4.7 BIOS. The
only restriction is that the new variables supported in the 4.7 Programming Tool (and enumerated below) will be
set to zero when the application runs with the 4.22 BIOS.
Note: With this release the Programming Tool is now available in a demonstration form for new
customers to use. Contact HCT sales for information on how to obtain the tools.
New Features
Variabl
previous 10ms. The default value is still 10ms.
ns compiled using the 4.0 or 4.2 Programming Tool will work with the 4.7 BIOS. Programming Tool
e Always Code/Logic Sequence Bubble run time (1ms to 20ms) or so called system heartbeat versus the
o Variable Always Code/Logic Sequence Bubble run time (1ms to 20ms) or so called system heartbeat
versus the previous 10ms. The default value is still 10ms.
o DVC5 and DVC7 Auto ranging supports the entire 0 - 3.3 ampere coil current range
o System Enable support in DVC5/7/10
o Analog and Universal Inputs configurable as Digital inputs
o DVC7 Support with Digital Inputs having Pulse capability
o Digital Signal Processing support for BiQuad filters
o New Program Loader Monitor Display fields
o Application variables to access High current and Low current coil gains for each output group to enable
dynamic setting of the maximum and minimum coil currents
o BIOS based 40% DVC Application Performance Improvement for all applications compiled using the
4.0, 4.2 or 4.7 Programming Tool versions.
o DVC_Temperature variable added for DVC5 and DVC7 internal module temperature sensing
o DVC21, DVC22 and DVC41 variables can now be referenced as DVC21.name or name etc.
o Textual Replace All for Always and Bubble code
o DVC62 Hand Held Programming Pendant (4 X 20 Character Display with Keypad)
o D206 Touch Screen, Color Graphical Display
o NMEA0183 RS232 Protocol Support for Maritime applications
o J1939 message enable/disable and message specific source address
o Variable Output Group PWM frequency (0-100 hertz) and duty cycle control.
o DP04 Pendant Logging feature
o Variable PWM frequency (0-100 hertz) and duty cycle control.
o Vista Business & Ultimate drive updates.
o New Application variables:
DVC module family is user programmable with combinations of modules able to support a wide range of
The
hydraulic control applications. The DVC5, DVC7 and DVC10 are the master controllers and their flexible hardware
and software allow them to run many hydraulic control applications as a single module. This user guide illustrates
the techniques to create and maintain user applications that run on the DVC5/7/10 and the DVC family of expansion
modules. Instructions on how to use the DVC programming tools are provided along with definitions, programming
steps and examples. The DVC5/7/10 is programmable using the Programming Tools described in this manual. You
simply select the project type you are designing for via a main menu item. Programs written for the DVC5 are
compatible with the DVC10 whereas a DVC10 program may not be backward compatible with the DVC5 since the
DVC5 supports fewer components. The DVC7 has new features that when used by an application may require some
programming changes to port the application to the DVC5/10.
1.2 The DVC System Overview
The DV
the graphical Programming Tool on your Windows PC. The provided PC based Program Loader Monitor software is
used for debugging and monitoring your executing program.
Your program defines the logic that controls your system while graphical displays are used to configure all of the
system input and output parameters. The DVC5/7/10 BIOS software provides high-level data to your program
regarding the state of each of your system inputs while the actual input/output electrical interfacing to sensors,
joysticks, potentiometers and valves is automatically handled for you.
The DVC5/7/10 and all DVC expansion modules are packaged in small rugged enclosures. All connectors are sealed
and each module is encapsulated to withstand extreme conditions in harsh operating environments. The hardened
enclosures allow you to locate the DVC modules near the sensors, valves, etc. they will control. This can greatly
minimize the amount of cabling in your system and significantly lower your costs.
C5/7/10 modules are the main control modules for all other DVC series modules. You program them using
The DVC7 Programmable Valve Controller is the latest addition to the DVC family of modules. The DVC7 is
designed to be a low cost subsystem controller. The low cost DVC7 has enough processing power and input
output functionality to support a wide range of hydraulic applications. Should more capability be needed than
provided by a single DVC7, multiple interconnected DVC7s or the DVC5/10 and the DVC expansion modules
can be used.
The DVC7 comes in one version. It supports the RS232 connected D206 Graphical Display or DVC61 text
display or a handheld DP04 Pendant. The RS232 port on the DVC7 is used for loading and monitoring your
application program. Four light emitting diodes (LEDs) mounted around the connector on the DVC7 module
also are useful for monitoring your system’s execution.
The DVC7 has 3 Universal inputs (programmable to accept the most common sensor inputs), 2 analog inputs
(programmable for joysticks and potentiometers) and 3 digital/pulse inputs with digital input 1 able to be
configured as an SYSTEM ENABLE input.
New with the DVC7 and unlike the DVC5 and DVC10 the DVC7 has a single +5 volt regulated reference output
and ground. This reference can supply up to a total of 500ma of current. Multiple devices with varying current
requirements can be connected to this reference. Only the total load current of 500ma needs to be adhered
too.
In addition, the DVC7 has 6 High-Side (voltage and current sourcing) outputs and 2 PWM (pulse width
modulation) outputs for proportional and bang-bang valve control. The High-Side outputs provide +POWER
(system power typically 12-24 volts) when enabled by your program to the coils used to open or close your
valves. The PWM outputs serve two functions for proportional valve coil current closed loop control. First, they
provide the current return path from the negative side of the coil. This current is measured and compared to the
desired coil current. Given the difference between the desired and actual current the PWM pulse output duty
cycle (i.e. the percent of time current is allowed to flow through the coil) is adjusted to eliminate this error or
difference. The internal DVC7 circuitry and BIOS automatically adjust this PWM duty cycle and therefore the
effective voltage (and current) seen by the coil. This regulated valve coil current provides a constant valve
output (i.e. spool position), which is unchanged by coil resistance, connection length or power supply
fluctuations. The High-Side and PWM outputs can be used stand-alone or in conjunction with one another to
support the wide combination of valve types you may have in your system. From 2 to 8 valves depending on
the valve types can be controlled by a single DVC7. The DVC50 expansion module allows you to control more
valves if needed.
The DVC7 has four programmable LEDs two of which are located on each side of the connector. These LEDs
can be programmed in various ways depending on your application and module orientation in your system. For
instance the Module Status and Network Status LEDs can be programmed to be on either side of the connector
insuring their visibility in spite of the DVC7 orientation.
Also the DVC7 can connect to the CAN Bus via Device Net or J1939.
1.4 DVC10 Introduction
A single
DVC10 module has a large number of inputs and outputs that allow it to work as a stand-alone unit or
be the main module for a large CAN Bus system with up to 14 DVC expansion modules. If your system is very
complex, additional DVC10s each controlling up to 14 expansion modules can share the CAN Bus and
communicate with other DVC10s. The RS232 port on the DVC10 is used for loading and monitoring your
application program. Light emitting diodes (LEDs) mounted on the DVC10 module and CAN Bus or RS232
connected DVC display modules can be used to monitor your system’s execution.
The DVC10 has 3 Universal inputs (programmable to accept the most common sensor inputs), 3 analog inputs
(programmable for joysticks and potentiometers) and 8 digital inputs (programmable for on/off switches).
Note: All universal and analog inputs have a corresponding Pot Reference output pin for ease of connecting or
switches.
In addition, the DVC10 has 6 High-Side (voltage and current sourcing) outputs and 3 PWM (pulse width
modulation) outputs for proportional and bang-bang valve control. The High-Side outputs provide +POWER
(system power typically 12-24 volts) when enabled by your program to the coils used to open or close your
valves. The PWM outputs serve two functions for proportional valve coil current closed loop control. First, they
provide the current return path from the negative side of the coil. This current is measured and compared to the
desired coil current. Given the difference between the desired and actual current the PWM pulse output duty
cycle (i.e. the percent of time current is allowed to flow through the coil) is adjusted to eliminate this error or
difference. The internal DVC10 circuitry and BIOS automatically adjust this PWM duty cycle and therefore the
effective voltage (and current) seen by the coil. This regulated valve coil current provides a constant valve
output (i.e. spool position), which is unchanged by coil resistance, connection length or power supply
fluctuations. The High-Side and PWM outputs can be used stand-alone or in conjunction with one another to
support the wide combination of valve types you may have in your system. From 3 to 9 valves depending on
the valve types can be controlled by a single DVC10. The DVC50 expansion module allows you to control more
valves if needed.
Comparing the three DVC controllers
Below is a chart comparing the main features of the new DVC7 along with that of the DVC5 and DVC10.
DVC7 DVC10
Valves 4 to 8 3 to 9
High Side Outputs 6 6
PWM Outputs 2 3
Digital Inputs 3 8
Analog Inputs 2 3
Universal Inputs 3 3
Pulse Inputs 6 3
RS232 Yes Yes
CAN DeviceNet/J1939 Yes Yes
500ma Reference Output Yes No
5V->1kohm Reference Outputs No Yes
1.5 System Configurations
The DV
C family is designed to control the simplest to most complex machines. Four different configurations are
supported namely:
DVC5/7/10 standalone with optional Graphical Display, DVC61 Display or DVC62 Display keypad
DVC5/7/10 directly connected to J1939 Engine Control systems over a CAN Bus/Device Net cable
DVC5/7/10 multiple sub system control with CAN Bus synchronization
DVC10 with multiple CAN Bus connected DVC Input / Output expansion and Display modules
These system configurations are illustrated below and on the next page:
you an overview of the operation of the DVC5, DVC7 and the DVC10 with the DVC expansion
modules they can control. While not being an exhaustive discussion of the DVC design and operation,
hopefully, this overview will allow you to better understand the Programming Tool and Program Loader Monitor
to see how your system operation is programmed and controlled.
There are 5 fundamental concepts we wish to introduce to you.
1. Each DVC module has a control program or BIOS providing services.
2. All of the expansion modules communicate to the DVC10 master controller and vice versa continuously.
3. Inter module communication and DVC5/7/10 application processing are performed in parallel.
4. The DVC5/7/10 common BIOS executes a defined sequence of operations every 10ms. This cycle time can
be set for anytime between 1 - 20ms and defaults to 10ms.
5. The BIOS provides many services that make application development much easier.
First, every DVC module be it a DVC5/7/10 or DVC expansion module has an internal program or BIOS to
control the module’s operation and its communications over the CAN Bus. All of the modules operate
asynchronously with their own internal clock. The BIOS sets module internal circuits to correspond to the
input/output configurations you specify using the Programming Tool. The BIOS of a DVC expansion module
gets the input output configurations the user configured using the Programming Tool from the master
DVC5/7/10 through a series of CAN Bus messages. Once this profile is loaded into the module’s memory, the
module will setup, read and write to the inputs and outputs based on their individual type, configuration settings
and the application program.
Second, as your system operates, the DVC5/7/10 and each of the DVC expansion modules continuously
exchange messages between each other over the CAN Bus. Each expansion module sends messages
detailing the state of each of its hardware supported inputs and outputs. These messages include whether a
digital input is closed or open, an analog input’s voltage as a percentage of the user specified (i.e. configured)
voltage range and error flags such as a short being detected on a reference output pin. These messages are
received by the DVC5/7/10 and stored into its I/O memory. After receipt, the DVC controller has a complete
status of each of the expansion module’s input and output states. Similarly, the DVC5/7/10 records in I/O
Memory the state of its inputs and outputs. The application program references I/O Memory using predefined
variable names to decide what to do to control the system.
Third, in parallel with messages being transmitted between the DVC5/7/10 and other modules, the user’s
application program is being processed. As your application executes it can look at the current state of any of
the system input and output settings stored in the I/O memory. Usually it is looking for some specific input to
change (i.e. a digital input is closed or a new analog input value from a joystick movement) and as a result it will
transition to another state or bubble in the application where it will control an output in a certain way or look for
another input change.
Fourth, the DVC5/7/10 executes their resident user application and BIOS in a defined sequence, over and over,
typically in 10ms intervals. During each interval, any CAN Bus messages to be sent or that have been received
are processed. Next, it updates the input and output status for its own I/Os. Next, it analyses the Bubble logic
transition conditions for the application program. For instance, if your application is waiting on a digital input
from an expansion module to be closed to advance from its current state or bubble to the code in another
bubble that is done at this time. Finally, the Always code is executed for your application and then the active
bubble or new bubble’s code (after a transition) for the current logic sequence.
Finally, one other point worth noting for system operation is that the status of input and output pins is
communicated back and forth between modules often as a percentage of a user defined voltage or current
range. Thus a potentiometer setting can directly control a proportional value where the percentage of
movement of the potentiometer directly relates to the position of the valve. Also a nonlinear response can be
defined by using an IO Function curve to translate a potentiometer position percentage to the valve current
percentage. All of this behind the scenes BIOS processing and CAN Bus messaging makes application
development much easier than would otherwise be possible.
1.7 Closed Loop Control Principles
sed loop control is a means whereby a feedback signal to the DVC is measured against a desired level or
Clo
set point. If the values differ then a corrective action is taken. The corrective action is generally a new valve
current setting that is obtained by adjusting up or down the PWM duty cycle. This adjustment is a continuous
process during operation and compensates for environmental factors such as high resistance wires or off spec
valves. In a PID system like that used by the DVC family the adjustment amount is a function of the error (set
point - feedback) and P and I terms. The P term scales the current adjustment proportional to the error and the
I-term scales the correction as a function of the error over time. These corrections are summed. The D term is
not used. Generally the higher the values of the P and I terms the faster the error will be corrected. Correcting
to fast can cause over correction (i.e. overshoot) depending on the latency experienced by the feedback signal
changing given the adjustment. Most systems require the P and I terms to be tuned based on how your system
behaves.
It should be noted that when you desire a valve’s current to be set to 1 ampere for instance from 0 amperes the
PID system works as if the error at time zero is 1 ampere and the adjustment mechanism then sets the actual
PWM% to begin to correct the error. By plotting a particular PWM variable using the Program Loader Monitor’s
graph facility you can see how the correction is accomplished as a function of time for tuning purposes.
The DVC5/7/10 controllers provide for 3 distinct and different closed loop control mech anisms. They are:
1. Automatic proportional valve current regulation
2. Software controlled closed loop proportional valve current based on a sensor’s feedback signal indicating
pressure, position, temperature or RPM.
3. Software only closed loop control used typically for long latency systems.
In the first case, the PID technique is employed by the DVC hardware and BIOS to set and maintain the valve
coil current to the desired value.
In the second case, your application software calculates the feedback value and the set point and the DVC
hardware and BIOS adjusts the valve current (PWM %) based on the difference between the
setpoint (or target) and the calculated feedback.
In the third case, you control the PWM % setting through a repeatedly executed piece of software that reads
sensor input and does its own form of a PID adjustment.
1.8 Programming and Debugging the DVC5/7/10
The Windo
ws PC based DVC5/7/10 Programming Tool gives
you the ability to program the DVC modules to work in a
variety of applications without large development costs.
Some knowledge of Windows, computer programming and electro-hydraulics is beneficial.
The Programming Tool's main screen shown here is called
the Project screen. Every project consists of components. A
component can be a physical DVC5/7/10 module and a
number of DVC expansion modules. Additionally, software
components such as the Always code icon wherein you
program critical system functions and several logic sequence
icons wherein you program the normal operations of your
system. At a minimum, a DVC5/7/10 (Master) module and an
“Always” bubble icon must be defined. As your system grows
you add additional physical and programming components by right clicking your mouse on the Project screen
and selecting the component type you wish to add. Once selected from the pop menu, the component will be
added to the project as another icon. As a result, the Project screen contains all of the components, in the form
of movable icons, for the creation of your system application. Double clicking a component icon will allow you to
program or configure it. The next section lists the component types.
Note: If you wish to have another DVC5/7/10 module be the master controller of a portion of your system them
another Project needs to be created wherein that DVC5/7/10 and the components it controls are programmed.
Adding a DVC5/7/10 to DVC5/7/10 module to each project and configuring the messages to be sent back and
forth can enable communication between multiple DVC5/7/10 projects.
Debugging your application is generally done with the assistance of the PC based DVC Program Loader
Monitor. This software supports a Virtual Display allowing your application to display variable values and where
the code is executing as well as showing you the status of the various inputs and outputs of your system.
The screens here show examples of the main debug windows.
1.9 Expansion Modules
As you
r system control needs grow, the DVC family is
designed to meet your needs easily and cost effectively.
The DVC family offers a wide range of expansion modules
that allow you to control your machine operation.
All of the following icons are accessible by right clicking on the Project screen. Double click the icons on the
Project screen to open up the component specific programming menus. Right mouse click a n icon to delete it.
DVC5/7/10 to DVC5/7/10 – Enables communication between multiple DVC5/7/10s.
Logic Sequence – Where system operation code is created using state machine like bubbles
Virtual Display - Where the Program Loader Monitor Virtual Display scree ns are defined.
DNET1
Device Net Module - Defines DVC10 communication to Device Net devices
1.10 Menus
The Pro
description of the items that compose the menu:
gramming tool features a menu across the upper portion of the project screen. The following is a
Menu Item Submenu Item Description
File
Edit Find / Replace All Search the Bubble code for a string and replace
Project DVC5 Set project type to DVC5
Compile Make Create the DVC User Application output files
Help About Shows the Programming Tool’s Part number
New Create a New Project
Open Open a DVC Project for modification
Restore BAK File Restore the Previous saved/compiled project
Save Save changes to the DVC Project
Save as Save a DVC Project to a new file
Load Mem File Load a Program Loader Monitor Modified Mem
File
Print Select and Print the DVC Project Code, Bubble
Logic diagrams, Module diagrams and Module
Data.
Exit Shut-down the DVC Programming Tool
the string
DVC5 / J1939 Set project type to DVC5 with J1939
DVC10 Set project type to DVC10
and Version
1.11 Projects
A Project con
system’s hardware and software components over time. The Programming Tool menus allow you to save your
tains all of the information about your system in a form that allows you to specify and change your
project (“projectname.dvc”) into a directory of your choosing and to reopen a previously saved project. When
your project is compiled (or make is run) five files are created for a project. These files have .dvc, .bak, .inf,
.mem and .pgm file extensions.
.dvc is the project file that contains the program text and input/output configuration data
.bak is the project backup file
.inf is the DVC70 configuration file used when downloading data from the DVC70 to the PC
.mem is the memory image describing the system inputs and outputs configurations
.pgm is the DVC5/7/10 program file in a loadable format
1.12 Input Output Configuring
The DVC5/7/10 and the DVC expansion modules are all configurable using the Programming Tool’s graphical
displays. Each module’s input and output pin’s characteristics (sensor voltage range, valve coil currents, etc.)
as well as display and logging module fields can be specified. Once the values are specified, the DVC5/7/10
BIOS will read or write to the inputs and outputs or modules as specified.
1.13 Input Output Variables and Programming
The DV
system. This includes the expansion modules if they are used. The expansion modules send messages to the
DVC5/7/10 containing the values to be stored in their memory area on a periodic basis. This area is where
values
such as the input voltage, the percent of the range and error flags such as an open or short circuit has been
detected are recorded. The memory is allocated irrespective of whether or not a specific I/O is used in the
system or referenced in the application code. The memory area for each I/O is continually updated by the BIOS
and can be written to by the application code itself in some cases. Particular sections (typically a 2 byte word or
a single bit) of a I/Os memory area are identified by a variable name such as Dig_1 or Ana_1. For instance to
check if a switch has been closed you would write “If (Dig_1 = True)”. To check to see if that input has noted an
error you
would write “if (Dig_1.open = True or Dig_1.short = True) “. Each memory area has a predefined set of variable
names that are associated with specific sections (values) in the memory area.
1.14 Programming Example
The follo
Outputs. The example is a relatively simple steering application that has been implemented using a DVC5
control module. The code consists of 4 parts namely:
Open loop test code for each I/O
The virtual display code for monitoring program execution and variables
Error checking for the status of the wiring connections in the
Always code
The unit LED updates
The actual steering control code
C5/7/10 execution environments allocate a memory area for each Input/Output of every module in the
wing example illustrates the general constructs used and the screen displays for configuring Inputs and
a programming environment allows the programmer to be creative in their programming style. Here
are some suggestions as how a program may be structured.
Create machine function flowchart (a.k.a. Sequence of Operations)
This idea forces the development team to understand what the function of the machine will be before the
program is written. Using flowchart notation, the development team documents each function of the machine.
In the case of a hydraulic log splitter, maybe the first function would be to assure the engine is running,
providing pressure for the pump. It is advised that the first flowchart of a project contain very simple steps in the
functionality. Later revisions can combine simple functions into more complex functions. Insert as much
information in this flowchart as possible. For instance, if there is a pressure relief valve in the machine, set at
1500psi, list that in the flowchart. Once the flowchart is finished, everyone should agree on the machine
functionality. This step will help to minimize changes to the program at a later date. This step could take
considerable time, but will make the program much sampler to write. Refer to appendix F for an example.
Separate different functions into different logic bubbles.
It is not incorrect to place all of the program logic in the always code, but it can slow down the program and
make it more difficult to troubleshoot. Time critical logic should be contained in the ‘always’ code. Different
functions should be contained in individual bubbles. For example, a pump control’s logic can be contained in a
bubble by itself. The logic to control the track drive of a bulldozer can be contained in a bubble by itself. These
functions may not be as critical as something such as looking for a high pressure situation.
Use meaningful variable names.
The limit on variable size is 32 characters. A variable that isn’t an input or output device is called an internal
variable. An internal variable that is for Valve1 minimum current setting for the program loader monitor could be
labeled Valve1MinCurA_PLM_IV. This naming convention could be used throughout the program. An EEmem
variable for a valve’s minimum current setting could be named Valve1MinCurB_eem. Below are some other
examples.
Valve1ctl_AI2 – analog input#2. Variable names in capitol letters designate an abbreviation.
Cross_valve_UI2 – universal input #2.
Output_shaft_RPM_PI1 – rpm pulse input#1.
Pump#2_milling_pwm_OG1 – output group #1, pwm controlled motor.
OK_to_begin_led_OG3 – output group #3, discrete(bang bang) output to control LED.
Engine_rpm_lo_J1939 – The low byte of the engine rpm from the j1939 network.
Engine_temp_J1939 – The engine temperature from the j1939 network.
Network_status_eem - EEmem variable.
Mast_into_position1_IV – internal variable.
EEmem_spare_128 – eemem variable that doesn’t have a specific name because unused. Makes programmer
aware of spare EEmem addresses.
Declare all variables in one location
Have one area of one bubble that is executed once to declare all variable names. This area would include
unsigned integers (Uint), EEmemory variables (EEmem), Timers (timer), constants (const) and others. Declare
all 128 EEmem variables. Variables that aren’t used could be name EEmem_spare_89, or such. An exception
would be a variable that is decared private, this would have to be declared in the bubble used. Declaring all the
variables in one location could make it easier to add another variable at a later time, and provides for a cleaner,
more structured program.
Comment important information into the program
Information such as Programmer’s name, date of program creation, revision history, and any description of
something that is difficult to understand is appreciated by anyone offering assistance in troubleshooting the
program. Explaining a complex math equation can be beneficial at a later date to refresh the programmers
memory of why a function was built the way it was and to assist in troubleshooting. Comment as much or little
as necessary. Comments do not contribute to the compiled program (.pgm) file size. Remember to add a colon
(‘) before starting comments. The Intella software interprets the (‘) that the information to the right is not to be
compiled.
‘Programmer’s Name: Paul Programmer
‘Program creation date: 5/28/2007
‘Revision history: 5/28/07 – initial release
‘ 6/12/07 – modified Always code to add temperature sensor to engine coolant
‘ 2/25/08 – modified ‘Tank level’ bubble to add logic and hydraulic fluid level sensor
‘Program description: This program will…
‘ The math function for the tank level takes into consideration the ….
1.16 Circuit Protection
Each of the
modules require adequate circuit protection. Use AGC type fuse. Each module requires 150mA for
internal circuitry. These modules also include the dvc61. If the module is capable of driving an output, then the
current required for that output is added to the 150mA. For instance, if a dvc7 is driving a 2 independent
cylinders, and the valves for the cylinders require 1.7A, then the total current for the dvc7 module would be
Dvc7 requirements 150mA
Of course, a AGC fuse of 3.55A is not available, use a fuse size near this calculated value.
2 Software Installation
2.1 System Requirements
Windows XP Professional
Windows Vista Business or Ultimate
40 megabytes of disk space to support a complete system install
PC with Serial Port - RS232 or USB port
For USB ports you need a USB to RS232 converter (i.e. Dongle)
DVC5/7/10 controller module
DVC10 serial cable
2.2 Installation
n you install the DVC development software following the steps outlined here you will have one
Whe
Programming Tool and one Program Loader Monitor that supports both the DVC5 and the DVC10.
To install the DVC development software, close all program applications. Insert the DVC Software CD in the
CD-ROM drive, and wait for the installer program to execute. The installer will guide you through the installation
procedure.
2.3 Software Overview
The DV
Monitor". These applications provide the means to configure, design, create, load, and monitor the user
application. The Programming tool is used to
configure the inputs and outputs and
program the control logic for an
application. The Program Loader Monitor
is used to download the user
application program files to the
DVC5/7/10. It also performs real time
monitoring of your system
inputs/outputs. Also, you can modify some
input/output configuration settings (i.e. like
analog ramp rates). Another feature of the
Program Loader Monitor is it allows you to
see and change EEmem variable
settings. For example, this is a
convenient way to have the user interact
with the system to change a
maximum pressure setting or input a
customer job number as the system is
running.
The "Programming Tool" is used to create your application for the DVC5/7/10. The "Program Loader Monitor" is
used to load the user application into the DVC5/7/10 module and monitor the inputs and outputs in real-time
mode as your application executes. Both programs are located in the Windows Start Menu under the
c:\Program Files\HCT Products. In order to create a user application, the following steps generally should be
followed:
a) Architect your system. In the design process compile a total list of digital inputs, pulse inputs, pwm outputs
etc. A total I/O count is needed to assure the correct amount of DVC inputs / outputs are specified in
external modules, if needed. Also, remember to allow room for expansion with spare I/O.
b) Define your system components and their interactions. HCT does have experience with a wide variety of
sensor manufactures. Request a sensor recommendation sheet of sensors known to work with the HCT
system.
c) Start the Intella Programming Tool. Create a new project by saving the file, i.e. hydraulic log splitter. Select
your Project type to be a DVC5, DVC5/J1939, DVC7 or DVC10 project.
d) Configure the DVC5/7/10 and DVC expansion module’s inputs and outputs that drive or sense your
components. With the mouse on the screen, right click to choose the expansion module. Insert the
expansion module, set the modules unique name and Mac ID#. Assign names to the real world I/O, refer to
section 1.16 for further guidance on I/O names.
e) Create a flow diagram of machine function (a.k.a Sequence of Operations) refer to section 1.16 and
Appendix F for additional information. Once the Sequence of Operations (SoO) is complete, this needs to
be converted into a program. The ‘always’ code as well as bubble logic sequences will be used during this
step. Refer to section 5 for programming examples. Refer to Appendix A for compiler keywords. Program
the control logic as to how the outputs respond to the inputs.
f) Compile the program. Refer to section 3.1.
g) Load the compiled program files into the DVC5/7/10. Refer to section 3.5.
h) Run your system and debug your application.
Graphical windows allow you to specify the system components you will need and the electrical characteristics
of your inputs and outputs. Text screens are provided to enter the program control logic (using a subset of the
Basic language) for both your time critical and normal operations.
3.1 Compiling Your Program to Create the Output Files
After config
in the Project window and select Make to create the output files. If there are no errors, the Programming Tool
will create two or three files. The two primary files needed for the next step are projectname.pgm and
projectname.mem. These are the two files that will be loa ded into the DVC5/7/10. A third file projectname.inf is
generated if a DVC70 is in the project. A fourth file projectname.dvc is the project file where all of the
programming tool information is contained.
Note: If the compiler detects an error during compilation, an error display will pop up and the line in your
program with the error will be highlighted.
3.2 Loading DVC Filesll projectname.dvc files contain information enabling the system to open previously
saved project files. Once open you can make modifications to the Input / Outputs, control code and system
configuration. To open a project, click on the File menu item in the Project window and select Open. Finally,
select the appropriate “projectname.dvc” file.
uring the DVC5/7/10 inputs and outputs and creating the program code, click the Compile menu item
To save your project click on the File menu item in the Programming Tool project window and then select the
Save menu item. This saves the project file under the current filename. To save your project with a different
name click on File and select “Save as” on the menu selection. Type a new filename and save your new .dvc
project file.
Note: If you select an existing project name, the existing file will be deleted and replaced with the new DVC
project file. Also, if the open project has changed and you choose to exit the Programming Tool, you will be
prompted to save your project.
3.4 Restoring DVC Files
Every time the Programming Tool saves a projectname.dvc project file, a backup file is made of the previous
projectname.dvc file. The Programming Tool does this by changing the projectname.dvc file extension to
projectname.bak before creating a new projectname.dvc file. When Restore BAK file is selected from the File
menu, the Programming Tool automatically loads the last backup made, if one exists, for the current open
project. The restore feature allows users one level of undoing changes.
3.5 Loading PGM and MEM files
After a DVC proje
module. During compilation the Programming Tool creates two files named projectname.pgm and
projectname.mem. One additional file named projectname.inf is created if a DVC70 module is included in your
DVC project and used when you extract data from the DVC70 module. The .pgm and .mem files contain the
users’ application code in an executable format. The .pgm file contains the compiled application code and is
referenced by the Program Loader Monitor when you load the application into the DVC5/7/10. The .mem file
contains the memory information that specifies the configuration for all of the system inputs and outputs and is
loaded along with the .pgm file by the Program Loader Monitor
Note: .mem files contain all of the DVC physical information. If changes are made to the DVC configuration
with the Program Loader Monitor, you can update the DVC program with the new configuration data by doing
the following. Using the Program Loader Monitor, save a new .mem file by clicking on "Export to File". Using
the Programming Tool, open your pro ject and click "File" a nd select "Load Mem File". Selec t the .mem file and
click Open. The program will automatically update all of the DVC physical information.
3.6 Selecting or Changing Your Project Type
ng the Project Menu of the Project window you can select from amongst four project types. These are:
Usi
DVC5
DVC5/J1939
DVC7
DVC10
When you first execute the Programming Tool a DVC10 empty project is assumed. When you change any
project from a DVC10 to a DVC5, DVC5/J1939 or DVC7 type, the Programming Tool will warn you about any
incompatibilities. Remember, the DVC5 does not support expansion modules whereas the DVC7 and DVC10
do.
When you open an existing project file, the system will know what type of Project the file represents from data
stored in the .dvc file. Converting a DVC5 project file to a DVC10 is as simple as opening the DVC5 project and
selecting the Project Menu -> DVC10 item. Any code or I/O configurations you specified for the DVC5 will work
unchanged on the DVC10. Converting a DVC10 project to a DVC5 type is done the same way but the system
will warn you if expansion modules in your original DVC10 project are not supported. Converting a DVC7
ct has been successfully compiled, it is ready to be loaded into the DVC master control
project to a DVC5/7/10 is more involved because of the new features added to the DVC7 such as configurable
LEDs and digital inputs with pulse capability.
3.7 Programming the DVC5/7/10
The DV
supports many input and output configurations. For quick reference
the inputs and outputs have been
grouped into the following: Digital Inputs, Analog Inputs, Universal Inputs,
Output Groups and Input/Output Functions. To configure the hardware,
access each of the groups by clicking on the associated buttons. The
buttons are are aligned vertically underneath each group name. Click on a
button to access the configuration options for that input or output.
C hardware is very flexible and
The following subsections give the definitions
of each of the fields accessible in the DVC5/7/10
configuration window.
3.8 Program Name and Passwords
Program Name:
When the application executes, the Program Loader Monitor will display the program name.
Range: 16 Characters.
Send Password: (1)
Level 1 Password to limit access to certain screens in the Loader Monitor.
Range: 16 Characters.
App Password: (2)
Level 2 Password to limit access to certain screens in the Loader Monitor
Range: 16 Characters.
Bios Password: (3)
Level 3 Password to limit access to certain screens in the Loader Monitor
3.9 DVC Program Loader Monitor Password Implementation
The password scheme is implemented to protect customers from software vandalism or unskilled users. First,
the passwords are defined using the Programming Tool and are downloaded into the DVC5/7/10 when the
project files are loaded. Next, the Program Loader Monitor asks you to enter a password for the level of access
you wish to have to the run time environment. The Program Loader Monitor has 3 levels of password protection.
The level of the password entered in the Program Loader Monitor determines your access and ability to issue
commands. The three levels are 1: Send Changes, 2: Load Applications, 3: Load BIOS. Higher numeric levels
include all of the abilities of the lower levels. If no password is entered when the Program Loader Monitor is run
then default access is given to the user to view the status of the DVC5/7/10, factory information, EE memory
(non-volatile memory where program variables can be stored in the event of power failure) and DVC expansion
modules. However, if all password fields are left blank in the Programming Tool, level 3 accesses is given by
the Program Loader Monitor.
Level 1: Send Changes
This level allows the user to view/send changes to the Output Groups, Analog Inputs, and I/O Functions. The
user can also export memory to a file and send changes to the EE memory.
Level 2: Load Application
This level allows the user to download a new application to the DVC.
Note: DVC software tools do not allow reading back programs stored in the DVC, so additional read back
protection is not required.
Level 3: Load BIOS
This level allows the user to make changes to the Factory Information settings. These settings include MAC ID,
CAN Bus type and CAN Bus baud rate. These settings will be explained later.
This level allows the user to download a BIOS file to the DVC5/7/10. The BIOS (i.e. kernel) is the HCT supplied
code that controls the execution of the DVC application and provides services to the application. It executes the
.pgm file code, monitors and controls the entire user configured input/outputs and schedules the execution of
the Always and logic sequence code.
3.10 Digital Inputs and Programmable LEDs
Eight digital inputs a
respectively. You use the Program Loader Monitor to interrogate the digital inputs on the DVC7. On the
DVC5/10 modules each input has an associated LED. In addition the DVC5 has four programmable LEDs. To
illuminate these DVC5 LEDs in a specific pattern to indicate an error condition for instance you use the
keywords DVCLED_1, DVCLED_2, DVCLED_3 and DVCLED_4 to turn an LED on or off. DVCLED_4 = true
will illuminate the fourth LED on the DVC5 module.
All of the controllers have a programmable red status LED for indicating error conditions your application
detects.
Digital inputs are set by the opening or closing of a switch during system operation. The activation of a switch
presents a voltage waveform to a DVC5/7/10 digital input pin. The DVC hardware and software interpret the
waveform and convert it to a true or false value for the application program. The true or false value (> 0 or 0
numeric value respectively) is passed to the application program via a program variable with the name of the
input. Your application program control logic then determines what to do given this input state.
re provided in the DVC10 controller and three and four for the DVC7 and DVC5
A typical digital input waveform as seen at the DVC digital input pin looks like the following:
+PWR
De-bounce Time Time
The DVC5/7/10 support two electrical configurations called Sinking and Sourcing. In the Sinking case, the
switch is powered externally and the digital input pin detects the switch being open or closed and supplies a
connection to ground through a resistor for the current when the switch is closed. In the Sourcing case, the
DVC supplies the power (i.e. +5vdc reference voltage through a 1k ohm resistor via a second DVC reference
pin connected to the digital input) for the switch as well as the digital input pin where the switch being open or
closed is received. The DVC5 and DVC10 have 4 and 6 reference pins respectively. The DVC7 has a single
+5vdc regulated Reference output capable of driving up to 500ma of current. If you use a reference output for
a switch on the DVC5/10 controllers and you wish to check the Reference pins voltage (to detect miswiring or
other abnormal conditions) you can do this using the Analog input or Universal input configuration name for the
particular reference pin you intend to use. To use a Digital Input in sourcing mode on a DVC7, an external
series resistor must be used to limit the current sourced from the internal reference voltage regulator to
prevent shorting the reference voltage to ground through the inputs switch. A 1K ohm 1 Watt resistor will
protect the reference voltage regulator from shorts to ground and shorts to power in.
The two configurations of digital inputs supported by the DVC hardware are:
Sinking (Externally Powered Switch) Sourcing (DVC Ref Voltage Supplied)
+ PWR
( +3Vdc to +32Vdc)
to DVC DIGITAL IN
Pin (10k ohm resistor
to PWR COM)
PWR COM
to DVC POT REF Pin
(1K-ohm resistor connected to +5v
or DVC7 500ma regulated
reference)
to DVC DIGITAL IN Pin
(10k ohm resistor to PWR COM)
Note: the DVC circuitry senses the voltage change at the edge of the
waveform and if the transition state is the same after the de-bounce time
interval then the new state is deemed valid and communicated to your
application via the input’s variable name True or False setting.
To configure a digital input, click one of the Digital Input buttons on the DVC
screen. The Name field’s value is the way this input will be referenced in your
user application.
The De-bounce Time
on the input as valid state changes. The polarity
level is interpreted as a true or false or which edge causes a change in the
state of the input. An explanation of how the DVC interprets inputs. In No Toggle, the state of the input flag
will change to True any time the Active Polarity Input condition is met including debounce time and back to
setting is used to avoid recording momentary spikes
False if it is not met. In Toggle mode, the input state is set to True on the first occurrence of the Active Polarity
instance and remains true until the second instance of the Active Polarity, always observing debounce time.
Software toggle changes the state of the program variable when a rising edge or falling edge is detected on the
input. For an input in Toggle mode the application program can also set the input state at any time. Digital
input 1 can be configured to be a System Enable (Emergency Stop) type. When this Software Toggle mode is
selected and the digital input is true the BIOS will automatically turn off all of the current paths to the valves and
require a power cycle to resume operation.
Note: Regardless of what type of digital input switch configuration is used, the DVC will react the same
according to the voltage seen at the input. See the hardware manual for instructions on hooking up a switch in
order to provide the desired voltage levels.
The following subsections give the definition as well as an overview of each of the fields in the Digital Input
screen:Name
Name used in the bubble logic code to access this digital inputs state and its associated properties.
Range: 16 Characters with no spaces. Valid characters are A-Z, a-z, 0-9, and "_".
Rules:
The first character cannot be a number.
Compiler Keywords or other Names already in use are not valid. A valid example is "Boom_Extend".
De-bounce Time
The number of milliseconds the system will wait after a change in voltage at the input before accepting a change
in input state.
Range: 0 to 9990ms in 10ms Increments
Polarity
Polarity High is considered true, active, on when > 2.5 Volts is sensed at the input pin.
Polarity Active Low s considered true, active, on when < 2.5 Volts is sensed at the input pin.
Range: Active High, and Active Low
Software Toggle
In Toggle Mode, the rising or falling of the digital input (with respect to debounce and polarity Active High or
Low) will reverse the state of the variable. Software Toggle gives the programmer the ability to Latch an input