李倩 发表于 2013-5-9 14:44:47

西门子S7-300的SFB49怎么用啊?PWM怎么发不出脉冲?

我的脉冲频率100HZ,占空比在0~100%要可调,CPU是313C-2DP,研究了好久也没头绪,不知道SFB49这么设置,时间基准及脉冲周期这么设,如何改变占空比,请多多指教。

单培娟 发表于 2013-5-9 14:49:47

使用SFB 49 "PULSE"控制脉宽调制描述——要通过用户程序控制脉宽调制,请使用SFB ANALOG (SFB 49)。可以使用下列操作:?通过软件门SW_EN开始/结束?使能/控制输出DO?检索状态位STS_EN、STS_STRT和STS_DO?输入输出值?读/写寄存器的作业参数参数 声明 数据类型 地址(实例DB) 取值范围: 默认 含义LADDR INPUT WORD0 CPU专用 W#16#0300 子模块的I/O地址,由您在"HW Config"中指定。如果E和A地址不相等,则必须指定二者中较低的一个。CHANNEL INPUT INT2 CPU 312C:0到1CPU 313C:0到2CPU 314C:0至3 0 通道号:SW_EN INPUT BOOL4.0 TRUE/FALSE FALSE 用于开始/停止输出的软件门MAN_DO INPUT BOOL 4.1 TRUE/FALSE FALSE 手动输出控制使能SET_DO INPUT BOOL 4.2 TRUE/FALSE FALSE 控制输出 OUTP_VAL INPUT INT 6.0 单位ppm:0 - 1,000S7模拟值:0 - 27,648 0 默认输出值 如果输入的输出值 > 1 000或27648,CPU会将其限制为1,000或27,648JOB_REQ INPUT BOOL 8.0 TRUE/FALSE FALSE 作业初始化(上升沿)JOB_ID INPUT WORD 10 W#16#0000 =无功能作业W#16#0001 = 写周期W#16#0001 = 写延时W#16#0004 = 写最小脉冲周期W#16#0081 = 读周期W#16#0081 = 读延时W#16#0084 = 读最小脉冲周期 W#16#0000 作业号JOB_VAL INPUT DINT12 -2到-1+2 0 写作业的值。STS_EN OUTPUT BOOL 16.0 TRUE/FALSE FALSE 状态使能STS_STRT OUTPUT BOOL 16.1 TRUE/FALSE FALSE 硬件门的状态(开始输入)STS_DO OUTPUT BOOL 16.2 TRUE/FALSE FALSE 输出状态JOB_DONE OUTPUT BOOL 16.3 TRUE/FALSE TRUE 可以启动新作业JOB_ERR OUTPUT BOOL 16.4 TRUE/FALSE FALSE 故障作业JOB_STAT OUTPUT WORD 18 W#16#0000至W#16#FFFF W#16#0000 作业错误号
页: [1]
查看完整版本: 西门子S7-300的SFB49怎么用啊?PWM怎么发不出脉冲?