您现在所在的是:

西门子SIEMENS

回帖:11个,阅读:3153 [上一页] [1] [2] [下一页]
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/2/25 9:01:00
#0楼

仿真器: PLCSIM5.2
组态: CPU-313C,period-2000ms,minimum pulse-100ms

第一次使用SFB49,调试SFB49功能的全部程序如下,请大虾赐教:

STAR:       SET
                R  M2.3 //预备作业请求
  L  MB 18 //检查初始化标志
L  18
<>I //不相等,进行初始化
JN  S0
==I //相等,则进行下一步
JZ  S1
S0: L  0 //清作业完成标志
T  MB19
L  2
T  MW0 //置脉冲通道为2
SET
S  M2.0 //打开软件门
L  1000 //PWM输出值(ms)
T  MW3
L  W#16#0
T  MW5 //作业号置0
L  18
T  MB18 //置初始化标志
JU  CAON //调用SFB49
//检查作业号
S1: L  MB19
L  19
==I //相等则作业完成
JZ  END1
L  MW5
L  W#16#1
==I //为作业号1,调用SFB49,写周期长度
JZ  CAON
//检查作业号
L  MW5
L  W#16#4
==I //为作业号4,调用SFB49,写最小脉冲宽度
JZ  CAON
//检查作业号
L  MW5
L  W#16#81
==I //为作业号H81,调用SFB49,写读取周期长度
JZ  CAON
//检查作业号
L  MW5
L  W#16#84
==I //为作业号H84,调用SFB49,读取最小宽度
JZ  CAON
L  0 //作业号错误处理
T  MW5
T  MB18
T  MB19
JU STAR
////////////////////////////////////////////////////////
CAON: CALL SFB49,DB49
LADDR:=W#16#768
CHANNEL:=MW0 //通道号
SW_EN:=M2.0 //软件门
MAN_DO:=2.1
SET_DO:=M2.2
               JOB_REQ:=M2.3         //作业请求
OUTP_VA:=MW3 //PWM输出值
JOB_ID:=MW5 //作业号
JOB_VAL:=MD7 //写作业请求值
STS_EN:=M11.0 // ENABLE STATUS
STS_STRT:=M11.1
STS_DO:=M11.2 //OUTPUT STATUS
JOB_DONE:=M11.3 //NEW JOB CAN BE STARTED
JOB_ERR:=
JOB_STAT:=
/////////////////////////////////////////////////////////////
SET
S  M2.3 //作业请求
L  MW5
L  W#16#84
==I
JZ  END //作业请求完成
WAIT: A  M11.3
JC  GG
JU  WAIT //等待新作业允许
GG: L  MW5
L  0
==I
JZ  SS1 //更改作业号为 W#16#01
L  MW5
L  W#16#01
==I
JZ  SS2 //更改作业号为 W#16#04
L  MW5
L  W#16#04
==I
JZ  SS4 //更改作业号为 W#16#81
L  MW5
L  W#16#81
==I
JZ  SS4 //更改作业号为 W#16#84
    L  MW5
L  W#16#84
==I
JZ  END //作业完成

SS1: L  1
T  MW5
L  L#2000
T  MD7 //写周期长度为2000ms
JU CAON

SS4: L  4
T  MW5
L  L#100
T  MD7 //写最小脉冲宽度为100ms
JU  CAON

SS81: L  W#16#81
T  MW5
L  L#3000
T  MD7 //写读取周期长度为3S
JU  CAON

SS84: L  W#16#84
T  MW5
L  L#100
T  MD7 //读取最小宽度为100ms
JU  CAON

END: L  19
T  MB  10
END1: NOP






    祝你快乐!
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/2/25 9:35:00
#1楼
更正:
END:  L  19
        T  M19
END1: NOP 0
    祝你快乐!
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/2/25 14:51:00
#2楼
大虾若能COPY一个调试好的调用SFB49的实例,放在这上面就更好,谢谢!

    祝你快乐!
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/2/25 16:04:00
#3楼
SFB49中的JOB_DONE9(作业完成)是一个由1变0脉冲,怎么样才能捕获?

我用下面方法好象不行:

SET

S M2.3 //作业请求



WAIT: A M11.3



JNC GG



JU WAIT //等待新作业允许
    祝你快乐!
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/2/28 10:44:00
#4楼
请大虾赐教,谢谢!
    祝你快乐!
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/2/28 15:26:00
#5楼
用了FN命令也不行,好象是没有产生一个JOB_DONE脉冲,上面程序问题在哪里,

请大虾赐教,谢谢!

SET

S M2.3 //作业请求

WAIT: A M11.3

FN M30.0

JC GG

JU WAIT //等待新作业允许

没有产生JOB_DONE脉冲,就不能进行新的作业.
怎么样才能产生JOB_DONE脉冲?
    祝你快乐!
1320
Shyer
文章数:149
年度积分:50
历史总积分:1320
注册时间:2004/3/16
发站内信
发表于:2005/3/2 13:33:00
#6楼
请教楼主,现在调试好了吗?OUT_PVAL是指什么,是指要输出的脉冲总的个数吗?怎么是INT型的呀,是不是太小了啊,那就是一次只能输出32000多个脉冲啊?
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/3/2 14:23:00
#7楼
问题没查出,还没有调试好
OUTP_VAL是输出值(default output value),范围是0-27648,是INT型.
我的理解是脉冲宽度,不是输出的脉冲总的个数,不知对否?
问题就卡在没有出现JOB_DONE脉冲处.
请大虾赐教,谢谢!
    祝你快乐!
1320
Shyer
文章数:149
年度积分:50
历史总积分:1320
注册时间:2004/3/16
发站内信
发表于:2005/3/2 15:39:00
#8楼
那脉冲个数呢?比如我想输出10000个脉冲就停止,怎么做?西门子的资料太少了,而且参数特多,烦! 还有你说是脉冲宽度?那怎么在组态硬件时有三个选项“一个是选时基1ms/0.1ms,一个是选周期,一个是选最小脉冲宽度“  。就是说在组态硬件时就已经把这些固定好了,那怎么还要在写程序时写这些参数呢?
2405
ybdsy
文章数:485
年度积分:50
历史总积分:2405
注册时间:2004/2/27
发站内信
发表于:2005/3/3 18:06:00
#9楼
更正: 新作业允许时JOB_DONE=1.
有详细的实例就好了,给出的例子不明不白,浪费很多时间.
    祝你快乐!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004