雷赛控制卡的扩展IO点无法控制问题处理
现象
因设备的上IO点较多,所以使用了多个雷赛32点位的IO扩展卡。上位机程序在控制输出IO时发现主模块IO和第一个扩展IO的输出可以控制。但第二个IO扩展卡和第三个IO扩展卡的输出控制不了。经排查出发现轴卡在初始化时只连接了第一个扩展IO卡。增加下面的代码连接上扩展IO就可以了。
LTDMC.nmc_write_outbit 函数执行的返回值为:18528。操作失败。返回0才是正常的。
问题排查步骤
1.先看雷赛软件中是否可以成功控制IO。如果可以就是自己的代码的问题。如果不行可能是接线的问题,可能是雷赛控制卡没有正确连接PC机,也可能是扩展IO没有连上雷赛控制卡。或是电磁阀接线的问题。气缸没有通气等问题。雷赛软件可以成功控制后再看第2步。
2.再看LTDMC.nmc_write_outbit方法传的参数是否和雷赛软件中操作IO时显示指令是一样的。雷赛软件中的IO操作指令查看 如下图。
3.如果参数一样。那可能就是在雷赛控制卡初始化时没有连接上扩展IO卡了。
代码
直接调用雷赛SDK
//连接IO扩展卡
//第一个扩展卡 第二个参数是节点地址
//var val10 = LTDMC.nmc_set_connect_state(0, 1, 1, 0);
//第二个扩展卡 第二个参数是节点地址
var val11 = LTDMC.nmc_set_connect_state(0, 2, 1, 0);
//第三个扩展卡 第二个参数是节点地址
var val12 = LTDMC.nmc_set_connect_state(0, 3, 1, 0);
方法
调用