西门子PLC中央处理单元CPU1215C西门子代理商 西门子总代理
西门子PLC中央处理单元CPU1215C西门子代理商 西门子总代理
西门子PLC中央处理单元CPU1215C西门子代理商 西门子总代理
西门子PLC中央处理单元CPU1215C西门子代理商 西门子总代理
西门子S7-200SMART PLC转换指令使用方法详解导读:这篇文章为大家介绍200SMART的部分转换指令,主要是字符串及字符与其它数据类型相互转换的指令,这些指令理解起来有些难度的,虽不常用,但有时在通信交换数据时也会用到,很多初学者不知如何利用这些指令来编程,因此,本文就此介绍一下其含义和用法。注意此处说的字符串为ASCII码字符串。
一、 所需软件及硬件西门子200SMART编程软件V2.7版,200SMART ST30 CPU一台,通信网线一条。
二、 转换指令含义及用法1. 整数、双整数转换为字符串
因这两个指令的用法是类似的,因此放在一起介绍。指令的形式及在指令列表中的位置如下图1所示:
图1
实际生产中配方的数据已经定好,由图1可知,改指令有两个输入管脚和一个输出管脚,其中IN为要转换的整数字(有符号整数),可填常数或变量,如12345或VW10;OUT为输出字符串缓冲区的首字节,如VB100;FMT管脚初学者很多都不知其意,故加以详细说明。FMT即为英文单词formatd的缩写,翻译成中文是“格式”的意思,此处可理解为规定字符串转换后的格式。FMT需填写一个字节型变量或常数,如VB0或常数5,下面以图示的方式介绍其含义,如下图2:
图2
因FMT为以字节型变量,所以由8个二进制位组成,即0位到7位,LSB代表地位,MSB代表高位。指令规定,高四位(4-7位)必须为0,C位指定是用逗号还是小数点来作为转换后整数部分和小数部分的分隔符:当C=1时,使用逗号;当C=0时,使用小数点。右边三位nnn的有效数据为0到5,代表小数点后面字符的个数。nnn=000时,转换后的值无小数点;nnn=5时,小数点右面有5个字符,如输入的数据不在0到5的范围内,则得不到正确的输出结果。还需注意的该指令的下列几条规定:
1)、转换值为正写入输出缓冲区不带时不带符号,为负则需带符号(—);
2)、输出字符串的值为右对齐;
3)、输出字符串的长度为8位,即8个字节,加上首字节(自动填写字符串长度“8”),以共9个字节,需注意该区域地址不要重复使用。
下面用实际的案例及监控加以说明,案例1(输入管脚用常数)如图3所示:
图3
图3上图的转换值以ASCII码的格式显示,首字节VB10内的数据为字符8,代表输出字符串的长度为8为,VB16为以点标志的小数点位,因FMT为2,所以小数点后面为2位,而输出字符串规定为右对齐,所以转换后的值为字符串56.28,其余的字节为空格;下图示意16进制显示的格式,大家可以对照ASCII表,查看是否与上图的数据一致。
案例2(输入管脚用变量)如下图4所示:
图4
图4上图转换的整数VW20为32767,VB30为2#0000_1011,高四位为0,3位1,表示小数点以逗号表示,如图4上图的VB105的当前值,后三位为011,表示小数点后面有3位数,所以转换后的值为32.767;中图中将VB30改为2#0000_1000,表示小数点后没有数据,因此监控图显示转换
后的值为32767;下图VB30为2#0000_0111,后三位超出0-5的范围,因此指令报错。
双整数转换为字符串指令与单整数转换指令类似,唯一不同的是输出字符串的长度为12位,加上首字节一共是13个字节,比如VB0到VB12。这里不再赘述,大家可以举一反三进行练习。
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 使用的实数格式Zui多支持 7 位有效数字,尝试显示 7 位以上有效数字会产生舍入错误。请看下面的例子及监控画面,如图6所示:
图6
FMT管脚的VB130的值为16#A4,这就是说转换值的格式是10个字符,小数点后有4位,所以VD120的值456.888转化后为字符串两个空格加456.8880,共10个字节。这个指令需谨慎使用,很容易出错。比如输入是456.888,VB130输入16#74,认为能得到结果为456.8880,但指令会报错,他因为456.8880一共占8个字节,而FMT的值为16#74,只输出7个字节,因此得不到正确结果,将16#74改为16#84后,输出结果正确,如下图7所示。
在学习PLC时,接触很多指令,其zhonggong能指令中的传送指令,传送指令是传送地址或数值,那么对于BOOL型变量是否可以使用呢?这是一个思考的问题,在本文章就给大家详细分析传送指令如何对位进行控制和设计程序。
一、传送指令(说明)单个传送指令(把IN数据传送至OUT数据地址)
传送存储区大小可分为:字节、字、双字、实数
块传送指令(IN:起始地址、N:连续地址数)
传送存储区大小可分为:字节、字、双字
二、控制要求(1)有八盏灯,四个为一组, 每隔0.5s交替亮一次,重复循环。
(2)需按下启动按钮才能执行闪烁,按下停止灯闪烁停止。
三、程序设计第一步:(编写起保停程序,线圈使用内部标志位M做中间变量)
第二步:(通过中间变量M0.0接通SM0.5外加上升沿传送二进制0101 0101至QB0)
QB0被传送至二进制0101 0101后其中Q0.0、Q0.2、Q0.4、Q0.6四个灯闪烁
第三步:(通过中间变量M0.0接通SM0.5外加下降沿传送二进制1010 1010至QB0)
QB0被传送至二进制1010 1010后其中Q0.1、Q0.3、Q0.5、Q0.7四个灯闪烁)
第四步:(按下I0.1停止中间变量M0.0和复位QB0所有位)
四、程序设计思路通过SM0.5一秒钟周期加沿脉冲中上升沿和下降沿,上升沿目的是接通一个脉冲传送,下降沿目的正好和上升沿做一个之间的时间交叉,这样就是来回反复的传送切换。
联系方式
- 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 邮编:201600
- 联系电话:未提供
- 经理:吴悦
- 手机:19514718569
- QQ:2810544350
- Email:2810544350@qq.com