前文已经对S7-1200的指令系统中的逻辑位指令做出了叙述,现继续分享其指令系统。
1.定时器
(1)接通延时定时器(TON)
时序图说明:
当定时器输入端(IN)的状态为1时,定时器启动并开始计时。定时器的当前值便开始累加,当定时器的当前值等于设定值时,定时器Q输出端Q便输出当前为‘1’的状态。此时,若输入端(IN)一直输出为‘1’,输出Q便一直保持置位。若输入端(IN)变为‘0’,将立即复位输出Q为‘0’。同时刷新当前定时器的值。此为一个循环。
(2)断开延时定时器(TOF)
时序图说明:
当定时器输入端(IN)的状态变为‘1’时,则输出端Q输出为‘1’的状态。在输入端(IN)的状态变为‘0’时,定时器开始计数,当前值开始累加,输出端Q保持为‘1’的状态。当定时器的当前值和设定值相等时,输出端Q变为‘0’的状态,如果输入端(IN)在当前值未达到设定值变为‘1’的状态,则定时器的当前值清零,输出端(Q)仍保持为1的状态。
(3)生成脉冲定时器(TP)
(4)时间累加器(TONR)
计数器
作用:对内部程序时间和外部过程事件进行计数。S7-1200含有三种类型计数器,包括加计数器(CTU)、减计数器(CTD)、加减计数器(CTUD)。每个计数器都使用数据块中的存储结构来保存计数器的数据,用户在编辑器中放置计数器指令时分配相应的数据块,这些指令都是使用的软件的计数器,软件计数器的最大计数速率受PLC的扫描周期的限制,若需要记录频率变化比较快的信号,应使用高速计数器CTRL_HSC
用户可以使用的计数器数仅受PLC存储空间的限制,计数器就数据类型所占的存储空间如下:
数据类型 | 占用存储空间 |
SINT/USINT | 3个Byte |
INT/UINT | 6个Byte |
DINT/UDINT | 12个Byte |
(1)减计数器(CTD)
时序图:
说明:当参数CD的值从0变为1时,CTD计数器会从数值会减1。CTD时序图显示了计数值为无符号整数时的运行,其中(PV=10),当CV(当前计数值)等于或小于0,则计数器输出Q=1。若参数LD从0变为1,则参数PV(预设值)的值将作为新的CV(当前计数值)装载到计数器。
注意:可以选择不同数据类型的计数器
(2)加减计数器(CTUD)
时序图
当加计数(CU)输入或减计数(CD)输入从0转换为1时,CTUD计数器将加1或减1.如上图程序为无符号整数时的运行(其中PV=10)。如果CV的值大于等于PV的值,则计数器输出QU=1。如果CV的值小于或等于0,则计数器输出QD=1。如果参数从LOAD的值从0变为1,则参数PV的值将作为新的CV装载到计数器。若参数复位R的值从0变为1,则当前计数值重置为0。
(3)加计数器
触点比较指令
触点比较指令用于比较数据类型相同的两个数字的值,比较结果为TURE时,则触点导通。
详见下表:
关系类型 | 比较结果输出为TURE |
= | IN1=IN2 |
IN1不等于IN2 | |
IN1大于或等于IN2 | |
IN1小于或等于IN2 | |
IN1大于IN2 | |
IN1小于IN2 |
范围比较指令
用于判定输入值是否在指定范围内或指定范围外,满足比较结果,便输出为1。
数学函数指令
注意:加法指令和乘法指令的黄色引脚可以增加操作数的数量,点击便可增加引脚。