前言:
而今各位老铁们对“c语言递减输出”大体比较讲究,你们都需要知道一些“c语言递减输出”的相关文章。那么小编也在网络上搜集了一些对于“c语言递减输出””的相关文章,希望我们能喜欢,姐妹们快快来了解一下吧!大家好,欢迎关注电气技术微课堂!
今天我们来浅析一下西门子S7-1200PLC的一组常用运算指令——递增指令和递减指令。
一、递增、递减指令的功能
递增、递减指令,是对无符号或有符号整数(注意一定是整数)分别进行自动增加或减小1个单位的操作,数据长度可以是字节、字或双字。指令的符号如下图所示
单击指令功能框上的<???>可选择数据类型,该指令支持的数据类型为各种整型变量,在输入IN/OUT变量的参数时应注意选用匹配的地址长度。
二、指令各端口功能
EN:使能输入端,使能输入 EN 的信号状态由“0”变为“1”时,执行1次递增或递减指令。
ENO:使能输出端,当使能输入EN为1,ENO输出为1;EN为0,则ENO为0。如果在执行期间未发生溢出错误,则使能输出 ENO 的信号状态也为“1”。
IN/OUT:此端口填写一个地址可以是I、Q、M、D、L,输出数据为递增(递减)后的数值。每执行一次递增(递减)指令,地址中的数值自动加1(减1)。
三、递增、递减指令应用实例
用一个点动按键作为PLC的输入信号,记录按键点动的次数并存储在MB20地址中。梯形图程序如下
解:INC指令可以用来检测I0.0按键动作的次数,应在INC的使能输入端接检测能流上升沿的P_TRIG指令,否则在I0.0状态为1的每一个循环扫描周期,MB20都要被累加1。
四、知识拓展:递增指令INC与加计数器CTU的区别
累加器INC与加计数器CTU都具有数据累加的功能,但是二者在使用中有几点不同,需注意加以区分。
(1)加计数CTU在使用时自带数据块DB,而递增指令INC无数据块。
(2)加计数CTU只有复位端口状态为1时复位,使用复位指令RESET无法对CV的输出值复位,可以在R端口设定逻辑条件执行复位。而递增指令需用复位指令对存储累加值的存储器进行区域复位,累加值发生溢出时会自动复位。
(3)加计数CTU在执行时具有逻辑判断条件,即计数值CV等于设定值PV时有能流输出,而累计值不具有该功能。
(4)加计数CTU的输出端Q在CV值小于PV值时始终为0,CV值大于等于PV值时始终为1。递增指令INC的ENO只有在指令正确执行期间为1。
(5)加计数CTU前端(CU)可以连接常开触点和上升沿检测指令,而递增指令INC前端(EN)只能连接信号上升沿指令。
标签: #c语言递减输出