master/types.c
changeset 55 059a9e712aa7
parent 54 7506e67dd122
child 63 0333d8ebfff5
equal deleted inserted replaced
54:7506e67dd122 55:059a9e712aa7
    43 unsigned char fmmu0_41xx[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07,
    43 unsigned char fmmu0_41xx[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07,
    44                               0x00, 0x10, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00};
    44                               0x00, 0x10, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00};
    45 
    45 
    46 /*****************************************************************************/
    46 /*****************************************************************************/
    47 
    47 
    48 /* Lese- und Schreibfunktionen */
       
    49 
       
    50 int read_1014(unsigned char *data, unsigned int channel)
       
    51 {
       
    52   return (data[0] >> channel) & 0x01;
       
    53 }
       
    54 
       
    55 void write_2004(unsigned char *data, unsigned int channel, int value)
       
    56 {
       
    57   if (value) {
       
    58     data[0] |= (1 << channel);
       
    59   }
       
    60   else {
       
    61     data[0] &= ~(1 << channel);
       
    62   }
       
    63 }
       
    64 
       
    65 int read_31xx(unsigned char *data, unsigned int channel)
       
    66 {
       
    67   return (short int) ((data[channel * 3 + 2] << 8) | data[channel * 3 + 1]);
       
    68 }
       
    69 
       
    70 void write_41xx(unsigned char *data, unsigned int channel, int value)
       
    71 {
       
    72   data[channel * 3 + 1] = (value & 0xFF00) >> 8;
       
    73   data[channel * 3 + 2] = value & 0xFF;
       
    74 }
       
    75 
       
    76 /*****************************************************************************/
       
    77 
       
    78 /* Klemmen-Objekte */
    48 /* Klemmen-Objekte */
    79 
    49 
    80 ec_slave_desc_t Beckhoff_EK1100[] =
    50 ec_slave_type_t Beckhoff_EK1100[] =
    81 {{
    51 {{
    82   "Beckhoff", "EK1100", "Bus Coupler",
    52   "Beckhoff", "EK1100", "Bus Coupler",
    83   EC_NOSYNC_SLAVE,
    53   EC_NOSYNC_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
    84   NULL, NULL, NULL, NULL,
       
    85   NULL,
       
    86   0, 0,
       
    87   NULL, NULL
       
    88 }};
    54 }};
    89 
    55 
    90 ec_slave_desc_t Beckhoff_EL1014[] =
    56 ec_slave_type_t Beckhoff_EK1110[] =
       
    57 {{
       
    58   "Beckhoff", "EK1110", "Extension terminal",
       
    59   EC_NOSYNC_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
       
    60 }};
       
    61 
       
    62 ec_slave_type_t Beckhoff_EL1014[] =
    91 {{
    63 {{
    92   "Beckhoff", "EL1014", "4x Digital Input",
    64   "Beckhoff", "EL1014", "4x Digital Input",
    93   EC_SIMPLE_SLAVE,
    65   EC_SIMPLE_SLAVE, sm0_1014, NULL, NULL, NULL, fmmu0_1014, 1
    94   sm0_1014, NULL, NULL, NULL,
       
    95   fmmu0_1014,
       
    96   1, 4,
       
    97   read_1014, NULL
       
    98 }};
    66 }};
    99 
    67 
   100 ec_slave_desc_t Beckhoff_EL2004[] =
    68 ec_slave_type_t Beckhoff_EL2004[] =
   101 {{
    69 {{
   102   "Beckhoff", "EL2004", "4x Digital Output",
    70   "Beckhoff", "EL2004", "4x Digital Output",
   103   EC_SIMPLE_SLAVE,
    71   EC_SIMPLE_SLAVE, sm0_2004, NULL, NULL, NULL, fmmu0_2004, 1
   104   sm0_2004, NULL, NULL, NULL,
       
   105   fmmu0_2004,
       
   106   1, 4,
       
   107   NULL, write_2004
       
   108 }};
    72 }};
   109 
    73 
   110 ec_slave_desc_t Beckhoff_EL3102[] =
    74 ec_slave_type_t Beckhoff_EL3102[] =
   111 {{
    75 {{
   112   "Beckhoff", "EL3102", "2x Analog Input diff.",
    76   "Beckhoff", "EL3102", "2x Analog Input diff.",
   113   EC_MAILBOX_SLAVE,
    77   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, fmmu0_31xx, 6
   114   sm0_multi, sm1_multi, sm2_31xx, sm3_31xx,
       
   115   fmmu0_31xx,
       
   116   6, 2,
       
   117   read_31xx, NULL
       
   118 }};
    78 }};
   119 
    79 
   120 ec_slave_desc_t Beckhoff_EL3162[] =
    80 ec_slave_type_t Beckhoff_EL3162[] =
   121 {{
    81 {{
   122   "Beckhoff", "EL3162", "2x Analog Input",
    82   "Beckhoff", "EL3162", "2x Analog Input",
   123   EC_MAILBOX_SLAVE,
    83   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, fmmu0_31xx, 6
   124   sm0_multi, sm1_multi, sm2_31xx, sm3_31xx,
       
   125   fmmu0_31xx,
       
   126   6, 2,
       
   127   read_31xx, NULL
       
   128 }};
    84 }};
   129 
    85 
   130 ec_slave_desc_t Beckhoff_EL4102[] =
    86 ec_slave_type_t Beckhoff_EL4102[] =
   131 {{
    87 {{
   132   "Beckhoff", "EL4102", "2x Analog Output",
    88   "Beckhoff", "EL4102", "2x Analog Output",
   133   EC_MAILBOX_SLAVE,
    89   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_41xx, NULL, fmmu0_41xx, 4
   134   sm0_multi, sm1_multi, sm2_41xx, NULL,
       
   135   fmmu0_41xx,
       
   136   4, 2,
       
   137   NULL, write_41xx
       
   138 }};
    90 }};
   139 
    91 
   140 ec_slave_desc_t Beckhoff_EL4132[] =
    92 ec_slave_type_t Beckhoff_EL4132[] =
   141 {{
    93 {{
   142   "Beckhoff", "EL4132", "2x Analog Output diff.",
    94   "Beckhoff", "EL4132", "2x Analog Output diff.",
   143   EC_MAILBOX_SLAVE,
    95   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_41xx, NULL, fmmu0_41xx, 4
   144   sm0_multi, sm1_multi, sm2_41xx, NULL,
       
   145   fmmu0_41xx,
       
   146   4, 2,
       
   147   NULL, write_41xx
       
   148 }};
    96 }};
   149 
    97 
   150 ec_slave_desc_t Beckhoff_EL5001[] =
    98 ec_slave_type_t Beckhoff_EL5001[] =
   151 {{
    99 {{
   152   "Beckhoff", "EL5001", "SSI-Interface",
   100   "Beckhoff", "EL5001", "SSI-Interface", // Noch nicht eingepflegt...
   153   EC_SIMPLE_SLAVE,
   101   EC_SIMPLE_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
   154   NULL, NULL, NULL, NULL, // Noch nicht eingepflegt...
       
   155   NULL,
       
   156   0, 0,
       
   157   NULL, NULL
       
   158 }};
   102 }};
   159 
   103 
   160 /*****************************************************************************/
   104 /*****************************************************************************/
   161 
   105 
   162 /**
   106 /**
   169 
   113 
   170 ec_slave_ident_t slave_idents[] =
   114 ec_slave_ident_t slave_idents[] =
   171 {
   115 {
   172   {0x00000002, 0x03F63052, Beckhoff_EL1014},
   116   {0x00000002, 0x03F63052, Beckhoff_EL1014},
   173   {0x00000002, 0x044C2C52, Beckhoff_EK1100},
   117   {0x00000002, 0x044C2C52, Beckhoff_EK1100},
       
   118   {0x00000002, 0x04562C52, Beckhoff_EK1110},
   174   {0x00000002, 0x07D43052, Beckhoff_EL2004},
   119   {0x00000002, 0x07D43052, Beckhoff_EL2004},
   175   {0x00000002, 0x0C1E3052, Beckhoff_EL3102},
   120   {0x00000002, 0x0C1E3052, Beckhoff_EL3102},
   176   {0x00000002, 0x0C5A3052, Beckhoff_EL3162},
   121   {0x00000002, 0x0C5A3052, Beckhoff_EL3162},
   177   {0x00000002, 0x10063052, Beckhoff_EL4102},
   122   {0x00000002, 0x10063052, Beckhoff_EL4102},
   178   {0x00000002, 0x10243052, Beckhoff_EL4132},
   123   {0x00000002, 0x10243052, Beckhoff_EL4132},