快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

codesys中EtherCAT总线状态判断

AM600 π³朱子文 16992℃ 0评论

编写EtherCAT状态判断功能块,方便以后调用,第一部分代码为变量部分,第二部分代码为主体部分。

//ETHERCAT
(*
(Ethercat.xConfigFinished) AND (NOT ETHERCAT.xError) AND (Ethercat.xDistributedClockInSync)
A) 通讯正常时标准位状态:
xConfigFinished= TRUE;
xDistributedClockInSync = TRUE;
xError= False。
B)网络中未接任何从站或从站不全
xConfigFinished= False;
xDistributedClockInSync = False;
xError=TRUE。
C) 通讯正常后将主站和第一个从站之间网线断开,即和所有从站数据中断
xConfigFinished = TRUE;
xDistributedClockInSync= False;
xError=False。
D)通讯正常后将第一个从站和第二个从站之间网线断开,即断开所有具有DC功能的从站
xConfigFinished = TRUE;
xDistributedClockInSync= False;
xError=False。
E)通讯正常后将第二个从站和最后一个从站之间网线断开。
xConfigFinished = TRUE;
xDistributedClockInSync= TRUE;
xError=False。
);
//(Ethercat.xConfigFinished) AND (Ethercat.xDistributedClockInSync) AND (NOT ETHERCAT.xError);
(
定义:
pSlave: POINTER TO ETCSlave;
编程:
pSlave := Ethercat_Master.FirstSlave;
WHILE pSlave <> 0 DO
pSlave^();
IF pSlave^.wState = ETC_SLAVE_STATE.ETC_SLAVE_OPERATIONAL THEN
;
END_IF
pSlave := pSlave^.NextInstance;
END_WHILE
首先通过EtherCAT_Master.FirstSlave找到主站的第一个从站。
在‘WHILE’循环中调用各个实例,由此确定wState,然后检查状态。通过pSlave^.NextInstance找到指向下一个从站的指针。在列表结尾出指针为空,循环结束。
*)

转载请注明:燕骏博客 » codesys中EtherCAT总线状态判断

赞赏作者

微信赞赏支付宝赞赏

喜欢 (10)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址