【Codesys】-重启主站&更换不同从站使用

在Codesys中,假如有以下测试需求,有A、B、C型号三种EtherCAT设备,但是每天测试的种类不同,数量不一致,但测试部门希望我们用一个程序来实现切换不同型号设备的测试,应该如何做呢?此时,可以用到Reconfigure这个函数。它的功能就是重启主站。然后我们再通过对指定设备的Enable属性设置为True。即可实现以上需求。具体如下:

(*设置模块的使能*)
IF gvl_io.g_byDeviceSelected<1 THEN
    gvl_io.g_byDeviceSelected:=1;
    ELSIF gvl_io.g_byDeviceSelected>10 THEN
        gvl_io.g_byDeviceSelected:=10;
END_IF
RT1000LNP_V1_6.Enable:=GVL_IO.g_byDeviceSelected=1;
RT1000HNP_V1_6.Enable:=GVL_IO.g_byDeviceSelected=2;
RT2000HNP_V1_6.Enable:=gvl_io.g_byDeviceSelected=3;
RT2000LNP_V1_6.Enable:=gvl_io.g_byDeviceSelected=4;
RT3000HNP_V1_0.Enable:=gvl_io.g_byDeviceSelected=5;
RT3000LNP_V1_0.Enable:=gvl_io.g_byDeviceSelected=6;
RT4000HNP_Device.Enable:=gvl_io.g_byDeviceSelected=7;
RT4000LNP_Device.Enable:=gvl_io.g_byDeviceSelected=8;
RT08DIMP_Device.Enable:=gvl_io.g_byDeviceSelected=9;

 

gvl_io.g_byDeviceSelected为程序指定,点击按钮即可选中对应的设备,即选中那个设备就对哪个设备使能。

CASE gvl_io.g_byDeviceSelected OF
    01:RT1000LNP();
    02:RT1000HNP();
    03:RT2000HNP();
    04:RT2000LNP();
    05:RT3000HNP();
    06:RT3000LNP();
    07:RT4000HNP();
    08:RT4000LNP();
    09:RT08DIMP();
    10:EA7000_L();
END_CASE

同时通过Case程序执行对应硬件设备的测试程序。

//FB声明

reconfigureMaster:DED.Reconfigure;

-----------------------------------------------------------

EtherCAT_Master_SoftMotion.Enable:=GVL_IO.g_bETCmasterReconfigure;;
reconfigureMaster(itfNode:=EtherCAT_Master_SoftMotion);

IF v_bMasterReconfigureTemp<>GVL_IO.g_bETCmasterReconfigure THEN
    reconfigureMaster.xExecute:=TRUE;
    ELSIF reconfigureMaster.xDone OR reconfigureMaster.xError THEN
        reconfigureMaster.xExecute:=FALSE;
END_IF

IF reconfigureMaster.xError THEN
    GVL_IO.g_bRecofigureErr:=TRUE;
    ELSIF GVL_IO.g_bReset THEN
    GVL_IO.g_bRecofigureErr:=FALSE;    
END_IF
IF reconfigureMaster.xError THEN
        GVL_IO.g_strReconfigureFeedback:='reconfigure error';
        GVL_IO.g_udiReconfigureFeedbackColors:=colors.Red;
    ELSIF reconfigureMaster.xDone THEN
        GVL_IO.g_strReconfigureFeedback:='reconfigure finished';
        GVL_IO.g_udiReconfigureFeedbackColors:=colors.MediumSpringGreen;
    ELSIF reconfigureMaster.xExecute THEN
        GVL_IO.g_strReconfigureFeedback:='reconfigure started';
        GVL_IO.g_udiReconfigureFeedbackColors:=colors.Yellow;
END_IF

GVL_IO.g_bETCmasterReconfigure为执行重置按钮。

该功能依赖:CAA Device Diagnosis, 3.5.15.0 (CAA Technical Workgroup)这个库

需要自行添加。

通过以上步骤,即可实现主轴连接不同设备,但仅需一个程序即可实现所有设备测试的需求了,项目中有切换设备调试的需求同理可根据该办法解决,编写配置的逻辑即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值