5 - Programming Overview
Grouping Functions
The group handle returned by cfOpenGroup can be used with any of the functions in the list below. These functions control or query a specific group. If a function is not in this list, it cannot be used with a group handle obtained from cfOpenGroup.
cfAbort | cfGetSenseProbeTest | cfSetSenseProbeTest |
fGetCurrent | cfGetSeqTime | cfSetSeqStep |
cfGetMeasLogInterval | cfGetTrigSource | cfSetSeqTest |
cfGetOutputProbeTest | cfGetVoltage | cfSetSeqTestAnd |
cfGetOutputState | cfInitiate | cfSetTrigSource |
cfGetSeqStep | cfReadMeasLog | cfSetVoltage |
cfGetSeqTest | cfSetCurrent | cfStateRecall |
cfGetSeqTestAnd | cfSetMeasLogInterval | cfStateSave |
cfResetSeq | cfSetOutputProbeTest | cfTrigger |
cfGetRunState | cfSetOutputState |
|
Once one or more groups have been defined with cfSetGroup, the functions in the above list can only be used with a group handle obtained from cfOpenGroup. An error will be returned if one of these functions is called using the handle obtained from cfOpen. If there are no groups defined, then the handle returned from cfOpen can be used to control all the cells.
Step/Test Functions
A
To set and query the step parameters use:
cfSetSeqStep();
cfGetSeqStep();
To query what step is presently being executed and how long the cell has been in that step while the sequence is running, use:
cfGetStepNumber();
To program step 1 to charge at 0.295 amps, with a voltage limit of 4.2 volts for 30 minutes, and step 2 to discharge at 0.5 amps with a voltage limit of 2.0 volts for 15 minutes, use:
cfSetSeqStep(server, 1, CF_CHARGE, 4.2, 0.295, 30.0 * SECONDS_PER_MINUTE, 0.0);
cfSetSeqStep(server, 2, CF_DISCHARGE, 2.0, 0.5, 15.0 * SECONDS_PER_MINUTE, 0.0);
Tests can be defined for each step to verify that the cells are performing properly and to control the transition to the next step based on the cell performance criteria. Each test references a step number, a measurement type (voltage, current, or ac resistance greater or less than a limit), a measurement limit, a time test type and limit, and the action to take when the test is true.
To define a test use:
cfSetSeqTest();
To read back the tests that have been defined use:
cfGetSeqTest();
54