Topic: DMD0186

Help File Version: 2.9.4.37

Instruction Set for Do-more CPUs

Switch to Alphabetized List


Do-more Designer uses the differently colored triangles in the upper left corner (called class designators) to draw attention to instructions that require special consideration when using them in a ladder logic diagram.

Fully Asynchronous Instructions are dependent on a shared device (like the Ethernet Port or a serial port), which means that the instruction may have to wait on the availability of the shared resource before it can run.

 

Multi-scan Instructions will take two or more PLC scans to complete, typically because the instruction has Termination Logic that needs to run on the scan immediately after the instruction completes.

 

Skipping Instructions will alter the normal execution order by moving the execution pointer forward or backward in the ladder logic diagram, for example, the GOTO instruction can skip sections of ladder logic by moving forward, or repeat section of ladder logic by skipping backwards.

 

Yielding Instructions can temporarily suspend its processing on the current scan and resume processing at that same point on the subsequent scan. When using any of the looping instruction (for / next, do / while ...) this allows you to specify how much time to allow on each scan for the loop to run.

 

Yielding / Skipping Instructions can alter the normal execution order by moving the execution pointer forward or backward in the ladder logic diagram, AND can temporarily suspend its processing on the current scan and resume processing at that point on the subsequent scan.


Some of the Instructions have additional logic that is used to reset the internal state of the instructions when they are disabled so that they will run properly when they are next enabled. This logic is called Termination Logic.

Has Termination Logic means these instructions have additional actions that are performed when they stop executing.

 

These instructions have termination logic but that logic in NOT performed if the instruction is in an Interrupt Service Routine.


Some of the instructions cannot be placed inside certain types of code-blocks.

These instruction can only be placed in a Program code-block.

 

These instructions can not be placed in an Interrupt Service Routine.

 

These instructions can not be placed in a Subroutine.

 

These instructions can be placed in a Subroutine if the input leg is configured as power flow enabled.


Some of the instructions require optional hardware resources, such as the on-board Ethernet port or a CTRIO module.

On-board Ethernet Port means these instruction can only be used on Do-more CPUs with an on-board Ethernet port.

 

Requires the addition of a CTRIO or CTRIO2 module.

 

Requires the addition of a CTRIO2 module - these are NOT for use with the CTRIO module.

 

Requires High-Speed I/O discrete input and / or output points - for example the on-board 24 Volt DC inputs and outputs of the BRX PLCs.

 

Requires the use of on-board discrete inputs and outputs of the BRX PLCs, or a BX-HSIO1, BX-HSIO2, or BX-HSIO4 module.

 


 

Instruction

 

 

Contact

                           

Normally Open ( STR / AND / OR )

                           

Normally Closed (STRN / ANDN / ORN )

                           
                             

Positive Differential (One Shot Rising) ( STRPD / ANDPD / ORPD )

                       

Negative Differential (One Shot Falling) ( STRND / ANDND / ORND )

                       
                             

if Equal ( STRE / ANDE / ORE )

                           
if Not Equal ( STRNE / ANDNE / ORNE )                            
if Greater Than ( STRGT / ANDGT / ORGT )                            
if Greater Than or Equal ( STRGE / ANDGE / ORGE )                            
if Less Than ( STRLT / ANDLT / ORLT )                            
if Less Than or Equal (STRLE / ANDLE / ORLE )                            
                             
Delta ( STRDLT / ANDDLT / ORDLT )                        
                             
NDPF - Trailing Edge Powerflow Modifier ( ANDNDPF )                        
PDPF - Leading Edge Powerflow Modifier ( ANDPDPF )                        
                             
NOT - Invert Powerflow (NOT)                            

 

Coil / Bit Output

                           

DEBOUNCE - Reduce Discrete Input Chatter

                       

END - End Program or Task

                         

FLASHER - Cycle Output On / Off

                       
                             

INI - Immediate Discrete Input

                         
                             

ND - Trailing Edge One Shot

                       
NOP - No Operation                            
                             
OUT - Output Coil                          

OUTI - Output Immediate Coil

                         
                             
PD - Leading Edge One-Shot                        

PONOFF - Push On / Push Off

                       
                             

RST - Reset Coil

                           

RSTI - Reset Immediate Bit

                         

RSTR - Reset Range

                           
                             

SET - Set Coil

                           

SETI - Set Immediate Bit

                         

SETR - Set Range

                           
                             
SR - Shift Register                        

TIMEDOUT - Timed Output

                       

 

Analog / Process

                           

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                      

RANGECHECK - Value In / Out of Range

                           
                             

SCALE - Scale Value

                           
SLOPE - Calculate Slope                      
                             
TIMEPROP - Time Proportional Control                      

 

CTRIO

                           
CTAXCFG - CTRIO2 Axis Configuration                    
                             
CTAXDYNP - CTRIO2 Axis Run Dynamic Position Mode                    
CTAXDYNV - CTRIO2 Axis Run Dynamic Velocity Mode                    
                             
CTAXJOG - CTRIO2 Axis Jog Mode                    
CTAXLIMT - CTRIO2 Axis Run Trapezoid w/ Limits                    
CTAXTRAP - CTRIO2 Axis Run Trapezoid                    
                             
CTDYNPOS - CTRIO Run Dynamic Position Mode                    
CTDYNVEL - CTRIO Run Dynamic Velocity Mode                    
                             
CTPLSADD - CTRIO Add Entry to PLS                    
CTPLSEDT - CTRIO 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                    

 

Date / Time / Calendar

                           

DT2EPOCH - Convert Date / Time to 1970 Epoch

                           
                             

DTCMP - Compare Date / Time

                           

DTDIFF - Difference between two Date / Times

                           
DTOFFSET - Add Offset to Date / Time                            
                             
EPOCH2DT - Convert 1970 Epoch Time to Date / Time                            
                             
NETTIME - SNTP Client                    

SETTIME - Set PLC Date / Time

                       

 

Ethernet

                           

DMLOGGER - Broadcast String to DMLogger.exe

                   
DNSLOOKUP - Name to IP Address                    
                             
EMAIL - Send Email                    
PING - Ping Ethernet Device                    
                             

SETUPIP - Setup TCP/IP Parameters

                   

SETUPNOD - Setup Ethernet Node Parameters

                     

 

File System

                           

Backup - System Backup

                     

FILECOPY - Copy File

                     

FILECOPY - Copy File

                     

FILEDEL - Delete File

                     

FILELOG - Log to File

                     

FILENEWFLDR - Make New Folder

                     
FILEOPEN - Open File                      
FILEQUERY - Query File or Folder Information                      
FILEREAD - Read from File                      
FILESEEK - Seek to Position in File                      

FILESYSCMD - Perform File System Command

                     
FILETRUNC - Truncate File                      
FILEWRITE - Write to File                      

 

Hardware / Device

                           
CLOSE - Close Device                      
DEVCLEAR - Clear Device                      
                             
DEVREAD - Read Device Register                          
DEVWRITE - Write Device Register                          
                             

HWCONFIG - Configure Hardware

                           

HWINFO - Get Hardware Information

                           
OPENDEV - Open Device                      
                             
RD - Read from Intelligent Module                          
SETUPSER - Setup Serial Port                      
WT - Write to Intelligent Module                          

 

High-Speed / Axis

                           

AXCAM - Axis Electronic Camming

                 

AXCONFIG - Axis Configuration

                 

AXFOLLOW - Axis Position Following with Offset

                 

AXGEAR - Axis Electronic Gearing

                 

AXHOME - Axis Perform Home Search

                 

AXJOG - Axis Jog Mode

                 

AXPOSTRAP - Axis Move to Position Using Trapezoid

                 
AXPOSSCRV - Axis Move to Position Using S-Curve                  

AXRSTFAULT - Reset Axis Fault Limit

                 

AXSCRIPT - Run a Sequence of Axis Commands

                 

AXSETPROP - Axis Set Properties

                 

AXVEL - Axis Set Velocity Mode

                 

HSCNT - High Speed Counting

                       

HSEDGE - Precise Edge to Edge Timing

                       

HSPULSEC - Catch Pulse Input

                       

PWMOUT - Pulse Width Modulated Output

                     

TDODECFG - Deconfigure Table Driven Output

                 

TDOPLS - Programmable Limit Switch on Table Driven Output

                 

TDOPRESET - Run Preset Table on Table Driven Output

                 

 

Math

                           
INC - Increment Value                            
DEC - Decrement Value                            
                             
LERP - Linear Interpolation                            
MATH - Calculate Expression                            
                             

RANDSEED - Random Number Seed

                           

TESTNUM - Classify Numeric Value Types

                           

 

MATH Functions

                           
COS - Cosine of Radian Angle                            

ACOS - Arccosine in Radians 

                           
                             
SIN - Sine of Radian Angle                            
ASIN - Arcsine in Radians                            
                             

TAN - Tangent of Radian Angle

                           
ATAN - Arctangent in Radians                            
                             

DEG - Convert Radians to Degrees

                           
RAD - Convert Degrees to Radians                            
                             
FRAC - Fractional Portion of a Real Number                            
TRUNC - Truncate Real to Whole Number                            
ROUND - Round Real to Nearest Whole Number                            
                             

LN - Natural Log

                           

LOG - Log Base 10

                           
                             
PI - Return PI                            

RANDINT - Random Integer

                           
RANDREAL - Random Real Number                            
                             
REF - Read Value Indirectly                            
                             

ABS - Absolute Value

                           
SQRT - Square Root                            
                             

AVGR - Average of a Range of Values

                           

SUMR - Sum of a Range of Values

                           

MAXR- Maximum Value Across a Range of Values

                           
MINR - Minimum Value Across a Range of Values                            
                             

STDEVPR - Population Standard Deviation of a Range

                           
STDEVR - Sample Standard Deviation of a Range                            
                             

MIN - Minimum Between Two Expressions

                           
MAX - Maximum Between Two Expressions                            
                             

TICKus - Get Microsecond System Timer Value

                           
TICKms - Get Millisecond System Timer Value                            
                             
NOW - Get Date / Time Stamp as a 32-bit Integer                            
                             

TOINT - Convert to Integer

                           
TOREAL - Convert to Real                            
                             
IF - If / Else Expression                            

COUNTIF (EQ, GE, GT, LE, LT, NE) - Count If

                           

SUMIF (EQ, GE, GT, LE, LT, NE) - Sum If

                           

 

Misc / Data Manipulation

                           

BCDTO - BCD To Integer / Real

                           

COPY - Copy Data

                           

DATAINFO - Query Information about Data Memory

                           
                             

DECO - Decode to Set Bit

                           

ENCO - Encode Bit Position

                           
                             

FIFOLOAD - Load First In / First Out

                           

FIFORESET - Reset FIFO Queue

                           

FIFOUNLOAD - Unload First In / First Out

                           
                             

GRAY - Gray Code to Integer

                           
                             

INIT - Initialize Data

                           
ISCLEAR - Is Structure Cleared                            
                             

LIFOLOAD - Load Last in / First Out

                           

LIFOUNLOAD - Unload Last in / First Out

                           

LIFORESET - Reset LIFO Queue

                           
                             
MAPIO - Map Inputs and Outputs                            
                             

MEMCLEAR - Clear Memory Range

                           
MEMCOPY - Copy Memory Range                            
                             

MOVE - Move Value

                           

MOVEBIT - Move Single Bit

                           

MOVER - Move Range of Values

                           
                             

PUBLISH - Translate From Do-more

                           
REFWRITE - Write Value Indirectly                            
                             

ROTL - Rotate Left

                           
ROTR - Rotate Right                            
                             
SEG - Hex / BCD to 7 Segment Display                            

SETNUMR - Set Numeric Range

                           
                             
SUBSCRIB - Translate to Do-more                            

SUMBITS - Sum Bits

                           
                             

SWAPB - Swap Bytes

                           
TOBCD - Integer / Real to BCD                            

 

Program Control

                           
CALL - Call Subroutine                          

ENDC - Conditional End of Code Block

                           
ENTASK - Enable Task                        

EXIT - Exit This Program or Task

                     
                             
GOTO - Go To Label                        

HALT - Halt Program or Task

                           
                             

INTCONFIG - Configure Interrupts

                         

INTDECONFIG - Deconfigure Interrupt

                         

INTRESUME - Resume Interrupts

                         

INTSUSPEND - Suspend Interrupts

                         
                             
JMP - Jump To Stage                      
JMPI - Indexed Jump                      
LABEL - Program Label                          
                             

REBOOT - Reboot PLC

                         
RESTART - Restart Program or Task                      
RET - Return Back to Call                            
RETC - Conditional Return Back to Call                            

RUN - Run Program

                       

 

                           
SG - Stage                      

SGCONVRG - Converge Multiple Stages to SG

                     

SGDIVRG - Jump to Multiple Stages

                     
                             

SGRST - Disable Stage

                       

SGRSTR - Disable Range of Stages

                       
SGSET - Enable Stage                        
                             

STOP - Switch to Program Mode

                         
SUSPEND - Suspend Program or Task                            
                             

WATCHDOG - Force Watchdog Error

                         
YIELD - Yield Program or Task                      

 

Program - Looping

                           

BREAK - Exit Loop

                       

CONTINUE - Skip to Loop End

                       

FOR - Index Loop

                         
NEXT - Index By Step                        
                             

REPEAT - Loop Until Condition is Non-Zero

                         
UNTIL - Repeat Until Condition is Non-Zero                        
                             
WEND - While End                        

WHILE - Loop While Powerflow is True

                         

 

Protocol - Custom / ASCII

                           

CHECKSUM - Checksum Algorithm

                           
OPENTCP - Open TCP Connection                    
                             
PACKETIN - Input Data from Packet Device                    
PACKETOUT - Output Data to Packet Device                    
                             
STREAMIN - Stream In Data from Device                      
STREAMOUT - Stream Out Data to Device                      
                             
TCPLISTEN - Start Listening on TCP Port                    

 

Protocol - Standard

                           
DLRX - DirectLOGIC Network Read                      
DLWX - DirectLOGIC Network Write                      
                             
EIPMSG - Send EtherNet/IP Message                    
                             

FTPGET - Retrieve File FROM Remote

                   

FTPPUT - Store File TO Remote

                   
                             
GSREGRD - GS EDrive Register Read                    
GSREGWR - GS EDrive Register Write                    
                             

HTTPCMD - Execute HTTP Command

                       

JSONBUILD - Build JSON Record

                       

JSONPARSE - Parse JSON Record

                       
                             

MQTTPUB - IoT Publish MQTT Topics

                       

MQTTSUB - IoT Subscribe to MQTT Topics

                       
                             
MRX - Modbus Network Read                      
MWX - Modbus Network Write                      
                             
PEERLINK - Share Global Data                  
                             
RX - Do-more Network Read                      
WX - Do-more Network Write                      

 

String

                           
STR2INT - Convert String to Integer                          
STR2REAL - Convert String to Real                          
                             
STRCASE - Convert String to UPPER / Lower Case                          

STRCLEAR - Clear Strings

                         
                             

STRCOPY - Copy String

                         

STRCOPYR - Copy a Range of Strings

                         
                             

STRCMP - String Compare

                         

STRDELETE - Delete Substring

                         
                             

STRFIND - Find Within 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 / Counter / Drum

                           
CNT - Up Counter                    
CNTDN - Down Counter                    

COMMON_TIMER - Common Timer

                       
                             
DRUM - Drum                      
FREQCNT - Frequency Counter                    
FREQTMR - Frequency Timer                    
                             
OFFDTMR - Off Delay Timer                    
ONDTMR - On Delay Timer                    
                             

RSTCT - Reset Counter

                           

RSTT - Reset Timer

                           
                             
TMR - Up Timer                    
TMRA - Accumulating Up Timer                    
TMRADOWN - Accumulating Down Timer                    
TMRAG - Global Accumulating Up Timer                    
TMRDOWN - Down Timer                    
                             
UDC - Up / Down Counter                    
UDCG - Global Up / Down Counter