SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字
说明
除了需要 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 的输入字的更多相关文章
- 获取TXT文件,解决读取TXT乱码问题,查找所输入字是否在TXT文件中,
/// <summary> /// 查看是否存在 /// </summary> /// <param name="str"></param ...
- Modbus RTU 通信应用案例
如何打开项目归档文件 例程中的TIA博途项目文件与STEP 7项目文件均为归档文件,需要按如下方式打开: TIA博途项目文件 1. 打开TIA博途软件,通过软件左下方“项目视图”按钮切换至项目视图: ...
- Modbus RTU新版本指令介绍
Modbus RTU新版本指令介绍 TIA V13 SP1版本软件中提供了2个版本的Modbus RTU指令: 图1. 两个版本Modbus RTU指令 早期版本的Modbus RTU指令(图1. 中 ...
- modbus4j中使用modbus tcp/ip和modbus rtu over tcp/ip模式
通过借鉴高人博客,总结如下: 1. TcpMaster类,用于生成ModbusMaster主类 package sun.sunboat; public class TcpMaster { privat ...
- MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数
浮点数保存的字节格式如下: 地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM 这里S 代表符号位,1是负,0是正E 偏移127的幂,二进 ...
- Modbus RTU程序开发解读
Modbus是很好的串口通信协议,其中RTU协议最为常用,通过Modbus RTU,我们可以轻松读写串口信息. 从官网下载libModbus,观察modbus.h可知关键的结构体为: typedef ...
- Modbus RTU 通信工具设计(转)
Modbus RTU 通信工具设计 Modbus 是一个工业上常用的通讯协议.一种通讯约定. ModBus 协议是应用层报文传输协议(OSI 模型第7层),它定义了一个与通信层无关的协议数据单元(PD ...
- Modbus协议栈实现Modbus RTU多主站支持
前面我们已经详细讲解过Modbus协议栈的开发过程,并且利用协议栈封装了Modbus RTU主站和从站,Modbus TCP服务器与客户端,Modbus ASCII主站与从站应用.但在使用过程中,我们 ...
- Modbus库开发笔记之六:Modbus RTU Master开发
这一节我们来封装最后一种应用(Modbus RTU Master应用),RTU主站的开发与TCP客户端的开发是一致的.同样的我们也不是做具体的应用,而是实现RTU主站的基本功能.我们将RTU主站的功能 ...
随机推荐
- java模板字符串功能的简单实现
package com.Interface.util; import lombok.extern.slf4j.Slf4j; /** * 测试类 * * @author 华文 * @date 2019年 ...
- DHCP报文交互流程
1.发现阶段,即DHCP客户机寻找DHCP服务器的阶段(DHCPdiscover) DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPdiscover发现信息来 ...
- 原生js的表单验证
最近在学原生的js,把一些练手的代码往博客放一放,权当积累经验,若有错漏,或是觉得浅显,大家不要见怪. 这是一个原生js编写的简单的表单验证: <!DOCTYPE html><htm ...
- C/S的接口测试工具
Postman概述: Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响 ...
- BIND DNS配置!
1.RPM 包的主要作用bind:提供了域名服务器的主要程序及相关文件bind-utils:提供了对 DNS 服务器的测试工具程序,如 nslookup 等bind-libs:提供了 bind.bin ...
- rem布局,在用户调整手机字体大小/用户调整浏览器字体大小后,布局错乱问题
一.用户调整浏览器字体大小,影响的是从浏览器打开的web页. 浏览器设置字体大小,影响浏览器打开的页面.通过js可控制用户修改字体大小,使页面不受影响. (function(doc, win) { / ...
- ajax的XmlHttpRequest对象常用方法
onreadystatechange用于检测readyState状态的改变,当readyState的状态发生改变的时候调用回调
- 大道至简第一章JAVA伪代码形式读后感
//愚公移山: public class YuGongYiShan{ //原始需求:“惩山北之塞,出入之迂” //沟通方式:“聚室而谋曰” //项目目标:“毕力平险,指通豫南,达于汉阴” //技术方案 ...
- redhat 7.6 iptables 配置
1.查看iptables默认表(filter) iptables -L -n 2.iptables 默认内链(filter)表三种: INPUT:处理进入防火墙的数据包 FORWARD:源自其他计算机 ...
- OS(操作系统)结构
1.整体式: 模块设计(独立的) 调用自由 用全局变量来通信 缺点:信息不安全,维护更新比较难 2.层次结构(典型的如TCP/IP协议): 所有的模块排成若干层,相邻的互相依赖调用 按调用次序来安排 ...