子程序应用问题等

已锁定

小石子

  • 帖子

    5
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2004-06-09

普通 普通 如何晋级?

子程序应用问题等

504

3

2004-11-01 08:30:42

各位请帮忙解决一下小石子的问题:

我下载了一个S7-200的应用例子,但发现在STEP7-MICRO/WIN32里用STL照例编程时,
CALL1出现了错误,然后LD M1,1也出现提示错误,请问是不是这例子本身有错,还是
编程时不规范.还有就是当子程序的容量过大时,怎样分段才能STL语言程序转换成LAD
语言程序显示.子程序容量或长度有什么限制.下例应怎样更改才是正确的.

//标题:双向变极调速三相感应电机

//输入

//I0.0 顺时针方向,低速.
//I0.1 顺时针方向,高速.
//I0.2 逆时针方向,低速.
//I0.3 逆时针方向,高速.
//I0.4 停机点动开关(带闭触点),OFF
//I0.5 电机电路断路器(常闭触点).

//输出

//Q0.0 电动起动器,顺时针方向,低速.
//Q0.1 电动起动器,顺时针方向,高速.
//Q0.2 电动起动器,逆时针方向,低速.
//Q0.3 电动起动器,逆时针方向,高速.
//Q0.4 停机信号灯.
//Q0.5 限时等待信号灯.

LD SMO.0 //设置堆栈的栈顶(SM0.0总是1).
CALL1 //调用子程序1.

LD I0.0 //若高速顺时针方向旋转命令
R Q0.1,1 //则复位高速顺时针方向旋转输出(Q0.1=0).

LD I0.1 //若高速顺时针方向旋转命令
R Q0.1,1 //则复位低速顺时针方向旋转输出(Q0.1=0).
LD I0.2 //若低速逆时针方向旋转命令.
R Q0.3,1 //则复位逆时针方向高速旋转输出(Q0.3=0).

LD I0.3 //若高速逆时针方向旋转命令.
R Q0.2,1 //则复位低速逆时针方向旋转输出(Q0.2=0).

LDN Q0.0
AN Q0.1
AN Q0.2
AN Q0.3
= Q0.4

//强制等待状态显示

LD M1,1 //关机后设置的强制等待辅助存储器标志.
A SM0.5 //指示灯以1秒闪烁.
= Q0.5 //点亮强制等待信号灯.

MEND //主程序结束.

//子程序1

SBR1 //子程序1开始.

//互锁

LD I0.0 //如果顺时针方向,低速旋转.
O I0.1 //或顺时针方向,高速旋转.
O I0.2 //或逆时针方向,低速旋转.
O I0.3 //或逆时针方向,高速旋转.
AN I0.4 //与停机点动开关(OFF)动作.

LD I0.1 //或......
O I0.2
O I0.3
A I0.0
OLD
LD I0.2 //或......
O I0.3
A I0.1
OLD
LD I0.2
A I0.3
OLD
LD M1.1 //或正在强制等待.
OLD
S M1.0,1 //则设置互锁状态标志M1.0=1.
//解除互锁

LD I0.4 //如果所有点动开关都没有动作.
AN I0.0
AN I0.1
AN I0.2
AN I0.3
AN M1.1
R M1.0,1 //则解除互锁(M1.0=0).

//顺时针方向低速旋转使能

LDN I0.1 //如果没有顺时针方向高速旋转命令.
LD I0.4 //没有停机命令(OFF).
A I0.5 //没有电动机电路断路器动作命令.
AN Q0.2 //逆时针低速旋转状态位未置位.
AN Q0.3 //逆时针高速旋转状态位未置位.
= M2.0 //则顺时针方向低速旋转使能(M2.0=1).

//顺时针方向高速旋转使能

LDN I0.0 //如果没有顺时针方向低速旋转命令.
LD I0.4 //没有停机命令(OFF).
A I0.5 //没有电动机电路断路器动作命令.
AN Q0.2 //逆时针低速旋转状态位未置位.
AN Q0.3 //逆时针高速旋转状态位未置位.
= M2.1 //则顺时针方向高速旋转使能(M2.1=1).

//逆时针方向高速旋转使能

LDN I0.3 //如果没有逆时针方向高速旋转命令.
LD I0.4 //没有停机命令(OFF).
A I0.5 //没有电机电路断路器动作命令.
AN Q0.0 //顺时针低速旋转状态位未置位.
AN Q0.1 //逆时针高速旋转状态位未置位.
= M2.2 //则逆时针方向低速旋转使能(M2.2=1).

//逆时针方向高速旋转使能

LDN I0.2 //如果没有逆时针方向低速旋转使能.
LD I0.4 //没有停机命令(OFF).
A I0.5 //没有电机电路断路器动作命令.
AN Q0.0 //顺时针低速旋转状态位未置位.
AN Q0.1 //顺时针高速旋转状态位未置位.
= M2.3 //则逆时针方向高速旋转使能.

//顺时针方向低速旋转

LD I0.0 //如果顺时针方向低速旋转命令.
O QO.0 //或顺时针方向低速旋转状态.
AN M1.0 //且没有互锁.
A M2.0 //顺时针方向低速旋转使能.
= Q0.0 //则置顺时针方向低速旋转输出Q0.0=1.

//顺时针方向高速旋转

LD I0.1 //如果顺时针方向高速旋转命令.
O Q0.1 //或顺时针方向高速旋转状态.
AN M1.0 //且没有互锁.
A M2.1 //顺时针方向高速旋转.
= Q0.1 //则置顺时针方向高速旋转输出Q0.1=1.

//逆时针方向低速旋转

LD I0.2 //如果逆时针方向低速旋转命令.
O Q0.2 //或逆时针方向低速旋转状态.
AN M1.0 //且没有互锁.
A M2.2 //逆时针方向低速旋转使能.
= Q0.2 //则置位逆时针方向低速旋转输出Q0.2=1.

//逆时针方向高速旋转

LD I0.3 //如果逆时针方向高速旋转命令.
O Q0.3 //或逆时针方向高速旋转状态.
AN M1.0 //且没有互锁.
A M2.3 //逆时针方向高速旋转使能.
= Q0.3 //则置逆时针方向高速旋转输出Q0.3=1.

LD Q0.4 //关机过程的边沿检测.
EU //上升沿.
S M1.1,1 //将关机过程的辅助存储器标志置位(M1.1=1).
LD M1.1
MOVW 500,VW20 //装载重新起动前必须有等待的时间值(500X10ms).
TON T33,VW20 //起动重新起动要强制等待的定时器(T33).
A T33
R M1.1,1 //定时器溢出后将辅助存储器标志位复位(M1.1=0).
MOVW O,T33 //清除强制等待定时器(T33).
RET //子程序1结束.
子程序应用问题等 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33289条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。