开发环境
平台:win7 64位系统 twincat3+vs2015
从站:没用用到从站,直接用虚拟轴
1、新建一个Twincat工程,在plc里面添加一个程序,再在VISUs里面添加Visualization,然后再添加四个按钮
2、添加运动函数库,在references里面点击右键,添加lib,添加tc2_MC2库
3、在MAIN文件的变量声明区按F2,分别添加MC_Power,AXIS_REF,MC_MoveRelative三个模块
4、连接PLC里面的轴和虚拟轴,需要先编译一下
5、编写程序,并且将MAIN里面的变量和按钮连接起来
在程序编写区域按F2,按实例调用,就能快速初始化模块;
a、变量初始化代码
PROGRAM MAIN
VAR
Axis1_Power:MC_Power;
Axis1:AXIS_REF;
Axis1_Move:MC_MoveRelative;
Motor_State:BOOL;
Motor_Enable:BOOL;
Motor_CW:BOOL;
Motor_CCW:BOOL;
END_VAR
b、程序
Axis1_Power(
Axis:=Axis1,
Enable:= ,
Enable_Positive:=TRUE ,
Enable_Negative:= TRUE,
Override:= 100,
BufferMode:= ,
Options:= ,
Status=> ,
Busy=> ,
Active=> ,
Error=> ,
ErrorID=> );
Axis1_Move(
Axis:=Axis1 ,
Execute:= ,
Distance:= ,
Velocity:= 100,
Acceleration:= ,
Deceleration:= ,
Jerk:= ,
BufferMode:= ,
Options:= ,
Done=> ,
Busy=> ,
Active=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> );
IF Motor_Enable THEN
Axis1_Power.Enable:=TRUE;
END_IF
Axis1_Move.Execute:=FALSE;
IF Motor_CW AND Motor_Enable THEN
Axis1_Move.Distance:=50;
Axis1_Move.Execute:=TRUE;
Motor_CCW:=FALSE;
END_IF
IF Motor_CCW AND Motor_Enable THEN
Axis1_Move.Distance:=-50;
Axis1_Move.Execute:=TRUE;
Motor_CW:=FALSE;
END_IF
IF Axis1_Move.Busy THEN
Motor_State:=TRUE;
ELSE
Motor_State:=FALSE;
Motor_CW:=FALSE;
Motor_CCW:=FALSE;
END_IF
6、实验结果,登录PLC并运行