找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
CALL FC 905
Order :="DB_5429".A1_FI_Roller_unit.order_speed
_speed_1_line :=DB800.DBD50
_speed_2_slow :=#Stacking_speed // stacking speed
_speed_3_f_min :=5.000000e+000 // backward
_speed_4_next :=0.000000e+000
_speed_1_fix :=4.000000e+001 // stacking speed
_speed_2_fix :=0.000000e+000 // 0 m/min
_speed_3_fix :=0.000000e+000 // 0 m/min
_speed_4_percent:=100
_speed_position :=DB829.DBD16
第二部分是FC829调用的程序,在FC905里面编写
AN #Order.speed_1_line //***Anlagengeschw. ***
JC M001
L #_speed_1_line
T #_speed_position
M001: NOP 0 //***langsame Geschw.***
AN #Order.speed_2_slow
JC M002
L #_speed_2_slow
T #_speed_position
M002: NOP 0 //***f-min Geschw.***
AN #Order.speed_3_f_min
JC M003
L #_speed_3_f_min
T #_speed_position
M003: NOP 0 //***load next pos.speed*
AN #Order.speed_4_next
JC M004
L #_speed_4_next
T #_speed_position
M004: NOP 0 //***load fix speed 1*
AN #Order.speed_1_fix
JC M005
L #_speed_1_fix
T #_speed_position
M005: NOP 0 //***load fix speed 2*
AN #Order.speed_2_fix
JC M006
L #_speed_2_fix
T #_speed_position
M006: NOP 0 //***load fix speed 3*
AN #Order.speed_3_fix
JC M007
L #_speed_3_fix
T #_speed_position
// ********************** speed actual x ..%
M007: NOP 0
AN #Order.speed_4_percent
JC M008
L #_speed_4_percent
ITD
DTR
L 1.000000e+002
/R
L #_speed_position
*R
T #_speed_position
// ************************* R點kw鋜ts ********************
M008: NOP 0
AN #Order.backward
JC M009
L #_speed_position
L -1.000000e+000
*R
T #_speed_position
M009: NOP 0 // END ***************
FC829是有DB数据块的,这个说明一下。分数我全拿出来了,望师傅们帮帮小弟这个忙,在此给您磕头了。
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
CALL FC 905 //调用FC905(以下译文不一定准确),调用FC905的参数
Order :="DB_5429".A1_FI_Roller_unit.order_speed//滚筒装置额定速度
_speed_1_line :=DB800.DBD50// speed_1_line 线速度
_speed_2_slow :=#Stacking_speed // stacking speed堆层速度
_speed_3_f_min :=5.000000e+000 // backward反向速度
_speed_4_next :=0.000000e+000//下一步速度
_speed_1_fix :=4.000000e+001 // stacking speed堆层速度固定1
_speed_2_fix :=0.000000e+000 // 0 m/min 堆层速度固定2(米/分钟)
_speed_3_fix :=0.000000e+000 // 0 m/min堆层速度固定3(米/分钟)
_speed_4_percent:=100//百分比
_speed_position :=DB829.DBD16//定位速度
第二部分是FC829调用的程序,在FC905里面编写
AN #Order.speed_1_line //***Anlagengeschw. ***
JC M001//如果未达到Order.speed_1_line,则跳转到M001
L #_speed_1_line
T #_speed_position//如果达到Order.speed_1_line,将speed_1_line作为speed_position
M001: NOP 0 //***langsame Geschw.***空操作指令,对程序无影响
AN #Order.speed_2_slow
JC M002//如果未达到Order.speed_2_slow,则跳转到M002
L #_speed_2_slow
T #_speed_position//如果达到Order.speed_2_slow,将Order.speed_2_slow作为speed_position
M002: NOP 0 //***f-min Geschw.*** 空操作指令,对程序无影响
AN #Order.speed_3_f_min
JC M003//如果未达到Order.speed_3_f_min,则跳转到M003
L #_speed_3_f_min
T #_speed_position//如果达到Order.speed_3_f_min,将speed_3_f_min作为speed_position
M003: NOP 0 //***load next pos.speed*空操作指令,对程序无影响
AN #Order.speed_4_next
JC M004//如果未达到Order.speed_4_next,则跳转到M004
L #_speed_4_next
T #_speed_position//如果达到Order.speed_4_next,将Order.speed_4_next作为speed_position
M004: NOP 0 //***load fix speed 1*空操作指令,对程序无影响
AN #Order.speed_1_fix
JC M005//如果未达到Order.speed_1_fix,则跳转到M005
L #_speed_1_fix
T #_speed_position//如果达到Order.speed_1_fix,将Order.speed_4_next作为speed_position
M005: NOP 0 //***load fix speed 2*空操作指令,对程序无影响
AN #Order.speed_2_fix
JC M006//如果未达到Order.speed_2_fix,则跳转到M006
L #_speed_2_fix
T #_speed_position//如果达到Order.speed_2_fix,将speed_2_fix作为speed_position
M006: NOP 0 //***load fix speed 3*空操作指令,对程序无影响
AN #Order.speed_3_fix
JC M007//如果未达到Order.speed_3_fix,则跳转到M007
L #_speed_3_fix
T #_speed_position//如果达到Order.speed_3_fix,将speed_3_fix作为speed_position
// ********************** speed actual x ..%
M007: NOP 0//空操作指令,对程序无影响
AN #Order.speed_4_percent
JC M008//如果未达到Order.speed_4_percent,则跳转到M008
L #_speed_4_percent//如果未到Order.speed_4_percent
ITD //将 Order.speed_4_percent数据转换为双整数
DTR//再转换为浮点数
L 1.000000e+002//取常数100.0
/R //speed_4_percent数据除以100.0
L #_speed_position
*R // speed_4_percent//数据除以100.0后再与speed_position数据相乘
T #_speed_position//上述运算结果作为speed_position
// ************************* R點kw鋜ts ********************
M008: NOP 0//空操作指令,对程序无影响
AN #Order.backward
JC M009//如果未达到Order.backward,则跳转到M009
L #_speed_position//如果达到Order.backward
L -1.000000e+000//取常数-1.0
*R // speed_position//数据乘以-1.0
T #_speed_position// speed_position数据乘以-1.0作为speed_position
M009: NOP 0 // END ***********结束
if not order.speed_1_fix then
_speed_postion=_speed_1_fix
else if not order.speed_2_fix then
_speed_postion=_speed_2_fix
else if not order.speed_3_fix then
_speed_postion=_speed_3_fix
else if not order.speed_4_percent then
_speed_postion=_speed_postion*_speed_4_percent/100.0
else if not order.backward then
_speed_postion=_speed_postion*(-1)
endif
fc905实际就是一个分段函数功能,根据不同的情况输出不同的控制数据。
你的db_5429应该是结构数据块,fc829没有必要解释了,他就是调用fc905,然后根据不同的情况输出不同的控制数据,就像我们做一个分段函数一样。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!