SCL 语言之计数器函数S_CU,简单吗?
可使用“分配参数并加计数”指令递增计数器值。当 CU 参数的信号状态从“0”变为“1”(信号上升沿)时,当前计数器值递增 1。通过参数 CV 提供当前计数器值。计数器值达到上限 999 后,停止增加。如果达到限值,即使出现信号上升沿,计数器值也不再递增。当参数 S 的信号状态从“0”变为“1”时,计数器值将置位为参数 PV 的值。如果置位计数器且输入 CU 处的逻辑运算结果 (RLO) 为“1”,即使没有检测到信号边沿变化,计数器也会在下一周期计数一次。当 R 参数的信号状态变为“1”时,计数器值将设置为 0。只要 R 参数的信号状态为“1”,参数 CU 和 S 的信号状态变化就不会影响计数值。如果计数器值大于 0,参数 Q 的信号状态就为“1”。计数器值等于 0 时,参数 Q 将返回信号状态“0”。C_NOCOUNTERINT计数器号(计数器标识符);其范围视CPU而定CDBOOLCD输入:向下计数CUBOOLCU输入:向上计数SBOOL预置计数器输入PVWORD初始化计数器的值,在0到999之间(按16#<值>用BCD格式的值键入)RBOOL复位输入QBOOL输出:计数器状态CVWORD输出:二进制计数值RET_VALWORDBCD格式的结果· 当调用函数时,必须提供标识符C_NO参数。代之以绝对计数器号(如C12),也能够在调用中指定一个INT类型的变量或常数,或一个COUNTER类型的输入参数。· 至少参数CU(向上计数)或参数CD(向下计数)必须提供。· 参数PV(初始值)和S(设定值)能够成对省略。· 函数值总是BCD格式结果值。加计数例子: 作一个功能块,条件FRG满足后开始计数IN_Z,rest对计数器复位,超过ZN 个数有输出OUT_FRG
FUNCTION_BLOCK FB1 建立功能块FB1VAR_INPUTFRG:BOOL; 允许条件IN_Z:BOOL; 用于计数rest:BOOL;CurrVal_int:INT; 改变数量END_VARVAR_OUTPUTOUT_FRG :BOOL;CurrVal_int1:INT;END_VARVAR_TEMPset:BOOL; 临时变量-中间变量set1:BOOL;END_VARVARCurrVal_int:INT; 静态变量-中间变量CurrVal, binVal: WORD;actFlag : bool;END_VARset1:=FRG AND IN_Z; 计数条件CurrVal :=S_CU (C_NO:= Z11, CU:= set1,S:=set, PV:=16#0, R:=rest,CV:=binVal,Q:=actFlag);计数器从0开始计数CurrVal_int:=WORD_TO_INT(CurrVal); word转INT的转换CurrVal_int1:=CurrVal_int; 用于显示IF (CurrVal_int >= Z_N) THEN 如果大于10就有输出OUT_FRG:=true;ELSE 小于10没有输出OUT_FRG:=false;END_IF ;END_FUNCTION_BLOCK-------功能块结束精彩回顾1、图解工业机器人控制与PLC通信2、免费领取:halcon编程源码(带注释)3、【干货分享】教你如何进行halcon标定4、【限时领取】ABB机器人培训视频+PPT课件+学习资料5、【限时领取】20种工业机器人,100多种应用案例视频6、【干货分享】KUKA机器人视频+PPT+资料7、【免费领取】安川机+那智机器人教学视频、学习资料8、【干货免费送】FANUC机器人学习视频+资料9、西门子S7-3/400:编程软件、教程、案例、文档10、【福利】三菱FX5U学习资料免费领取11、工业机器人调试,难吗?12、人工智能技术学习常用的十类算法13、S7-1200与其他PLC/组态软件无线串口通讯(自由口)14、从来没有一种工作叫:钱多事少离家近,位高权重责任轻!15、FANUC 机器人码垛编程详细讲解文章来源:机器人及PLC自动化应用
点分享
点点赞
点在看