| 
   | 
  
   | 
  
   | 
  
   | 
  
A composite type object is one having multiple elements. There are two classes of composite types: array types and record types.
composite_type_definition ::= array_type_definition | record_type_definition
An object of a composite type is a collection of other objects, called elements. The elements can be of any scalar, composite or access type. It is not allowed to use file types as elements of a composite type.
The difference between arrays and records lies in that all elements of an array must be of the same type. For example, each array element can be a voltage value. On the other hand, each element of a record can be of a different type (Voltage1, current1, resistance1,Voltage2,&ldots;). Each element of an array is referred to by its array name and position (index). On the other hand, the record elements (called fields) are referred to through their individual names (together with the name of entire record), or through an aggregate.
See array and record for details.
Example 1
   type T_MonthlyIncome is 
   array (1 to 12) of Integer;
   type T_PersonalData is
     record
         FirstName : String (1 to 6);
         LastName : String (1 to 10);
         IDNumber : String (1 to 5);
         Incomes : T_MonthlyIncome;
         TaxPaid : Boolean;
     end record;
    
   The two types above illustrate two classes of composite type. The 
   first one defines a 12-position array of integer values, while the 
   second one is a record with five fields. First four fields are of 
   composite types, while the very last one is of a scalar type.
Example 2
   Signal Year97Inc : T_MonthlyIncome;
   Signal SomeEmployee : T_PersonalData;
      . . .
   Year97Inc(12) <= 5500;
   SomeEmployee.FirstName <= "Gordon";
    
   The signals are declared to be of the types declared in Example
    1. Note the way elements of the composite types are accessed: 
   in case of arrays through the position index, while in record through 
   the field name (preceded by a dot).
| 
   | 
  
   | 
  
   | 
  
   |