全国服务热线 15821971992

西门子6SL3120-1TE21-0AD0

更新时间:2023-10-26 04:00:00
价格:请来电询价
品牌:西门子
型号:模块
产地:德国
联系电话:15821971992
联系手机: 15821971992
联系人:聂聪
让卖家联系我
详细介绍
在plc编程中,只要涉及到数据采集和输出,都会遇到模拟量的线性变换。在西门子300plc编程中,系统自带的两个线性变换功能块FC105和FC106是*常用的两个数据转换模块。但是在博图中,模拟量的线性转换跟300PLC有一定的差异,本文详细介绍1200,1500中模拟量的线性转换问题。
1. 线性变换原理


线性变换原理公式
线性变换的原理很简单,比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。
2. 线性变换用到的指令模块
(1).标准化(NORM_X)指令:
可以使用“标准化”指令,通过将输入 VALUE 中变量的值映射到线性标尺对其进行标准化。可以使用参数 MIN 和 MAX 定义(应用于该标尺的)值范围的限值。输出 OUT 中的结果经过计算并存储为浮点数,这取决于要标准化的值在该值范围中的位置。如果要标准化的值等于输入 MIN 中的值,则输出 OUT 将返回值“0.0”。如果要标准化的值等于输入 MAX 的值,则输出 OUT 需返回值“1.0”。
OUT=(VALUE-MIN)/(MAX-MIN)
上面是PLC帮助文档的官方解释:很拗口,理解不了不用去管他。下面直接看应用就会好。


标准化(NORM_X)指令


标准化(NORM_X)指令映射关系


标准化(NORM_X)指令参数
注意这个数据类型就可以了。
(2)SCALE_X:缩放
“缩放”指令,通过将输入 VALUE 的值映射到指定的值范围来对其进行缩放。 当执行“缩放”指令时,输入 VALUE 的浮点值会缩放到由参数 MIN 和 MAX 定义的值范围。 缩放结果为整数,存储在 OUT 输出中。
同样的,不用去刻意理解这个意思。后面看举例应用就可以了。


SCALE_X:缩放指令


缩放指令映射


缩放指令参数
同样的,注意这个数据类型就可以了。
3. 线性变换指令块的应用举例
线性变换的原理很简单,比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。
先熟悉模拟量采集的对应关系,如图,4-20mA对应0-27648


PLC电压测量值对应关系


PLC电流测量值对应关系


4-20mA转换为0-50MPa程序
如图所示:经过两步就可以把,采集到的模拟量4-20mA,转换为0-50MPa。
如果是-10V-10V对应0-50MPa,只需要把min赋值为-27648(查表)即可。
4. 理解
上述两步,其实就是把线性关系
两点式分两步完成了。
理解起来可能有点拗口,应用起来知道怎么处理就行。
第一步:看是单极性,还是双极性,单极性对应0-27648,双极性(-10V到10V)对应-27648—27648,
第二步:调用模块。
第三步:分别给两个模块的MIN,MAX,VALUW赋值即可。注意其数据类型,一般的%IW0为INT,转换后位REAL。
下一篇小文准备写模拟量的输出线性变换。这个需要两个模块来转换得到物理量,再下一篇小文介绍两点式线性变换程序的编写,用一个模块就可以搞定。

西门子plc中UDT数据类型的用法
一、UDT是什么
UDT是用户自定义数据类型。
用户有时为了方便,先创建一个udt(和创建db块一样),写好数据结构。
然后,在创建db块时,如果需要可以插入建好的udt(输入个name,类型输入udt的名字,比如udt1),如果切换到数据视图,即可看到原先创建的udt的结构了。
有时需要建立多个数据块,但数据块的结构,数据类型都是一样的,但又不能在同一个数据块中保存,这时可以先建一个UDT,通过UDT再创建其余的几个块。
举例来说,你需要控制10个电机,它们的属性都是基本相同的:如“正转(BOOL)”、“反转(BOOL)”、“速度(INT)”、“加速度(INT)”、“减速度(INT)”等,如果程序中你需要用到这些属性,那么你可能需要为10个电机都建立这些变量,如果是单独建立,你就需要建立10*5=50个变量;如果你用UDT来处理,那就简单多了:
先定义一个UDT,名字是MOTOR,里面添加上面所说的2个BOOL变量和3个INT变量(当然有需要可以添加其它数据类型的变量),然后建一个DB块,在里面建立10个变量M1~M10,数据类型就是MOTOR,保存后你会发现这10个变量都包括以上的几个属性,这样你就可以直接在程序中使用了。
也就是说UDT的作用就是方便编程者的,对于程序的运行而言不是必需的.从数据类型的角度来说,UDT甚至不会被PLC直接接受.
大家看西门子S7-300的程序的上传就知道了,将一个带有UDT的程序下载到PLC中,然后新建一个PLC,上传程序,在传上来的程序中你是找不到UDT的.
UDT更像是对DB结构的注释!
下面教大家如何在博途里使用UDT.
1、 在项目树中>PLC数据类型中双击添加新数据类型


2、 对新建的数据类型重命名,如UDT


3、 在UDT中添加要用的变量,编译保存。


4、 新建一个全局DB块-DB1,并在DB块中添加名称M1等,数据类型为"UDT",注意数据类型要与之前新建的数据类型名称相同。



没有

联系方式

  • 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
  • 邮编:200093
  • 电话:15821971992
  • 经理:聂聪
  • 手机:15821971992
  • 传真:021-33556143
  • QQ:2724917714
  • Email:2724917714@qq.com