模拟量处理

已锁定

  • 帖子

    4
  • 精华

    0
  • 被关注

    1

论坛等级:新手

注册时间:2005-09-17

普通 普通 如何晋级?

模拟量处理

592

5

2008-01-23 14:28:03

下面这段程序是EM235模拟量输入处理程序,出自S7200系统手册上的例子,大家肯定非常熟悉。但是有个问题请教:
在SBR3中
LDW<= VW20, -160 //如果平均值为负
R Q0.0, 1 //则关断Q0.0
S Q0.1, 1 //且接通Q0.1,用来显示当前平均值为负
此段程序中的-160从何而来?



以下为源程序:

ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.1
CALL SBR0

Network 2
LD SM0.0
CALL SBR1

Network 3
LDN Q1.0
AN Q1.1
CALL SBR2


CALL SBR3
Network 4


END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
O I0.1
MOVW 0, VW0
MOVW 128, VW2
MOVD 0, VD10
MOVD 0, VD14

MOVD 0, VD18
Network 2


END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_1:SBR1
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 检查第一个扩展模块是否存在,若不存在,则置位Q1.0
LDB= SMB8, 16#19
NOT
S Q1.0, 1

Network 2
// 检查第一个扩展模块是否有错,
// 检查第一个扩展模块电源是否正常,若有错,则置位Q1.1
LDB= SMB9, 16#0
NOT
AB= SMB9, 16#04
S Q1.1, 1


END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_2:SBR2
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
MOVW AIW0, VW12


Network 2
LDW>= VW12, 0
MOVW 0, VW10
NOT
MOVW 16#FFFF, VW10


Network 3
LD SM0.0
+D VD10, VD14
INCW VW0


Network 4
LDW>= VW0, VW2
MOVD VD14, VD18
ENCO VW2, AC1
SRD VD18, AC1
MOVD 0, VD14
MOVW 0, VW0


END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_3:SBR3
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LDW<= VW20, -160 //如果平均值为负
R Q0.0, 1 //则关断Q0.0
S Q0.1, 1 //且接通Q0.1,用来显示当前平均值为负


Network 2
LDW>= VW20, 160 //如果平均值为正
R Q0.0, 1 //则接通Q0.0
S Q0.1, 1 //且关断Q0.1,用来显示当前平均值为正。

Network 3
LD SM0.0
MOVW VW20,AQW0 //在模块AQW0输出平均值
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK
模拟量处理 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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