RBMware (*.RBM) File Format

RBMware is a data analysis software. And the RBM itself is Reliability Based Maintenance. But I don’t want to explain more regarding how to use this software.

This article will focus on how to access the database used in RBMware application, especially the data used by OilAnalysis.exe program.

The database is using *.RBM file extension and it is maintained by one of the sofware component called DAF42.DLL.

In user perspective, the RBM data contains hierarchical format as follows:

Here you can see that there are 5 (five) level of hierarchical data: Database, Area, Equipment, Point and the sample data.

Using low level perspective, the database consists of blocks of 512 bytes size called a Record, and it is usually access using DAF42.DLL’s ReadRecord by assigning the record number.

To access each block based on record number, you can use the (n-1) * 512 formula. For example, when the record number is 0x46 or 70, then (70 – 1) * 512 we get 35328 or 0x8A00 which is the block or physical sector number of the record being accessed.

The database can contain zero or many areas, but how to access the record that contains area information ? This is done by accessing the data at sector 0 which contains data as follows:

So the physical sector for the area records is located at record number 0x46, and when translated to physical sector using the above formula, we get 0x8A00:

You can see that it contains the fix sized long description and short description. Each block can contain maximum of 22 items of long description and short description. So what if there’s more than 22 records of area ? It is maintained using the dword data (green one) that will contain record number of the next area data to be retrieved.

Now each area can have zero or many equipment records. This is done by retrieving dword data marked with yellow color (see above). And it is a collection of intermediate record called stdg (or read as gdts at low level) for each corresponding area.

So, for example when the corresponding block has 3 areas, then the dword collection will has 3 items, each points to associated stdg for the related area.

Let’s traverse to first stdg record for first area which is the record number 0xB6 (182) which is (182 – 1) * 512 = 92672 or 0x16A00:

The dword data mark with red color denotes record number for the equipment block. Let’s perform some calculation on 0xC4 (196) which is (196 – 1) * 512 = 99840 or 0x18600:

It has the same characteristics as area record, so the dword denoted with blue one will point to next equipment record when there are more than certain limits.

To retrieve the point record related to each equipment, you can refer to collection of dwords denoted with yellow color called mcdg or gdcm at low level view. Let’s perform some calculation on 0xC6 (198) which is (198 – 1) * 512 = 100864 or 0x18A00:

The mcdg will contain record number to mpig or gipm (denoted with blue color). 0xE4 (228) which is (228 – 1) * 512 = 116224 or 0x1C600:

The mpig record contains collection of point description record (mpdo or opdm denoted by yellow color) and also point short description (code). For example at record number 0xE8 (232) which is (232 – 1) * 512 = 118272 or 0x1CE00 we have:

Each point has record number (blue color above) that points to dcod or odcd record that contains start (red color below) and end (blue color below) record number for point samples data. For 0xEB (235) which is (235 – 1) * 512 = 119808 or 0x1D400 we have:

From the above structure, the start record number for sample point is located at 0x121 which is (289 – 1) * 512 = 147456 or 0x24000 we have:

From the above point sample data or tddo (oddt) we can retrieve record number for next sample for corresponding point (green color), sample data time stamp (blue color), the sample description (red color) and array of dwords 32 bit float data in the IEEE-754 format that will show up on user perspective as follows:

The dword arrays will corresponds to Analyzing Parameter (AP) that can be customized by the user. For the above example, the AP Set is Aluminum, Antimony, Barium, etc. How each of the dword arrays corresponds to the AP Set ?

Let’s take sample 219 for example:

The floating point 0x40C00000 is floating point for 6 for AP Aluminum, the next one will corresponds to Barium, etc. This correlation can be retrieved using record called apdo or odpa.

The record number for apdo is retrieved from apig or gipa record which is a constant of 12 (0xC). So by passing 0xC to ReadRecord we arrive at apig record as follows:

From the above apig record, the apdo record number is denoted with red color so we have 0xA9 which is (169 – 1) * 512 = 86016 or 0x15000:

Based on these parameter strings, then I can provide corresponding relation between array of values from apdo record to the parameter description.

Based on the above information, it is possible to create an application to provide tree traversing and data access for some necessary purposes.

3 Responses to “RBMware (*.RBM) File Format”

  1. fungugnun Says:

    I have been trying to extract “Field Notes” from .rbm files. These notes can be viewed on “Notepad Observations” however cannot be extracted with CIS ODB driver.

    I have managed to extracted all the notes and linked them to the equipments however I cannot link them with dates.

    Any advice how to find out this?

    If you are interested please send me an email.

  2. John Says:

    How did you extract the Notes? I cannot retrieve them via the CSI ODBC driver.

  3. Eleonora Says:

    I have the same problem. Did you found a solution?

Leave a comment