《现代电器控制及PLC应用第二版》第7章的问题
1 计数范围是0-255
2 计数脉冲是SM0.5
3 当外部输入I0.0的状态改变时触发中断1/0, 中断1将M0.0置位,中断0将M0.0复位
4 当M0.0=1时,计数器加计数,当M0.0=0时计数器减计数
5 计数器数值通过QB0七段码显示。
我的分析如下: SM0.5为0.5S通/0.5S断的脉冲。 方向控制为I0.0,不要求复位信号, 增减计数, 所以我选择 1号计数器,工作模式为6
当M0.0=1时 将FB写入 SMB47 255送入SMB48 当M0.0=0时 将F0送入SMB47 255 送入SMB48
我的问题:
1 这个程序中 当没有外部输入时怎么定义高速计数器?
2 I0.0我认为是外部方向控制 通过I0.0来调用中断对M0.0的状态进行控制 ,是不是可以认为I0.0就是外部方向控制?
3 当没有外部中断时,计数器如何计数?
主程序:
网络1
LD SM0.1 初始化脉冲
CALL SBR_0:SBR0 调用子程序
HDEF 1, 6 高速计数器选择1号 工作模式6
HSC 1 启动高速计数器
网络2
LD SM0.5 计数脉冲
HSC 1
网络3
LD SM0.0
MOVD HC1, VD100 读高数计数器的值送入VD100
DTI VD100, VW400 将整数转换为双子
ITB VW400, VB200 字转换为字节
SEG VB200, QB0 VB200的值送入QB0 七段码
SRB VB200, 4
SEG VB200, QB0
子程序:
网络1
LD I0.0 I0.0上升沿时调用中断程序0 中断事件号为0
ATCH INT_0:INT0, 0
ENI
网络2
LD I0.1 I0.0上升沿时调用中断程序1 中断事件号为1
ED
ATCH INT_1:INT1, 1
ENI
0号中断程序:
LD SM0.0
S M0.0, 1 置位M0.0
MOVB 16#F8, SMB47 将FB送入高速计数器SMB47控制位 加计数
MOVD 0, SMD48 清零高速计数器初始值
HDEF 1, 6 定义高速计数器
HSC 1 启动
1号中断程序:
LD SM0.0
R M0.0, 1 复位M0.0
MOVB 16#F0, SMB47 F0送入高速计数器SMB47控制位 减计数
MOVD 0, SMD48 清零高速计数器
HDEF 1, 6 定义
HSC 1 启动