课程中心
HOME
课程中心
正文内容
32位plc编程 西门子数据格式以及寻址,实例讲解清晰易懂,PLC编程必修课
发布时间 : 2024-12-28
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子数据格式以及寻址,实例讲解清晰易懂,PLC编程必修课

PLC在应用时需要处理各种各样的数据,因此为了应付这些数据,它的存储单元就需要有多种格式,今天带大家了解一下,西门子1200PLC的数据格式.

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

八位二进制数组成一个字节,其中的第0位为最低位,第七位为最高位。

两个字节组成一个字,其中的第0位为最低位,第15位为最高位。

两个字组成一个双字,其中的第0位为最低位,第31位为最高位。

西门子S7-1200 CPU,不同的存储单元都是以字节为单位, 如图所示:

对位数据的寻址由字节地址和位地址组成,如I3.2,其中的区域标识符I表示输入映像区,字节地址为3,位地址为2,这种存取方式称为字节位寻址方式。

对字节的寻址,如MB2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,B表示寻址长度为一个字节,即寻址为存储区中的第二个字节。

对字的寻址,如MW2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,W表示寻址长度为一个字,即两个字节,寻址为存储区中从第二个字节开始的一个字,即字节2和字节3。请注意,两个字节组成一个字,遵循的是低地址、高字节的原则。以MW2为例,MB2为MW2的高字节,MB3为MW2的低字节。

对双字的寻址,如MD0,其中的区域标识符M表示为存储区,0表示寻址单元的起始字节地址,D表示寻址长度为一个双字,即两个字四个字节,寻址为存储区中从第0个字节开始的一个双字,即字节0、字节1、字节2和字节3。

寻址方式详解

分类:寻址方式从大的方面可以分成直接寻址和间接寻址。

直接寻址就像甲要和乙说话直接叫乙的名字就可以了,甲直接和乙建立联。

间接寻址就像甲要和乙说话,而乙在另外一个城市,甲就写了一封信通过邮递员送给乙,甲通过邮递员间接和乙建立联系,这就叫间接寻址。间接寻址中指针就充当了邮递员的角色。

直接寻址分为:绝对地址寻址,符号寻址

间接寻址分为:存储器间接寻址,寄存器间接寻址。

一、直接寻址

直接寻址是最简单的寻址方法,也是编程中最常用的寻址方式。

①绝对地址寻址

绝对地址寻址就是直接调用要使用的地址

示例:

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位指针寻址表示格式为:区域标示符[16位地址指针]

示例:

DB [MW0] //表示对DB块进行寻址,MW0中如果存储的是1,那么该寻址结果为DB1,也就是通过该指令找到了DB1数据块。

T [MW2] //表示对计时器进行寻址,MW2中如果存放的是2,那么该寻址结果为T2,也就是通过该指令找到了计时器T2。

4)16位指针寻址程序示例

例1:

L 2 //将2进行装载

T MW 0 //将2传送到MW0

A I 0.0 //如果I0.0 = True

L S5T#10S //装载时间

SD T [MW0] //T开始计时

例2:

L 1 //将1进行装载

T MW 0 //将1传送到MW0

OPN DB [MW 0] //打开DB1

L 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位指针存储格式

4)32位指针寻址表示格式

32位指针寻址表示格式为:地址存储器标示符[32位地址指针]

示例:

I[MD0] //I表示输入存储区,MD0存储地址信息。

Q[MD4] //Q表示输出存储区,MD4存储地址信息。

5)32位指针三种寻址方法

①直接输入10进制数寻址(最复杂最不直观的寻址方式,不推荐使用)。

②将输入的10进制数左移3位进行寻址(比较直观的寻址方式)。

③利用 P#字节.位 格式进行寻址(最直观最方便的寻址方式,推荐使用)。

6)32位指针三种寻址方法举例

★例1 :直接输入10进制数寻址

该程序实现的是两个数相加的功能。

这里我们要重点理解为什么第六句将10传送到了MW4中,而不是MW32中,为什么第八句将15传送到了MW6中,而不是MW48中。

这是因为32,和48存放到指针中是按照32位二进制数进行存放的,下面我们通过将48存放到MD24来进行举例说明

由上图可知将48放进MD24则MW[MD24]指向了MW6

例2:左移3为进行寻址

由于将10进制数对应的2进制数左移三位后,字节存储区的二进制数和该10进制数对应的2进制数又相同了,而位存储区变为0,所以这样的寻址要比例1的寻址方式显得更为直观,便于使用和理解。

例3:以 P#字节.位 格式进行寻址

通过这个实例我们可以发现直接使用P#字节.位的寻址方式是最直观方便的。

B.寄存器间接寻址

寄存器间接寻址使用的是CPU的地址寄存器AR1和AR2

B1)寻址格式

区域标示符[AR1/AR2,P#X]

注:

①AR1/AR2表示地址寄存器AR1或者AR2,地址寄存器中只能存放地址。

②P#X表示偏移量X是偏移具体数值。

B2)寄存器间接寻址示例

首发!西门子PLC入门级编程新案例,老工程师详细编写程序图

原创不易,请勿抄袭,转载注明来源!

此方案是利用Siemens的PLC(CPU-224)和变频器MICROMASTER(MM)来实现各种功能。

主要是利用MICROMASTER(MM)自身PI及通讯功能,由PLC来集中控制,通过PLC的通讯口与MICROMASTER(MM)连接,读取变频器的各种信息,从而实现此套设备的各种功能,包括加减泵、起停泵等。

编程程序的具体说明:

PLC与MICROMASTER(MM)是采用USS五字协议进行通讯,具体内存分配如下:

具体说明见附录

变量参数

VW0-------P041(第一恒压值)

VW2-------P042(第二恒压值)

VW4-------P043(第三恒压值)

VW6-------P044(起停压力下限)

VW8-------P046(起停压力上限)

VW10------P047(PID上下限偏差)

VW12------第一恒压上限

VW14------第一恒压下限

VW16------第二恒压上限

VW18------第二恒压下限

VW20------第三恒压上限

VW22------第三恒压下限

VW30------第四恒压上限

VW32------第四恒压下限

VW34------第五恒压上限

VW36------第五恒压下限

VW40------PID上限值

VW42------PID下限值

VW44------实时压力值

VW46------实时频率值

VD50------运算地址

VW150--VW199----循环计数及标志位

VD150-----------地址指针

VD160--VD168----地址指针

VD160-----计算频率值地址指针

VD164-----接收缓冲区地址指针

VW170-----发送重试次数==3

VW172-----通讯故障可重试次数==5

VW174-----变频器故障可重新启动次数==3

VW176-----初始化计数器

VW180-----响应信息中接收字符数=初值为14

VW190-----接收信息BCC累加器

VB192-----最后一次通讯试操作的状态

VB500-----PORT0通讯标志字节

程序结构

MAIN------主程序

SBR0------PORT0及变量初始化子程序

SBR1------读变频器初值子程序

SBR2------读实时频率及实时压力子程序

SBR3------启动变频器子程序

SBR4------停变频器子程序

SBR5------运算BCC码子程序

SBR6------发送子程序

SBR8------读时时频率及实时压力发送子程序

SBR10-----计算PID上下限子程序

INT0------PORT0发送结束中断程序

INT1------PORT0发送超时中断程序

INT2------PORT0读实时频率及实时压力发送结束中断程序

INT3------PORT0读实时频率及实时压力发送超时中断程序

INT4------PORT0接收字符中断程序

INT5------PORT0接收超时中断程序

INT6------PORT0读实时频率及实时压力接收字符中断程序

INT7------PORT0读实时频率及实时压力接收超时中断程序

以上,欢迎分享及收藏!

如需更多其他学习PLC的资料也可通过私信告知小编,大家一起探讨学习!

相关问答

32位的电脑可以运行plc编程软件吗?

WIN7旗舰版(32位)主流的应该都没问题,例如三菱plc编程软件win732位可以完美地运行32位操作系统上,这是一款专业的编程仿真工具,适用于Q、QnU、QS、QnA、AnS...

WIN732位能装上西门子PLC的那些编程软件,有谁把全部的全装...

32位的安不上64位的有的能装上最好用xp系统有用(0)回复32位版本的系统与以前所使用的系统只是版本不一样,没有根本区别,以前的软件应该绝大部分都能正常使...

求win10系统32位可以使用的PLC编程软件?-ZOL问答

西门子S7-200.PLC编程软件是xp系统下装的啊!win7够呛!我的step7v5.都不行,建议虚拟机vmware下安装XP系统吧!一般这样解决。有用(0)回复f105710339...

怎样把plc读取回来的32位数据变成16位数据?

1、要看你32位的数据是否都用到,如果数值很大(要用到32位),那必须将这个数据进行等比缩小至16位数据以下,再通过数据转化即可;2、要看你的采集模块所采集...

三菱PLCFX3U16位的数据可以用32位的指令吗?-懂得

寄存器都是是16位的,32位数据寄存器是两个连续的寄存器组成的。如果使用DDRVID1D1Y0Y3,程序将自动将D1D2作为32位数据寄存器使用。不过注意:你编的...

三菱FXPLC如何将32位整数变成16位整数-懂得

1、要看你32位的数据是否都用到,如果数值很大(要用到32位),那必须将这个数据进行等比缩小至16位数据以下,再通过数据转化即可;2、要看你的采集模块...

三菱fx3u32MRplc如何下载程序?

三菱FX3U32MRPLC的程序可以通过RS232串口或USB接口下载到PLC中。首先需要使用三菱的编程软件GXWorks2或GXDeveloper编写好程序,然后将PLC与电脑连接,打开编.....

西门子的PLC编程软件WIN732位操作系统可以装吗...在哪里可...

好像是不支持的,西门子的PLC编程软件只有32位编位程序,不支持原态64位系统。请在32位下使用吧。除非有一天西门子出来了64位安装包。有用(0)回复wy2508800...

三菱PLC指令,的16位与32位是什么意思?

32位以双字为单位。16位的传送指令对目标地址为数值存储区100传送0,只有100被覆盖成0;如果是双字传送,则100和101都变0.当数值输入...16为是以字为操作单位...

PLC中的16位和32位指的是什么意思?

16位和32位,是指二进制数据占的最基础的存储区的单位个数。最基础的数据就是二进制数,就是0和1,16位就表示可以用二进制数的1111111111111111或00000000000000...

 真爱网站  陶公岛 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部