Simotion里面尽量少用_mc这样的指令,那些是以前MC系统遗留下来的命令,还有就是PLCOPEN里面的也是尽量少用,那是T-CPU的指令,当然那些指令是可以用的,针对性不同而已。
在执行针对所有轴操作功能之前一定需要先使用使能轴并判断轴的变量.control是否在Active状态,如果已经使能过但是不在则判断是否有故障存在....
附加一个简易轴使能的FB功能块,可以在LAD/ST/MCC中调用。
quote:
FUNCTION_BLOCK FB_ENABLEAXIS //*********FB使能轴***********
VAR_INPUT
enable: BOOL; //使能
disable: BOOL; //反使能
myaxis: driveaxis;
END_VAR
VAR
myRetDINT: DINT;
END_VAR
IF enable AND NOT disable THEN //满足 使能+非反使能条件时:
myRetDINT :=
_enableaxis( //_enableaxis() 系统函数, 在帮助中可以得到相关参数信息
axis:=myaxis
// enablemode:=ALL,
// servocontrolmode:=ACTIVE,
// servocommandtoactualmode:=INACTIVE,
// nextcommand:=IMMEDIATELY,
// commandid:=(0,0),
// forcecontrolmode:=INACTIVE,
// stwbitset:=0,
// movingmode:=DO_NOT_CHANGE
);
ELSIF disable AND NOT enable AND myaxis.control=ACTIVE THEN
myRetDINT :=
_disableaxis( //_disableaxis() 系统函数, 在帮助中可以得到相关参数信息
axis:=myaxis
// disablemode:=ALL,
// servocontrolmode:=INACTIVE,
// servocommandtoactualmode:=ACTIVE,
// nextcommand:=IMMEDIATELY,
// commandid:=(0,0),
// forcecontrolmode:=INACTIVE,
// stwbitset:=0
);
END_IF;
END_FUNCTION_BLOCK
这个FB在LAD里面调用的时候只有3个引脚,enable,disable以及myaxis,分别填入使能轴的变量,去使能的变量以及轴的名称(轴名称这个里面定义的是驱动轴,适合任意类型的轴,位置轴,速度轴均可)。