本文只对SCL中模拟量处理程序的编写进行说明,详细的应用原理请参考博图中热电阻/热电偶(RTD/TC)模拟量信号的处理和博图电压/电流(U/I)模拟量信号的处理

1. 热电阻/热电偶(RTD/TC)

热电阻/热电偶直接连接到专用的RTD/TC模块,不使用变送器的,熟悉使用西门子PLC的人应该都知道,除以10就行了。
常规组态,修改测量类型,以K型热电偶为例:


程序如下:

"TIC1" := "AI_TIC1" / 10;
"TIC2" := "AI_TIC2" / 10;
"TIC3" := "AI_TIC3" / 10;
"TIC4" := "AI_TIC4" / 10;

如果精度要求不高,那直接除以10,如果需要保留小数点后一位的数值,就要注意,输出值要选real浮点型,同时要先将int型的IO变量转换为real,防止精度丢失。

"TIC1" := INT_TO_REAL("AI_TIC1") / 10;
"TIC2" := INT_TO_REAL("AI_TIC2") / 10;
"TIC3" := INT_TO_REAL("AI_TIC3") / 10;
"TIC4" := INT_TO_REAL("AI_TIC4") / 10;

仿真结果如下(%IW4输入值设为121):
数据类型不转换的话

数据类型先转换的话

2.电流/电压(U/I)

因为使用的指令不同,先说S7-1200/1500,至于300/400后面有空再添加。
这里涉及到两个指令——NORM_X和SCALE_X。指令说明还是看博图电压/电流(U/I)模拟量信号的处理
SCALE_X 和NORM_X 都是有返回值的,所以不能单独使用作为一行程序,需要赋值给一个变量。

//T101  Int %MW28   温度数值        量程 -35℃~35℃
#T101_temp := NORM_X(MIN := 0, VALUE := "AI_T101", MAX := 27648);
"T101" := SCALE_X(MIN := -35, VALUE := #T101_temp, MAX := 35);
//P101  Int %MW30   湿度数值        量程 0~100%RH
#RH101_temp := NORM_X(MIN := 0, VALUE := "AI_RH101", MAX := 27648);
"RH101" := SCALE_X(MIN := 0, VALUE := #RH101_temp, MAX := 100);

有一定编程基础的会发现, NORM_X 计算出的输出值可以直接用作SCSLE_X 的输入值,从而省略一个中间变量。

"T101" := SCALE_X(MIN := -35, VALUE := NORM_X(MIN := 0, VALUE := "AI_T101", MAX := 27648), MAX := 35);
"RH101" := SCALE_X(MIN := 0, VALUE := NORM_X(MIN := 0, VALUE := "AI_RH101", MAX := 27648), MAX := 100);

3.模拟量输出

会模拟量输入处理的原理,那输出同理,先缩放再标准化。
例如用4~20mA输出控制变频器频率。

//Motor_INV      REAL    %MD32   电机频率 0.0~50.0Hz
//AQ_INV        INT     %QW2    电机频率 4~20mA输出
"AQ_INV" := SCALE_X(MIN := 0, VALUE := NORM_X(MIN := 0.0, VALUE := "Motor_INV", MAX := 50.0), MAX := 27648);

博图SCL编程——常规模拟量输入/输出的处理相关推荐

  1. 博图SCL编程——提升代码界面的美观性和易读性

    博图Tia Portal学习教程目录 前言 几年前写C的时候,Tab键敲个不停,就是因为代码要对齐,不然影响美观,后来在网上找到个神器--代码格式化软件,写程序就随意多了,几个.c文件写完,批量选中, ...

  2. 博图SCL编程——多种情况下的开关阀控制

    博图Tia Portal学习教程目录 设备介绍 我们以普通电动开关阀为例,一般至少会有开启.关闭.开启到位反馈.关闭到位反馈4个信号,如下图. 也有一些会更加丰富一点,例如这款西门子的电动风阀执行器, ...

  3. 博图SCL编程实例(一):SimMultizone

    下面代码为西门子博图的一个实例功能块的SCL程序代码. 实例:PID_Temp_Multizone FUNCTION_BLOCK "SimMultizone" { S7_Optim ...

  4. 电机星三角降压启动 博图SCL编程练习

    //实现要求:按下开始按键后 电机电源启动 电机星型启动 3s后 星型结束 1s后 电机三角型启动 //电源启动与星型接触器启动 IF #START = 1 THEN #GOTO := 1; END_ ...

  5. TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法

    TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法 一. 模拟量输入块:创建FB,定义块的接口,如下图所示: 程序中包含了高报警,低报警,一般上位机报警需要这个变量. 极性选择,适合更广的应 ...

  6. 西门子博途SCL高级博图SCL运动控制自动化项目实例西门子整 套高级SCL编程运动控制

    西门子博途SCL高级博图SCL运动控制自动化项目实例西门子整 套高级SCL编程运动控制

  7. 【SCL】博图SCL编程语言(1)

    初识博图scl语言 文章目录 目录 一.scl语言简介 1.介绍 2.相关问题 3.scl语言的编写环境 二.表达式和运算符 1.算术表达式 1.介绍 2.算术表达式使用 3.例题 2.关系表达式 1 ...

  8. 【SCL】博图scl语言应用项目:装配流水线模拟控制

    使用西门子博图SCL语言和factoryio软件来编写应用案例--装配流水线模拟控制项目 文章目录 目录 前言 一.应用:装配流水线模拟控制 1.控制要求 2.完善控制要求和场景 1.布置场景(fac ...

  9. 【SCL】博图SCL语言学习 (指令篇 )

    博图SCL语言常用指令的学习和使用以及相关例题. 文章目录 目录 文章目录 前言 一.逻辑运算符的使用 1.点动 2.自锁(起保停) 3.正反转 4.小结 二.常用程序控制指令 1. if...the ...

最新文章

  1. linux中terminal中编译源码,分享|Terminator:一款一个窗口包含多个终端的 Linux 终端仿真器...
  2. LeetCode Integer to English Words(整数转化为英文字母)
  3. V4L2编程 视频采集
  4. Dell poweredge r210进BIOS修改磁盘控制器(SATA Controller)接口模式
  5. 代码大全和新月神话_神话般的代码
  6. List和Set集合使用
  7. 对抗攻击之SMI-FGSM:北航提出用空间动量提高对抗迁移性
  8. linux+分离线程+退出,Linux下线程终止操作.pdf
  9. java怎么新建模块_spring boot添加新模块的方法教程
  10. 深度学习入行门槛太低,不开心!
  11. Unity 性能优化归纳
  12. 【毕设狗】【单片机毕业设计】基于单片机的空气质量检测-仿真设计
  13. 《机器人动力学与控制》第九章——动力学 9.2 动能与势能的一般表达
  14. 使用地点云实现企业官网中的门店地图
  15. TOE(TCP/IP Offload Engine)网卡与一般网卡的区别
  16. PostgreSQL JIT(Just-In-Time Compilation)With LLVM 的实现原理
  17. 【汇编语言】3.汇编语言程序
  18. 从事Web前端要学什么 常用前端开发技术有哪些
  19. SQL-包含中文字、英文、数字字符
  20. 多项式除法终极方法:长除法 VS 综合除法

热门文章

  1. LVM逻辑卷管理和挂盘操作
  2. WordPress 使用 CDN 后获取访客真实 IP
  3. 中国科学技术大学计算机研究生在哪个校区,中国科学技术大学有几个校区及校区地址 哪个校区最好...
  4. 计算机算法的控制结构顺序结构,第3章 算法与控制结构.pdf
  5. APIC Timer
  6. Xposed模块开发教程整理
  7. andorid身份证输入格式--EditText设置
  8. Scrapy爬虫框架,爬取小说网的所有小说
  9. 万能手机usb内窥镜软件下载_万能证件生成器手机版-万能证件生成器手机版下载 v1.0 免费版...
  10. 【XBOX360】Xbox360 RGH3.0 刷机教程