Do-more

INSTRUCTION SET (Release v1.0, 09-Sep-2012)

Contacts
Normally Open, Normally Closed, 
Positive Differential, Negative Differential, Inline Inverter, Inline Differential, Delta (Changed) 
Relational Contacts - ALL 6  =   <>   <   <=   >   >= 
Able to compare ANY types of numeric data V7 > R3 Can also be used inside MATH instruction
Coils – OUT, SET, RST, END, NOP

Assignment Boxes 
INIT – Initialize Multiple Elements
MAPIO
Map Inputs/Outputs
MEMCLEAR
– Clear Memory
MEMCOPY – Copy Memory 
MOVE – Move Value
MOVBIT
– Move Single Bit
MOVER – Move Range of Values 
PUBLISH
– Translate from Do-more
REFWRITE – Write Value Indirectly 
RSTR – Reset Bit Range 
SETNUMR – Set Numeric Range 
SETR – Set Bit Range 
SUBSCRIB
– Translate to Do-more

BCD Boxes 
BCDTO – BCD to Integer/Real 
TOBCD – Integer/Real to BCD 

Bit Boxes 
DECO – Decode to Set Bit 
ENCO – Encode Bit Position 
PONOFF – Push On/Push Off 
SUMBITS – Count # of 1 Bits 

Communication Boxes 
CHECKSUM
– CheckSum Algorithm
DLRX – DirectLOGIC Network Read 
DLWX – DirectLOGIC Network Write
EMAIL 
–  Send Email
MRX
– Modbus Network Read (RTU & TCP)
MWX 
– Modbus Network Write (RTU & TCP)
OPENTCP – Open TCP Connection
PACKETIN
– Input Data From Packet Device
PACKETOUT – Output Data To Packet Device
PEERLINK – Share Data w/PLCs
SETUPIP
– Setup TCP/IP Parameters
SETUPNOD Setup Ethernet Node Parameters
SETUPSER
– Setup Serial Port
STREAMIN 
– Stream in Data from Device
STREAMOUT
– Stream out Data to Device
TCPLISTEN – Start Listening on TCP Port

Compare
ISCLEAR
– Is Structure Cleared?

Conversion Boxes 
FREQCNT – Frequency Counter 
FREQTMR – Frequency Timer 
GRAY – Gray Code to Integer 
SCALE – Scale Value 
SEG – Hex/BCD to 7 Segment Display 
STR2INT – Convert String to Integer 
STR2REAL – Convert String to Real 
SWAPB – Swap Bytes 

Counter Boxes 
CNT – Up Counter 
CNTDN – Down Counter 
RSTCT - Reset Counter 
UDC - Up/Down Counter 

CTRIO Boxes 
CTAXCFG – CTRIO2 Axis Configuration 
CTAXDYNP – CTRIO2 Axis Run Dynamic Position
CTAXDYNV
– CTRIO2 Axis Run Dynamic Velocity
CTAXJOG – CTRIO2 Axis Jog 
CTAXLIMT – CTRIO2 Axis Run Trapzd w/Limits 
CTAXTRAP – CTRIO2 Axis Run Trapezoid 
CTDYNPOS – CTRIO Run Dynamic Position 
CTDYNVEL – CTRIO Run Dynamic Velocity 
CTPLSADD – CTRIO2 Add Entry to PLS 
CTPLSEDT – CTRIO2 Edit PLS Entry 
CTREGRD – CTRIO Read Register 
CTREGWR – CTRIO Write Register 
CTRUNPOS – CTRIO Run Position Mode 
CTRUNVEL – CTRIO Run Velocity Mode 
CTTBLADD – CTRIO Add Entry to Preset Table 
CTTBLCLR – CTRIO Clear Table 
CTTBLEDT – CTRIO Edit Preset Table Entry 
CTTBLLD – CTRIO Load Table 
CTUPDLVL – CTRIO Update Level Mode 

Date/Time/Calendar Boxes 
DT2EPOCH – Convert Date/Time to Epoch 
DTCMP – Compare Date/Time 
DTDIFF – Difference between 2 Date/Times 
DTOFFSET – Add Offset to Date/Time 
EPOCH2DT – Convert Epoch to Date/Time 
NETTIME – SNTP Client 
SETTIME – Set PLC Date/Time 

Device Boxes 
CLOSE – Close Device 
DEVCLEAR – Clear Device 
DEVREAD – Read Device Register 
DEVWRITE – Write Device Register 
OPENDEV – Open Device 

Differential/Edge/Clock Boxes 
ND – Trailing Edge One-Shot 
PD – Leading Edge One-Shot 

Drum Boxes 
DRUM – Timed/Event/Timed-Event Drum 

Intelligent Module Boxes 
RD – Read from Intelligent Module 
WT – Write to Intelligent Module 

Looping Boxes 
BREAK – Exit Loop 
CONTINUE – Skip to Loop End 
FOR – Index Loop 
NEXT – Index by Step 
REPEAT – Start of Repeat/Until Loop 
UNTIL – Repeat/Until Condition is Non-0 
WHILE – Loop While Condition is Non-0 
WEND – End While Loop 

Math Boxes 
DEC
– Decrement
INC – Increment
LERP – Linear Interpolation
MATH – Calculate Expression
RANDSEED 
– Random Number Seed

Process Boxes 
ALDEV – Deviation Alarm 
ALHILO – High/Low Alarm 
ALRATE – Rate of Change Alarm 
CLAMP – Limit Range 
DEADBAND – Set Outside Deadband 
FILTER – First Order Filter 
INTEGRAT – Integrate over Time 
PID – Closed Loop Controller 
PIDINIT – Set PID Tuning Constants 
RAMPSOAK – Ramp/Soak Profile 
SLOPE – Calculate Slope 
TIMEPROP – Time Proportional Control 

Program Control Boxes 
ENTASK – Enable Task 
EXIT – Exit this Program 
GOTO – Go To Label 
HALT – Halt Program or Task 
LABEL – Code Label 
REBOOT – Reboot PLC 
RESTART – Restart Program or Task 
RSTWT – Reset Watchdog Timer 
RUN – Run Program 
STOP – Switch to Program Mode 
SUSPEND – Suspend Program/Task Execution 
WATCHDOG
– Force Watchdog Error
YIELD – Yield Program/Task Execution 

Protocol Boxes 
CHECKSUM – Checksum Algorithm 
STRGETB – Get Bytes Out of a String 
STRPUTB – Put Bytes Into a String 

Query Information
DATAINFO
– Query Information About Data Memory
HWINFO – Get Hardware Information

Shift Boxes 
ROTL – Rotate Left 
ROTR – Rotate Right 
SR – Shift Register 

Stage Boxes 
JMP – Jump to Stage 
JMPI – Indexed Jump to Stage 
SG – Stage (first SG is Initial SG) 
SGCONVRG – Converge Multiple SGs 
SGDIVRG – Jump to Multiple Stages 
SGRST – Disable Stage 
SGRSTR – Disable Range of Stages 
SGSET – Enable Stage 

String (ASCII/Buffer) Boxes 
STRCASE
– Convert String to UPPER / lower Case
STRCLEAR – Clear Strings
STRCMP – String Compare 
STRDELETE
– Delete Substring
STRFIND – Find within a String 
STRGETB
– Get Bytes Out of a String
STRINSERT – Insert Substring
STRPRINT – Print to String
STRPUTB – Put Bytes Into a String
STRSUB – Get Substring 
STRTRIM – Trim Whitespace 
STRTRUNC – Set String Length 

Timer Boxes 
OFFDTMR – Off Delay Timer 
ONDTMR – On Delay Timer 
RSTT – Reset Timer 
TMR – Timer 
TMRA – Accumulating Timer 
TMRADOWN – Accumulating Time Down 
TMRDOWN – Time Down 

MATH Operators & Functions 
+ - * /  Add, Subtract, Multiply, Divide 
% Modulo (Remainder) 
**  Raise to Power 
-  Negate 
&  Bitwise AND 
|  Bitwise OR 
^  Bitwise XOR 
~  Bitwise Invert 
<<  Shift Left 
>>  Shift Right 
>>>  Unsigned Shift Right 
&&  Logical AND 
||  Logical OR 
!  Logical NOT 
==  Equal To 
!=  Not Equal To 
<  Less Than 
<=  Less Than or Equal To 
>  Greater Than 
>=  Greater Than or Equal To 
[ exp ]  Array Index Expression, e.g. R[D2*5+4]
ABS(exp)  Absolute Value 
ACOS(exp) Arc Cosine 
ASIN(exp)  Arc Sine  
ATAN(exp)  Arc Tangent  
AVG(start, #val)  Average of range 
CountIfEQ(exp, start, range)  Count in range when equal to
CountIfNE(exp, start, range)  Count in range when not equal to
CountIfGE(exp, start, range)  Count in range when greater than or equal to
CountIfGT(exp, start, range)  Count in range when greater than
CountIfLE(exp, start, range)  Count in range when less than or equal to
CountIfLT(exp, start, range)  Count in range when less than
SumIfEQ(exp, start, range)  Sum in range when equal to
SumIfNE(exp, start, range)  Sum in range when not equal to
SumIfGE(exp, start, range)  Sum in range when greater than or equal to
SumIfGT(exp, start, range)  Sum in range when greater than
SumIfLE(exp, start, range)  Sum in range when less than or equal to
SumIfLT(exp, start, range)  Sum in range when less than
COS(exp)  Cosine of radian angle 
DEG(exp)  Convert radians to degrees 
E()  Euler's Constant e
FRAC(exp) Fractional part of real 
IF(condition, true, false)
LN(exp)  Natural Log base e 
LOG(exp)  Log base 10 
MIN(start, #val) Min. value in range 
MAX(start, #val)  Max. value in range 
NOW()  $Now 1970 Epoch value 
PI()  Ratio of Circumference to Diameter
RAD(exp)  Convert degrees to radians 
RANDINT() Random Int 0 to 2,147,483,647 
RANDREAL()  Random Real 0.0-1.0 
REF(block#, ID)  Value Indirectly by Block # & ID
ROUND(exp)  Round real number 
SIN(exp)  Sine of radian angle 
SQRT(exp) Square Root 
SUMR(start, #val) Sum values in range 
TAN(exp)  Tangent of radian angle 
TICKus()  System uSec Counter Val 
TICKms()  System mSec Counter Val 
TOINT(exp) Convert Real to Integer 
TOREAL(exp)  Convert Int. to Real 
TRUNC(exp)  Truncate Real number