帮忙看一下程序

已锁定

茶园老井

  • 帖子

    4
  • 精华

    0
  • 被关注

    2

论坛等级:新手

注册时间:2009-03-20

普通 普通 如何晋级?

帮忙看一下程序

880

10

2009-03-24 17:48:53

S7-200用脉冲输出测试高速计数器,不知为什莫I0.0每输入一个脉冲, HC0计数器变化10几,明显不对,请高手赐教!

程序附后!

ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL SBR1, L63.7, 10000, 5000, MB2
Network 2
LD SM0.1
CALL SBR2
Network 3
LD I0.6
R Q0.0, 4
Network 4 //
LDD>= HC0, 46
EU
S Q0.0, 4
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK PWM1_RUN:SBR1
TITLE=
VAR_INPUT
RUN:BOOL;
Cycle:WORD;
Pulse:WORD;
END_VAR
VAR_OUTPUT
Error:BYTE;
END_VAR
BEGIN
Network 1 // 此 POU 受密码保护,不能编辑和查看。

END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK HSC_INIT:SBR2
TITLE=
BEGIN
Network 1 // HSC 指令向导
// 要在程序中使用此配置,请在主程序块中使用 SM0.1 或一条沿触发指令调用一次此子程序。
// 配置 HC0 为模式 0;CV = 15; PV = 500;增计数;
// 连接中断程序 COUNT_EQ 到事件 12 (HC0 的 CV = PV)。
// 开放中断和启动计数器。
//
LD SM0.0
MOVB 16#F8, SMB37 //设置控制位:增计数;已使能;
MOVD 0, SMD38 //装载 CV
MOVD +50, SMD42 //装载 PV
HDEF 0, 0
ATCH INT1, 12 //中断程序 COUNT_EQ:HC0 的 CV = PV
ENI
HSC 0
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK
INTERRUPT_BLOCK COUNT_EQ:INT1
TITLE=
BEGIN
Network 1 // HSC 指令向导
// (CV = PV) 的第 1 步/共 2 步;HC0
// 编程动态改变 HC0 的参数;CV = 18;
// 连接中断程序 HSC0_STEP1 到事件 12 (HC0 的 CV = PV)。
// 启动计数器。
//
LD SM0.0
MOVD 0, SMD38 //设置控制位:写入当前值;
ATCH INT2, 12 //CV = 18;
HSC 0 //中断程序 HSC0_STEP1:HC0 的 CV = PV
END_INTERRUPT_BLOCK
INTERRUPT_BLOCK HSC0_STEP1:INT2
TITLE=
BEGIN
Network 1 // HSC 指令向导
// (CV = PV) 的第 2 步/共 2 步;HC0
// 编程动态改变 HC0 的参数;
// 启动计数器。
//
LD SM0.0
MOVB 16#80, SMB37 //设置控制位:
HSC 0
MOVW 3840, QW0
END_INTERRUPT_BLOCK


lei_starter@126.com
帮忙看一下程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33277条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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