Tim,
I found this PDF file
http://www.infoplc.net/Descargas/Descargas_Omron/Des_Omron_Files/infoPLC_net_Omron_C20_28_40_60_K.pdf
The HDM appears to be a high speed drum counter
The high-speed counter counts the signals input from an external device connected
to input 0000 and, when the high-speed counter instruction is executed,
compares the current value with a set of ranges which have been
preset in DM words 32 through 63. If the current value is within any of the
preset ranges, the corresponding bit of a specified result word is turned ON.
The bit in the result word remains ON until the current value is no longer
within the specified range.
An internal buffer is incremented whenever bit 0000 goes from OFF to ON.
When the high-speed counter instruction is executed, the value in the counter
buffer is transferred to counter 47 which serves as the count value storage
area.
When using the high-speed counter, the following bits are reserved and cannot
be used for any other purpose:
• Input 0000 (count input)
• Input 0001 (hard reset)
• SR bit 1807 (soft reset)
• TC 47 (present count value)
• DM 32 to 63 (upper and lower limits)
The DIFU apears to be a bit instruction
DIFU(13) and DIFD(14) are used to turn the designated bit ON for one cycle
only.
Whenever executed, DIFU(13) compares its current execution with the previous
execution condition. If the previous execution condition was OFF and
and current one is ON, DIFU(13) will turn ON the designated bit. If the previous
execution condition was ON and the current execution condition is either
ON or OFF, DIFU(13) will turn the designated bit OFF or do nothing (i.e., if
the designated bit is already OFF). The designated bit will thus never be ON
for longer than one cycle assuming it is executed each cycle (see Precautions,
below).
Whenever executed, DIFD(14) compares its current execution with the previous
execution condition. If the previous execution condition was ON and the
current one is OFF, DIFD(14) will turn ON the designated bit. If the previous
execution condition was OFF and the current execution condition is either
ON or OFF, DIFD(14) will turn the designated bit OFF or do nothing (i.e., if
the designated bit is already OFF). The designated bit will thus never be ON
for longer than one cycle.
These instructions are used when a single-cycle execution of a particular instruction
is desired. Examples of these are shown below.
DIFU(13) and DIFD(14) operation can be tricky when used in programming
between IL and ILC, between JMP and JME, or in subroutines. Refer to 5-7
INTERLOCK and INTERLOCK CLEAR – IL(02) and ILC(03) and 5-8 JUMP
and JUMP END – JMP(04)/JME(05) for details. A total of 48
DIFU(13)/DIFD(14) can be used in a program. If more than 48 are used in a
program only the first 48 will be executed and all others will be ignored.
DIFU(13)/DIFD(14) are useful when used in conjunction with CMP(20) or
MOV(21),
Disclaimer: I'm not an Omron guy.