[etherlab-users] Problems with Pdo entry with index 0x0000
Carlos Jiménez Leal
carlos_jimenez at encopim.com
Wed Oct 30 13:28:17 CET 2013
Hello,
I was trying to configure a Beckhoff module (EL3356-0010) for load
cell, and part of the configuration XML I get is this:
<RxPdo Sm="2" Fixed="1" Mandatory="1">
<Index>#x1600</Index>
<Name>RMB RxPDO-Map Control</Name>
....
<Entry>
<Index>#x7000</Index>
<SubIndex>5</SubIndex>
<BitLen>1</BitLen>
<Name></Name>
<DataType>BOOL</DataType>
</Entry>
<Entry>
<Index>#x0000</Index>
<BitLen>11</BitLen>
</Entry>
</RxPdo>
<TxPdo Sm="3" Fixed="1" Mandatory="1">
<Index>#x1a00</Index>
<Name>RMB TxPDO-Map Status</Name>
<Entry>
<Index>#x0000</Index>
<BitLen>1</BitLen>
</Entry>
<Entry>
<Index>#x6000</Index>
<SubIndex>2</SubIndex>
<BitLen>1</BitLen>
<Name></Name>
<DataType>BOOL</DataType>
</Entry>
<Entry>
<Index>#x0000</Index>
<BitLen>1</BitLen>
</Entry>
<Entry>
<Index>#x6000</Index>
<SubIndex>4</SubIndex>
<BitLen>1</BitLen>
<Name></Name>
<DataType>BOOL</DataType>
</Entry>
<Entry>
<Index>#x0000</Index>
<BitLen>2</BitLen>
</Entry>
<Entry>
<Index>#x6000</Index>
<SubIndex>7</SubIndex>
<BitLen>1</BitLen>
<Name></Name>
<DataType>BOOL</DataType>
</Entry>
...
As you can see there are several PDO-Entry with 0x0 index, there are
simply GAPs in the data array.
The problem comes when I try to set the PDO's, does not correctly
calculate offsets because in the function
ecrt_domain_reg_pdo_entry_list, to scroll the list of
ec_pdo_entry_reg_t has the loop exit condition
the reg-> index, so to be 0 just without having gone through all the
records.
int ecrt_domain_reg_pdo_entry_list(ec_domain_t *domain,
const ec_pdo_entry_reg_t *regs)
{
...
EC_MASTER_DBG(domain->master, 1, "ecrt_domain_reg_pdo_entry_list("
"domain = 0x%p, regs = 0x%p)\n", domain, regs);
for (reg = regs; reg->index; reg++) {
sc = ecrt_master_slave_config_err(domain->master, reg->alias,
reg->position, reg->vendor_id, reg->product_code);
...
return 0;
}
In my case, changing the GAP index to 0x1 works, but is this output
condition correct?
--
Carlos Jiménez
ENCOPIM S.L.
Ctra. de Ripollet a Santiga 104, P.I. Els Pinetons
E-08291 RIPOLLET (Barcelona)
Tel: (+34) 935 94 23 47
Fax: (+34) 935 94 64 15
==========================================================
La información contenida en la presente transmisión es confidencial y
su
uso únicamente está permitido a su(s) destinatario(s). Si Ud. no es la
persona destinataria de la presente transmisión, rogamos nos lo
comunique de manera inmediata por teléfono (+34 935 942 347) y destruya
cualquier copia de la misma (tanto digitales como en papel).
The information contained in this transmission is confidential and is
intended only for the use of the addressee(s). If you are not the
designated recipient of this transmission, please advise us immediately
by telephone (+34 935 942 347) and destroy any copies (digital and
paper).
==========================================================
More information about the Etherlab-users
mailing list