定时器 编译没问题 但是 计数器 类型是 counter
currval:= S_CU(c_no:=myc,cd:=true, cv:=cv); 我定义的 currval 和 c_no 都是 counter 类型 ,具体见下面的图片 , 我知道 在scl 里随便 一个 if 和加法 就能 替代计数器 ,但是 我就想 知道 在scl里 计数器怎么用 ,求 指导
图片说明:
最佳答案
1、计数器分加(S_CU)、减(S_CD)和加减(S_CUD)三种功能可调用,并带BCD码类型返回值。
2、既然定义了myc为COUNTER类型,那么还需声明计数器其它的I/O形参用于调用。示例如下:
FUNCTION_BLOCK FB11
VAR_INPUT
myc : COUNTER ;
END_VAR
VAR_OUTPUT
RESULT : INT ;
END_VAR
VAR
SET : BOOL := TRUE ;
RESET : BOOL ;
BCD_V: WORD ; // BCD码数值
BIN_V : WORD ; // 二进制数值
INIT_V : WORD := 16#0089;
ACT_Flag : BOOL ;
END_VAR
BEGIN // 调用S_CD减计数
BCD_V := S_CD (C_NO := myc,
CD := TRUE ,
S := SET ,
PV := INIT_V,
R := RESET ,
CV := BIN_V ,
Q := ACT_Flag) ;
RESULT := WORD_TO_INT (BIN_V) ; // OUT参数处理
END_FUNCTION_BLOCK
提问者对于答案的评价:
非常感谢您的指导 ,我试了下 在 fb 和fc 中 还是有点不同的, 还有就是 为什么要 Word_TO_ INT ,我直接用 Word 不行吗
专家置评
TIA 博途下的SCL编程界面比较友好,计数器指令可以直接拖拽至程序中。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc225515.html