查看: 1124|回复: 6
收起左侧

[教程经验] AM401做Ethernet/IP与ethercat主站时,程序中如何获取从站状态

王彦鑫 2022-8-30 13:31:00 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
AM401做Ethernet/IP与ethercat主站时,程序中如何获取从站状态。比如从站通讯正常时为1,通讯异常时为0。从而在程序中做从站设备通讯故障报警。




上一篇:AM600—应用笔记
下一篇:欧姆龙NJ 齿轮-插补-凸轮程序以及说明文档

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

a5997123 2022-9-2 11:29:58 | 显示全部楼层
我也想知道                    
回复 送花

使用道具 举报

fofo1985 2022-9-6 14:02:07 | 显示全部楼层
我看视频教程有个axis.m_wSlaveStateAct可以标识从站状态,可自己用发现没有了,同问
回复 送花

使用道具 举报

sakura 2022-9-7 09:02:05 | 显示全部楼层
fofo1985 发表于 2022-9-6 14:02
我看视频教程有个axis.m_wSlaveStateAct可以标识从站状态,可自己用发现没有了,同问 ...

//重新启动从站

        IoDrvEthercatLibinstance(xRestart:=        OperationPackML.Reset AND NOT EtherCatInstance.EtherCATConnectOK
                , xStopBus:= , xConfigFinished=> , xDistributedClockInSync=> , xError=> , xSyncInWindow=> );                                         
                                                 
        //检测任务端口
        EtherCatInstance.EtherCATConnectOK:=ETHERCAT.xConfigFinished AND
                                            ETHERCAT.xDistributedClockInSync AND
                                                                                NOT  ETHERCAT.xError ;
                                                                               
        //运行第一周期
        IF  NOT EtherCatInstance.EtherCATConnectSuccess    AND EtherCatInstance.EtherCATConnectOK  THEN
          EtherCatInstance.EtherCATConnectSuccess:=TRUE;
        END_IF;
       
        EtherCatInstance.FristSlave:=ETHERCAT.FirstSlave;//主站的第一个从站
        WHILE EtherCatInstance.FristSlave<>0  DO

                EtherCatInstance.FristSlave^();
               
                IF EtherCatInstance.FristSlave^.wState=ETC_SLAVE_STATE.ETC_SLAVE_OPERATIONAL THEN
                       
                        EtherCatInstance.EtherCATConnectStatus[Index2]:=TRUE;
                ELSE
                        EtherCatInstance.EtherCATConnectStatus[Index2]:=FALSE;
                        EXIT;
                END_IF
               
                EtherCatInstance.FristSlave:=EtherCatInstance.FristSlave^.NextInstance;
               
                Index2:=Index2+1;       
                IF Index2>=cm1_uiAxNum THEN
                EXIT;
                END_IF
       END_WHILE;
           Index2:=0;
       
回复 送花

使用道具 举报

王彦鑫 2022-10-16 18:19:36 | 显示全部楼层
按照两个图上的方式测试成功。

ethercat通讯状态判断

ethercat通讯状态判断

EthernetIP通讯状态判断

EthernetIP通讯状态判断
回复 送花

使用道具 举报

"Axis".bCommunication  通讯是否连接
回复 送花

使用道具 举报

null._. 2023-7-24 15:34:09 | 显示全部楼层
ECT总线掉线检测,从站掉线检测,收藏,get
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部