CPU 313C-2DP 使用0,1通道计数,只有最后一个调用返回正确计数值,其余调用返回计数值均为零,每个调用使用不同背景数据块或都使用同一数据块都不行,急了,请给予帮助,谢谢
程序如下:
A #Sw_Gate_t
= L 31.0
BLD 103
A #S_RESETCOUNT
= L 31.3
BLD 103
CALL "COUNT" , #I_CounDB
LADDR :=W#16#300
CHANNEL :=#I_Chenal
SW_GATE :=L31.0
CTRL_DO :=
SET_DO :=
JOB_REQ :=L31.3
JOB_ID :=W#16#1
JOB_VAL :=L#0
STS_GATE:=
STS_STRT:=
STS_LTCH:=
STS_DO :=
STS_C_DN:=
STS_C_UP:=
COUNTVAL:=#S_Count
LATCHVAL:=
JOB_DONE:=
JOB_ERR :=
JOB_STAT:=#S_JOB_ERR
NOP 0
该程序封装在一个FB中,由Motor 1和Motor2两个FB各自调用,背景数据块和CHANNEL均同外部引入,请给予帮助,谢谢
看到有类似贴子:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=21917&cid=1029
quote:
CPU 313C-2DP可支持3个通道的高速计数器,其计数频率为30KHZ。
需要对2个通道进行分别配置,主要是设置操作模式、软/硬件门、输出比较行为等等。在程序中需调用2次SFB47,除需分配不同的背景数据块(DB1,DB2)外,还需要指定相应的通道号。
至于计数值并非用OB40来处理,直接读取DB块中的数值即可(DB1/2.DBD14)。
是直接读DB*.DBD14即可吗?