工程项目的标准化统一对工业公司来说是降低各种成本的关键,一个发展了50-60年还没有自我工程标准的工业企业是不可能有发展的,就好像一个品牌说了半天怎么怎么好,但还没有实现产业化,一切都是空谈,就是在烧钱。
下面是 一个经典的标准化的机器人程序控制的架构案例:
RIP1的IO区域: 513-520
E513 K1水流量合格 A513 KYP01AE 开水
E514 BV01WMIN 水流量低位检测(NO高于低压值才有信号)
E515 BV01WMAX 水流量高位检测(NC 超过高压没有信号) A515 KYP01AA 关水
E516 BD01ND 低压气合格
在MAKRO57 中使用的F量:;%{E}%MKUKATPVW%CVW_COM %VCOMMENT %P 2:-- VW Kuehlwasserbeschaltung --, 3: VW_COMMENT
;FOLD F819 = EIN激活 ;FOLD –带循环水控制—
F820 = EIN 不使用循环水
F817 = EIN 用于不使用低压气用于屏蔽发出给PLC的故障代码
F818 是否关闭机器人在闲置时间超过15分钟后关水的功能,正常F818是AUS的
功能介绍:
1.当正确量的水流过时,入口(#冷却水最小值= TRUE)和(#冷却水
最大= TRUE)。
2.如果水流量太低,输入(#冷却水最小= FALSE),输入(#冷却水
最大= TRUE)。 没水
3.如果水流量太高,输入(#冷却水最小值= TRUE),INPUT(#冷却水
最大= FALSE)。电极脱落
USR_S.SRC文件调用程序VW_WASSER() -使得水控制程序在程序中实时执行
GLOBALDEF VW_WASSER() –声明一个全局性质的程序
1.-不带循环水
IF NOT MIT_VW_WASS AND ($FLAG[F_O_WASSER] OROHNE_VW_WAS) AND NOT$FLAG[F_KWY01EIN] THEN
- 没有选择有水-有F820(不带水) 或者没有水-没有F819水阀启动(F819带水)
- MIT_VW_WASS带水的状态- OHNE_VW_WAS不带水的状态-
IF NOT $IN[I_BD01ND] OR (NOT $IN[I_BD02ND] AND $FLAG[F_MIT_RIP2]) OR (NOT $IN[I_BD03ND]AND $FLAG[F_MIT_RIP3])THEN
-E516低压气检测-F_MIT_RIP2=142 F142带2个RIP
$OUT[O_R_Med_ein]= FALSE -A25反馈给PLC有介质
ELSE
$OUT[O_R_Med_ein]= TRUE -此时又低压气就可反馈机器人有介质
ENDIF
IF($OUT[O_R_PFO] AND $OUT[O_R_SAK])THEN -机器人在零点A15,在轨迹上A16
OHNE_VW_WAS=FALSE
ELSE
OHNE_VW_WAS=TRUE -正常执行程序状态满足发出没有水
ENDIF
ENDIF
2.带水
IF $FLAG[F_KWY01EIN] OR MIT_VW_WASS THEN-F819带水功能在MAKRO57中被激活
- 有F819 或者带水模式在DAT文件中给入TRUE
IF NOT MED_EXT_AUS AND NOT $OUT[O_R_Med_ein] AND NOTWASSERSTOE AND $OUT[O_R_RK100] AND $IN[I_BD01ND] AND ($IN[I_BD02ND] OR NOT $FLAG[F_MIT_RIP2]) AND ($IN[I_BD03ND] OR NOT $FLAG[F_MIT_RIP3])THEN
-MED_EXT_AUS外部信号使水关闭-没有发出A25介质反馈-没有水故障-机器人有RK100(A10)-E516低压气检测-2号站低压气或者没有F142 .....
-首先要带水F819 机器人不能有水流量故障,不由外部关水,要有低压气检测E516
-F142 之类当有1个RIP时F142=FLASE
IF NOT TIMER_ABGE AND NOT T_SG_ABGEL THEN-两个超时有一个没有就没有A25
-没有超过机器人闲置时间15分钟(TIMER_ABGE/ T_SG_ABGEL)
$OUT[O_R_Med_ein]=TRUE -A25机器人有介质
ENDIF
ENDIF
IF($OUT[O_R_PFO] AND $OUT[O_R_SAK])THEN
-A15机器人在零位-A16 机器人在轨迹上
MIT_VW_WASS=FALSE
ELSE
MIT_VW_WASS=TRUE -用于当机器人不再零点也不在轨迹时使循环可以继续
ENDIF
IF(NOT $OUT[O_R_RK100] AND WASSERSTOE AND WASSER_EIN) OR NOT$IN[I_BD01ND] OR (NOT $IN[I_BD02ND] AND $FLAG[F_MIT_RIP2]) OR (NOT $IN[I_BD03ND] AND $FLAG[F_MIT_RIP3] ) THEN
-机器人RK100被断开,有水故障和水启动-没有低压气或不足
MED_EXT_AUS=TRUE -外部条件引起水被关闭激活
IF(VW_FEH_NR==20)THEN –故障号反馈给PLC是20号
- 在VWFEH_LOOP()程序中定义故障号20 与ED_EXT_AUS的关系
- IF(MED_EXT_AUS)THEN
- VW_FEH_NR=20
- ENDIF
$OUT[O_R_Med_ein]=FALSE -关闭A25介质反馈
ENDIF
ELSE
MED_EXT_AUS=FALSE -否则就没有外部条件引起水被关闭激活
ENDIF
IF NOT $OUT[O_R_RK100] AND NOT WA_HIFU_REST THEN
-当没有RK100,也没有WA_HIFU_REST水的计时器复位中间变量-例如:打开安全门
WA_HIFU_REST=TRUE
$TIMER_STOP[T_WASSER_EIN]=TRUE -停止计时器T55水流开启时间
ENDIF
IF $OUT[O_R_RK100] AND WA_HIFU_REST THEN
-断开RK100后再次恢复的状态
$OUT[O_R_Med_ein]=TRUE -A25再次发出
WA_HIFU_REST=FALSE 关闭中间变量
WASSERSTOE=FALSE -关闭水故障
$FLAG[F_T_WA_WSTOE]=FALSE -水故障
$TIMER_STOP[T_WASSER_STO]=TRUE –T56水故障计时器开始复位清零
$TIMER[T_WASSER_STO]=0
$TIMER_STOP[T_WASSER_STO]=FALSE
$TIMER_STOP[T_WASSER_EIN]=TRUE -T55水启动计时器开始复位清零
$TIMER[T_WASSER_EIN]=0
$TIMER_STOP[T_WASSER_EIN]=FALSE
$TIMER_STOP[T_STELLGLIE]=TRUE -T54水控制计时器开始复位清零
$TIMER[T_STELLGLIE]=0
$TIMER_STOP[T_STELLGLIE]=FALSE
ENDIF
IF NOT WASSERSTOE THEN -如果没有水故障
-水流量超过最大流量故障-可认为是电极帽掉了/漏了
IF($IN[I_BV01WMIN] AND NOT $IN[I_BV01WMAX]) OR ($IN[I_BV02WMIN] ANDNOT $IN[I_BV02WMAX]) OR ($IN[I_BV03WMIN]AND NOT $IN[I_BV03WMAX])THEN
-E514 有低压水和没有高压水E515-
-正常情况下是E514和E515高低水都有,当水压制超过高压水时E515会变为FLASE
-因此在调解水流量阀时因该注意高压水压力值不能太大。
W_MAX_RIP1=$IN[I_BV01WMIN] AND NOT $IN[I_BV01WMAX]
-有低压水没有高压水为高压水故障,常用与电极帽掉的水压检测
W_MAX_RIP2=$IN[I_BV02WMIN] AND NOT $IN[I_BV02WMAX]
W_MAX_RIP3=$IN[I_BV03WMIN] AND NOT $IN[I_BV03WMAX]
$TIMER_STOP[T_WASSER_STO]=FALSE -当出现故障时计时器T56开始计时
IF($TIMER[T_WASSER_STO]>WA_STOER_Z)THEN
-当T56超过4 S时报水故障,开始关RIP的水
WASSERSTOE=TRUE -报水流量故障
$FLAG[F_T_WA_WSTOE]=TRUE –F816水故障提示
$TIMER_STOP[T_WASSER_STO]=TRUE –T56暂停
$OUT[O_KYP01WA]=TRUE –A515水关
$OUT[O_KYP01WE]=FALSE –A513 水开被关闭
$OUT[O_KYP02WA]=TRUE
$OUT[O_KYP02WE]=FALSE
$OUT[O_KYP03WA]=TRUE
$OUT[O_KYP03WE]=FALSE
ENDIF
ELSE -如果没有超时4 S,T56计时器复位
$TIMER_STOP[T_WASSER_STO]=TRUE
$TIMER[T_WASSER_STO]=0
$TIMER_STOP[T_WASSER_STO]=FALSE
ENDIF
IF $OUT[O_R_RK100] THEN -有机器人RK100请求驱动
IF($FLAG[F_WA_EIN_VSP] OR (NOT $OUT[O_R_PFO] AND NOT $OUT[O_R_WartB] AND$OUT[O_R_SG_gesp]))THEN
-F818在MORKO80中使用消除自动关水问题
-机器人不再零位A15-机器人没在维修位置A17-程序始终在执行A23
- 如果激活了F818 那么开水时间T55会被一直复位,在没有水故障的条件下。
- 当机器人开始移动后T55奖杯清零
$TIMER_STOP[T_WASSER_EIN]=TRUE –T55清零
$TIMER[T_WASSER_EIN]=0
$TIMER_STOP[T_WASSER_EIN]=FALSE -开始计时
ENDIF
ENDIF –一旦开始计时,机器人还没有执行程序在零位或一直在维修位置,或停止在过程停止都不会使T55定时器复位一直开始计时直道900000ms后停止
TIMER_ABGE=($TIMER[T_WASSER_EIN]>WA_AUS_NAZ)-没有故障时T55大于15分钟
-当开始执行程序时T55被重新值0 TIMER_ABGE变为FLASE
- WA_AUS_NAZ=900000
IF TIMER_ABGE AND NOT$TIMER_STOP[T_WASSER_EIN] THEN
-大于15分钟后 –还没有T55计时器停止
$TIMER_STOP[T_WASSER_EIN]=TRUE –让计时器停止
ENDIF
IF $OUT[O_R_RK100] THEN -机器人只要有RK100请求驱动
$TIMER_STOP[T_STELLGLIE]=TRUE –T54清零
$TIMER[T_STELLGLIE]=0
$TIMER_STOP[T_STELLGLIE]=FALSE --开始计时
ENDIF -他只记录没有RK100后的时间,超时时间也是900000ms
T_SG_ABGEL=($TIMER[T_STELLGLIE]>WA_AUS_SZA)
--当开始发出RK100时T54被重新值0 T_SG_ABGEL变为FLASE
IF T_SG_ABGEL AND NOT$TIMER_STOP[T_STELLGLIE] THEN
$TIMER_STOP[T_STELLGLIE]=TRUE –让计时器停止
ENDIF
IF $OUT[O_R_RK100] AND NOTWASSERSTOE AND NOT WASSER_EIN AND NOT $FLAG[281] AND NOT $FLAG[283] THEN
-机器人有使能-没有水故障-水没有启动-没有F281-没有F283/一般用F281就可实现开关水
-本段的意思是正常时会保持RIP开着水
WA_ZUSTAND=1 -RIP开水
ENDIF
IF(TIMER_ABGE OR T_SG_ABGEL) AND NOT $FLAG[F_WA_EIN_VSP] THEN
- 机器人闲置超时-没有F818(关闭设备自动状态时闲置时间超过15分钟后关水)
MED_EXT_AUS=FALSE -关闭外部关水
IF(VW_FEH_NR<>20)THEN –闲置时间超过15分钟后关主HIP的水-
-其他一水流量故障只故障代码不等于20就都会关闭A25
$OUT[O_R_Med_ein]=FALSE -关闭A25会引起主杠HIP的5S后关水
ENDIF
ELSE
MED_EXT_AUS=FALSE
ENDIF
IF($OUT[O_R_RK100] AND ($FLAG[281] OR $FLAG[283] OR WASSERSTOE OR NOT$IN[I_MEDIENEI]))THEN
-RIP关水的条件:机器人有使能请求RK100-有F281-或有F283-或有水故障-或PLC没有发出E25
WA_ZUSTAND=2 -RIP关水
ENDIF
---------------------------------------------------------------------
IF $FLAG[819] AND $FLAG[820] THEN -直接控制开关水
-F819在MAKRO57里赋值为TURE,F820直接给水- 不受到其他条件的控制只开水.
WA_ZUSTAND=1 -RIP开水
ENDIF
---------------------------------------------------------------------
SWITCH WA_ZUSTAND
CASE 1
;Wasser EIN
$OUT[O_KYP01WA]=FALSE
$OUT[O_KYP01WE]=TRUE -A513开水阀
$OUT[O_KYP02WA]=FALSE
$OUT[O_KYP02WE]=TRUE
$OUT[O_KYP03WA]=FALSE
$OUT[O_KYP03WE]=TRUE
WASSER_EIN=TRUE –水阀启动
CASE 2
;Wasser AUS
$OUT[O_KYP01WA]=TRUE -A515水阀关
$OUT[O_KYP01WE]=FALSE
$OUT[O_KYP02WA]=TRUE
$OUT[O_KYP02WE]=FALSE
$OUT[O_KYP03WA]=TRUE
$OUT[O_KYP03WE]=FALSE
WASSER_EIN=FALSE -水阀关
DEFAULT
ENDSWITCH
ENDIF
ENDIF
END
全部0条评论
快来发表一下你的评论吧 !