[etherlab-users] EtherCAT master 1.5.2: ec_sync_info_t
Michael Wenz
Michael.Wenz at itk-engineering.de
Wed Jul 3 10:41:34 CEST 2013
Hello,
I am using EtherCAT 1.5.2. The slave is from Beckhoff. It has the following configuration:
/* Master 0, Slave 5, "EK1828"
* Vendor ID: 0x00000002
* Product code: 0x07242c52
* Revision number: 0x00110000
*/
ec_pdo_entry_info_t slave_5_pdo_entries[] = {
{0x0000, 0x00, 4}, /* Pad */
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
{0x7040, 0x01, 1}, /* Output */
{0x7050, 0x01, 1}, /* Output */
{0x7060, 0x01, 1}, /* Output */
{0x7070, 0x01, 1}, /* Output */
{0x0000, 0x00, 4}, /* Pad */
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x0000, 0x00, 4}, /* Pad */
};
ec_pdo_info_t slave_5_pdos[] = {
{0x1600, 2, slave_5_pdo_entries + 0}, /* Channel 5 */
{0x1601, 1, slave_5_pdo_entries + 2}, /* Channel 6 */
{0x1602, 1, slave_5_pdo_entries + 3}, /* Channel 7 */
{0x1603, 1, slave_5_pdo_entries + 4}, /* Channel 8 */
{0x1604, 1, slave_5_pdo_entries + 5}, /* Channel 9 */
{0x1605, 1, slave_5_pdo_entries + 6}, /* Channel 10 */
{0x1606, 1, slave_5_pdo_entries + 7}, /* Channel 11 */
{0x1607, 2, slave_5_pdo_entries + 8}, /* Channel 12 */
{0x1a00, 1, slave_5_pdo_entries + 10}, /* Channel 1 */
{0x1a01, 1, slave_5_pdo_entries + 11}, /* Channel 2 */
{0x1a02, 1, slave_5_pdo_entries + 12}, /* Channel 3 */
{0x1a03, 2, slave_5_pdo_entries + 13}, /* Channel 4 */
};
ec_sync_info_t slave_5_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_5_pdos + 0, EC_WD_ENABLE},
{1, EC_DIR_OUTPUT, 4, slave_5_pdos + 4, EC_WD_ENABLE},
{2, EC_DIR_INPUT, 4, slave_5_pdos + 8, EC_WD_DISABLE},
{0xff}
};
How is the array slave_5_syncs determined?
First I have tried following array in my implementation.
ec_sync_info_t slave_5_newsyncs[] = {
{0, EC_DIR_OUTPUT, 8, slave_5_pdos + 0, EC_WD_ENABLE},
{1, EC_DIR_INPUT, 4, slave_5_pdos + 8, EC_WD_DISABLE},
{0xff}
};
But then it is only possible to write the outputs. It is not possible to read the inputs. The input values are always 0. But when using slave_5_syncs it is also possible to read the inputs.
Thank you in advance.
Best regards
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20130703/0d8e849f/attachment-0002.htm>
More information about the Etherlab-users
mailing list