文章目录[隐藏]
- 1 位逻辑运算操作
- 2 定时器指令
- 3 计数器指令
- 4 比较指令
- 5 数学函数
- 6 移动操作
- 7 转换操作
- 8 程序控制指令
- 9 字逻辑运算操作
- 10 移位和循环
1 位逻辑运算操作
1.1 常开触点
- —| |—
1.2 常闭触点
- —| / |—
1.3 取反触点
- —|NOT|—
输入为0,输出为1,输入为1输出为0;
1.4 线圈
- —( )—
1.5 赋值取反
- —( / )—
将逻辑运算的结果进行取反,然后将其赋值给这个线圈的操作数。
1.6 复位输出
- —( R )—
1.7 置位输出
- —( S )—
1.8 置位位域
- —( SET_BF )—
1.9 复位位域
- —( RESET_BF )—
2.10 SR置位/复位触发器
参数 | 说明 |
---|---|
S | 使能置位 |
RI | 使能复位,复位优先 |
SR | 待使能操作数 |
Q | 操作数信号状态 |
信号真值表
S | RI | SR |
---|---|---|
1 | 0 | 置位 |
0 | 1 | 复位 |
1 | 1 | 复位 |
0 | 0 | 保持 |
1.11 RS复位/置位触发器
参数 | 说明 |
---|---|
R | 使能复位 |
SI | 使能置位,置位优先 |
SR | 待使能操作数 |
Q | 操作数信号状态 |
信号真值表
S | RI | SR |
---|---|---|
1 | 0 | 复位 |
0 | 1 | 置位 |
1 | 1 | 置位 |
0 | 0 | 保持 |
1.12 扫描操作数的信号上升沿
- —| P |—
检测到信号上升沿时,操作数 1 的信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,操作数的信号状态均为“0”。
参数 | 说明 |
---|---|
操作数1 | 要扫描的信号 |
操作数2 | 保存上一次查询的信号状态的边沿存储位 |
1.13 扫描操作数的信号下降沿
- —| N |—
检测到信号下降沿时,操作数 1 的信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,操作数的信号状态均为“0
参数 | 说明 |
---|---|
操作数1 | 要扫描的信号 |
操作数2 | 保存上一次查询的信号状态的边沿存储位 |
1.14 在信号上升沿置位操作数
- —( P )—
当输入查询到上升沿时,操作数置位为1一个程序周期,然后其它时间全为0;
参数 | 说明 |
---|---|
操作数1 | 上升沿置位的操作数 |
操作数2 | 边沿存储位 |
1.15 在信号下降沿置位操作数
- —( N )—
当输入查询到下降沿时,操作数置位为1一个程序周期,然后其它时间全为0;
参数 | 说明 |
---|---|
操作数1 | 下降沿置位的操作数 |
操作数2 | 边沿存储位 |
1.16 P_TRIG扫描 RLO 的信号上升沿
检测到信号上升沿时,该指令输出 Q 将立即返回程序代码长度的信号状态“1”。在其它任何情况下,该输出返回的信号状态均为“0”。
参数 | 说明 |
---|---|
CLK | 沿信号输入端,当前RLO |
操作数 | 保存上一次查询的信号状态的边沿存储位 |
Q | 边沿检测结果 |
1.17 N_TRIG扫描 RLO 的信号下降沿
检测到信号下降沿时,该指令输出 Q 将立即返回程序代码长度的信号状态“1”。在其它任何情况下,该输出返回的信号状态均为“0”。
参数 | 说明 |
---|---|
CLK | 沿信号输入端,当前RLO |
操作数 | 保存上一次查询的信号状态的边沿存储位 |
Q | 边沿检测结果 |
1.18 R_TRIG检查信号上升沿
该指令将输入 CLK 的当前值与保存在指定实例中的上次查询(边沿存储位)的状态进行比较。如果该指令检测到输入 CLK 的状态从“0”变成了“1”,就会在输出 Q 中生成一个信号上升沿,输出的值将在一个循环周期内为 TRUE 或“1”。
参数 | 说明 |
---|---|
EN | 使能输入 |
ENO | 使能输出 |
CLK | 达到信号,将查询该信号的边沿 |
Q | 边沿检测的结果 |
1.19 F_TRIG:检查信号下降沿
该指令将输入 CLK 的当前值与保存在指定实例中的上次查询(边沿存储位)的状态进行比较。如果该指令检测到输入 CLK 的状态从“1”变成了“0”,就会在输出 Q 中生成一个信号下降沿,输出的值将在一个循环周期内为 TRUE 或“1”。
参数 | 说明 |
---|---|
EN | 使能输入 |
ENO | 使能输出 |
CLK | 达到信号,将查询该信号的边沿 |
Q | 边沿检测的结果 |
1.20 四种沿信号的区别
1.20.1
在P触点上面的I0.0的上升沿,该触点接通一个扫描周期。因此P触点用于检测触点上面的地址的上升沿,并且直接输出上升沿脉冲。其他3种指令都是用来检测逻辑运算结果RLO(即流入指令输入端的能流)的上升沿。
1.20.2
在流过P线圈的能流的上升沿,线圈上面的地址Q0.1在一个扫描周期为1状态。因此P线圈用于检测能流的上升沿,并用线圈上面M2.2的触点来输出上升沿脉冲。其他3种指令都是直接输出检测结果。
1.20.3&4
R_TRIG指令与P_TRIG指令都是用于检测流入它们的CLK端的能流的上升沿,并用Q端直接输出检测结果。其区别在于R_TRIG是函数块,用它的背景数据块DB3保存上一次扫描循环CLK端信号的状态,
而P_TRIG指令用边沿存储位M10.3来保存它。P 触点和P线圈分别用边沿存储位M10.0和M10.1来保存它们的输入信号的状态。
对比项目 | P触点 | P线圈 | P_TRIG | R_TRIG |
---|---|---|---|---|
沿信号来源 | 靠自己 | 靠别人 | 靠别人 | 靠别人 |
输出脉冲 | 给别人 | 给自己 | 给别人 | 给别人 |
边沿存储 | 自己的位 | 自己的位 | 自己的位 | 背景数据块 |
2 定时器指令
IEC:国际电工委员会缩写,IEC定时器表示国际标准定时器。
2.1 TP 脉冲定时器
当 IN 端收到一个上升沿信号,Q开始输出能流并开始计时,当计时时间达到PT设定时间后,Q不再有能流输出,知道下有一个上升沿信号输入到IN端口。
参数 | 说明 |
---|---|
IN | 启动输入 |
PT | 脉冲持续时间 |
Q | 脉冲输出 |
ET | 当前时间值 |
2.2 TON 接通延时定时器
【延时接通,瞬时关断】当IN有能流输入时,且保持一直有,则TON 开始计时,当计时时间达到PT设定时间后,Q输出能流,且只要IN有能流输入,Q便一直有能流输出。
参数 | 说明 |
---|---|
IN | 启动输入 |
PT | 接通延时持续时间 |
Q | 超过时间PT后置位的输出 |
ET | 当前时间值 |
2.3 TOF 关断延时定时器
【瞬时接通,延时关断】当IN有能流输入时,Q输出能流,且只要IN有能流输入,Q便一直有能流输出;当IN从接通改为断开后,则TON 开始计时,此时Q仍有能流输出,当计时时间达到PT设定时间后,Q被复位。
参数 | 说明 |
---|---|
IN | 启动输入 |
PT | 关断延时的持续时间 |
Q | 超过时间PT后复位的输出 |
ET | 当前时间值 |
2.5 TONR 时间累加器定时器
描述: 当IN端接通时,TNOR开始计时,当IN断开时,TNOR停止计时,但当前计时时间不清零,下次IN再接通时计时时间累加,当累加计时时间达到PT设定值后,Q输出能流,此时无论IN 是否接通都不在影响Q输出能流。
当R收到一个上升沿信号时,TONR累计时间清零,Q被复位。
参数 | 说明 |
---|---|
IN | 启动输入 |
R | 复位输入 |
PT | 时间记录最长持续时间 |
Q | 超过时间PT后要置位的输出 |
ET | 累计时间值 |
3 计数器指令
3.1 CTU 加计数器
描述: CU端每收到一个上升沿信号,CTU便做加一计数,当计数值累加到PV设定值后,Q有能力输出;当R端接收到一个上升沿信号后,Q输出复位,CTU计数清零。
参数 | 说明 |
---|---|
CU | 计数输入 |
R | 复位输入 |
PV | 置位输出Q的值 |
Q | 计数器状态 |
CV | 当前计数器的值 |
3.2 CTD 减计数器
描述: 程序刚启动时,当CD和LD都没有产生上升沿信号时,Q有能流输出;当LD收到一个上升沿信号,便将PV设定值装载到CTD计数器中,并且复位Q;每当CD收到一个上升沿信号时,CTD自减一,当减到0时,置位Q输出能流。
参数 | 说明 |
---|---|
CD | 计数输入 |
LD | 转载输入 |
PV | 装载的计数值 |
Q | 计数器状态 |
CV | 当前计数器的值 |
3.3 CTUD 加减计数器
参数 | 说明 |
---|---|
CU | 加计数输入 |
CD | 减计数输入 |
R | 复位输入 |
LD | 转载输入 |
PV | 装载的计数值 |
QU | 加计数器状态 |
QD | 减计数器状态 |
CV | 当前计数器的值 |
描述: cu让计数器自加一,CD让计数器自减一,R给计数器计数值清零,LD将PV的设定值装载到计数器;
计数器值对应的输出状态
数值范围 | QU | QD |
---|---|---|
(+∞,0 ] | 0 | 1 |
(0,PV) | 0 | 0 |
[PV,+∞) | 1 | 0 |
4 比较指令
指令 | 描述 |
---|---|
CMP== | 等于 |
CMP<> | 不等于 |
CMP>= | 大于等于 |
CMP<= | 小于等于 |
CMP> | 大于 |
CMP< | 小于 |
IN_Range | 值在范围内 |
OUT_Range | 值不在范围内 |
—| OK |— | 检查有效性 |
—| NOT_OK |— | 检查无效性 |
检查有效性指令和检查无效性指令只针对浮点数数据类型进行查验。
5 数学函数
指令 | 描述 |
---|---|
CALCULATE | 计算函数 |
ADD | 加 |
SUB | 减 |
MUL | 乘 |
DIN | 除法 |
MOD | 取余 |
NEG | 求二进制补码 |
INC | 递增 |
DEC | 递减 |
ABS | 计算的绝对值 |
MIN | 获取最小值 |
MAX | 获取最大值 |
LIMIT | 设置限值 |
SQR | 计算平方 |
SQRT | 计算平方根 |
LN | 计算自然数对数 |
EXP | 计算指数值 |
SIN | 计算正弦值 |
COS | 计算余弦值 |
TAN | 计算正切值 |
ASIN | 计算反正弦值 |
ACOS | 计算反余弦值 |
ATAN | 计算反正切值 |
FRAC | 返回小数 |
EXPT | 取幂 |
6 移动操作
<略>学习中……
7 转换操作
<略>学习中……
8 程序控制指令
<略>学习中……
9 字逻辑运算操作
<略>学习中……
10 移位和循环
版权声明:本文为CSDN博主「驽马zb」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37424623/article/details/116518832
暂无评论