当前位置: 主页 > PLC控制

S7300语句表问题

请教高手,这是一段控制变频器程序,麻烦高手给逐一解释一下,主要是跳转的地方,万分感谢

问题补充:
请问艾星落尘高手,MAD1-8执行了几个啊,我就是跳转时搞不清,谢谢

图片说明:

S7300语句表问题S7300语句表问题 S7300语句表问题S7300语句表问题

最佳答案

A#iEnable
JCNMAD1//当#iEnable为1时执行以下程序,否则直接跳转到MAD1
AN#iSlowFASt//如果#iSlowFaST为0就跳转到MAD2,否则接着执行程序,这里应该就是速度FAST和SLOW的选择
JCMAD2//考虑到调用的时候M0.0常为0,那么就直接跳转到MAD2,选择低速的
L#iFastSpeed//
JUMAD3
MAD2:L#iSlowSpeed
MAD3:T#_PO2_SeTPoint//将速度值#iSlowSpeed赋值给#_PO2_SetPoint
L100
<I//如果#iSlowSpeed<100就跳转到MAD4,如果大于等于100就直接跳转到MAD5
JCMAD4
JUMAD5
MAD4:TAK//累加器1和累加器2的值互换
L0
>I//如果#iSlowSpeed>0就跳转到MAD6,否则就接着执行
JCMAD6
MAD5:T#_PO2_SetPoint//在不大于0的情况下,将#iSlowSpeed>赋值给#_PO2_SetPoint
MAD6:A#iBackwards//没有反向信号的话,跳转到MAD7,有反向信号的情况下就接着执行程序
JCNMAD7
=#_PO1_CtrWord.SetpointInveRT//有反向信号就置位这个变量
L#_PO2_SetPoint
NEGI
T#_PO2_SetPoint//并将速度值取反
MAD7:A#i3PDW//这个值为0就执行跳转到MAD8,否者接着执行程序
JCNMAD8
L#iRamp
T#_PO3_Ramp//#i3PDW为1的时候,#_PO3_Ramp=#iRamp
MAD8:L#_PO2_SetPoint
L163
*I
T#_PO2_SetPoint//#_PO2_SetPoint=#_PO2_SetPoint*163
MAD1:NOP0

从调用的情况来看,这里#iSlowFast#iBackwards和#i3PDW都为0,都是执行#iSlowSpeed*163=#_PO2_SetPoint
补充:MAD2,MAD4,MDA6,MAD7,MAD8因为#iSlowFast#iBackwards和#i3PDW都为0,#iSlowSpeed=35
看跳转,其实就是看条件是否满足,满足条件就跳转到相应的位置执行程序,不满足就接着执行程序,如果跳转比较多的话,不妨先看完整体的,然后再一步一步的分析,能够结合实际的工序流程就更容易看懂!

提问者对于答案的评价:
thanks

  • 关注微信

猜你喜欢

微信公众号