Hard Disk Fault


A DMU80P 5-axis universal machining center, manufactured by the German company DMG in the late 1990s, recently had a hard disk failure. When it was started up, it prompted “Failure Fixed Disk 0” and “Operating system not found”. Then the cursor blinked, unable to complete the start-up process. After eliminating the possibility of poor contact, took out the hard disk and connected it with a desktop computer through an adapter card. The hard disk could not be accessed by many methods. When the shell was removed, found that the disc had been seriously scratched, and the magnetic head could not move out of the large area of scratches like rut, so it could only be regarded as scrap.

After contacting with the service office, in addition to the purchase and service fees of tens of thousands of Yuan of hard disk, it would take 3-4 months to arrive. The impact on production could be imagined, so we decided to try to repair it by ourselves.

The hard disk is a Hitachi DK224A-14, with a 2.5-inch parallel port and a capacity of 1.4G. Because it was not easy to buy, we used a 60G of an old laptop and connected it to the desktop through a LGH-IDE-K interface card (available online, RMB Yuan 10 to 20).

Through observation and analysis of manuals, floppy disks and the start-up process of a DMU80T 4-axis machining center nearby, which was built in about the same period, made some attempts and finally restored the machine to operation in the following ways:

Checked ten floppy disks of this machine, nine of which are system software, including DOS commands, Heidenhain Millplus numerical control application and some tools, and the other is machine specific data, such as IPLC, machine parameter, etc.

Run the INSTALL program on the first disk in the pure DOS environment on a desktop computer. It extracted the contents of nine floppy disks on the hard disk with prompts. Then it automatically run a CNCINST program, which prompts the serial port setting, transfer configuration and the host waiting for the remote PC to be ready. It could be seen that the installation is to install the system on the PC, then configure the application according to the specific machine tool, and then transfer it to the machine hard disk through the serial or network port. The hard disk of the machine tool must be able to start normally on the machine tool, have corresponding settings and be able to automatically or manually run the communication software. After the failure of proper attempt to this method, we decided to install and configure the hard disk manually, because the “installation” of INSTALL is actually decompression, and CNCINST is transfer.

Under the CNC_VERS\8321_331.00B\ROOT path after decompression, checked that the number of bytes of the COMMAND.COM file is 54619, and from this confirmed that its DOS version is 6.21. When ” HEIDENHAIN NUMERIC Service Menu” appeared in DMU80T startup, pressed the “S” and “7” keys, and run Fdisk at the DOS prompt to check the partition situation. Based on this, using DOS6.21 created a 50M primary partition C: and a 2G extended partition D: on the 60G hard disk, then formatted and installed DOS6.21 to C:.

The INSTALL program creates the CNC_VERS directory under the root of the hard disk, which contains 8301_331.00B, 8321_331.00B and UTIL subdirectories and a text file. The text file records the compressed files and attributes in each floppy disk. Under UTIL, there are system configuration, transfer and other tool softwares. 8301_331.00B is applicable to (DAX/VAR) analog and digital servo system, while DMU80P adopts (SDC/DDC) digital servo system and applies 8321_331.00B (for convenience, the following always refers to subdirectories or files under this directory if there is no special note).

Copied all files under the ROOT subdirectory except DOS system files COMMAND.COM, IO.SYS and MSDOS.SYS to the root. The contents of DOS subdirectory can be ignored because the hard disk was installed with complete DOS.

The UTIL subdirectory (8321_331.00B instead of CNC_VERS) contains various hardware self-test, communication and other tool softwares. For system startup, the entire subdirectory was copied to the root.

The SYSTEM subdirectory contains system files and copied them to the root.

The NUM subdirectory contains files such as Interactive Part Programming (IPP). Referring to the file configuration of DMU80T machine tool, created an OEM directory in C:\, which includes three subdirectories: CFG, LANGUAGE and MSG. Created LANGUAGE and MACROS subdirectories under the SYSTEM directory. Copied three .331 files under NUM\IPPM to OEM, and all .331 files under NUM\IPPM\LANGUAGE to OEM\LANGUAGE. The .331 files under NUM\UIMS were copied to SYSTEM, and all .331 files under NUM\UIMS\LANGUAGE were copied to SYSTEM\LANGUAGE.

By the way, many files have similar names, but the character(s) at the end or extensions are different, such as A830M*.331, A830T*.331 and U8300*.331. Different parts represent languages, such as D German, DK Danish, E Spanish, F French, GB English, I Italian, NL Dutch, P Portuguese, S Swedish, SF Finnish. Only the corresponding files need to be copied.

CM subdirectory contains the default machine parameter file, CNCINST and INSTDATA subdirectories contain files about installation, tool, technology, etc. OEM subdirectory is empty. They were left not considered.

The following describes the processing method of the files in the tenth floppy disk:

Copy the machine parameter .CM and temperature compensation .CT files to the SYSTEM subdirectory. If the machine parameters are lost, can run the STARTUP CM command to load at the DOS prompt. The .CT file is loaded in the menu of Millplus.

The DSK_HINW subdirectory contains the version information of IPLC, which is stored in the database files DMG_INFO.DBF and DMG_INFO.DBT in German. If you run the DMG_HINW.EXE program (self extracting through DMG_INFO.EXE) and enter the version number range as prompted, can generate corresponding text file. Ignore this information and copy the I213*.* files under the IPLC subdirectory to C:\OEM\LANGUAGE.

Run the 8321_331.00B\SYSTEM\EASYOPER.EXE program, and copy the macro programs self-extracted and those under the MACRO subdirectory in the 10th floppy disk together into the C:\SYSTEM\MACROS subdirectory.

The meaning of German Meldung and English message is similar. Copy the text files in the subdirectory of MELDUNG to C:\OEM\MSG.

The TECHNO subdirectory contains .MG (machining type table), .MA (material type table), .TE (technology table) and .TT (tool type table) files. Usually not used, ignore them.

The UK subdirectory contains the user softkey table file. Can copy it to C:\, and load it under the machine menu Control/Installation/User softkeys. Can also view and edit it in a text editor under the menu.

Through the process above, the machine was restored to work normally. However, if you use some unusual functions, such as online interaction programming, may cause problems. At this point, it can be solved by properly arranging the file location according to the error prompt. In fact, if make further analysis, as using decompiler tools, can understand its function and proper location, so that the configuration is complete and concise, but it takes time. In addition, if conditions permit, the installation through serial or network port should be well tried.

Analysis of VFS5 Main Program

The analysis of the flow chart of the main program is as follows:

After power-on reset, N80C196KB16 starts at 2080H.
First, write zero to the output lines O1-O8 (ULN2803A, 28) of the servo module VFS5.

Set the stack to 8000H-82FFH.

Check whether the parameter LOAD (RAM:F762H) is 1, and if 1, the user program that is solidified in ROM is loaded to the external RAM, of which the starting address is 8300H (the external RAM address space is 32K, that is, 8000H-FFFFH). The so-called loading is actually a copying of the user program stored in ROM to RAM, which copies the content of 4D6AH-5D09H in a total of 4000 bytes in ROM. In this VFS5 module, the actual location of the user program is 4D6AH-5B41H, with a total of 3544 bytes. Then check the number of characters of the program (not more than 20000) and fix it, the number of program instructions is stored in D130H, the address of the offset of the end byte FFH to 8300H is stored in D132H, the program’s character ASCII value sum (discarding those higher than two bytes) are stored into D676H (PGMCKSUM) and D128H-D126H’s two lower bytes. D129.7 is used as the flag bit. “1” indicates that the program is wrong, and “0” normal.
If LOAD is 0, the process is dropped. In fact, the contents of external RAM (DS1230Y-120) will not be lost after power-off.
Then the program jumps to 0100H.

Add all the bytes of 0100H-7FFFH (except 1FFCH-1FFDH) in the ROM to see if the sum is equal to the content of 1FFCH-1FFDH (8626H). If not, it goes into a dead loop, and the CPU LED flickers to indicate firmware errors; if equal, it lights up the CPU LED and then executes the program down.

Check whether the setting of revolver resolution RDRES (manufacturer set, stored in the external data memory D6B9H unit) matches the hardware. If so, give information 199 (DRIVE POWERED UP). Otherwise light the FAULT LED, and put the No.27 message (R/D JUMPERS) into the buffer.

Initialize parameters, reset outputs, etc., such as setting the servo motor as induction motor.

Check the variable BAUD to see if it is among the values of 300, 600, 19200. If it is, be ready to receive. If not, try to autobaud and flash CPU LED. The attempt maintains until success. The setting of ABAUD switches between checking and direct autobauding. FAULT LED turned OFF within this subroutine.

(to be continued…)

Data Sheet of Main IC Chips

(6, 90, 164, 284, 339, 438) UC3705T

(28) ULN2803A

(32, 109, 163, 300, 374, 464) MC3423

(43) AD652BQ

(51) 74HCT374

(52, 54) LS540

(56) AD7548JP

(60) AD2S82AKP

(60F, 133F, 215F, 324F, 405F, 467F) HP4503

(67) AD7528JP

(76) ALS138A

(78) HCTL-2000

(90, 171)TIBPAL16L8, (75)TIBPAL16R4

(114) DS1230Y-120

(122) DM74ALS245AWM

(123) DG418

(136) N80C196KB16

(137) AM27C256

(164) DM74ALS373WM

(166A) 34064

(189) SN75155P

(253) UC3524AN

VFS5 Main Program

From the circuit diagram, it can be seen that the core of the VFS5 spindle module is the MCS-96 Series MCU or micro controller N80C196KB16(136) of Intel company, with a small amount of RAM in the chip, but without ROM, it usually needs external expansion. The module uses AM27C256(137) and DS1230Y-120(114) as external program and data storage, and the memory space is 32K, respectively. AM27C256 has no security byte, and programmers can read the code directly. The N80C196KB16 fetches code from the address 2080H after reset, It is easy to obtain the assembly language program by disassembling code from the address. Then the control flow chart can be drawn (see below).

VFS5 Main Program