master/types.c
changeset 63 0333d8ebfff5
parent 55 059a9e712aa7
child 66 cab9cc6a2721
equal deleted inserted replaced
62:0fb2a690f4d0 63:0333d8ebfff5
    13 #include "globals.h"
    13 #include "globals.h"
    14 #include "types.h"
    14 #include "types.h"
    15 
    15 
    16 /*****************************************************************************/
    16 /*****************************************************************************/
    17 
    17 
    18 /* Konfigurationen der Sync-Manager */
    18 /*
       
    19   Konfigurationen der Sync-Manager
       
    20 
       
    21   Byte 1-2: Physical Start Address
       
    22   Byte 3-4: Data Length
       
    23   Byte   5: Control Byte
       
    24   Byte   6: Status Byte (read only)
       
    25   Byte 7-8: Enable
       
    26 */
    19 
    27 
    20 unsigned char sm0_multi[] = {0x00, 0x18, 0xF6, 0x00, 0x26, 0x00, 0x01, 0x00};
    28 unsigned char sm0_multi[] = {0x00, 0x18, 0xF6, 0x00, 0x26, 0x00, 0x01, 0x00};
    21 unsigned char sm1_multi[] = {0xF6, 0x18, 0xF6, 0x00, 0x22, 0x00, 0x01, 0x00};
    29 unsigned char sm1_multi[] = {0xF6, 0x18, 0xF6, 0x00, 0x22, 0x00, 0x01, 0x00};
    22 
    30 
    23 unsigned char sm0_1014[] = {0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00};
    31 unsigned char sm0_1014[] = {0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00};
    27 unsigned char sm2_31xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00};
    35 unsigned char sm2_31xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00};
    28 unsigned char sm3_31xx[] = {0x00, 0x11, 0x06, 0x00, 0x20, 0x00, 0x01, 0x00};
    36 unsigned char sm3_31xx[] = {0x00, 0x11, 0x06, 0x00, 0x20, 0x00, 0x01, 0x00};
    29 
    37 
    30 unsigned char sm2_41xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x01, 0x00};
    38 unsigned char sm2_41xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x01, 0x00};
    31 
    39 
    32 /* Konfigurationen der Memory-Management-Units */
    40 unsigned char sm2_5001[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00};
       
    41 unsigned char sm3_5001[] = {0x00, 0x11, 0x05, 0x00, 0x20, 0x00, 0x01, 0x00};
       
    42 
       
    43 /*
       
    44   Konfigurationen der Memory-Management-Units
       
    45 
       
    46   Byte   1-4: Logical Start Address (is set later)
       
    47   Byte   5-6: Length
       
    48   Byte     7: Logical start bit
       
    49   Byte     8: Logical end bit
       
    50   Byte  9-10: Physical start address
       
    51   Byte    11: Physical start bit
       
    52   Byte    12: Direction (1: in, 2: out)
       
    53   Byte 13-14: Channel enable
       
    54   Byte 15-16: Reserved
       
    55 */
    33 
    56 
    34 unsigned char fmmu0_1014[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
    57 unsigned char fmmu0_1014[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
    35                               0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00};
    58                               0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00};
    36 
    59 
    37 unsigned char fmmu0_2004[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
    60 unsigned char fmmu0_2004[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
    41                               0x00, 0x11, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00};
    64                               0x00, 0x11, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00};
    42 
    65 
    43 unsigned char fmmu0_41xx[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07,
    66 unsigned char fmmu0_41xx[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07,
    44                               0x00, 0x10, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00};
    67                               0x00, 0x10, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00};
    45 
    68 
       
    69 unsigned char fmmu0_5001[] = {0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x07,
       
    70                               0x00, 0x11, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00};
       
    71 
    46 /*****************************************************************************/
    72 /*****************************************************************************/
    47 
    73 
    48 /* Klemmen-Objekte */
    74 /* Klemmen-Objekte */
    49 
    75 
    50 ec_slave_type_t Beckhoff_EK1100[] =
    76 ec_slave_type_t Beckhoff_EK1100 =
    51 {{
    77 {
    52   "Beckhoff", "EK1100", "Bus Coupler",
    78     "Beckhoff", "EK1100", "Bus Coupler",
    53   EC_NOSYNC_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
    79     EC_NOSYNC_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
    54 }};
    80 };
    55 
    81 
    56 ec_slave_type_t Beckhoff_EK1110[] =
    82 ec_slave_type_t Beckhoff_EK1110 =
    57 {{
    83 {
    58   "Beckhoff", "EK1110", "Extension terminal",
    84     "Beckhoff", "EK1110", "Extension terminal",
    59   EC_NOSYNC_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
    85     EC_NOSYNC_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
    60 }};
    86 };
    61 
    87 
    62 ec_slave_type_t Beckhoff_EL1014[] =
    88 ec_slave_type_t Beckhoff_EL1014 =
    63 {{
    89 {
    64   "Beckhoff", "EL1014", "4x Digital Input",
    90     "Beckhoff", "EL1014", "4x Digital Input",
    65   EC_SIMPLE_SLAVE, sm0_1014, NULL, NULL, NULL, fmmu0_1014, 1
    91     EC_SIMPLE_SLAVE, sm0_1014, NULL, NULL, NULL, fmmu0_1014, 1
    66 }};
    92 };
    67 
    93 
    68 ec_slave_type_t Beckhoff_EL2004[] =
    94 ec_slave_type_t Beckhoff_EL2004 =
    69 {{
    95 {
    70   "Beckhoff", "EL2004", "4x Digital Output",
    96     "Beckhoff", "EL2004", "4x Digital Output",
    71   EC_SIMPLE_SLAVE, sm0_2004, NULL, NULL, NULL, fmmu0_2004, 1
    97     EC_SIMPLE_SLAVE, sm0_2004, NULL, NULL, NULL, fmmu0_2004, 1
    72 }};
    98 };
    73 
    99 
    74 ec_slave_type_t Beckhoff_EL3102[] =
   100 ec_slave_type_t Beckhoff_EL3102 =
    75 {{
   101 {
    76   "Beckhoff", "EL3102", "2x Analog Input diff.",
   102     "Beckhoff", "EL3102", "2x Analog Input diff.",
    77   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, fmmu0_31xx, 6
   103     EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, fmmu0_31xx, 6
    78 }};
   104 };
    79 
   105 
    80 ec_slave_type_t Beckhoff_EL3162[] =
   106 ec_slave_type_t Beckhoff_EL3162 =
    81 {{
   107 {
    82   "Beckhoff", "EL3162", "2x Analog Input",
   108     "Beckhoff", "EL3162", "2x Analog Input",
    83   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, fmmu0_31xx, 6
   109     EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, fmmu0_31xx, 6
    84 }};
   110 };
    85 
   111 
    86 ec_slave_type_t Beckhoff_EL4102[] =
   112 ec_slave_type_t Beckhoff_EL4102 =
    87 {{
   113 {
    88   "Beckhoff", "EL4102", "2x Analog Output",
   114     "Beckhoff", "EL4102", "2x Analog Output",
    89   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_41xx, NULL, fmmu0_41xx, 4
   115     EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_41xx, NULL, fmmu0_41xx, 4
    90 }};
   116 };
    91 
   117 
    92 ec_slave_type_t Beckhoff_EL4132[] =
   118 ec_slave_type_t Beckhoff_EL4132 =
    93 {{
   119 {
    94   "Beckhoff", "EL4132", "2x Analog Output diff.",
   120     "Beckhoff", "EL4132", "2x Analog Output diff.",
    95   EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_41xx, NULL, fmmu0_41xx, 4
   121     EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_41xx, NULL, fmmu0_41xx, 4
    96 }};
   122 };
    97 
   123 
    98 ec_slave_type_t Beckhoff_EL5001[] =
   124 ec_slave_type_t Beckhoff_EL5001 =
    99 {{
   125 {
   100   "Beckhoff", "EL5001", "SSI-Interface", // Noch nicht eingepflegt...
   126     "Beckhoff", "EL5001", "SSI-Interface",
   101   EC_SIMPLE_SLAVE, NULL, NULL, NULL, NULL, NULL, 0
   127     EC_MAILBOX_SLAVE, sm0_multi, sm1_multi, sm2_5001, sm3_5001, fmmu0_5001, 5
   102 }};
   128 };
   103 
   129 
   104 /*****************************************************************************/
   130 /*****************************************************************************/
   105 
   131 
   106 /**
   132 /**
   107    Beziehung zwischen Identifikationsnummern und Klemmen-Objekt.
   133    Beziehung zwischen Identifikationsnummern und Klemmen-Objekt.
   111    Neue Klemmen müssen hier eingetragen werden.
   137    Neue Klemmen müssen hier eingetragen werden.
   112 */
   138 */
   113 
   139 
   114 ec_slave_ident_t slave_idents[] =
   140 ec_slave_ident_t slave_idents[] =
   115 {
   141 {
   116   {0x00000002, 0x03F63052, Beckhoff_EL1014},
   142     {0x00000002, 0x03F63052, &Beckhoff_EL1014},
   117   {0x00000002, 0x044C2C52, Beckhoff_EK1100},
   143     {0x00000002, 0x044C2C52, &Beckhoff_EK1100},
   118   {0x00000002, 0x04562C52, Beckhoff_EK1110},
   144     {0x00000002, 0x04562C52, &Beckhoff_EK1110},
   119   {0x00000002, 0x07D43052, Beckhoff_EL2004},
   145     {0x00000002, 0x07D43052, &Beckhoff_EL2004},
   120   {0x00000002, 0x0C1E3052, Beckhoff_EL3102},
   146     {0x00000002, 0x0C1E3052, &Beckhoff_EL3102},
   121   {0x00000002, 0x0C5A3052, Beckhoff_EL3162},
   147     {0x00000002, 0x0C5A3052, &Beckhoff_EL3162},
   122   {0x00000002, 0x10063052, Beckhoff_EL4102},
   148     {0x00000002, 0x10063052, &Beckhoff_EL4102},
   123   {0x00000002, 0x10243052, Beckhoff_EL4132},
   149     {0x00000002, 0x10243052, &Beckhoff_EL4132},
   124   {0x00000002, 0x13893052, Beckhoff_EL5001}
   150     {0x00000002, 0x13893052, &Beckhoff_EL5001}
   125 };
   151 };
   126 
   152 
   127 unsigned int slave_ident_count = sizeof(slave_idents)
   153 unsigned int slave_ident_count = sizeof(slave_idents)
   128      / sizeof(ec_slave_ident_t);
   154      / sizeof(ec_slave_ident_t);
   129 
   155 
   130 
       
   131 /*****************************************************************************/
   156 /*****************************************************************************/