examples/AppliSlave_Linux/objdict.html
author lbessard
Wed, 10 Jan 2007 17:42:34 +0100
changeset 64 c72dd78e547f
parent 0 4472ee7c6c3e
permissions -rw-r--r--
Bug reported by Dean corrected
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>Mapped variables and tables</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   106
<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
   107
	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
   108
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
   109
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   110
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   111
	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
   112
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   113
<p>Here are some others rules for the mapping : </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   114
<ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   115
<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
   116
<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
   117
	  because in this case, the subindex 0x0 contains the number of subindex.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   118
<li>You cannot map variables and tables at the same index.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   119
<li>The mapping of a table is always starting at subindex 0x1.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   120
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   121
<table class="mapping">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   122
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   123
<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
   124
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   125
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   126
<td><em>seconds</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2000</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
   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>minutes</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2000</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
   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>hours</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2000</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
   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>day</em></td><td><em class="entree">8</em></td><td><em class="entree">0x2000</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
   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>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
   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>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
   142
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   143
<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
   144
</table>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   145
</body>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   146
</html>