博图SCL编程——常规模拟量输入/输出的处理
本文只对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编程——常规模拟量输入/输出的处理相关推荐
- 博图SCL编程——提升代码界面的美观性和易读性
博图Tia Portal学习教程目录 前言 几年前写C的时候,Tab键敲个不停,就是因为代码要对齐,不然影响美观,后来在网上找到个神器--代码格式化软件,写程序就随意多了,几个.c文件写完,批量选中, ...
- 博图SCL编程——多种情况下的开关阀控制
博图Tia Portal学习教程目录 设备介绍 我们以普通电动开关阀为例,一般至少会有开启.关闭.开启到位反馈.关闭到位反馈4个信号,如下图. 也有一些会更加丰富一点,例如这款西门子的电动风阀执行器, ...
- 博图SCL编程实例(一):SimMultizone
下面代码为西门子博图的一个实例功能块的SCL程序代码. 实例:PID_Temp_Multizone FUNCTION_BLOCK "SimMultizone" { S7_Optim ...
- 电机星三角降压启动 博图SCL编程练习
//实现要求:按下开始按键后 电机电源启动 电机星型启动 3s后 星型结束 1s后 电机三角型启动 //电源启动与星型接触器启动 IF #START = 1 THEN #GOTO := 1; END_ ...
- TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法
TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法 一. 模拟量输入块:创建FB,定义块的接口,如下图所示: 程序中包含了高报警,低报警,一般上位机报警需要这个变量. 极性选择,适合更广的应 ...
- 西门子博途SCL高级博图SCL运动控制自动化项目实例西门子整 套高级SCL编程运动控制
西门子博途SCL高级博图SCL运动控制自动化项目实例西门子整 套高级SCL编程运动控制
- 【SCL】博图SCL编程语言(1)
初识博图scl语言 文章目录 目录 一.scl语言简介 1.介绍 2.相关问题 3.scl语言的编写环境 二.表达式和运算符 1.算术表达式 1.介绍 2.算术表达式使用 3.例题 2.关系表达式 1 ...
- 【SCL】博图scl语言应用项目:装配流水线模拟控制
使用西门子博图SCL语言和factoryio软件来编写应用案例--装配流水线模拟控制项目 文章目录 目录 前言 一.应用:装配流水线模拟控制 1.控制要求 2.完善控制要求和场景 1.布置场景(fac ...
- 【SCL】博图SCL语言学习 (指令篇 )
博图SCL语言常用指令的学习和使用以及相关例题. 文章目录 目录 文章目录 前言 一.逻辑运算符的使用 1.点动 2.自锁(起保停) 3.正反转 4.小结 二.常用程序控制指令 1. if...the ...
最新文章
- linux中terminal中编译源码,分享|Terminator:一款一个窗口包含多个终端的 Linux 终端仿真器...
- LeetCode Integer to English Words(整数转化为英文字母)
- V4L2编程 视频采集
- Dell poweredge r210进BIOS修改磁盘控制器(SATA Controller)接口模式
- 代码大全和新月神话_神话般的代码
- List和Set集合使用
- 对抗攻击之SMI-FGSM:北航提出用空间动量提高对抗迁移性
- linux+分离线程+退出,Linux下线程终止操作.pdf
- java怎么新建模块_spring boot添加新模块的方法教程
- 深度学习入行门槛太低,不开心!
- Unity 性能优化归纳
- 【毕设狗】【单片机毕业设计】基于单片机的空气质量检测-仿真设计
- 《机器人动力学与控制》第九章——动力学 9.2 动能与势能的一般表达
- 使用地点云实现企业官网中的门店地图
- TOE(TCP/IP Offload Engine)网卡与一般网卡的区别
- PostgreSQL JIT(Just-In-Time Compilation)With LLVM 的实现原理
- 【汇编语言】3.汇编语言程序
- 从事Web前端要学什么 常用前端开发技术有哪些
- SQL-包含中文字、英文、数字字符
- 多项式除法终极方法:长除法 VS 综合除法
热门文章
- LVM逻辑卷管理和挂盘操作
- WordPress 使用 CDN 后获取访客真实 IP
- 中国科学技术大学计算机研究生在哪个校区,中国科学技术大学有几个校区及校区地址 哪个校区最好...
- 计算机算法的控制结构顺序结构,第3章 算法与控制结构.pdf
- APIC Timer
- Xposed模块开发教程整理
- andorid身份证输入格式--EditText设置
- Scrapy爬虫框架,爬取小说网的所有小说
- 万能手机usb内窥镜软件下载_万能证件生成器手机版-万能证件生成器手机版下载 v1.0 免费版...
- 【XBOX360】Xbox360 RGH3.0 刷机教程