西门子S7-200SMART双实数转实数实例

西门子plc
西门子plc
西门子plc
1976
文章
127
评论
2018年11月27日17:42:50 评论 4,461 阅读

S7-200 SMART 系统中的数据及其格式

S7-200 SMART CPU收集操作指令、现场状况等信息,把这些信息按照用户程序指定的规律进行运算、处理,然后输出控制、显示等信号。所有这些信息都表示为不同格式的数据,作为数据来处理。各种指令对数据格式都有一定要求,指令与数据之间的格式要一致才能正常工作。例如,为一个整数数据使用实数(浮点数)运算指令,显然会得到不正确的结果。

数据有不同的长度(以二进制表示它们时,占据的位数不同),也就决定了数值的大小范围。模拟量信号在进行模/数(A/D)和数/模(D/A)转换时,一定会存在误差;代表模拟量信号的数据,只能以一定的精度表示模拟量信号。

  • 所有的数据在PLC中都是以二进制形式表示的
  • 数据都有其特定的长度和表示方式,称为格式
  • 数据的格式与用于运算、处理它的指令相关
  • 以不同的格式查看一个数据,或是使用不同格式的指令处理它,会得到不同的效果

二进制、十六进制和十进制

二进制和二进制数: 所有通过S7-200 SMART PLC处理的数据(数值、字符等等)都以二进制形式表示。

十六进制和十六进制数:在二进制数中,每4个二进制位可以分为一组;这组二进制数值的不同变化可以表示16个状态,正好是16进制数每一位数字的变化范围。因此,可以用十六进制数值方便地表示二进制数。

例如,二进制数1000_1111b分为两组来看,分别是1000b和1111b,正好可以表示16进制数字8h和Fh(0000b对应于0h,...,1111b对应于Fh);那么这个二进制数就可以表示为8Fh。

十进制和十进制数:十进制是S7-200 SMART的数学计算的基础,一般都使用十进制的体系,除了时间(12/24或60进制)等特殊数据外。

二进制数用于在PLC中表示十进制数值、或者其他(如字符等)数据,而16进制用来比较简单地描述二进制数。

二进制位逻辑(bit)

PLC中以二进制“位”的数据形式来表示逻辑“1”、“0”(或者“开”、“关”)。位是基本的数据单位。

在数据字节(Byte)中,二进制逻辑只用一个位(bit)来表示。每个字节由8个位组成。

整数、无符号整数和有符号整数

字节、字、双字都可以用来表示十进制整数,显然它们的数据长度不同,能够表示的数的大小范围也不同。

无符号整数只有0和正整数;有符号整数可以有正数和负数。

有符号整数采用二进制补码的形式来表示负数。

实数(浮点数)

实数(或浮点数)以 32 位单精度数表示,其格式为 ANSI/IEEE 754-1985 标准中所描述的形式。实数按双字长度访问。
注意:浮点数精确到小数点后第 6 位。 因此输入浮点常数时,多只能指定 6 位小数。计算涉及到包含非常大和非常小数字的一长串数值时,计算结果可能不准确。

双实数转实数可以参考下面的例程:

dreal--real

注意:此程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

ASCII字符和String(字符串)

在S7-200 SMART中,ASCII字符是由表示字母、数字和一些特殊符号的ASCII编码组成的二进制数据字节,一个字节存储一个字符。

ASCII(美国信息交换标准码)是一种字符编码格式,在一个字节长度中不同的二进制数值代表不同的字符。如字母A为41h(十六进制数值),以十进制看就是65;而数字5的ASCII值为35h,十进制值为53。

字符串是一个字符序列,其中的每个字符都以字节的形式存储。 字符串的个字节定义字符串的长度,即字符数。 字符串的长度可以是 0 到 254个字符,再加上长度字节,因此字符串的大长度为 255 个字节。 字符串常数限制为126 个字节。(字符串中也能包括汉字编码,每个汉字占用两个字节。)

西门子S7-200SMART双实数转实数实例

 

这是S7-200 SMART 内部对ASCII字符串的格式定义,所有与字符串有关的指令都遵照这个格式。

  • 在编程软件中,用单字节(英文)的单引号(')将作为字符的内容括起来可以在数据块和状态图中输入ASCII数据字节
  • 在单字节的双引号(")中间输入文本内容可以输入字符串
  • 按上述方法输入的字符串会自动按字符串格式排列(在起始地址中放入字符个数)
  • 使用程序,或人为组合成的ASCII字符串,使用ASCII字符串指令时,必须注意是否符合格式
西门子S7-200SMART双实数转实数实例

图1. 在数据块中输入ASCII数据和字符串

例如:

下载项目到S7-200 SMART CPU,使用状态图在线监控可以看到:

西门子S7-200SMART双实数转实数实例

图2. 状态图

注意ASCII字节和字符串的区别。D6D0h是汉字“中”的编码。

 

继续阅读
weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: