Codesys通过程序判断EtherCAT网络状态
前言很多时候,我们需要在触摸屏上显示设备的EtherCAT下的网络状态,是否从站断线等信息。睡觉前再分享一个实际项目中的程序段~
正文
1.Code Show
PROGRAM Pro_Motion
VAR
pSlave : POINTER TO ETCSlave;
DiOverTime : DINT; //超时时间
DiMaxOverTime: DINT; //最长时间
iNodeID : INT ; //EtherCAT节点
iErrorNodeID : INT ; //EtherCAT错误节点
END_VAR
{region 'Check EtherCAT Network'}
iNodeID := 1 ;
pSlave:= EtherCAT_Master_Leadshine_A.FirstSlave;//主站名称
WHILE pSlave <> 0 DO
pSlave^();
IF pSlave^.wState = ETC_SLAVE_STATE.ETC_SLAVE_OPERATIONAL THEN
iNodeID := iNodeID + 1; iErrorNodeID := 0 ;
DiMaxOverTime := DiOverTime ;
ELSE
iErrorNodeID := iNodeID ;
DiOverTime := DiOverTime + 1 ;
EXIT ;
END_IF ;
pSlave := pSlave^.NextInstance;
END_WHILE ;
{endregion}
通过上面的程序段可以在从站通讯过程中如断线时候,判断出是从那一个节点出现问题。
结尾
其实,Codesys平台之所以现在发展的那么的快,其实来源很多基础的基础框架搭建的好。(睡觉去了,做日更贵在坚持~加油!)
页:
[1]