原文地址

说明
除了需要 STEP 7 >= V13 SP1 (TIA Portal) 的软件,还需要 S7-1200 CPU 固件版本 >= V4 (文章编号: 6ES721x-1xx40-0XB0)。

Modbus RTU 可以通过以下模块通讯。

  • CB 1241 RS485 (订货号: 6ES7241-1CH30-1XB0) 结合 S7-1200 CPU 固件升级到 >= V4.1.1.
  • CM 1241 RS422/485 (订货号: 6ES7241-1CH32-0XB0) 结合通讯模块固件升级到 >= V2.1
  • CM 1241 RS232 (订货号:6ES7241-1AH32-0XB0) 结合通讯模块固件升级到 >= V2.1

除了 "Modbus_Master" 指令,还需要 "Modbus_Comm_Load" 指令才能建立通讯。
两个程序块都在 STEP 7 (TIA Portal) 中,"Instructions>Communication>Communication processor>MODBUS ( RTU )>= Version 3.0"。
 

图. 01

Modbus_Comm_Load

Modbus_Comm_Load 程序块是用来选择通讯模块的,设置通讯参数并用主站(或从站)的参数将连接参数化。

图. 02

在第一次调用 Modbus_Master (or Modbus_Slave)之前,非循环块 Modbus_Comm_Load 必须运行一次并且运行完成 (DONE 为 1)。 Modbus_Comm_Load 可以在程序的第一个循环中(通过在硬件组态中启用系统存储器位 M1.0) 调用。在硬件组态中插入通讯模块之后,就可以在 PORT 参数传输通讯模块的符号名。
通讯参数 BAUD (波特率)和 PARITY (奇偶校验) 必须要与从站地址相匹配。在参数 MB_DB 传输 Modbus_Master (or Modbus_Slave)背景数据的数据结构 MB_DB,这样就可以定义通讯模块 (通过 PORT 参数识别) 为 MODBUS 主站(或从站)。除此之外,必须改变 Modbus_Comm_Load 的实例数据中的静态参数以便进行双工操作模式,通过初始值设定(0 = full duplex (RS232), 1 = full duplex (RS422) 四线制模式,4 = half duplex (RS485) 两线制模式)。      

图. 03

Modbus_Master
使用 Modbus_Master 功能块来定义通讯模块,并将 Modbus_Comm_Load 组态块选择为 MODBUS 主站。

图. 04

Modbus_Master 块用来选择需要与之通讯相匹配的 MODBUS 从站,指定功能代码并定义本地数据的存储区。下面表格介绍了参数。

Parameter Description
REQ 使能通讯。
MB_ADDR MODBUS-RTU 站地址。
MODE 请求的类型:"0" = 读 "1" = 写 "104" = 读取从站的输入字 (寄存器地址到 65535) ...
DATA_ADDR 定义 MODBUS 起始地址( = 偏移量 + 从站寄存器地址):MODE = 104:Offest =0
DATA_LEN 定义 MODBUS 数据长度(位或者字节形式):MODE = 104: Words
DATA_PTR 定义主站本地数据接收区和发送区。DATA_PTR 参数必须引用一个数据块,这个数据块的 “Optimized block access” 属性必须已被禁用。

表 01

"MODBUS (RTU)" 指令库也包含 "MODBUS" 指令库的功能。
但是,如果使用 Modbus_Slave 块,MB_HOLD_REG 参数只支持 “Word” 数据类型的一维数组。

下载
下载包括 "109474481_S7-1200_Modbus_Master_V13-SP1.zip" 项目。它包含了以下程序文件夹。

  • "CPU-V4_CM1241RS485-V2d1" 使用 S7-1200 CPU 固件 V4.0 版的 Modbus-RTU 通讯,通过 CM 1241 RS422/485 固件 V2 版本。
  • "CPU-V4d1_CB1241RS485" 使用 S7-1200 CPU 固件 V4.1.1 版的 Modbus-RTU 通讯 ,通过 CB 1241 RS485。

地址为 1 的 Modbus 从站,从地址 53248 开始 (16#D000) 规定的 9 个输入字可以通过 RS485 通讯使用监控表读取 (比如 ebm-papst 公司的 Motor VarioDrive C)。
 复制 "109474481_S7-1200_Modbus_Master_V13-SP1.zip" 文件到一个单独的目录,然后双击点开文件。可以使用 STEP 7 来打开并处理提取的项目数据。

   S7-1200_Modbus_Master_V13-SP1.zip (3,9 MB)

SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字的更多相关文章

  1. 获取TXT文件,解决读取TXT乱码问题,查找所输入字是否在TXT文件中,

    /// <summary> /// 查看是否存在 /// </summary> /// <param name="str"></param ...

  2. Modbus RTU 通信应用案例

    如何打开项目归档文件 例程中的TIA博途项目文件与STEP 7项目文件均为归档文件,需要按如下方式打开: TIA博途项目文件 1. 打开TIA博途软件,通过软件左下方“项目视图”按钮切换至项目视图: ...

  3. Modbus RTU新版本指令介绍

    Modbus RTU新版本指令介绍 TIA V13 SP1版本软件中提供了2个版本的Modbus RTU指令: 图1. 两个版本Modbus RTU指令 早期版本的Modbus RTU指令(图1. 中 ...

  4. modbus4j中使用modbus tcp/ip和modbus rtu over tcp/ip模式

    通过借鉴高人博客,总结如下: 1. TcpMaster类,用于生成ModbusMaster主类 package sun.sunboat; public class TcpMaster { privat ...

  5. MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数

    浮点数保存的字节格式如下: 地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM 这里S 代表符号位,1是负,0是正E 偏移127的幂,二进 ...

  6. Modbus RTU程序开发解读

    Modbus是很好的串口通信协议,其中RTU协议最为常用,通过Modbus RTU,我们可以轻松读写串口信息. 从官网下载libModbus,观察modbus.h可知关键的结构体为: typedef ...

  7. Modbus RTU 通信工具设计(转)

    Modbus RTU 通信工具设计 Modbus 是一个工业上常用的通讯协议.一种通讯约定. ModBus 协议是应用层报文传输协议(OSI 模型第7层),它定义了一个与通信层无关的协议数据单元(PD ...

  8. Modbus协议栈实现Modbus RTU多主站支持

    前面我们已经详细讲解过Modbus协议栈的开发过程,并且利用协议栈封装了Modbus RTU主站和从站,Modbus TCP服务器与客户端,Modbus ASCII主站与从站应用.但在使用过程中,我们 ...

  9. Modbus库开发笔记之六:Modbus RTU Master开发

    这一节我们来封装最后一种应用(Modbus RTU Master应用),RTU主站的开发与TCP客户端的开发是一致的.同样的我们也不是做具体的应用,而是实现RTU主站的基本功能.我们将RTU主站的功能 ...

随机推荐

  1. 杭电2629 Identity Card

    题目意思很简单,就是根据身份证号码来确定一个人的籍贯和生日,(然而我开始脑子抽了还以为还要根据奇数偶数判断男女233333). 然后我的暴力ac代码: #include <iostream> ...

  2. formValidation单个输入框值改变时校验

     $("#tv_form").data("formValidation").updateStatus("pay.vcAmount", &qu ...

  3. 秋招落幕,对自己的总结by2018-10-20

    在今天阿里沟通offer完毕,正式三方也确定了,一切如梦,想想1月的自己还担心未来的自己会花落谁家,到10月的今天,一切尘埃落地.一直不怎么喜欢总结自己的历程,今天无聊的我也总结一波吧. 准确的说没有 ...

  4. CSS - 表格细线边框

    通过 border-collapse: collapse cellpadding="0", cellspacing= "0" 实现 <!DOCTYPE h ...

  5. swiper选项卡还可以左右滑动,最后一个直接跳转链接

    整理分享: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf ...

  6. Redis数据库与python的交互

    1.安装redis模块:pip install redis 2.安装好以后主要使用redis模块中的StrictRedis对象,用于连接redis服务器 3.代码如下: from redis impo ...

  7. js学习:基本语法结构

    语句 JavaScript 程序的执行单位为行(line),也就是一行一行地执行.一般情况下,每一行就是一个语句. 语句(statement)是为了完成某种任务而进行的操作,比如下面就是一行赋值语句. ...

  8. Java面向对象编程 -1.2

    类与对象简介 类是某一类事物的共性的抽象概念 而对象描述的是一个具体的产物 类是一个模板,而对象才是类可以使用的实例,先有类再有对象 在类之中一般都会有两个组成: 成员属性(Filed) :有些时候为 ...

  9. springboot#下载文件

    膜拜大神 这就是我要的滑板鞋! @RequestMapping(value = "/media", method = RequestMethod.GET) public Respo ...

  10. 2019上海爱奇艺大数据Java实习生-面试记录

    目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...