技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 西门子PLC > 西门子S7-200SMART PLC转换指令使用方法详解

西门子S7-200SMART PLC转换指令使用方法详解

王曾 发布于2023-04-10 10:18 98 3 标签:西门子PLC

导读:

这篇文章为大家介绍200SMART的部分转换指令,主要是字符串及字符与其它数据类型相互转换的指令,这些指令理解起来有些难度的,虽不常用,但有时在通信交换数据时也会用到,很多初学者不知如何利用这些指令来编程,因此,本文就此介绍一下其含义和用法。注意此处说的字符串为ASCII码字符串。

一、 所需软件及硬件

西门子200SMART编程软件V2.7版,200SMART ST30 CPU一台,通信网线一条。

二、 转换指令含义及用法

1. 整数、双整数转换为字符串

因这两个指令的用法是类似的,因此放在一起介绍。指令的形式及在指令列表中的位置如下图1所示:

 

1

 

 实际生产中配方的数据已经定好,由图1可知,改指令有两个输入管脚和一个输出管脚,其中IN为要转换的整数字(有符号整数),可填常数或变量,如12345VW10OUT为输出字符串缓冲区的首字节,如VB100FMT管脚初学者很多都不知其意,故加以详细说明。FMT即为英文单词formatd的缩写,翻译成中文是“格式”的意思,此处可理解为规定字符串转换后的格式。FMT需填写一个字节型变量或常数,如VB0或常数5,下面以图示的方式介绍其含义,如下图2


  2

 

FMT为以字节型变量,所以由8个二进制位组成,即0位到7位,LSB代表地位,MSB代表高位。指令规定,高四位(4-7位)必须为0C位指定是用逗号还是小数点来作为转换后整数部分和小数部分的分隔符:当C=1时,使用逗号;当C=0时,使用小数点。右边三位nnn的有效数据为05,代表小数点后面字符的个数。nnn=000时,转换后的值无小数点;nnn=5时,小数点右面有5个字符,如输入的数据不在05的范围内,则得不到正确的输出结果。还需注意的该指令的下列几条规定:

1)、转换值为正写入输出缓冲区不带时不带符号,为负则需带符号(—);

2)、输出字符串的值为右对齐;

3)、输出字符串的长度为8位,即8个字节,加上首字节(自动填写字符串长度“8”),以共9个字节,需注意该区域地址不要重复使用。

下面用实际的案例及监控加以说明,案例1(输入管脚用常数)如图3所示:

 


3

 

 

3上图的转换值以ASCII码的格式显示,首字节VB10内的数据为字符8,代表输出字符串的长度为8为,VB16为以点标志的小数点位,因FMT2,所以小数点后面为2位,而输出字符串规定为右对齐,所以转换后的值为字符串56.28,其余的字节为空格;下图示意16进制显示的格式,大家可以对照ASCII表,查看是否与上图的数据一致。

案例2(输入管脚用变量)如下图4所示:


 4

4上图转换的整数VW2032767VB302#0000_1011高四位为031,表示小数点以逗号表示,如图4上图的VB105的当前值,后三位为011,表示小数点后面有3位数,所以转换后的值为32.767;中图中将VB30改为2#0000_1000表示小数点后没有数据,因此监控图显示转换

后的值为32767;下图VB302#0000_0111,后三位超出0-5的范围,因此指令报错。

双整数转换为字符串指令与单整数转换指令类似,唯一不同的是输出字符串的长度为12位,加上首字节一共是13个字节,比如VB0VB12这里不再赘述,大家可以举一反三进行练习。

2. 浮点数转换为字符串指令

浮点数数转换为字符串的指令会将实数值 IN 转换为 ASCII 字符串。格式 (FMT) 分配小数点右侧的转换精度、小数点显示为逗号还是句点以及输出字符串的长度。转换结果放置在以 OUT 开头的字符串中。结果字符串的长度在格式中指定,可以是 3 15 个字符。FMT图示如下图5所示:

 

图5

 

   总结:由图5可见,“R_S”I_S”DI_S”FMT管脚的区别是高四位有效,字段SSSS的取值范围是3-15,表示输出字符串的长度,超出此范围指令会报错。低四位代表的含义与“I_S”DI_S”FMT相同。需要注意的是,CPU 使用的实数格式最多支持 7 位有效数字,尝试显示 7 位以上有效数字会产生舍入错误。请看下面的例子及监控画面,如图6所示:

图6 

 FMT管脚的VB130的值为16#A4这就是说转换值的格式是10个字符,小数点后有4位,所以VD120的值456.888转化后为字符串两个空格加456.8880,共10个字节。这个指令需谨慎使用,很容易出错。比如输入是456.888VB130输入16#74,认为能得到结果为456.8880,但指令会报错,他因为456.8880一共占8个字节,而FMT的值为16#74,只输出7个字节,因此得不到正确结果,将16#74改为16#84后,输出结果正确,如下图7所示。



7

点击免费试学更多PLC精品教程


若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

西门子PLC

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签