关于温度控制的问题

已锁定

xiaoxi

  • 帖子

    10
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2005-01-18

普通 普通 如何晋级?

关于温度控制的问题

585

6

2005-01-22 17:22:17

各位大虾:
我刚接触S7-200不久,试着编了一个小程序,但无法实现预定功能。
要实现的功能:对一水箱进行温度控制(假设设定值为40摄氏度),0---10摄氏度,加热器输出功率100%(输出全1),10---20摄氏度,加热器输出功率为50%,20---40摄氏度,加热器输出功率为25%;想用脉宽调制实现(设定周期为4秒),通过温度变送器采集水温,经EM235读入模拟量,与设定值比较。
目前只能执行到输出全1,就不能继续执行。
急盼回音!!!!!!!!!

程序如下:

MAIN //
LD SM0.1
R A0.1, 2
CALL SBR_0 //初始化

NETWORK 2
LD SM0.0
CALL SBR_1 //模拟量采集
NETWORK3
LDW>= VW20, VW114 //采样值(VW20)与第一个设定值(vw114---10摄氏度 )比较
S E0.0, 1
ATCH INT_0, 0
NETWORK4
LDW>= VW20, VW118 //采样值(VW20)与第二个设定值(vw118-----20摄氏度)比较
S E0.0, 1
ATCH INT_1, 0
NETWORK5
LDW>= VW20, VW110 //采样值(VW20)与第三个设定值(vw110----40摄氏度)比较
S E0.0, 1
ATCH INT_2, 0
END

子程序0 实现的是初始化一些用到的寄存器和启动PWM
SBR_0
LD SM0.0
MOVW +0, VW0
MOVW +64, VW2
MOVD +0, VD10
MOVD +0, VD14
MOVD +0, VD18
MOVW +13227, VW110 //40度
MOVW +8107, VW114 //10度
MOVW +11520, VW118 //20度
MOVB 16#DB, SMB77
MOVW +4000, SMW78
MOVW +4000, SMW80
ENI
PLS 1 // (占空比100%)

MOVB 16#DA, SMB77
CRET

子程序1实现的是读模拟量,采样64次求和
SBR_1
LD SM0.0
MOVW AEW2, VW12
LDW>= VW12, +0
MOVW +0, VW10
NOT
MOVW 16#FFFF, VW10
LD SM0.0
+D VD10, VD14
INCW VW0
LDW>= VW0, VW2
MOVD VD14, VD18
ENCO VW2, AC1
SRD VD18, AC1
MOVD +0, VD14
MOVW +0, VW0
CRET

中断0实现的是改变脉宽,使脉宽为2秒(占空比50%)
INT_0
-I +2000, SMW80
PLS 1
DTCH 0
CREI

中断1实现的是改变脉宽,使脉宽为1秒 (占空比25%)
INT_1
-I +3000, SMW80
PLS 1
DTCH 0
CRETI
中断1实现的是停止 (占空比0%)
INT_2
-I +4000, SMW80
PLS 1
DTCH 0
CRETI




关于温度控制的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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