SOEM 源码解析 ecx_ARMW
/* 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相关推荐
- EtherCAT主站SOEM源码解析----ecx_siiPDO()
1.从站EEPROM的PDO信息 从站EEPROM存储的PDO信息如下如所示: TxPDO的类型名为50(0x0032),RxPDO的类型名为51(0x0033). 每个PDO占用的EEPROM字节数 ...
- EtherCAT主站SOEM源码解析----分布时钟DC
分布时钟(DC,Dsitributed Clock)可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行. 1.DC从站 支持分布式时钟的从站称为DC从站,同步原理如下所示: ...
- SOEM 源码解析 ecx_LWR
/* LWR "logical memory write" primitive. Blocking.* 逻辑写(LWR) Logical write 原语 阻塞* @param[i ...
- SOEM 源码解析 ecx_FPWR
/* FPWR "configured address write" primitive. Blocking.* 配置的地址物理写(FPWR) Configured address ...
- SOEM 源码解析 ecx_FPWRw
/* FPWR "configured address write" primitive. Blocking.* 配置的地址物理写(FPWR) Configured address ...
- SOEM 源码解析 ecx_LRD
/* LRD "logical memory read" primitive. Blocking.* 逻辑读(LRD) Logical read 原语 阻塞* @param[in] ...
- SOEM 源码解析 ecx_FRMW
/* FPRMW "configured address read, multiple write" primitive. Blocking.* 配置的地址物理读多次写(FRMW) ...
- SOEM 源码解析 ecx_set_slaves_to_default
寄存器0x0101 寄存器0x0200 寄存器0x0300 寄存器0x0600 寄存器0x0800 寄存器0x0981 寄存器0x0910 寄存器0x0930 寄存器0x0934 寄存器0x0103 ...
- SOEM 源码解析 ecx_map_sii
/* find SII mapping of slave* 查找从站的 SII 映射* @param[in] context = context struct* 上下文结构体* @param[in] ...
- SOEM 源码解析 ecx_lookup_prev_sii
/* 通过SII[从站信息接口(Slave Information Interface)]查找从站* If slave has SII and same slave ID done before, u ...
最新文章
- 数组名和数组名取地址的区别
- CentOS7 NTP客户端和服务器安装和使用
- python construct_python入门第一步
- Windows IIS配置Jsp和php环境方法
- P11 非线性系统-《Matlab/Simulink与控制系统仿真》程序指令总结
- 常用的渗透测试工具SQLMap
- Nexus入门【转】
- lightoj 1224
- Django之orm查询
- docker删除本地所有镜像
- htmlunit抓取js执行后的网页源码
- 4python全栈之路系列之scrapy爬虫s
- Matlab条形图bar横坐标间距设置
- redis版本_Redis—重要历史版本
- 安卓开发学习之锁屏的实现
- elasticsearch学习笔记--聚合函数篇
- 华盛顿大学计算机语言学,华盛顿大学人工智能专业排名2020年
- 如何选择适合自己的手游创业项目?
- [昇腾CANN自定义算子]TIK数据搬运data_move
- Word ActiveX控件的测试
热门文章
- 人人都是webpack使用者,小白从入门到精通秒变大神
- 如何申请文华财经wh8模拟账号?
- PX4二次开发——uorb订阅
- docker 添加/etc/docker/daemon.json后启动失败。
- springcloud实战之商城需求与API设计(六)
- Codeforces 382B Number Busters(数论)
- 每个Java应用容器都要包含tomcat_精心整理全网最全Tomcat面试专题及答案(共19题,含答案解析),tomcat面试看这篇就够了!...
- 干货!超实用的平面设计学习手册!
- 基于cocos creator游戏引擎开发2D射击联机游戏的开题报告,给出引用的参考文献...
- 在CentOS上部署一个简单的Python实现的UDP服务(包含MySQL数据库写入)