第3个回答 2012-05-28
以双向计数器S_CUD 为例
参数
CU BOOL I、Q、M、L、D 升值计数输入
CD BOOL I、Q、M、L、D 降值计数输入
S BOOL I、Q、M、L、D 为预设计数器设置输入
PV WORD I、Q、M、L、D
或常数 将计数器值以"C#<值>"的格式输入(范围0至999)
PV WORD I、Q、M、L、D 预设计数器的值
R BOOL I、Q、M、L、D 复位输入
CV WORD I、Q、M、L、D 当前计数器值,十六进制数字
CV_BCD WORD I、Q、M、L、D 当前计数器值,BCD码
Q BOOL I、Q、M、L、D 计数器状态
描述
如果输入S有上升沿,S_CUD(双向计数器)预置为输入PV的值。如果输入R为1,则计数器复位,并将计数值设置为零。如果输入CU的信号状态从"0"切换为"1",并且计数器的值小于"999",则计数器的值增1。如果输入CD有上升沿,并且计数器的值大于"0",则计数器的值减1。
如果两个计数输入都有上升沿,则执行两个指令,并且计数值保持不变。
如果已设置计数器并且输入CU/CD为RLO = 1,则即使没有从上升沿到下降沿或下降沿到上升沿的变化,计数器也会在下一个扫描周期进行相应的计数。
如果计数值大于等于零("0"),则输出Q的信号状态为"1"。
状态字
BR CC 1 CC 0 OV OS OR STA RLO /FC
写: - - - - - x x x 1
注意避免在多个程序点使用同一计数器(可能出现计数出错)。
安装一个S7-PLCSim 就可以模拟实验了