admin 发表于 6 天前

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]
查看完整版本: Codesys通过程序判断EtherCAT网络状态