Section 5. Overview
• Move a head gate to regulate water flows in a canal system.
• Control pH dosing and aeration for water quality purposes.
• Control a gas analyzer to stop operation when temperature is too low.
• Control irrigation scheduling.
Controlled devices can be physically connected to C terminals, usually through an
external relay driver, or the SW12V
(p. 391) terminal. C terminals can be set low (0
Vdc) or high (5 Vdc) using PortSet() or WriteIO() instructions. Control modules
are available to expand and augment CR800 control capacity. On / off and
proportional control modules are available. See appendix PLC Control Modules
— List
(p. 565).
Tips for writing a control program:
• Short Cut programming wizard has provisions for simple on/off control.
• PID control can be done with the CR800.
Control decisions can be based on time, an event, or a measured condition.
Example:
In the case of a cell modem, control is based on time. The modem requires 12 Vdc
power, so connect its power wire to the CR800 SW12V terminal. The following
code snip turns the modem on for ten minutes at the top of the hour using the
TimeIntoInterval() instruction embedded in an If/Then logic statement:
If TimeIntoInterval( 0,60,Min) Then PortSet(9,1) 'Port “9” is
the SW12V Port. Turn phone on.
If TimeIntoInterval(10,60,Min) Then PortSet(9,0) 'Turn phone
off.
TimeIsBetween() returns TRUE if the CR800 real-time clock falls within the
specified range; otherwise, the function returns FALSE. Like
TimeIntoInterval(), TimeIsBetween() is often embedded in an If/Then logic
statement, as shown in the following code snip.
If TimeIsBetween(0,10,60,Min) Then
SW12(1) 'Turn phone on.
Else
SW12(0) 'Turn phone off.
EndIf
TimeIsBetween() returns TRUE for the entire interval specified whereas
TimeIntoInterval() returns TRUE only for the one scan that matches the interval
specified.
For example, using the preceding code snips, if the CRBasic program is sent to
the datalogger at one minute past the hour, the TimeIsBetween() instruction will