gkket 发表于 2022-2-19 15:26:09

西门子PLC数据类型及常用寻址的编程方法

PLC在应用时需要处理各种各样的数据,因此为了应付这些数据,它的存储单元就需要有多种格式,今天带大家了解一下,西门子1200PLC的数据格式.https://p26.toutiaoimg.com/origin/pgc-image/058913e178144e738941b17ef77956b6?from=pc

西门子S7-1200 CPU中可以按照位、字节、字和双字,对存储单元进行寻址。二进制数的一位只有0或1两种不同的取值,可以用来表示数字量或称开关量的两种不同的状态,如触点的断开和接通线圈的通电和断电等。https://p26.toutiaoimg.com/origin/pgc-image/11d072d2ad124dbf8da260188196b76f?from=pc

八位二进制数组成一个字节,其中的第0位为最低位,第七位为最高位。两个字节组成一个字,其中的第0位为最低位,第15位为最高位。https://p26.toutiaoimg.com/origin/pgc-image/34b5cfe22f204960920fe6525ed0a181?from=pc

两个字组成一个双字,其中的第0位为最低位,第31位为最高位。https://p26.toutiaoimg.com/origin/pgc-image/8f0748fe39dc43408807bd88b3bd531b?from=pc

西门子S7-1200 CPU,不同的存储单元都是以字节为单位, 如图所示:https://p26.toutiaoimg.com/origin/pgc-image/2973a45ddb4e484d8afd2d01d72a118d?from=pc

对位数据的寻址由字节地址和位地址组成,如I3.2,其中的区域标识符I表示输入映像区,字节地址为3,位地址为2,这种存取方式称为字节位寻址方式。https://p26.toutiaoimg.com/origin/pgc-image/a499e99e4c224239beb95a7e1ae43dcd?from=pc

对字节的寻址,如MB2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,B表示寻址长度为一个字节,即寻址为存储区中的第二个字节。https://p26.toutiaoimg.com/origin/pgc-image/bff42c9df4ca4d86a319fe1f15cec7bf?from=pc

对字的寻址,如MW2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,W表示寻址长度为一个字,即两个字节,寻址为存储区中从第二个字节开始的一个字,即字节2和字节3。请注意,两个字节组成一个字,遵循的是低地址、高字节的原则。以MW2为例,MB2为MW2的高字节,MB3为MW2的低字节。https://p26.toutiaoimg.com/origin/pgc-image/5eb4d2ed244f4544a1cb61ad90bc6ab9?from=pc

对双字的寻址,如MD0,其中的区域标识符M表示为存储区,0表示寻址单元的起始字节地址,D表示寻址长度为一个双字,即两个字四个字节,寻址为存储区中从第0个字节开始的一个双字,即字节0、字节1、字节2和字节3。https://p26.toutiaoimg.com/origin/pgc-image/ee04b349dce643e9a08f5458fa94cdb6?from=pc

寻址方式详解分类:寻址方式从大的方面可以分成直接寻址和间接寻址。直接寻址就像甲要和乙说话直接叫乙的名字就可以了,甲直接和乙建立联。间接寻址就像甲要和乙说话,而乙在另外一个城市,甲就写了一封信通过邮递员送给乙,甲通过邮递员间接和乙建立联系,这就叫间接寻址。间接寻址中指针就充当了邮递员的角色。直接寻址分为:绝对地址寻址,符号寻址间接寻址分为:存储器间接寻址,寄存器间接寻址。一、直接寻址直接寻址是最简单的寻址方法,也是编程中最常用的寻址方式。①绝对地址寻址绝对地址寻址就是直接调用要使用的地址示例:I0.0 Q1.0 MW0②符号寻址符号寻址就是通过符号表中的绝对地址的命名进行寻址二、间接寻址★★★★★间接寻址是比较复杂的寻址方式,也是我们这里重点讲解的地方,间接寻址需重点理解指针的概念。★指针:理解指针主要需要理解指针的两个特性。A.存储性:存储性指的是指针也是一段存储空间,它的存储内容是地址。B.指向性:因为指针存放的内容是地址,那么指针中存放的是哪一个地址,我们就说指针指向了这个地址所对应的存储空间,这就是指针的指向性。A.存储器间接寻址【A1】16位指针寻址:1)16位指针存储空间16位指针存储空间是16位,2个字节,通过这2个字节的空间来存放变量的地址。2)16位指针寻址范围16位指针只能对计时器(T),计数器(C),数据块(DB,DI)的号,程序块(FB,FC)的号进行寻址,也就是这2个字节的存储空间中只能存放计时器的编号,计数器的编号,数据块的编号,程序块的编号。3)16位指针寻址表示格式16位指针寻址表示格式为:区域标示符示例:DB //表示对DB块进行寻址,MW0中如果存储的是1,那么该寻址结果为DB1,也就是通过该指令找到了DB1数据块。T //表示对计时器进行寻址,MW2中如果存放的是2,那么该寻址结果为T2,也就是通过该指令找到了计时器T2。4)16位指针寻址程序示例例1:L 2 //将2进行装载T MW 0 //将2传送到MW0A I 0.0 //如果I0.0 = TrueL S5T#10S //装载时间SD T  //T开始计时例2:L 1 //将1进行装载T MW 0 //将1传送到MW0OPN DB  //打开DB1L 10 //将10进行装载T DBW 0 //将10传送到DB1.DBW0中L DBW 0 //将DB1.DBW0进行装载T MW 2 //将DB1.DBW0传送到MW2中【A2】32位指针寻址1)32位指针存储空间32位指针存储空间是32位,4个字节,通过这4个字节的空间来存放变量的地址。2) 32位指针寻址范围32位指针能对I、Q、M、L、数据块的位、字节、字、双字进行寻址,也就是这4个字节的存储空间中能对上述存储类型中的位、字节、字、双字的地址进行存储。3)32位指针存储格式https://p26.toutiaoimg.com/origin/pgc-image/849d90195ed44489a49d74817d8bcbed?from=pc

4)32位指针寻址表示格式32位指针寻址表示格式为:地址存储器标示符示例:I //I表示输入存储区,MD0存储地址信息。Q //Q表示输出存储区,MD4存储地址信息。5)32位指针三种寻址方法①直接输入10进制数寻址(最复杂最不直观的寻址方式,不推荐使用)。②将输入的10进制数左移3位进行寻址(比较直观的寻址方式)。③利用 P#字节.位 格式进行寻址(最直观最方便的寻址方式,推荐使用)。6)32位指针三种寻址方法举例★例1 :直接输入10进制数寻址https://p26.toutiaoimg.com/origin/pgc-image/d8aad94260bf4604b746412902a080dc?from=pc

该程序实现的是两个数相加的功能。这里我们要重点理解为什么第六句将10传送到了MW4中,而不是MW32中,为什么第八句将15传送到了MW6中,而不是MW48中。这是因为32,和48存放到指针中是按照32位二进制数进行存放的,下面我们通过将48存放到MD24来进行举例说明https://p26.toutiaoimg.com/origin/pgc-image/39f3c8a6ecf7478dbb2d9b855dbade7a?from=pc

由上图可知将48放进MD24则MW指向了MW6例2:左移3为进行寻址https://p26.toutiaoimg.com/origin/pgc-image/01ce6837e9f8446a9ce8b92e11db5222?from=pc

由于将10进制数对应的2进制数左移三位后,字节存储区的二进制数和该10进制数对应的2进制数又相同了,而位存储区变为0,所以这样的寻址要比例1的寻址方式显得更为直观,便于使用和理解。例3:以 P#字节.位 格式进行寻址https://p26.toutiaoimg.com/origin/pgc-image/e221d9dd105e457282a85b80688182d4?from=pc

通过这个实例我们可以发现直接使用P#字节.位的寻址方式是最直观方便的。B.寄存器间接寻址寄存器间接寻址使用的是CPU的地址寄存器AR1和AR2B1)寻址格式区域标示符注:①AR1/AR2表示地址寄存器AR1或者AR2,地址寄存器中只能存放地址。②P#X表示偏移量X是偏移具体数值。B2)寄存器间接寻址示例https://p26.toutiaoimg.com/origin/pgc-image/9be0aa74823147acb40ec610c8be7e94?from=pc

工控PLC学习

否极泰来 发表于 2025-11-12 16:00:10

不请自来,就想夸一句:太顶了!

zlg6651 发表于 2025-11-12 16:13:14

浅评一下:内容优质,值得推荐~

CZN 发表于 2025-11-12 16:17:30

这波反向操作,我属实没想到!

AAA华东机电 发表于 2025-11-12 17:42:43

学到了学到了,这波分享太实用啦!

dfghd 发表于 2025-11-12 19:19:07

水贴也要有仪式感,我先来打卡~

gjd151@163.com 发表于 2025-11-12 19:23:11

说得对!狠狠赞同,没毛病~

334 发表于 2025-11-15 15:29:15

救命!这波发言太秀了,直接原地封神~
疯狂认同!楼主说出了我不敢说的话

zmkm2000 发表于 2025-11-15 15:41:09

原来还有这种操作,长见识了!

wx_u1YUY66o 发表于 2025-11-15 15:43:56

路过打卡,为优质内容疯狂打 call
页: [1] 2
查看完整版本: 西门子PLC数据类型及常用寻址的编程方法