发布于 2012-08-12 11:33:04
65楼
思路:把不同步的任务顺次放在vb10、vb12、vb14、vb16、vb18、vb20中,由vb100按要求的周期顺次读取;比较判断vb100中的数,不同的数对应不同的任务。这里我写了一个可完成6步任务的程序。不知行不行?另外指针变量编程一直没有用过,不知怎么用?
ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1
LD I0.0 //i0.0为循环开始按钮,
MOVW 0, VW200 //计数、计时清零
Network 2
LD SM0.5 //sm0.5脉冲周期 1秒,
EU
+I 1, VW200 //每秒计数1次,改变加数的基数即可改变周期。
Network 3
// 不同步的任务顺次放在vb10、vb12、vb14、vb16、vb18、vb20中,由vb100按每1秒的周期顺次读取.
LD SM0.0
LPS
AW= 1, VW200
MOVB VB10, VB100 //第1步,将vb10的值移入vb100
LRD
AW= 2, VW200
MOVB VB12, VB100 //第2步,将vb12的值移入vb100
LRD
AW= 3, VW200
MOVB VB14, VB100 //第3步,将vb14的值移入vb100
LRD
AW= 4, VW200
MOVB VB16, VB100 //第4步,将vb16的值移入vb100
LRD
AW= 5, VW200
MOVB VB18, VB100 //第5步,将vb18的值移入vb100
LRD
AW= 6, VW200
MOVB VB20, VB100 //第6步,将vb20的值移入vb100
LPP
AW= 7, VW200
MOVW 0, VW200 //循环完后,将计数、计时清零 ,重新开始。
Network 4
//根据vb100的值判断,每步的任务.
LD SM0.0
LPS
AB= 1, VB100 //判断不同步数对应的任务。
= Q0.0
LRD
AB= 2, VB100
= Q0.1
LRD
AB= 3, VB100
= Q0.2
LRD
AB= 4, VB100
= Q0.3
LRD
AB= 5, VB100
= Q0.4
LPP
AB= 6, VB100
= Q0.5
END_ORGANIZATION_BLOCK