双字、字、字节和位的关系总结
- 格式:docx
- 大小:852.18 KB
- 文档页数:3
位字节字双字寻址概念
现在把存储区比作一个大房间,存储分区比作柜子,柜子编号有V柜,I柜,Q 柜,M柜;每个柜子都有256个(0-255)抽屉,每个抽屉相当于一个字节B,每个抽屉有8个格子(0-7),相当于位,每个抽屉的状态有两种状态,有(1)和无(0)。
寻址:I0.0表示位寻址;IB0 表示字节寻址;IW0表示字寻址;ID0表示双字寻址。
I0.0代表一个位,最小的单元格;IB0代表一个字节,由8个字节组成;IW0代表字寻址,由2个字节组成,16个为组成;ID0代表双字寻址,由2个字组成,4个字节组成,32个位组成。
IB0=2 I柜子0号抽屉的状态是:00000010 相当于I0.1=1状态,其他都为0.
IB0=3 I柜子0号抽屉的状态是:00000011 相当于I0.0=1 I0.1=1状态,其他都为0.
以字节为例:
假如VB100等于2,那VW100等于512,VD100等于33554432(都是十进制表示)
因为在PLC内部,字和双字分别是以2个和4个字节组成,而且地址低的字节为字或双字的高位字节。
以二进制的形式表示
VB100=00000010=2
VB100=1111111=255
VW100=00000010(VB101) 00000000(VB100)=512
VD100=00000010(VB103)00000000(VB102)00000000(VB101)00000000(VB100)=33554432。
基本数据类型
基本数据类型:包括位、位序列、整数、浮点数、日期时间。
(常见的)
1、位字节字双字
2、数据类型
3 浮点数
实(或浮点)数以32 位单精度数(Real) 或64 位双精度数(LReal) 表示。
比如模拟量模块采集的温度压力等
4 时间日期数据类型
TIME 数据作为有符号双整数存储,基本单位为毫秒。
存储的数值是多少,就代表有多少ms。
编辑时可以选择性使用日期(d)、小时(h)、分钟(m)、秒(s) 和毫秒(ms) 作为单位
DATE 数据作为无符号整数值存储,被解释为添加到基础日期1990 年1 月1 日的天数,用以获取指定日期。
编辑器格式必须指定年、月和日。
TOD (TIME_OF_DAY) 数据作为无符号双整数值存储,被解释为自指定日期的凌晨算起的毫秒数(凌晨= 0 ms)。
必须指定小时(24 小时/天)、分钟和秒。
按位寻址:首先有一个存储器标识符用来区分当前使用PLC哪一种类型软元件,往下一位代表具体用的是哪个字节,一个字节有8个位,最后一位数字表示具体的哪个位,举例说明,I0.0首先I代表是用的PLC I 存储区,0代表是0字节,再往下的0代表的就是0字节具体第0个位;一个字节8个位,最大的位数就是0.7,没有0.8和0.9,下一个字节就是从1.0开始。
接下来再看一下按字节,字,双字寻址:如下图所示:学会按位寻址以后,对于按字节、按字以及双字寻址都是一样,首先:一个字节其实就是8个位,一个字就是16个位,一个双字就是32个位,可以理解为谁包含了谁;再看格式书写,第一位是存储器的标识符,第二位变为寻址方式的标识符,如B代表是按字节寻址,W代表的是按字寻址,D代表的是按双字寻址,最后一位代表的就是字节起始地址;举例说明VD0,V代表当前用的是PLC的V存储器,D代表的是按双字寻址,最后一位0代表被占用的起始字节,双字包含32个位,它共占用了从VB0开始到VB3这四个存储字节。
假设写的是VD1,那么它占用的起始字节就是从1开始,一共占用了VB1 VB2 VB3 VB4四个存储区。
1中VD0由VBO、VB1、VB2、VB3组成,它包括VWO、VBO、V0.0;而VW0由VB0和VB1组成,它包括了VB0和V0.0;而VB0由VB0.0~VB0.7这八个位组成,它包括V0.0。
建议您把西门子的200基础知识好好看看,这些都是很有用的2、四者的寻址方式不同,V0.0是按位寻址,VB0是按字节寻址,VW0是按字寻址,VD0是按双字寻址。
VD0由VBO、VB1、VB2、VB3组成,它包括VWO、VBO、V0.0; VW0由VB0和VB1组成,它包括了VB0和V0.0;VB0由VB0.0~VB0.7这八个位组成,它包括V0.0。
3、1字节=8个二进制位(简称位) 1字=2字节=16位 1双字=2字=4字节=32位4、字由一串字节组成,字节由8个位组成,双字节就是连续的16个位了如有侵权请联系告知删除,感谢你们的配合!。
1、位(bit)来自英文bit,音译为“比特”,表示二进制位。
位是计算机内部数据储存的最小单位,是一个8位二进制数。
一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。
2、字节(byte)字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。
字节是计算机中数据处理的基本单位。
计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。
八位二进制数最小为00000000,最大为;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
3、字计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。
一个字通常由一个或多个(一般是字节的整数位)字节构成。
例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。
计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。
另一种说法:字在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称宇。
字通常分为若干个字节(每个字节一般是8位)。
在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。
字的长度用位数来表示。
在计算机的运算器、控制器中,通常都是以字为单位进行传送的。
宇出现在不问的地址其含义是不相同。
例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。
在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字中二进制位数的长度,称为字长。
一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。
目前主流微机都是32位机。
注意字与字长的区别,字是单位,而字长是指标,指标需要用单位去衡量。
S7-1200 PLC的基本数据类型,你了解多少?如果有了解过S7-1200 PLC的学员,相信应该知道S7-1200 PLC所支持的数据类型是远远多于S7-200/200 SMART PLC的吧?今天就给大家介绍一下S7-1200 PLC的数据类型。
除了基本数据类型之外,还支持一些复杂的数据类型,包括结构数据类型Struct、PLC数据类型UDT、数组Array、系统数据类型SDT、硬件数据类型DB_ANY、参数数据类型Variant、String和Char数据类型、WString和WChar数据类型、DTL数据类型等。
就基本数据类型而言,S7-1200 PLC与S7-200/200 SMART PLC的也有不同,这篇文件中我们先介绍基本数据类型(复杂数据类型下一篇中介绍),基本数据类型包括位、字节、字、双字、整数、浮点数、日期时间,此外字符(String和Char 数据类型、WString和WChar数据类型)也属于基本数据类型。
1、位、字节、字和双字位为Bool,字节为Byte,字为Word,双字为DWord。
这些数据类型与S7-200/200 SMART PLC都是一样的。
这里便不再多说,具体可看下表。
2、整数数据类型对于S7-200/200 SMART PLC整数数据类型只有INT整数和DINT双整数这两种,而S7-1200 PLC支持6种,USInt、UInt、UDInt是无符号数,SInt、Int、DInt是有符号数,他们的数值范围有所不同。
3、浮点数数据类型在S7-1200PLC中,浮点数以32 位单精度数(Real) 或64 位双精度数(LReal) 表示。
但是像S7-200/200 SMART PLC中就没有LReal的数据类型。
4、时间和日期数据类型时间和日期数据类型包括Time、Date、Time_of_Day这三种。
S7-200/200 SMART PLC是不支持这几种数据类型的,但是S7-1200PLC可以支持这几种数据类型。
字节、字、双字,整数,双整数和浮点数详解1.引言1.1 概述在计算机科学和编程领域,字节、字、双字、整数、双整数和浮点数是非常重要的概念和数据类型。
它们在存储和处理数据时起着关键作用。
本文将对这些概念和数据类型进行详细解释和讨论。
首先,字节是计算机存储和处理数据的基本单位之一。
一个字节由8位二进制数字组成,可以表示256种不同的值。
字节一般用于存储和表示字符,例如ASCII码中的每个字符都用一个字节表示。
接下来,字是字节的扩展,通常由两个字节组成。
字是更大的数据单元,可以表示更多的不同值。
字通常用于存储和表示较大的字符集,如Unicode编码中的字符。
双字是对字的一种拓展,由四个字节组成。
双字可以表示更大范围的数据,通常用于存储和处理较大的整数和浮点数。
然后,整数是一种完整的数值数据类型,用于表示不带小数部分的数值。
整数可以是负数、零或正数,其取值范围取决于所使用的字节数。
整数常用于计算、逻辑运算和数据存储。
双整数是对整数的一种拓展,由两个整数组成。
双整数可以表示更大范围的整数值,通常用于需要更精确的计算和表示的情况。
最后,浮点数是一种带有小数部分的数值数据类型。
浮点数通常由双字表示,其中一部分用于存储小数部分,另一部分用于存储指数部分。
浮点数常用于科学计算、图形处理和物理模拟等领域。
本文将详细探讨字节、字、双字、整数、双整数和浮点数的定义、特点、应用、表示方式、运算规则和数据范围等方面内容。
通过深入理解这些概念和数据类型,我们可以更好地理解计算机的内部处理和存储方式,并在编程中更加灵活和高效地处理数据。
1.2文章结构文章结构部分的内容可以写成以下方式:1.2 文章结构本文将详细介绍字节、字、双字、整数、双整数和浮点数的概念以及其应用。
文章结构如下:2.正文2.1 字节2.1.1 定义本节将介绍字节的定义,以及字节在计算机中的作用和意义。
2.1.2 应用本节将探讨字节在不同应用场景下的具体应用,例如在存储和传输数据中的作用。
双字,字节转换题在计算机领域中,我们经常会遇到关于数据存储和传输的问题。
其中,一个常见的问题就是字节与双字之间的转换。
本文将为您介绍这个问题,并提供一些方便快捷的方法。
首先,我们来了解一下字节和双字的概念。
字节是计算机中最小的存储单位,通常由8个比特(bit)组成。
而双字则由两个字节构成,即16个比特。
在计算机内存和数据传输过程中,字节和双字的转换非常常见。
在将字节转换为双字时,我们可以使用位运算来实现。
具体操作如下:1. 首先,将字节的高字节和低字节分别提取出来。
2. 然后,将高字节左移8位,再与低字节进行按位或操作。
下面是一个示例:假设我们有一个字节:10101010我们可以将其转换为双字的步骤如下:1. 首先,提取出高字节和低字节:1010和10102. 然后,将高字节左移8位,得到:1010000000003. 最后,将上述结果与低字节进行按位或操作,得到最终的双字:101010101010同样,我们也可以将双字转换为字节。
具体操作如下:1. 首先,将双字的高字节和低字节分别提取出来。
2. 然后,将高字节右移8位,即将高字节的前8位去除。
3. 最后,分别得到高字节和低字节的值。
下面是一个示例:假设我们有一个双字:1100110011001100我们可以将其转换为字节的步骤如下:1. 首先,提取出高字节和低字节:11001100和110011002. 然后,将高字节右移8位,得到:0000000011003. 最后,得到高字节和低字节的值分别为:00000000和11001100通过以上的方法,我们可以很方便地将字节和双字进行转换,从而满足不同的计算需求。
总结起来,字节和双字之间的转换是计算机中常见的操作。
通过位运算,我们可以方便地进行转换,并满足不同的计算需求。
熟练掌握这些转换方法,对于理解和应用计算机技术都非常有帮助。
希望本文的内容能对您有所帮助,谢谢阅读!。
西门子S7-300系列PLC基础知识-地址分配当物理模块安装完毕后,要对信号模块SM上的每一个信号通道分配一个物理地址,从而使用户程序能够识别这些这些通道。
首先要清楚以下几个概念:位,Bit字节,Byte,1Byte=8Bit字,Word,1个字等于2个字节,等于16位双字,D,等于2个字,4个字节,32位1、数字量的地址每个位BIT可以表示一个数字I/O点。
数字量以字节为单位(包括8个位),每个字节可表示8个I/O点。
数字量每个槽(模块)分为4个字节Byte。
所以一个槽可以表示32个I/O通道。
比如Q4.2,Q表示输出区域,4表示第4个字节,2表示第4个字节中的第3位。
数字量的地址分配如下图。
如果一个槽内只有一个16点的I/O模块,则地址只占用0.0至1.7,2.0至3.7不使用。
2、模拟量的地址每个字W可以表示一个模拟量通道。
每个槽(模块)分为16个字节(16Byte),即8个通道。
比如PIW256,PI表示外设输入,W表示一个字W的长度,256表示256和257两个字节组成的单字PIW256,256表示首地址。
模拟量地址分配见下图:注意:-以上地址都是从第四个槽开始,前3个槽预留给PS,CPU,IM。
-由于一个模拟通道是由一个单字W组成,所以PIW257,IW273等等地址是不存在的,如果在编程中出现,会导致出错,这一点是初学者常犯的错误。
-当数字量和模拟量插槽混合使用的时候,仍然可以按照上面的原则分配。
只不过会出现很多未被使用的地址。
如下图所示:存贮器表示方法主标识符+辅助标识符+地址主标识符有:输入映像区I、输出映像区Q、外设输入PI、外设输出PQ、存储区域映像区M、数据表DB、DI、定时器T、计数器C、本地数据L、系统保留区。
辅助标识符有:X(省略)位、B字节、W字、D双字。
双字、字、字节和位的关系总结
一、资料查询:
相信从网上搜一下西门子数据类型方面的资料,会有一大堆,最常见的就是解释双字和字节之间的组成关系,如下图:
就以这个资料为基础,进行试验验证;
二、程序准备
由于资料上大部分都是以M区介绍双字和字节等关系,但是实际情况是DB块中的数据居多,故在此实验中,将M区和DB区的内容进行对比,以方便观察,进行如下准备:
1、新建DB块,里面创建需要的变量:
2、创建M区变量,以方便做比较,这里取MD24,然后将其拆成字、字节、位,以方便观察:
3、创建FC程序:主要是将双字拆成字、双字,并将双字传送给单字、单字传送给双字,为了方便置位双字中的位,特意用数组逐位传送给双字中的位:
三、程序验证:
省略掉程序的下载啊、仿真啊的操作步骤,因为那个不是重点,直接展示测试结果:从数组中,分别置位不同的位,则相当于分别对双字中的位进行置位,可以分别观察结果,现在取比较有代表性的两个位,即将第0位和第16位置1,结果如下两图所示:
通过测试可以发现如下规律:
1、西门子双字中位的排列,是从右向左排的,这点和平时写字顺序正好相反,但是我觉得可以从进制的位数去记忆一下,比如我们十进制,从右往左分别是个、十、百、千、万等位,这个正好类似于那个;
2、可以看下双字传给单字的情况,对于截取数据时候比较有帮助,具体不总结,可以体会一下;
3、第三条也是我一开始比较迷糊的地方,观察双字的四个字节,和位的排序是一样的,即0位在右,依次往左增大,但是M区其实按照这个方向排列,但是让人很迷糊,上图为例,我们置位0位的时候,在DB中是第0个字节有变化,但是在M区中对应的是MB27变化,虽然按照一开始资料所示,MB27是在
最右边,但是MB27是第0字节,MB26是第1字节,依次类推,大小和字节顺序又反了一次,虽然仔细想一下就明白怎么回事,但是依然有点小别扭;。