examples/AppliMaster_Linux/objdict.html
author etisserant
Thu, 10 Aug 2006 17:38:53 +0200
changeset 45 45885c4e3e56
parent 0 4472ee7c6c3e
permissions -rw-r--r--
Updated doc
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
         h1 {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     8
	   background: #FFDD66;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     9
	   border: 3px solid #AA0000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    10
           margin: 2em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    11
           padding: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    12
	 }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    13
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    14
         h2, h2.dico, h2.pdo {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    15
	   background: #5577FF;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    16
	   border: 1px solid #AA0000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    17
           margin: 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
	  h1 em.node-id {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    21
	  color: #0728FF;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    22
	  padding-left: 1em;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    23
	  padding-right: 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.type-node {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    27
	  color: #26BE08;
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
	  em.pdo-mode {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    33
	  color: #26BE08;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    34
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    35
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    36
	  .entree {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    37
	  color: #AA0000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    38
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    39
         
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    40
	  .nom-var, .node-nom {
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    41
	  color: #660000;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    42
	  }
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    43
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    44
	</style>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    45
</head>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    46
<body text="#000000" bgcolor="#ffffff">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    47
<h1>Object dictionary for Node : </h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    48
<h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    49
<em class="node-nom">Master</em><em class="type-node">master</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    50
</h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    51
<h2>Overview</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    52
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    53
	How to make the object dictionary of the node ?
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    54
	First, use Jaxe (command run_objdict) to edit an xml description file
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    55
of the dictionary : objdict.xml.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    56
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
    57
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
    58
php-cgi makeobjetdict.php. It compute the file objdict.c. Link it to
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    59
        your project.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    60
<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
    61
	</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    62
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    63
	  Then the node can be connected to the network. The master must configure it
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    64
	  by sending SDO. It will write values in its index, subindex. What to configure ? 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    65
	  <ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    66
<li>Receiving heartbeats from which nodes ? Waiting time ?</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    67
<li>Emitting heartbeats or not ? time btw 2 heartbeats ? </li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    68
<li>Defining a cobId for each PDO receive and transmit</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    69
<li>How to transmit a PDO ? on synchro ? request ? event ?</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    70
<li>What variables to put in each PDO receive and transmit ? </li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    71
<li>...</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    72
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    73
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    74
	To avoid configuring the node at the connection, you can put the values directly
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    75
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
    76
a mistake !
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    77
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    78
      
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    79
	<h2>Number of heartbeat consumers : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    80
    <em class="entree">1</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    81
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    82
<p>This means that the node can expect heartbeats sent by 1 nodes. </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    83
<h2>Number of SDO clients : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    84
    <em class="entree">10</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    85
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    86
<p>Usualy, a slave node does not have the use of SDO clients, but
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    87
    today, for the library, you must define one. The Master, which can
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    88
    send SDO to "n" slaves nodes, must define here "n" SDO
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    89
    clients. Remember that in most cases, the SDO protocol is used by
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    90
    the master to configure a slave dictionary or read a value. In
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    91
    this use, the master is the client, and the slave is the server.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    92
<h2>Maximum objects in a PDO (receive or transmit) : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    93
    <em class="entree">8</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    94
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    95
<p>This is defining how many variables can be transmited in a
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    96
    PDO. (maximum is 8).</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    97
<p>For each variable, a table is created, so if you have less room
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    98
    in memory, put a value under 8.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    99
<h2>Number of PDO receive : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   100
    <em class="entree">3</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   101
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   102
<p>The node can receive 3 PDO.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   103
<p>The communication parameters are defined at index 0x1400 to 0x1400 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   104
<p>The mapping parameters are defined at index 0x1600 to 0x1600 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   105
<h2>Number of PDO transmit : 
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 transmit 3 PDO.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   109
<p>The communication parameters are defined at index 0x1800 to 0x1800 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   110
<p>The mapping parameters are defined at index 0x1A00 to 0x1A00 + 2</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   111
<h2>Mapped variables and tables</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   112
<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
   113
	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
   114
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
   115
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   116
<p>Here are some others rules for the mapping : </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   117
<ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   118
<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
   119
<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
   120
	  because in this case, the subindex 0x0 contains the number of subindex.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   121
<li>You cannot map variables and tables at the same index.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   122
<li>The mapping of a table is always starting at subindex 0x1.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   123
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   124
<table class="mapping">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   125
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   126
<td>Name</td><td>Bits</td><td>Index</td><td>Sub-index</td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   127
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   128
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   129
<td><em>canopenErrNB_node5</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6000</em></td><td><em class="entree">0x0</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   130
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   131
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   132
<td><em>canopenErrVAL_node5</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6001</em></td><td><em class="entree">0x0</em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   133
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   134
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   135
<td><em>second</em></td><td><em class="entree">8</em></td><td><em class="entree">0x6002</em></td><td><em class="entree">0x1</em></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>minutes</em></td><td><em class="entree">8</em></td><td><em class="entree">0x6002</em></td><td><em class="entree">0x02</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>hour</em></td><td><em class="entree">8</em></td><td><em class="entree">0x6002</em></td><td><em class="entree">0x3</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>day</em></td><td><em class="entree">8</em></td><td><em class="entree">0x6002</em></td><td><em class="entree">0x4</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>canopenErrNB</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6003</em></td><td><em class="entree">0x01</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>canopenErrVAL</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6003</em></td><td><em class="entree">0x02</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
</table>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   153
</body>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   154
</html>