前辈好,我是初学者,可否请您讲解下下列程序?每一行帮忙进行中文解释。比如: JNB MW _001:Nop 等是什么意思?谢谢
首先利用系统时钟,取1秒脉冲,如m100.5(1秒)脉冲。用这个脉冲建立1小时定时器(3600秒)程序:
A M 950.2 //启动条件
A M 100.5 //秒脉冲
FP M 200.1
JNB _001
L MW 0
L 1
+I
T MW 0
_001: NOP 0
////建立1小时循环////
A(
L MW 0
L 3600
==I
)
JNB _002
L 0
T MW 0
_002: NOP 0
///小于10秒激活(启动)///
A M 950.2
A(
L 10
L MW 0
<=I
)
= M 200.0 //M200.0S是每一个小时激活10秒钟的标志位
最佳答案
这个程序的控制思路是:(实际上上次我回答的是lad梯形图,你直接复制到step7(stl)然后再转换为梯形图比较容易看懂。
首先设置在cpu系统时钟,系统时钟标志位为一个字节的时钟脉冲。建立这个时钟脉冲在cpu属性中的“周期/时钟存储器”--勾选并输入一个存储器字节,如题输入100,则MB100就是整个时钟脉冲信号了,关于时钟存储器设置:
字节位 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
频率(Hz) 0.5 0.62 1 1.25 2 2.5 5 10
周期(秒) 2 1.6 1 0.8 0.5 0.4 0.2 0.1
这样MB100的第五位对应的是1秒的时钟脉冲。
A M 950.2 //这个是你所需要扩展启动这个定时器的条件位
A M 100.5 //系统时钟秒脉冲
FP M 200.1 //取上升沿指令,因为不加上升沿是会产生一个周期内多次加1的原因
JNB _001 //当逻辑的运算结果不为1时,跳转到_001,不执行加的指令,保证每一秒加一次,上升沿指令也是必须的,不然在1秒内会累加多次。
L MW 0
L 1
+I
T MW 0 //MW0的累加(累加3600秒=1小时的时钟数据存储器)
_001: NOP 0
///建立1小时的循环机制///
A(
L MW 0
L 3600
==I
)
JNB _002 //同样的条状指令,只要MW0等于3600就执行清零,否则不执行
L 0
T MW 0
_002: NOP 0
A M 950.2 //你原程序的控制条件
A(
L 11
L MW 0 //当MW0小于11时,接通标志位M200.0
<=I
)
= M 200.0 //M200.0是每一个小时激活10秒钟的标志位
仔细想了想,应该写与11的比较,才比较合理,如果是与10比较,相当于只有到9秒的工作机制。
提问者对于答案的评价:
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc184140.html