以下 Modbus 说明阐述了 CP 341 (S7 300) 和 CP 441-2 (S7 400) 通信处理器上可重新加载驱动程序的用法,以及 Modbus/USS 模型中 ET 200S 1SI 模块的使用。
通过适当配备的通信模块和相关指令,用户可以在远程 Modbus 控制系统(如 Modicon PLC 或 Honeywell TDC3000)与 SIMATIC S7 之间建立通信连接。
RTU 格式的 GOULD-MODBUS 协议用于传输。
函数代码 01、02、03、04、05、06、08、15 和 16 用于作为 Modbus 从站的通信模块与主站系统之间的通信。
如果将 SIMATIC S7 通信模块用作 Modbus 主站,则函数代码 07、11 和 12 也可使用。
modbus 协议是一种基于主站/从站和客户机/服务器体系结构的通信协议。
使用的程序是明码、异步半双工的程序。 数据传输无须握手。
主站可主动发起传输,而 CP/S7 CPU 用作从站。
无法进行从从站到从站的帧通信。
作为主站,通信模块将初始化传输,随后输出请求消息帧,然后在组态的应答监视时间内,等待来自从站的响应消息帧。
“主站-从站”和/或“从站-主站”数据交换以从站地址 开始,然后是函数代码。 然后传输数据。 数据域的结构取决于使用的函数代码。 消息帧的最后传送的是 CRC 校验码。
地址 | 函数 | 数据 | CRC 校验 |
---|---|---|---|
字节 | 字节 | n 个字节 | 2 个字节 |
地址 | MODBUS 从站地址 |
函数 | MODBUS 函数代码 |
数据 | 消息帧数据: 字节数、线圈编号和数据 |
CRC 校验 | 消息帧校验和 |
从站地址的范围是 1 到 255。该地址用于对总线上已定义的从站进行寻址。
主站使用从站地址 0 对总线上的所有从站进行寻址。
广播消息仅允许与写函数代码 05、06、15 和 16 相结合。
从站不会针对广播消息发出响应消息帧。
函数代码定义了消息帧的含义。 同样它也定义了消息帧的结构。 通信模块支持以下函数代码:
函数代码 | 符合 MODBUS 规范的功能 |
---|---|
01 | 读线圈状态 |
02 | 读输入状态 |
03 | 读保持寄存器 |
04 | 读输入寄存器 |
05 | 写单个线圈 |
06 | 预设单个寄存器 |
07 | 读取异常状态(仅主站) |
08 | 环路测试 |
11 | 获取通信事件计数器(仅主站) |
12 | 获取通信事件日志(仅主站) |
15 | 写多个线圈 |
16 | 预设多个寄存器 |
数据域 DATA 用于传送函数代码特定数据,例如:
字节数、线圈起始地址、寄存器起始地址、线圈数量和寄存器数量等等
请参见“函数代码”部分。
消息帧的最后是由 2 个字节组成的 CRC 16 校验和。 校验和是按如下多项式计算的: x16 + x15 + x2 + 1。
先传输低位字节,然后传输高位字节。
当在传输 3.5 个字符所需的时间段内(字符延时时间的 3.5 倍)不传输任何数据时,可加载驱动程序将认为消息帧结束 (请参见《MODBUS 协议参考指南》)。
因此消息帧结束的**时 (TIME_OUT) 取决于数据传输速率。
数据传输速率 | **时 (TIME_OUT) |
---|---|
115200 bps | 0,3 ms |
76800 bps | 0,5 ms |
57600 bps | 0.7 ms |
38400 bps | 1 ms |
19200 bps | 2 ms |
9600 bps | 4 ms |
4800 bps | 8 ms |
2400 bps | 16 ms |
1200 bps | 32 ms |
600 bps | 64 ms |
300 bps | 128 ms |
“正常操作”期间,收到帧尾 TIME_OUT 后,对连接伙伴接收到的 Modbus 消息帧进行评估和检查。
在“干扰抑制”期间,通过带有正确 CRC 代码且正确格式化的接收帧来识别帧尾。
当检测到主站的请求消息帧有错误时,例如:寄存器地址非法,从站将设置响应消息帧的函数代码的较高值位。
随后传输的是一个字节的错误代码,即描述错误原因的异常代码。
上述参数的含义的详细描述可从手册《GOULD MODICON Modbus 协议》中找到。
从站的错误代码响应消息帧的结构如下:
例如,从站地址 5,函数代码 5,异常代码 2
从站 EXCEPTION_CODE_xx 的响应帧:
05H | 从站地址 |
85H | 函数代码 |
02H | 异常代码 (1...7) |
xxH | CRC 校验和“低字节” |
xxH | CRC 校验和“高字节” |
驱动程序接收到错误代码响应消息帧后,当前的作业将由于错误而结束。
对应于接收到的错误代码(异常代码 1-7)的错误编号也将输入到错误消息区。
目标数据块中没有条目。
根据 MODBUS 规范定义了下列的错误代码:
错误代码 | 符合 MODBUS 规范的含义 | 原因—短描述* |
---|---|---|
1 | 函数非法 | 函数代码非法 |
2 | 数据地址非法 | 从站具有非法的数据地址 |
3 | 数据值非法 | 从站具有非法的数据值 |
4 | 关联设备发生故障 | 从站出现内部错误 |
5 | 确认 | 函数已执行 |
6 | 忙,拒收消息 | 从站尚未准备好接收消息 |
7 | 否定确认 | 该函数不能执行。 |
* 检查从站获取更多详细信息。 |
使用 RS232C 接口模块的通信模块上提供以下 RS232C 伴随信号:
DCD | (输入) | 数据载体检测 | 检测到的数据载体 |
DTR | (输出) | 数据终端就绪 | 通信模块就绪 |
DSR | (输入) | 数据集准备就绪 | 通信伙伴就绪 |
RTS | (输出) | 请求发送 | 通信模块发送准备就绪 |
CTS | (输入) | 清除发送 | 通信伙伴可以接收到通信模块的数据(响应 CP 的 RTS = ON) |
RI | (输入) | 振铃指示器 | 振铃指示器 |
通信模块接通时,输出信号状态为 OFF(未激活)。
用户可以在模块的属性对话框中或者通过用户程序中的指令组态 DTR/DSR 和 RTS/CTS 控制信号的使用。
RS232C 伴随信号可在以下情况下使用:
在组态自动使用所有 RS232C 伴随信号后使用。
通过相应指令使用。 有关详细信息,请参见“指令概述”部分。
提示 组态自动使用 RS232C 伴随信号后,将不能通过相应指令控制 RTS 和 DTR(请参见“指令概述”部分)! 另一方面,始终可以通过相应指令读取所有 RS232C 伴随信号。 |
以下各节说明了控制和评估 RS232C 伴随信号的基本过程。
可按以下方式实现在通信模块上自动使用 RS232C 伴随信号:
只要通信模块通过组态切换到自动使用 RS232C 伴随信号的工作模式,模块便会将 RTS 线路设置为 OFF,将 DTR 线路设置为 ON(通信模块做好使用准备)。
这将阻止在 DTR 线路设置成 ON 之前收发消息帧。 只要 DTR 仍设置为 OFF,便不能通过 RS232C 接口接收任何数据。 如果执行发送作业,作业将被中止,并伴有相应的错误消息。
执行发送作业时,RTS 将设置为 ON 并且参数化的数据输出等待时间将开始计时。 当数据输出时间结束并且 CTS = ON 时,将通过 RS232C 接口发送数据。
如果 CTS 线路在数据输出时间内未设置为 ON 以便可以发送数据,或者 CTS 在传输过程中更改为 OFF,发送作业会被中止,并生成错误消息。
一旦数据发送完毕且**过组态的清除 RTS 时间,RTS 线路将立即设置为 OFF。 CP 不会等待 CTS 更改为 OFF。
一旦 DSR 线路设置为 ON,即可通过 RS232C 接口接收数据。 如果通信模块的接收缓冲区预警将要溢出,则通信模块将不会响应。
如果 DSR 从 ON 转变成 OFF,激活的发送作业和数据接收都将取消,并产生错误消息。 消息“DSR = OFF(自动使用 V24 信号)”将输入到通信模块的诊断缓冲区中。
提示 组态自动使用 RS232C 伴随信号后,将不能通过相应指令控制 RTS 和 DTR! 有关详细信息,请参见“指令概述”部分。 |
提示 在模块的属性对话框中设置“清除 RTS 时间”,以便使通信伙伴在 RTS 之前完整接收到消息帧的最后的字符,并且发送作业也会因此取消。 “数据输出等待时间”也必须设置,这样通信伙伴才能在**时之前做好接收准备。 |
词条
词条说明
移植报警及相关值S7-1500 的报警组态在 S7-1500 中,可以通过“Program_Alarm”指令集中执行报警组态的所有功能。 “Program_Alarm”将取代 S7-300/400 中的以下指令:用于报警组态的指令 (S7-300/400)用于报警组态的指令 (S7-1500)ALARM_SQProgram_Alarm(移植类别 4)ALARM_SALARM_
PIM RP统计信息的样本此页面显示有关汇集点的信息。显示值说明选择要显示的汇集点。候选项显示作为汇集点候选项的设备接口。已选项 (Designated)显示设备的*路由器。静态显示设备的静态汇集点。根据所选内容,表格中不会显示所有列。该表格包括以下列:组地址显示组播组的地址。组掩码显示限制组播段的子网掩码。RP 地址显示 RP 的 IP 地址。RP **级显示作为 RP 的接口的**
STEP 7 TIA Portal 软件下载一个项目到 CPU
说明 为了将项目数据装载到 CPU,需要建立一个编程设备与设备或CPU 之间的在线连接。下面列表中的一个例子介绍了S7-1500 CPU 的下载步骤 (适用于所有类型的 CPU )。在某些情况下如果模块的存储器没有自动初始化,需要首先将 S7-1500 CPU 恢复出厂设置。如 CPU 仅有 IP 地址而没有下载硬件组态,在线连接时会显示“不兼容”信息。 编号 步骤 1 ...
在 STEP 7 中创建组态文件在项目中组态 SOFTNET 安全客户端模块在项目中将 SOFTNET 安全客户端创建为模块。与其它安全模块不同,您*组态任何其它属性。将 SSC 模块分配到 * 组或者是要建立 PG/PC 的 IPsec 隧道的组。提示有关参数的信息,请参见在所组态 * 组中包含安全模块部分。提示如果在一个组中创建多个 SOFTNET 安全客户端,则不会在这些客户端之间
公司名: 上海腾希电气技术有限公司
联系人: 田礼科
电 话: 021-37660026
手 机: 13681875601
微 信: 13681875601
地 址: 上海松江上海市松江区广富林路4855弄星月大业**88号4楼
邮 编:
网 址: shtxjd.cn.b2b168.com
公司名: 上海腾希电气技术有限公司
联系人: 田礼科
手 机: 13681875601
电 话: 021-37660026
地 址: 上海松江上海市松江区广富林路4855弄星月大业**88号4楼
邮 编:
网 址: shtxjd.cn.b2b168.com