当前位置:文档之家› 西门子S7_200PLC与组态王的无线通信Modbus方案

西门子S7_200PLC与组态王的无线通信Modbus方案

西门子S7_200PLC与组态王的无线通信Modbus方案
西门子S7_200PLC与组态王的无线通信Modbus方案

西门子S7_200PLC与组态王的无线通信Modbus方案

西门子S7_200PLC与组态王的无线通信Modbus方案

在这里介绍一种PLC的MODBUS无线组态通信的实现方法。本方案可以作为西门子PLC与组态王通信的实例。

在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC需要与总控中心的组态王软件进行远程通信,通常情况是采用有线RS485总线敷设电缆,通过MODBUS协议完成此功能。如果现场布线不方便的话,也可以采用无线方式进行通信。本方案中采用了专门用于无线通信的智能数据终端DTD433M。

l 有线MODBUS网络:S7-200S7-200STEP

7S7-200PG/PC9.6kbps,8,N,1人机界面

组态软件

l S7-200STEP 7PG/PCRS485

9.6 kbps人机界面

组态软件DTD433DTD433RS485

9.6 kbpsS7-200RS485

9.6 kbpsDTD433无线MODBUS网络:

在实际系统中,人机界面与PLC不在一起,中心计算机一般放置在控制室,而PLC安装在现场车间,二者之间距离往往从几十米到几千米。如果布线的话,需要挖沟施工,比较麻

烦,这种情况下比较适合采用无线通信方式。

一、PLC与组态王的Modbus通信

1. 下载S7_200程序

需要向PLC中下载对应的初始化程序(KVmoddbus.mwp),由亚控公司提供。此程序默认的PLC通讯端口为port0,地址为2,波特率9600,无校验(地址和波特率可由程SBR0 中的VB8,SMB30 进行修改);

2.设备选择

选择以下两个设备都可以。

3. 演示程序界面

打开组态王演示工程文件

二、满足西门子PLC的MODBUS通信协议的专用无线数据终端

为了满足西门子PLC和组态王的MODBUS通信协议,对无线数据终端具有以下要求:

适合于RS232/RS485串口连接,可以直接代替有线的RS485网

DTD433M提供标准的RS232/RS485口。DTD433M接口波

特率为9600bps,8 N 1。

具有独特的软件无线电技术,保证高抗干扰能力和低误码率

基于FSK的调制方式,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干扰的能力。大量应用于高压强干扰的电力系统监控。

可以提供多种产品规格适应于不同的传输距离

在空旷环境,天线安装位置离地面高度大于2米的情况下,DTD433MA可靠传输距离可达300m,DTD433MB可靠传输距离可达1500m,DTD433MC可靠传输距离可达3000m。自动完成智能数据控制,用户无需编制多余的程序

即使是半双工通信,用户也无需编制多余的程序,只要从接口收/发数据即可,其它如空中收/发转换,控制等操作,DTD433M自动完成。

无线数据终端的选择原则

l 直线空旷距离在300米以内可以选择

DTD433MA_S9600

l 直线空旷距离在1000米左右可以选择

DTD433MB_S9600

l 直线空旷距离在2000米左右可以选择

DTD433MC_S9600

三、试验设备及其接线

l 组态软件:组态王6.53

l S7-200型号:CPU224XP CN,1台

l 无线数据终端:DTD433MB_S9600

PC电脑与无线数据终端DTD433M连接RS-232连线电脑RS232串口

DTD433M

DTD433M设置

RXD

DB9-Pin2 Rx

DB9-Pin2 Tx

K1: 1,2,3 OFF

4 ON

K2: 1,2,3,4 OFF

TXD

DB9-Pin3 TX

DB9-Pin3 Rx

GND

DB9-Pin5 GND

DB9-Pin5 GND

S7-200与无线数据终端DTD433M连接RS-485连线S7-200 Port0

DTD433M

DTD433M设置

RS485+ A

DB9-Pin3 B

RS485+ A

K1: 1,2,3 ON

4 OFF

K2: 1,2,3,4 OFF

RS485- B

DB9-Pin8 A

RS485- B

四、实物图片

五、方案附件

l 组态王测试程序

l S7-200测试程序

l 组态软件与西门子PLC的无线MODBUS通信方

案.pdf

六、西门子提供的Modbus设备地址

1. Modbus主设备寻址

Modbus地址通常写作包含数据类型和偏移量的5个字符的数值。第一个字符决定数据类型,最后四个字符在数据类型中选择适当的数值。然后,Modbus主设备指令将地址映射至正确的功能,以便发送到从站。Modbus主设备指令支持下列Modbus地址:

00001至09999是离散输出(线圈)

10001至19999是离散输入(触点)

30001至39999是输入寄存器(通常是模拟量输入)

40001至49999是保持寄存器

所有Modbus地址均以1为基位,表示第一个数据值从地址1开始。有效地址范围将取决于从站。不同的从站将支持不同的数据类型和地址范围。

2. Modbus 从站寻址

Modbus地址通常被写为包含数据类型和偏移量的5个字符的数值。第一个字符决定数据类型,最后四个字符在数据类型中选择适当的数值。然后,Modbus主设备将地址映射至正确的功能。Modbus从站指令支持下列地址:

00001至00128是映射至Q0.0 - Q15.7的离散输出

10001至10128是映射至I0.0 - I15.7的离散输入

30001至30032是映射至AIW0至AIW62的模拟输入寄存器40001至4xxxx是映射至V存储器的保持寄存器。

所有Modbus地址均以1为基位。下表显示映射至S7-200地址的Modbus地址。

3. Modbus地址S7-200

00001 Q0.0

00002 Q0.1

00003 Q0.2

... ...

00127 Q15.6

00128 Q15.7

10001 I0.0

10002 I0.1

10003 I0.2

... ...

10127 I15.6

10128 I15.7

30001 AIW0

30002 AIW2

30003 AIW4

... ...

30032 AIW62

40001 Hold Start

40002 HoldStart+2

40003 HoldStart+4

... ...

4xxxx HoldStart+2 x (xxxx-1)

Modbus从站协议允许您限制Modbus主设备可存取的输入、输出、模拟输入和保持寄存器(V存储器)数量。

MBUS_INIT指令的MaxIQ参数指定Modbus主设备允许存取的离散输入或输出(I或Q)的最大数目。

MBUS_INIT指令的MaxAI参数指定Modbus主设备允许存取的输入寄存器(AIW)的最大数目。

MBUS_INIT指令的MaxHold参数指定Modbus主设备允许存取的保持寄存器(V存储器字)的最大数目。

请参阅MBUS_INIT指令说明,了解有关为Modbus从站设定存储器限制的进一步详情。

七、MODBUS常见问题解答

1. 我的设备支持modbus设备,能否直接与组态王软件连接?

只要设备是标准的modbus 协议设备,即可使用组态王设备列表下的PLC-->莫迪康

-->MODBUSRTU(或者ACSII 码)进行通信。但具体的寄存器地址对照表必须从设备厂家

索取。

2. 我的支持modbus 协议的串口设备,能否与多个上位软件(比如组态王软件和某品

牌触摸屏)同时通讯?

因为modbus 串口协议不支持多主站,所以不能多个软件同时与modbus 设备同时通

信。

3. 在组态王工程中建立多个modbusTCPIPserver 设备定义,分别使用两台客户端对其

访问,只有站点高的那个server 通讯ok,站点低的通讯失败,为什么?

这是因为在组态王软件中只支持建立一个modbusTCPIPserver,当建立多个server

时,组态王客户端则会自动与站点高的server进行通讯,所以会导致站点低的通讯失败。

4. 如何实现组态王数据通过串口或者以太网驱动方式传送到其他组态软件或者应用程

序中?

如果其他组态软件或者应用程序支持modbus 协议,则可以通过组态王提供的

modRTUserver 或者modbusTCPserver 驱动来实现。

5. 组态王与支持Modbus协议的设备进行通讯时,组态王画面上显示的数据不正确常有

哪些原因?

引起数据不正确的原因主要有如下几点:

1)组态王中定义的寄存器地址跟实际设备不一致导致。比如某些使用modbus 协议

通讯的设备的数据地址是从0 开始的,而组态王modbus 协议驱动寄存器地址是从 1 开

始的,所以遇到此种情况时在组态王中定义变量时,寄存器地址要进行加1 处理;

2)数据词典中最大原始值和最大值定义不不当;比如最大原始值和最大值不一样会

导致画面看到的数据和实际设备不一致;

3)组态王读取FLOAT 和LONG 类型的数据时,没有使用提供的SwapF 和SwapL

寄存器来调整FLOAT 型和LONG型数据的字节顺序;4)LONG 或FLOAT 型的双字的数据,没有按照间隔隔地址方式定义;因为modbus

协议所对应的参数地址一般按照字为基本单位进行分地址

排序的。

6. 组态王与西门子200plc自由口协议通过modem 通讯,硬件接线怎样实现?

设备上插标准PPI 电缆,modem9 针口通过一个标准232 交叉线接到PPI 电缆上即

可,232交叉线的modem侧需要 1 4 6 短接,7 和8 短接。

7. 西门子200plc通过modbus协议与组态王通讯时,组态王中定义的寄存器地址与plc

地址是如何对应的?

映射关系如下:

0-Q,1-I,3、4、8、9-V;

3,4,8,9的dd 号与PLC中V寄存器的偏移地址(实际地址-1000)的对应关系:

组态王中(寄存器的dd 号-1)*2=PLC中的V寄存器的偏移地址。组态王中40031

对应PLC:VW1060 (组态王中寄存器4 表示SHORT 型变量)组态王中90640 对应PLC:

VD2278 (组态王中寄存器9 表示FLOAT型变量)。

注:上面的对应关系是针对用户使用的是亚控公司提供了PLC(MODBUS)通讯的初

始化程序,如果用户是自己编程写的初始化程序,则根据实际程序规定的modbus 对应

地址定义变量。

8. 西门子200plc通过modbus协议与组态王通讯,需要注意哪些事项?

需要注意如下几点:

1)需要向PLC中下载对应的初始化程序

(KVmoddbus.mwp),由亚控提供。此程

序默认的plc 通讯端口为port0,地址为2,波特率9600,无校验(地址和波特率可由程

SBR0 中的VB8,SMB30 进行修改);

2)由于PLCModbus 协议程序占用V1000及以前的地址,所以用户在编写逻辑控制

程序中用到的寄存器不能和亚控提供的协议中所占用的V

区地址冲突;

3)西门子S7200PLC 和通过modbus 协议和组态王通讯时,CPU上的开关必须拨在

RUN状态,否则PLC中的modbus 通讯程序没有处于运行状态,组态王和设备通过自由

口协议肯定通讯失败;

9. 西门子200plc通过GPRS链路和组态王通讯,使用哪种协议方式比较好?

推荐使用自由口/modbusRTu协议。

ppi 协议实际上也支持通过GPRS 链路和组态王通讯,但由

于PPI 协议的特殊性,

GPRS方式下通讯效果不是很好,因此不推荐客户使用。

10. 组态王提供的ModbusRTUServer 和ModbusRTU驱动的寄存器是怎样对应的?

ModbusRTUServer 的B寄存器对应ModbusRTU的0 寄存器;

ModbusRTUServer 的R寄存器对应ModbusRTU的4 寄存器。

MODBUS协议解析

MODBUS协议解析 Modbus是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。目前,可以通过下列三种方式实现Modbus通信: 以太网上的TCP/IP; 各种介质(有线:EIA/TIA-232-F、EIA-422、EIA/TIA-485-A;光纤、无线等)上的异步串行传输; Modbus PLUS,一种高速令牌传递网络。 作为中国国家标准的“基于Modbus协议的工业自动化网络规范”在描述Modbus应用协议的基础上,提供了Modbus应用协议在串行链路和TCP/IP上的实现指南。 Modbus 通信线 Modbus数据单元 Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),特定总线或网络上的Modbus协议映射能够在应用数据单元(ADU)上引入一些附加域。启动Modbus事务处理的客户机创建Modbus PDU,其中的功能码向服务器指示将执行哪种操作,功能码后面是含有请求和响应参数的数据域。 通用Modbus帧 当Modbus应用在串行链路上时,Modbus ADU的地址域只含有从站地址,而差错校验码是根据报文内容执行“冗余校验”计算的结果,根据使用的传输模式(RTU或ASCII)采用不同的计算方法。 串行链路上的Modbus帧 当Modbus应用在TCP/IP上时,将使用一种专用报文头——MBAP报文头(Modbus应用协议报文头)来识别Modbus应用数据单元。 TCP/IP上的Modbus帧

Modbus标准功能码 Modbus协议定义了三种功能码: 公共功能码:被确切定义的、唯一的功能码,由Modbus-IDA组织确认、可进行一致性测试且已在MB IETF RFC中归档 用户定义的功能码:用户无需Modbus-IDA组织的任何批准就可以选择和实现的功能码,但是不能保证被选功能码的使用是唯一的 保留功能码:某些公司在传统产品上现行使用的功能码,不作为公共使用。 公共功能码定义如下表所示。 Modbus通信原理 Modbus是一种简单的客户机/服务器型应用协议,其通信遵循以下的过程: 客户端准备请求并向服务器发送请求; 服务器分析并处理客户端的请求,然后向客户端发送结果; 如果出现任何差错,服务器将返回一个异常功能码。 Modbus事务处理 统一的标准 Modbus串行链路、Modbus PLUS和Modbus TCP/IP使用的是一种统一的应用协议,因而使得信息从一个网络传输到另一个网络而不需改变通讯协议成为了可能。 当Modbus在TCP/IP上实施时,用户还可以从IP路由功能中得益,使得分布于世界任何地方的设备之间都可以进行通讯。施耐德电气还提供了全套的网关,用于实现Modbus TCP/IP网络与现有的Modbus PLUS 或Modbus串行链路网络之间的互连。 IANA委员会给施耐德电气公司分配了已为大家熟知的TCP 502端口,以专为Modbus协议保留。由此可见,Modbus协议现在已经成为Internet标准。Modbus和Modbus TCP/IP 也被IEC 61158国际标准承认为一种现场总线,同时它们还是由ITEI管理的中国国家标准。 Modbus拥有著名的TCP端口502 Modbus TCP/IP是唯一个被分配到互联网端口的工业以太网专题">工业以太网协议! 23 -Telnet 远程登录协议 21 -FTP 文件传输协议 161 -SNMP 简单网络管理协议 25 -SMTP 简单邮件传输协议 53 -DNS 域名解析服务

西门子1200与其他PLC组态软件无线串口通讯(自由口)

西门子1200与其他PLC/组态软件无线串口通讯(自由口) 一、控制系统原理 图1:控制系统原理 二、硬件需求 S7-1200 PLC目前有3种类型的CPU: 1)S7-1211C CPU 2)S7-1212C CPU 3)S7-1214C CPU 这三种类型的CPU都可以连接三个串口通信模版

本例中使用的PLC硬件为: 1)PM1207电源(6EP1 332-1SH71) 2)S7-1214C(6ES7 214-1BE30-0XB0) 3)CM1241 RS232(6ES7 241-1AH30-0XB0) 三、软件需求 编程软件 Step7 Basic V10.5(6ES7 822-0AA0-0YA0) 四、组态 我们通过下述的实际操作来介绍如何在Step7 Basic V10.5中组态S7-1214C 和超级终端通信。 点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:

图2:新建S7-1200项目 首先需要选择“Create new project”选项,然后在“Project name:”里输入PTP;在“Path:”修改项目的存储路径为“C:”;点击“Create”,这样就创 建了一个文件PTP的新项目。创建后的窗口如下图所示: 点击门户视图左下角的“Project View”切换到项目视图下,如下图:

图4:切换到项目视图 打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输 入设备名“PLC_1”并在设备列表里选择CPU的类型。选择后如下图:

西门子S7200与VLT2800 Modbus RTU通讯调试说明

Modbus Modbus , Modbus Modbus Modbus 1 Modbus Modbus RS-232C Modem Modbus Modbus 2 Modbus 3 1 03 2 ASCII RTU Modbus Modbus ASCII : 1 ... n LRC LRC RTU

1 ... n CRC CRC ASCII RTU Modbus MAP Modbus Plus Modbus 1 ASCII Modbus ASCII 8Bit ASCII 1 ASCII 0...9 A...F ASCII 1 7 1 1 2 Bit LRC( ) 2 RTU Modbus RTU 8Bit 4Bit ASCII 8 0...9 A...F 8 1 8 1 1 2 Bit CRC( ) Modbus ASCII RTU Modbus RTU 3.5 0...9,A...F 3.5

1.5 3.5 CRC CRC T1-T2-T3-T4 8Bit 8Bit n 8Bit 16Bit T1-T2-T3-T4 1 ASCII 8Bit RTU 0...247 ( ) 1 (247) 0 Modbus 2 ASCII 8Bits RTU 1 (255) ( ) 1 0 0 0 0 0 0 1 1 03H 1 0 0 0 0 0 1 1 83H 3 00...FF ASCII RTU 03 10 0 0B 4 Modbus ASCII ASCII ASCII LRC LRC RTU

RTU 16Bits ( 8 ) CRC CRC Modbus LRC CRC RTU CRC CRC CRC 16 CRC CRC CRC 1 16 8 8Bit CRC CRC 8 OR 0 LSB LSB 1 LSB 0 8 8 8 CRC CRC 1.2004 6 15 VLT6000 2.6X VLT2800 2.8X Modbus RTU 175Z3362 Modbus RTU VLT6000 VLT2800 Modbus RTU RS485 +/- 68/69 LCP 5XX 9600Baud, 19200Baud. 2.DANFOSS ANFOSS ANFOSS SIMATIC S7-200 PLC S7-200 PLC FreeportMode DANFOSS DANFOSS VLT2800 MODBUS RTU .S7

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

MODBUS协议(功能码及报文解析)要点

MODBUS协议 Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。M odbus比其他通信协议使用的更广泛的主要原因有: 公开发表并且无版税要求 相对容易的工业网络部署 对供应商来说,修改移动原生的位或字节没有很多限制 Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。 Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。 大多数Modbus设备通信通过串口EIA-485物理层进行[1]。 对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通讯(serial communication)方式。RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。

对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。 对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。 Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。连接Modbus Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PCMCIA总线的板卡。 Modbus协议是一个 master/slave 架构的协议。有一个节点是master 节点,其他使用Modbus协议参与通信的节点是 slave 节点。每一个 slave 设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。 一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址 0例外,指定地址 0 的指令是广播指令,所有收到指令的设备都会执行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变

MODBUS协议(功能码及报文解析)要点

Modbus是一种串行通信协议,是于1979年,为使用可编程逻辑控制器(PLC)而发表的。事实上,它已经成为工业领域通信协议,并且现在是工业电子设备之间相当常用的连接方式。Modbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求 相对容易的工业网络部署 对供应商来说,修改移动原生的位或字节没有很多限制 Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remoteterminalunit(RTU)。 Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。 大多数Modbus设备通信通过串口物理层进行。 对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。ModbusRTU是一种紧凑的,采用二进制表示数据的方式,ModbusASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通讯(serialcommunication)方式。RTU格式后续的命令/数据带有的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。 对于通过(例如)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和的计算。 对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。 Modbus有一个扩展版本ModbusPlus(Modbus+或者MB+),不过此协定是Modicon 专有的,和Modbus不同。它需要一个专门的协处理器来处理类似的高速令牌旋转。

Modbus RTU通讯协议

要实现Modbus RTU通信, 一、需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 Modbus RTU从站指令库只支持CPU上的通信0口(Port0) 基本步骤: 1. 检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。 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,并指定相应参数。 关于参数的详细说明,可在子程序的局部变量表中找到; 调用Modbus RTU通信指令库图中参数意义如下: a. 模式选择:启动/停止Modbus,1=启动;0=停止 b. 从站地址:Modbus从站地址,取值1~247 c. 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200 d. 奇偶校验:0=无校验;1=奇校验;2=偶校验 e. 延时:附加字符间延时,缺省值为0 f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128, 缺省值为128 g. 最大AI字数:参与通信的最大AI通道数,可为16或32 h. 最大保持寄存器区:参与通信的V存储区字(VW) i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式) j. 初始化完成标志:成功初始化后置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所示。

用西门子CP341实现Modbus RTU通讯

用西门子CP341实现Modbus RTU通讯 1 概述 CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接 4 CP341驱动配置 在您的计算机上首先安装STEP7 5.x软件和CP34x模板所带的软件驱动程序.模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件 组态界面下可以打开)、用于串行通讯的FB程序块。当系统上电,CP34x模板初始化完成后,CP34x上的sF灯点亮: 在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的硬件地址 以便在编程序时用到。双击CP341模板属性窗口中的protocol 协议图标进行协议参数设置,这里我们使用默认值:96oo bit,s, 8 data bits, 1 stop bit,even parity。对的硬件组态存盘编译,下载硬件组态.如果此时sF灯亮.请将通讯电缆与另一个通讯伙伴进行连接后.SF灯熄灭,说明硬件组态正确。 5 程序编写 (1)CP341发送模块的设计而发送程序主要是通过调用功能块FB8来实现,FB8 是基于上升沿触发工作的.来一个上升沿FB8工作一次向总线上发 送一个请求数据包,所以在程序中一定要设计一个触发代码段,来不断的使REQ:=M50.0循环往复的置“1”置“0”,这样FB8就可以正常运行了。 在设计程序时一定要注意FB8的参数SF:=‘S’及R_TYP:=‘X’的值都是大写否则程序调试不成功。FB8需要一个背景数据块.这一背景数据块一般由系统自动生成.以上程序中为DB3;对于通过CP34 1的Modbus Master驱动通讯的发送模块需要设计发送数据块DB块.用来对主站发送参数进行设置和初始化。 Modbus能够实现的功能代码共有10个.分别针对不同的寄存器读写功能设置.功能代码Initial value:B#16#4的功能是读从站的输出数据寄存器 整数型、状态字或浮点型数据:寄存器的起始地址Initial value:W#16#0是功能代码规定的寄存器的起始地址;读取寄存器的数目Initial value:4的意义是从起始地址开始总共读取4个寄存器。 (2)CP341接收程序的设计 接收程序是调用FB7来实现的,由于CP341可以处理接收程序的细节部分.因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。接 收程序同样也需要设计背景数据块本例中为Db44块和接收数据块本例中为DB5块。 (3)装载设计好的发送接收程序FC 1与FC2。 6 参数化远程从站RTU . 以上介绍的是Modbus主站的应用与程序设计,没有对远程终端RTU从站进行介绍.其实在进行程序调试时必须对从站进行一些参数设置使其参 数与主站要求的一致,包括协议类型、从站地址、寄偶校验、传输超时等,否则

西门子以太网通讯设置

西门子以太网通讯 一、功能: S7-200做客户机(主站),S7-300做服务器(服务器) 二、硬件配置: 1.CP243-1 2.CPU224 3.CPU314 4.CP343-1 三、设置步骤: 第一步打开S7-200编程软件MicroWIN,在工具栏中选择以太网向导

第二步读取CP243-1【以太网模块】。注意:PC与S7-200连接正常才能读取到

第三步选择以太网模块 第四步输入【CP243-1 】的IP地址192.168.0.50 注意IP设置与S7-300侧要在同一个网段

第五步配置连接数【最多连接8路】以太网模块要占用地址,建议放在最后插槽连接数:根据实际的连接数配置 第六步

1.选择客户机连接【s7-200为客户机】 2.【03.02】----03:单边通信02: S7-300CPU模块的插槽号【10:00】----1:固定0:连接号00:s7-200CPU模块的位置 3. 输入CP343-1的IP地址【在S7-300的硬件组态中设置】 4. 单击“数据传输”,进入配置窗口。 注意:连接号一定要记住,在编程的时候会应用到

第七步 1.选择向服务器读取数据 2.选择读取数据的大小【最大212个字节】 3.数据的对应关系。【把S7-300“DB10.DBB0开始的10个字节”的数据读取到本地“VB0开始的10个字节”中】 4.配置完后点击【新转输】 注意:传输号要记住,在编程中要应用到 第八步 1. 选择向服务器写入数据 2. 选择写入数据的大小【最大212个字节】 3. 数据的对应关系。【把本地“VB10开始的10个字节”的数据写入到S7-300“DB10.DBB10开始的10个字节”中】 4.配置完后点击确认 注意:传输号要记住,在编程中要应用到

(完整版)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(循环冗长检测)

西门子S7200与变频器MODBUS通讯实例详解

西门子S7200与变频器MODBUS通讯实例详解 西门子S7200PLC简介 西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。一致的模块化设计促进了低性能定制产品的创造和可扩展性的解决方案。来自西门子的S7 - 200微型PLC可以被当作独立的微型PLC解决方案或与其他控制器相结合使用。 Modbus通讯协议简介 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。 ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。 ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。 1 MODBUS RTU协议在S7-200中的应用原理 1.1 MODBUS RTU协议与S7-200相互关系简介 S7-200 CPU上的通讯口Port0可以支持MODBUS RTU协议,成为MODBUS RTU从站。此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。 想在S7-200 CPU与其他支持MODBUS RTU的设备使用MODBUS RTU协议通讯,需要由有S7-200 CPU做MODBUS主站。S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。 2 从站指令的用法: S7-200控制系统应用中,MODBUS RTU从站指令库只支持CPU上的通讯0口(Port0)。要

很好的威纶通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。

MODBUSRTU协议解析

M o d b u s R T U协议 2018.05.08 Big Q 功能码:01 02 03 04 05 06 15 16 功能码:01 读取线圈状态 读取从站为1 起始地址为0 数量为10 主站发送报文: 01 01 00 00 00 0a bc 0d 01:从站地址 Type:Byte 01:功能码; Type:Byte 00 00 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1) 00 0a : 读取总共的线圈个数,10个;Type:Word bc 0d: CRC校验;Type:Word 从站返回报文: 01 01 02 07 00 bb cc 01:从站地址 Type:Byte 01:功能码 Type:Byte 02:返回字节个数(每读8个BIT线圈为一个字节BYTE)Type:Byte 07 00 :返回线圈状态,读取10个线圈状态,用两个字节存储(00000111,00000000) Type:Byte bb cc:发送CRC校验码 Type:Word 如下图

功能码:02 读取输入状态 读取从站为1 起始地址为10 数量为10 主站发送报文: 01 02 00 09 00 0a 28 0f 01:从站地址 Type:Byte 02:功能码; Type:Byte 00 00 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1) 00 0a : 读取总共的输入个数,10个;Type:Word 28 0f: CRC校验;Type:Word 从站返回报文: 01 02 02 00 00 b9 b8 01:从站地址 Type:Byte 02:功能码 Type:Byte 02:返回字节个数(每读8个BIT线圈为一个字节BYTE)Type:Byte 00 00 :返回线圈状态,读取10个线圈状态,用两个字节存储(00000000,00000000) Type:Byte b9 b8:发送CRC校验码 Type:Word 如下图

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)(一个整型数据)

S7-200的MODBUS RTU主站协议库使用方法

S7-200 MODBUS-RTU VLT . MODBUS MODBUS CTROL MODBUS MGS CRC Micro/WIN V4.0 SP5 Modbus RTU

1. Micro/WIN V4.0 SP5 1. Modbus RTU Port 0 Port 1 2. Modbus RTU 3. Modbus RTU CPU CPU 2.00 2.01 6ES721* ***23-0BA* 1.22 1.22 S7-200 CPU Modbus RTU Modbus RTU I/O Modbus RTU 1. 2. Modubs RTU .Modbus RTU 1. Modbus RTU SM0.0 MBUS_CTRL 2. SM0.0 Modbus RTU : a. EN SM0.0 b. Mode 1 Modbus 0 PPI

c. Baud 1200 2400 4800 9600 19200 38400 57600 115200 d. Parity 1 2 e. Timeout 1000 1 1 - 32767 f. Done 1 MBUS_MSG g. Error Done 1 1 2 3 2. Modbus RTU MBUS_MSG Modbus 3. Modbus RTU : a. EN MBUS_MSG MBUS_MSG MBUS_MSG Done b. First c. Slave 1 - 247 d. RW 0 1 1. 2. e. Addr 00001 0xxxx - 10001 1xxxx -

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

西门子S7_200PLC与组态王的无线通信Modbus方案

西门子S7_200PLC与组态王的无线通信Modbus方案 西门子S7_200PLC与组态王的无线通信Modbus方案 在这里介绍一种PLC的MODBUS无线组态通信的实现方法。本方案可以作为西门子PLC与组态王通信的实例。 在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC需要与总控中心的组态王软件进行远程通信,通常情况是采用有线RS485总线敷设电缆,通过MODBUS协议完成此功能。如果现场布线不方便的话,也可以采用无线方式进行通信。本方案中采用了专门用于无线通信的智能数据终端DTD433M。 l 有线MODBUS网络:S7-200S7-200STEP 7S7-200PG/PC9.6kbps,8,N,1人机界面 组态软件 l S7-200STEP 7PG/PCRS485 9.6 kbps人机界面 组态软件DTD433DTD433RS485 9.6 kbpsS7-200RS485 9.6 kbpsDTD433无线MODBUS网络: 在实际系统中,人机界面与PLC不在一起,中心计算机一般放置在控制室,而PLC安装在现场车间,二者之间距离往往从几十米到几千米。如果布线的话,需要挖沟施工,比较麻

烦,这种情况下比较适合采用无线通信方式。 一、PLC与组态王的Modbus通信 1. 下载S7_200程序 需要向PLC中下载对应的初始化程序(KVmoddbus.mwp),由亚控公司提供。此程序默认的PLC通讯端口为port0,地址为2,波特率9600,无校验(地址和波特率可由程SBR0 中的VB8,SMB30 进行修改); 2.设备选择 选择以下两个设备都可以。 3. 演示程序界面 打开组态王演示工程文件 二、满足西门子PLC的MODBUS通信协议的专用无线数据终端 为了满足西门子PLC和组态王的MODBUS通信协议,对无线数据终端具有以下要求: 适合于RS232/RS485串口连接,可以直接代替有线的RS485网 DTD433M提供标准的RS232/RS485口。DTD433M接口波

西门子CP441-2实现Modbus RTU通讯

西门子CP441-2实现Modbus RTU通讯 1 概述 CP441模块是西门子S7—300,400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。USS站等。CP441模块可以同时与多台串行通讯设备进行通讯。如同时连接多个变频器、连接多个智能仪表等。如果采用RS422/485 modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息。供CP441模块所连接的从站设备鉴别数据包是发给哪个站的。以及该数据包是对那个数据区进行的读或写的功能。 Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程。如回应来自其它设备的请求,以及怎样侦测错误并记录等。它制定了消息域格式和内容的公共格式。MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换,Modbus可支持247个之多的远程从属控制器。但实际所支持的从机数要由所用通信设备决定。采用这个系统。各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。CP441插人MODBUS主站Dongle(狗)或插入从站Dongle,就可以作为MODBUS主站。或者作为MODBUS 从站。在ModBus系统中有两种传输模式编码可选择,一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备),由这两种模式定义这两种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定。每个ModBus系统只能使用一种模式。不允许两种模式混用。字串9 2 RTU帧结构 使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在相同的网络波特率下采用多个的字符时间,这是最容易实现的。传输的第一个域是设备地址,可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到后,每个设备都进行解码以判断是否发往自己的,在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束.一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设

相关主题
文本预览
相关文档 最新文档