本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star​​​​​​​

目录

1. ETherCAT 状态机

2. SOEM配置过程

2.1 IP初始态转预运行

2.2 预运行转安全运行

2.3 安全运行转运行

2.4 运行状态


1. ETherCAT 状态机

EtherCAT 设备必须支持4 种状态,负责协调主站和从站应用程序在初始化和运行时的状态
关系。
● Init:初始化,简写为 I;
● Pre‑Operational:预运行,简写为 P;
● Safe‑ Operational:安全运行,简写为 S;
● Operational:运行,简写为 O。
从初始化状态向运行状态转化时,必须按照“初始化→预运行→安全运行→运行”的顺序
转化,不可以越级。 从运行状态返回时可以越级转化。

状态的转化操作和初始化过程如下表:

2. SOEM配置过程

2.1 IP初始态转预运行

调用ec_config_init(0),配置地址、SM等。函数结束后,应该已经进入预运行状态

2.2 预运行转安全运行

自定义PDO映射

/*
● SV660N 的 PDO 配置遵循流程:
PDO 的映射配置遵循特定的流程,具体按如下步骤执行:
1. PDO配置映射组。1C12h(或1C13h)的00h子索引写入0;
a. 清除原有的映射组。对1C12h(或1C13h)的00h子索引写入“0”即可清除该PDO配
置组;
b. 写入PDO映射组。按场景需求写入映射配置组,1C12h中预写入1600h/
1701h~1705h的值;1C13h中预写入1A00h/1B01h~1B04h的值。注意:只有
1600h和1A00h是可配置映射组,其他是固定映射配置;
c. 写入该PDO映射组总个数到1C12h(或0x1C13h)对象子索引0;
2. 配置PDO映射对象。1600h(或1A00h)的00h子索引写入0。
a. 清除原有的映射对象。对1600h(或1A00h)的00h子索引写入“0”即可清除该PDO
映射配置;
b. 写入PDO映射内容。按XML文件中的对象参数定义,分别写入到映射参数子索引
1~10中;只有支持映射的对象才能配置为PDO映射内容。
c. 写入PDO映射对象总个数,将步骤b中写入的映射个数写入到子索引0中。
说明
● PDO配置仅可以在EtherCAT通讯状态机处于预运行(Pro‑Operation,面板显示2)的时候
进行设置,否则报错。
● PDO配置参数不可存储在e2prom中,因此,每次上电后,请务必重新配置映射对象,
否则,映射对象为伺服驱动器默认参数。
*/
void process_data_config()
{int size = 2;u8_t     b;uint16_t w,ind;uint32_t dw;for(int slave = 1; slave <= *ecx_context.slavecount; slave++){//rpdo------------//1c12.0b = 0;ec_SDOwrite(slave, 0x1c12, 0x00, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);w = htoes(0x1600);ec_SDOwrite(slave, 0x1c12, 0x01, FALSE, sizeof(w), &w, EC_TIMEOUTRXM);//1600ind = 0;b = 0;ec_SDOwrite(slave, 0x1600, 0, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);dw = htoel(0x60400010);//6040h(控制字)ec_SDOwrite(slave, 0x1600, ++ind, FALSE, sizeof(dw), &dw, EC_TIMEOUTRXM);dw = htoel(0x607a0020);//607Ah(目标位置)ec_SDOwrite(slave, 0x1600, ++ind, FALSE, sizeof(dw), &dw, EC_TIMEOUTRXM);dw = htoel(0x607c0020);//607Ch(原点偏移量)ec_SDOwrite(slave, 0x1600, ++ind, FALSE, sizeof(dw), &dw, EC_TIMEOUTRXM);b = ind;ec_SDOwrite(slave, 0x1600, 0, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);//1c12.0b = 1;ec_SDOwrite(slave, 0x1c12, 0x00, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);//tpdo-------------//1c13.0b = 0;ec_SDOwrite(slave, 0x1c13, 0x00, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);w = htoes(0x1a00);ec_SDOwrite(slave, 0x1c13, 0x01, FALSE, sizeof(w), &w, EC_TIMEOUTRXM);//1a00ind = 0;b = 0;ec_SDOwrite(slave, 0x1a00, 0, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);dw = htoel(0x603F0010);//603Fh(错误码)ec_SDOwrite(slave, 0x1a00, ++ind, FALSE, sizeof(dw), &dw, EC_TIMEOUTRXM);dw = htoel(0x60410010);//6041h(状态字)ec_SDOwrite(slave, 0x1a00, ++ind, FALSE, sizeof(dw), &dw, EC_TIMEOUTRXM);dw = htoel(0x60640020);//6064h(位置反馈)ec_SDOwrite(slave, 0x1a00, ++ind, FALSE, sizeof(dw), &dw, EC_TIMEOUTRXM);b = ind;ec_SDOwrite(slave, 0x1a00, 0, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);//1c13.0b = 1;ec_SDOwrite(slave, 0x1c13, 0x00, FALSE, sizeof(b), &b, EC_TIMEOUTRXM);}
}

定义FMMU

ec_config_map(IOmap)该函数会请求进入安全运行状态

2.3 安全运行转运行

驱动器必须按照标准 402 协议规定的流程引导伺服驱动器,伺服驱动器才可运行于指定的状态。下图为CiA402 状态机切换图:

启动的流程为:向6040PDO中依次写入0x6, 0x7, 0xF。如果有故障,向 6040PDO中写入0x80。

然后通过下列代码发送命令进入运行状态。需要注意的是,如果RPDO中映射了6040,对应的IOMAP中必须写入正确的配置命令(0xf)。

         ec_slave[0].state = EC_STATE_OPERATIONAL;/* send one valid process data to make outputs in slaves happy*/ec_send_processdata();ec_receive_processdata(EC_TIMEOUTRET);/* request OP state for all slaves */ec_writestate(0);chk = 200;/* wait for all slaves to reach OP state */do{ec_send_processdata();ec_receive_processdata(EC_TIMEOUTRET);ec_statecheck(0, EC_STATE_OPERATIONAL, 50000);}while (chk-- && (ec_slave[0].state != EC_STATE_OPERATIONAL));

2.4 运行状态

进行运行态后就是通过

ec_send_processdata();
ec_receive_processdata(EC_TIMEOUTRET);

循环收发过程数据了。

Soem配置汇川SV660N相关推荐

  1. TwinCAT3第三方伺服电机——汇川SV660N使用

    目录 一.第三方伺服在TC3中配置和使用 二.xml文件拷贝 ​编辑 三.IO中扫描伺服 四.工程测试 五.汇川伺服参数设置说明 一.第三方伺服在TC3中配置和使用 在倍福控制系统中使用第三方伺服可以 ...

  2. 倍福:TwincAT配置汇川EtherCAT伺服,NC有数值变化,但电机不转,NC报错17744

    汇川伺服配置之后,编码器数值有变化,电机不转,报错17744 原因:在勾选的PDO参数中,存在力矩限制的值,如下所示 默认是没有做变量链接,因此限制的力矩是0,此时伺服点动因为不能大于力矩限制,因此伺 ...

  3. 汇川SV660N与基恩士 KV7500 控制器调试说明

    1. 伺服相关部分配置 1.1 伺服相关版本 SV660N 试机建议使用"SV660N-Ecat_v0.09.xml"及以上设备描述文件. SV660N 单板软件版本建议为&quo ...

  4. CK-GW208-EC与汇川PLC配置走EtherCAT通讯指南

    CK-GW208-EC这款产品是晨控智能一款工业级 IO-LINK 主站网关,支持 EtherCat 工业协议.可通过以太网接口,对 IO-LINK 从站设备进行控制. CK-GW208-EC 是一款 ...

  5. CK-FR208-EC与汇川PLC配置走EtherCAT通讯指南

    CK-FR208-EC与汇川PLC配置走EtherCAT通讯指南 CK-FR208-EC是一款支持标准工业Ethercat协议的多通道工业RFID读写器,读卡器工作频率为13.56MHZ,支持对I-C ...

  6. 汇川Inoproshop软件CIA402轴基本配置

    添加伺服从站后,双击"轴"会出现轴配置界面,下面按照由上至下的顺序依次对轴配置界面选项卡功能进行介绍. 一.轴基本设置 轴基本设置中包括虚轴/实轴模式两种工作模式,其定义如下表所述 ...

  7. 倍福PLC控制汇川伺服需要配置的COE参数

    使用第三方伺服,除了需要相关的电机文件外,还需要手动配置一些启动的COE参数,比如控制模式.电机正反转方向.伺服数字输入端子等,本文以汇川伺服为例配置启动时的COE参数. 操作流程 1.1. IS62 ...

  8. 汇川PLC模块添加和伺服配置

    1.DeviceNetwork configutationEtherCAT Config 2.右侧选择需要添加的模块,导轨上的 3.添加伺服驱动器:勾选ETtherCAT主站 4.右侧添加相应的伺 ...

  9. 汇川PLC单位换算及电子齿轮比

    本文以汇川H5U为例进行说明轴控的单位换算,经过改进后,H5U的设置界面更加合理及容易理解,汇川中型PLC-AM400/AM600系列的设置与此类似,界面也相同. H5U支持本地轴控(发脉冲)和Eth ...

  10. 汇川H5U计数器轴编程应用(高速计数和测速应用)

    H5U编码器轴和脉冲轴相关应用测试请参看下面文章: H5U PLC本地脉冲轴和本地编码器轴测试_RXXW_Dor的博客-CSDN博客H5U PLC如何通过EtherCAT总线控制伺服运动,请参看下面的 ...

最新文章

  1. 构建一个运行在Azure虚拟机上的MySQL Spring Boot应用程序
  2. asp利用dictionary创建二维数组
  3. 简明 XHTML 1.0 参考手册
  4. 有机晶体数据库_Cambridge Structural Database 2017 晶体结构分析软件分享
  5. 第38章:MongoDB-集群--Replica Sets(副本集)---多机的搭建
  6. (转)Android权限列表permission说明 (一)
  7. 【清华ACL2020长文】KdConv:多领域知识驱动的中文多轮对话数据集
  8. ZooKeeper、Eureka、Consul 、Nacos,微服务注册中心怎么选?
  9. html大小和浏览器可视区域一样吗,浏览器窗口可视区域大小和网页尺寸和网页卷去的距离与偏移量...
  10. python调用windows api_python 调用win32 api
  11. CAD两条曲线如何连接成平滑的波浪线?
  12. 微信添加好友查找失败服务器繁忙,微信加载联系人失败_微信添加好友失败有哪些原因...
  13. 华为atn950b指导手册_全新原包装华为ATN950B 整机 传输设备
  14. postman使用手册
  15. ArcBlock 赴美国华盛顿州议会作证支持区块链立法
  16. 锐捷商通v6数据库服务器位置,热烈庆祝我校开通IPv6资源
  17. c语言平均绩点_【干货】你们关心的GPA算法来了!
  18. nvcc与nvidia
  19. 机器学习模型——回归模型
  20. JDK各个版本发布时间

热门文章

  1. Kepserver如何连接InTouch
  2. 锐捷 重启计算机,提示“重启计算机后才能使用锐捷客户端”常用解决方法
  3. 重庆c语言程序二级考试,优·历届重庆市计算机C语言二级考试试题及答案.doc
  4. ActivityGroup的简单用法
  5. unity3d开发记录
  6. unity3d面试题
  7. dll.dll病毒及解决办法
  8. 电工杯B题小代码分享
  9. 数学建模之统计回归模型详解
  10. AIDL的简单使用和注意事项