求教编程技巧(关于一具体实例)

已锁定

JulyAug

  • 帖子

    566
  • 精华

    4
  • 被关注

    3

论坛等级:侠士

注册时间:2003-08-13

普通 普通 如何晋级?

求教编程技巧(关于一具体实例)

1445

14

2004-12-13 19:50:42

I1的通断由T1和T2控制,T1控制导通时间,T2控制关断时间,不断循环。I1导通时,Q1导通,Q2比Q1延迟T3导通,输出波形相同,以此类推一直到Q13为一个周期。T1+T2>13*T3

我是这样来做的,但感觉太冗长了,不知各位仁兄是否有更好的办法。
请看SBR1和SBR2部分。
SUBROUTINE_BLOCK SBR_1:SBR1
TITLE=子例行程序注释
BEGIN
Network 1 // 一循环结束给计时复
LD Q2.2
ED
R T5, 1
Network 2 // T5: I1 on time . 100ms为一单位
LD I0.1
TONR T5, +32767
= Q0.0
Network 3 // 模拟电位器的值转化为0-30000ms的时间值。即T3 以10ms为一单位.0-255 ----0---30s
smw28/17*100 作为T3的脉冲
// 网络注释
LD SM0.0
LPS
MOVW SMW28, VW0
AENO
ITD VW0, VD2
AENO
DTR VD2, VD6
AENO
LPS
MOVR VD6, VD14
AENO
*R 5.88, VD14
AENO
ROUND VD14, VD18
LPP
MOVR VD6, VD10
/R 8.5, VD10
LPP
CALL SBR_2, VW50
Network 4
LD V50.4
LD I0.1
EU
OLD
MOVW +1, VW50
Network 5 // 产生延时脉冲。
LDN V50.4
AN T34
TON T33, VW20
Network 6
LD T33
TON T34, VW20
Network 7
LD I0.1
OW>= VW50, +2
A T33
EU
SLW VW50, 1
END_SUBROUTINE_BLOCK

SUBROUTINE_BLOCK SBR_2:SBR2
TITLE=子例行程序注释
VAR_INPUT
vw_n:INT;
END_VAR
BEGIN
Network 1
LDW= LW0, +2
S Q0.1, 1
Network 2
LD Q0.1
TON T37, T5
Network 3
LD T37
R Q0.1, 1
Network 4
LDW= LW0, +4
S Q0.2, 1
Network 5
LD Q0.2
TON T38, T5
Network 6
LD T38
R Q0.2, 1
Network 7
LDW= LW0, +8
S Q0.3, 1
Network 8
LD Q0.3
TON T39, T5
Network 9
LD T39
R Q0.3, 1
Network 10
LDW= LW0, +16
S Q0.4, 1
Network 11
LD Q0.4
TON T40, T5
Network 12
LD T40
R Q0.4, 1
Network 13 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
做了四个,余下的暂时省略。

点击此处查看附件
求教编程技巧(关于一具体实例) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33274条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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