1. EC_SdoWrite/EC_SdoRead 功能块用于通过SDO读/写EtherCAT从站的对象。
2. 指令调用位置及图标:
3. 描述 (1) 使用EC_SdoRead时EN需要一直处于ON状态 (2) 正确的填写wIndex和bySubIndex,确保从站中存在该对象否则指令会报错 (3) 触发xExecute一个上升沿指令开始执行SDO通讯。 (4) SDO是非实时通信而且通讯时长却决于网络状态,数据块大小和从站状态。如果未能在dwTimeOut时长内完成通讯则会报错ETC_TIME_OUT (5) 中间可以通过xAbort中断指令 (6) 通讯成功则pBuffer指向的指定长度的数据将被写入到从站对象中
4. 指令输入输出说明 符号 | | | | | | 上升沿:启动从站参数的读取.为了在之后再次释放内部通道,
实例必须被xExecute:调用至少一次= FALSE. | | | | | | | | | | | | | | | 监视时间的定义,以毫秒为单位.如果在此时间到期时参数的写入尚未完成,则输出错误消息. | | | | | | | 输出 | | | | | | | | | | | | 有关xError显示的错误原因的信息,例如超时时的ETC_CO_TIMEOUT | | | | | | |
5. 错误说明 dwSdoAbort:输出的是标准CANopen的SDO报错信息
6. 应用举例及使用注意事项 (1) 使用此库的功能块PLC固件需要在2.68以及上 (2) 编程软件版本需要在V2.29及以上 (3) 需要读写的参数不需要在组态中添加,也不需要勾选启用专家设置
此处设备ID即组态中的ID号 我们需要写的地址位16#6098:0 也就是回原模式这个参数,所以wIndex=16#6098(10#24728);bySubindex=0 超时时间=100ms 写入起始地址=VB2350 写入字节长度=2
触发指令,执行结果如下
写入后,我们再把16#6098:0读上来
|