以PLC为通信主站的Modbus控制网络的设计与实现

合集下载

PLC的Modbus通信

PLC的Modbus通信
写命令同样存在地址不同的情况。
第二,就是要读取的数据量是以字为单位而不是以字节为单位。
3.3 I/O
在这次设计中一共用到了5个输入,3个输出,具体分配如表7
表7 I/O分配表
I/O名称
作用
I/O类型
I0.0
复位按钮
输入
I0.1
发送步进电机阶段1控制命令
输入
I0.2
发送步进电机阶段2控制命令
输入
I0.3
数据量H
所读取数据的个数以两个字节表示(注:此处说的数据量以字为单位)
数据量L
CRC H
CRC校验码在数据帧中以两个字节表示,主要用于检验数据传输过程中是否出错
CRC L
例:
需要读取2号站从第4个寄存器开始的3个寄存器,MODBUS主站发送的数据帧为:
02 03 00 04 00 03 44 39
从站在接收到主站的读命令以后,会发送一个返回命令帧,返回的命令帧格式如表3。
Done:指令完成时该位置1。
Error:当指令执行出现错误时,在该寄存器处显示出错误号。
例:
1、需要读取2号站地址为0004开始的3个寄存器里面的值到VB200地址开始的寄存器里,设置如图4。
2、需要将VB100地址开始的4个寄存器里面的值写到地址为004F开始的寄存器里面,设置如图5。
图4读数据设置图6写数据设置
2:功能码相同
3:两个数据帧的地址HoldStart相同
4:两个数据帧的数据量DataNum相同
如果从站在接收到数据以后,认为接收到的主站发送过来的数据是错误的,会返回一个异常帧给主站,告诉主站,从站接收到的数据是错误的。异常帧的数据格式如表10,命令帧不再具体说明。
表10异常帧格式

基于Modbus协议的PLC通信控制模块的实现

基于Modbus协议的PLC通信控制模块的实现

据 的字符 和 ( 弃进位 位 ) 舍 的补 码+ 。其 主要优 点在 于 : 1 字符 发
送 的 时 间 间 隔 较 短 ( 为 I) 不 易 产 生 错 码 。 约 s。 且
R U 模 式信 息 帧 中 的8位 数据 包 括 两个 4位 十六 进 制 字 T 符 , 对 A C I 式, T 相 S I模 R U模式 表达 相 同信 息需 要 较 少 的位 数 ,
文 献标识 码 : A
文 章 编 号 :6 2 7 0 (0 8 1 - 14 0 17— 8020 )10 1—2
盖从 从机 地址 到数据 的信 息部 分 。 验和等 于所 有参 与校验 数 校
0 引 言
在 工业 控 制 领 域 中。 d u 协 议 是 应 用 于控 制 器 上 的 一 Mo b s 种通 用语 言 。 过此 协议 , 制器 相互 之间 、 通 控 控制 器经 由 网络 和 其它 设备 之 问都 可 以通信 。许 多 工业 设备 ( 包括 P C、 L 变频 器 、 触摸 屏 、 能仪表 等 )都 使用 Mo b s 智 , d u 协议 作 为它们之 间 的通信 标准 。 该协 议规 定 : 网络 中 只允 许存 在一 个 主站 。 其他 设备均 为 从站 。P C L 在工业 自动化 控制 领域 中 占有 很大 的 比例 , 本文 就 针 对 西 门子 S — 0 系列 的P c 该 协 议 下通 信 控 制 模块 的设 720 L在
支 持 两 种 传 输 模 式 : 国 标 准 信 息 交 换 码 ( S I )模 式 和 远 美 A CI 码
程 终 端单 元 ( T 模 式 。用 户可 根 据需 要 选 择适 当 的传输 模 R U) 式, 但在 同一 个Mo b s d u 网络 上必 须采 用相 同 的传 输模 式 。

MODBUS通讯协议及PLC编程通讯实例

MODBUS通讯协议及PLC编程通讯实例

MODBUS通讯协议及编程ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU 通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。

下面就ModBu s RTU协议简要介绍如下:一、通讯协议(一)、通讯传送方式:通讯传送分为独立的信息头,和发送的编码数据。

以下的通讯传送方式定义也与MO DBUS RTU通讯规约相兼容:初始结构= ≥4字节的时间地址码 = 1 字节功能码 = 1 字节数据区 = N 字节错误校检 = 16位CRC码结束结构= ≥4字节的时间地址码:地址码为通讯传送的第一个字节。

这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。

并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。

主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码:通讯传送的第二个字节。

ModBus通讯规约定义功能号为1到127。

本仪表只利用其中的一部分功能码。

作为主机请求发送,通过功能码告诉从机执行什么动作。

作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。

如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。

数据区:数据区是根据不同的功能码而不同。

数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。

CRC码:二字节的错误检测码。

(二)、通讯规约:当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。

返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。

如果出错就不发送任何信息。

1.信息帧结构地址码:地址码是信息帧的第一字节(8位),从0到255。

这个字节表明由用户设置地址的从机将接收由主机发送来的信息。

MODBUS通讯plc编程方法

MODBUS通讯plc编程方法

MODBUS通讯协议及编程【一】一、Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。

它已经成为一通用工业标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。

它制定了消息域格局和内容的公共格式。

当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。

如果需要回应,控制器将生成反馈信息并用Modbus协议发出。

在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。

这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

1、在Modbus网络上转输标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。

控制器能直接或经由Modem组网。

控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。

其它设备(从设备)根据主设备查询提供的数据作出相应反应。

典型的主设备:主机和可编程仪表。

典型的从设备:可编程控制器。

主设备可单独和从设备通信,也能以广播方式和所有从设备通信。

如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。

Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。

从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。

如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。

2、在其它类型网络上转输在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。

4 s7 1200做modbus通信

4 s7 1200做modbus通信

s7 1200做modbus通信实验设备:s7 1200PLC一台;cm1241 通信卡一块;modbus主站设备一台(此实验使用PC 端modbuscan 32模拟主站)实验过程:一、硬件组态及设置;硬件组态为s7 1200cpu和cm1241通信卡,如下图所示:cm 1241要设置的为端口组态,具体设置需根据现场设备而定,此次试验采用9600 8n1的通信方式,接线采用485接线。

S7 1200 需要设置IP和时钟存储器设置IP:设置时钟存储器:二、做从站时软件编写:1)、创建通信数据块:创建数据块后,进入属性去掉“优化的块访问”。

然后在数据块中创建存储区域。

2)、调用“MB_COMM_LOAD”初始化通讯端口:各引脚参数如下图:“MB_COMM_LOAD”只需要调用一次,所以可以将其放置于OB100,此处使用PLC时钟存储器的FristScan来使之只在第一个周期调用。

3)、调用“MB_SLAVE”:“MB_SLAVE”上个引脚说明如下图所示:Modbus内部点位如下图所示:三、做主站时软件编写:S7 1200做主站时硬件配置和从站时相比无需更改,仅需在软件部分做修改即可。

1)、创建通信数据块:添加modbusMaster数据区域2)、调用“MB_COMM_LOAD”初始化通讯端口:此处配置与做从站时配置一致,仅需注意MB_DB管脚处要与使用的背景数据块对应。

3)、调用MB_MASTER:MB_MASTER各引脚说明如下图所示:Modbus各个模式及通信地址如下图所示:四、实验测试:1)、s7 1200从站时通信测试:将上面的2个程序段下载入PLC就可以进行modbus通信测试了;测试结果如下:功能码01:功能码02:功能码04:PLC内数据:可见通信正常,所有数据读写也正常。

2)、s7 1200做主站时通信测试:首先使用读取模式;PC端使用ModbusSlave模拟从站,首先把所有q点置1;PLC内部数据如下图:只留第一个为1;PLC内部数据:接着测试读取寄存器,此处随意修改几个数值:PLC内部读取的数值如下图:最后测试s7 1200发送数据给从站;首先修改PLC里的数据:使用Modbus Slave 读取的数据如下图所示:从上面试验可以看出s7 1200 做主站时各功能码下读取数据正常,写入数据也正常,所有功能均正常工作。

实例讲解PLC实现modbus通讯

实例讲解PLC实现modbus通讯

实例讲解PLC实现modbus通讯1. 硬件设置程序中的 Modbus 通讯是在两个 S7-200 CPU 的 0 号通讯口间进行的(最好每个CPU 都有两个通讯口)。

在主站侧也可以用相应库文件'MBUS_CTRL_P1' 和'MBUS_MSG_P1'通过1号通讯口通信。

通讯口1 用 Micro/WIN 与 PG 或 PC 建立连接,两个 CPU 的通讯口 0 通过Profibus 缆进行连接(电缆的针脚连接为3,3,8,8 -> 见图 01)。

另外,需要确定逻辑地M相连。

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')。

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

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

基于PLC的MODBUS通信协议的实现

基于PLC的MODBUS通信协议的实现

式进行数据通讯 ,前者 ( Ma s t e r 端) 发 出信息的查询请 求 ,再 由后者 ( S l a v e 端 )接收信息并满足前者发 出的
消息请求。也可 以由Ma s t e r 端直接 向S l a v e 端发送消息以 修改相关数据信息 ,以达到相互读写功能。
问题进行注意 :( 1 1 首先要对帧的开始与结束进行正确的
MO DB U S 协议是一种 能够 为工业控制体系进行正 常通信 的协议 ,其 由MO D I C O N 公 司为解决 自身控制器 问题 而设计 的。主要是根据Ma s t e r / S l a v e 的数据通讯方
区;0 5 写单个输出线圈状态 ;0 6 写单个保持寄存器值 ;
0 7 强制多轴出线圈状态 ;0 8 强制多保持寄存器 。以上 的 全部功能均可以由S 7 . 2 0 0 的开发者实现 ,不过需要对几个
MO DB US 协议如果想要在 S 7 . 2 0 0 中实 现 ,就 必 须
要在S 7 . 2 0 0 和Mo d i e o n 公 司的P L C 性能够支持的s 7 — 2 0 0 的前提下进行 ,但s 7 2 0 0 并不能够被MOD B US 协议里
的2 4 种编码全应用 ,包括现场实际应用的情况和因素。
始系统主程序时务必要有C R C 表格的生成 ,以减少计算
e R e 的时间。( 3 ) 尽管能够实现MO D B US 驱动 ( I F i x )所
停I } n
1 B l t
越 始似
I Bi t
数槲化

投骑 似
I B i t
提供 的六项功能 ,但是偶尔会有失误的出现 ,甚至会造

与西门子PLC实现Modbus-RTU通信实例

与西门子PLC实现Modbus-RTU通信实例

与西门⼦PLC实现Modbus-RTU通信实例⼀、准备⼯具及材料1.台式电脑⼀台,笔记本电脑⼀台;2.西门⼦200smart PLC⼀台,3.多功能电表DW9L-RC38或DS9L或DS7L⼀台,温控表TE系列⼀台,4.仪表说明书及通讯协议,5.9针接⼝通讯线⼀根,6.USB转RS485转换器⼀台,7.电源线,⽹线、⽹络交换机等。

⼆、软件安装软件名称:STEP 7-MicroWIN SMART,可从西门⼦⽹站下载。

三、梯形图编程1.主要编程思路PLC使⽤⾃带的RS485接⼝与仪表进⾏通信连接,PLC作为主站,仪表为从站,使⽤标准Modbus-RTU通讯协议。

调⽤编程软件⾃带的Modbus协议库,实现与仪表的数据通信。

2.MBUS_CTRL 和 MBUS_MSG 指令介绍本⽰例使⽤单个主站及 MBUS_CTRL 和 MBUS_MSG 指令。

同⼀理念对使⽤第⼆个主站及 MB_CTRL2 和 MB_MSG2 指令的⽰例同样适⽤。

3.电⼒仪表通信协议:4.梯形图编程(1)设置PLC型号(2)设置库存储器的地址分配(系统已分配VB0~VB285⽤于modbus通信使⽤,我们就从VB286开始)(3)编辑符号表(4)编辑状态图表(5)编制第⼀、⼆段:置位标志位及通讯初始化:波特率Baud=9600,Parity=0⽆校验,Port=0集成CPU内RS485⼝,Timeout从站响应超时50ms。

Done初始化完成返回"TURE",Error输出错误结果。

(6)程序3-4:当MBUS_CTRL初始化完成后,M0.0 从关闭变为接通时,延时T33=10mS时间后,置位第⼀条 MBUS_MSG 指令的启⽤标志 (M2.0)=1。

(7)程序5:读第⼀台从机设备,地址1,型号DW9L或DS9L或DS7L。

当第⼀个启⽤标志 (M2.0) 接通后,调⽤ MBUS_MSG 指令。

只需为启⽤该指令的第⼀次扫描设置 First 参数。

基于PLC的Modbus通信协议的实现

基于PLC的Modbus通信协议的实现

基于PLC的Modbus通信协议的实现————————————————————————————————作者: ————————————————————————————————日期:摘要:介绍了三菱FX2N系列PLC 在无协议通信方式下与基于DS18b20 型数字温度传感器的STA-D 温度采集模块以Modbus 协议通信,实现即时读取温度, 并给出了相关程序。

随着3C 技术迅速发展, 网络集成信息自动化正迅速应用到现场设备、控制中, 现场总线控制系统正逐步取代传统的集散控制系统,其中Modbus现场总线协议在基于PLC 的控制系统中得到了越来越广泛的应用. 在本系统中,以PLC为主机、温度采集模块为从机, 完成对生产过程的自动控制、工业流程及工艺参数的显示、修改, 根据PLC 的无协议通信功能, 用Modbus现场总线协议实现主机与从机的通讯。

本文基于某监控系统的设计,实现了三菱FX2N 系列PLC在无协议通信方式下与DS18b20型数字温度传感器的采集模块以Mo dbus 协议通信,在电炉熔化工作过程中,对电炉、电容、冷却水等100多点的温度实现巡检。

1系统硬件组成温度监控部分系统的硬件由DS18b20型数字温度传感器、采集模块、FX2N 系列PLC、FX2N-485-BD、HITECH 触摸屏组成,其结构如图1 所示。

图1 系统硬件组成DS18b20 是世界上首个支持单线总线接口( 1w ire bus interface)的数字化温度传感器, 单总线接口便于构建分布式的温度测控网络,数字化的输出提高了信号传输的可靠性,而且使外围电路大为简化。

DS18b20 具有很高的适应性和性价比, 其测温范围为-55~125 ℃, 测温精度为±0. 5℃, 测温距离最大为200m , 测温方式使用3线制,本系统使用的传感器排序方式为指定排序。

DS18b20 内部主要有3 个数字部件: 1个温度传感器、1个64 位的激光刻蚀ROM、9 字节高速暂存器ScratchpadRAM和3字节EERAM. ROM 上64 位数据是传感器的序列号。

S7-200PLC之间进行Modbus通讯实验

S7-200PLC之间进行Modbus通讯实验

1、硬件组态:S7-200PLC CPU 224XP、S7-200PLC CPU 226、维控触屏LEVI 777T、S7-200PLC之间通讯用RS485通讯电缆、S7-200PLC与维控触屏通讯用RS485通讯电缆、编程用USB/PPI电缆。

主从站设定:CPU 224XP主站,CPU 226为从站。

2、通讯端口及设定:主站CPU 224XP PORT0用于Modbus通讯、PORT1用于连接编程电缆。

从站CPU 226 PORT0用于Modbus通讯、PORT1用于连接维控触摸屏COM1(PPI 协议)。

各端子对应接线如下图。

3、实验内容:①主站读从站输入点信号、V存贮区变量;②主站控制从站输出点、写入从站整数变量及浮点数变量并在触摸屏(与从站相连)上显示;③从站读取主站发送数据并处理。

4、CPU226从站通讯初始化编程如下所示。

从站地址规定为6,端口PORT0通讯波特率9600,无校验、无延迟,允许存取所有的I、Q(MaxIQ=128)、和AI(MaxAI=32)数值,保持寄存器的存贮空间为VB3000开始的1000个字。

5、为从站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。

6、在维控触屏中下载用于监控Modbus通讯结果的画面程序,如下图。

其中包括从站本机输入点I0.0~I0.7的状态、输出点Q0.0~Q0.7(受主上控制),以及从站Modbus通讯保持寄存器VB3000~VB3013内容、整数VW3000、浮点数VD3000和VD3008内容等。

7、准备好主站通讯程序。

为主站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。

程序如下所示(上电初始化程序实际应用时要放在网络1),其中主站输入点I1.0用于触发数据传送,VB3000用于存贮读从站输入点数据,VB5000用于存贮要写入从站控制输出点的数据,VB6000用于存贮要写入从站V存贮区的数据,VB7000用于存贮由从站读取的V存贮区数据(用于验证写从站结果)。

基于Modbus协议的PLC通信控制模块的实现1

基于Modbus协议的PLC通信控制模块的实现1

作者简介:邓卫平(1983~),男,湖北荆门人,中国地质大学(武汉)机械与电子信息学院硕士研究生,研究方向为通信与信息系统。

基于Modbus 协议的PLC 通信控制模块的实现邓卫平(中国地质大学机械与电子信息学院,湖北武汉430074)摘要:Modbus 协议是应用于电子控制器的一种通用协议。

该协议已经成为我国工业自动化网络协议规范的国家标准之一。

介绍了Modbus 通信协议的基本特点,对在Modbus 协议下PLC 的通信控制系统实现作了详细阐述。

关键词:Modbus 协议;PLC ;通信中图分类号:TP393.09文献标识码:A文章编号:1672-7800(2008)11-0114-020引言在工业控制领域中,Modbus 协议是应用于控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络和其它设备之间都可以通信。

许多工业设备(包括PLC 、变频器、触摸屏、智能仪表等),都使用Modbus 协议作为它们之间的通信标准。

该协议规定:网络中只允许存在一个主站,其他设备均为从站。

PLC 在工业自动化控制领域中占有很大的比例,本文就针对西门子S7-200系列的PLC 在该协议下通信控制模块的设计作详细的介绍。

1协议基本原理1.1协议概述Modbus 协议的通讯采用应答方式,由主机发起请求,从机执行请求并且应答。

在R485等允许多个站点的网络中,至多只能有一个从站响应主站的请求。

基于Modbus 协议的通信通常支持两种传输模式:美国标准信息交换码(ASCII 码)模式和远程终端单元(RTU )模式。

用户可根据需要选择适当的传输模式,但在同一个Modbus 网络上必须采用相同的传输模式。

1.1.1ASCII 模式当控制器在Modbus 网络上以ASCII 模式通信时,ASCII 代码系统采用十六进制ASCII 字符,每字节包含1个起始位、7个数据位(最小的有效位开始依次发送)、1个奇偶校验位(无校验则无此位)、1个停止位(有校验时)或2个停止位(无校验时)。

PLC通信之--ET200S做主站的modbus RTU通信

PLC通信之--ET200S做主站的modbus RTU通信

三、编写通信程序
• •
2、调用发送接收功能块 进入主程序OB1,从左侧“Libraries>ET200sSi->ET200S Serial Interface”(需 要安装ET200S串口软件,下载链接详见 第4.3章节),调用发送功能块S_SEND (FB3)和接收功能块S_RCV(FB2)。 S_SEND的背景数据块为DB1,S_RCV的 背景数据块为DB2。
ET200S的发送功能块FB3 S_SEND的参数设置
ET200S的接收功能块FB2 S_RCV的参数设置
四、设备连接
• 1、以RS485的方式接线为例说明,ET200S 模块பைடு நூலகம்照RS485的接线方式
连接到电脑的RS232口,连接示意图如下。
五、通信测试
• 前面使用Step7 V5.5软件已经将通信
二、组态和配置
• 7、硬件组态配置
在线分配设备名称及分配结果
二、组态和配置
• 8、组态结果查看 • 可以点中ET200S站点图标,然后选
择菜单PLC中,点击“Ethernet>Verify Device Name”来查看组态的 设备名称是否正确,绿色的√表示正 确。
三、编写通信程序
• •
1、新建发送接收功能块 创建发送数据块DB10和接收数据块 DB11,发送数据块的名称为Send,接收 数据块的名称为Rcv;如下图所示,发送 数据块中新建几个变量,从站地址为2, 功能码为3,起始地址为0,读4个寄存器 数据,具体功能码F03 的使用,参见手 册“Simatic ET200S 串行接口模块” 3.5 章节的说明,如下图所示,接收数据块 中新建1个数据类型Array的变量,数组 元素的数据类型为Byte,数量为101。

西门子300400PLC与组态王实现ModbusTCP通信配置案例

西门子300400PLC与组态王实现ModbusTCP通信配置案例

西门子300400PLC与组态王实现ModbusTCP通信配置案例
西门子300/400PLC用兴达易控PLC转以太网模块CHNet-S7300MD实现以太网通信
1.新建工程并打开工程,右击“IOServer应用组”,选择“添加新 IOServer 应用组”。


2. 在弹出的对话框中,填入“应用名称”,点击“确定”。

3. 选择“设备”,在右边空白区域,点击鼠标右键,选择“新建”。

4.在“设备名称”处输入一个名称,点击“下一步”。

5. “采集驱动”选择“S7_TCP”;“链路类型”选择“以太网”,点击“下一步”。

6.“链路逻辑名”默认即可,点击“下一步”。

7.“设备系列”选择“S7-300(TCP)”,“设备地址”的格式为:BCNet-S7MPI 的 IP 地址:0:2,这里BCNet-S7MPI 的 IP 地址为192.168.1.188,点击“下一步”。

8. 其他参数默认,直至完成。

PLC的MODBUS通信实例

PLC的MODBUS通信实例

PLC的MODBUS通信实例随着工业时代的发展,工业自动化控制已进入网络时代,工业控制器连网也为网络管理提供了方便。

MODBUS通信就是工业控制器的网络协议中的一种。

关键词: MOBUS通信协议,RS485,奥越信CPU,程序设计一、MODBUS 简介MODBUS是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。

当现代的控制领域持续不断的产生和应用诸如现场总线和网状网络等先进概念的时候,MODBUS的简单性以及它的便于在许多通讯媒介上实施应用的特点一直使它受到最广泛的支持,并且成为全球应用最广泛的工业协议。

通过此协议,控制器经由网络(例如以太网)和其它设备之间可以通信,此协议支持传统的RS-232、RS-422、RS-485和以太网设备。

许多工业设备,包括PLC、DCS、变频器、智能仪表等都在使用MODBUS协议作为他们之间的通讯标准,它可应用于各种数据采集和过程监控。

二、MODBUS协议库1、使用MOBUS协议的部分要求A、初始化MODBUS从站协议占用Port0 作为MODBUS从站协议通信,MODBUS从站协议只支持端口0通信,所以选择奥越信的双通信的CPU,可以把Port1作为编程通信口,以便于调试;如果只有单通信口的话,可把CPU打到STOP模式在编程。

B、MODBUS从站协议指令的变量要求799字节的V区域,该区域的起始地址由用户指定,保留给MODBUS使用,程序中不可以使用库存储区占用的地址。

C、可参照S7-200编程手册中了解MODBUS指令的设置与编写。

2、MODBUS协议允许在各种网络体系结构内进行简单通信。

如图所示:A、每种设备(PLC、HMI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用MODBUS协议来启动远程操作。

B、在基于串行链路和以太网络的MODBUS上可以进行相同通信。

C、一些网关允许在几种使用MODBUS协议的总线或网络之间进行通信。

如何用S7200实现Modbus通信

如何用S7200实现Modbus通信

03
硬件连接与配置
通信接口及电缆选择
选择合适的通信接口
S7200 PLC通常配备有RS232、RS485或以太网等通信接口 ,根据Modbus通信协议的要求选择合适的接口。
电缆选择
根据选定的通信接口,选择相应的通信电缆。例如,对于 RS485接口,应选用双绞线电缆。
硬件连接示意图
连接PLC与Modbus设备
配置Modbus地址
根据Modbus协议要求,为PLC分配一个唯一的Modbus地 址,以便在Modbus网络中识别。
启用Modbus功能
在PLC的编程软件中,启用Modbus通信功能,并选择相应 的通信接口和参数设置。
04
软件编程与实现
编程环境介绍
使用Step7 Micro/WIN软件
S7200的编程环境为Step7 Micro/WIN,它是西门子专为S7200系列PLC设计的编程软 件。
型可编程逻辑控制器。
它具有模块化设计,支持多种扩 展模块,适用于各种工业自动化
应用。
S7200 PLC采用先进的微处理器 技术,具有高速处理能力和丰富
的指令集。
Modbus通信协议
1
Modbus是一种串行通信协议,广泛应用于工业 自动化领域。
2
它采用主从通信方式,支持多种数据格式和传输 模式。
3
Modbus协议具有简单、可靠、开放的特点,已 成为工业自动化领域的事实标准。
将PLC的通信接口与Modbus设备的通信接口通过电缆连接起来。确保连接正 确无误,避免短路或接错线。
电源与接地
确保PLC和Modbus设备的电源供应稳定可靠,并按照要求进行接地处理。
参数设置与配置方法
设置通信参数

西门子S7_300PLC的Modbus_RTU通讯实现

西门子S7_300PLC的Modbus_RTU通讯实现

站。 每个从站对应 1 个地址号,主站可以通过地址 (R)和打印机驱动程序。 通过对物理接口和通讯协
向从站请求数据,相应地址的从站可以执行命令或 议的配置,该模块可以和西门子以及第 3 方的串口
者发送数据。
通讯设备进行数据交换。
Modbus 有 ASCII 和 RTU 2 种通讯 模式, 最常
本文所述通讯方法中,采用的是 RS422/485(.27)
用的是 RTU 模式。 Modbus-RTU 定义了数据发送的 物理接口、ACSII 协议的 CP340 模块,其最大传输速
格式和从站响应的数据格式,主站发送数据包括地 率为 9.6 KBit/s。
址、命令码、数据以及 CRC 校验码,从站响应的数据 3 CP340 实现 Modbus 通讯
包括地址、命令码、数据和 CRC 校验码。
Modbus 协议是应用于电子控制 器上的 1 种通 2 CP340 通讯模块
用语言。 通过此协议,控制器相互之间、控制器经由
CP340 通讯模块是西门子 S7-300 PLC 中 1 种
网络和其他设备之间可以通信。 它已经成为一通用 低成本的串 行通讯解决 方案 , 可以应 用于 S7-300
工业标 准 ,有 了 它 ,不 同 厂 商 生 产 的 控 制 设 备 可 以 系列和 ET200 系统中。 CP340 具有不同的 3 种接口
站 ,目的 从 站 收 到 数 据 后 ,会 根 据 收 到 的 命 令 码 和 方模块的兼容性差的问题,是一种非常好的应用方案。
数据做出相应的动作。 如果写命令,从站就把相应 地址执行写动作;如果是读命令,从站发送相应地 址处的数据到主站。
主站接受使能位 M100.0 有效时, 接受功能块 会将接受缓存区寄存器的数据移动到相应的数据 块的相应地址处, 移动完成 1 次接收完成标志位 M100.2 产生 1 个 脉冲信号,如 果发生错误 ,错误位
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以PLC为通信主站的Modbus控制网络的设计与实现作者:潘迪夫习可来源:《现代电子技术》2010年第05期摘要:为实现以PLC为控制中心的架车式称重调簧系统,提出以PLC作为Modbus通信主站、配合多数量、多种类的通信从站的网络建立的方法,并采用S7-200 PLC、计算机和两种智能传感器,构建一个以PLC为通信主站的Modbus控制网络,对主站、从站的配置和程序设计进行了详细的说明。

实践结果表明,此网络系统数据传输可靠准确,系统实时性与稳定性均能满足机车称重调簧系统应用的要求。

关键词:Modbus协议;PLC;通信主站;控制网络中图分类号:TP368文献标识码:A文章编号:1004-373X(2010)05-142-03Design and Implementation of Modbus Control System Based on PLC as Master StationPAN Difu,XI Ke(School of Traffic&Transportation Engineering,Central SouthUniversity,Changsha,410075,China)Abstract:To realize the PLC control system of locomotive body test-rig for weighting and spring adjusting,it puts forward the method of constructing communication,which is composed of PLC Modbus master station and multiple various Modbus slave stations.At the same time,with one S7-200 PLC,one computer and two kinds of intelligent sensors,it is built that a typical control system taking PLC as Modbus master station,and then illuminated in detail the configuration and software design master station and slavers.The practice indicates that the Modbus communication,where PLC is used as the master station,can transmit data accurately and reliably,its real-time performance and stability reaches the requirement of industrial automation.Keywords:Modbus protocol;PLC;master station;control system0 引言随着微电子及控制技术的不断发展,PLC功能不断完善,已经逐渐成为一种智能型、综合型的控制器,以PLC为控制器构成的数据采集和控制系统,广泛应用到了工业自动化系统中。

同时,由于Modbus协议具有开放性好、诊错能力强、数据传输速率高、成本低、易实现等优点,被越来越多的设备厂家的产品所支持。

采用这些控制设备、传感器、智能仪表,可快速构建基于Modbus工业控制网络系统,成本低、性能高、简单实用。

文献[1]介绍了一种采用工控机作为Modbus通信主站,PLC作为通信从站的通讯网络的构建方法,并应用到了实际的工业自动化系统中,效果良好。

文献[2]则采用PLC作为Modbus通信的主站来控制变频器从站,同样充分利用了PLC控制的诸多优点。

本文综合两种方法,设计并实现了以PLC作为Modbus通信主站、计算机和多种传感器作为通讯从站的控制网络。

1 系统构成架车式称重调簧系统具有机车架车、称重、调簧三个主要功能,其中,前两项可由PLC控制中心独立完成,在有计算机参与控制的情况下,可以实现调簧的功能。

鉴于Modbus的诸多优点,本系统采用基于Modbus的通信网络,网络组成硬件主要包括:1台西门子S7-200 PLC,1台计算机,4台智能位移传感器,4台智能压力传感器。

其中,S7-200 PLC作为Modbus通信主站,主要完成数据提取、从站管理及控制输出等功能;计算机作为通信从站,只有在需要时才接入网络,完成对本网络的监控、维护及调整和设置参数的功能;传感器作为通信从站,完成对信息采集的功能。

网络采用总线连接,所采用的传感器是智能数字式传感器,均支持RS 485总线协议。

计算机通过扩展RS 485通讯卡连接到网络中。

系统组成框图如图1所示。

西门子S7-200 PLC作为Modbus通信主站[3],应用了Modbus公开通信协议中串行通信部分,其CUP采用自由端口进行通讯,实现的是RS 485协议半双工通信。

S7-200所支持的从站地址范围为0~247,其中0为广播地址。

本系统考虑的实际应用的要求,只采用了32个从站地址进行设计。

图1 通讯网络的硬件构成由于从站的类型多样,为便于管理和编程,可以对各个从站进行分类。

本系统可以把从站分为三类,其分类和地址编号如下:第一类:计算机通信从站。

由于计算机从站需要与主站进行数据交换,所以主站对其既有读取数据请求,也有发送数据请求,其地址号范围为31~32。

第二类:位移传感器从站。

主站对其只有读取数据请求,其地址号范围为1~15。

第三类:压力传感器从站。

主站对其只有读取数据请求,其地址号范围为16~30。

在应用RS 485网络时,考虑到本网络各站点之间的距离不是很长,连接线在100 m以内,为提高系统的抗干扰性,在网络的最后一台设备之后接入一个1 kΩ的终端电阻[2]。

2 S7-200 PLC作为通信主站的配置和程序设计S7-200的编程软件STEP7-Micro/WIN,带有西门子开发的Modbus RTU主站/从站指令,能够非常方便地实现Modbus通信主站的配置。

该指令库主要有两个功能块:Modbus RTU 主站初始化功能块和读写功能块,关于其具体参数设计可参考文献[3,4]。

作为Modbus通信主站,S7-200需要完成对各个从站,包括传感器、计算机、仪表的读写功能。

由于从站有多种类型,对不同的站地址的读写格式也不同。

本文按照从站的通信要求进行对其分类,并采用轮询各从站的方法:即一次对一个地址启动一条读取或者写入命令。

通信主站的程序设计内容包括:(1) 变量初始化以及自由通信端口的Modbus主站初始化。

这主要是对Modbus RTU主站初始化功能块进行配置。

(2) 搜索并储存有效的从站地址。

在不同的工况下,从站的数量以及种类都有可能不同,为了保证系统的扩展性和兼容性,通信之前必须对各个从站地址的有效性进行检查,保存有效的从站地址号。

(3) 轮流对各从站发送读取/写入数据申请。

其中关键的部分是检查各地址的有效性以及轮询各从站地址。

具体程序流程如图2所示。

图2 主站轮询从站的程序流程图3 计算机作为Modbus从站的设置及编程计算机作为Modbus从站,主要完成对各个传感器以及PLC的设置、监控和数据处理等功能。

这要求:计算机能随时作为从站接入Modbus系统进行通讯;在计算机进入通信网路以后,必须能与通信主站进行数据交换,且能接收其他从站返回的数据。

考虑到系统中主站的读取/写入数据申请命令和各个从站的数据响应的长度、内容以及时间间隔不同,计算机从站对串口数据的操作不能单独采用中断方式或者查询方式[5]:如果只采用前者,则无法定义数据中断的长度;如果采用后者,则无法及时回复主站对本从站的数据读取/写入命令。

所以,本系统把两种方式相结合起来,采用先中断后查询的方法对串口数据进行操作。

S7-200 Modbus主站通信指令具有如下特点:(1) 可自由设置从站响应超时的时间阈值;(2) 如果从站数据超时,S7-200将重新发送数据申请,共尝试三次。

根据S7-200这一特点,对串口数据可以进行如下处理:当串口接收到数据而发生中断时,等待此帧数据全部到达,等待时间的设置可以参照PLC主站的超时阈值设置。

一帧数据接收完之后,采用CRC校验来验证数据的有效性,然后根据数据内容的特点,分析数据来源和数据命令内容,并做出相应的数据处理。

其软件设计框图如图3所示。

计算机从站采用Visual Basic语言编程,部分程序及代码如下。

串口初始化程序如下:mPort=PortOfModbusMSComm1.Settings=″19200,e,8,1″MSComm1.InputLen=0MSComm1.RThreshold=1MSComm1.InputMode=comInputModeBinary串口数据处理程序如下:Private Declare Sub Sleep Lib ″kernel32″ (ByVal dwMilliseconds As Long)′为使用Sleep函数,需在程序中引入系统API函数Private Sub MSComm1_OnComm() ′收到一个字节触发一次中断Sleep TimeDelay ′延时一段时间,等待此帧数据读完,配合主站的超时时间ReceiveData.Buffer= MSComm1.Input ′提取串口数据Select case ReceiveData.Buffer(0)′通过判断从站地址,来判断主站的通信请求Case 0′主站的广播数据,无从站响应数据Call CheckCRC16(ReceiveData.Buffer) ′CRC校验Case 1 ′对从站1的数据读取/写入数据请求Call CheckAnswer(ReceiveData.Buffe)′检查从站是否有回复,并分离主站读取/写入命令和传感器回应命令Call CheckCRC16(ReceiveData.Request)′对主站申请命令进行CRC校验Call CheckCRC16(ReceiveData.Answer)′对从站响应命令进行CRC校验Case 2……Case IDofComputer ′PLC对计算机的数据请求命令Call CheckCRC16(ReceiveData.Buffer) ′CRC校验If ReceiveData.Buffer(0)=ReadSym then Call SentData(Read)′判断为读取命令,回应PLC的请求If ReceiveData.Buffer(0)=WriteSym then Call SentData(Write)′判断为写入命令,回应PLC的请求……End selectEnd Sub图3 串口数据处理程序流程图4 传感器的选择及配置传感器选型时,在考虑传感器的精度、线性度等性能指针的同时,还需考虑以下几个方面:传感器作为Modbus从站,其功能码能否与PLC作主站的功能码兼容;传感器是否兼容RS 485通信协议。

相关文档
最新文档