The leader in industrial automation and control solutions

Data Window

The Data Monitor feature is a window available in the MAPware software that displays data values in HMC internal memory. The entire internal memory of the HMC is accessible using the Data Monitor but you select what areas of memory you wish to monitor. In addition to reading values, you can modify data online or create a table of preset values to download to the registers. With this feature, you can quickly view data in table format or to initialize areas of memory in the HMC.

To access the Data Monitor window, click View > Data Monitor Window from the standard menu, or click the Data Monitor icon in the standard toolbar or click the Data Monitor folder in the Project Information Window:

MAPware-7000 Data Window

By default, the Window shows a blank grid with no tags being monitored. To add a tag to monitor, right click anywhere on the Data Window to display a popup dialog box:

In MAPware-7000 Data Window. Right click anywhere within to monitor additional tags

Add a Variable

By clicking the New Block option in the dialog box above, the typical tag selection window is displayed:

A screenshot demonstrating the tag selection window that appears when attaching a tag to an HMC screen object.

Once you select a tag or tags, click “OK” to go back to the Data Window.

Remove Variables

Select a tag, or multiple tags, right-click and select “Remove Variables”

Selecting "Remove Variables" in the MAPware-7000 Data Window allows you to remove a variable from the Data Window.

MAPware-7000 will then confirm if you want to remove the tag(s) you’ve selected from the Data Window.

Edit Setting

If you select “Edit Setting” in the right-click menu of the Remove Variables, this will be displayed:

Selecting "Edit Setting" in the MAPware-7000 Data Window gives a popup to edit the colors of the monitored tags

This allows you to change the colors that each tag type will be displayed as in the Data Window.

Monitoring Data using the Data Monitor

Once you have created your Data Monitor window and downloaded your preset values (this is an optional step), you are ready to monitor the HMC.

How to monitor the HMC

Follow the steps below to monitor the HMC.

Instructions: How to monitor the HMC
  1. Start MAPware

    Open the MAPware-7000 Software, and open the project that’s loaded on the HMC you’ll be monitoring.
  2. Connect the PC

    Use an Ethernet or USB Cable to connect the PC to the HMC you wish to monitor.
  3. Go Online

    From the Mode menu, select the “Go Online–> without Upload” option
    You can also click the “Go Online” icon in the standard toolbar.
    MAPware-7000 Go Online icon
  4. Wait for HMC Data loading

    MAPware displays a message stating that it is loading data from the HMC (this takes a few minutes). When finished, the MAPware software displays the main Logic block.
    Example of Main Logic Block in MAPware-7000, seen when connecting to the HMC to monitor
  5. Display Data Window

    Press F10 on your keyboard to display the Data Window
    You can also click the Data Window icon
    Data Monitor Icon in MAPware-7000
  6. Change Values

    You can change values while online with the HMC simply by double-clicking a register
    The new value is sent to the HMC immediately after you press the Set button
    Double-click a register while online with the PLC to change a register value
  7. Disconnect when done

    When you are finished using the Data Monitor mode, click the Go Online button again to go offline

Halt Mode

Halt mode is useful if you wish to change values in the Data Monitor window but not while the HMC is running the project you downloaded into it. However, the HMC will clear all internal memory registers (except the retentive memory) when you place the HMC in Run mode again.

To place the unit in Halt mode, click the Halt icon in the standard toolbar. To resume, click the Run icon.

Application Memory Status (HMC2000 only)

The Application Memory Status feature is a tool available in the MAPware software for HMC2000 models that is used to display memory used by the current project. This tool can be used to determine how much memory is still available for new screens, ladder logic, etc.:

MAPware-7000 Application Memory Status window, showing the memory used by the current project.

It also provides details on how the screen memory is currently allocated. The memory is divided into three main areas:

  • Application Memory – this is the memory used for screens, global tasks, alarms, and tags.
  • Data Logger Memory – indicates how much memory has been allocated for the data logger feature.
  • Ladder Logic Memory – shows how much memory has been consumed for the ladder logic diagrams.

This tool is accessible is by clicking Tools > Application Memory Status from the menu bar.

Retentive Tags

For projects created in Native Ladder programming mode, the Keep Memory Area feature provides the ability to retain values in designated internal memory after removing power from the HMC. Click Define > System Parameters from the menu bar:

MAPware-7000 Define System Parameters window allows for "keep memory" or retentive memory areas to be defined. This is a screenshot of that window

To enable, click the Enable/Disable checkbox next to the memory that you wish to use (BW, T, C, or D). Enter the number of registers (starting with 0) that you want as retentive memory. For BW, T and C registers up to 256 registers (0 to 255) can be used as keep memory. Up to 1000 D registers (0 to 999) can be used as keep memory. The total number of keep memory registers cannot exceed 1000.

To use these registers, you must initialize them in the Tag Database.

For MAPware Projects, if you want to retain tag values across power cycles, you’ll need to define those tags as “retentive”. While you’re adding a tag to the tag database, you can set the tag as retentive:

When creating a tag in MAPware-7000 IEC mode, you can designate it as a retentive tag via the "retentive" option in the Add Tag window

Once you create a tag with this option, it will save its value in non-volatile memory, and therefore retain that value when you power cycle the unit. A maximum of 2,000 bytes can be used to define Retentive tags (i.e., 500 DINTs, 1,000 INTS, 16,000 BOOLs etc., or some combination thereof). Tags created as Global can be changed to Retentive during project development and vice versa.

When you download your project into the HMC unit, there are two options listed in the Download to Device window of MAPware in the Device Settings section:

MAPware-7000 Download window, Device settings area allows for initializing retentive memory to '0' on download, or to initialize retentive memory registers with their initial values.
  • Initialize keep memory area after download – if checked, Retentive tag values are set to 0 after download is completed. If not checked, the retentive tag values are retained through the download.
  • Initialize keep memory area with initial value after download – if checked, all retentive tags will be initialized with their initial values you configured for them in the tag database.

Real Time Clock

The internal battery powers the real-time clock (RTC) when the HMC is not powered by external 24VDC. Normally, the internal battery should be able to provide power to the RTC for approximately 20 years (@25°C).

Reading the Date/Time

The Clock objects (Time and Date) are used to display the date and time on an HMC screen. Each field of the RTC data can also be read and individually displayed on screen by using the designated system word registers (SW10 thru SW16) in the tag database.

Screenshot of MAPware-7000 System Registers, specifically the registers applicable to the Real Time Clock.

 Other reserved registers that pertain to the clock are:

Tag No.Tag NameTag AddressDescriptionAccess
42RTC day of monthSW0010Ex: 1-31, Unsigned formatRead Only
43RTC monthSW0011Ex: 12, Unsigned formatRead Only
44RTC yearSW0012Ex: 0-99, Unsigned formatRead Only
45RTC hourSW0013Ex: 0-23, Unsigned formatRead Only
46RTC minSW0014Ex: 0-59, Unsigned formatRead Only
47RTC secSW0015Ex: 0-59, Unsigned formatRead Only
48RTC day of weekSW0016Ex: 1-7, Unsigned format With 1=Sun…7=SatRead Only
5Minute Change StatusS00003Momentarily sets whenever the minute value in SW14 changesRead Only
6Hour Change StatusS00004Momentarily sets when the hour value in SW13 changesRead Only
7Date Change StatusS00005Momentarily sets when the date value in SW10 changesRead Only
8Month Change StatusS00006Momentarily sets when the month value in SW11 changesRead Only
9Year Change StatusS00007Momentarily sets when the year value in SW12 changesRead Only
12RTC battery statusS00010Sets when battery is deadRead Only
17Invalid RTC date entryS00019Sets while an invalid value is in one of the RTC registers (HMC2000 only)Read Only
36RTC StatusSW0003_02Sets if the RTC is not working (HMC2000 only)Read Only

Writing the Date/Time

You can set or change the internal RTC using several means:

  • By using the Set RTC task for a function key or one of the multi-task buttons
  • By using the Set Calendar (CLND) instruction in the ladder logic commands
  • By importing the SetRTC popup screen from an HMC sample project with the same screen size (see below)

You cannot directly write to the clock using the SW106 internal system registers. However, if you wish to write directly, simply use the Numeric Entry object with data registers that are referenced in the Set Calendar instruction in a ladder logic program.

How to import the SetRTC popup screen

Follow the steps below to import the SetRTC preconfigured popup screen.

Instructions: How to import the SetRTC popup screen
  1. Select “Import Screen” option

    Choose the [Import Screen] option from the [Screen] menu.
  2. Find the default Startup Project File

    Find the HMC###### STARTUP.mpl project file for the same HMC model that you are using.
    These projects are downloaded along with MAPware7000 and can be found in the directory C:\MapleSystems\MAPware7000\Projects\. This is the default directory.
  3. Select the screen to import

    Import the screen no. 65005 and select the option “Keep Internal Tags”.
    Screenshot of the MAPware-7000 Import Screen window, with Screen 65505 (Set RTC) selected, and the "keep internal tags" option checked
  4. Import

    Click the Import button
  5. Place the new screen

    On a screen in your project, place a “Open Popup Screen” button and set it to open Screen Number 65005.
    MAPware-7000 Open Popup Screen button, highlighting the "65505" screen previously imported, in the Screen Number selection of the button properties window

Internal Memory

Each HMC unit has internal memory which can be used for operations. The amount of memory available depends upon which HMC model you have selected. Part of this memory is reserved for specific uses (see Appendix B – System Tag Memory) while the rest of the memory is openly available for your application.

Native Ladder Memory Addresses (Legacy HMC models)

In Native Ladder mode, tags created in the tag database are given explicit addresses which are grouped together into various address types according data format and function. The address type is selected in the Register/Coil Type dropdown box in the Add Tag window (for directions on adding tags to a project refer to Chapter 4 – Tags)

Below is a table that defines the internal memory addresses available in Native Ladder projects. More detail on the function of each type is given in the sections that fallow.

TypeNameRangeTypeAccessDescription
Index Register (I)I000000Register Only (2 bytes)Read/WriteIndex Register
Index Register (J)J000000Register Only (2 bytes)Read/WriteIndex Register
Index Register (K)K000000Register Only (2 bytes)Read/WriteIndex Register
Counter CoilsC.00000-2551Bit OnlyRead/WriteCounter Coils
Counter RegistersC00000-255Register Only (2 bytes)Read/WriteCounter Registers
Timer CoilsT.00000-255Bit OnlyRead/WriteTimer Coils
Timer RegistersT000000-255Register Only (2 bytes)Read/WriteTimer Registers
Input CoilsX0000030-31015Bit OnlyRead OnlyPhysical Input Coils
Input RegistersXW000030-3100Register Only (2 bytes)Read OnlyPhysical Input Registers
Note: Input Coils and Registers share same memory
Output CoilsY0000030-31015Bit OnlyRead/WritePhysical Output Coils
Output RegistersYW000030-3100Register Only (2 bytes)Read/WritePhysical Output Registers
Note: Output Coils and Registers share same memory
I/O Configuration CoilsM0000030-31015Bit OnlyRead/WritePhysical I/O Configuration coils
I/O Configuration RegistersMW00003 or MW0000_0030-3100, 0-15Bit or Register (2 bytes)Read/WritePhysical I/O Configuration registers
Note: I/O Coils and I/O Registers share same memory
System CoilsS000000-99Bit OnlyRead/WriteStatus and control bits for HMC
System RegistersSW0000 or SW0000_000-255, 0-15Bit or Register (2 bytes)Read/WriteStatus and control registers for HMC
Internal CoilsB000000-4095Bit OnlyRead/WriteGeneral Purpose Internal Coils
Internal RegistersBW00000-255Register Only (2 bytes)Read/WriteGeneral Purpose Internal Registers
Note: Internal Coils and Internal Registers share same memory
Data RegistersD00000 or D00000_000-4095, 0-15Bit or Register (1, 2 or 4 bytes)Read/WriteGeneral Purpose Registers
Retentive RegistersR000000-225272Register Only (1, 2 or 4 bytes)Read/WriteNon-volatile memory registers

1 – The HMC7030 supports C.0000-C.0099

2 – The HMC7030 supports R0-R299, and the HMC7043 and HMC7070 support R0-R1399.

3 – The first two digits of X, XW, Y, YW, M, and MW I/O addresses refer to the slot number of the I/O module. Built in I/O will have an address of 00, while slot 1 would have a prefix of 01.

Note: Memory areas are accessible in the Tag Database under Node Name: [HMC Model] None (-)

Generally speaking, the entire memory area of the HMC can be used for any purpose. However, the memory is split into several classifications so that they can be used for special purposes.

Index Registers (I, J, K)

The HMC Series has three 16-bit index registers (I, J, and K) that perform a specific purpose. As the name implies, these registers are used to ‘index’ or act as pointers to multiple registers. This method is called ‘indirect addressing’ because the HMC does not read/write to the specified address directly. Instead, the target address is determined indirectly by referencing the base address and the value read from the index register.

For example, if the MOV WORD instruction is used in a Ladder Logic Block, you can assign an index register to one of the operands:

MAPware-7000 Ladder Example of assigning Index Registers to an operand

In this example, we use the K index register along with an internal register (D0). When this ladder rung is executed, the HMC reads the value in the K register. It then adds this value to the D0 register (as an offset) to determine the true register that the constant value 50 is written to. If the value in the K register is 1, then the constant value 50 is written to internal memory register D1. If the K value is 2, then 50 is written to internal memory register D2, and so on.

Note: Care should be taken that the value in the index register does not cause the HMC to read/write to a register that does not exist (the address range is not checked by the HMC).

Many of the ladder logic instructions have tag indexing capability. To find out which instructions support this feature, see The HMC Series Ladder Logic Instructions Manual. In each section that defines a particular instruction, you will see an Operand table with a column marked Index. This column is checked for each operand that supports indexing.

Counter and Timer Registers/Coils (C, C., T, T.)

The HMC Series has four memory registers which are specifically used with the Counter and Timer instructions:

  • Counter (C) registers
  • Counter (C.) coils
  • Timer (T) registers
  • Timer (T.) coils

Each Timer or Counter register is ‘connected’ to a corresponding Timer or Counter coil. In a Timer or Counter instruction, when the Timer or Counter reaches its set value, the corresponding Timer or Counter coil is set.

For example, the picture below illustrates using the ON Timer:

MAPware-7000 ladder rung of using an ON timer

The timer T00001 register is used to count up to 1 sec (10msec timer). When the preset count (100) has been reached, timer coil T.0001 is set.

Input Registers/Coils (X, XW)

These registers and coils are designed for use by the physical inputs (digital or analog) from an attached or built-in (HMC7030A-L) input expansion module. These are the only internal memory addresses of the HMC which are read only. Therefore, the value read from these registers/coils always represents the current state of the physical input of the expansion module assigned to it. When you start a new project and assign I/O expansion modules to each expansion slot of the HMC, the MAPware will automatically assign the appropriate memory addresses according to slot location. For example, the twelve built-in digital inputs of the HMC7030A-L are assigned to coils X00000-X00011 and register XW0000. For a HMC unit that has eight digital inputs in expansion slot #1, the MAPware software automatically assigns coil addresses X01000-X01007 and register XW0100 to the inputs. If sixteen digital inputs are located in slot#4, the software assigns coil addresses X04000-X04015 and register XW0400 to the inputs. If an analog module with four analog inputs is installed into slot#2, then no coil addresses would be assigned (since these are analog inputs) and registers XW0200-XW0203 are assigned.

The X and XW registers are mapped to the same memory area in the HMC with sixteen X coils per XW register. To determine the register and bit location of an X coil memory area use the following equation: Xnnn = XW(nnn/16 quotient), bit (nnn/16 remainder).

For example, X00161 corresponds to the second least significant bit (bit 1) of XW0010 (161/16 = 10r1).

Output Registers/Coils (Y, YW)

These registers and coils are designed for use by the physical outputs (digital or analog) from an attached or built-in (HMC7030A-L) output expansion module. The value read from these internal registers/coils is used to determine and set the current state of the physical output of the expansion module assigned to it. When you start a new project and assign I/O expansion modules to each expansion slot of the HMC, the MAPware will automatically assign the appropriate memory addresses according to slot location. For example, the eight built-in digital outputs of the HMC7030A-L are assigned to coils Y00000-Y00007 and register YW0000. For an HMC unit that has eight digital outputs in expansion slot #1, the MAPware software automatically assigns coil addresses Y01000-Y01007 and register YW0100 to the outputs. If twelve digital outputs are located in slot#3, the software assigns coil addresses Y03000-Y03011 and register YW0300 to the outputs. If an analog module with two analog outputs is installed into slot#5, then no coil addresses would be assigned (since these are analog outputs) and registers YW0500-YW0501 are assigned.

The Y and YW registers are mapped to the same memory area in the HMC with sixteen Y coils per YW register. To determine the register and bit location of an Y coil memory area use the following equation: Ynnn = YW(nnn/16 quotient), bit (nnn/16 remainder).

For example, Y00161 corresponds to the second least significant bit (bit 1) of YW0010, (161/16 = 10r1).

Configuration Registers/Coils (M, MW)

These registers and coils are reserved to perform special functions when the HMC has built-in or attached expansion modules. For example, the HMC7030A-L has the following I/O Register/Coil memory allocated for the twelve digital inputs and eight digital outputs built into the unit:

  • M00240 HSC Enable Bit (ch1)
  • M00241 HSC Reset Bit (ch1)
  • M00400 HSC Enable Bit (ch2)
  • M00401 HSC Reset Bit (ch2)
  • MW0000 PLC mode control
  • MW0003 Run/Stop Switch
  • MW0010 HSC Configuration Register (ch1)
  • MW0011 HSC Current Register (ch1)
  • MW0013 HSC Preset Register (ch1)
  • MW0020 HSC Configuration Register (ch2)
  • MW0021 HSC Current Register (ch2)
  • MW0023 HSC Preset Register (ch2)

These registers are used when the built-in I/O of the HMC7030A-L is configured as high speed counters.

The MAPware automatically allocates the necessary I/O registers to each expansion module according to slot location and type of module. For example, a HMC unit that has eight digital inputs and eight digital outputs in expansion slot #1 has coil addresses M01080, M01081, M01176, and M01177 and registers MW0100-MW0109 assigned for two high-speed counters. If slot#2 contains an analog 2 input/2 output module, the software assigns no coil addresses and registers MW0200-MS0203 to read/write to the analog registers. When slot#4 contains a 12 point relay output module, MAPware assigns the MW0400 register for relay outputs.

The M and MW registers are mapped to the same memory area in the HMC with sixteen M coils per MW register. To determine the register and bit location of a M coil memory area use the following equation: Mnnn = MW(nnn/16 quotient), bit (nnn/16 remainder).

For example, M00161 corresponds to the second least significant bit (bit 1) of MW0010, (161/16 = 10r1). Individual bits of the MW registers can be accessed with using the MW0000_00 notation, so the previous example would be written as MW0010_01.

System Registers/Coils (S, SW)

These registers and coils are reserved by the HMC for specific purposes. A total of 100 system coils and 256 system registers are reserved. Although undefined system registers and coils could be used by the HMC programmer, this area of memory may be used in the future for predefined uses. Therefore, use of this area of memory should be limited to the predefined coils and registers. For a list of these memory areas, see Appendix B – System Tag Memory.

Internal Registers/Coils (B, BW)

These are general purpose registers and coils which can be used at the discretion of the HMC programmer. This area of memory is non-retentive so any data stored in these registers is lost once power has been removed from the HMC.

The B coil memory and the BW register memory are mapped to the same memory area in the HMC with sixteen B coils per BW register. Therefore, the least significant bit in register BW0 corresponds to the B0 coil. Likewise, the B18 coil shares the same memory area as bit 2 of BW1. To determine the register and bit location of a B coil memory area use the following equation: Bnnn = BW(nnn/16 quotient), bit (nnn/16 remainder).

Therefore B00050 coil corresponds to BW0003, bit 2 (50/16 = 3r2).

Data Registers (D)

These are general purpose registers which can be used at the discretion of the HMC programmer. This area of memory is non-retentive so any data stored in these registers is lost once power has been removed from the HMC.

Note that these registers can be configured as bits with the D00000_00 notation.

Retentive Registers (R)

These are general registers which can be used at the discretion of the HMC programmer. This area of memory is retentive so any data stored in these registers remains once power has been removed from the HMC.

Note that reading/writing to these registers requires more processing time than does using any of the other registers in memory due to their retentive nature. Therefore, be aware that using these registers in ladder logic blocks require more processing time.

IEC 61131-3 Tags (HMC2000 and HMC4000 models)

In projects created using the IEC 61131-3 programming mode, tags are not, necessarily, assigned an explicit memory address. Instead they are created with a data type that determines the tags format and function. The data type is selected in the Register/Coil Type dropdown list in the Add Tag window of the tag database. For detailed instructions on creating tags refer to Chapter 4 – Tags.

Below is a table displaying the tag data types available in IEC 61131-3 projects.

Data TypeDescriptionBitsValue Range
BOOLBoolean value can have one of two values: 1 (ON / True) or 0 (OFF / False)10 or 1
BYTEUnsigned Short (same as USINT)80 to 255
DINTSigned Double Integer32-2,147,483,648 to 2,147,483,647
DWORDUnsigned Double Integer (same as UDINT)320 to 4,294,967,295
INTSigned Integer16-32,768 to 32,767
LREALIEEE 754 format, double precision floating point64
REALIEEE 754 format, single precision floating point32±3.403 x 1038
SINTSigned Short Integer 8-128 to 127
STRINGVariable length string of ASCII characters1 to 255 bytesN/A
TIMETime of day32N/A
UDINTUnsigned Double Integer (same as DWORD)320 to 4,294,967,295
UINTUnsigned Integer160 to 65,535
USINTUnsigned Short Integer (Same as BYTE)80 to 255
WORDUnsigned Integer (Same as UINT)160 to 65,535

In addition to these data types, IEC 61131-3 projects share some of the data types available in Native Ladder projects. In these cases the tags are given an explicit address which is visible in the tag database. These registers are; Retentive Registers (R), System Coils / Registers (S, SW), Input Registers (X, XW), Output Registers (Y, YW), and I/O Configuration Coils / Registers (M, MW). Refer to the previous section of this page for information on available addresses and using these registers.