回复:一个比较有意思的编程小题目,来自工控网,转到这儿来希望抛砖引玉

icegrave

  • 帖子

    249
  • 精华

    2
  • 被关注

    8

论坛等级:侠客

注册时间:2011-03-04

普通 普通 如何晋级?

发布于 2011-08-19 16:43:44

15楼

我也写了个,累计脉冲时间间隔的。脉冲输入翻转M0.0,建一个连续的存储区,来存放8次时间间隔的数值,M0.0每翻转一次就就累加一次,如果累计值小于一分钟就输出报警。
TITLE=程序注释
Network 1
// 建立入栈指针和累计指针 ,上电复位
LD SM0.1
MOVD &VB100, VD16
MOVD &VB100, VD22
MOVB 0, VB20
MOVD 0, VD26
FILL 0, VW100, 20
R M0.0, 1
Network 2 // 网络标题
// 网络注释
LD I0.0
EU
LD I0.1
EU
OLD
LD I0.2
EU
OLD
LD I0.3
EU
OLD
CALL SBR0, M0.0
Network 3
// m0.0上升沿计时
LD M0.0
= L60.0
LD M0.0
= L63.7
LD L60.0
CALL SBR1, L63.7
Network 4
// m0.0下降沿计时
LDN M0.0
= L60.0
LDN M0.0
= L63.7
LD L60.0
CALL SBR2, L63.7
Network 5
// 上升沿入栈
LD M0.0
EU
CALL SBR3, 9
Network 6
// 下降沿入栈
LD M0.0
ED
CALL SBR3, 9
Network 7
// 时间间隔累加
LD M0.0
EU
CALL SBR4, 8
Network 8
LD M0.0
ED
CALL SBR4, 8
Network 9
LDW< VW26, 600
= Q0.0
点翻转
LDN #翻转点:L0.0
= #翻转点:L0.0
计时1
LD #in:L0.0
TON T37, VW10
MOVW T37, VW8
计时2
LD #in:L0.0
TON T38, VW10
MOVW T38, VW8
入栈
LD SM0.0
MOVW VW8, *VD16
+D 2, VD16
INCB VB20
AB>= VB20, #堆栈长度:LB0
MOVB 0, VB20
AENO
MOVD &VB100, VD16
累加
Network 2
LD SM0.0
FOR LW2, 1, LW0
Network 3
LD SM0.0
+I *VD22, VW26
+D 2, VD22
Network 4
NEXT



生命就是次单程旅行
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33289条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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