objdictgen/examples/example_objdict.html
author etisserant
Thu, 30 Aug 2007 17:01:45 +0200
changeset 261 dbcd80bcab82
parent 0 4472ee7c6c3e
permissions -rw-r--r--
Prevent potential problem with missing 0x1005 OD entry
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     2
<html>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     3
<head>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     4
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     5
<title>CANOpen object dictionary Configuration</title>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     6
<style type="text/css">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     7
         table {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     8
	  border: 1px solid #200088;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     9
        }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    10
	  td {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    11
	  border: 1px solid #200088;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    12
        }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    13
         h1 {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    14
	   background: #FFDD66;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    15
	   border: 3px solid #AA0000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    16
           margin: 2em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    17
           padding: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    18
	 }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    19
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    20
         h2, h2.dico, h2.pdo {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    21
	   background: #5577FF;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    22
	   border: 1px solid #AA0000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    23
           margin: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    24
	 }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    25
	 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    26
	  h1 em.node-id {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    27
	  color: #0728FF;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    28
	  padding-left: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    29
	  padding-right: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    30
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    31
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    32
	  h1 em.type-node {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    33
	  color: #26BE08;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    34
	  padding-left: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    35
	  padding-right: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    36
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    37
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    38
	  em.pdo-mode {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    39
	  color: #26BE08;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    40
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    41
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    42
	  .entree {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    43
	  color: #AA0000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    44
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    45
         
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    46
	  .nom-var, .node-nom {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    47
	  color: #660000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    48
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    49
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    50
	</style>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    51
</head>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    52
<body text="#000000" bgcolor="#ffffff">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    53
<h1>Object dictionary for Node : </h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    54
<h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    55
<em class="node-nom">Linux_slave</em><em class="type-node">slave</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    56
</h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    57
<h2>Overview</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    58
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    59
	How to make the object dictionary of the node ?
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    60
	First, use Jaxe (command run_objdict) to edit an xml description file
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    61
of the dictionary : objdict.xml.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    62
Then, run the php program : makeobjetdict.php. You can launch php through a web browser
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    63
if you have installed a server, or, on Linux, you can launch php in command line :
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    64
php-cgi makeobjetdict.php. It compute the file objdict.c. Link it to
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    65
        your project.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    66
<br>Note : To define the node id, use in your code the function setNodeId(UNS8 nodeId)
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    67
	</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    68
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    69
	  Then the node can be connected to the network. The master must configure it
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    70
	  by sending SDO. It will write values in its index, subindex. What to configure ? 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    71
	  <ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    72
<li>Receiving heartbeats from which nodes ? Waiting time ?</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    73
<li>Emitting heartbeats or not ? time btw 2 heartbeats ? </li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    74
<li>Defining a cobId for each PDO receive and transmit</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    75
<li>How to transmit a PDO ? on synchro ? request ? event ?</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    76
<li>What variables to put in each PDO receive and transmit ? </li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    77
<li>...</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    78
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    79
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    80
	To avoid configuring the node at the connection, you can put the values directly
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    81
in the dictionary objdict.c. But it is boring and unsafe because it is too easy to make
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    82
a mistake !
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    83
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    84
      
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    85
	<h2>Number of heartbeat consumers : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    86
    <em class="entree">1</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    87
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    88
<p>This means that the node can expect heartbeats sent by 1 nodes. </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    89
<h2>Number of SDO clients : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    90
    <em class="entree">1</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    91
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    92
<p>Usualy, a slave node does not have the use of SDO clients, but
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    93
    today, for the library, you must define one. The Master, which can
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    94
    send SDO to "n" slaves nodes, must define here "n" SDO
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    95
    clients. Remember that in most cases, the SDO protocol is used by
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    96
    the master to configure a slave dictionary or read a value. In
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    97
    this use, the master is the client, and the slave is the server.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    98
<h2>Maximum objects in a PDO (receive or transmit) : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    99
    <em class="entree">8</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   100
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   101
<p>This is defining how many variables can be transmited in a
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   102
    PDO. (maximum is 8).</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   103
<p>For each variable, a table is created, so if you have less room
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   104
    in memory, put a value under 8.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   105
<h2>Number of PDO receive : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   106
    <em class="entree">3</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   107
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   108
<p>The node can receive 3 PDO.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   109
<p>The communication parameters are defined at index 0x1400 to 0x1400 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   110
<p>The mapping parameters are defined at index 0x1600 to 0x1600 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   111
<h2>Number of PDO transmit : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   112
    <em class="entree">3</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   113
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   114
<p>The node can transmit 3 PDO.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   115
<p>The communication parameters are defined at index 0x1800 to 0x1800 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   116
<p>The mapping parameters are defined at index 0x1A00 to 0x1A00 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   117
<h2>Mapped variables and tables</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   118
<p>3 tables are defined for the mapping, starting at index 0x2000, 0x6000 and 0x6200.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   119
	You must start the mapping at the beginning of one of a table, without holes in index
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   120
or subindex. For example, variables in 0x2000 and 0x2001 is ok, but variables in 0x2000 and 0x2002 is not allowed, because you are loosing room in memory. It is the same for the subindex.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   121
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   122
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   123
	The access of the variable is by default "rw" (read-write) or "ro" (read-only). A read-only variable cannot be mapped in a PDO receive.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   124
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   125
<p>Here are some others rules for the mapping : </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   126
<ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   127
<li>At an Index, you can map a variable at subindex 0x0 or 0x1, as you like.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   128
<li>To map several variables at the same Index, you must start at subindex 0x1,
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   129
	  because in this case, the subindex 0x0 contains the number of subindex.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   130
<li>You cannot map variables and tables at the same index.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   131
<li>The mapping of a table is always starting at subindex 0x1.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   132
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   133
<table class="mapping">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   134
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   135
<td>Var Name</td><td>Bits</td><td>Index</td><td>Sub-index</td><td>access</td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   136
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   137
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   138
<td><em>seconds</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2005</em></td><td><em class="entree">0x1</em></td><td><em class="entree">rw</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   139
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   140
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   141
<td><em>minutes</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2005</em></td><td><em class="entree">0x02</em></td><td><em class="entree">rw</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   142
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   143
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   144
<td><em>hours</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2005</em></td><td><em class="entree">0x3</em></td><td><em class="entree">rw</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   145
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   146
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   147
<td><em>day</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2005</em></td><td><em class="entree">0x4</em></td><td><em class="entree">rw</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   148
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   149
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   150
<td><em>null</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2002</em></td><td><em class="entree">0x0</em></td><td><em class="entree">ro</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   151
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   152
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   153
<td><em>canopenErrNB</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6000</em></td><td><em class="entree">0x0</em></td><td><em class="entree">rw</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   154
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   155
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   156
<td><em>canopenErrVAL</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6001</em></td><td><em class="entree">0x0</em></td><td><em class="entree">rw</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   157
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   158
<td>Table Name</td><td>Bits</td><td>Index</td><td>Sub-index</td><td>access</td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   159
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   160
<td><em>table_essai</em>[<em class="entree">5</em>]</td><td><em class="entree">8</em></td><td><em class="entree">0x2006</em></td><td>1 to <em class="entree">5</em></td><td><em class="entree">ro</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   161
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   162
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   163
<td><em>table_encore_un_essai</em>[<em class="entree">3</em>]</td><td><em class="entree">16</em></td><td><em class="entree">0x2001</em></td><td>1 to <em class="entree">3</em></td><td><em class="entree">ro</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   164
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   165
</table>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   166
</body>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   167
</html>