SIMATIC S7-1500与TIA博途软件的使用---连载26

已锁定

总坛主

  • 帖子

    1022
  • 精华

    21
  • 被关注

    395

论坛等级:至圣

注册时间:2011-02-24

黄金 黄金 如何晋级?

SIMATIC S7-1500与TIA博途软件的使用---连载26

2526

1

2016-05-19 10:02:14

以下内容节选自机械工业出版社出版的西门子自动化技术丛书----《SIMATIC S7- 1500 与 TIA博途软件使用指南》, 作者崔坚。更多更详细的内容请您参考《SIMATIC S7- 1500 与 TIA博途软件使用指南》一书。

 

基本数据类型

5.1.1基本数据类型

      每一个基本数据类型数据都具备关键字、数据长度、取值范围和常数表达格式等属性。以字符型数据为例,该类型的关键字是Char,数据长度8 bit,取值范围是ASCII字符集,常数表达格式为两个单引号包含的字符,如’A’。 基本数据类型的关键字、长度、取值范围和常数表示方法参考表5- 1。

 

 

下面举例介绍几种数据类型的表示方法:

  •  WORD(字)

一个WORD包含16个位。以二进制编码表示一个数值时,将16个位分为4组,每组4个位,组合表示数值中的一个数字。例如以16进制表示数值W#16#1234的方法如图5- 1所示。使用16进制表示WORD数值时没有符号位。

以BCD码表示+123方法如图5- 2所示。BCD码通常表示时间格式数值,与16进制表示方法相比较,BCD码带有符号位,数值中不能含有A、B、C、D、E、F等16进制数字。

LDWORD、DWORD与WORD虽然变量长度不同,但表示方法类似。

 

  • INT(整型)

一个INT类型的数包含16个位,在存储器中占用一个字的空间。第0位至第14位表示数值的大小。第15位为符号位,表示数值的正负。以二进制编码表示一个数值时,除符号位以外将每一位的数值进行加权和计算即可表示一个整型数,例如以整型方式表示+34的位图排列如图5- 3所示。

一个负数的位表示方法则是在正数的基础上将所有位信号取反后加1,如-34的表示方法如图5- 4所示。

LINT、DINT、INT与SINT虽然变量长度不同,但表示方法类似,即最高位为符号位;而ULINT、UDINT、UINT和USINT均为无符号整型变量,所以无符号位。

 

  • REAL(浮点型)

一个REAL类型的数占用4个字节的空间。S7-1500中的REAL数据类型符合IEEE754 标准的浮点数标准,一个REAL数值包括符号位S、指数e和尾数m,分别占用的位数如图5- 5所示。

指数e和尾数m的取值参考见表5- 2。

REAL数据类型的值等于(+/-)1.m * 2 (e - bias)    ,其中

e:1 ≤ e ≤ 254

bias:bias = 127

S:S=0 值为正,S=1值为负。

例如浮点值12.25的表示方法为:

符号位S = 0;

指数 e = 27  + 21 = 128 +2 = 130;

尾数 m = 2-1 +   2-5 = 0.5 + 0.03125 = 0.53125

浮点数值 = (1 + 0.53125) * 2 (130 - 127)   = 1.53125 *8 = 12.25

如果相差大于等于107的两个REAL浮点数进行运算,可能导致不正确的结果,例如100,000,000.0+1.0 = 100,000,000.0,因为值1.0在前者中无法表示(最小数值分辨率)。为了增加浮点运算的准确性,在程序中应避免相差大于107的两个浮点值进行加减运算。

 

  • LREAL(长浮点型)

一个LREAL类型的数占用8个字节的空间。S7-1500中的LREAL数据类型符合IEEE754 标准的浮点数标准,一个LREAL数值包括符号位S、指数e和尾数m,分别占用的位数如图5- 6所示。

  • S5 Time(SIMATIC 时间)

S7-1500中的S5定时器使用S5 TIME的数据类型,格式为S5T#Xh_Xm_Xs_Xms,

其中h表示小时;m表示分钟;s表示秒;ms表示毫秒。时间数据以BCD码的格式存储于16个位中,例如时基为1秒(时间最小分辨率为1秒),时间值为127秒的表示方法如图5- 7所示。

时基为时间的最小分辨率,时基的几种方式参考表5- 3。

同样一个定时器,BCD码的时间值最大为999,通过选择不同的时基可以改变定时器的定时长度,10ms时基的最大定时长度为9990ms,100ms时基的最大定时长度为99900ms,1s时基的最大定时长度为999s,10s时基的最大定时长度为9990s,所以定时器最大的定时长度为9990秒(2H_46M_30S),但是最小分辨率将变为10s。在编写用户程序时可以直接装载设定的时间值,CPU根据时间值大小自动选择时基值。例如在程序中设定时间值为 S5T#2M_30S,即150秒,它大于100ms时基最大的定时长度(99900ms)而小于1s时基最大的定时长度(999s),时基自动选择为1s;如果选择时间值为一个变量,则需要对时基值进行赋值,例如使用不支持SIMATIC S5 TIME数据格式的第三方HMI监控软件设定时间值时,需要设定时基值(西门子WINCC软件中支持SIMATIC S5 TIME数据格式,不需要选择)。

 

  • TIME(IEC时间)和LTIME(IEC时间)

TIME(IEC时间)采用IEC标准的时间格式,占用4个字节,格式为:T#Xd_Xh_X m _Xs_Xms,操作数内容以毫秒为单位。在规定的取值范围内,TIME(IEC时间)类型数据可以与DINT类型的数据相互转换(T#0ms对应L#0),DINT数据每增加1,时间值增加1ms。

LTIME(IEC时间)时间数据类型长度为8个字节,格式为:LT#Xd_Xh_X m _Xs_Xms_X us _X ns,操作数内容以纳秒为单位,LINT数据每增加1,时间值增加1 ns。

其中d表示为天;h表示小时;m表示分钟;s表示秒;ms表示毫秒;us表示微秒;ns表示纳秒。

与SIMATIC S5 TIME相比,IEC定时器更精确,定时时间更长,但是每一个IEC定时器需要占用一定的CPU的存储区。

 

  • DATE(IEC日期)

DATE(IEC日期)采用IEC标准的日期格式,占用2个字节,例如2006年8月12日的表示格式为:D#2006-08-12,按年-月-日排序。在规定的取值范围内,DATE(IEC日期)类型数据可以与INT类型的数据相互转换(D#1990-01-01对应0),INT数据每增加1,日期值增加1天。

 

  • TIME_OF_DAY

TIME_OF_DAY(时间),占用4个字节,例如10小时11分58秒312毫秒的表示格式为:TOD#10:11:58.312,按时分:秒.毫秒排序。在规定的取值范围内,Time_OF_DAY(时间)类型数据可以与DINT类型的数据相互转换(TOD#00:00:00.000对应0),DINT数据每增加1,时间值增加1ms。

 

  • CHAR

CHAR 的操作数长度为 1个字节,格式为ASCII字符。字符A表示的示例为:CHAR#'A'。

 

  • WCHAR

WCHAR(宽字符)的操作数长度为2个字节,该数据类型以Unicode格式存储,可存储所有Unicode格式的字符,包括汉字、阿拉伯字母等所有以Unicode为编码方式的字符。汉字“你”以WCHAR表示的示例为:WCHAR#'你'。

 

注意:

上述介绍的为S7 1500 CPU的数据类型,如果与第三方数据通信,需要注意数据类型的构成,如一些串口设备自定义浮点数据类型,与S7 1500 CPU的数据类型不匹配,需要用户编程转换。

SIMATIC S7-1500与TIA博途软件的使用---连载26 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有8583条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。