examples/gene_SYNC_HCS12/objdict.html
author lbessard
Fri, 16 Jun 2006 14:24:59 +0200
changeset 31 a82b70738e5c
parent 0 4472ee7c6c3e
permissions -rw-r--r--
Code clean-up and fixed xenomai compile problem
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-id">0x03</em>(default) 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    56
	<em class="node-nom">Gene_SYNC</em><em class="type-node">slave</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    57
</h1>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    58
<h2>Overview</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    59
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    60
	How to make the object dictionary of the node ?
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    61
	First, use Jaxe (command run_objdict) to edit an xml description file
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    62
of the dictionary : objdict.xml.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    63
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
    64
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
    65
php-cgi makeobjetdict.php. It compute the file objdict.c. Link it to
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    66
        your project.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    67
<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
    68
	</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    69
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    70
	  Then the node can be connected to the network. The master must configure it
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    71
	  by sending SDO. It will write values in its index, subindex. What to configure ? 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    72
	  <ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    73
<li>Receiving heartbeats from which nodes ? Waiting time ?</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    74
<li>Emitting heartbeats or not ? time btw 2 heartbeats ? </li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    75
<li>Defining a cobId for each PDO receive and transmit</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    76
<li>How to transmit a PDO ? on synchro ? request ? event ?</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    77
<li>What variables to put in each PDO receive and transmit ? </li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    78
<li>...</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    79
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    80
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    81
	To avoid configuring the node at the connection, you can put the values directly
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    82
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
    83
a mistake !
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    84
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    85
      
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    86
	<h2>Number of heartbeat consumers : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    87
    <em class="entree">1</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    88
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    89
<p>This means that the node can expect heartbeats sent by 1 nodes. </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    90
<h2>Number of SDO clients : 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    91
    <em class="entree">1</em>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    92
</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    93
<p>Usualy, a slave node does not have the use of SDO clients, but
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    94
    today, for the library, you must define one. The Master, which can
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    95
    send SDO to "n" slaves nodes, must define here "n" SDO
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    96
    clients. Remember that in most cases, the SDO protocol is used by
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    97
    the master to configure a slave dictionary or read a value. In
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    98
    this use, the master is the client, and the slave is the server.</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    99
<h2>Mapped variables and tables</h2>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   100
<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
   101
	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
   102
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
   103
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   104
<p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   105
	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
   106
</p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   107
<p>Here are some others rules for the mapping : </p>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   108
<ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   109
<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
   110
<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
   111
	  because in this case, the subindex 0x0 contains the number of subindex.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   112
<li>You cannot map variables and tables at the same index.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   113
<li>The mapping of a table is always starting at subindex 0x1.</li>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   114
</ul>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   115
<table class="mapping">
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   116
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   117
<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
   118
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   119
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   120
<td><em>canopenErrNB</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6000</em></td><td><em class="entree">0x01</em></td><td><em class="entree"></em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   121
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   122
<tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   123
<td><em>canopenErrVAL</em></td><td><em class="entree">32</em></td><td><em class="entree">0x6000</em></td><td><em class="entree">0x02</em></td><td><em class="entree"></em></td>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   124
</tr>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   125
<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
   126
</table>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   127
</body>
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   128
</html>