/* APRMW "auto increment address read, multiple write" primitive. Blocking.* 自增式物理读多次写(ARMW) Auto increment physical read multiple write 原语 阻塞* @param[in] port        = port context struct*                          端口(port)结构体* @param[in]  ADP        = Address Position, each slave ++, slave that has 0 reads, following slaves write.*                          地址位置,每个从站++,有0的从站读,跟随从站写* @param[in]  ADO        = Address Offset, slave memory address*                          地址偏移,从站物理内存地址* @param[in]  length     = length of databuffer*                          数据缓冲区的长度*                          DATA 数据区域的长度* @param[out] data       = databuffer to put slave data in*                          要放入从站数据的数据缓冲区* @param[in]  timeout    = timeout in us, standard is EC_TIMEOUTRET*                          超时时间[单位:us(微秒)],标准是EC_TIMEOUTRET[=2000us(微秒)]* @return Workcounter or EC_NOFRAME*  返回值  工作计数器 或 EC_NOFRAME(无数据帧返回=-1)*/
int ecx_ARMW(ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
{int wkc;/* 工作计数器 */uint8 idx;/* IDX 索引 *//* get fresh index *//* 获取最新索引 */idx = /* IDX 索引 */ecx_getindex(//获取新的帧标识符索引并分配相应的发送缓存区port);/* 端口(port)结构体 *//* setup datagram *//*设置数据报*/ecx_setupdatagram(//在标准以太网帧中生成和设置 EtherCAT 数据报port,/* 端口(port)结构体 */&(port->txbuf/* 发送缓存区 */[idx/* IDX 索引 */]),EC_CMD_ARMW, /* 自增式物理读多次写(ARMW) *//* Auto increment physical read multiple write */idx, /* IDX 索引 */ADP, /* 地址位置 */ADO, /* 地址偏移 */length, /* 数据缓冲区的长度 */data); /* 要放入从站数据的数据缓冲区 *//* send data and wait for answer *//* 发送数据并等待应答 */wkc = /* 工作计数器 */ecx_srconfirm(// 发送和接收帧(阻塞)port,/* 端口(port)结构体 */idx,/* IDX 索引 */timeout); /* 超时时间[单位:us(微秒)] */if (wkc/* 工作计数器 */ > 0){memcpy(data,/* 要放入从站数据的数据缓冲区 */&(port->rxbuf/* 接收缓冲区 */[idx/* IDX 索引 */][EC_HEADERSIZE/* EtherCAT 报头大小=12U */]),length);/* 数据缓冲区的长度 */}/* clear buffer status *//* 清除缓冲区状态 */ecx_setbufstat(// 设置发送缓存区(rx buffer)状态port, /* 端口(port)结构体 */idx, /* IDX 索引 */EC_BUF_EMPTY);/* 缓存区状态:空=0 */return wkc;/* 工作计数器 */
}

SOEM 源码解析 ecx_ARMW相关推荐

  1. EtherCAT主站SOEM源码解析----ecx_siiPDO()

    1.从站EEPROM的PDO信息 从站EEPROM存储的PDO信息如下如所示: TxPDO的类型名为50(0x0032),RxPDO的类型名为51(0x0033). 每个PDO占用的EEPROM字节数 ...

  2. EtherCAT主站SOEM源码解析----分布时钟DC

    分布时钟(DC,Dsitributed Clock)可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行. 1.DC从站 支持分布式时钟的从站称为DC从站,同步原理如下所示: ...

  3. SOEM 源码解析 ecx_LWR

    /* LWR "logical memory write" primitive. Blocking.* 逻辑写(LWR) Logical write 原语 阻塞* @param[i ...

  4. SOEM 源码解析 ecx_FPWR

    /* FPWR "configured address write" primitive. Blocking.* 配置的地址物理写(FPWR) Configured address ...

  5. SOEM 源码解析 ecx_FPWRw

    /* FPWR "configured address write" primitive. Blocking.* 配置的地址物理写(FPWR) Configured address ...

  6. SOEM 源码解析 ecx_LRD

    /* LRD "logical memory read" primitive. Blocking.* 逻辑读(LRD) Logical read 原语 阻塞* @param[in] ...

  7. SOEM 源码解析 ecx_FRMW

    /* FPRMW "configured address read, multiple write" primitive. Blocking.* 配置的地址物理读多次写(FRMW) ...

  8. SOEM 源码解析 ecx_set_slaves_to_default

    寄存器0x0101 寄存器0x0200 寄存器0x0300 寄存器0x0600 寄存器0x0800 寄存器0x0981 寄存器0x0910 寄存器0x0930 寄存器0x0934 寄存器0x0103 ...

  9. SOEM 源码解析 ecx_map_sii

    /* find SII mapping of slave* 查找从站的 SII 映射* @param[in] context = context struct* 上下文结构体* @param[in] ...

  10. SOEM 源码解析 ecx_lookup_prev_sii

    /* 通过SII[从站信息接口(Slave Information Interface)]查找从站* If slave has SII and same slave ID done before, u ...

最新文章

  1. 数组名和数组名取地址的区别
  2. CentOS7 NTP客户端和服务器安装和使用
  3. python construct_python入门第一步
  4. Windows IIS配置Jsp和php环境方法
  5. P11 非线性系统-《Matlab/Simulink与控制系统仿真》程序指令总结
  6. 常用的渗透测试工具SQLMap
  7. Nexus入门【转】
  8. lightoj 1224
  9. Django之orm查询
  10. docker删除本地所有镜像
  11. htmlunit抓取js执行后的网页源码
  12. 4python全栈之路系列之scrapy爬虫s
  13. Matlab条形图bar横坐标间距设置
  14. redis版本_Redis—重要历史版本
  15. 安卓开发学习之锁屏的实现
  16. elasticsearch学习笔记--聚合函数篇
  17. 华盛顿大学计算机语言学,华盛顿大学人工智能专业排名2020年
  18. 如何选择适合自己的手游创业项目?
  19. [昇腾CANN自定义算子]TIK数据搬运data_move
  20. Word ActiveX控件的测试

热门文章

  1. 人人都是webpack使用者,小白从入门到精通秒变大神
  2. 如何申请文华财经wh8模拟账号?
  3. PX4二次开发——uorb订阅
  4. docker 添加/etc/docker/daemon.json后启动失败。
  5. springcloud实战之商城需求与API设计(六)
  6. Codeforces 382B Number Busters(数论)
  7. 每个Java应用容器都要包含tomcat_精心整理全网最全Tomcat面试专题及答案(共19题,含答案解析),tomcat面试看这篇就够了!...
  8. 干货!超实用的平面设计学习手册!
  9. 基于cocos creator游戏引擎开发2D射击联机游戏的开题报告,给出引用的参考文献...
  10. 在CentOS上部署一个简单的Python实现的UDP服务(包含MySQL数据库写入)