今天在家清理电脑,在硬盘中找到了2014年刚毕业那会用 OtoStudio(CoDeSys)写的一个三轴运动控制模拟程序。
概述
代码设计:
界面设计:
界面
有下面几个界面:
效果
【登陆过程】
【控制过程】
代码
PLC_PRG
PROGRAM PLC_PRG
VAR
checking: BOOL; (*密码检验结果*)
warning:BOOL; (*报警状态*)
normal:BOOL := TRUE; (*系统状态*)
PwdWarning:BOOL:=TRUE; (*密码错误提示*)
InitOK:BOOL; (*初始化成功与否标志*)
(*定义系统各种极限值*)
PosMin_N:INT := -250; (*负限位最小值*)
PosMax_N:INT := -200; (*负限位最大值*)
PosMin_P:INT := 200; (*正限位最小值*)
PosMax_P:INT := 250; (*正限位最大值*)
SpeedMin:INT := 0; (*速度最小值*)
SpeedMax:INT := 6000; (*速度最大值*)
SpeedRTZ:INT := 5400; (*回零速度*)
DisplacementMin:INT := 0; (*点动位移量最小值*)
DisplacementMax:INT := 10; (*点动位移量最大值*)
Speed:REAL := 0; (*移动速度*)
Displacement:REAL := 0; (*点动位移*)
StartOK: BOOL;
CheckLimit: LIMIT_CHECK;
LEDAxisX:BOOL; (*X轴状态指示*)
LEDAxisY:BOOL; (*Y轴状态指示*)
LEDAxisZ:BOOL; (*Z轴状态指示*)
LEDHandMove:BOOL; (*手动方式状态指示*)
LEDClickMove:BOOL; (*点动方式状态指示*)
LEDRetToZero:BOOL; (*回零方式状态指示*)
AlarmType: INT; (*记录报警状态*)
RTZ_retain: BOOL; (*记录回零状态*)
HandP_TON: TON;
HandN_TON: TON;
MH_OFF: BOOL;
MH_ON: BOOL;
RTZ_TON: TON;
normal2: BOOL; (*显示故障清除情况*)
LimitStatus: BOOL; (*记录是否有超出限位的情况,保留使用*)
CheckPwd: BOOL; (*密码输入确定按钮下降沿触发*)
(*按键下降沿触发处理*)
SBAxisX_FT: F_TRIG;
SBAxisY_FT: F_TRIG;
SBAxisZ_FT: F_TRIG;
SBClickMove_FT: F_TRIG;
SBHandMove_FT: F_TRIG;
SBRetToZero_FT: F_TRIG;
Positive_RT: R_TRIG;
Negative_RT: R_TRIG;
PwdButton_FT: F_TRIG;
WarningBtn_FT: F_TRIG;
END_VAR
VAR_INPUT
PwdButton: BOOL; (*输入密码确定按钮*)
WarningBtn:BOOL; (*报警框确定按钮*)
start: BOOL; (*上电按钮*)
stop:BOOL; (*急停按钮*)
SBHandMove:BOOL; (*手动方式按钮*)
SBClickMove:BOOL; (*点动方式按钮*)
SBRetToZero:BOOL; (*回零方式按钮*)
SBAxisX:BOOL; (*X轴使能按钮*)
SBAxisY:BOOL; (*X轴使能按钮*)
SBAxisZ:BOOL; (*X轴使能按钮*)
positive:BOOL; (*正向运动按钮*)
negative:BOOL; (*负向运动按钮*)
password: STRING(16) := ' '; (*记录登陆密码*)
AlarmInfo:STRING(80) := 'Everybody up !'; (*记录报警信息*)
END_VAR
VAR_OUTPUT
END_VAR
。。。太多了,不贴代码啦,需要的自己下载吧!