搜档网
当前位置:搜档网 › S7-200实现Modbus通信范例(绝对精华)!!

S7-200实现Modbus通信范例(绝对精华)!!

S7-200实现Modbus通信范例(绝对精华)!!
S7-200实现Modbus通信范例(绝对精华)!!

说明:

使用下面的例程你可以在S7-200CPU之间设置一个简单的Modbus通讯。

这个例子是关于Modbus功能码6的(写从站保持寄存器),也可以作为其他所支持的功能码:1, 2, 3, 4, 5, 15 和16 的基本参数设置步骤。

要求:

要使用Modbus协议必须先在STEP 7 Micro/Win上安装指令库。

Modbus主站协议只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。

1. 硬件设置

2. 参数匹配

3. 指令库的存储地址

4. 保持寄存器值得传输

1. 硬件设置

例程中的Modbus通讯是在两个S7-200 CPU的0号通讯口间进行的(最好每个CPU都有两个通讯口)。在主站侧也可以选择相应库文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通过1号通讯口通信。通讯口1与Micro/WIN建立PG或PC连接,两个CPU的通讯口0通过PPI 电缆进行连接(电缆的针脚连接为2,3,7,8)。

图. 01

2. 参数匹配

对于MODBUS通讯, 主站侧需要程序库 "MBUS_CTRL" 和 "MBUS_MSG", 从站侧需要程序

库 "MBUS_INIT" and "MBUS_SLAVE"。

在 Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。

必须要保证主站与从站的“Baud”和"Parity"的参数设置要一致,并且程序块

"MBUS_MSG"中的"Slave"地址要与程序块"MBUS_INIT"中的"Addr"所设置的一致 (见图. 02)。

Micro/WIN“系统块”中设置的0通讯口的波特率与MODBUS协议无关("Mode" = "1")。

图. 02

下面的表格列出了程序块各个参数选项及其意义

主站

MBUS_CTRL

表 01

1) 参看STEP 7 Micro/WIN 帮助: "MODBUS主站执行MBUS_MSG时的错误代码MBUS_MSG" 。 MBUS_MSG

表 02

1)参看STEP 7 Micro/WIN 帮助: "MODBUS主站执行MBUS_MSG时的错误代码MBUS_MSG" 。

从站

MBUS_INIT

表 03

2) 最大的地址取决于所用CPU的类型及其最大值。

3)参看STEP 7 Micro/WIN 帮助: “MODBUS从站协议的错误代码”。

MBUS_SLAVE

表 04

3)参看STEP 7 Micro/WIN 帮助: “MODBUS从站协议的错误代码” 。

3. 库的存储地址

项目完成后必须要在Micro/WIN中定义库的存储地址,当定义完存储区后, 要保证在任何情况下不能再被其它程序所使用 (主站侧: "DataPtr" + "Count" 从站侧: "HoldStart" + "MaxHold")。

图. 03

4. 保持寄存器值的传输

将程序下载到相应的CPU后,可以在状态表中给主站侧的V存储区赋值,然后监视从站的变化。

当主站的I0.0使能后,VW2中的内容就被发送到从站并写入从站的VW2 。

保持寄存器值的传输见图. 04。

指针"DataPtr" 代表了V区被读的起始地址。

参数 "Count" 表明了地址"Addr" = "4xxxx" (保持寄存器)以字为单位被读的个数。

主站中被读取的V存储区被写入地址为"Addr" = "40002" ("RW" = "1")的保持寄存器中。

保持寄存器是以字为单位工作的,它与从站的V区地址对应。

指针 "HoldStart" 明确了与保持寄存器起始地址40001相对应的V存储区的初始地址。

可以这样计算从站的V区目标指针:

2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2

另外,要保证"MaxHold" 定义的数据区能够包含主站侧所要写入的数据区:

MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2

Fig. 04

关于STEP 7 Micro/WIN MOBDUS 库的更多信息可以参看 S7-200 系统手册 ( Entry ID 1109582) 和 STEP 7 Micro/WIN 帮助。

如何在 STEP 7 Micro/WIN 中找到 Modbus RTU 协议和 USS 协议操作库?

说明:

在 STEP 7 Micro/WIN 中,Modbus RTU 协议和 USS 协议操作库位于操作树的“库”文件夹中。MODBUS 函数库要求 STEP 7 Micro/WIN 为 V3.2 或更高版本。

图1:添加函数库

这些库是附加函数库,并非组态软件 STEP 7 Micro/WIN 的组成部分。

您如果需要使用 Modbus RTU 协议,必须购买“SIMATIC STEP 7 Micro/WIN ADD ON: Function Library V1.1 (USS + MODBUS) for STEP 7 Micro/WIN 32”软件。

这个可选附加函数库的订货号是 6ES7830-2BC00-0YX0。

安装顺序:

先安装“STEP 7 Micro/WIN 32 Toolbox V1.0”(包括库),然后安装“STEP 7 Micro/WIN”。

注意:

这个函数库包含可以在 STEP 7 Micro/WIN V3.2 中使用的 Modbus RTU 协议库和 USS 协议库。

如果您安装了 STEP 7 Micro/WIN V4.0 SP5 或者更高版本,那么操作库中就会包含下列函数:

Modbus RTU Master V1.2 对应端口 0 和端口 1

Modbus RTU Slave V1.0 对应端口 0

USS protocol V2.3 对应端口 0 和端口 1

MODBUS通讯协议及编程

通讯协议及编程 通讯协议分为协议和协议,我公司的多种仪表都采用通讯协议,如:2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与通讯规约相兼容: 初始结构= ≥4字节的时间 地址码 = 1 字节 功能码 = 1 字节 数据区 = N 字节 错误校检 = 16位码 结束结构= ≥4字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。 码:二字节的错误检测码。 (二)、通讯规约: 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息

中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作。 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.错误校验 冗余循环码()包含2个字节,即16位二进制。码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的码,比较计算得到的码是否与接收到的相符,如果两者不相符,则表明出错。 码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据信息进行处理。在进行码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与码计算。 在计算码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0 填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。 这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相相异或,这个过程与以上一样重复8次。当所有的数据信息处理完后,最后寄存器的内容即为码值。码中的数据发送、接收时低字节在前。 计算码的步骤为:

modbus_通讯协议_实例

上海安标电子有限公司 ——PC39A接地电阻仪通信协议 通信协议: 波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 字节号 1 2 3 4 5 6 7 8 意义ID Command 数据地址V alue CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,读:3或4,写:6 3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始 4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位) 5 CRC:计算出CRC 下位机(PC39A): 读数据,若正确 字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位) 4 V alue:N个字节,是返回上位机的数据 5 CRC:计算出CRC 写命令,若正确 返回收到的数据: 若错误 字节号 1 2 3 4 5 意义ID Command 数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令 错误指令 1:表示command不存在 2:表示数据地址超限 4 CRC:计算出CRC

例如读PC39A 电流数据: 机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12 3 100 1 CRC_H CRC_L 从机返回 如正确: ID Command 数据个数(以字节为单位) V alue CRC 16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3 2 1545 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制 12 131 2 CRC_H CRC_L 例如发PC39A 启动命令: 机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 从机返回 如正确: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12 134 2 CRC_H CRC_L 0011 10000110 错误码0x83 功能码0x06错误码0x86

精编通讯规约通信规约

DL/T645-1997 通讯规约通信规约 1 、范围 该通信规约适用于本地系统中多功能表的费率装置与手持单元(HHU )或其它数据终端设备进行点对点的或一主多从的数据交换方式,规定了它们之间的物理连接、通信链路及应用技术规范。 2 、引用标准 GB/T3454-1994 数据通信基本型控制规程 GB/T9387-1995 信息处理系统开放系统互连基本参考模型 DL/T614-1997 多功能电能表 IEC1107-1996 读表、费率和负荷控制的数据交换---直接本地数据交换 IEC1142--1993 读表、费率和负荷控制的数据交换---本地总线数据交换 ITU-TV。24—1993 非平衡双流接口电路的点特性 ITU-TV。28—1993 数据终端设备(DTE )和数据电路终接设备(DCE )之间的 接口电路定义表 3 、RS-485 标准串行电气接口 本协议采用RS-485 标准串行电气接口,使用点连接成为可能.RS-485 接口的一般性能应符合下列要求. 3.1驱动与接收端、耐静电(ESD)±5kV(人体模式)。 3.2共模输入电压:-7V?+12V。 3.3 差模输入电压:大于0.2V 3.4驱动输出电压:在负载阻抗54欧姆时,最大5V,最小1.5V 3.5 三态方式输出 3.6半双工通信方式3.7驱动能力不小于32个同类接口。

3.8在传输速率不大于100kbps条件下,有效传输不小于1200m 3.9总线是无源的,由费率装置或数据终端、提供隔离电源。 4.1字节格式 每字节含8位二进制码,传输时加上一个起始位(0 )、一个偶校验位和一个停止位(1)共11 位。其传输序列如图1。D0是字节的最低有效位,D7是字节的最高有效位。先传低位,后传高位。 起始位8位数据偶校验位停止位 图1 字节传输序列 4.2帧格式 帧是传送信息的基本单元。帧格式如图2所示 图2 帧格式 421帧起始符68H :标识一帧信息的开始,其值为68H=01101000B 422地址域A0 s A5 :

MODBUS_RTU通信规约

MODBUS_RTU通讯规约(本协议采用主从问答方式) PDM系列仪表/变送器: PDM系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。 MODBUS通讯协议: ModBus通讯规约允许PDM系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus 兼容的监控系统之间进行信息交换和数据传送。 PDM系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:组态王、Intouch、FIX、synall等)就可以构成一套电力监控系统。 广泛的系统集成: PDM系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。 通讯数据的类型及格式: 信息传输为异步方式,并以字节为单位。在主站和从站之间传递的通讯信息是11位的字格式: 字格式(串行数据) 11位二进制 起始位1位 数据位8位 奇偶校验位1位:有奇偶校验位/无:无奇偶校验位 停止位1位:有奇偶校验位/2位:无奇偶校验位 ●通讯数据(信息帧)格式 数据格式:地址码功能码数据区错误校检 数据长度:1字节1字节N字节 16位CRC码(冗余循环码) ★ 注:1、1个字节由8位二进制数组成(既8 bit)。 2、ModBus是Modicon公司的注册商标。

一、通讯信息传输过程: 当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。如果CRC校验出错就不返回任何信息。 1.1 地址码: 地址码是每次通讯信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。当从机回送信息时,回送数据均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。相应的地址码表明该信息来自于何处。 1.2 功能码: 是每次通讯信息帧传送的第二个字节。ModBus通讯规约可定义的功能码为1到127。PDM系列仪表/变送器仅用到其中的一部分功能码。作为主机请求发送,通过功能码告诉从机应执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。 表8.1 MODBUS部分功能码 功能码定义操作(二进制) 02 读开关量输入读取一路或多路开关量状态输入数据 01 读开关量输出读取一路或多路开关量输出状态数据 03 读寄存器数据读取一个或多个寄存器的数据 05 写开关量输出控制一路继电器“合/分”输出 06 写单路寄存器把一组二进制数据写入单个寄存器 10 写多路寄存器把多组二进制数据写入多个寄存器 1.3 数据区: 数据区包括需要由从机返送何种信息或执行什么动作。这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。 PDM系列仪表/变送器采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以任意读取其数据寄存器(其数据信息表详见附录)。PDM 系列仪表/变送器的数据寄存器存储的电量多达几百个(如:电流、电压、功率、0~31次谐波分量等),并且都是16位(2字节)的二进制数据,并且高位在前;一次最多可读取寄存器数(既各种电量的数量)是50个。 PDM响应的命令格式是从机地址、功能码、数据区及CRC码。数据区的数据都是两个字节,并且高位在前(电能量除外)。 注:1、PDM-820AC/ACM/ACR、PDM-800AC/ACM具有“03”、“06”、“10”功能码; 2、如果PDM采用MODBUS ASCII通讯协议,其通讯数据格式为;7个数据位,1个 停止位,偶校验。

基于Modbus协议实现单片机与PLC之间的通讯

基于Modbus协议实现单片机与PLC之间的通讯 来源:PLC&FA 作者:蔡晓燕赵兴群万遂人董鹏云 关键词:可编程控制器 Modbus 通讯协议 1 引言 HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。它有字母、汉字、图形和图片等不同的显示,界面简单友好。配有长寿命的薄膜按钮键盘,操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。 2 Modbus通讯协议[4] Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。 Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。 (1) 典型的RTU消息帧 典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。可能的从设备地址是0...127(十进制)。其中地址0是用作广播地址,以使所有的从设备都能认识。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代 码所定义的行为。这包括了像不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。 当选用RTU模式作字符帧时,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。 (2) 所有的Modbus功能码 Modbus的功能码定义如表2所示。

Modbus通讯协议学习

Modbus通讯协议学习 了解了它,会使你对串口通信有一个清晰的认识!通用消息帧ASCII消息帧(在消息中的每个8Bit 字节都作为两个ASCII字符发送) 十六进制,ASCII字符0...9,A...F 消息中的每个ASCII字符都是一个十六进制字符组成每个字节的位1个起始位n个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)错误检测域LRC(纵向冗长检测) RTU 消息帧8位二进制,十六进制数0...9,A...F 消息中的每个8位域都是一个两个十六进制字符组成每个字节的位1个起始位8个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)错误检测域CRC(循环冗长检测) CRC校验 (https://www.sodocs.net/doc/5e9384563.html,/view/1664507.htm) public static string CRCCheck(string val) { val = val.TrimEnd(' '); string[] spva = val.Split(' '); byte[] bufData = new byte[spva.Length + 2]; bufData = ToBytesCRC(val); ushort CRC = 0xffff;

ushort POLYNOMIAL = 0xa001; for (int i = 0; i < bufData.Length - 2; i++) { CRC ^= bufData[i]; for (int j = 0; j < 8; j++) { if ((CRC & 0x0001) != 0) { CRC >>= 1; CRC ^= POLYNOMIAL; } else { CRC >>= 1; } } } return Maticsoft.DBUtility.HLConvert.ToHex(System.BitConverter .GetBytes(CRC)); } /// <summary>

(完整版)MODBUS通讯协议-RTU要点

Modbus 通讯协议 (RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。

第一章Modbus协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。 1.1 传输方式 传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以RTU 模式在Modbus总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议– RTU方式相兼容的传输方式。 代码系统 ?8位二进制,十六进制数0...9,A...F ?消息中的每个8位域都是一个两个十六进制字符组成 每个字节的位 ?1个起始位 ?8个数据位,最小的有效位先发送 ?1个奇偶校验位,无校验则无 ?1个停止位(有校验时),2个Bit(无校验时) 错误检测域 ?CRC(循环冗长检测)

MODBUS-RTU通讯规约【消防系统】

火灾报警控制系统MODBUS RTU通讯规约 1规约制定的依据: 1.1火灾报警控制系统的特点: 1.1.1火灾本身是小概率事件,很少发生; 1.1.2所带探测类设备和控制类设备众多; 1.1.3火灾报警控制系统的设备种类非常多; 1.1.4每个探测类设备均有正常、故障、报警三种状态,可能发生隔离、释放信息; 1.1.5每个控制类设备均有正常、故障、动作、恢复四种状态,可能发生隔离、释 放、启动、停动信息。 1.2由于以上特点,火灾报警控制系统的通讯设计成事件出发的形式;默认每个设备 处于正常状态,如发生故障、隔离、报警事件,形成包含事件类型、设备编码、 设备类型的事件信息;通过MODBUS传送给主机,主机进行事件的文本或图形 显示。 2通讯说明: 1、通讯协议:MODBUS RTU; 2、波特率:4800; 3、奇偶校验:无; 4、停止位:1位,每字节数据共10位; 5、配接控制器通讯接口卡: INET-03A接口卡(RS232接口) 程序名称: GST5000控制器:500modbusv1.0.hex GST200控制器:200modbusv1.0.hex 6、Modbus从站地址设定: 针对GST200控制器,该网卡需进行注册,并在开机注册时显示联网系统正常,并且正常运行时,红灯闪烁;设定控制器联网地址,该地址即为Modbus从站地址; 针对GST5000控制器,该网卡在系统中注册为CRT卡,设置彩色显示器CRT地址,该地址即为Modbus从站地址; 7、应用中,需配合控制器设备点表来实现对设备的监控; 3 火灾报警控制系统MODBUS规约 2、寄存器模式通讯协议 2.1、主机使用MODBUS功能码3对火灾报警控制器设备状态寄存器进行查询,寄 存器点数由控制器设备点数决定,因此,该方案适合小点数的火灾报警控制器; 2.2、寄存器状态说明: 寄存器与设备对应说明: MODBUF的查询寄存器40001对应控制器的0回路的1号设备; GST200控制器: GST200控制器共可接242个设备,设备二次码编码应按照***001~***242设

很好的威纶通MODBUSRTU通讯协议与变频器通讯案例

很好的威纶通 M O D B U S R T U通讯协议与变频器通讯案例 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

本文研究的是触摸屏通过MODBUS RTU通讯协议与变频器通讯实现变频器的控制。触摸屏采用威纶通TK6070IP,变频器用汇川MD380通用系列。通过触摸屏编程软件,编辑控制画面实现变频器的启动、停止、速度调节、多段速速度设置,通过宏指令实现工程值与实际值的转换。 一、MODBUS RTU 简介: 为了在自动化系统之间、自动化系统和所连接的分散的现场设备之间进行信息交换,如今串行现场总线被主要用作通讯系统。成千上万的应用已经强烈地证明了通过使用现场总线技术,可以节省多至40%的接线、调试及维护的费用。仅仅使用两根电线就可以传送现场设备的所有相关信息,比如输入和输出数据、参数、诊断数据。过去使用的现场总线往往是制造商的特定现场总线,并且同其它现场总线不兼容。如今使用的现场总线几乎是完全公开和标准化的。这就意味者用户可以以最合理的价格选择最好的产品,而不用依赖于每个独立的制造商。Modbus RTU是一种国际的、开放的现场总线标准。作为一种很容易实现的现场总线协议,在全世界范围内,Modbus得到了成功的应用。应用领域包括生产过程中的自动化、过程控制和楼宇自控。MODBUS RTU通讯协议的报文如图1。 图1 MODBUS RTU 通讯协议的报文功能码如下: 01H 读取线圈状态。从执行机构上读取线圈(单个位)的内容; 02H 读取离散量输入。从执行机构上读取离散量输入(多个位)的内容; 03H 读取保持寄存器。从执行机构上读取保持寄存器(16位字)的内容; 04H 读取输入寄存器。从执行机构上读取输入寄存器(16位字)的内容; 05H 强置单线圈。写数据到执行机构的线圈(单个位)为“通”(“1”)或“断”(“0”); 06H 预置单寄存器。写数据到执行机构的单个保持寄存器(16位字); 0FH 强置多线圈。写数据到执行机构的几个连续线圈(单个位)为“通”(“1”) 或“断”(“0”); 10H 预置多寄存器。写数据到执行机构的几个连续的保持寄存器(16位字)。 二、威纶通编程软件介绍: EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有 3x_bit,4x_bit,6x_bit,0x_multi_coils等,下面分别说明这些设备类型在MODBUS协议中支持哪些功能码。 0x:是一个可读可写的设备类型,相当于操作PLC的输出点。该设备类型读取位状态的时候,发出的功能码是01H,写位状态的时候发出的功能码是05H。写多个寄存器时发出的功能码是0fH。

tcp协议之基础知识

TCP/IP协议(传输控制协议/网间协议) TCP/IP 协议集确立了Internet 的技术基础。TCP/IP 的发展始于美国DOD (国防部)方案。IAB (Internet 架构委员会)的下属工作组IETF (Internet 工程任务组)研发了其中多数协议。IAB 最初由美国政府发起,如今转变为公开而自治的机构。IAB 协同研究和开发TCP/IP 协议集的底层结构,并引导着Internet 的发展。TCP/IP 协议集记录在请求注解(RFC)文件中,RFC 文件均由IETF 委员会起草、讨论、传阅及核准。所有这些文件都是公开且免费的,且能在IETF 网站上列出的参考文献中找到。 TCP/IP 协议覆盖了OSI 网络结构七层模型中的六层,并支持从交换(第二层)诸如多协议标记交换,到应用程序诸如邮件服务方面的功能。TCP/IP 的核心功能是寻址和路由选择(网络层的IP/IPV6 )以及传输控制(传输层的TCP、UDP)。 IP (网际协议) 在网络通信中,网络组件的寻址对信息的路由选择和传输来说是相当关键的。相同网络中的两台机器间的消息传输有各自的技术协定。LAN 是通过提供6字节的唯一标识符(“MAC”地址)在机器间发送消息的。SNA 网络中的每台机器都有一个逻辑单元及与其相应的网络地址。DECNET、AppleTalk 和Novell IPX 均有一个用来分配编号到各个本地网和工作站的配置。 除了本地或特定提供商的网络地址,IP 为世界范围内的各个网络设备都分配了一个唯一编号,即IP 地址。IPV4 的IP 地址为4字节,按照惯例,将每个字节转化成十进制(0-255)并以点分隔各字节。IPV6 的IP 地址已经增加到16字节。关于IP 和IPV6 协议的详细说明,在相关文件中再另作介绍。 TCP (传输控制协议) 通过序列化应答和必要时重发数据包,TCP 为应用程序提供了可靠的传输流和虚拟连接服务。TCP 主要提供数据流转送,可靠传输,有效流控制,全双工操作和多路传输技术。可查阅TCP 部分获取更多详细资料。 在下面的TCP/IP 协议表格中,我们根据协议功能和其在OSI 七层网络通信参考模型的映射关系将其全部列出。然而,TCP/IP 并不完全遵循OSI 模型,例如:大多数TCP/IP 应用程序是直接在传输层协议TCP 和UDP 上运行,而不涉及其中的表示层和会话层。 ************************************ *********************88 **************************8 TCP/IP协议详解 悬赏分:30 - 解决时间:2007-8-29 23:29 提问者:4252002 - 试用期一级最佳答案 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP

恒瑞电力保护装置Modbus通信规约

微机保护装置通讯协议 MODBUS-RTU- V1.1版 珠海市恒瑞电力科技有限公司 2013-3

一、协议概述 ●本协议适用于HDPx、DPx、EDPx、DPML系列保护装置。 ●本协议为轮询方式的应答式规约,允许一个主站对应32个从站。 ●数据帧间的间隔时间应大于50ms。 ●数据为字时,均采用高字节在前、低字节在后、高位字在前、低位字在后的原则(校验码除外)。 ●从站地址为00时为广播方式。 1、物理层: ●传输方式:RS-485 ●通信地址:1~255 ●通信波特率:2400bps~19200bps。 ●传输介质:屏蔽双绞线 2、链路层: ■传输方式:主从半双工方式。 数据在一根通信线路上进行双向传输的应答式连接(发送完后,再接收)。主站首先寻址到唯一的从站,接着主站将会收到对应的终端设备发出的应答信号。 协议只允许应用在主站与终端设备之间,禁止在独立的终端设备之间互相交换数据。 ■数据帧格式,表1-1如示: ■数据包格式,表1-2如示: 当从站接收到主站的数据帧后,首先进行地址验证,如是从站,则从站进行数据帧的CRC校验码计算,并与接收到的主站发出的CRC码进行比较,如相等,则执行相应的功能码,并对主站做出响应(从站的地址、功能码、数据区、CRC的低字节,CRC的高字节);如经地址验证不为该从站,则退出,不做出任何的响应。 ●地址域 从站地址为一个字节,该字节标明了主站与从站进行通信的入口,所以该地址是每个从站所必须的,并且有且只有一个,从站之间绝不能相互重复,否则会引起通信链路上的冲突而导致通信错误。有效的从站地址范围从1~247。从站地址为00时为广播方式。 ●功能域 该码值为一个字节,它标识了主站要在终端设备上是做何种操作。详细内容参见表1-3所示。

modbus协议下上位机编程实例

竭诚为您提供优质文档/双击可除modbus协议下上位机编程实例 篇一:modbus协议下的上位机地址 Rs485采取流量计数据,经串口com1的2号地址读到int ouch中来,双字40001、40002为浮点型瞬时流量,读到上位机项目为40001F双字40004、40005为长整型累计流量,读到上位机项目为40004l 驱动设置与intouch标记名的设置 驱动设置: 项目名设置 注:在不修改驱动设置的情况下,s=s1+s2*65535 s=s2+s1*65535 根据各个厂家的仪表,上面工式有区别,设计时各个测试一下。 篇二:modbus通讯协议实例 上海安标电子有限公司 ——pc39a接地电阻仪通信协议 通信协议:

波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 注:1id:1个字节,由单机来定(0~255) 2command:1个字节,读:3或4,写:6 3数据地址:2个字节,寄存器地址,读从100开始,写从200开始4Value:2个字节,读:个数(以整型为单位),写:命令/数据(以整型为单位)5cRc:计算出cRc下位机(pc39a ):注:1id:1个字节,由单机来定(0~255) 2command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位)4Value:n个字节,是返回上位机的数据5cRc:计算出cRc 写命令,若正确返回收到的数据:若错误注:1id:1个字节,由单机来定(0~255) 2command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令错误指令 1:表示command不存在2:表示数据地址超限 4cRc:计算出cRc 例如读pc39a电流数据: 机器地址为12,电流的数据地址100,数据为15.45(a)(一个整型数据)

Modbus 通讯协议简化V1.0(含具体说明).

Modbus通讯协议简化 V1.0 2004-5-21 1 Modbus协议概述 Modbus协议是主从站通讯协议,用异步串行口完成通讯,物理层采用RS485或RS232。传输速率可以达到115kbps,理论上可接(寻址)一台主站和至多247台从站。受线路和设备的限制,最多可接一台主站和32台从站。 Modbus理,以及所执行的功能等,都不能随便改动。其他特性属于用户可选的,如传输介质、波特率、字符奇偶校验、停止位的个数等等,传输模式为RTU。用户所选择的参数对于各个站必须一致,在系统运行时不能改变。 1.1 Modbus协议传输模式 Modbus的传输模式:RTU方式。 表1-1 RTU传输模式的特性 特性编码系统 每个字符的位数起始位 数据位 奇偶校验位 停止位 1.2 帧 Modbus协议的帧(报文)格式:RTU帧。 下表是RTU传输模式的一般格式命令帧。 从站地址 8位 2 Modbus协议 2.1 通讯方式 Modbus有两种通讯方式:应答方式和广播方式。 应答方式是主站向某个从站(地址1~247)发出命令,然后等待从站的应答;从站接到主站命令后,执行命令,并将执行结果返回给主站作为应答,然后等待下一个命令。 广播方式是主站向所有从站发送命令(从站地址为0),不需要等待从站应答;从站接到广播命令后,执行命令,也不向主站应答。 除了会送诊断校验外,只有05、06、15、16这四项功能(见2.3)对广播方式有效。功能码数据校验和 8位位位十六进制 1位 8位 0或1位 1或2位校验和(循环冗余校验) 2.2 Modbus帧

Modbus的帧按应答方式分为命令帧(询问帧)和应答帧。命令帧为一般格式命令帧,应答帧有显长度帧和隐长度帧之分,图2-1、2-3、2-4给出了典型的帧格式。从站地址 功能码 数据 数据起始寄存器高位 数据起始寄存器地位 数据寄存器高位 数据寄存器地位 校验和 图2-1 一般格式命令帧 从站地址 从站地址 2.2.1 功能码 从站地址字段 数据 图2-4 隐长度应答帧 帧中的从站地址字段表示接收主站报文的从站地址。当从站地址字段为0时,表示所有从站,此时的报文是广播报文。 用户必须设定每台从站的专用地址。只有被编址的设备才能对主机的命令(询问)做出应答。从站发送应答报文时,报文中地址的作用是向主站报告正在通讯的是哪台从站。 2.2.2 功能码字段 功能码字段同志从站应执行何种功能。表2-1列出了功能码的意义和作用。2.3节给出了各个功能码对应报文的详细格式和功能。表2-1 Modbus功能码 功能码 01 02 03 04 05 06 07 08 09 10 11 12 名称 读取开出状态读取开入状态读取模出状态读取模入状态强制单路开出强制单路模出读取异常状态回送诊断校验编程探询读取事件计数读取通讯事件记录 作用(对主站而言) 取得一组开关量输出的当前状态取得一组开关量输入的当前状态取得一组模拟量输出的当前状态取得一组模拟量输入的当前状态强制设定某个开关量输出的值强制设定某个模拟量输出的值取得从站的一些状态(8位)

Modbus通讯协议(TCP和RTU)

1MODBUS RTU 读寄存器请求序号意义所占字节字节存放格式 1从设备地址1个字节0x00?0xff 2功能码1个字节0x03 3起始寄存器基地址两个字节高字节在前 4寄存器个数两个字节高字节在前 5CRC校验码两个字节低字节在前 读寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x03 3数据长度1个字节寄存器个数×2 4数据寄存器个数×2个字节每个寄存器高字节在前5CRC校验码两个字节低字节在前 写单个寄存器请求序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x06 3起始寄存器地址两个字节高字节在前 4寄存器值两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 写单个寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器值两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 1

写多个寄存器请求序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器个数两个字节 高字节在前 5数据长度 1个字节 寄存器个数×2  6数据寄存器个数×2个字节每个寄存器高字节在前7CRC校验码 两个字节 低字节在前 写多个寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器个数两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 错误返回序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节请求功能码+0x80 3错误码1个字节 其代号见下面表格4CRC校验码 两个字节 低字节在前 错误代号错误代号意义 0x01不支持该功能码 0x02越界 0x03寄存器数量超出范围 0x04读写错误 2

MODBUS通信规约解析

MODBUS通信规约 第一章MODBUS协议简介 MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。 MODBUS协议在一对通讯线上使用主从应答式连接(半双工),这意味着在一对单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。 MODBUS协议只允许在主计算机和终端设备之间通讯,而不允许独立的设备之间的数据交换,这样各终端设备不会在它们初始化时占用通讯线路,而仅限于响应到达本机的查询信号。 1.1 传输方式 传输方式是一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS协议-RTU方式相兼容的传输方式。 ◆Coding System 二进制编码8位 ◆Start bit 起始位1位 ◆Data bits 数据位8位 ◆Parity 校验无奇偶校验 ◆Stop bit 停止位1位

Error checking 错误检测CRC(循环冗余校验)1.2协议 当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。 1.2.1数据帧格式 1.2.2地址(Address)域 地址域在帧的开始部分,由一个字节8位(0~255)组成,这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之通信。

电磁流量计实用标准MODBUS通讯协议详情(1)

电磁流量计转换器 通讯协议 2012-10-12

目录 一、概述................................................................................................. - 2 - 二、网络结构及接线................................................................................ - 2 -

三、Modbus协议RTU帧格式 .............................................................. - 2 - 四、Modbus协议命令编码定义............................................................. - 4 - 五、电磁流量计MODBUS寄存器定义 ................................................... - 5 - 1. 电磁流量计MODBUS寄存器地址定义............................................... - 5 - 2.PLC地址设置说明................................................................................ - 5 - 3.组态王地址设置说明............................................................................. - 6 -4.数据含义说明 .................................................................................... - 6 -六、通讯数据解析................................................................................... - 7 -1读瞬时流量 .......................................................................................... - 7 -2.读瞬时流速:....................................................................................... - 8 -3读累积流量 .......................................................................................... - 8 - 5.读总量流量单位 ................................................................................. - 10 - 6.读报警状态 ........................................................................................ - 10 - 七、应用举例........................................................................................ - 11 - 1.C语言MODBUS 示例程序............................................................... - 11 - 2.modbus调试软件modbus poll通讯实例....................................... - 13 - 3.modbus调试软件modscan32通讯实例 ......................................... - 15 - 4.组态王6.53通讯实例 ........................................................................ - 17 - 5.力控 6.1通讯实例.............................................................................. - 21 -

相关主题