基本信息
源码名称:BECKOFF 运动控制 程序框架
源码大小:0.78M
文件格式:.zip
开发语言:C/C++
更新时间:2020-07-06
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
PRG_CylinderAlarm() ;
Motion_Condition();
PRG_04_ManualMode();
PRG_FB_0_Run() ;
MAIN._NT; (**系统重启,CE远程桌面,系统时间,定时保存掉电数据,等系统常规动作*)
MAIN.judgement; (*系统需要进行某一步之前需要对一些关键状态进行判定*)
MAIN.SystemHandle; (*系统状态切换按钮的响应与信号汇总,以及指示灯的输出*)
MAIN.prepare; (*清能驱动器设置为CSP 8 CST 10模式*)(*所有35个轴设定位置模式*)
MAIN.Status_Monitor;
MAIN.Use_PanelMaster;(*屏通触摸屏*)
MAIN.Vision;
(* PowerOn, (*设定驱动器工作模式*)
ConnectionTest, (*检查驱动器当前模式反馈是否符合要求*)
Initialization, (*对系统执行初始化*)
ModeSelect, (*系统准备完成,进行模式选择*)
ManualMode, (*调用手动模式的功能*)
HomeMode, (*调用回原点功能,如绝对值编码器,可不用此模式*)
AutoMode, (*进入到系统自动模式*)
AutoMode2, (*启动自动模式(包含系统所有动作)*)
Error (*调用系统报警的功能,触发系统停机等动作*)
*)
SystemInManualMode:=MainState=ManualMode;(*模式选择如果MainState=Manualmode则SystemInManualMode为TRUE*)
SystemInAutoMode:=MainState=AutoMode; ;(*模式选择如果MainState=Automode则SystemInAutoMode为TRUE*)
CASE MainState OF
PowerOn:
MainState:=ConnectionTest;
ConnectionTest:
PRG_Init() ;(*初始化,将状态变成FALSE*)
IF bDeviceStateOK AND bDriveModeOK THEN
MainState:=Initialization;
END_IF
Initialization: (*打开所有轴使能*)
MAIN.EnableDrive;
MainState:=ModeSelect;
ModeSelect:
IF NOT HmiAutoMode THEN
MainState:=ManualMode;
ELSE
MainState:=AutoMode;
END_IF
ManualMode:
PRG_04_ManualMode();
PRG_Home();
IF HmiAutoMode AND bAutoPermit THEN
MainState:=AutoMode;
END_IF
IF bSysInit AND NOT bRunFlag THEN
bSysiniting:=TRUE ;
MainState:=HomeMode;
END_IF
IF NOT Axis_Has_error THEN
MAIN.EnableDrive;
END_IF
HomeMode:
PRG_Home();
IF All_Homed_OK THEN (*回零完成,自动回到模式选择*)
MainState:=ManualMode;
END_IF
AutoMode:
PRG_06_AutoMode();
IF NOT HmiAutoMode THEN
MainState:=ManualMode;
END_IF
Error:
MAIN.ActError; (*断开使能子程序*)
IF NOT bSysEstop (*AND NOT Axis_Has_error *) THEN
MainState:=PowerOn;
bEstopReset:=TRUE;
bSysHomed:=FALSE ;
END_IF
END_CASE
IF (bSysEstop (*OR Axis_Has_error *)) AND NOT bFirstCycle THEN (*由于第一个周期信号取反带来的急停不进入系统*)
MainState:=Error;
iAutoStep:=0;
END_IF
IF bSysEstop OR FtrigAutoMode.Q THEN
bRunFlag:=FALSE;
iAutoStep:=0;
END_IF
PRG_02_OutRefreash();(*输出刷新*)
PRG_PTP(); (*轴运动及参数刷新*)
PRG_01_InRefresh(); (*输入刷新*)
PRG_Alarm() ;PRG_CylinderAlarm() ;
Motion_Condition();
PRG_04_ManualMode();
PRG_FB_0_Run() ;
MAIN._NT; (**系统重启,CE远程桌面,系统时间,定时保存掉电数据,等系统常规动作*)
MAIN.judgement; (*系统需要进行某一步之前需要对一些关键状态进行判定*)
MAIN.SystemHandle; (*系统状态切换按钮的响应与信号汇总,以及指示灯的输出*)
MAIN.prepare; (*清能驱动器设置为CSP 8 CST 10模式*)(*所有35个轴设定位置模式*)
MAIN.Status_Monitor;
MAIN.Use_PanelMaster;(*屏通触摸屏*)
MAIN.Vision;
(* PowerOn, (*设定驱动器工作模式*)
ConnectionTest, (*检查驱动器当前模式反馈是否符合要求*)
Initialization, (*对系统执行初始化*)
ModeSelect, (*系统准备完成,进行模式选择*)
ManualMode, (*调用手动模式的功能*)
HomeMode, (*调用回原点功能,如绝对值编码器,可不用此模式*)
AutoMode, (*进入到系统自动模式*)
AutoMode2, (*启动自动模式(包含系统所有动作)*)
Error (*调用系统报警的功能,触发系统停机等动作*)
*)
SystemInManualMode:=MainState=ManualMode;(*模式选择如果MainState=Manualmode则SystemInManualMode为TRUE*)
SystemInAutoMode:=MainState=AutoMode; ;(*模式选择如果MainState=Automode则SystemInAutoMode为TRUE*)
CASE MainState OF
PowerOn:
MainState:=ConnectionTest;
ConnectionTest:
PRG_Init() ;(*初始化,将状态变成FALSE*)
IF bDeviceStateOK AND bDriveModeOK THEN
MainState:=Initialization;
END_IF
Initialization: (*打开所有轴使能*)
MAIN.EnableDrive;
MainState:=ModeSelect;
ModeSelect:
IF NOT HmiAutoMode THEN
MainState:=ManualMode;
ELSE
MainState:=AutoMode;
END_IF
ManualMode:
PRG_04_ManualMode();
PRG_Home();
IF HmiAutoMode AND bAutoPermit THEN
MainState:=AutoMode;
END_IF
IF bSysInit AND NOT bRunFlag THEN
bSysiniting:=TRUE ;
MainState:=HomeMode;
END_IF
IF NOT Axis_Has_error THEN
MAIN.EnableDrive;
END_IF
HomeMode:
PRG_Home();
IF All_Homed_OK THEN (*回零完成,自动回到模式选择*)
MainState:=ManualMode;
END_IF
AutoMode:
PRG_06_AutoMode();
IF NOT HmiAutoMode THEN
MainState:=ManualMode;
END_IF
Error:
MAIN.ActError; (*断开使能子程序*)
IF NOT bSysEstop (*AND NOT Axis_Has_error *) THEN
MainState:=PowerOn;
bEstopReset:=TRUE;
bSysHomed:=FALSE ;
END_IF
END_CASE
IF (bSysEstop (*OR Axis_Has_error *)) AND NOT bFirstCycle THEN (*由于第一个周期信号取反带来的急停不进入系统*)
MainState:=Error;
iAutoStep:=0;
END_IF
IF bSysEstop OR FtrigAutoMode.Q THEN
bRunFlag:=FALSE;
iAutoStep:=0;
END_IF
PRG_02_OutRefreash();(*输出刷新*)
PRG_PTP(); (*轴运动及参数刷新*)