我的脉冲频率100HZ,占空比在0~100%要可调,CPU是313C-2DP,研究了好久也没头绪,不知道SFB49这么设置,时间基准及脉冲周期这么设,如何改变占空比,请多多指教。
图片说明:
最佳答案
使用SFB 49 "PULSE"控制脉宽调制描述——
要通过用户程序控制脉宽调制,请使用SFB ANALOG (SFB 49)。
可以使用下列操作:
?通过软件门SW_EN开始/结束
?使能/控制输出DO
?检索状态位STS_EN、STS_STRT和STS_DO
?输入输出值
?读/写寄存器的作业
参数
参数 声明 数据类型 地址(实例DB) 取值范围: 默认 含义
LADDR INPUT WORD 0 CPU专用 W#16#0300 子模块的I/O地址,由您在"HW Config"中指定。如果E和A地址不相等,则必须指定二者中较低的一个。
CHANNEL INPUT INT 2 CPU 312C:
0到1
CPU 313C:
0到2
CPU 314C:
0至3 0 通道号:
SW_EN INPUT BOOL 4.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,648
JOB_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 DINT 12 -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 作业错误号
未分配给块的参数(本地统计数据):
...........................
详见——
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=57696&cid=1029
另外,还可下载——
“S7-300C脉宽调制功能”:
http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0015.zip
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=22734&cid=1029
提问者对于答案的评价:
谢谢!!搞定了!!!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc245509.html