|
邀请回答
马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
//重新启动从站
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
Index2:=Index2+1;
EtherCatInstance.EtherCATConnectStatus[Index2]:=TRUE;
ELSE
EtherCatInstance.EtherCATConnectStatus[Index2]:=FALSE;
EXIT;
END_IF
EtherCatInstance.FristSlave:=EtherCatInstance.FristSlave^.NextInstance;
END_WHILE;
Index2:=0;
|
上一篇: 总线轴控中一个极易疏忽的错误下一篇: CNC_G02圆切角计算_DT1—DT2
|