S7-200地址映射

合集下载

S7-200-Modbus通信解析

S7-200-Modbus通信解析

14
S7-200
Hardware Software Workshop
Modbus 报文传输格式
• RTU模式下, 报文中的每个8位字节被转化为两个16进制字符, 然后以 字节为单位进行传输, 并采用CRC(循环冗余校验)方式进行校验。 RTU模式的优点在于同波特率下有着比ASCII模式更高的传输效率。
15
S7-200
Hardware Software Workshop
Modbus 报文传输格式
• 西门子专门为 Modbus RTU 通信开发了指令库,极大地简化了 Modbus RTU 通信的开发,以便于快速实现相关应用。通过 Modbus RTU 从站指令库,使得 S7-200 可作为 Modbus RTU 中的从站设备 集成到 Modbus 网络中,以实现与 Modbus 主站设备的通信。
• Modbus 串行链路协议只有一个主站, 可以有1~247个从站。Modbus 通信只能从主站发起, 从站在未收到主站的请求时, 不能发送数据或互 相通信。
• Modbus 串行链路协议的通信接口可采用 RS-485 接口, 也可使用 RS232C 接口。其中RS-485 接口可用于远距离通信, RS-232C 接口只能 用于短距离通信。
3
S7-200
Hardware Software Workshop
定义
• 使用 Modbus 通信协议是 Modicon 公司提出的一种报文传输协议, 它广泛应用于工业控制领域, 并已经成为一种通用的行业标准。不同 厂商提供的控制设置可通过 Modbus 协议连成通信网络, 从而实现集 中控制。
• 根据传输网络类型的区别, Modbus 通信协议又分为串行链路上的 Modbus 和基于 TCP/IP 协议的 Modbus。

图文详解S7-200SMART间接寻址方法

图文详解S7-200SMART间接寻址方法

图文详解S7-200SMART间接寻址方法PLC寻址分为直接和间接两种,前面已经介绍了直接寻址使用方法,本文介绍间接寻址如何使用,间接寻址类似于地球上经纬度定位方式,地球上任意一个地方都有一个与之相对于的经度和纬度值,这样定位不再分区域,可以延伸到全球。

间接寻址也是如此,PLC中只有一个存储数据的硬件(硬盘),所谓的I,Q,M,V等区只是西门子开发人员定义出来的逻辑分区,类似电脑C,D,E,F盘,其实都处在一个硬盘中,并且都有相对应得一个编号,如果能找到地址的编号,同样可以对其进行寻址,并且不再受存储区的限制,能够大批量的访问连续或有一定规律的地址,这就是间接寻址。

间接寻址分三步:1.建立指针,即获取需要访问存储区起始地址对应编号。

&为地址符号,是S7-200SMART中特殊的编程写法,&VB0代表VB0处在整个存储区的地址编号(指针),可以理解成我们的身份证号码,是一个很大的数值,必须存储在32位存储器中,如VD100,LD0,AC1(AC0不能做指针)等。

2. 间接访问。

通过访问指针指向地址来进行寻址。

间接寻址支持字节,字,双字方式访问,如下图所示:*为访问指针符号,*AC1代表AC1所指向地址的数值,以字节访问则代表一个字节,字访问代表一个字,双字访问代表一个双字。

3.指针偏移。

访问完一个地址后可以以该地址为起始,通过加/减方式对指针进行偏移,从而实现其它地址的访问。

通常字节偏移1,字偏移2,双字偏移4(位不支持间接寻址)总结:间接寻址与直接寻址各有千秋,直接寻址直观简单,适合单个或少量的寻址,不管有没有规律都可以使用,可以满足大部分寻址要求。

间接寻址适合批量且连续或有一定规律的地址,当寻址量较大时,可以将数据设计成有规律,用间接方式寻址可以少写很多步程序,使编程更加简单。

S7-200 的 编 址

S7-200 的 编 址

S7-200 的编址编址:就是对输入/输出模块上的I/O点进行编码,以便程序执行时可以唯一地识别每个I/O点。

一、编址方法1.数字量I/O点的编址是以字长为单位,采用标志域(I或Q)、字节号和位号三部分的组成形式,在字节号和位号之间以点分隔,习惯上称做字节·位编址。

每个I/O点就有了唯一的识别地址,地址的表示如图:Q 1 · 5标志域(数出Q、数入I)字节地址字节号和位号的分隔点字节中位的编号(0_7)数字量输入输出的字节和位编址都是从0开始,每个位都是0~7,共8位。

2.模拟量I/O编址是以字长(16位)为单位。

在读写模拟量信息时,模拟输入输出按字单位读写。

模拟输入只能进行读操作,而模拟输出只能进行写操作,每个模拟输入输出都是一个模拟端口。

一模拟端口的地址由标志域(AI/AQ)、数据长度标志(W)以及字节地址(0~30之间的十进制偶数)组成。

模拟端口的地址从0开始,以2递增(如:AIW0、AIW2、AIW4等),对模拟端口奇数编址是不允许的。

地址的表示如图:AI W 8 标志域(模出AQ、模入AI)数据长度(字)字节地址(0、2、4……)3.扩展模块的编址,由扩展模块I/O端口的类型及其在扩展I/O链中的位置决定。

扩展模块的编址按照由左至右,地址编码依次排序。

扩展模块的数字量I/O点编址以字节·位编址形式,扩展模块的模拟量I/O编址仍以字长(16位)为单位。

二、S7-200PLC的基本配置因为S7-200PLC有5种CPU,其中CPU226XM与CPU226基本相同,所以S7-200共有4种基本配置。

三、S7-200的扩展配置S7-200的扩展配置是由S7-200的基本单元和扩展模块组成。

其扩展模块的数量受两个条件约束:一个是基本单元能带扩展模块的数量;另一个是基本单元的电源承受扩展模块消耗DC5V总线电流的能力。

编址举例(1)由CPU222组成的扩展由CPU222组成的扩展配置可以由CPU222基本单元和最多两个扩展模块组成,CPU222可以向扩展单元提供的DC5V电流为340mA。

SIMATIC_S7-200使用说明

SIMATIC_S7-200使用说明

S7-200的设计旨在解决您的通讯和联网需求,不仅支持最简单的网络,而且支持更复杂的网络。

S7-200还提供允许您与其他设备通讯的工具,例如,使用自身通讯协议的打印机和计量器。

STEP 7-Micro/WIN使设置和配置您的网络变得简便易行。

本标题讨论以下内容:主从设备网络定义设置波特率和网络地址为STEP 7-Micro/WIN设置波特率和网络地址S7-200 CPU设置波特率和网络地址设置远程地址在网络上搜索CPU主从设备网络定义返回顶端S7-200支持主从设备网络,可在网络中用作主设备或从属设备,而STEP 7-Micro/WIN始终用作主设备。

提示如果您使用Windows NT和PC/PPI电缆,则无法在网络中使用任何其他主设备。

主设备:网络中的主设备是可以向网络中的另一台设备发出请求的设备。

主设备还能够对来自网络中其他主设备的请求作出应答。

通常,主设备包括STEP 7-Micro/WIN、人机接口设备,例如TD 200和S7-300或S7-400 PLC。

当S7-200向另一台S7-200请求信息时,则用作主设备(对等通讯)。

提示TP070无法用在配备另一台主设备的网络上。

从属设备:配置为从属设备的设备,只能对来自一台主设备的请求作出应答;从属设备从来不会主动发出请求。

S7-200在大多数网络中用作从属设备。

作为从属设备,S7-200对网络主设备(例如,操作员面板或STEP 7-Micro/WIN)发出的请求作出应答。

设置波特率和网络地址返回顶端数据在网络中的传输速度称为波特率,通常以千波特(kbaud)兆波特(Mbaud)为单位。

波特率测量在某一特定时间内传输的数据量。

例如,19.2 kbaud的波特率表示每秒19200位的传输速率。

在某一特定网络上通讯的每台设备必须被配置为以相同的波特率传输数据。

因此,网络上速度最快的波特率由与网络连接的速度最慢的设备决定。

下表列出S7-200支持的波特率:网络波特率标准网络9.6 kbaud至187.5 kbaud使用EM 277的网络9.6 kbaud至12 Mbaud使用自由端口模式的网络1200 baud至115.2 kbaud网络地址是您为网络上每台设备指定的一个独特号码。

西门子S7-200PLC各数据存储区含义及接线

西门子S7-200PLC各数据存储区含义及接线

西门子S7-200PLC各数据存储区含义及接线大家好,今天我们学习一下西门子S7-200PLC的接线与S7-200数据存储区:首先,我们看一下如何接线:S7-200数据存储区:1. 输入/输出映像寄存器:S7-200 PLC编址范围(I0.0~I15.7)。

输入映像寄存器(该区域可以按位操作又称输入继电器)输入继电器线圈由外部信号驱动,常开触点和常闭触点供用户编程使用。

输出映像寄存器:S7-200 PLC编址范围(Q0.0~Q15.7)。

输出映像寄存器(又称输出继电器)是用来将PLC的输出信号传递给负载,线圈用程序指令驱动。

PLC的每一个I/O点都是一个确定的物理点。

CPU 224主机有I0.0~I0.7,I1.0~I1.5共14个数字量输入端点,Q0.0~Q0.7、Q1.0、Q1.1共10个数字量输出端点。

2.变量存储器V用以存储运算的中间结果和其它数据。

CPU 224有VB0.0~VB5119.7的5K存储字节。

可按位、字节、字或双字使用。

3. 内部标志位(M)存储区M作为控制继电器(又称中间继电器),用来存储中间操作数或其它控制信息。

S7-200 PLC编址范围M0.0~M31.7,可以按位、字节、字或双字来存取存储区的数据。

4. 顺序控制继电器(S)存储区S又称状态元件,以实现顺序控制和步进控制。

S7-200 PLC编址范围S0.0~S31.7,可以按位、字节、字或双字来存取数据。

5.特殊标志位(SM)存储器① SMB0为状态位字节,在每次扫描循环结尾由S7-200 CPU更新,定义如下:SM0.0 RUN状态监控,PLC在运行RUN状态,该位始终为1。

SM0.1 首次扫描时为1,PLC由STOP转为RUN状态时,ON(1态)一个扫描周期,用于程序的初始化。

SM0.2 当RAM中数据丢失时,ON一个扫描周期,用于出错处理。

SM0.3 PLC上电进入RUN方式,ON一个扫描周期。

SM0.4 分脉冲,该位输出一个占空比为50%的分时钟脉冲。

S7-1200作为IO设备与S7-200SMART的PN通信

S7-1200作为IO设备与S7-200SMART的PN通信

S7-1200作为IO设备与S7-200SMART的PN通信S7-200SMART支持ROFINET通信后,与S7-1200的通信又多了一种,那就是PROFINET IO实时通信。

由于S7-200SMART不支持IO设备功能,所以只能S7-1200做IO设备,S7-200SMART做IO控制器。

另外S7-1200作为IO设备只能以GSD文件方式导入到S7-200SMART中,本身博图软件支持S7-1200做IO设备时的GSD文件导出功能。

一、S7-1200做IO设备配置步骤(1)博图新建一个S7-1200项目,添加CPU1212CPU并配置PN网络。

(2)设置IP地址和项目名称,注意一定要选择“在设备中直接设定IP地址",如图1所示。

图1:S7-1200IP地址设备名称设置(3)操作模式配置为“IO设备”,注意一定要勾选“PNIO接口的参数由上位IO控制器进行分配”,还有“已分配的IO控制器”选择“未分配”。

然后在传输区域配置与I0控制器的数据交换地址,全部编译后导出GSD文件,如图2所示。

(4)将S7-1200的GSD文件导出,如图3所示:图3:导出S7-1200GSD文件二、S7-200SMART做IO控制器配置步骤:(1)导入S7-1200的GSD文件,如图4所示:图4:S7-200SMART导入GSDML(2)PROFINET向导中配置IP地址、设备名称等,如图5所示:图5:S7-200SMART的PN配置向导(3)最后生成,如图6所示:图6:生成PN配置向导三、测试组态完的S7-1200与S7-200SMART的IO地址映射关系:S7-1200 S7-200SMARTQB1-4 IB 256-259IB1-4 QB256-259测试如图7所示:图7:测试图片S7-1200作为PROFINET IO设备与S7-200SMART的PN IO通信就OK了,但这是用直接访问IO区的方式。

S7-200组态王通讯的问题MODBUS介绍

S7-200组态王通讯的问题MODBUS介绍

“MODBUS”常见问题解答1.我的设备支持modbus 设备设备,,能否直接与组态王软件连接能否直接与组态王软件连接??只要设备是标准的modbus 协议设备,即可使用组态王设备列表下的PLC-->莫迪康-->MODBUSRTU(或者ACSII 码)进行通信。

但具体的寄存器地址对照表必须从设备厂家索取。

2.我的支持modbus 协议的串口设备协议的串口设备,,能否与多个上位软件能否与多个上位软件((比如组态王软件和某品牌触摸屏牌触摸屏))同时通讯同时通讯??因为modbus 串口协议不支持多主站,所以不能多个软件同时与modbus 设备同时通信。

3.在组态王工程中建立多个modbusTCPIPserver 设备定义设备定义,,分别使用两台客户端对其访问访问,,只有站点高的那个server 通讯ok ,站点低的通讯失败站点低的通讯失败,,为什么为什么??这是因为在组态王软件中只支持建立一个modbusTCPIPserver ,当建立多个server时,组态王客户端则会自动与站点高的server 进行通讯,所以会导致站点低的通讯失败。

4.如何实现组态王数据通过串口或者以太网驱动方式传送到其他组态软件或者应用程序中序中??如果其他组态软件或者应用程序支持modbus 协议,则可以通过组态王提供的modRTUserver 或者modbusTCPserver 驱动来实现。

5.组态王与支持Modbus 协议的设备进行通讯时协议的设备进行通讯时,,组态王画面上显示的数据不正确常有哪些原因哪些原因??引起数据不正确的原因主要有如下几点:1)组态王中定义的寄存器地址跟实际设备不一致导致。

比如某些使用modbus 协议通讯的设备的数据地址是从0开始的,而组态王modbus 协议驱动寄存器地址是从1开始的,所以遇到此种情况时在组态王中定义变量时,寄存器地址要进行加1处理;2)数据词典中最大原始值和最大值定义不不当;比如最大原始值和最大值不一样会导致画面看到的数据和实际设备不一致;3)组态王读取FLOAT 和LONG 类型的数据时,没有使用提供的SwapF 和SwapL 寄存器来调整FLOAT 型和LONG 型数据的字节顺序;4)LONG 或FLOAT 型的双字的数据,没有按照间隔隔地址方式定义;因为modbus协议所对应的参数地址一般按照字为基本单位进行分地址排序的。

S7-200数据存储与寻址方式

S7-200数据存储与寻址方式

S7-200数据存储与寻址方式1.I/O 点数扩展和编址S7-200 CPU22X 系列的每种主机所提供的本机I/O点的I/O地址是固定的,进行扩展时,可以在CPU右边连接多个扩展模块。

每个扩展模块的组态地址编号取决于各模块的类型和该模块在I/O链中所处的位置。

输入与输出模块的地址不会冲突,模拟量控制模块地址也不会影响数字量。

编址方法是同样类型输入或输出点的模块在链中按所处的位置而递增,这种递增是按字节进行的,如果CPU或模块在为物理I/0点分配地址时未用完一个字节,那些未用的位也不能分配给I/O链中的后续模块。

例如,某一控制系统选用CPU224,系统所需的输入/输出点数为:数字量输入24点、数字量输出20点、模拟量输入6点和模拟量输出2点。

本系统可有多种不同模块的选取组合,并且各模块在I/O链中的位置排列方式也可能有多种,表1-1所示为其对应的各模块的编址情况。

表1-1A.同类型输入或输出的模块按顺序进行编制。

B. 数字量模块总是保留以8位(1个字节)递增的过程映象寄存器空间。

如果模块没有给保留字节中每一位提供相应的物理点,那些未用位不能分配给I/O链中的后续模块。

对于输入模块,这些保留字节中未使用的位会在每个输入刷新周期中被清零。

C. 模拟量I/O点总是以两点递增的方式来分配空间。

如果模块没有给每个点分配相应的物理点,则这些I/O点会消失并且不能够分配给I/O链中的后续模块。

2. S7-200 PLC的寻址方式及内部数据存储区S7-200 CPU将信息存储在不同的存储单元,每个单元都有惟一的地址。

S7-200CPU使用数据地址访问所有的数据,称为寻址。

输入/输出点、中间运算数据等各种数据类型具有各自的地址定义,大部分指令都需要指定数据地址。

本节将从S7-200的数据长度、寻址、寻址方式和内部数据存储区几个方面进行介绍。

2.1 数据长度S7-200 寻址时,可以使用不同的数据长度。

不同的数据长度表示的数值范围不同。

s7 200 VW 起始字节地址怎么确定

s7 200 VW 起始字节地址怎么确定

s7 200 VW 起始字节地址怎么确定?2010-6-5 19:15提问者:foolagain6|悬赏分:5 |浏览次数:586次比如说VW 0或VW 2中,0和2是怎么定的?2010-6-5 21:38最佳答案字寻址由存储区标识符,字标识符及字节地址组合而成例如:vw100v表示区域标识符w表示访问一个字100表示字节地址一个字相当于两个字节,vw0相当于vb0和vb1,vw1相当于vb1和vb2。

在使用中vw0与vw1中都包含vb1,造成了地址重复。

所以只能使用vw0 vw2 vw4或者vw1 vw3 vw5等地址排列,习惯上大多按双数地址使用,如vw0 vw2 vw100 vw102等。

西门子S7-200中数据有字节,字,双字是什么意思?数据类型有字符串,整型和实型浮点数是什么意思?2009-12-26 19:32提问者:alexwuxi|悬赏分:5 |浏览次数:1355次2009-12-26 22:10最佳答案1个双字=2个字=4个字节=32个位PC基础知识,你需要去好好翻翻电脑基础应用。

字符串“你需要好好学习”整形数100 200 300浮点型100.05 200.45你需要好好的去打基础,否则难以学会。

西门子S7-200、S7-300的模拟量的模拟信号转换为数字信号的对应范围;是怎么算出来的啊。

最佳答案调用SFC105和SFC106,通过整定把4到20毫安或0到10伏转为0--27648之间的整数,就可以用了请问西门子 S7-200 的 EM231 扩展模块,AIW 和 VW的区别.2010-3-24 01:00提问者:chmi9610|悬赏分:20 |浏览次数:1278次我以前没搞过PLC,最近写毕业论文偏偏要用到这个东西……我需要2个EM231扩展模块,一个用来测量4~20 mA的电流,另一个用来接E 型热电偶。

有很多地方说EM231直接读AIW的值就可以了,但是我在西门子的网站上看见了这么两句话:1. 对于EM231 8AI×TC热电偶输入模块,其读数是在VM中,而不是AIW,模块所处的相对位置不同,对应的地址也不同。

S7-200 MODBUS RTU通讯教程

S7-200 MODBUS RTU通讯教程


10001 - 19999:数字量输入(触点)

30001 - 39999:输入数据寄存器(通常为模拟量输入)

40001 - 49999:数据保持寄存器
Modbus Master 协议库支持的功能
为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能:
表 1. 需要从站支持的功能
成位来激活,以保证所有读写指令循环进行(见
每一个新的读写请求必须使用脉冲触发
位:
从站地
c. Slave
可选择的范围 1 - 247
址:
d. RW
从站地 0 = 读, 1 = 写
址:
注意: 1. 开关量输出和保持寄存器支持读和写功能 2. 开关量输入和模拟量输入只支持读功能
围为 1 - 32767。

注意: 这个值必须设置足够大以保证从站有时间响应。 f. Done 完成位:初始化完成,此位会自动置 1。可以用该位启动 MBUS_MSG 读写操作(见例程)
g. Error
初始化错误代码(只有在 Done 位为 1 时有效):
0= 无错误
1= 校验选择非法
读写从站
e. Addr
选择读写的数据类型

数据地 00001 至 0xxxx - 开关量输出
址:

10001 至 1xxxx - 开关量输入 30001 至 3xxxx - 模拟量输入 40001 至 4xxxx - 保持寄存器 f. Count 数据个数 通讯的数据个数(位或字的个数)
Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控? Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的 PPI 编程

西门子S7-200PLC与组态王的无线通信Modbus方案

西门子S7-200PLC与组态王的无线通信Modbus方案

西门子S7_200PLC和组态王的无线通信Modbus方案西门子S7_200PLC和组态王的无线通信Modbus方案在这里介绍一种PLC的MODBUS无线组态通信的实现方法。

本方案可以作为西门子PLC和组态王通信的实例。

在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC需要和总控中心的组态王软件进行远程通信,通常情况是采用有线RS485总线敷设电缆,通过MODBUS协议完成此功能。

如果现场布线不方便的话,也可以采用无线方式进行通信。

本方案中采用了专门用于无线通信的智能数据终端DTD433M。

l 有线MODBUS网络:S7-200S7-200STEP7S7-200PG/PC9.6kbps,8,N,1人机界面组态软件l S7-200STEP 7PG/PCRS4859.6 kbps人机界面组态软件DTD433DTD433RS4859.6 kbpsS7-200RS4859.6 kbpsDTD433无线MODBUS网络:在实际系统中,人机界面和PLC不在一起,中心计算机一般放置在控制室,而PLC安装在现场车间,二者之间距离往往从几十米到几千米。

如果布线的话,需要挖沟施工,比较麻烦,这种情况下比较适合采用无线通信方式。

一、PLC和组态王的Modbus通信1. 下载S7_200程序需要向PLC中下载对应的初始化程序(KVmoddbus.mwp),由亚控公司提供。

此程序默认的PLC通讯端口为port0,地址为2,波特率9600,无校验(地址和波特率可由程SBR0 中的VB8,SMB30 进行修改);2.设备选择选择以下两个设备都可以。

3. 演示程序界面打开组态王演示工程文件二、满足西门子PLC的MODBUS通信协议的专用无线数据终端为了满足西门子PLC和组态王的MODBUS通信协议,对无线数据终端具有以下要求:适合于RS232/RS485串口连接,可以直接代替有线的RS485网DTD433M提供标准的RS232/RS485口。

MODBUSRTU地址与S7-200的地址对应关系

MODBUSRTU地址与S7-200的地址对应关系

Modbus RTU协议在S7-200中的应用发表时间:2007-7-3 16:22:431 引言工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。

工业控制器连网也为网络管理提供了方便。

Modbus就是工业控制器的网络协议中的一种。

Mod bus协议是应用于电子控制器上的一种通讯约规。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。

它已经成为主流的工业标准之一。

他为符合Mod bus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控。

2 Modbus RTU协议在S7-200中的应用原理2.1 Modbus RTU协议与S7-200相互关系简介S7-200 CPU上的通讯口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。

此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。

如果想在S7-200 CPU与其他支持Modbus RTU的设备使用Modbus RTU协议通讯,需要由有S7-200 CPU做Modbus主站。

S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。

在S7-200控制系统应用中,Modbus RTU从站指令库只支持CPU上的通讯0口(Port 0)。

要实现Modbus RTU通讯,需要Step7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。

Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。

2.2 Modbus RTU协议在S7-200中应用的根本过程(1) 首先检查S7-200控制系统中所用Micro/WIN的软件版本,应当是Step7-Micro /WIN V3.2以上版本。

(2) 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。

(完整版)s7-200寄存器

(完整版)s7-200寄存器

(完整版)s7-200寄存器wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();});(二)模拟量输入映象区和输出映象区1.模拟量输入映象区(AI区)模拟量输入映象区是S7-200CPU为模拟量输入端信号开辟的一个存储区。

S7-200将测得的模拟量(如温度、压力)转换成1个字长(2个字节)的数字量,模拟量输入映像寄存器用标识符(AI)、数据长度(W)及字节的起始地址表示。

从AIW0~AIW30,共有16个字,总共允许有16路模拟量输入。

说明:模拟量输入值为只读数据。

2.模拟量输出映象区(AQ区)模拟量输出映象区是S7-200CPU为模拟量输出端信号开辟的一个存储区。

S7-200将1个字长(2个字节,16位)的数字量按比例转换为电流或电压。

模拟量输出映像寄存器用标识符(AQ)、数据长度(W)及字节的起始地址表示。

从AQW0~AQW30,共有16个字,总共允许有16路模拟量输出。

(三)变量存储器(V)(相当于内辅继电器)PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。

变量存储器就是根据这个实际的要求设计的。

变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储区,用V表示。

可以按位、字节、字、双字四种方式来存取。

(1)按“位”方式:从V0.0~I5119.7,共有40960点。

CPU221、CPU222变量存储器只有2048个字节,其变量存储区只能到V2047.7位。

(2)按“字节”方式:从VB0~VB5119,共有5120个字节(3)按“字”方式:从VW0~VW5118,共有2560个字(4)按“双字”方式:从VD0~VD5116,共有1280个双字(四)位存储器(M)区PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。

S7200地MODBUS详细应用示例

S7200地MODBUS详细应用示例

实用标准文案<PLC200 MODBUS协议配置使用方法> 文档修订历史记录注释:红色字体为注意点;蓝色为修改补充;紫色为问题总结;茶色为暂时删除;绿色为住宿。

目录前言.............................................................. 错误!未定义书签。

第一章使用Modbus协议库.................................. 错误!未定义书签。

前言 (6)1.使用Modbus主设备协议的要求 (6)2.使用Modbus从站设备协议的要求 (7)3.Modbus主设备协议的初始化和执行时间 (7)4.Modbus从站协议的初始化和执行时间 (8)5.Modbus主设备寻址 (8)6.Modbus 从站寻址 (8)7.Modbus主设备MBUS_MSG执行错误代码 (10)8.Modbus从站协议执行错误代码 (11)9.Modbus主设备高级用户信息 (11)第二章使用Modbus主设备指令 (14)前言 (14)1.MBUS_CTRL指令(初始化主设备) (15)2.MBUS_MSG指令 (16)第三章使用Modbus从站指令................................ 错误!未定义书签。

前言 (22)1.MBUS_INIT指令(初始化从站) ...................................... 错误!未定义书签。

2.MBUS_SLAVE指令................................................. 错误!未定义书签。

3.常见问题 (26)第四章下载与通讯测试....................................... 错误!未定义书签。

1.编译、下载...................................................... 错误!未定义书签。

S7-200 SMART Modbus TCP 服务器指令

S7-200 SMART Modbus TCP 服务器指令

11/CN/view/zh/xxxxxC o p y r i g h t S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d目录1 摘要 ................................................................................................................. 32 MODBUS TCP 服务器功能 ............................................................................. 4 3Modbus TCP 服务器指令使用示例 ................................................................ 6 3.1 MB_Server 指令库安装 ........................................................................... 6 3.2 调用MB_Server 指令库 .......................................................................... 6 3.3 MB_Server 指令库错误代码 . (8)C o p y r i g h t S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d1 摘要本文用于介绍S7-200 SMART Modbus TCP 服务器指令的使用。

伴随着STEP 7-Micro/WIN SMART V2.2 和S7-200 SMART CPU 固件V2.2的发布,S7-200 SMART CPU 开始支持TCP 、ISO-on-TCP 和UDP 等开放式用户通信。

西门子s7-200PLC模拟量数据格式与寻址

西门子s7-200PLC模拟量数据格式与寻址

西门子s7-200PLC模拟量数据格式与寻址由于西门子S7-200PLC的模拟量输出模块都需要占占两个输出通道。

即使第一个模块只有一个输出AQW0,第二个模块的输出地址也应从AQW4开始寻址(AQW2被第一个模块占用),依此类推。

所以自然不会有输出了。

在S7-200中,单极性模拟量输入/输出信号的数值范围是0 - 32000;双极性模拟量信号的数值范围是 -32000-+32000。

格式:输入:AIW[起始字节地址]——如AIW6输出:AQW[起始字节地址]——如AQW0每个模拟量输入模块,按模块的先后顺序和输入通道数目,以固定的递增顺序向后排地址。

例如:AIW0、AIW2、AIW4、AIW6、AIW8等。

对于EM231 RTD(热电阻)两通道输入模块,不再占用空的通道,后面的模拟量输入点是紧接着排地址的。

温度模拟量输入模块(EM231 TC、EM231 RTD)也按照上述规律寻址,但是所读取的数据是温度测量值的10倍(摄氏或华氏温度)。

如520相当于52.0度。

注意:如果没有把握,可以在线检测到模块的起始地址,方法是:STEP 7-Micro/WIN中的菜单“PLC > Information”里在线读到。

关于Siemens S7-200的模拟量模块,有2个大家(尤其是初学者)需要注意的:1、关于地址,其实S7-200的地址很简单,跟相对位置有关,每个模拟量输入模块,按模块的先后顺序地址为固定的,顺序向后排。

可以通过编程软件information菜单来在线查看;说需要注意的就是地址都是偶数,比如AIW0 AIW2 ,绝对没有AIW1之类的,输出地址也需要注意,比如EM235虽然只有1个通道输出,但是占用2个地址,下一个模块必须隔个地址输出,比如有CPU旁扩展2个相连的EM235,那么模拟量输出地址分别为AQW0和AQW4;2、关于拨码开关,不同的拨码开关对应不同的测量方法,物理量的性质等等,这里最要注意的是,拨码开关必须断电后重新上电才有效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S7-200 通过以下方式支持Modbus 通信协议:。

S7-200 CPU 上的通信口0(Port 0)通过指令库支持Modbus RTU 从站模式。

S7-200 CPU 上的通讯口0 和1 (Port 0 和Port 1)通过指令库支持Modbus RTU 主站模式。

S7-200 CPU 通过EM241 模块的Modem 接口支持Modbus RTU 模式通过S7-200 CPU 通信口的自由口模式实现Modbus 通信协议,可以通过无线数据电台等慢速通信设备传输。

这为组成S7-200 之间的简单无线通信网络提供了便利。

详细情况请参考《S7-200系统手册》(2002 年10 月或以后版本)的相应章节。

Modbus 是公开通信协议,其最简单的串行通信部分仅规定了在串行线路的基本数据传输格式,在OSI 七层协议模型中只到1,2 层。

Modbus 具有两种串行传输模式,ASCII 和RTU。

它们定义了数据如何打包、解码的不同方式。

支持Modbus 协议的设备一般都支持RTU 格式。

通信双方必须同时支持上述模式中的一种。

Modbus 是一种单主站的主/从通信模式。

Modbus 网络上只能有一个主站存在,主站在Modbus 网络上没有地址,从站的地址范围为0 - 247,其中0 为广播地址,从站的实际地址范围为1 - 247。

Modbus 通信标准协议可以通过各种传输方式传播,如RS232C、RS485、光纤、无线电等。

在S7-200 CPU 通信口上实现的是RS485 半双工通信,使用的是S7-200 的自由口能。

详细的协议和规范,请访问Modbus 组织的网站:西门子在Micro/WIN V4.0 SP5 中正式推出Modbus RTU 主站协议库(西门子标准库指令)。

注意:1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port 0 和Port 1 有效。

该指令库将设置通信口工作在自由口模式下。

2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。

3. Modbus RTU 主站库对CPU的版本有要求。

CPU 的版本必须为2.00 或者2.01(即订货号为6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的S7-200 CPU 不支持。

使用Modbus RTU 主站指令库,可以读写Modbus RTU 从站的数字量、模拟量I/O 以及保持寄存器。

要使用Modbus RTU 主站指令库,须遵循下列步骤:1.安装西门子标准指令库2.按照要求编写用户程序调用Modubs RTU 主站指令库Modbus RTU 主站功能编程使用SM0.0 调用MBUS_CTRL 完成主站的初始化,并启动其功能控制:各参数意义如下:a. EN 使能:必须保证每一扫描周期都被使能(使用SM0.0)b. Mode 模式:为1 时,使能Modbus 协议功能;为0 时恢复为系统PPI 协议c. Baud 波特率:支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。

d. Parity 校验:校验方式选择0=无校验1=奇较验2=偶较验e. Timeout 超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000 毫秒(1 秒),允许设置的范围为1 - 32767。

注意:这个值必须设置足够大以保证从站有时间响应。

f. Done 完成位:初始化完成,此位会自动置1。

可以用该位启动MBUS_MSG 读写操作(见例程)g. Error 初始化错误代码(只有在Done 位为1时有效):0=无错误1=校验选择非法2=波特率选择非法3=模式选择非法2. 调用Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;各参数意义如下: a. EN 使能:同一时刻只能有一个读写功能(即MBUS_MSG)使能注意:建议每一个读写功能(即MBUS_MSG)都用上一个MBUS_MSG 指令的Done 完成位来激活,以保证所有读写指令循环进行(见例程)。

b. First 读写请求位:每一个新的读写请求必须使用脉冲触发c. Slave 从站地址:可选择的范围1 - 247 d. RW 从站地址:0 =读,1 =写注意:1. 开关量输出和保持寄存器支持读和写功能2. 开关量输入和模拟量输入只支持读功能e. Addr 读写从站的选择读写的数据类型数据地址:00001 至0xxxx - 开关量输出10001 至1xxxx - 开关量输入30001 至3xxxx - 模拟量输入40001 至4xxxx - 保持寄存器f. Count 数据个数通讯的数据个数(位或字的个数)注意:Modbus主站可读/写的最大数据量为120个字(是指每一个MBUS_MSG 指令)g. DataPtr 数据指针:1. 如果是读指令,读回的数据放到这个数据区中2. 如果是写指令,要写出的数据放到这个数据区中h. Done 完成位读写功能完成位i. Error 错误代码:只有在Done 位为1时,错误代码才有效0 =无错误1 =响应校验错误2 =未用3 =接收超时(从站无响应)4 =请求参数错误(slave address, Modbus address, count, RW)5 =Modbus/自由口未使能6 =Modbus正在忙于其它请求7 =响应错误(响应不是请求的操作)8 =响应CRC校验和错误- 101 =从站不支持请求的功能102 =从站不支持数据地址103 =从站不支持此种数据类型104 =从站设备故障105 =从站接受了信息,但是响应被延迟106 =从站忙,拒绝了该信息107 =从站拒绝了信息108 =从站存储器奇偶错误常见的错误:如果多个MBUS_MSG 指令同时使能会造成 6 号错误从站delay 参数设的时间过长会造成主站3 号错误从站掉电或不运行,网络故障都会造成主站3 号错误3. 在CPU 的V 数据区中为库指令分配存储区(Library Memory)Modbus Master 指令库需要一个284个字节的全局V 存储区。

参考:分配库指令数据区关于Modbus RTU 主站协议库的补充说明:此为西门子正式推出的标准库指令说明资料。

在Modbus RTU Master 协议和PPI 协议之间切换:Modbus RTU Master 协议指令库使通信口工作在自由口模式下,此时不能与Micro/WIN 软件通信。

要在切换回PPI 协议,可以:。

将MBUS_CTRL 指令的Mode 输入端设置为逻辑“0”。

将CPU 的允许模式选择开关置为STOP 位置Modbus RTU Master 协议库的执行时间:Modbus RTU Master 协议库的MBUS_CTRL 指令不需要很长的执行时间。

MBUS_需要1.11 ms 用于初始化,在后续的每个扫描周期中只占用0.41 ms。

调用MBUS_MSG 子程序会加长处理时间。

大部分时间都用于CRC 校验的计算。

每读、写一个字的数据就需要1.85 ms 扫描时间。

数据最多的情况下(读、写120 字的数据),扫描时间大概会扩增加222 ms。

读操作的时间主要消耗在接收数据上;写操作的时间主要消耗在发送数据上。

Modbus 地址通常Modbus 地址由 5 位数字组成,包括起始的数据类型代号,以及后面的偏移地址。

Modbus Master 协议库把标准的Modbus 地址映射为所谓Modbus 功能号,读写从站的数据。

Modbus Master 协议库支持如下地址:。

00001 - 09999:数字量输出(线圈)。

10001 - 19999:数字量输入(触点)。

30001 - 39999:输入数据寄存器(通常为模拟量输入)。

40001 - 49999:数据保持寄存器Modbus Master 协议库支持的功能为了支持上述Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能:表1. 需要从站支持的功能Modbus 地址读/写Modbus 从站须支持的功能00001 - 09999 数字量输出读功能1 写功能5:写单输出点功能15:写多输出点10001 - 19999 数字量输入读功能2 写-30001 - 39999 输入寄存器读功能4 写-40001 - 49999 保持寄存器读功能3 写功能6:写单寄存器单元功能16:写多寄存器单元Modbus 地址和S7-200 存储区地址的映射S7-200 通过Modbus Master 和Slave 协议库通信时,Modbus 地址和S7-200 内存储区地址的映射关系都类似。

Modbus 保持寄存器地址映射举例:Modbus 保持寄存器地址40001 12 34 40002 56 78 40003 9A BC 对应:S7-200 存储区字寻址VW200 12 34 VW202 56 78 VW204 9A BC 对应:S7-200 存储区字节寻址VB200 12 VB201 34 VB202 56 VB203 78 VB204 9A VB205 BC Modbus 数字量地址映射举例:位地址(0xxxx 和1xxxx)数据总是以字节为单位打包读写。

第一个字节中的最低有效位对应Modbus 地址的起始地址。

如下图所示vx7 vx6 vx5 vx4 vx3 vx2 vx1 vx0 10008 10007 10006 10005 10004 10003 10002 10001评论:在网上到处收罗了有关MODBUS地址映射S7-200地址的资料,一直比较疑惑。

今天有点明白出是怎么回事了。

我现在的理解是:通用的MODBUS协议并不关心具体的设备(比如是西门子的plc,或是AVR的单片机,或是别的设备),关键是要求设备遵守开始地址和数据长度的约定。

拿几个具体例子来说:MODBUS的000001地址-》设备知道是指Q0.1,并对该数据进行操作;010001-》I0.0;030001 -》AIW0;04xxxx-》VW2*(xxxx-1)Modbus 保持寄存器地址S7-200 存储区字寻址S7-200 存储区字节寻址∙加一个通信模块(如EM 277、CP 243-1、EM 241 等)扩展出一个编程通信口∙中止自由口模式,可以将CPU 上的模式开关从RUN 拨到STOP;或者保持处于RUN 状态,用程序停止指令库的Modbus 模式(参见指令库应用)如何理解Modbus 地址与功能码的区别?Modbus 地址与Modbus 的功能码是两个层次的概念。

相关文档
最新文档