有网友对学习PLC过程中对于数据类型有很多疑问,利用本文再对PLC中的基本数据类型跟大家进行一下解读。

对于数据类型的解释在手册中是这么说的:

“数据类型用于指定数据元素的大小以及如何解释数据。每个指令参数至少支持一种数据类型,而有些参数支持多种数据类型。将光标停在指令的参数域上方,便可看到给定参数所支持的数据类型”。

从上面的手册解释来说就是在编程中要对程序中用的数据给指定一个数据类型,要能满足数据大小(长度),让程序能进行计算,所以,要能明白你所使用的数据是什么类型,长度有多大,这样你才能在程序中准确进行逻辑运算、数学运算及数据传输等,同时,也要看你所使用的指令可以使用哪些数据类型,根据指令需要进行一些数据类型的转换。

一、基本数据类型包含哪些?

以西门子TIA S7-1200为例来说,1200的基本数据类型包括:二进制数、整数、浮点数、定时器数据、时间和日期、字符串等。下面主要以容易混淆的二进制数、整数和浮点数进行解读:

1、二进制数(BOOL、BYTE、WORD、DWORD、LWORD)

(1)BOOL型:布尔,是表示1位的值,就是说0或1。

(2)BYTE:字节,是位字符串,占有8位,举例说2#0 到 2#1111_1111,对应16进数就是16#00—16#FF。如IB2、MB10、DB1.DBB4

(3)WORD:字,是位字符串,占有16位,举例说:2#0到2#1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF。如MW10、DB2.DBW1。

(4)DWORD:双字,是位字符串占有32位,举例说:2#0到2#1111 1111 1111 1111 1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF FFFF。如MD10、DB2.DBD1。

2、整数(SINT、USINT、INT、UINT、DINT、UDINT、LINT、ULINT),这里的S代表短,U代表无符号、D代表双。

(1)SINT和USINT

这两种相同的是短整形数,占8位,地址举例:MB0,DB1.DBB0。但是这两种的取值范围是不同的。

SINT:有符号短整形,取值范围-128—127,2#0—2#0111 1111,最高位为符号位,

USINT:无符号短整形,取值范围0—255,2#0—2#1111 1111

(2)INT和UINT

这两种相同的是整形数,占16位,地址举例:MW0,DB1.DBW0。但是这两种的取值范围是不同的。

INT:有符号整形,取值范围-32768—32767,2#0—2#0111 1111 1111 1111,最高位为符号位,

USINT:无符号短整形,取值范围0—65535,2#0—2#1111 1111 1111 1111

(3)LDNT和UDINT

这两种相同的是双整形数,占32位,地址举例:MD0,DB1.DBD0。但是这两种的取值范围是不同的。

DINT:有符号整形,取值范围-2,147,483,648—2,147,483,647,2#0—2#0111 1111 1111 1111 1111 1111 1111 1111,最高位为符号位,

UDINT:无符号整形,取值范围0—4,294,967,295,2#0—2#1111 1111 1111 1111 1111 1111 1111 1111

3、浮点数

实(或浮点)数以 32 位单精度数 (Real) 或 64位双精度数 (LReal) 表示。 单精度浮点数的精度最高为 6位有效数字,而双精度浮点数的精度最高为 15 位有效数字。

在输入浮点常数时,最多可以指定 6 位 (Real) 或 15 位 (LReal) 有效数字来保持精度。

总结下:上述数据类型是我们在编程中最常用到的数据类型,通过上面的介绍大家应该对它们有一定的了解,虽然可能不同数据类型的数据占有的字节数是相同,但是它们的数据其实是不同的,比如,INT和WORD都是16位,但是它们包含数据内容是不同的,在编程中一定要注意。通常来说,WORD常用于逻辑计算,INT常用于数学计算,对于博途TIA S7-1200使用SCL编程时区分是比较严格的。

二、如何定义数据类型

在编程中我们一般要先定义好数据类型,比如在数据块中定义数据类型,下面以在DB块中定义数据类型为例,看看不同的数据类型地址有什么变化。

建立如下数据块,并建立一下数据包含不同数据类型:

从上图看不到偏移量,这时因为TIA中的DB块默认勾选“优化的块访问”,只能显示符号地址,而没有偏移量,可以在块属性中将“优化的块访问”去掉即可,

下面就看看不同数据类型的地址:

从上图大家能发现什么?

(1)BOOL型,虽然只有一位,但是也要占一个字节。

(2)SINT USINT 和BYTE都是1个字节,但是它们的初始值的格式是不同的。同样WORD和INT也是一样2个字节,所以,在数据类型分类,将WORD归到二进制数中,一般用于逻辑运算,而INT用于数学运算。

(3)REAL是4个字节,在进行数学计算时要注意,比如,我前面写转换指令文章#跟我一起看1200手册之基本指令(转换指令)如何使用中用到的求平方根指令,就是对REAL型数据进行计算,所以,在选择数据时我使用的DINT数据。(如下图所示)。不注意的话容易造成计算错误。

byte是什么数据类型_PLC基本数据类型的解读(避免在使用中的误解)相关推荐

  1. html显示后台传来的byte类型的数据_java的数据类型

    java数据类型分为基本数据类型和引用数据类型,基本数据类型又分为整数型.浮点型.字符型.布尔型.引用类型有数组.类.接口. java的数据类型 Java基本数据类型: 1.四种整数类型(byte.s ...

  2. byte 类型比较_Java Grammar:数据类型

    Java中的基础数据类型 Java的数据类型 我们知道,Java是一种强类型语言,类型对于Java语言来说非常的重要不言而喻,在Java中,分为基础数据类型和引用数据类型,其中基础数据类型分为了四类八 ...

  3. 数据库(一)数据类型:BLOB数据类型的读取办法,它可以用来保存Byte[]类型的图片信息。

    参考: http://www.shareblogs.top/402/ https://www.cnblogs.com/demi-pansha/p/5742105.html https://www.2c ...

  4. c++date数据类型_PLC编程设涉及到的数据类型了解一下

    前文给大家简单的讲了一下IEC61131-3&GB/T15969.3,可编程序控制器-第3部分:编程语言.IEC 61131-3国际标准的编程语言包括5中语言. 今天给大家带来的还是这个标准中 ...

  5. java基本数据类型_Java基础——数据类型

    java中一共分为两种数据类型:基本数据类型和引用数据类型. 基本数据类型 java中基本数据类型可以分为4类8种: 整型:byte.short.int.long 符点型:float.double 字 ...

  6. c#和mysql之间的类型_【SqlServer数据类型、C#数据类型、SqlDbType】对应关系及转换...

    // sql server数据类型(如:varchar) // 转换为SqlDbType类型 public static SqlDbType SqlTypeString2SqlType(string ...

  7. java数据类型_JAVA的数据类型

    什么是数据类型:百度百科 数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作(简单来说就java对数据进行了分类,存在不同的类型) 那么为什么需要数据分类呢? 因为在java中不同 ...

  8. Windows API 的数据类型与 Delphi 数据类型对照表

    Windows API 的数据类型与 Delphi 数据类型对照表 Windows 数据类型 Delphi 数据类型 描述 LPSTR PAnsiChar 字符串指针 LPCSTR PAnsiChar ...

  9. java中的基本数据类型_Java中的基本数据类型和引用数据类型

    数据类型用于帮助确定变量可存放的一组值,以及可对这组特定值执行的操作.Java提供了在所有平台上都普遍支持的多种数据类型. 一.基本数据类型 byte:Java中最小的数据类型,在内存中占8位(bit ...

最新文章

  1. linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...
  2. 自定义堆栈(回文检测)
  3. 大学计算机基础课程报告python-基于Python的“大学计算机基础”课程教学设计.doc...
  4. shiro的QuickStart
  5. 《算法竞赛入门经典》 例题 4-1 古老的密码(Ancient Cipher) UVa 1339
  6. RMQ问题:与众不同(st表的高端应用)
  7. 禁用Cookie后,Session怎么样使用
  8. 后台接收datetime_input上传date日期时间数据到后台报400怎么办?
  9. 转: 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
  10. 炸了!!又一 VSCode 神器面世!
  11. 离散数学思维导图笔记
  12. 高速系统设计自学笔记——信号完整性6
  13. LWN:Fedora 关于无驱动打印的讨论!
  14. 联想Win10 更新系统后触控板无反应,无效
  15. APS Interview - Operating System
  16. Primeng PrimeFlex 的使用总结 (Angular 10)
  17. (已更新)网络祭祀人物小程序模板
  18. (模拟信号/数字信号)分别以(模拟信号/数字信号)中传输方式
  19. 电脑扩展显示器启动后连接不上,需要重启才能连接
  20. Javaweb学习之中文乱码问题

热门文章

  1. 异常掉电导致的ORA-[kfrValAcd30]故障处理
  2. 带你认识7种云化测试武器
  3. ReplacingMergeTree:实现Clickhouse数据更新
  4. 520特辑丨码神VS爱神:盘点程序员的四大男友力,你偏爱哪一种?
  5. 互联网短平快下,DevCloud如何支撑软件开发的“转型”?
  6. 看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点
  7. 【Python成长之路】从 零做网站开发 -- 基于Flask和JQuery,实现表格管理平台
  8. 容易造成单片机内存溢出的几个陷阱
  9. oracle无法重命名服务器名字,重命名Oracle数据库服务器
  10. 迷宫问题c语言报告,c语言写的迷宫问题