<TABLE> <S> <C>

<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM FORM 10Q 
FOR THE 3 MONTHS ENDED MARCH 31, 1997, SIX MONTHS ENDED JUNE 30, 1997, AND 
NINE MONTHS ENDED SEPTEMBER 30, 1997 AND IS QUALIFIED IN ITS ENTIRETY BY 
REFERENCE TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<MULTIPLIER> 1,000
       
<S>                             <C>                     <C>                     <C>
<PERIOD-TYPE>                   3-MOS                   6-MOS                   9-MOS
<FISCAL-YEAR-END>                          DEC-31-1996             DEC-31-1996             DEC-31-1996
<PERIOD-START>                             JAN-01-1997             JAN-01-1997             JAN-01-1997
<PERIOD-END>                               MAR-31-1997             JUN-30-1997             SEP-30-1997
<CASH>                                            6426                    2575                    2561
<SECURITIES>                                         0                       0                       0
<RECEIVABLES>                                    38335                   37806                   38436
<ALLOWANCES>                                       490                     611                     824
<INVENTORY>                                      14564                   14987                   13763
<CURRENT-ASSETS>                                 61418                   58954                   62391
<PP&E>                                           27777                   26522                   27180
<DEPRECIATION>                                   13140                   12575                   13428
<TOTAL-ASSETS>                                   79233                   74542                   78123
<CURRENT-LIABILITIES>                            24791                   24547                   28988
<BONDS>                                              0                       0                       0
<PREFERRED-MANDATORY>                                0                       0                       0
<PREFERRED>                                          0                       0                       0
<COMMON>                                         38419                   38680                   39190
<OTHER-SE>                                       16023                   11315                    9945
<TOTAL-LIABILITY-AND-EQUITY>                     79233                   74542                   78123
<SALES>                                          19106                   35876                   16243
<TOTAL-REVENUES>                                 30990                   60135                   29427
<CGS>                                             8693                   16160                    7700
<TOTAL-COSTS>                                    28985                   65426                   30833
<OTHER-EXPENSES>                                  (76)                    (37)                      24
<LOSS-PROVISION>                                     0                       0                       0
<INTEREST-EXPENSE>                                   0                       0                       0
<INCOME-PRETAX>                                   2081                  (5254)                  (1382)
<INCOME-TAX>                                       790                  (1669)                   (414)
<INCOME-CONTINUING>                               1291                       0                       0
<DISCONTINUED>                                       0                       0                       0
<EXTRAORDINARY>                                      0                       0                       0
<CHANGES>                                            0                       0                       0
<NET-INCOME>                                      1291                  (3585)                   (968)
<EPS-PRIMARY>                                     0.11                  (0.30)                   (.38)
<EPS-DILUTED>                                     0.11                  (0.30)                   (.38)
        

</TABLE>