目录

  • 1 位逻辑运算操作
    • 1.1 常开触点
    • 1.2 常闭触点
    • 1.3 取反触点
    • 1.4 线圈
    • 1.5 赋值取反
    • 1.6 复位输出
    • 1.7 置位输出
    • 1.8 置位位域
    • 1.9 复位位域
    • 2.10 SR置位/复位触发器
    • 1.11 RS复位/置位触发器
    • 1.12 扫描操作数的信号上升沿
    • 1.13 扫描操作数的信号下降沿
    • 1.14 在信号上升沿置位操作数
    • 1.15 在信号下降沿置位操作数
    • 1.16 P_TRIG扫描 RLO 的信号上升沿
    • 1.17 N_TRIG扫描 RLO 的信号下降沿
    • 1.18 R_TRIG检查信号上升沿
    • 1.19 F_TRIG:检查信号下降沿
    • 1.20 四种沿信号的区别
      • 1.20.1
      • 1.20.2
      • 1.20.3&4
  • 2 定时器指令
    • 2.1 TP 脉冲定时器
    • 2.2 TON 接通延时定时器
    • 2.3 TOF 关断延时定时器
    • 2.5 TONR 时间累加器定时器
  • 3 计数器指令
    • 3.1 CTU 加计数器
    • 3.2 CTD 减计数器
    • 3.3 CTUD 加减计数器
  • 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 移位和循环

TIA博途S7-1200学习笔记——指令集相关推荐

  1. TIA博途SCL入门学习(二)常用基本控制语句用法和举例

    TIA博途SCL入门学习(二)常用基本控制语句用法和举例 FOR循环语句 FOR循环可以指定循环的次数,在使用这种循环的时候需要先定义一个INT型变量,并指定计数范围,即循环次数,直到循环次数到达设定 ...

  2. TIA博途SCL入门学习(三)创建SCL程序及更改FB块接口的视图样式

    TIA博途SCL入门学习(三)创建SCL程序及更改FB块接口的视图样式 TIA博途中创建SCL程序有2种方式,具体可参考以下内容: 在LAD程序段或FBD程序段种可以插入SCL程序段,实现两种语言混合 ...

  3. TIA博途SCL编程学习21_4个数字中的3个数字的排列组合

    从四个数字中选出三个,一共有多少组合?不重复的 排列组合问题.从四个数字中选出三个,一共有C(4,3)=4*3*2/3*2*1=4种组合. 排列组合问题联系实际且生动有趣,但题型多样,思路灵活,因此解 ...

  4. TIA博途SCL编程学习17_选择法排序

    选择排序算法包括升序和降序两种方式,其基本思路如下: 如果是升序排列,则第一轮从数据源中找到最小值排在第一位,第二轮从剩下的数据中寻找最小值排在第二位,第三轮在再从剩下的数据中寻找最小值排在第三位.依 ...

  5. TIA博途SCL编程学习22_奖金计算

    目: 现在越来越多的PLC工程师,电气工程师,系统集成工程师,工资不再是固定的,而是按项目提成发放,这样来激烈PLC工程师,上班不再摸鱼.作为博途工控人,把奖金算法写出来. 企业发放的奖金根据利润提成 ...

  6. TIA博途SCL编程学习2_sin(x)

    计算sin(x),x为弧度.用来练习REPEAT语句. 1. 计算公式.如下图: 2. 创建一个FB块,建立变量.如下图: 3. 编写程序.如下图: 4. 调用监控.如下图: 公众号:  巨控电子   ...

  7. TIA博途SCL编程学习4_选择法排序

    1. 用数组定义20个元素,给定20个实数,按从大到小排列. 2. 添加FB块,建立变量.如下图: 3. 编写程序.如下图: 4. 调用并监控.如下图: 公众号:  巨控电子 TIA Portal博途 ...

  8. TIA博途SCL编程学习9_百鸡百钱

    1. 题目: 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题,该问题叙述如下:鸡翁一,值钱五:鸡母一,值钱三:鸡雏三,值钱一:百钱买百鸡,则翁.母 ...

  9. TIA博途SCL编程学习13_电机正反转加点动

    1. 题目: 每次授课总会有学员问电机正反转启停(带点动)用SCL语言应该怎样写的问题,当然对于学习PLC来说控制一台电机也是最直观.最易学的. 有很多种方法,下面的例子是我比较喜欢使用的一种. 以下 ...

  10. TIA博途SCL编程学习16_歌德巴赫猜想验证

    即任一大于2的偶数都可写成两个素数之和,亦称为"强哥德巴赫猜想"或"关于偶数的哥德巴赫猜想". 1966年陈景润证明了"1+2"成立,即&q ...

最新文章

  1. html复选框位置,html – 对齐复选框和标签
  2. 2014-04-03研究笔记整理
  3. Vue js 的生命周期(看了就懂)
  4. python 第三方库
  5. asp.net core 系列之Startup
  6. react 消息订阅-发布机制(解决兄弟组件通信问题)
  7. python的moviepy库 打包 报错: ‘moviepy.audio.fx.all‘ has no attribute ‘audio_fade 的解决办法
  8. dj电商-模型类设计-商品模块数据表
  9. 锤子濒危、金立倒闭,华米 OV 们如何艰难求生?
  10. [转] Hibernate一级缓存、二级缓存
  11. Azkaban时区问题导致调度差1天
  12. 多人操作sqlite3数据库冲突问题解决方法
  13. 三菱q系列plc 和电脑socket_三菱Q系列串口和台达变频器RTU通信
  14. 破防了,原来这才是机房运维的正确方法
  15. pillow图像格式转化和缩放操作
  16. 文件截取\裁剪工具软件
  17. Jungle Scout中国市场首发亚马逊FBA卖家百万美金案例中文版详解
  18. 使用Curl对Kubernetes进行调试!
  19. Mongo第三个参数的用法
  20. 如何在大屏幕上滚动播放视频、图片和文字

热门文章

  1. CollapsingToolbarLayout源码分析
  2. 计蒜客 最后一个单词的长度
  3. UML在md中的写法与示意
  4. 什么是面向切面编程?
  5. UEFI启动视频详解:启动分析+N项操作实例
  6. 计算机二级c语言考试总结,计算机二级考试C语言知识点总结 .doc
  7. mac 下Protege中使用OWL Viz插件
  8. 2022/09/20、21 day09/10:JavaScript(三)
  9. . net core在图片上写字
  10. 2-Druid 系统框架