SIEMENS西门子南昌授权代理商

报价
请来电询价
西门子
西门子代理商
西门子CPU
西门子plc
德国
全新原装
关键词
西门子PLC,西门子CPU,西门子代理商,西门子授权代理商,西门子一级代理商
更新时间
2026-05-31 08:39

常见的错误:

  • 如果多个 MBUS_MSG 指令同时使能会造成 6 号错误

  • 库存储区被程序其它地方复用,有时也会造成6 号错误

  • 从站 delay 参数设的时间过长会造成主站 3 号错误

  • 从站掉电或不运行,网络故障都会造成主站 3 号错误

  • 3. 在 CPU 的 V 数据区中为库指令分配存储区(Library Memory)

    Modbus Master 指令库需要一个284个字节的全局 V 存储区。

    参考:分配库指令数据区

    1.3 关于 Modbus RTU 主站协议及地址

    此为西门子正式推出的标准库指令说明资料。

    在 Modbus RTU Master 协议和 PPI 协议之间切换:

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

  • 将 MBUS_CTRL 指令的 Mode 输入端设置为逻辑"0"

  • 将 CPU 的允许模式选择开关置为 STOP 位置

  • 西门子6ES7952-1KP00-0AA0

    Modbus RTU Master 协议库的执行时间:

    Modbus RTU Master 协议库的 MBUS_CTRL 指令不需要很长的执行时间。MBUS_需要 1.11 ms 用于初始化,在后续的每个扫描周期中只占用 0.41 ms。

    调用 MBUS_MSG 子程序会加长处理时间。大部分时间都用于 CRC 校验的计算。每读、写一个字的数据就需要 1.85 ms 扫描时间。数据zui多的情况下(读、写 120 字的数据),扫描时间大概会扩增加 222 ms。读操作的时间主要消耗在接收数据上;写操作的时间主要消耗在发送数据上。

     

    Modbus 地址

     

    通常 Modbus 地址由 5 位数字组成,包括起始的数据类型代号,以及后面的偏移地址。Modbus Master 协议库把标准的 Modbus 地址映射为所谓 Modbus 功能号,读写从站的数据。Modbus Master 协议库支持如下地址:

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

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

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

  • 40001 - 49999:数据保持寄存器

  •  

    Modbus Master 协议库支持的功能

    西门子6ES7952-1KP00-0AA0

    为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能:

    表 1. 需要从站支持的功能

    Modbus 地址读/写Modbus 从站须支持的功能00001 - 09999
    数字量输出10001 - 19999
    数字量输入

    30001 - 39999
    输入寄存器

    40001 - 49999
    保持寄存器
    功能 1
    功能 5:写单输出点
    功能 15:写多输出点
    功能 2
    功能 4
    功能 3
    功能 6:写单寄存器单元
    功能 16:写多寄存器单元

     

    Modbus 地址和 S7-200 存储区地址的映射

     

    S7-200 通过 Modbus Master 和 Slave 协议库通信时,Modbus 地址和 S7-200 内存储区地址的 映射关系都类似。

    Modbus 保持寄存器地址映射举例:

    5

    Modbus 数字量地址映射举例:

     

    位地址(0xxxx 和 1xxxx)数据总是以字节为单位打包读写。*个字节中的zui低有效位对应 Modbus 地址的起始地址。如下图所示:

    西门子6ES7952-1KP00-0AA0

    6

    图 4. 数字量地址映射举例

    1.4 Modbus RTU 主站例程

    为了更好地理解 Modbus 主站的编程,可参考下面的例程。

     

    例子程序1: 多个MBUS_MSG指令轮询执行,

     

    注意

  • 1. 该例程使用 Micro/WIN V4.0 SP5 保存。

  • 2. 该例程仅访问一个从站,若访问不同的从站,可通过改变从站地址来实现。

  • Modbus RTU 主站指令库应用例程

     

    例子程序2:反复激活单个MBUS_MSG指令:

     

    Modbus RTU 主站变址方式轮询访问应用例程

     

    注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险*由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和支持,用户不必为 此西门子与服务部门。

    西门子6ES7952-1KP00-0AA0

    1.5 Modbus RTU 主站常问问题

    Modbus RTU 主站库对 CPU 的版本是否有要求,为什么编译例子程序时,会遇到 4 个错误?

    Modbus RTU 主站库对 CPU 的版本确实有要求,CPU 的版本必须为 2.00 或者 2.01(即订货号为6ES721*-***23-0BA*),1.22 版本之前(包括 1.22 版本)的 S7-200 CPU 不支持。

    Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控?

    Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的 PPI 编程通信监控。如果通信口都已经被占用,可以考虑:

  • 加一个通信模块(如 EM 277、CP 243-1、EM 241 等)扩展出一个编程通信口

  • 中止自由口模式,可以将 CPU 上的模式开关从 RUN 拨到 STOP;或者保持处于 RUN 状态,用程序停止指令库的 Modbus 模式(参见指令库应用)

  •  如何理解 Modbus 地址与功能码的区别?

    Modbus 地址与 Modbus 的功能码是两个层次的概念。

     

    根据 Modbus 通信协议,Modbus 数据的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。

     

    有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何 Modbus 站的地址,需要读写数据类型、长度等等。数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓"功能码",如功能 1 读取单个/多个数字量输出点的值。

     

    支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。Modbus 地址所访问的数据,是通过各种"功能"读写而来。功能码是 Modbus 地址的底层。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。西门子6ES7952-1KP00-0AA0

    如何访问大于 9999 的保持寄存器地址?

    通常 Modbus 协议的保持寄存器地址范围在 40001 - 49999 之间。对于多数应用来说已经够了。但有些 Modbus 从站把地址映射到保持寄存器区的地址超过 9999 的部分。

    Modbus Master 协议库支持超过 9999 的保持寄存器地址。地址范围为 400001 - 465536。只需在调用 MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。

     Modubs Master 扩展地址模式仅支持保持寄存器区,不支持其他地址类型。

    S7-200 作为 Modbus 主站方接收上来的数据格式与第三方设备不一样怎么办?

    西门子PLC数据的存储格式为高位低存方式。举例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方设备与西门子数据存储格式不同,是低位低存的方式,那么通信上来的数据就会存在错误,需要进行转换才能使用。编程的方式比较多样,针对双字中高低字的交换可以使用SWAP(字交换)指令,若是字节交换可以考虑循环移位指令。

    S7-200 是否支持如 Modbus TCP 等其它协议?

    不支持。S7-200自身的通信端口或其通信扩展模块均不支持 Modbus TCP、CANopen、DeviceNet 以及 BACnet 通信协议。

     为什么 S7-200 作 Modbus 主站时 MBUS_MSG 指令报6号错误?

    引起6号错误主要有两方面的原因:1.多个 MBUS_MSG 指令同时使能执行;2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。

    2Modbus RTU从站

    2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议

    S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。

     详情请参考《S7-200系统手册》之相关章节。

    要实现Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。

     Modbus RTU从站指令库只支持CPU上的通信0口(Port0)。

    西门子6ES7952-1KP00-0AA0

    2.2 编程基本步骤:

    检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。

    检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包;

    图1. 指令树中的库指令

    编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并相应参数。关于参数的详细说明,可在子程序的局部变量表中找到;

    图2. 调用Modbus RTU通信指令库

    图中参数意义如下:

  • 模式选择:启动/停止Modbus,1=启动;0=停止

  • 从站地址:Modbus从站地址,取值1~247

  • 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200

  • 奇偶校验:0=无校验;1=奇校验;2=偶校验

  • 延时:附加字符间延时,缺省值为0

  • zui大I/Q位:参与通信的zui大I/O点数,S7-200的I/O映像区为128/128,缺省值为128

  • zui大AI字数:参与通信的zui大AI通道数,可为16或32

  • zui大保持寄存器区:参与通信的V存储区字(VW)

  • 保持寄存器区起始地址:以&VBx(间接寻址方式)

  • 初始化完成标志:成功初始化后置1

  • 初始化错误代码


  • 西门子PLC,西门子CPU,西门子代理商,西门子授权代理商,西门子一级代理商
    浔之漫智控技术(上海)有限公司已认证
    统一社会信用代码
    91310117MA1J3R698D
    成立日期
    2018年04月08日
    注册资本
    500

    主营产品

    西门子模块代理商

    经营范围

    从事智能科技、自动化科技、机电领域内的技术开发、技术转让、技术咨询、技术服务,工业自动化设备安装,工业自动化控制设备、电气设备、机电设备、电子产品、五金产品、金属材料、仪器仪表、橡塑制品销售,商务信息咨询,软件开发,建筑装修装饰建设工程专业施工,建筑安装工程(除特种设备),机械设备租赁(不得从事金融租赁),物业管理。工业自动化设备加工、销售。【依法须经批准的

    公司简介

    浔之漫智控技术有限公司西门子代理。联系人:小聂(15221406036)浔之漫智控技术有限公司主要产品有“PLC,变频器,触摸屏,模块,传感器,低压器,伺服电机,工控机”。全新原装,质量保证,保修一年,价格合理,支持技术服务!SIEMENS 可编程控制器1、 SIMATIC S7 系列PLC:S7-200、S7-1200、S7-300、S7-400、ET-2002、 逻辑控制模块 LOGO!230RC、230RCO、230RCL、24R...

    查看公司详情
    电话/手机
    15221406036
    微信号
    15221406036
    QQ
    3064686604
    邮箱
    3064686604@qq.com
    经理
    聂经理
    地址
    上海市松江区广富林路4855弄星月大业领地88号3楼
    我们其他产品
    我们的新闻
    微信咨询
    拨打电话