天天看點

OtoStudio可視化界面開發示例

今天在家清理電腦,在硬碟中找到了2014年剛畢業那會用 OtoStudio(CoDeSys)寫的一個三軸運動控制模拟程式。

概述

代碼設計:

OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例

界面設計:

OtoStudio可視化界面開發示例

界面

有下面幾個界面:

OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例
OtoStudio可視化界面開發示例

效果

【登陸過程】

OtoStudio可視化界面開發示例

【控制過程】

代碼

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